Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / 2. Процессы и потоки

.pdf
Скачиваний:
11
Добавлен:
15.02.2021
Размер:
6.96 Mб
Скачать

Схема назначения приоритета потокам в Windows NT

Классы приоритетов процессов и приоритеты

потоков Win32

Уровни приоритета потоков назначаются исходя из двух разных позиций: одной - от Windows API и другой от ядра Windows. Сначала Windows API систематизирует процессы по классу приоритета, который им присваивается при создании:

Реального времени — Real-Qme (4),

Высокий — High (3),

Выше обычного — Above Normal (7),

Обычный — Normal (2),

Ниже обычного — Below Normal (5) Простоя — Idle (1).

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

Критичный по времени — Time-criQcal (15),

Наивысший — Highest (2),

Выше обычного — Above-normal (1),

Обычный — Normal (0),

Ниже обычного — Below-normal (–1),

Самый низший — Lowest (–2)

Простоя — Idle (–15).

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

Сценарии планирования

Истечение кванта времени

Самостоятельное переключение

Вытеснение потока

Сценарии и причины повышения приоритета

üПовышение вследствие событий планировщика или диспетчера

üПовышение вследствие завершения ввода/вывода

üПовышение вследствие ввода из пользовательского интерфейса

üПовышение вследствие слишком продолжительного ожидания ресурса исполняющей системы

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

В операционной системе Linux поддерживаются три класса потоков:

1. потоки реального времени, обслуживаемые по алгоритму FIFO;

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

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

Linux различает 140 уровней приоритета.

Потоки реального времени имеют приоритеты от 0 до 99, причем 0 – самый высокий приоритет.

Обычному потоку ставится в соответствие уровень приоритета от 100 до 139.

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

Linux связывает с каждым потоком значение nice, которое определяет

статический приоритет каждого потока. По умолчанию он равен 0, но его можно изменить при помощи системного вызова nice(value), где value меняется от -20 до +19.

Очередь исполнения и массивы приоритетов для каждого

ЦП в Linux-планировщике О(1)

Соседние файлы в папке Лекции