- •Лекція 1. Вступ до операційних систем.
- •1.Поняття про операційні системи та їх місце в загальній структурі комп’ютера.
- •2. Основні функції операційної системи : розширення можливостей комп’ютера та керування його ресурсами.
- •3. Історія операційних систем.
- •Лекція 2. Структура операційної системи.
- •Таблиця 2.1
- •Екзоядро
- •Модель клієнт-сервер
- •Лекція 3. Концепція процесу
- •Лекція 4. Потоки в операційних системах.
- •3. Міжпроцесна взаємодія.
- •4.Примітиви міжпроцесної взаємодії.
- •5.Семафори та їх використання.
- •6.Поняття м’ютекса.
- •7.Поняття моніторів.
- •8.Поняття про бар’єри.
- •9.Поняття про системи передачі повідомлень.
- •Лекція 5. Взаємоблокування.
- •2.Умови та моделювання взаємоблокувань.
- •3.Виявлення та усунення взаємоблокувань.
- •4.Уникнення взаємоблокувань при наявності декількох ресурсів кожного типу.
- •6. Уникнення взаємоблокувань.
- •7. Алгоритм банкіра для одного та декількох видів ресурсів.
- •8. Уникнення взаємоблокувань шляхом порушення умов їх здійснення
- •Лекція 6. Основні поняття керування пам’яттю.
- •1.Однозадачна система без підкачки на диск.
- •2.Багатозадачність з фіксованими розділами
- •3.Поняття про підкачку даних.
- •5.Віртуальна пам’ять. Основні поняття.
- •6.Віртуальна пам’ять. Сторінкова організація пам’яті.
- •7.Характеристика основних алгоритмів заміщення сторінок.
- •Лекція 7. Принципи роботи апаратури введення-виведення.
- •1.Пристрої введення-виведення.
- •2.Переривання персональної кс.
- •Лекція 8.
- •Лекція 9.
- •Лекція 10. Файли та їх властивості.
- •1.Поняття файлової системи.
- •2.Іменування файлів.
- •3.Структура файлу.
- •4.Типи файлів.
- •5.Доступ до файлів. Атрибути файла.
- •6.Файли, відображувані на адресній простір памяті.
- •7.Каталоги.
- •Лекція 11. Реалізація файлової системи.
- •1.Структура файлової системи.
- •2.Реалізація файлів.
- •3.Реалізація каталогів.
- •Лекція 12 Планування в системах з одним процесором.
- •1.Поняття про планування.
- •2.Типи планування процесора.
- •3.Планування вводу-виводу.
- •Лекція 13. Критерії планування.
- •1.Критерії короткотривалого планування.
- •2.Використання пріоритетів.
- •3.Альтернтитвні стратегії планування
- •Лекція 14. Стратегії планування.
- •1.Стратегія планування „першим прийшов – першим обслуговується”.
- •2.Стратегія”кругове планування” .
- •4.Вибір самого короткого процесу.
- •5.Стртегія найменшого часу, що залишився.
- •7.Зниження пріорітету.
- •Лекція 15. Багатопроцесорне планування і планування реального часу.
- •1. Класифікація багатопроцесорних систем.
- •3.Задачі планування в багатопроцесорній системі.
- •4. Планування процесів.
- •5.Планування потоків.
- •Лекція 16. Основні підходи до планування потоків.
- •1.Розділення навантаження.
- •2.Бригадне планування.
- •3.Призначення процесорів.
- •4.Динамічне планування.
- •Лекція 17. Планування реального часу.
- •Лекція 18.
- •4. Парадигми.
- •5. Реалізація операційної системи
- •Лекція 19. Операційні системи типу unix.
- •1.Історичні відомості про операційні системи типу unix.
- •2.Загальна архітектура системи unix.
- •3.Сучасні системи unix.
- •4.Історія виникнення операційної системи Linux.
- •5.Модульна структура операційної системи Linux.
- •6.Традиційне планування unix.
- •Лекція 20. Характеристики операційної системи Windows 2000.
- •1. Історія виникнення Windows.
- •Лекція 21. Особливості архітектури Windows xp.
- •1. Основні компоненти Windows xp.
Таблиця 2.1
Поява віртуальних машин пов’язана з бажанням користувачів OS/360 працювали в системі з розділенням часу. Систему, яку було створено назвали CP/CMS, а пізніше перейменували в VM/370. Основа системи, яку називають монітором віртуальної машини, працює з апаратурою та забезпечує багатозадачність, надаючи верхньому шару не одну, а декілька віртуальних машин, як зображено на рис.2.7
Рис.2.7. Структура VM/370 з системою CMS
Оскільки кожна віртуальна машина є ідентичною справжньому обладнанню, то на кожній з них може працювати будь-яка операційна система, яка запускається прямо на апаратурі. На різних віртуальних машинах можуть функціонувати різні операційні системи.
Ідея віртуальних машин дуже часто використовується в наші дні, але дещо в іншому контексті: для роботи старих програм, написаних для системи MS-DOS на Pentium (або на інших 32-розрядних процесорах Intel). {Intel i Microsoft – розуміння проблеми в потребі роботи старих програм на новому обладнанні}. Корпорація Intel створила на процесорі Pentium режим віртуального процесора 8086. В цьому режимі машина працює як 8086 (яка з точки зору програмного забезпечення ідентична 8088), включаючи 16-розрядну адресацію пам’яті з обмеженням об’єму пам’яті в 1 Мбайт. Такий режим використовується системою Windows та іншими операційними системами для запуску програм MS-DOS. Програми запускаються в режимі віртуального процесора 8086. поки вони виконують звичні команди, то вони працюють напряму з апаратурою. Але коли програма спробує звернутись за перериванням до операційної системи, щоб зробити системний виклик, або спробує напряму здійснити введення-виведення даних, то відбувається переривання з переключенням на монітор віртуальної машини. В цьому випадку можливі два варіанти.
Жоден з описаних методів в дійсності не є тим самим, чим була VM/370, бо змодельована машина представляє собою тільки 8086, а не повноцінний Pentium.
Екзоядро
В системі VM/370 кожен користувач отримує точну копію справжньої машини. На Pentium, в режимі віртуальної машини 8086, кожен користувач отримує точну копію іншої машини. Розвинувши цю ідею далі, дослідники з Масачусетського технологічного інституту винайшли систему, яка забезпечувала кожного користувача абсолютною копією реального комп’ютера, але з підмножиною ресурсів. Наприклад, одна віртуальна машина може отримати блоки на диску з номерами від 0 до 1023, наступна – від 1024 і т.д.
Перевагою схеми екзоядра є те, що не потрібен рівень відображення. При інших методах роботи кожна віртуальна машина вважає, що вона використовує свій власний диск з нумерацією блоків від 0 до деякого максимуму. Тому монітор віртуальної машини повинен підтримувати таблиці перетворення адрес на диску (і всіх інших ресурсів).
Модель клієнт-сервер
В розвитку сучасних операційних систем спостерігається тенденція в сторону подальшого переносу коду у верхні рівні і видаленні при цьому всього, що тільки можливо з режиму ядра, залишаючи мінімальне мікроядро. Отримуючи запит на будь-яку дію, наприклад читання блоку файла, користувацький процес (клієнтський процес) відправляє запит серверному (обслуговуючому) процесу, який його обробляє і відправляє назад відповідь.
Рис.2.8. Модель клієнт-сервер
В моделі, зображеній на рис.2.8, в задачу ядра входить тільки керування зв’язком між клієнтами і серверами. Завдяки розподілу операційної системи на частини, кожна з яких керує всього одним елементом системи (файловою системою, процесами, терміналом або пам’яттю), всі частини стають малими і керованими. Оскільки всі сервери працюють як процеси в режимі користувача, а не в режимі ядра, то вони не мають прямого доступу до апаратури.
Розглянута конструкція з ядром, керування передачею повідомлень від клієнтів до серверів і назад, на практиці не зовсім така. Деякі функції операційної системи, такі як завантаження команд в регістри фізичних пристроїв введення-виведення, важко, якщо взагалі можливо, виконати з програм в просторі користувача.
Розподіл між механізмами і політикою є дуже важливим поняттям, яке зустрічається в операційних системах в різному контексті постійно.
Рис.2.9. Модель клієнт-сервер в розподіленій системі