Главная /
Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний /
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции 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();
}
вопрос
Правильный ответ:
приведенное решение корректно
приведенное решение некорректно
приведенное решение опасно
Сложность вопроса
78
Сложность курса: Параллельное программирование с использованием инструментов и технологий Intel, Проверка знаний
78
Оценить вопрос
Комментарии:
Аноним
Я провалил зачёт, почему я не увидел данный сайт с решениями интуит раньше
24 мар 2020
Аноним
Большое спасибо за решебник по intiut'у.
31 янв 2016
Другие ответы на вопросы из темы программирование интуит.
- # Ускорение за счёт параллельного выполнения
- # В каких случаях обязательно возникают гонки (races) при использовании несколькими потоками одного объекта данных?
- # Под коммуникатором в MPI понимается:
- # Вы написали параллельную программу с использованием OpenMP на языке C. Эта программа работает корректно на подготовленных тестовых данных. Вы запустили вашу программу два раза на 4-хядерной машине. Первый раз вы запустили программу в один поток, и она работала 39 секунд, второй – в 4 потока и она работала 34 секунды. Чем вы воспользуетесь в первую очередь при дальнейшей разработке программы?
- # Сформулируйте три варианта разложения Холецкого (строчный, столбцовый, с изменением подматрицы). Какой из алгоритмов предпочтителен при реализации?