Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции.doc
Скачиваний:
43
Добавлен:
30.04.2013
Размер:
16.33 Mб
Скачать

Описание подсистем ядра unix

Планировщик. Назначение планировщика.

Задача планирования выполнения процессов является наиболее важной задачей в ядре любой ОС. Планировщик предназначен для управления

доступом ко всем ресурсам компьютера, включая центральный процессор, память, периферийные устройства и сеть. Управление ОС Unix, осуществляемое планировщиком, основано не только на предоставлении доступа к

ресурсам компьютера, но и на предоставлении доступа к подсистемам са­мого ядра.

В системе разделения времени ядро предоставляет процессу пользовате­ля ресурсы центрального процессора (ЦП) в течение интервала времени, называемого квантом, по истечении которого выгружает этот процесс и

запускает другой, периодически переупорядочивая очередь процессов.

Все процессы, находящиеся в системе (пользовательские и системные), конкурируют за процессорное время. При этом существуют, как правило, две очереди процессов:

очередь готовых процессов, ожидающих кванта времени ЦП (Ready);

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

вытеснение процесса, то он выполняется до тех пор пока не выполнится

схема планирования ресурсов С процессором Proc показана на РИС. J.1. Каждый процесс может находиться в одном из состояний: готовом, забло­ированном или выполняемом. Из состояния выполнения он может быть выведен по одному из следующих событии:

истечение его квант времени;

блокировка процесса;

процесс будет вытеснен более приоритетным процессом;

процесс будет завершён.

Если произошло одно из указанных событий, процесс переводится либо очередь Wait, либо в очередь Ready, либо уходит из системы. По окончании блокировки процессы переводятся из очереди Wait в Ready. Алгоритм планирования в такой системе включает в себя способ выбора готового процесса из заданной совокупности процессов и минимально гарантиро­,анного времени его выполнения.

Пусть каждому процессу поставлен в соответствие приоритет - целое число, учитывающее важность процесса, занимаемый им объем памяти, рочность выполнения и объем I/О, а также внешний приоритет, назначае­шгй пользователем. На определение такого приоритета должны влиять акже и динамические характеристики: общее время ожидания; ресурсы, гаходящиеся в распоряжении процесса; процессорное время, полученное в госледний раз; общее время нахождения процесса в системе и т. д. Отсюда следует, что приоритет процесса должен вычисляться динамически, с учётом вышеперечисленных параметров.

Рассмотрим несколько наиболее распространенных алгоритмов планирования.

Планирование но наивысшему приоритету (hpf)

В этом методе (highest p riority fi rst) процессор предоставляется тому гроцессу, который имеет наивысший приоритет. И если не допускается вытеснение процесса, то он выполняется до тех пор пока не выполнится

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

Если очередь Ready отсортирована по приоритетам, то первый процесс выбирается автоматически. В противном случае необходимо проводить :

повторную сортировку всей очереди с учетом параметров процессов с не­которым интервалом времени.

В стратегии НРF необходимо задать параметры , определяющие величи‑

ну приоритета. Иногда таким параметром является первое, самое короткое Х задание SJF (shortest job first). Здесь, как правило, используется ожидаемое

(оцениваемое) время выполнения процесса, ибо точное время известно

очень редко.