Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС / Тема_2.ppt
Скачиваний:
202
Добавлен:
11.04.2015
Размер:
3.19 Mб
Скачать

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

1. Невытесняющие (non-preemptive)

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

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

зависания приложений могут привести к краху системы;

более высокая скорость переключения потоков;

2. Вытесняющие (preemptive)

функции планирования сосредоточены исключительно в ОС;

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

планирование на основе приоритетов потоков: статических,

динамических, абсолютных, относительных, смешанных;

91

Операционные системы

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

В соответствии с концепцией квантования каждому потоку поочередно для выполнения предоставляется ограниченный непрерывный период процессорного времени - квант.

Смена активного потока происходит, если:

поток завершается и покинул систему;

произошла ошибка;

поток перешел в состояние ожидания;

исчерпан квант времени, отведенный данному потоку.

92

Операционные системы

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

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

Выше приведенный граф состояний потока, изображенный соответствует схеме планирования, приведенной далее.

93

Операционные системы

Простейший алгоритм планирования, реализующий состояния потока для типичного графа состояния потоков

Очередь готовых потоков

Тайм - аут

 

Новый

Процессор

Выход

поток

 

 

 

Ввод-вывод завершен

 

 

Ожидание события

Очередь заблокированных

потоков

94

Операционные системы

Кванты, выделяемые потокам, могут быть равными или различными (типичное значение десятки - сотни миллисекунд).

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

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

95

Операционные системы

Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводом

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

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

96

Операционные системы

Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводом

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

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

97

Операционные системы

Алгоритм планирования, реализующий предпочтения потокам с интенсивным вводом-выводом

Ожидание события

Процессор

Очередь 2

Новый поток

Очередь 1

Тайм - аут

1.Переключение контекстов потоков связано с потерями процессорного времени.

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

3.В алгоритмах, основанных на квантовании, ОС не имеет никаких сведений о характеристиках решаемых задач.

98

Операционные системы

Граф состояния потока

Тайм-аут Выполнение

 

tКВ

Очередь готовых

tКВ

потоков 1

Вновь

Очередь готовых

созданный

поток

потоков 2

Завершение

(ошибка)

Запрос ввода- вывода

Ожидание

Событие (завершение

ввода-вывода)

99

Операционные системы

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

В основе многих вытесняющих алгоритмов планирования лежит приоритетное обслуживание.

Оно предполагает наличие у потоков некоторой изначально известной характеристики - приоритета, на основании которого определяется порядок выполнения потоков.

Чем выше приоритет, тем выше привилегии потока, тем меньше времени поток находится в очередях.

Приоритет задается числом (целым или дробным, положительным или отрицательным).

100

Операционные системы