- •Раздел II. Задачи и функции ос
- •Управление заданиями (процессами, задачами)
- •Классификация процессов
- •Планирование процессов
- •Взаимодействие процессов
- •Управление данными
- •Страничная и сегментная организация памяти
- •Свопинг (swapping)
- •Управление виртуальной памятью
- •Управление внешней памятью. Файлы.
- •Разделение доступа к данным в ос
Планирование процессов
Распределение процессов между имеющимися ресурсами называется планированием процессов.
Для эффективной загрузки ресурсов процессы объединяют в очереди. Новыепроцессы находятся вовходной очереди(очередь заданий). Она располагается во внешней памяти. Там процессы ожидают освобождения адресного пространства оперативной памяти.
Готовыек выполнению процессы располагаются в оперативной памяти в очереди готовых процессов. Там они ожидают освобожденияпроцессорного времени.
Ожидающийввода-вывода процесс находится в одной изочередей к оборудованию ввода-вывода.
При прохождении через компьютер процесс мигрирует между очередями под управлением программы-планировщика (scheduler). В ОС с мультипрограммированием обычно имеется 2 планировщика – краткосрочный и долгосрочный.
Краткосрочный планировщикрешает, какой из процессов в очереди готовых процессов должен быть передан на выполнение вCPU.Долгосрочный планировщикрешает, какой из процессов во входной очереди должен быть переведен в очередь готовых процессов в случае освобождения памяти.
Основное различие между ними заключается в частоте запуска: краткосрочный запускается раз в 100 мс, а долгосрочный – раз в несколько минут.
В некоторых ОС долгосрочный планировщик отсутствует. Например, в системах с разделением времени (time-sharingsystem) каждый новый процесс сразу помещается в оперативную память!
Существует множество алгоритмов работы краткосрочного планировщика.
FCFS = First Come First Served (первый пришел, первый обслужился). Это наиболее простая стратегия. Время ожидания для процессов здесь сильно зависит от порядка поступления в очередь готовых процессов. Если имеется несколько маленьких процессов и один большой, то возникает «эффект конвоя».
SJF = Shortest Job First (Наиболее короткое задание выполняется первым).Предназначено для борьбы с «эффектом конвоя». Снижает время ожидания в очереди. Основная трудность – в определении заранее длины процесса. Как правило, применяется в долгосрочных планировщиках, обслуживающих пакетный режим. В этом случае, программист перед отправлением задания в пакет должен указать макс. время выполнения задания.
Приоритетное планирование.Каждому процессу приписывается приоритет – целое положительное число, - определяющее очередность предоставления емуCPU. Приоритет зависит от требований процесса к памяти, кол-ва открытых файлов, времени ввода-вывода процесса, его важности (какой модуль ОС его запустил).
RR = Round Robin («Карусельная» стратегия). Применяется в системах разделения времени. Св-ва стратегии сильно зависят от величины выделяемого каждому процессу кванта времениtk, очередь готовых процессов рассматривается как кольцевая. Новые процессы добавляются в хвост очереди. Если процесс не завершился в выделенный ему квант времени, то его работа принудительно прерывается, и он перемещается в хвост очереди.
Multilevel queue scheduling (Планирование с использование многоуровневой очереди).Разработана для ситуации, когда процессы можно легко разбить на несколько групп (например, интерактивные и фоновые - пакетные). В каждой из очередей находится процессы с одинаковыми свойствами, а каждая отдельная очередь может иметь свою стратегию планирования. Ни один процесс с более низким приоритетом не может быть запущен, пока не выполнятся процессы во всех очередях в более высокими приоритетами.
Multilevel feedback queue scheduling (Планирование с использование многоуровневой очереди с обратными связями). Стратегия предполагает, что процессы могут перемещаться между очередями. Она является универсальной и сочетает в себе св-ва всех рассмотренных ранее стратегий.
