Распределение процессора

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

Процесс, будь он в состоянии исполнения, готовности или в заблокированном состояния, некогда получил необходимые ему ресурсы, возможно, за исключением фактического процессора. Тем самым ему был выделен виртуальный процессор. О таком первоначальном выделении виртуального процессора говорят как о создании процесса. Интерактивный процесс создается всякий раз, когда пользователю разрешается войти в систему. Этот процесс сразу же переводится в состояние готовности; если же необходимых ресурсов в наличии нет, то вход в систему просто запрещается. Пакетная работа обычно помещается в очередь работ, где она, находясь в состоянии ввода, как это показано на рис. 1.1, ждет выделения виртуального процессора. Предполагается, что каждая пакетная работа требует создания одного процесса. Со временем пакетная работа выбирается, т. е. ей выделяются необходимые ресурсы. Создается соответствующий процесс, и считается что он находится в состоянии готовности. Когда пакетный процесс завершен, его виртуальный процессор освобождается и процесс исчезает. Затем работа переводится в состояние вывода, где она, прежде чем покинуть систему, ждет завершения печати всех ее выводимых данных. Интерактивный процесс, освобождает свой виртуальный процессор просто выходом из системы непосредственно из состояния исполнения.

 

 

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

Процесс снимается с процессора управляющей программой, как правило, в связи с окончанием выделенного ему времени. Из состояния исполнения он опять возвращается в состояние готовности.

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

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

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

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

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

Можно считать, что планировщик и диспетчер управляют очередями работ, или процессов, каждая из которых ждет выделения процессора, виртуального или фактического, или свершения некоторого события. Следовательно, производительность различных алгоритмов управления можно качественно анализировать, используя теорию очередей. Следует заметить, что знание основ теории очередей существенно для более глубокого понимания управления не только процессором, но и большинством ресурсов.

Далее...

   Обложка   Учебник   Экзамен   Глоссарий   Информация 
Hosted by uCoz