Похожие презентации:
09-OS-KB3
1.
Лекция 9: планировщикипроцессов Windows 7
2.
Процессы и потокиПроцесс
• виртуальное адресное пространство
• описатели режимов работы ядра
• Потоки
Процесс = PEB (ProcessEnvironmentBlock)
• строки окружения
• список загруженных модулей (EXE и DLL)
• данные кучи процесса
• рабочий каталог и прочее
3.
Процессы и потокиПоток
Поток = TEB (ThreadEnvironmentBlock)
4.
Процессы и потоки5.
Алгоритм планировщикаПриоритеты процессов
Квант времени
• конфигруация системы
• статус процесса
• наличие объекта задание
Учёт в ETHREAD , дублируется в EPROCESS
6.
Алгоритм планировщикаДиспетчер ядра
1. поток готов к исполнению
2. у потока закончился квант или он уходит в
состояние ожидания
3. смена приоритета потока
4. смена привязки к процессору
5. блокировка потока на событии или структуре
7.
Уровни приоритетов8.
Уровни приоритетовНазначаемый приоритет :
реального времени
высокий
выше обычного
нормальный
ниже обычного
простаивающий
- 16-31
- 13
- 10
-8
-6
-4
9.
Уровни приоритетовОтносительный приоритет :
критичный по времени
наивысший
выше обычного
обычный
ниже обычного
наименьший
простаивающий
= 15
+2
+1
+0
-1
-2
=1
10.
Уровни приоритетовУровень потока = назначаемый приоритет +
относительный приоритет
• Базовый
• Текущий
cmd /c start /<уровень приоритета> <имя
исполняемого файла>
11.
Состояния потоков12.
База данных диспетчераОчереди готовых
потоков (32 шт,
по числу приоритетов)
13.
Квант2 такта – настрольная ОС (около 20 мс)
12 тактов – серверная ОС (около 180 мс)
Хранится ввиде такты * 3
В настольных ОС активному окнму 6 тактов.
14.
Сценарии планированияСамостоятельное переключение
15.
Сценарии планированияВытеснение
16.
Сценарии планированияЗавершение кванта
17.
Сценарии планированияЗавершение потока
18.
Переключение контекстаВ общем случае требуется перегрузить из ETHREAD :
• указатель команд
• указатель стека системы и пользовательского
стека
• указатель на адресное пространство потока
При другом процессе :
• Каталог страниц
• Адресное пространство
19.
Поток простоя1. включает и отключает прерывания
2. проверяет есть ли отложенные задания
3. появился ли поток для исполнения
4. вызывает функцию HAL по обработке простоя
процессора
20.
Динамическое повышение приритета1. по завершении операции ввода/вывода
2. по окончании ожидания события
3. по окончании ожидания потоками активного
процесса
4. по пробуждении GUI-поток из-за событий с окнами
5. голодание потока
Не выше 15 приоритета всегда!
21.
Динамическое повышение приритета• диск, cd-rom, видео, LPT
• событие семафора
• сеть, канал связи, почта, COM
• клавиатура, мышь
• звуковая плата
-1
-1
-2
-6
-8
• владение окном
- 2 (постоянный)
22.
Динамическое повышение приритета23.
Многопроцессорность24.
МногопроцессорностьHyperthreading не учитывается.
25.
МногопроцессорностьВыбор процессора для перезапуска:
• Процессор с прошлого запуска потока
(допускаются пропуски запуска)
• Процессор из той же группы NUMA
• Свободный процессор
При отсутствии жёсткой привязки к процессору