Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы построения операционных систем.doc
Скачиваний:
50
Добавлен:
07.11.2018
Размер:
5.07 Mб
Скачать

5. Управление процессором

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

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

5.1. Диспетчеризация процессов

Для исполнения диспетчер выбирает процесс, находящийся в состоянии готовности. При этом диспетчер должен учитывать следующие факторы:

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

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

- приоритетность процессов. Для процессов более высокого приоритета должны создаваться лучшие условия выполнения, чем для процессов более низкого приоритета;

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

- насколько часто данный процесс приостанавливается из-за переключения на процесс более высокого приоритета. Часто приостанавливаемым процессам следует создавать менее благоприятные условия для продолжения работы. Это объясняется тем, что для запуска подобного процесса операционной системе каждый раз приходится идти на определенные накладные расходы, а короткое время работы процесса перед приостановкой их не оправдывает;

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

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

Если после предоставления ЦП в распоряжение некоторого процесса отобрать ЦП у этого процесса нельзя, то говорят о дисциплине диспетчеризации без переключения. Если же ЦП можно отобрать, то говорят о дисциплине диспетчеризации с переключением.

Диспетчеризация с переключением необходима в системах, в которых процессы высокого приоритета требуют немедленного внимания. Например, в системах реального времени пропажа одного важного сигнала прерывания может привести к катастрофическ­им последствиям. В интерактивных системах разделения времени диспетчеризация с переключением играет важную роль, поско­льку позволяет гарантировать приемлемые времена ответа.

Диспетчеризация, требующая контекстных переключений, сопряжена с определенными накладными расходами. Чтобы обеспечить ее эффективность, в основной памяти должно размещаться много процессов, с тем чтобы очередной процесс был, как правило, готов для выполнения, когда освобождается ЦП. А размещение неработающих программ в основной памяти также сопряжено с накладными расходами.

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