Наиболее критическим ресурсом любой системы – время процессора. В многопроцессорных системах задача управления ими усложнена. Для управления временем процессора используется два модуля ОС – Планирование и Диспетчеризация.
Планирование – формирование очереди процессов, готовых к выполнению.
Диспетчеризация – выбор процессора и его времени для процесса, готового к выполнению.
Часто процедура обслуживания очереди процессов и выбора процессора выполняется 1 модулем – планировщик-диспетчер. Системы реального времени представляют особый случай.
В очереди, готовых к выполнению процессов могут находится новые процессы, которые только что запущены и не получали ни разу кванта времени процессора.
Планирование организует работу каждого вида. Планирование определяет, какому процессу будет выделен квант времени и размер этого кванта.
Возможно использование очереди с приоритетами: к каждому процессу в очереди ставится в соответствие некоторый приоритет (целое число). Приоритет определяется статическими и динамическими характеристиками процесса. К статическим хар. относятся: необходимый размер памяти и ожидаемое процессом время, а также ожидаемый объем ввода-вывода. Приоритет, назначаемый пользователем также определяется статическими характеристиками.
Динамические характеристики – изменения при выполнении программы. На них влияет поведение процесса при предыдущем выделении кванта времени процессора. Приоритет может быть временно увеличен, если приложение выполнило запрос ввода-вывода либо приложение стало приложением переднего плана.
Изменение динамич. приоритета чаще всего происходит в сторону увеличения на несколько квантов времени.
Системные процессы имеют такой же приоритет, что и пользовательские, за исключением процессов внешних устройств.
Необходимо учитывать показатели производительности, малое время простоя, обоснованное время ожидание заданий пользователя.
В случае пустой очереди ОС имеет холостой процесс, запускаемый в данном случае.
В ОС Виндоус используется 32 уровня приоритета. Процессы могут выполнятся параллельно. В некоторых ОС приоритет меняется в диапазона 0 – 255.
Диспетчеризация имеет несколько дисциплин:
1) Бесприоритетные - линейные (в порядке очереди, случайный выбор процесса), циклические (циклический алгоритм, многоприоритетный циклический алгоритм)
2) Приоритетные – с динамическим приоритетом (приоритеты, зависящие от времени ожидания, зависящие от времени обслуживания), с фиксированным приоритетом (абсолютный, относительный приоритеты, адаптивное обслуживание, многоприоритетный циклический алгоритм).
Самой простой в реализации дисциплиной является дисциплина FIFO. Если процессы при выполнении были заблокированы, то после перехода в состояние готовности ставятся в эту очередь. Возможны 2 вар:
1)заблокированный процесс ставится в конец очереди
2)перемещение перед теми задачами, которые не выполнялись.
лекция 7
Планирование
Циклическое планирование – после завершения кванта времени, если процесс не завершен, ставится в очередь. Для выполнения процесс выбирается из головы очереди. При циклическом планировании имеет размер значение размер кванта времени процессора. Если его величина велика, то последним в очереди поцессам приходится слишком долго ожидать своего выполнения. Сокращение квантова времени улучшает обслуживание более коротких процессов. Выбор слишком малого значения кванта времени может привести к тому, что размер кванта станет соразмерным со временем, необходимым для переключения процесса. Такая ситуация увеличивает накладные расходы времени на переключенне.
ПЛАНИРОВАНИЕ с использование очереди с обратной связью.
В очередь помещается процесс №1. Такой процесс становится в очередь №2. Если при выдачи канта времени он не завершится, то перейдет в очередь №3. Планировщик выделяет процессорное время процессам, находящимся в очереди с наименьшим номером. В таком случае, наивысший приоритет имеют процессы в очереди №1(новые процессы).Если очередь новых процессов иссякает, то тогда квант времени выделяется процессам из 2-ой очереди. Для организации и работы нескольких очередей необходимы дополнительные затраты ресурсов. Обычно для сокращения потерь следующая очередь может выбираться не тогда, когда предыдущая очередь опустеет, а по истечению фиксированного кол-ва квантов времени.