Добавил:
Developerrnrn Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
34
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Лабораторный практикум по курсу "Операционные системы"

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

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

-величина глобального приоритета;

-количество тиков таймера, которые отводятся процессу до его вытеснения (размер кванта);

-число тиков таймера, оставшихся в кванте процесса;

-системная составляющая приоритета процесса (базовое значение);

-системная составляющая приоритета, назначаемая процессу при истечении его кванта времени;

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

-величина системной составляющей приоритета, назначаемая процессу, если он находится в состоянии «готов к выполнению» длительное время.

-системная часть приоритета процесса;

-верхний предел и текущее значение пользовательской части приоритета (эти два атрибута могут модифицироваться пользователем);

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

Алгоритм планирования Linux (версия ядра 2.2 и ниже)

Потоки в системе Linux реализованы в ядре, поэтому планирование основано на потоках, а не на процессах. В операционной системе Linux алгоритмом планирования различаются три класса потоков:

1.Потоки реального времени, обслуживаемые по алгоритму FIFO (First In First Out - первым прибыл - первым обслужен).

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

3.Потоки разделения времени.

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

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

38 Учебно-исследовательская лаборатория «Информационные технологии»

Соседние файлы в предмете Современные операционные системы