- •Лекція 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. Потоки в операційних системах.
Поняття про потоки.
В звичайних операційних системах кожному процесу відповідає адресний простір і одиничний керуючий потік. Фактично це й визначає процес. Але часто зустрічаються ситуації, в яких потрібно мати декілька квазіпаралельних керуючих потоків в одному адресному просторі, ніби вони були б різними процесами.
З іншої сторони, процес можна розглядати, як потік виконуваних команд або просто потік. В потоку є лічильник команд, регістри, стек. Хоча потік повинен виконуватись в середині процесу, потрібно розрізняти концепції процесу і потоку. Процеси використовуються для групування ресурсів, а потоки є об’єктами, які почергово виконуються на центральному процесорі.
В першому випадку потоки розділяють адресний простір, відкриті файли й інші ресурси. В другому випадку процеси сумісно користуються різною пам’яттю, дисками, принтерами і іншими ресурсами. Потоки мають деякі властивості процесів, тому їх інколи називають спрощеними процесами. Термін багатопоточність також використовується для опису використання декількох потоків в одному процесі.
Потоки розділяють не тільки адресний простір, але й відкриті файли, дочірні процеси, сигнали і т.д.
Розглянемо табл.4.1 в першому стовбці вказано елементи, які сумісно використовуються всіма потоками процесу, а в другій елементи, які є індивідуальними для кожного потоку.
Таблиця 4.1.
Концепція потоків полягає в можливості сумісного використання набору ресурсів деякими потоками для виконання деякої задачі в тісній взаємодії.
Використання потоків.
Основною причиною використання потоків є виконання більшістю додатків суттєвої кількості дій, деякі з них можуть час від часу блокуватись. Схему програми можна суттєво спростити, якщо розбити додаток на декілька послідовних потоків, які запущені в квазіпаралельному режимі. Оскільки з потоком не пов’язані жодні ресурси, то потоки легко створюються і знищуються (в часі приблизно в 100 раз за процес).
Є два основних способи реалізації пакету потоків : в просторі користувача і ядрі.
Потоки часто використовуються в розподілених системах. Одним з прикладів є обробка вхідних повідомлень (запитів на обслуговування). Традиційний підхід полягає в наявності процесу або потоку, який блокується за системним запитом receive, очікуючи вхідного повідомлення. Якщо воно надходить, то приймається і обробляється. Інший підхід полягає в тому, що по надходженню повідомлення система створює новий потік для його обробки.
Досить багато програм було написано для однопоточних процесів і зробити їх багатопотоковими досить складно, бо по-перше програма потоку складається з декількох процедур, в яких є змінні, параметри; по-друге, більшість бібліотечних процедур не є реєнтабельними.
Тому введення потоків в існуючу систему неможливе без детально продуманої реконструкції всієї системи.
3. Міжпроцесна взаємодія.
При роботі процесу часто буває необхідно взаємодіяти між собою, тому й звідси проблеми міжпроцесної взаємодії.
Основним способом уникнення проблем, пов’язаних з сумісним використанням пам’яті, файлів і ін., є заборона одночасного запису і читання розділених даних більш ніж одним процесом. Іншими словами є необхідність у взаємному виключенні. Це означає, що коли один процес використовує розділені дані, іншому процесу це робити заборонено. Частину програми, в якій є звернення до сумісно використовуваних даних, називається критичною областю або критичною секцією. Якщо вдається уникнути одночасного знаходження двох процесів в критичних областях, тоді можна уникнути змагань. Ця вимога виключає змагання, але її недостатньо для правильної сумісної роботи паралельних процесів та ефективного використання спільних даних.
Рис.4.1.Взаємне виключення з використанням критичних областей
Розроблено багато способів реалізації взаємного виключення з метою уникнути входження одного процесу в критичну область при знаходженні там іншого і пов’язаних з цим проблем. Деякі способи вирішення: заборона переривань, змінні блокування, строге чередування.
Використовується також рішення, яке вимагає апаратного забезпечення. Багато комп’ютерів, особливо розроблених з розрахунком на декілька процесорів, мають команду TSL RX.LOCK (перевірити і заблокувати), яка діє так: в регістр RX зчитується вміст слова пам’яті lock, а в комірці пам’яті lock зберігається деяке нульове значення.