Планування на підставі характеристик подальшого виконання

 

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

Найбільш поширеним алгоритмом планування в системах розподілу часу є кільцевий режим (Round Robin). Основний сенс алгоритму полягає в тому, що час процесора ділиться на кванти фіксованого розміру, а процеси, готові до виконання, вибудовуються в кільцеву чергу (див. Малюнок 1.26, «Схема планування з кільцевою чергою»). У цієї черги є два покажчики - почала і кінця. Коли процес, що виконується на процесорі, вичерпує свій квант процесорного часу, він знімається з процесора, ставиться в кінець черги, а ресурси процесора віддаються процесу, що знаходиться на початку черги. Якщо процес, що виконується на процесорі, відкладається (наприклад, унаслідок обміну з деяким зовнішньому пристроєм) до того, як він вичерпає свій квант, то після повторної активізації він стає в кінець черги (не зміг допрацювати - не провина системи). Це прекрасна схема розподілу часу у разі, коли усі процеси одночасно поміщаються в оперативній пам'яті.

Малюнок 1.26. Схема планування з кільцевою чергою

 

Проте операційна система UNIX завжди була розрахована на те, щоб обслуговувати більше процесів, чим можна одночасно розмістити в основній пам'яті. Іншими словами, частина процесів, потенційно готових виконуватися, розміщувалася в зовнішній пам'яті (куди образ пам'яті процесу потрапляв в результаті своппинга). Тому була потрібна дещо гнучкіша схема планування розподілу ресурсів процесора(ов). В результаті було введено поняття пріоритету (див. Малюнок 1.27, «Схема планування з кільцевою чергою і пріоритетами»). У операційній системі UNIX значення пріоритету визначає, по-перше, можливість процесу перебувати в основній пам'яті і на рівних конкурувати за процесор. По-друге, від значення пріоритету процесу, взагалі кажучи, залежить розмір тимчасового кванта, який надається процесу для роботи на процесорі досягши своєї черги. По-третє, значення пріоритету, впливає на місце процесу в загальній черзі процесів до ресурсу процесора.

Малюнок 1.27. Схема планування з кільцевою чергою і пріоритетами

 

Контрольні запитання:

  1. Які алгоритми планування використовуються в Unix?
  2. Намалюйте схему планування з кільцевою чергою
  3. Намалюйте схему планування з кільцевою чергою і пріоритетами

Література:

Електроний ресурс http://ru.wikibooks.org/wiki/Введение в администрирование UNIX/Архітектура_UNIX#.D0.9F.D0.BB.D0.B0.D0.BD.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BF.D1.80.D0.BE.D1.86.D0.B5.D1.81.D1.81.D0.BE.D0.B2 _