Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн пособ ОС (Кручинин).doc
Скачиваний:
52
Добавлен:
05.05.2019
Размер:
1.52 Mб
Скачать

2.4.1 Планирование в системах пакетной обработки данных

1 «Первым пришёл – первым ушёл»

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

2 Алгоритм «Кратчайшая задача – первая»

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

3 Алгоритм «Наименьшее оставшееся время выполнения»

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

4 Алгоритм трехуровневого планирования

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

Рисунок 15 – Трехуровневое планирование

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

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

2.4.2 Планирование в интерактивных системах

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

1 Алгоритм циклического планирования

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

Рисунок 16 – Циклическое планирование

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

2 Алгоритм с приоритетным планированием

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

3 Алгоритм «Самый короткий процесс – следующий»

Сходен с алгоритмом «Кратчайшая задача – первая». Но если в системах пакетной обработки предполагается, что примерно известно время выполнения задачи, то для оценки длины процесса в интерактивных системах используется метод оценки по предыдущим запускам программы, называемый старением.

Допустим, что предполагаемое время исполнения команды равно T0 и предполагаемое время следующего запуска равно T1,. Можно улучшить оценку времени, взяв взвешенную сумму этих времен αT0 + (1 – α) T1. Выбирая соответствующее значение α, можно заставить алгоритм оценки быстро забывать о предыдущих запусках или, наоборот, помнить о них в течение долгого времени. Взяв α = 1/2, получим серию оценок:

. (1)

4 Гарантированное планирование

Суть данного алгоритма заключается в том, чтобы отдавать процессам реальное количество циклов процессора. Если процессором пользуются n пользователей, то одному пользователю будет предоставлено 1/n мощности процессора. Чтобы выполнить это обещание, система должна отслеживать распределение процессора между процессами с момента создания каждого процесса. Система рассчитывает количество ресурсов процессора, на которое процесс имеет право, например время с момента создания, деленное на n. Теперь можно сосчитать отношение времени, предоставленного процессу, к времени, на которое он имеет право. Полученное значение 0.5 означает, что процессу выделили только половину положенного, а 2.0 означает, что процессу досталось в два раза больше, чем положено. Затем запускается процесс, у которого это отношение наименьшее, пока оно не станет больше, чем у его ближайшего соседа.

5 Лотерейное планирование

В основе алгоритма лежит раздача процессам лотерейных билетов на доступ к различным ресурсам, в том числе и к процессору. Когда планировщику необходимо принять решение, выбирается случайным образом лотерейный билет, и его обладатель получает доступ к ресурсу. Что касается доступа к процессору, «лотерея» может происходить 50 раз в секунду, и победитель получает 20 мс времени процессора. Если всего 100 билетов и 20 из них находятся у одного процесса, то ему достанется 20 % времени процессора. В отличие от приоритетного планировщика, в котором очень трудно оценить, что означает, скажем, приоритет 40, в лотерейном планировании все очевидно. Каждый процесс получит процент ресурсов, примерно равный проценту имеющихся у него билетов.

6 Справедливое планирование

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