Когда планировать?

Ключевым вопросом планирования является момент принятия решения. Оказывается, существуют разнообразные ситуации, требующие вмешательства планировщика. Во-первых, при создании нового процесса необходимо принять решение, какой из процессов выполнять, родительский или дочерний.
Поскольку оба процесса находятся в состоянии готовности, вполне естественно, что планировщик должен принять решение, то есть вполне обоснованно выбрать выполнение либо родительского, либо дочернего процесса.

Во-вторых, планировщик должен принять решение, когда процесс завершает работу. Процесс больше не может выполняться (поскольку он уже не существует), поэтому нужно выбрать какой-нибудь процесс из числа готовых к выполнению. Если готовые к выполнению процессы отсутствуют, обычно запускается предоставляемый системой холостой процесс.

В-третьих, когда процесс блокируется в ожидании завершения операции ввода-вывода, на семафоре или по какой-нибудь другой причине, для выполнения должен быть выбран какой-то другой процесс. Иногда в этом выборе играет роль причина блокирования. Например, если процесс А играет важную роль и ожидает, пока процесс Б не выйдет из критической области, то предоставление очередности выполнения процессу Б позволит этому процессу выйти из его критической области, что даст возможность продолжить работу процессу А. Но сложность в том, что планировщик обычно не обладает необходимой информацией, позволяющей учесть данную зависимость.

В-четвертых, планировщик должен принять решение при возникновении прерывания ввода-вывода. Если прерывание пришло от устройства ввода-вывода, завершившего свою работу, то какой-то процесс, который был заблокирован в ожидании завершения операции ввода-вывода, теперь может быть готов к возобновлению работы. Планировщик должен решить, какой процесс ему запускать: тот, что только что перешел в состояние готовности, тот, который был запущен за время прерывания, или какой- нибудь третий процесс.

Если аппаратный таймер обеспечивает периодические прерывания с частотой 50 или 60 Гц или с какой-нибудь другой частотой, планировщик должен принимать решения при каждом прерывании по таймеру или при каждом к-м прерывании. По реакции на прерывания по таймеру алгоритмы планирования можно разделить на две категории. Неприоритетный алгоритм планирования выбирает запускаемый процесс, а затем просто дает ему возможность выполняться до тех пор, пока он не заблокируется (в ожидании либо завершения операции ввода-вывода, либо другого процесса), или до тех пор, пока он добровольно не освободит центральный процессор. Даже если процесс будет работать в течение многих часов, он не будет приостановлен в принудительном порядке. В результате во время прерываний по таймеру решения приниматься не будут. После завершения обработки прерывания по таймеру работу возобновит ранее запущенный процесс, если только какой-нибудь процесс более высокого уровня не ожидал только что истекшей задержки по времени.

В отличие от этого приоритетный алгоритм планирования предусматривает выбор процесса и предоставление ему возможности работать до истечения некоторого строго определенного периода времени. Если до окончания этого периода он все еще будет работать, планировщик приостанавливает его работу и выбирает для запуска другой процесс (если есть доступный для этого процесс). Осуществление приоритетного алгоритма планирования требует наличия прерываний по таймеру, возникающих по окончании определенного периода времени, чтобы вернуть управление центральным процессором планировщику. Если прерывания по таймеру недоступны, остается лишь использовать неприоритетное планирование.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Когда планировать?:

  1. Уличающий вопрос необходим, когда собеседник искажает или скрывает информацию, когда возникает противоречие между его словами и ранее установленными вами фактами. Его надо использовать с осторожностью, лучше не в прямой форме и ближе к концу разговора, чтобы не оборвать его ход.
  2. Когда?
  3. Не “когда”, а “где”
  4. Когда начинать?
  5. 4. Когда он разочаровывает ее
  6. Когда нарушается цикл
  7. Когда мы нервные, мы — дети
  8. Когда становится больно
  9. Когда решение принято
  10. КОГДА ВАС КРИТИКУЮТ
  11. Когда Вы переживаете прозрение
  12. КОГДА МУЖЧИНА НЕ «ОТТЯГИВАЕТСЯ»
  13. КОГДА МАМА ВЛЮБИЛАСЬ
  14. Когда успех не улыбается
  15. 7.17. КОГДА КОНВЕРТ НЕ НУЖЕН
  16. КОГДА ВЕНЕРИАНКИ ГОВОРЯТ
  17. Когда проходит детство