
- •3.1 Тема Загальні принципи планування
- •3.1.1 Особливості виконання потоків
- •3.1 Механізми і політика планування
- •3.1.2 Застосовність принципів планування
- •3.2 Тема Види планування
- •3.2.1. Довготермінове планування
- •3.2.2 Середньотермінове планування.
- •3.2.3 Короткотермінове планування
- •3.2.4 Типи планування
- •Статистичне планування.
- •3.3 Тема Стратегії планування
- •3.3.1 Варіанти передачі керування від одного потоку.
- •3.3.2 Витісняльна і невитісняльна багатозадачність.
- •3.4 Тема Алгоритми планування
- •3.4.1 Планування за принципом fifo
- •3.4.2 Кругове планування
- •3.4.3 Планування із пріоритетами
- •3.4.4 Планування на підставі характеристик подальшого виконання
- •3.4.5 Багаторівневі черги зі зворотним зв'язком
- •3.4.6 Лотерейне планування
- •3.5 Тема Реалізація планування в Linux
- •3.5.1 Планування в Linux — традиційне, що належить до ядер версій до 2.4 включно
- •3.5.2 Планування в Linux —нове, що включене в ядро версії 2.6
- •3.6.1 Планування потоків у ядрі
- •3.6.2 Особливості задання кванта часу
- •3.6.3 Програмний інтерфейс планування
Змістовий модуль 3. Планування та диспетчеризація процесів.
Лекція №8
3.1 Тема Загальні принципи планування
План
Особливості виконання потоків.
Механізми і політика планування.
Застосовність принципів планування.
Мета: Вивчити особливості виконання потоків. Знати поняття механізму і політики планування. Знати застосовність принципів планування.
.
3.1.1 Особливості виконання потоків
Можливість паралельного виконання потоків залежить від кількості доступних процесорів. Якщо процесор один, паралельне виконання неможливе принципово (у кожен момент часу може виконуватися тільки один потік). Якщо кількість процесорів N> 1, паралельне виконання може бути реалізоване тільки для N потоків (по одному потокові на процесор).
Якщо потоків у системі більше, ніж доступних процесорів, ОС повинна розв'язувати задачу планування (scheduling). Перехід від виконання одного потоку до іншого відбувається в результаті планування та диспетчеризації. Робота по визначенню того, в який момент необхідно перервати виконання поточного активного потоку і якому потоку передати можливість виконання, називається плануванням. Планування потоків відбувається на основі інформації, яка зберігається в заголовках процесів та потоків.
Головна мета планування для однопроцесорної системи полягає у такій організації виконання кількох потоків на одному процесорі, за якої у користувача системи виникало б враження, що вони виконуються одночасно.
Це означення може бути розширене на багатопроцесорні системи у разі виникнення задачі планування, коли кількість потоків перевищує кількість доступних процесорів
Розглянемо загальні принципи, що лежать в основі планування.
З погляду планування виконання потоку можна зобразити як цикл чергування періодів обчислень (використання процесора) і періодів очікування введення-ви-ведення. Інтервал часу, упродовж якого потік виконує тільки інструкції процесора, називають інтервалом використання процесора (CPU burst), інтервал часу, коли потік очікує введення-виведення, — інтервалом введення-виведення (I/O burst). Найчастіше ці інтервали мають довжину від 2 до 8 мс. Потоки, які більше часу витрачають на обчислення і менше — на введення-виве-дення, називають обмеженими можливостями процесора (CPU bound). Вони активно використовують процесор. Основною їхньою характеристикою є час, витрачений на обчислення, інтервали використання процесора для них довші. Потоки, які більшу частину часу перебувають в очікуванні введення-виведення, називають обмеженими можливостями введення-виведення (I/O bound). Такі потоки завантажують процесор значно менше, а середня довжина інтервалу використання процесора для них невелика. Що вища тактова частота процесора, то більше потоків можна віднести до другої категорії.
Планування – це робота по визначенню того, в який момент перервати виконання одного потоку і якому потоку надати можливість виконуватись.
Задачі планування:
визначення моменту часу для зміни поточного активного потоку;
вибір для виконання потоку із черги готових потоків.
Диспетчеризація – це реалізація рішення, знайденого в результаті планування.
Задачі диспетчеризації:
збереження контекста поточного потоку;
завантаження контекста нового потоку;
запуск нового потоку на виконання.