Типы планирования процессора.
Цель планирования процессора состоит в распределении во времени процессов, выполняемых процессором таким образом, чтобы удовлетворить таким требованиям системы как время ожидания, пропускная способность и эффективность работы процессора.
Диаграмма планирования:
Во многих ОС планирование разбивается на три отдельные функции: долгосрочное, среднесрочное и краткосрочное планирование.
Основное отличие между долгосрочным и краткосрочным планированием заключается в частоте запуска.
Долгосрочное планирование осуществляется при создании нового процесса и представляет собой решение о добавлении нового процесса к множеству готовых в настоящий момент процессов в случае освобождения ресурсов памяти.
Желательно, чтобы долгосрочный планировщик создавал неоднородную мультипрограммную очередь, то есть чтобы в очереди находились процессы, ориентированные на преимущественно работу с процессором.
Среднесрочное планирование является частью свопинга и представляет собой решение о добавлении процесса к множеству частично расположенных в основной памяти.
Краткосрочное планирование является решением о том, какой из готовых к выполнению процессов будет выполняться следующим.
Планирование потоков осуществляется на основе информации, хранящейся в описателях процессов и потоков.
При планировании может приниматься во внимание приоритет потоков, время их ожидания в очереди, накопленное время выполнения, интенсивность обращений к вводу-выводу и другие факторы.
В многопоточных ОС планирование выполнения потоков осуществляется независимо от того, принадлежат ли они одному или разным процессам.
Планирование потоков включает в себя решение двух задач:
1. Определение момента времени для системы текущего активного потока;
2. Выбор для выполнения потока из очереди готовых потоков.
В большинстве ОС универсального назначения планирование осуществляется динамически, то есть решения принимаются во время работы системы на основе анализа текущей ситуации.
ОС работает в условиях неопределенности, так как потоки и процессы появляются в случайные моменты времени и также непредсказуемо завершаются.
Динамические планировщики могут гибко приспосабливаться к изменяющейся ситуации.
Другой тип планирования – статический. Может быть использован в специализированных системах, в которых весь набор одновременно выполняемых задач определен заранее (в системах реального времени).
Планировщик называется статическим, если принимает решение о планировании не во время работы системы, а заранее (предварительный анализ).
Результатом работы статического планировщика является таблица, в которой указывается к какому потоку или процессу, когда и на какое время должен быть предоставлен процессор.
Для построения такой таблицы планировщику нужны полные предварительные знания о характеристиках набора задач. После того, как таблица готова, она используется ОС для переключения потоков и процессов. При этом накладные расходы ОС сводятся лишь к диспетчеризации потоков или процессов.
Диспетчеризация заключается в реализации найденного в результате планирования решения. То есть, переключение процессора с одного потока на другой.
Диспетчеризация сводиться к следующему:
1) Сохранение контекста текущего потока, который требуется сменить.
2) Загрузка контекста нового потока, выбранного в результате планирования.
3) Запуск нового потока на выполнение.
Поскольку операция переключения контекстов существенно влияет на производительность вычислительной системы, программные модули ОС выполняют диспетчеризацию потоков совместно с аппаратными средствами процессора.
При работе краткосрочного планировщика используют следующие критерии, позволяющие сравнивать алгоритмы краткосрочных планировщиков:
1) Использование процессорного времени. В реальных системах этот показатель колеблется от 40 до 90%.
2) Время оборота. Для некоторых процессов важным критерием является полное время выполнения. Это время включает в себя время ожидания во входной очереди, время ожидания в очереди готовых процессов, время ожидания в очередях к оборудованию, время ввода-вывода и время выполнения на процессоре.
3) Время ожидания. Это суммарное время нахождения процесса в очереди готовых процессов.
4) Время отклика. Этот критерий используется для интерактивных программ и включает время, прошедшее от момента попадания процесса во входную очередь до момента первого обращения к терминалу.