
- •Міністерство освіти і науки, молоді та спорту України
- •___Операційні системи____
- •(Назва навчальної дисципліни)
- •Питання та вправи на практичні заняття
- •Черкаси 2012 Модуль1
- •Тема 1. Поняття ос, мета її роботи. Класифікація комп’ютерних систем
- •Тема 2. Історія ос. Діалекти unix. Режими пакетної обробки, мультипрограмування, розділу часу
- •Тема 3. Особливості ос для різних класів комп’ютерних систем. Ос реального часу. Ос для хмарних обчислень
- •Тема 1. Архітектура комп’ютерної системи
- •Тема 2. Архітектура ос. Управління процесами: Основні поняття. Семафори і монітори.
- •Тема 1. Огляд функцій ос: управління пам’яттю, файлами, процесами, мережами, командними інтерпретаторами, сервіси ос, системні виклики. Рівні абстракції ос. Архітектура unix и ms-dos
- •Тема 1. Рівні абстракції ос. Ос с архітектурою мікроядра. Віртуальні машини. Мета проектування і розробки ос. Генерація ос Питання
- •Тема 2. Управління процесами. Планування і диспетчеризація процесів
- •Тема 3. Потоки (threads) и багатопоточне виконання програм (multi-threading)
- •Тема 4. Методи синхронізації процесів
- •Тема 1. Управління пам’яттю
- •Тема 2. Сторінковая організація пам’яті
- •Тема 3. Сегментна організація пам’яті.
- •Модуль 2
- •Тема 1. Системи файлів
- •Тема 2. Віртуальні файлові системи (vfs). Реалізація файлових систем.
- •Тема 3. Мережева файлова система nfs
- •Тема 1. Системи вводу-виводу
- •Що таке контролер?
- •Тема 1. Мережі і мережеві структури.
- •Тема 2. Безпека операційних систем і мереж
- •Тема 1. Архітектура, ядро, розповсюдження і ліцензування, принципи проектування, управління процессами
- •Тема 2. Огляд архітектури і можливостей системи Linux: Управління пам’яттю, ресурсами, файлові системи, драйвери пристроїв, мережі, безпека
- •Тема 1. Огляд архітектури і можливостей систем Windows 2000/xp/2003/Vista/2008/7
- •Тема 2. Системні механізми Windows
- •Тема 1. Ос для мобільних пристроїв. Windows Mobile Питання
- •Тема 2. Перспективи операційних систем I мереж
Припустимо, що Ви - розроблювач ОС для нової комп'ютерної системи. Запропонуєте набір рівнів абстракції для проектування й розробки Вашої ОС й охарактеризуйте призначення кожного з рівнів.
Те ж завдання щодо принципу мікроядра: Запропонуєте архітектуру ОС із мікроядром й опишіть, якого роду модулі варто віднести до ядра, а які можна виконувати в непривілейованому режимі.
Запропонуєте архітектуру ОС, що реалізує систему віртуальних машин.
Сформулюйте, у чому принципові розходження роботи користувача у віртуальній машині від монопольної роботи на реальному комп'ютері, у чому достоїнства й недоліки кожного із цих режимів використання комп'ютера.
Инсталлируйте на своєму комп'ютері продукт Microsoft Virtual PC, инсталлируйте у віртуальній машині іншу ОС (наприклад, Windows 7, якщо у Вас на комп'ютері інстальована Windows Vista), поэкспериментируйте з нею й опишіть свої враження.
Завантажите із сайту http://java.sun.com нову версію Java Development Kit (JDK), Standard Edition, инсталлируйте його й пропустите найпростіші приклади з використанням JVM.
Запустите використовувану Вами операційну систему на Вашому комп'ютері й проаналізуйте дії системи при запуску: які повідомлення видаються, який порядок завантаження компонент системи, у тому числі драйверів, які драйвери зберігаються в ROM BIOS, а які є частиною ОС.
Тема 2. Управління процесами. Планування і диспетчеризація процесів
Що таке процес, пакетний процес, інтерактивний процес?
Що таке лічильник команд процесу?
Що таке секція даних процесу?
У яких станах може перебуває процес, дайте визначення стану: новий, готовий до виконання, виконуваний, що очікує, завершений.
Що таке блок керування процесом й якою інформацією зберігається в ньому?
Як використається блок керування процесом при перемиканні з одного процесу на інший?
Що таке черга завдань, черга готових процесів, черги на ввід-вивід?
Що таке планувальник, які функції виконує довгостроковий, короткочасний планувальник?
Які функції виконує планувальник відкачки й підкачування?
Який із планувальників визначає ступінь мультипрограмування ОС?
Як відбувається створення процесу?
Що таке дерево процесів?
Вправи
Запустите систему UNIX (Linux) і досліджуйте інформацію, видавану на термінал, про процеси, створюваних операційною системою при її запуску.
Тема 3. Потоки (threads) и багатопоточне виконання програм (multi-threading)
Що таке потік, чим відрізняються однопотокові й багатопоточные процеси, у чому переваги багатопоточности?
У якій системі вперше було реалізоване поняття процесу, близьке сучасному поняттю потоку?
У який ОС багатопоточность уперше з'явилася "офіційно"?
На якій платформі розробки програм багатопоточность уперше була реалізована на рівні мови й базових бібліотек?
Що таке користувальницькі потоки, що таке системні потоки й чим вони відрізняються від користувальницьких?
Які існують моделі багатопоточности?
Які проблеми багатопоточності?
Що таке група потоків?
Якими типами даних описується потік в POSIX?
Які засоби синхронізації потоків використаються в POSIX?
У чому відмінність потоків в Solaris від потоків в інших системах?
Що таке полегшений процес?
У чому відмінність потоків в Windows 2000?
У чому відмінність потоків в Linux?
Вправи
Проаналізуйте й опишіть переваги, недоліки й проблеми багатопоточності.
Реалізуйте модель багатопоточності один/один.
Реалізуйте модель багатопоточності багато/один.
Реалізуйте модель багатопоточності багато/багато.
Тема 4. Методи синхронізації процесів
Чому необхідна синхронізація паралельних процесів?
Чому необхідні атомарность і взаємне виключення операцій над лічильником числа елементів у буфері?
Що таке конкуренція за загальні дані (race condition)?
Які атомарні операції, підтримані апаратно, використаються для синхронізації і яким образом?
Що таке загальний семафор й які операції над ним визначені?
Як реалізуються семафори й операції над ними?
Як використаються семафори для рішення проблеми критичних секцій?
Що таке двійковий семафор?
Як реалізуються загальні семафори й операції над ними з використанням двійкових семафорів?
Які Ви знаєте класичні завдання (схеми) синхронізації?
Що таке критичні області?
Як реалізується рішення завдання обмежений буфер з використанням критичних областей?
Що таке монітори (як засіб синхронізації)?
Які засоби синхронізації використаються в системі Solaris?
Які засоби синхронізації використаються в системі Windows 2000?
Вправи
Реалізуйте алгоритм рішення завдання обмежений буфер із взаємним виключенням критичних секцій.
Реалізуйте алгоритм булочної.
Реалізуйте алгоритми синхронізації процесів з використанням операцій TestAndSet й Swap (у припущенні, що вони атомарны).
Реалізуйте загальні семафори й операції над ними.
Реалізуйте двійкові семафори й операції над ними.
Реалізуйте алгоритм синхронізації критичних секцій з використанням семафорів.
Реалізуйте загальні семафори з використанням двійкових семафорів.
Реалізуйте алгоритм рішення завдання обмежений буфер з використанням семафорів.
Реалізуйте алгоритм рішення завдання читачі-письменники з використанням моніторів.
Реалізуйте монітори й умовні змінні з використанням семафорів.
Змістовий модуль 5. Управління пам’яттю