Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
83
Добавлен:
02.05.2014
Размер:
89.09 Кб
Скачать
    1. Планирование процессов

Распределение процессов между имеющимися ресурсами называется планированием процессов.

Для эффективной загрузки ресурсов процессы объединяют в очереди. Новыепроцессы находятся вовходной очереди(очередь заданий). Она располагается во внешней памяти. Там процессы ожидают освобождения адресного пространства оперативной памяти.

Готовыек выполнению процессы располагаются в оперативной памяти в очереди готовых процессов. Там они ожидают освобожденияпроцессорного времени.

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

При прохождении через компьютер процесс мигрирует между очередями под управлением программы-планировщика (scheduler). В ОС с мультипрограммированием обычно имеется 2 планировщика – краткосрочный и долгосрочный.

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

Основное различие между ними заключается в частоте запуска: краткосрочный запускается раз в 100 мс, а долгосрочный – раз в несколько минут.

В некоторых ОС долгосрочный планировщик отсутствует. Например, в системах с разделением времени (time-sharingsystem) каждый новый процесс сразу помещается в оперативную память!

Существует множество алгоритмов работы краткосрочного планировщика.

  1. FCFS = First Come First Served (первый пришел, первый обслужился). Это наиболее простая стратегия. Время ожидания для процессов здесь сильно зависит от порядка поступления в очередь готовых процессов. Если имеется несколько маленьких процессов и один большой, то возникает «эффект конвоя».

  2. SJF = Shortest Job First (Наиболее короткое задание выполняется первым).Предназначено для борьбы с «эффектом конвоя». Снижает время ожидания в очереди. Основная трудность – в определении заранее длины процесса. Как правило, применяется в долгосрочных планировщиках, обслуживающих пакетный режим. В этом случае, программист перед отправлением задания в пакет должен указать макс. время выполнения задания.

  3. Приоритетное планирование.Каждому процессу приписывается приоритет – целое положительное число, - определяющее очередность предоставления емуCPU. Приоритет зависит от требований процесса к памяти, кол-ва открытых файлов, времени ввода-вывода процесса, его важности (какой модуль ОС его запустил).

  4. RR = Round Robin («Карусельная» стратегия). Применяется в системах разделения времени. Св-ва стратегии сильно зависят от величины выделяемого каждому процессу кванта времениtk, очередь готовых процессов рассматривается как кольцевая. Новые процессы добавляются в хвост очереди. Если процесс не завершился в выделенный ему квант времени, то его работа принудительно прерывается, и он перемещается в хвост очереди.

  5. Multilevel queue scheduling (Планирование с использование многоуровневой очереди).Разработана для ситуации, когда процессы можно легко разбить на несколько групп (например, интерактивные и фоновые - пакетные). В каждой из очередей находится процессы с одинаковыми свойствами, а каждая отдельная очередь может иметь свою стратегию планирования. Ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях в более высокими приоритетами.

  6. Multilevel feedback queue scheduling (Планирование с использование многоуровневой очереди с обратными связями). Стратегия предполагает, что процессы могут перемещаться между очередями. Она является универсальной и сочетает в себе св-ва всех рассмотренных ранее стратегий.