Главная /
Intel Parallel Programming Professional (Introduction) /
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что прогр
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N; // Буфер содержит N записейFull = 0;() {
Empty.P();
DisableInterrupts();
AddItemToBuffer();
EnableInterrupts();
Full.V();
}() {
Full.P();
DisableInterrupts();
RemoveItemFromBuffer();
EnableInterrupts();
Empty.V();
}
вопрос
Правильный ответ:
приведенное решение корректно
приведенное решение некорректно
приведенное решение опасно
Сложность вопроса
89
Сложность курса: Intel Parallel Programming Professional (Introduction)
54
Оценить вопрос
Комментарии:
Аноним
Я преподаватель! Прямо сейчас заблокируйте сайт с ответами с интуит. Это невозможно
15 ноя 2019
Аноним
Зачёт прошёл. Мчусь отмечать отмечать экзамен интуит
28 фев 2016
Другие ответы на вопросы из темы программирование интуит.
- # Что включает в себя контекст потока?
- # Отметьте действия, не относящиеся к операции создания потока
- # Укажите наиболее важный критерий оценки алгоритмов планирования в системах пакетной обработки.
- # В декартовой топологии множество процессов представляется в виде:
- # Реализуйте параллельный метод встречной прогонки, оцените его трудоемкость. Сравните теоретическое ускорение параллельного метода с практическим.