Главная / Программирование /
Теория и практика многопоточного программирования / Тест 5
Теория и практика многопоточного программирования - тест 5
Упражнение 1:
Номер 1
Примитивы синхронизации обеспечивают:
Ответ:
 (1) Синхронность исполнения команд на 2 и более процессорах 
 (2) Коммуникацию между потоками 
 (3) Синхронизацию часов для различных потоков 
Номер 2
Примитивы синхронизации индивидуальны для различных языков?
Ответ:
 (1) Да 
 (2) Нет 
Номер 3
Примитивы синхронизации являются собственностью потока?
Ответ:
 (1) Да 
 (2) Нет 
Упражнение 2:
Номер 1
Можно ли ввести критерий корректности для программы-генератора случайных чисел?
Ответ:
 (1) Да 
 (2) Нет 
Номер 2
Для программ существует формальное математическое определение корректности?
Ответ:
 (1) Да 
 (2) Нет 
Номер 3
Для определения корректности программы достаточно статического анализа кода?
Ответ:
 (1) Да 
 (2) Нет 
Упражнение 3:
Номер 1
Для фиксации приоритета потока можно использовать циклическую систему времени?
Ответ:
 (1) Да 
 (2) Нет 
Номер 2
Использование системных часов всегда решает проблему вычисления приоритета?
Ответ:
 (1) Да 
 (2) Нет 
Номер 3
Время и временные отметки – это синонимы с точки зрения программы?
Ответ:
 (1) Да 
 (2) Нет 
Упражнение 4:
Номер 1
Подграф А доминирует надо подграфом Б:
Ответ:
 (1) Если каждая вершина А доминирует над всеми вершинами Б 
 (2) Если значения в вершинах А больше любого значения Б 
 (3) Если каждая вершина А доминирует над хотя бы одной вершиной из Б 
Номер 2
Если "" – доминирование, и ad, ae, bc, bd, то:
Ответ:
 (1) {a,b}{c,d} 
 (2) {a,b}{d} 
 (3) {c,d}{a} 
Номер 3
Доминирование на графе – транзитивное отношение?
Ответ:
 (1) Да 
 (2) Нет 
Упражнение 5:
Номер 1
Гонка данных:
Ответ:
 (1) Нарушает заложенную в программу логику 
 (2) Блокирует исполнение потока 
 (3) Приводит к стабильному воспроизведению ошибки 
Номер 2
Гонка данных – это:
Ответ:
 (1) Конкурентный доступ на чтение к одной переменной 
 (2) Конкурентный доступ к переменной, в котором хотя бы один поток изменяет её значение 
 (3) Рассинхронизация потоков 
Номер 3
Плавающие ошибки в программе могут быть обусловлены:
Ответ:
 (1) гонкой данных 
 (2) недостаточной производительностью процессора 
 (3) несвоевременным переключением контекста 
Упражнение 6:
Номер 1
Более подвержены проблеме ABA:
Ответ:
 (1) Управляемые языки 
 (2) Неуправляемые языки 
Номер 2
В управляемых языках невозможно воспроизвести ситуацию ABA?
Ответ:
 (1) Да 
 (2) Нет 
Номер 3
Проблема ABA – это:
Ответ:
 (1) Последствия некорректного именования переменных 
 (2) Следствие гонки данных 
 (3) Проблема использования указателей для идентификации объекта 
Упражнение 7:
Номер 1
Спор за блокировку приводит:
Ответ:
 (1) К остановке программы 
 (2) Нарушению порядка исполнения 
 (3) Плохому масштабированию программы 
Номер 2
Возможен ли в неожидающей реализации алгоритма спор за блокировку?
Ответ:
 (1) Да 
 (2) Нет 
Номер 3
Если программа на 2 ядрах исполняется за 8 секунд, в на 4 ядрах за 6, то наиболее вероятной причиной этому может быть:
Ответ:
 (1) Спор за блокировку 
 (2) Гонка данных 
 (3) Переполнение стэка 
Упражнение 8:
Номер 1
Возможна ли ситуация взаимной блокировки в неожидающем алгоритме?
Ответ:
 (1) Да 
 (2) Нет 
Номер 2
Что общего у проблемы "взаимная блокировка" и "имитация деятельности"?
Ответ:
 (1) Обе проблемы возникают из-за вечных циклов 
 (2) Обе проблемы разрешаются увеличением времени ожидания 
 (3) Обе проблемы приводят к прекращению прогресса в исполнении программы 
Номер 3
Каким образом можно избежать взаимной блокировки?
Ответ:
 (1) Используя Spinlock вместо Mutex 
 (2) Используя компиляцию без оптимизации 
 (3) Используя примитивы синхронизации с принудительным прерыванием ожидания