Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

3.4.1.1. Поведение процесса

На рис. 3.11 изображено чередование пиков вычислительной активности процессов с запросами ввода-вывода. Обычно центральный процессор некоторое время работает без прерываний, после чего происходит системный вызов для чтения или записи файловых данных. После завершения системного вызова центральный процессор вновь производит вычисления до тех пор, пока ему не будут нужны дополнительные данные или не возникнет необходимость записать дополнительные данные на диск и т.д. Процессы, которые проводят основную часть своего времени за вычислениями (рис. 3.11, а), называются процессами, ограниченными скоростью вычислений. Те процессы, которые основную часть своего времени ожидают завершения операций ввода-вывода (рис. 3.11, б), называются процессами, ограниченными скоростью работы устройств ввода-вывода.

Рис

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

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

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

Предыдущий раздел Оглавление Следующий раздел