- •Лекция 3. Основные подсистемы ОС: подсистема управления процессами и потоками
- •Основные функции подсистемы управления процессами
- •Определение процесса
- •Преимущества ввода понятия поток
- •Описание процесса в системе
- •Планирование потоков
- •При планировании потоков учитываются
- •Планирование потоков состоит в решении задач:
- •Диспетчеризация
- •Диспетчеризация процессов (потоков)
- •Состояния потока
- •Диаграмма смены состояний потоков
- •Алгоритмы планирования выполнения потоков
- •Алгоритмы планирования, основанные на квантовании
- •Иллюстрация квантового механизма планирования
- •Алгоритмы планирования, основанные на приоритетах
- •Назначение приоритетов
- •Разновидности приоритетов
- •Схема назначения приоритетов в Windows
- •Основные подсистемы ОС: подсистема управления памятью
- •Иерархия типов памяти
- •Регистры процессора
- •Основная память
- •Чтение / запись в ОЗУ
- •Функции подсистемы управления основной памятью
- •Организация основной памяти
- •Стратегии управления памятью
- •Типы адресов
- •Типы адресов
- •Организация памяти
- •Распределение памяти фиксированными разделами
- •Достоинства и недостатки работы с жесткими разделами
- •Распределение памяти динамическими разделами
- •Функции подсистемы при работе с динамическими разделами
- •Достоинства и недостатки работы с динамическими разделами
- •Понятие виртуальной памяти
- •Основные задачи, решаемые подсистемой виртуальной памяти
- •2 подхода к виртуализации памяти
- •Достоинства и недостатки свопинга
- •Реализации виртуальной памяти
- •Виртуальное адресное пространство процесса 1
- •Страничный файл (файл подкачки)
- •Виртуальная страница (определение)
- •Таблица страниц
- •Алгоритм работы виртуальной памяти
- •Алгоритм работы виртуальной памяти (продолжение)
- •Виртуальный и физический адреса
- •Базисные свойства страничной виртуальной памяти
- •Виртуальный адрес
- •Определение оптимального размера страницы
Состояния потока
выполнение - активное состояние потока, во время которого поток обладает всеми необходимыми ресурсами и непосредственно выполняется процессором;
ожидание – пассивное состояние потока, находясь в котором, поток заблокирован по своим внутренним причинам (ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого потока или освобождения какого- либо необходимого ему ресурса);
готовность – также пассивное состояние потока, но в этом случае поток заблокирован в связи с внешним по отношению к нему обстоятельством (имеет все требуемые для него ресурсы, готов выполняться, однако процессор занят выполнением другого потока).
11
Диаграмма смены состояний потоков
ВЫПОЛНЕНИЕ
Поток выбран на |
Поток |
|
выполнение |
||
вытеснен |
||
|
Поток завершен
Поток ожидает завершения ввода-вывода (или другого события)
ГОТОВНОСТЬ |
ОЖИДАНИЕ |
Ввод-вывод завершен
12
Алгоритмы планирования выполнения потоков
Невытесняющие (non-preemptive) алгоритмы основаны на том, что активному потоку позволяется выполняться, пока он сам, по собственной инициативе, не отдаст управление операционной системе для того, чтобы та выбрала из очереди другой готовый к выполнению поток (децентрализованное планирование).
Вытесняющие (preemptive) алгоритмы – это такие способы планирования потоков, в которых решение о переключении процессора с выполнения одного потока на выполнение другого потока принимается операционной системой, а не активной задачей (централизованное планирование).
13
Алгоритмы планирования, основанные на квантовании
Квант – это ограниченный непрерывный период процессорного времени, который предоставляется поочередно каждому потоку для выполнения.
Смена активного потока происходит, если:
поток завершился и покинул систему;
произошла ошибка;
поток перешел в состояние ожидания;
исчерпан квант процессорного времени, отведенный данному потоку.
Кванты, выделяемые одному потоку, могут быть фиксированной величины, а могут и изменяться в разные периоды жизни потока
14
Иллюстрация квантового механизма планирования
Время между циклами q(n-1)
1 |
2 |
3 |
… |
n Очередь |
готовых
потоков
q
Центральный
процессор
15
Алгоритмы планирования, основанные на приоритетах
Приоритет - это число, характеризующее степень привилегированности потока при использовании ресурсов вычислительной машины, в частности - процессорного времени: чем выше приоритет, тем выше привилегии, тем меньше времени будет проводить поток в очередях
Приоритет может выражаться целым или дробным, положительным или отрицательным значением. В некоторых ОС принято, что приоритет потока тем выше, чем больше (в арифметическом смысле) число, обозначающее приоритет. В других системах, наоборот, чем меньше число, тем выше приоритет.
В большинстве операционных систем, поддерживающих потоки, приоритет потока непосредственно связан с приоритетом процесса, в рамках которого выполняется данный поток.
16
Назначение приоритетов
При назначении приоритета вновь созданному процессу ОС учитывает:
является этот процесс системным или прикладным,
каков статус пользователя, запустившего процесс,
было ли явное указание пользователя на присвоение процессу определенного уровня приоритета.
17
Разновидности приоритетов
Приоритеты
Динамические |
|
Статические |
|
|
|
18
Схема назначения приоритетов в Windows |
||||||||||||||
|
|
|
|
|
|
NT |
|
|
|
|
|
|
||
|
потоки с переменным |
|
|
потоки реального времени |
|
|||||||||
|
приоритетом |
|
|
|
|
|
|
|
|
|
|
|
||
динамический приоритет |
|
|
|
|
|
|
|
|
|
|||||
потоков процесса |
|
|
|
|
|
|
|
|
|
|
||||
|
базовый приоритет |
|
|
|
|
|
|
|
|
|
||||
|
потоков процесса |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
базовый |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
приоритет |
|
|
|
|
|
|
|
|
||
|
|
|
|
процесса |
|
|
|
|
|
|
|
|
|
|
2 |
4 |
6 |
8 |
10 |
12 |
14 |
16 |
18 |
20 |
22 |
24 |
26 |
28 |
30 |
19
