- •Лекція 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.
4.Примітиви міжпроцесної взаємодії.
Розглянемо примітиви міжпроцесної взаємодії, які застосовуються замість циклів очікування, в яких лише витрачається процесорний час. Ці примітиви блокують процеси у випадку заборони на вхід в критичну область.
В якості прикладу використання примітивів розглянемо проблему виробника і споживача (sleep – системний запит, в результаті якого викликаючий процес блокується, поки його не запустить інший процес; у запиту wake up є один параметр – це процес, який потрібно запустити). Аналогічно, якщо споживач хоче забрати дані з буфера, а буфер порожній, споживач переходить в стан очікування і виходить з нього як тільки виробник положить що-небудь в буфер і розбудить його. Це рішення є досить простим, але воно приводить до стану змагання.
5.Семафори та їх використання.
В 1965 році Дейкстра запропонував цілу зміну для підрахунку сигналів запуску, збережених на майбутнє. Ним був запропонований новий тип змінних (семафори), значення яких може бути нулем (у випадку відсутності збережених сигналів активізації) або деяким додатнім числом, яке відповідає кількості відкладених активізуючих сигналів.
Операція down порівнює значення семафора з нулем. Якщо значення семафора більше нуля, то операція down зменшує його (тобто використовує один із збережених сигналів активації) і просто повертає керування. Якщо значення семафора дорівнює нулеві, то процедура down не повертає керування процесу, а процес переводиться в стан очікування. Цим гарантується, що після початку операції жоден процес не отримає доступу до семафору, до закінчення або блокування операції. Елементарність операції надзвичайно важлива для вирішення проблеми синхронізації і уникнення стану змагань.
Операція up збільшує значення семафору. Якщо з цим семафором пов’язані один або декілька очікуючих процесів, які не можуть завершити більшу ранню операцію down, один з них вибирається системою (наприклад, випадковим чином) і йому дозволяється завершити свою операцію down. Операція збільшення значення семафора і активізації процесу теж неподільна. Жоден процес не може бути блокований під час виконання операції up, як і жоден процес не може блокуватись під час виконання операції wakeup в попередній моделі.
В оригіналі Декстра використав замість down і up позначення Р і V відповідно. Вперше позначення down і up з’явились в мові Algol 68.
Стандартним способом є реалізація операцій down і up в вигляді системних запитів, із забороною операційній системі всіх переривань на період перевірки семафора, зміни його значення і можливого переведення процесу в стан очікування.
Якщо використовуються декілька процесорів, то кожен семафор потрібно запустити з змінною блокування з використанням команди TSL, щоб гарантувати одночасне звертання до семафору тільки одного процесора.
6.Поняття м’ютекса.
Інколи використовується спрощена версія семафора, яку називають м’ютексом. Він не здатен рахувати, а тільки лише керує взаємним виключенням доступу до сумісно використовуваних ресурсів чи кодів. Реалізація м’ютекса є досить простою і ефективною, що робить використання м’ютексів особливо корисним у випадку потоків, діючих тільки в просторі користувача.
М’ютекси легко реалізувати в просторі користувача, якщо доступна команда TSL.