Главная /
Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний /
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что прогр
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет).
Semaphore Empty = N; // Буфер содержит N записейM = unlocked;Full = 0;() {
M.Lock();
Empty.P();
AddItemToBuffer();
Full.V();
M.Unlock();
}() {
M.Lock();
full.P();
RemoveItemFromBuffer();
empty.V();
M.Unlock();
}
вопрос
Правильный ответ:
приведенное решение корректно
приведенное решение некорректно
приведенное решение опасно
Сложность вопроса
31
Сложность курса: Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний
78
Оценить вопрос
Комментарии:
Аноним
Экзамен сдан на зачёт. Спасибо vtone
20 дек 2016
Аноним
спасибо за пятёрку
26 фев 2016
Другие ответы на вопросы из темы программирование интуит.
- # На значения каких критериев влияет размер кванта при использовании вытесняющих алгоритмов планирования?
- # Для сборки OpenMP-программы необходимо.
- # Для управления распределением итераций цикла между потоками в OpenMP используется параметр schedule директивы for. При типе расписания dynamic:
- # Функцию omp_get_max_threads используют для:
- # Под параллельной программой в рамках MPI понимается: