- •4.6.2. Програмний інтерфейс планування
- •4.1. Загальні принципи планування
- •4.1.1. Особливості виконання потоків
- •4.1.2. Механізми і політика планування
- •4.1.3. Застосовність принципів планування
- •4.2. Види планування
- •4.2.1. Довготермінове планування
- •4.2.2. Середньотермінове планування
- •4.2.3. Короткотермінове планування
- •4.3. Стратеги планування. Витісняльна і невитісняльна багатозадачність
- •4.4. Алгоритми планування
- •4.4.1. Планування за принципом fifo
- •4.4.2. Кругове планування
- •4.4.4. Планування на підставі характеристик подальшого виконання
- •4.4.5. Багаторівневі черги зі зворотним зв’язком
- •4.4.6. Лотерейне планування
- •4.5. Реалізація планування в Linux
- •4.5.1. Планування процесів реального часу в ядрі
- •4.5.2. Традиційний алгоритм планування
- •4.5.3. Сучасні підходи до реалізації планування
- •4.5.4. Програмний інтерфейс планування
- •4.6. Реалізація планування у Windows хр
- •4.6.1. Планування потоків у ядрі
- •4.6.2. Програмний інтерфейс планування
- •Висновки
- •5.1. Основні принципи взаємодії потоків
- •5.2. Основні проблеми взаємодії потоків
- •5.2.1. Проблема змагання
- •5.2.2. Критичні секції та блокування Поняття критичної секції
- •5.3. Базові механізми синхронізації потоків
- •5.3.1. Семафори
- •5.3.2. М’ютекси
- •5.3.3. Умовні змінні та концепція монітора
- •5.3.4. Блокування читання-записування
- •5.3.5. Синхронізація за принципом бар’єра
- •5.4. Взаємодія потоків у Linux
- •5.4.1. Механізми синхронізації ядра Linux
- •5.4.2. Синхронізація процесів користувача у Linux. Ф’ютекси
- •5.5. Взаємодія потоків у Windows хр
- •5.5.1. Механізми синхронізації потоків ос
- •5.5.2. Програмний інтерфейс взаємодії Win32 арі
- •Висновки
- •Контрольні запитання та завдання
Лекція № 5 ПЛАНУВАННЯ ПРОЦЕСІВ І ПОТОКІВ ТА ЇХ ВЗАЄМОДІЯ
План
ЧАСТИНА 1.Планування процесів і потоків
4.1. Загальні принципи планування
4.1.1. Особливості виконання потоків
4.1.2. Механізми і політика планування
4.1.3. Застосовність принципів планування
4.2. Види планування
4.2.1. Довготермінове планування
4.2.2. Середньотермінове планування
4.2.3. Короткотермінове планування
4.3. Стратегії планування. Витісняльна і невитісняльна багатозадачність
4.4. Алгоритми планування
4.4.1. Планування за принципом FIFO
4.4.2. Кругове планування
4.4.3. Планування із пріоритетами
4.4.4. Планування на підставі характеристик подальшого виконання
4.4.5. Багаторівневі черги зі зворотним зв’язком
4.4.6. Лотерейне планування
4.5. Реалізація планування в Linux
4.5.1. Планування процесів реального часу в ядрі
4.5.2. Традиційний алгоритм планування
4.5.3. Сучасні підходи до реалізації планування
4.5.4. Програмний інтерфейс планування
4.6. Реалізація планування у Windows ХР
4.6.1. Планування потоків у ядрі
4.6.2. Програмний інтерфейс планування
Висновки
Контрольні запитання та завдання
ЧАСТИНА 2.Взаємодія потоків
5.1. Основні принципи взаємодії потоків
5.2. Основні проблеми взаємодії потоків
5.2.1. Проблема змагання
5.2.2. Критичні секції та блокування
5.3. Базові механізми синхронізації потоків
5.3.1. Семафори
5.3.2. М’ютекси
5.3.3. Умовні змінні та концепція монітора
5.3.4. Блокування читання-записування
5.3.5. Синхронізація за принципом бар’єра
5.4. Взаємодія потоків у Linux
5.4.1. Механізми синхронізації ядра Linux
5.4.2. Синхронізація процесів користувача у Linux. Ф’ютекси
5.5. Взаємодія потоків у Windows ХР
5.5.1. Механізми синхронізації потоків ОС
5.5.2. Програмний інтерфейс взаємодії Win32 АРІ
Висновки
Контрольні запитання та завдання
ЧАСТИНА 1
♦ Загальні принципи, види та стратегії планування
♦ Алгоритми планування
♦ Планування в Linux
♦ Планування у Windows ХР
Можливість паралельного виконання потоків залежить від кількості доступних процесорів. Якщо процесор один, паралельне виконання неможливе принципово (у кожен момент часу може виконуватися тільки один потік). Якщо кількість процесорів N > 1, паралельне виконання може бути реалізоване тільки для N потоків (по одному потокові на процесор).
Якщо потоків у системі більше, ніж доступних процесорів, ОС повніша розв’язувати задачу планування (scheduling). Головна мета планування для однопроцесорної системи полягає у такій організації виконання кількох потоків на одному процесорі, за якої у користувача системи виникало б враження, що вони виконуються одночасно.
Це означення може бути розширене на багатопроцесорні системи у разі виникнення задачі планування, коли кількість потоків перевищує кількість доступних процесорів.
У цій лекції мова піде про основні види планування, їхні принципи та алгоритми.
4.1. Загальні принципи планування
Розглянемо загальні принципи, що лежать в основі планування.
4.1.1. Особливості виконання потоків
З погляду планування виконання потоку можна зобразити як цикл чергування періодів обчислень (використання процесора) і періодів очікування введення-виведення. Інтервал часу, упродовж якого потік виконує тільки інструкції процесора, називають інтервалом використання процесора (CPU burst), інтервал часу, коли потік очікує введення-виведення, — інтервалом введення-виведення (I/O burst). Найчастіше ці інтервали мають довжину від 2 до 8 мс.
Потоки, які більше часу витрачають на обчислення і менше — на введення-виведення, називають обмеженими можливостями процесора (CPU bound). Вони активно використовують процесор. Основною їхньою характеристикою є час, витрачений на обчислення, інтервали використання процесора для них довші. Потоки, які більшу частину часу перебувають в очікуванні введення-виведення, називають обмеженими можливостями введення-виведення (I/O bound). Такі потоки завантажують процесор значно менше, а середня довжина інтервалу використання процесора для них невелика. Що вища тактова частота процесора, то більше потоків можна віднести до другої категорії.
Рис. 4.1. Класифікація потоків з погляду планування
