Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / Лекция 4

.docx
Скачиваний:
135
Добавлен:
25.02.2015
Размер:
9.94 Кб
Скачать

Планирование процессов

Трехуровневое планирование

планирование заданий (как, в какой последовательности они будут выполняться);

планирование процессора (на сколько он будет загружен, какие кванты времени будут выделены);

планирование памяти (ресурсов).

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

Критерии планирования и требования к алгоритму планирования

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

Эффективность – алгоритм должен по максимуму занять процессор (реально процессор занимается на 40-60%).

Сокращение полного времени выполнения – обеспечение минимального времени между стартом процесса и его завершением.

Сокращение времени ожидания – минимизация времени, которое проводят процессы в состоянии готовности.

Сокращение времени отклика – минимизация времени на взаимодействие с внешними факторами (как с устройствами, так и с пользователем).

Алгоритмы планирования должны быть предсказуемыми, то есть одно и то же задание должно выполняться приблизительно за одно и то же время.

Алгоритмы должны иметь минимальные накладные расходы, то есть соотношения времени выборки процесса на исполнение и времени исполнения должны быть существенны.

Алгоритмы должны равномерно загружать вычислительную систему, отдавая предпочтение тем процессам, которые занимают малоиспользуемые ресурсы.

Алгоритмы планирования должны быть масштабируемы, то есть не терять работоспособность при увеличении нагрузки.

Параметры (характеристики) планирования

Статические параметры – это предельные значения ресурсов системы (объем оперативной памяти, частота процессора…).

Динамические параметры – это количество ресурсов в текущий момент времени.

На этапе загрузки процесса появляются статические параметры:

каким пользователем запущен процесс;

приоритет задачи;

сколько процессорного времени запрошено для решения задачи;

каково соотношение процессорного времени и времени, необходимого на операции ввода/вывода;

какие ресурсы и в каком количестве необходимы (оперативная память, устройства ввода/вывода, специальные библиотеки…);

Динамические параметры появляются после первого исполнения:

сколько времени прошло со времени выгрузки процесса на диск или загрузки его в оперативную память;

сколько оперативной памяти занимает процесс;

сколько процессорного времени было предоставлено процессу;

У процесса разделяют два состояния (временнЫх):

CPU burst – промежуток непрерывного исполнения на процессоре;

I/O burst – промежуток ожидания ввода/вывода.

Эти параметры тоже являются динамическими и они измеряются после каждого очередного исполнения.

Пример:

a=1;//CPU burst

b=2;//CPU burst

Read c;//CPU burst

Окончание ввода;// I/O burst

a = a+c*b;//CPU burst

print a;//CPU burst

Окончание вывода.//I/O burst

Все планирование в ОС осуществляет планировщик. Он же принимает решение о выборе следующего задания или нового процесса на исполнение из числа готовых. Это происходит в следующих случаях:

процесс переходит из состояния исполнения в состояние завершения;

процесс переводится из состояния исполнения в состояние ожидания;

процесс переводится из состояния исполнения в состояние готовности;

процесс переводится из состояния ожидания в состояние готовности (завершилась операция ввода/вывода).

В 1м и 2м случаях находившийся в состоянии исполнения процесс, не может исполняться дальше, и должен быть выбран новый процесс.

В 3м и 4м случаях процесс, который исполнялся до прерывания, может продолжать свое выполнение после обработки прерывания.

Если планирование происходит с использованием только случаев 1 и 2, то имеет место невытесняющее планирование. Если к этим двум случая добавляется либо 3, либо 4, либо и 3, и 4, то имеет место вытесняющее планирование.

Вытесняющее планирование – исполняющийся процесс может быть вытеснен из состояния исполнения другим процессом.

Алгоритмы планирования

FCFS – First Come First Served – простейший алгоритм планирования. Организует очередь процессов и последовательно их исполняет. Следующий процесс начинает исполняться после полного завершения предыдущего. Этот алгоритм осуществляет невытесняющее планирование, легко реализуем, но неэффективен.

SJF – Shortest Job First – то же самое, что FCFS, но с приоритетным планированием: минимальная по времени выполнения задача ставится в начало очереди. Обычно этот алгоритм применяется для краткосрочного планирования, может быть как вытесняющим, так и невытесняющим.

RR – Round Robin – FCFS, который поставлен в замкнутый цикл. Процессор предоставляет текущему процессу определенный квант времени, после чего следующий начинается выполняться, а текущий переходит в состояние готовности. Эффективность этого алгоритма зависит от объема требуемого времени каждому из процессов и фиксированному кванту времени. Если квант времени маленький, то много процессов будут выполняться параллельно и медленно. Новый процесс включается в цикл в конец очереди.

По расчету времени может быть два случая:

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

- продолжительность остатка текущего CPU burst процесса больше, чем квант времени. Тогда, по истечении этого кванта, процесс становится в конец очереди, а процессор выделяется следующему, находящемуся в начале. (см. рисунок 1 из тетради)

при наличии N-процессов в вычислительной системе, каждому из них предоставляется 1/N часть процессорного времени.

ti – суммарное процессорное время, уже выделенное процессу;

Ti – общее время процесса в системе.

Когда ti << Ti/N – процесс обделен процессорным временем.

Когда ti > Ti/N – система благоволит процессу.

Коэффициент справедливости:

K = ti∙N/Ti

Чем меньше K, тем быстрее процессу будут выделены ресурсы.

Алгоритмы SJF и Гарантированного планирования – частные случаи приоритетного планирования.

Приоритетное планирование заключается в том, что у каждого процесса есть свой приоритет, в соответствии с которым ему выделяется процессор. Для SJF алгоритмы – это требуемое время, для гарантированного планирования – коэффициент справедливости.

Назначение приоритета опирается как на внешние, так и на внутренние критерии системы. К внешним относится:

важность процесса;

стоимость процессорного времени (значимость процесса в системе).

К внутренним относится:

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

Приоритетное планирование может быть как вытесняющим, так и невытесняющим. Если вытесняющее – процесс с большим приоритетом вытесняет тот, у которого меньше. Невытесняющее – с меньшим приоритетом процесс завершается, с большим начинает выполняться.

Современные системы работают как многоуровневая очередь. На каждом уровне может быть применен свой алгоритм.