Архитектура ОС. Планирование процессов и нитей

Содержание

Слайд 2

Планирование процессов и потоков Процессорное время является ресурсом вычислительной системы Распределение

Планирование процессов и потоков

Процессорное время является ресурсом вычислительной системы
Распределение процессорного времени

между процессами (нитями) называется планированием
Алгоритмы планирования процессов и нитей определяют облик ОС
Задачи по управлению процессами и потоками:
Создание и уничтожение процессов
Выделение процессам системных ресурсов
Обмен данными между процессами
Синхронизация процессов и потоков
Слайд 3

Создание процесса Текущий процесс выполняет системный запрос на создание нового процесса

Создание процесса

Текущий процесс выполняет системный запрос на создание нового процесса

Слайд 4

Завершение процесса Текущий процесс может завершиться сам или его завершает другой процесс

Завершение процесса

Текущий процесс может завершиться сам или его завершает другой процесс


Слайд 5

Диаграмма состояния процесса (нити) Нити в состоянии ГОТОВНОСТИ конкурируют за процессорное время

Диаграмма состояния процесса (нити)

Нити в состоянии ГОТОВНОСТИ конкурируют за процессорное время

Слайд 6

Потоки в Windows (0) Initialized - инициализирован (1) Ready – готов

Потоки в Windows

(0) Initialized - инициализирован
(1) Ready – готов к выполнению
(2)

Running – выполняется
(3) Standby – простаивает: поток выбран для выполнения следующим, в Standby находится только один поток для каждого процессора в системе, может быть вытеснен, если в системе появится поток с более высоким приоритетом
(4) Terminated - завершен
(5) Waiting – ожидает
(6) Transition – переходное состояние: поток переходит в него, если он готов к выполнению, но его стек ядра выгружен из памяти. Как только этот стек загружается в память, он переходит в состояние Ready
Слайд 7

Система приоритетов Приоритеты нитей определяют порядок, в котором они планируются для

Система приоритетов

Приоритеты нитей определяют порядок, в котором они планируются для выполнения

процессором
Приоритет нити устанавливается исходя из класса приоритета его родительского процесса (base priority class) и относительного приоритета нити
Слайд 8

Система приоритетов Динамический приоритет нити – приоритет в данный момент времени

Система приоритетов

Динамический приоритет нити – приоритет в данный момент времени
Он определяется

исходя из базового класса приоритета процесса и относительного приоритета нити
Относительные приоритеты нити:
THREAD_PRIORITY_TIME_CRITICAL.
THREAD_PRIORITY_HIGHEST
THREAD_PRIORITY_ABOVE_NORMAL
THREAD_PRIORITY_NORMAL
THREAD_PRIORITY_BELOW_NORMAL
THREAD_PRIORITY_LOWEST
THREAD_PRIORITY_IDLE
Слайд 9

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

Распределение процессорного времени

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

называемого квантом, по истечении которого система проверяет, нет ли готовой к выполнению нити >= приоритета
Если во время выполнения нити в течение кванта времени приходит в готовность какая-то нить более высокого приоритета, первая нить прерывается и начинает выполняться та, что имеет более высокий приоритет
Слайд 10

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

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

Поток готов к

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

Сценарии планирования: самостоятельное переключение Нить переходит в состояние ожидания и Windows выбирает следующую нить для выполнения

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

Нить переходит в состояние ожидания и Windows выбирает следующую

нить для выполнения
Слайд 12

Сценарии планирования: планирование нитей с вытеснением Нить с более низким приоритетом

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

Нить с более низким приоритетом вытесняется

нитью с более высоким приоритетом.
Нить помещается в НАЧАЛО очереди готовых нитей соответствующего номера приоритета.
Слайд 13

Сценарии планирования: планирование нитей в момент завершения кванта текущей нити Когда

Сценарии планирования: планирование нитей в момент завершения кванта текущей нити

Когда нить

израсходует квант процессорного времени, Windows либо понижает приоритет нити, либо оставляет его неизменным и помещает в конец очереди нитей, находящихся в состоянии Ready.
Слайд 14

Динамическое повышение приоритета После завершения операции ввода-вывода По окончании операции ожидания

Динамическое повышение приоритета

После завершения операции ввода-вывода
По окончании операции ожидания события
Из-за нехватки

процессорного времени (сканирование каждые 4 секунды)
При пробуждении нитей окон (поддержка интерактивности)
Нитей активного процесса после выхода из состояния ожидания (поддержка интерактивности)
Слайд 15

Настройка режима планирования процессов и потоков в Windows 10

Настройка режима планирования процессов и потоков в Windows 10

Слайд 16

Приоритеты в Windows 7 и Windows 2008 Server Использование коротких квантов

Приоритеты в Windows 7 и Windows 2008 Server

Использование коротких квантов переменной

длины
Интервал таймера (clock interval) ≈ 15 мс, квант обычно = 2 интервала таймера
Кванты нитей активного процесса увеличились в 3 раза (интерактивность)

Использование длинных (6 раз) квантов постоянной длины
Квант обычно = 12 интервалов таймера
Нет изменения квантов нитей активного процесса