игра брюс 2048
Главная / Программирование / Теория и практика многопоточного программирования / Тест 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-проблема 




Главная / Программирование / Теория и практика многопоточного программирования / Тест 11