Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указ. по выпон. контр. р. по Опера...doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

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

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

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

Во многих ОС предусматривается возможность изменения приоритета в течение жизни потока:

  1. либо по инициативе самого потока, когда он обращается с соответствующим вызовом к ОС;

  2. либо директивно администратором системы в зависимости от важности работы,

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

Существует 2 вида приоритетного планирования: обслуживание с относительными приоритетами и обслуживание с абсолютными приоритетами.

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

Поток завершен или ошибка

Выбор по приоритету

Ожидание завершения в/в

В/В завершен

Создание потока

Рис.10. Алгоритмы планирования, основанные на относительных приоритетах.

В

Поток завершен или ошибка

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

Выбор по приоритету

Ожидание завершения в/в

В очереди появился поток с наивысшим приоритетом

В/В завершен

Создание потока

Рис. 11. Алгоритмы планирования, основанные на абсолютных приоритетах.

В системах с пакетной обработкой используются относительные приоритеты (ОС OS/360), т.к. очень малы затраты на переключение процессора с одной работы на другую. Т.к может одна задача занимает процессор долгое время. поэтому в системах с разделение времени и реального времени такая дисциплина обслуживания не подходит.

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

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

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

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

Процессы реального времени также используют стратегию фиксированных приоритетов, но пользователь может менять.

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