В) SRTF – shortest remaining time first – первым идет поток, которому меньше осталось

- оптимален в системах реального времени

Оценка длины среднего периода активности вычисляется по формуле:

T (n + 1) = a*tn + (1 - a)*tn

T – текущее значение энного CPU burst

T (n + 1) – следующее его значение, которое мы предсказываем

А – коэффициент старения информации (от 0 до 1);

Вытесняющие алгоритмы планирования бывают разные:

- на основе квантования

- на основе приоритетов

- смешанные

1) Квантование – каждому потоку последовательно выделяется квант процессорного времени.

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

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

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

- поток перешел в заблокированное состояние

- поток исчерпал свой квант (переходит в состояние готовности)

Кванты бывают:

- одинаковые для всех потоков.

- разные

Длина кванта – q. Количество потоков – n. Поток ждет (n-1)*q времени. Чем больше потоков, тем больше ждет, но если квант достаточно маленький – это время ожидания все равно не заметно для пользователя. Обычно оно составляет десятки миллисекунд.

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

Кванты для одного потока бывают:

- фиксированной величины

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

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

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

2) Алгоритмы планирования, основанные на приоритетах

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

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

Приоритет может быть целым, дробным, положительным, отрицаетельным, чем меньше – тем больше, чем больше – тем меньше и тд, в разных системах.

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

Приоритеты бывают:

- фиксированные (один раз назначен – и до конца процесса не меняется)

- динамические (меняются в течение жизни потока)

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

- по инициативе самого потока (обращается с вызовом к ОСи);

- по инициативе ОС в зависимости от ситуации в системе.

Приоритетное обслуживание бывает:

- с относительными приоритетами

Поток выбран и исполняется, хот гром греми.

Подходит для систем пакетной обработки

- с абсолютными приоритетами

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

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

3) Смешанные алгоритмы планирования

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

13. Приоритеты и концепции планирования потоков в Windows 2000, ОС Unix System V и OS/2.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: