Главная / Intel Parallel Programming Professional (Introduction) / Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что прогр

Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). Semaphore Empty = N; // Буфер содержит N записейM = unlocked;Full = 0;() { Empty.P(); M.Lock(); AddItemToBuffer(); M.Unlock(); Full.V(); }() { full.P(); M.Lock(); RemoveItemFromBuffer(); M.Unlock(); empty.V(); }

вопрос

Правильный ответ:

приведенное решение корректно
приведенное решение некорректно
приведенное решение опасно
Сложность вопроса
86
Сложность курса: Intel Parallel Programming Professional (Introduction)
54
Оценить вопрос
Очень сложно
Сложно
Средне
Легко
Очень легко
Комментарии:
Аноним
Какой человек гуглит данные ответы inuit? Это же изи
03 окт 2019
Аноним
Это очень элементарный решебник по интуиту.
07 фев 2019
Оставить комментарий
Другие ответы на вопросы из темы программирование интуит.