Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Mashechkin_I_V_-_Operatsionnye_sistemy_lektsii.doc
Скачиваний:
22
Добавлен:
06.11.2018
Размер:
2.33 Mб
Скачать

Планирование в ос unix

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

Если процесс не завершается или не блокируется в рамках 1 секунды – он вытесняется.

В общем случае значение приоритета есть функция

 P=F (CPU, nice), т.е. в вычислении приоритета используются две изменяемые составляющие – CPU (системная) и nice (пользовательская). Учитывается история выполнения, величины CPU и nice ограничены.

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

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

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

Группы приоритетов

(в порядке убывания)

- программа свопинга

- управление байт-ориентированными устройствами ввода/вывода

- пользовательские процессы 

Иерархия обеспечивает эффективное использование устройств ввода/вывода

СPUj (i) - время использования ЦП процессом j за время i;

Pj (i) - приоритет процесса j в начале кванта i (приоритет выше, если значение меньше);

Basej - базовый приоритет j-го процесса (необходим для разделения процессов на фиксированные группы уровней приоритетов);

nicej - пользовательская составляющая приоритета (значение может только увеличиваться до некоторого уровня).

Пример традиционного планирования процессов в ОС Unix

В примере не учитывается составляющая nice.

Планирование в Windows nt.

Квантование сочетается с использованием динамических абсолютных приоритетов.

В системе определено 32 уровня приоритетов.

Два класса нитей:

Нити с переменными приоритетами (0-15]

Нити “реального” времени (16-31] – высокоприоритетные нити.

Критичны по времени выполнения.

Нити с переменными приоритетами

Изначально процессу присваивается базовый приоритет.

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

Нить получает значение приоритета из диапазона базового приоритета.

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

• Поддерживается группа очередей (для нитей с переменными приоритетами ) – по одной для каждого приоритета. Система просматривает очереди, начиная с самой приоритетной.

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

• Если нить исчерпала квант – ее приоритет понижается на единицу и она перемещается в соответствующую очередь

• Повышается значение приоритета – при выходе из состояния ожидания окончания ввода-вывода

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]