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

Метод круговорота (карусель)

Самым просты м методом планирования является простой круговорот

(round rabin, RR), который не использует никакой информации о приоритетах. Порядок обслуживания процессов обычно подчиняется алгоритму

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

наличии N процессов в системе обслуживания можно считать, что ско­рость выполнения процесса равна V/N, где V – истинное 6ыстродействие процессора. С уменьшением кванта времени улучшается обслуживание

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

Существует много разновидностей этого метода, например "эгоистиче­ский" RR. Здесь процесс ждет, пока его приоритет не достигнет величины

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

Очереди с обратной связно (fв)

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

Процессы требующие мало времени на работу, о6служиваются здесь

лучше, чем при карусельном планировании. Однако большое число очере­дей увеличивают накладные расходы.

Многоуровневое планирование

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

В основе метода многоуровневого планирования лежит следующий ал­горитм – операции, которые встречаются часто, должны требовать меньше времени, чем Те, которые встречаются редко. С этой целью все операции в зависимости от частоты выполнения разбиваются на уровни. Часто используется трехуровневая система планирования: диспетчер, краткосрочный планировщик и долгосрочный планировщик.

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

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

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