Главная /
Intel Parallel Programming Professional (Introduction) /
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что прогр
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N; // Буфер содержит N записейFull = 0;() {
Empty.P();
AddItemToBuffer();
Full.V();
}() {
Full.P();
RemoveItemFromBuffer();
Empty.V();
}
вопрос
Правильный ответ:
приведенное решение корректно
приведенное решение некорректно
приведенное решение опасно
Сложность вопроса
91
Сложность курса: Intel Parallel Programming Professional (Introduction)
54
Оценить вопрос
Комментарии:
Аноним
Это очень простецкий решебник intuit.
26 июн 2019
Аноним
Кто ищет данные ответы интуит? Это же совсем для даунов
08 апр 2016
Аноним
Это очень простой вопрос интуит.
08 янв 2016
Другие ответы на вопросы из темы программирование интуит.
- # Что отвечает за управление потоками?
- # Для захвата симафора без блокировки потока используются функции:
- # Директива #pragma omp sections используется для:
- # В буферизованном режиме функция отправки сообщения завершается:
- # Вы написали параллельную программу с использованием OpenMP на языке C. Эта программа работает корректно на подготовленных тестовых данных. Вы запустили вашу программу два раза на 4-хядерной машине. Первый раз вы запустили программу в один поток, и она работала 39 секунд, второй – в 4 потока и она работала 34 секунды. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?