Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на государственный экзамен. 39 страниц..doc
Скачиваний:
15
Добавлен:
13.09.2019
Размер:
579.58 Кб
Скачать

13. Планирование процессов как функция ядра операционной системы

Планирование процессов на уровне ядра ОС включает в себя решение следующих задач:

  • определение момента времени для смены выполняемого про­цесса;

  • выбор процесса на выполнение из очереди готовых процессов;

- переключение контекстов «старого» и «нового» процессов. Существует множество различных алгоритмов планирования

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

1. Алгоритмы с применением прерываний процессов и без них. (Иногда применяются термины «вытесняющая многозадачность» и « невытесняющая многозадачность ».)

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

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

Кванты, выделяемые процессам, могут быть одинаковыми для всех процессов или различными. Кванты, выделяемые одному про­цессу, могут быть фиксированной величины или изменяться в разные периоды жизни процесса. Процессы, которые не полностью исполь­зовали выделенный им квант (например, из-за ухода на выполнение операций ввода-вывода), могут получить или не получить компенса­цию в виде привилегий при последующем обслуживании. По разному может быть организована очередь готовых процессов: циклически, по правилу «первый пришёл — первый обслужен» (FIFO) или по какому-либо другому принципу.

Такой порядок планирования применяется в системах разделе­ния времени, ориентированных на интерактивное взаимодействие с пользователями.

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

  • процесс завершился;

  • процесс перешёл в состояние блокировки;

- процесс самостоятельно передал управление другим процессам. Такие алгоритмы планирования наиболее эффективны в пакет­ ных системах обработки.

2. Алгоритмы с использованием приоритетов и без них.

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

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

Во многих ОС планировщики построены как комбинация опи­санных выше принципов планирования.