Операционные системы. Курс лекций

       

Типы планирования процессора.


Цель планирования процессора состоит в распределении во времени процессов, выполняемых процессором таким образом, чтобы удовлетворить таким требованиям системы как время ожидания, пропускная способность и эффективность работы процессора.

Диаграмма планирования:

Во многих ОС планирование разбивается на три отдельные функции: долгосрочное, среднесрочное и краткосрочное планирование.

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

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

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

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

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

Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков.

При планировании может приниматься во внимание приоритет потоков, время их ожидания в очереди, накопленное время выполнения, интенсивность обращений к вводу-выводу и другие факторы.

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



Планирование потоков включает в себя решение двух задач:

1.  Определение момента времени для системы текущего активного потока;

2.  Выбор для выполнения потока из очереди готовых потоков.

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


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

Динамические планировщики могут гибко приспосабливаться к изменяющейся ситуации.

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

Планировщик называется статическим, если принимает решение о планировании не во время работы системы, а заранее (предварительный анализ).

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

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

Диспетчеризация заключается в реализации найденного в результате планирования решения. То есть, переключение процессора с одного потока на другой.

Диспетчеризация сводиться к следующему:

1) Сохранение контекста текущего потока, который требуется сменить.

2) Загрузка контекста нового потока, выбранного в результате планирования.

3) Запуск нового потока на выполнение.

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

При работе краткосрочного планировщика используют следующие критерии, позволяющие сравнивать алгоритмы краткосрочных планировщиков:

1) Использование процессорного времени. В реальных системах этот показатель колеблется от 40 до 90%.

2) Время оборота. Для некоторых процессов важным критерием является полное время выполнения. Это время включает в себя время ожидания во входной очереди, время ожидания в очереди готовых процессов, время ожидания в очередях к оборудованию, время ввода-вывода и время выполнения на процессоре.

3) Время ожидания. Это суммарное время нахождения процесса в очереди готовых процессов.

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


Содержание раздела