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