Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы СисПО.doc
Скачиваний:
37
Добавлен:
27.09.2019
Размер:
2.93 Mб
Скачать
  1. Планирование и диспетчеризация потоков в мультипрограммных системах

Планирование и диспетчеризация потока

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

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

Планирование потоков осуществляется на основе информации, хранящейся в описательных процессов и потоков. Чаще всего учитывается:

  1. Приоритет потоков

  2. Время их ожидания во очереди

  3. Накопленное время выполнения

  4. Интенсивность обращения к ввода-вывода

  5. и другие факторы

ОС планирует выполнение потока независимо от того принадлежат они одному или нескольким процессам

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

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

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

Существует множество различных алгоритмов

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

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

Другие алгоритмы максимально быстрых коротких зада

3. Обеспечивают преимущественное право потоком, интерактивных предложений

Особенности реалазции планирования потоком, а наибольшей степени определяется спицификой системы (пакетная обработка, все разделения времени/ реального времени)

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

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

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

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

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

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

Диспетчеризация сводится:

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

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

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

  1. Состояния потока в мультипрограммных системах

Состояние потока

Рис. 1. Граф состояний потока в многозадачной среде

ОС, выполняя планирование потоков, принимает во внимание их состояние, основными из которых являются (рис. 1):

  1. Состояние выполнения – активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором

  2. Ожидание – пассивное состояние потока, в котором поток заблокирован по своим внутренним причинам (пример: ожидает некоторого события – завершение операции ввода-вывода и т.п.)

  3. Готовность – пассивное состояние потока, поток заблокирован по внешним обстоятельствам (т.е. имеет все ресурсы, готов выполняться, но не может выполняться, т.к. процессор занят другим потоком). В течении жизненного цикла каждый поток попеременно меняет своё состояние в соответствии с алгоритмом планирования.

Граф состояний потоков в многозадачной среде представлено на рис. 1.

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

Потоки, находящиеся в состоянии готовности и ожидании организуются в очереди потоков, организация очередей позволяет их легко переупорядочивать, включать, исключать потоки и переводить из одного состояния в другое

На рисунке 2 показана такая очередь

Рис. 2. Очередь потоков