Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek_3_.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
258 Кб
Скачать
☆

2.1. Планування процесів

Якщо готових до виконання процесів більше одного, планувальник по­винен визначити, який з них першим призначити процесору. З цією метою пла­нувальник підтримує структуру даних, які дозволяють найбільш ефективним чи­ном розподіляти між процесами процесорний час. Кожен процес отримує клас (тип) пріоритету і розміщується у відповідній йому черзі разом з іншими працездатними процесами того ж пріоритетного класу. Тому істує декілька прі­оритетних черг, які відображають різні класи пріоритетів, які використовую­ть­ся системою. Ці пріоритетні черги впорядковуються і розміщуються в масив розподілу, що називається багаторівневою пріоритетною чергою (multilevel priority queue), зображеній на рис. 5. Кожен елемент цього масиву пов'язаний з конкретною пріоритетною чергою. Для виконання процесором планувальник призначає той процес, який міститься в головній частині не порожньої черги, і має самий високий пріоритет.

Пріоритети можуть бути динамічними і статичними. Один раз встанов­лений пріоритет змінити неможна, а динамічні – можна. Процеси з самим висо­ким пріоритетом можуть монополізувати використання процесора. Якщо ж прі­оритет процесу динамічний, то його початковий рівень може бути змінений більш високим значенням, в результаті чого такий процес буде переведений в чергу з більш високим пріоритетом. Крім того, процес, який монополізує про­це­сор, може отримати більш низький пріоритет, або ж, інші процеси можуть отримати більш високий пріоритет, ніж процес-монополіст. В UNIX/Linux для рівнів пріоритетів передбачено діапазон від -20 до 19. Чим вище значення рів­ня, тим нижче пріоритет процесу.

При призначенні пріоритету користувацькому процесу необхідно врахо­вувати, на що власне цей процес тратить більшу частину часу. Одні процеси ви­різняються підвищеною інтенсивністю використання процесорного часу (вони використовують процесор на протязі всього кванту процесорного часу). У дру­гих же більша частина часу йде на очікування операцій ввід-вивід або виконан­ня деяких інших подій. Якщо такий процес готовий до використання процесора, необхідно миттєво надати процесор, щоб він міг зробити наступний запит до пристроїв вводу-виводу. Процеси, які взаємодіють між собою, можуть вимагати доволі високий пріоритет, щоб розраховувати на достатній час реакції. Систем­ні процеси мають більш високий процес, ніж користувацькі.

2 .2. Стратегія планування

Процеси розміщуються в пріоритетних чергах у відповідності до страте­гії планування. В системах UNIX/Linux використовуються дві стратегії плану­вання FIFO (First In First Out – перший прийшов, першим обслужений) і RR (round-robin, тобто циклічна). Схема дії стратегії FIFO подана на рис. 6, а. При використанні стратегії FIFO процеси призначаються процесору у відповідності з часом надходження в чергу. Після закінчення кванту часу процес розміщуєть­ся на початок (головну частину) своєї пріоритетної черги. Коли процес, який очікує, стає працездатним (працездатним), він розміщується в кінець своєї пріо­ритетної черги. Процес може викликати системну функцію і відмовитися від процесора на користь іншого процесу з таким же рівнем пріоритету.

У відповідності з циклічною стратегією планування RR всі процеси вва­жаються рівноправними (рис. 6, б). RR-планування співпадає з FIFO-плануван­ням за одним виключенням: після закінчення кванту часу процес розміщується не на початок черги, а в кінець своєї пріоритетної черги, і процесору признача­є ться наступний (по черзі) процес.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]