Главная / Программирование /
Теория и практика многопоточного программирования / Тест 11
Теория и практика многопоточного программирования - тест 11
Упражнение 1:
Номер 1
Отличие монитора от Mutex заключается в:
Ответ:
 (1) Постоянном контроле потоком состояния замка 
 (2) Возможности отпустить блокировку, находясь внутри критической секции 
 (3) Возможности одновременно исполнять 2 потока в критической секции 
Номер 2
Замки чтения-записи при установке reader-замка запрещают:
Ответ:
 (1) Всем потокам читать из заблокированного объекта 
 (2) Всем потокам изменять заблокированный объект 
 (3) Не запрещают действий над объектами 
Номер 3
При помощи семафора невозможно организовать эксклюзивный доступ к объекту?
Ответ:
 (1) Да 
 (2) Нет 
Упражнение 2:
Номер 1
Для синхронизации доступа к разделяемому счётчику невозможно использовать:
Ответ:
 (1) Крупнозернистую синхронизацию 
 (2) Мелкозернистую синхронизацию 
 (3) Ленивую синхронизацию 
Номер 2
Какая проблема возникает при использовании крупнозернистой синхронизации с большими массивами данных?
Ответ:
 (1) Гонка данных (race condition) 
 (2) ABA проблема 
 (3) Борьба за замок (lock contention) 
Номер 3
Сколько замков нужно, чтобы обслужить конкурентный доступ к атомарному регистру в 4-поточной программе (целое число)?
Ответ:
  
Упражнение 3:
Номер 1
Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Оправдано ли использование оптимистичной синхронизации?
Ответ:
 (1) Да 
 (2) Нет 
 (3) Недостаточно информации 
Номер 2
Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Время исправления коллизии колеблется от 10 до 50 микросекунд. Вероятность коллизии при изменении составляет 1%. Оправдано ли использование оптимистичной синхронизации?
Ответ:
 (1) Да 
 (2) Нет 
 (3) Недостаточно информации 
Номер 3
Операция изменения элемента в множестве занимает 3 микросекунды. Операция взятия замка является идеальной (константное время) и занимает 4 микросекунды. Время исправления коллизии колеблется от 500 до 1000 микросекунд. Вероятность коллизии при изменении составляет 1%. Оправдано ли использование оптимистичной синхронизации?
Ответ:
 (1) Да 
 (2) Нет 
 (3) Недостаточно информации 
Упражнение 4:
Номер 1
Ленивый подход к синхронизации - это:
Ответ:
 (1) Выполнение необходимых легковесных операций над разделяемыми данными с последующим выполнением тяжеловесных операций над локальными данными 
 (2) Отказ от использования операций над разделяемыми данными 
 (3) Блокирование малых частей разделяемого объекта, а не всего объекта целиком 
Номер 2
Можно ли комбинировать ленивый подход и мелкозернистую синхронизацию?
Ответ:
 (1) Да 
 (2) Нет 
Номер 3
Какой из этих примеров соответствует принципу ленивой синхронизации?
Ответ:
 (1) Сборка мусора 
 (2) Дефрагментация диска 
 (3) Использование разреженных матриц 
 (4) Использование хэш-таблиц 
Упражнение 5:
Номер 1
Множество - это структура:
Ответ:
 (1) Поддерживающая вставку и извлечение объекта по ключу 
 (2) Поддерживающая неуникальные значения 
 (3) Всегда с детерминированным поведением 
Номер 2
Пул - это структура:
Ответ:
 (1) Поддерживающая вставку и извлечение объекта по ключу 
 (2) Поддерживающая неуникальные значения 
 (3) Всегда с детерминированным поведением 
Номер 3
Примером пула является:
Ответ:
 (1) Хэш-таблица 
 (2) Стэк 
 (3) Очередь 
 (4) Связный список 
Упражнение 6:
Номер 1
Натуральный параллелизм опирается на принцип:
Ответ:
 (1) Дешёвая память, дорогое время 
 (2) Дешёвое время, дорогая память 
 (3) Быстрое чтение, медленная запись 
 (4) Быстрая запись, медленное чтение 
Номер 2
Хэш-таблица с открытой адресацией по одному ключу хранит:
Ответ:
 (1) 1 элемент 
 (2) Много элементов 
Номер 3
Верно ли утверждение, что в структурах с натуральным параллелизмом не нужно задумываться о синхронизации доступа?
Ответ:
 (1) Да 
 (2) Нет 
Упражнение 7:
Номер 1
Для очереди с приоритетом, реализованной на связном списке, можно достигнуть скорости чтения:
Ответ:
 (1) O(1) 
 (2) O(N) 
 (3) O(logN) 
Номер 2
Для множества, реализованного на связном списке, скорости чтения составляет:
Ответ:
 (1) O(1) 
 (2) O(N) 
 (3) O(logN) 
Номер 3
При использовании структуры skiplist для множеств, для записи можно достигнуть скорости:
Ответ:
 (1) O(1) 
 (2) O(N) 
 (3) O(logN) 
Упражнение 8:
Номер 1
Алгоритм Bakery Lock не является корректным выбором для использования в замках, потому что:
Ответ:
 (1) Он подвержен ABA проблеме 
 (2) Он подвержен deadlock-проблеме 
 (3) Он основан на предположении упорядоченной согласованности, не выполняющемся на современных архитектурах 
Номер 2
В идеальной реализации замка время обращения к замку T зависит от числа потоков N как:
Ответ:
 (1) T = kN 
 (2) T = const 
 (3) T = log(N) 
Номер 3
Проблема, которую решает подход Local Spinning называется:
Ответ:
 (1) Инвалидация кэша 
 (2) Выравнивание данных 
 (3) ABA-проблема