Управление процессами
Алгоритмы планирования процессов и потоков
143.89K
Категория: ПрограммированиеПрограммирование

Управление процессами

1. Управление процессами

2.

Процесс – это абстракция, характеризующая
программу во время выполнения.
Процесс

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

3.

Иерархия рабочих единиц в ОС
Задание
Процесс 1
Поток 1
1
Нить
Процесс 2
Поток
N
Поток 2
Нить
Нить

Процесс N

4.

Задание. Набор процессов с общими квотами и
лимитами
Процесс. Контейнер для ресурсов и потоков
Поток. Исполнение кода в процессе
Нить. Облегченный поток, полностью
управляемый в пространстве пользователя

5.

Состояния процесса
Рождение
Допуск к планированию
Событие произошло
Ожидание
Готовность
Прерывание
Ожидание события
Выбран для исполнения
Исполнение
Завершение работы
Закончил исполнение

6.

Процессы могут находиться в пяти основных
состояниях:
1. рождение,
2. готовность,
3. исполнение,
4. ожидание,
5. закончил исполнение
В течение своей жизни каждый процесс переходит
из одного состояния в другое в соответствии с
алгоритмом планирования процессов, принятым в
данной операционной системе.

7.

Исполнение – активное состояние, во время
которого процесс обладает всеми необходимыми
ресурсами и непосредственно выполняется
процессором.
Ожидание – пассивное состояние; процесс
заблокирован, он не может выполняться по своим
внутренним причинам (ждет освобождения какоголибо необходимого ему ресурса.
Готовность – пассивное состояние; процесс
заблокирован в связи с внешними по отношению к
нему
обстоятельствами
(процессор
занят
выполнением другого процесса).

8.

В
состоянии
исполнение
происходит
непосредственное выполнение программного кода
процесса.

9.

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

10.

Операции над процессами
создание процесса – завершение процесса;
приостановка процесса (перевод из состояния
исполнение в состояние готовность) –запуск
процесса (перевод из состояния готовность в
состояние исполнение );
блокирование процесса (перевод из состояния
исполнение в состояние ожидание) –
разблокирование
процесса
(перевод
из
состояния ожидание в состояние готовность).

11.

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

12.

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

13.

Регистровый контекст процесса – содержимое
всех регистров процессора (включая значение
программного счетчика).
Системный контекст процесса – все остальное.
Пользовательский контекст – код и данные,
находящиеся в адресном пространстве процесса.
Контекст
процесса

это
совокупность
регистрового, системного и пользовательского
контекстов процесса.

14.

Фоновые процессы, которые не связаны с
конкретными пользователями и выполняющие
особые функции, называются демонами.

15.

Основные функции подсистемы управления
процессами и потоками
создание процессов и потоков;
обеспечение
процессов
необходимыми ресурсами;
и
потоков
изоляция процессов;
планирование выполнения процессов и потоков;
диспетчеризация потоков;
организация межпроцессного взаимодействия;
синхронизация процессов и потоков;
завершение и уничтожение процессов и потоков.

16. Алгоритмы планирования процессов и потоков

17.

Планирование процессов включает в себя
решение следующих задач:
определение момента времени для смены
выполняемого процесса;
выбор процесса на выполнение из очереди
готовых процессов.

18.

Вид
Выполняемые функции
планирования
Долгосрочное Решение о добавлении задания (процесса) в
пул выполняемых в системе
Среднесрочное Решение о добавлении процесса к числу
процессов, полностью или частично
размещенных в основной памяти
Краткосрочное Решение о том, какой из доступных
процессов (потоков) будет выполняться
процессором
Планирование Решение о том, какой из запросов процессов
ввода-вывода (потоков) на операцию ввода-вывода будет
выполняться свободным устройством вводавывода

19.

Типы планирования:
1. динамическое планирование;
2. статическое планирование.
Статический тип планирования используется в
специализированных
системах,
где
набор
одновременно выполняемых задач определен
заранее (системы реального времени).

20.

Диспетчеризация заключается в реализации
найденного в результате планирования решения,
т.е. в переключении процессора с одного потока на
другой:
сохранение контекста текущего процесса;
загрузка контекста нового процесса;
запуск нового процесса.

21.

В отличие от планирования, осуществляемого
программными средствами ОС, диспетчеризация
реализуется совместно с аппаратными средствами
процессора.

22.

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

23.

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

24.

Алгоритмы, основанные на квантовании
Квант – ограниченный непрерывный период
процессорного времени.
Смена активного процесса происходит, если
исчерпан
квант
процессорного
времени,
отведенный данному процессу.
Выделяемые кванты могут быть одинаковыми для
всех процессов или различными.
Кванты, выделяемые одному процессу, могут быть
фиксированной величины или изменяться в разные
периоды жизни процесса.

25.

Алгоритмы, основанные на приоритетах
Приоритет – это число, характеризующее степень
привилегированности процесса при использовании
ресурсов вычислительной машины, в частности,
процессорного времени.
Чем выше приоритет процесса, тем значительнее
его привилегии и тем меньше времени он будет
проводить в очередях.
Приоритет может выражаться целым или
дробным, положительным или отрицательным
значением.

26.

В зависимости от возможности изменения
приоритета в течение жизни потока различаются
динамические и фиксированные приоритеты

27.

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

28.

Разновидности алгоритмов приоритетного
планирования:
обслуживание
с
относительными
приоритетами;
обслуживание с абсолютными приоритетами.

29.

В системах с относительными приоритетами
активный процесс выполняется до тех пор, пока он
сам не покинет процессор, перейдя в состояние
ожидания (или же произойдет ошибка, или
процесс завершится).

30.

В системах с абсолютными приоритетами
выполнение активного процесса прерывается еще
при одном условии: если в очереди готовых
процессов появился процесс, приоритет которого
выше приоритета активного процесса.
Во многих современных ОС используются
смешанные
алгоритмы
планирования
(квантование с приоритетами)
English     Русский Правила