Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
питання та вправи на самостійні.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
201.22 Кб
Скачать

Тема 3. Потоки (threads) и багатопоточне виконання програм (multi-threading)

  1. Що таке потік, чим відрізняються однопотокові й багатопоточные процеси, у чому переваги багатопоточности?

  2. У якій системі вперше було реалізоване поняття процесу, близьке сучасному поняттю потоку?

  3. У який ОС багатопоточность уперше з'явилася "офіційно"?

  4. На якій платформі розробки програм багатопоточность уперше була реалізована на рівні мови й базових бібліотек?

  5. Що таке користувальницькі потоки, що таке системні потоки й чим вони відрізняються від користувальницьких?

  6. Які існують моделі багатопоточности?

  7. Які проблеми багатопоточності?

  8. Що таке група потоків?

  9. Якими типами даних описується потік в POSIX?

  10. Які засоби синхронізації потоків використаються в POSIX?

  11. У чому відмінність потоків в Solaris від потоків в інших системах?

  12. Що таке полегшений процес?

  13. У чому відмінність потоків в Windows 2000?

  14. У чому відмінність потоків в Linux?

Вправи

  1. Проаналізуйте й опишіть переваги, недоліки й проблеми багатопоточності.

  2. Реалізуйте модель багатопоточності один/один.

  3. Реалізуйте модель багатопоточності багато/один.

  4. Реалізуйте модель багатопоточності багато/багато.

Тема 4. Методи синхронізації процесів

  1. Чому необхідна синхронізація паралельних процесів?

  2. Чому необхідні атомарность і взаємне виключення операцій над лічильником числа елементів у буфері?

  3. Що таке конкуренція за загальні дані (race condition)?

  4. Які атомарні операції, підтримані апаратно, використаються для синхронізації і яким образом?

  5. Що таке загальний семафор й які операції над ним визначені?

  6. Як реалізуються семафори й операції над ними?

  7. Як використаються семафори для рішення проблеми критичних секцій?

  8. Що таке двійковий семафор?

  9. Як реалізуються загальні семафори й операції над ними з використанням двійкових семафорів?

  10. Які Ви знаєте класичні завдання (схеми) синхронізації?

  11. Що таке критичні області?

  12. Як реалізується рішення завдання обмежений буфер з використанням критичних областей?

  13. Що таке монітори (як засіб синхронізації)?

  14. Які засоби синхронізації використаються в системі Solaris?

  15. Які засоби синхронізації використаються в системі Windows 2000?

Вправи

  1. Реалізуйте алгоритм рішення завдання обмежений буфер із взаємним виключенням критичних секцій.

  2. Реалізуйте алгоритм булочної.

  3. Реалізуйте алгоритми синхронізації процесів з використанням операцій TestAndSet й Swap (у припущенні, що вони атомарны).

  4. Реалізуйте загальні семафори й операції над ними.

  5. Реалізуйте двійкові семафори й операції над ними.

  6. Реалізуйте алгоритм синхронізації критичних секцій з використанням семафорів.

  7. Реалізуйте загальні семафори з використанням двійкових семафорів.

  8. Реалізуйте алгоритм рішення завдання обмежений буфер з використанням семафорів.

  9. Реалізуйте алгоритм рішення завдання читачі-письменники з використанням моніторів.

  10. Реалізуйте монітори й умовні змінні з використанням семафорів.

Змістовий модуль 5. Управління пам’яттю