
Лекции / Лекция 5 Планирование ресурсов вычислительной системы
.docЛекция №5. Планирование ресурсов вычислительной системы
Планирование – выбор, какому следующему процессу предоставить ресурс. Можно планировать на один шаг или на несколько шагов вперед (горизонт планирования). Выделяют четыре вида планирования:
-
Краткосрочное планирование (между готовностью и исполнением процессов, на уровне диспетчеризации процессов) – не сильно влияет на работу ОС.
-
Долгосрочное планирование (между рождением и статусом готовности) – надолго меняется работа ОС.
-
Среднесрочное планирование (1. между готовностью процесса в оперативной памяти и готовностью процессов не в оперативной памяти; 2. между ожиданием в оперативной памяти и не в оперативной памяти) – сбрасывание из оперативной памяти не скоро выполняющихся процессов.
-
Планирование доступа к отдельным устройствам – например, планирование устройств ввода-вывода, планировщик будет столько, сколько устройств ввода-вывода.
Критерии планирования (5 основных):
-
Справедливость – гарантия каждому заданию или процессу определенной части времени использования процессора, недопускание ситуации, когда один процесс исполняется постоянно, а другой (уже запущенный) не имеет доступа к процессору;
-
Эффективность использования ресурсов – алгоритм должен по максимуму занять процессор (реально процессор занимается на 40-60%);
-
Сокращение полного времени выполнения – обеспечение минимального времени между стартом процесса и его завершением;
-
Время ожидания – минимизация времени, которое проводят процессы в состоянии готовности;
-
Время отклика – минимизация времени на взаимодействие с внешними факторами (как с устройствами, так и с пользователем).
Свойства алгоритмов планирования:
-
Предсказуемость – одно и то же задание должно выполняться приблизительно за одно и то же время;
-
Масштабируемость – алгоритмы не должны терять работоспособность при увеличении нагрузки;
-
Минимальные расходы – соотношения времени выборки процесса на исполнение и времени исполнения должны быть существенны.
Параметры планирования
Статические параметры – это предельные значения ресурсов системы (объем оперативной памяти, частота процессора).
Динамические параметры – это количество ресурсов в текущий момент времени.
На этапе загрузки процесса появляются статические параметры:
-
каким пользователем запущен процесс;
-
приоритет задачи;
-
сколько процессорного времени запрошено для решения задачи;
-
каково соотношение процессорного времени и времени, необходимого на операции ввода/вывода;
-
какие ресурсы, и в каком количестве необходимы (оперативная память, устройства ввода/вывода, специальные библиотеки).
Динамические параметры появляются после первого исполнения:
-
сколько времени прошло со времени выгрузки процесса на диск или загрузки его в оперативную память;
-
сколько оперативной памяти занимает процесс;
-
сколько процессорного времени было предоставлено процессу.
У процесса разделяют два состояния (временных). Эти параметры тоже являются динамическими и они измеряются после каждого очередного исполнения:
-
CPU burst – промежуток непрерывного исполнения на процессоре;
-
I/O burst – промежуток ожидания ввода/вывода.
Алгоритмы планирования
Все планирование в ОС осуществляет планировщик. Он же принимает решение о выборе следующего задания или нового процесса на исполнение из числа готовых. Это происходит в следующих случаях:
-
процесс переходит из состояния исполнения в состояние завершения;
-
процесс переводится из состояния исполнения в состояние ожидания;
-
процесс переводится из состояния исполнения в состояние готовности;
-
процесс переводится из состояния ожидания в состояние готовности (завершилась операция ввода/вывода).
В первом и втором случаях находившийся в состоянии исполнения процесс, не может исполняться дальше, и должен быть выбран новый процесс.
В третьем и четвертом случаях процесс, который исполнялся до прерывания, может продолжать свое выполнение после обработки прерывания.
Если планирование происходит с использованием только случаев 1 и 2, то имеет место не вытесняющее планирование. Если к этим двум случая добавляется либо 3, либо 4, либо и 3, и 4, то имеет место вытесняющее планирование.
Вытесняющее планирование – исполняющийся процесс может быть вытеснен из состояния исполнения другим процессом.
FCFS – First Come First Served – простейший алгоритм планирования. Организует очередь процессов и последовательно их исполняет. Следующий процесс начинает исполняться после полного завершения предыдущего. Этот алгоритм осуществляет не вытесняющее планирование, легко реализуем, но неэффективен.
SJF – Shortest Job First – то же самое, что FCFS, но с приоритетным планированием: минимальная по времени выполнения задача ставится в начало очереди. Обычно этот алгоритм применяется для краткосрочного планирования, может быть как вытесняющим, так и не вытесняющим.
RR – Round Robin – FCFS, который поставлен в замкнутый цикл. Процессор предоставляет текущему процессу определенный квант времени, после чего следующий начинается выполняться, а текущий переходит в состояние готовности. Эффективность этого алгоритма зависит от объема требуемого времени каждому из процессов и фиксированному кванту времени. Если квант времени маленький, то много процессов будут выполняться параллельно и медленно. Новый процесс включается в цикл в конец очереди.
По расчету времени может быть два случая:
-
время непрерывного использования процессора, требующееся процессу, меньше или равно продолжительности кванта времени: процесс самостоятельно освобождает процессор, завершаясь, и отсчет кванта времени начинается заново.
-
продолжительность остатка текущего CPU burst процесса больше, чем квант времени. Тогда, по истечении этого кванта, процесс становится в конец очереди, а процессор выделяется следующему, находящемуся в начале.
Алгоритмы SJF и Гарантированного планирования – частные случаи приоритетного планирования.
Приоритетное планирование заключается в том, что у каждого процесса есть свой приоритет, в соответствии с которым ему выделяется процессор. Для SJF алгоритмы – это требуемое время, для гарантированного планирования – коэффициент справедливости.
Назначение приоритета опирается как на внешние, так и на внутренние критерии системы. К внешним относится:
-
важность процесса;
-
стоимость процессорного времени (значимость процесса в системе).
К внутренним относятся качественные и количественные характеристики процесса (ограничение по времени использования процессора, число открытых файлов, число используемых устройств ввода/вывода).
Приоритетное планирование может быть как вытесняющим, так и не вытесняющим. Если вытесняющее – процесс с большим приоритетом вытесняет тот, у которого меньше. Не вытесняющее – с меньшим приоритетом процесс завершается, с большим начинает выполняться.
Современные системы работают как многоуровневая очередь. На каждом уровне может быть применен свой алгоритм.