Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
питання та вправи на практичні.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
218.11 Кб
Скачать
  1. Припустимо, що Ви - розроблювач ОС для нової комп'ютерної системи. Запропонуєте набір рівнів абстракції для проектування й розробки Вашої ОС й охарактеризуйте призначення кожного з рівнів.

  2. Те ж завдання щодо принципу мікроядра: Запропонуєте архітектуру ОС із мікроядром й опишіть, якого роду модулі варто віднести до ядра, а які можна виконувати в непривілейованому режимі.

  3. Запропонуєте архітектуру ОС, що реалізує систему віртуальних машин.

  4. Сформулюйте, у чому принципові розходження роботи користувача у віртуальній машині від монопольної роботи на реальному комп'ютері, у чому достоїнства й недоліки кожного із цих режимів використання комп'ютера.

  5. Инсталлируйте на своєму комп'ютері продукт Microsoft Virtual PC, инсталлируйте у віртуальній машині іншу ОС (наприклад, Windows 7, якщо у Вас на комп'ютері інстальована Windows Vista), поэкспериментируйте з нею й опишіть свої враження.

  6. Завантажите із сайту http://java.sun.com нову версію Java Development Kit (JDK), Standard Edition, инсталлируйте його й пропустите найпростіші приклади з використанням JVM.

  7. Запустите використовувану Вами операційну систему на Вашому комп'ютері й проаналізуйте дії системи при запуску: які повідомлення видаються, який порядок завантаження компонент системи, у тому числі драйверів, які драйвери зберігаються в ROM BIOS, а які є частиною ОС.

  8. Тема 2. Управління процесами. Планування і диспетчеризація процесів

  1. Що таке процес, пакетний процес, інтерактивний процес?

  2. Що таке лічильник команд процесу?

  3. Що таке секція даних процесу?

  4. У яких станах може перебуває процес, дайте визначення стану: новий, готовий до виконання, виконуваний, що очікує, завершений.

  5. Що таке блок керування процесом й якою інформацією зберігається в ньому?

  6. Як використається блок керування процесом при перемиканні з одного процесу на інший?

  7. Що таке черга завдань, черга готових процесів, черги на ввід-вивід?

  8. Що таке планувальник, які функції виконує довгостроковий, короткочасний планувальник?

  9. Які функції виконує планувальник відкачки й підкачування?

  10. Який із планувальників визначає ступінь мультипрограмування ОС?

  11. Як відбувається створення процесу?

  12. Що таке дерево процесів?

Вправи

  1. Запустите систему UNIX (Linux) і досліджуйте інформацію, видавану на термінал, про процеси, створюваних операційною системою при її запуску.

Тема 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. Управління пам’яттю