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

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 22.11.2023

Просмотров: 49

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

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

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

Иерархия рабочих единиц в ОС

Задание. Набор процессов с общими квотами и лимитами

Процесс. Контейнер для ресурсов и потоков

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

Нить. Облегченный поток, полностью управляемый в пространстве пользователя

Состояния процесса

Процессы могут находиться в пяти основных состояниях:

Исполнение – активное состояние, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

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

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

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

Причины выхода процесса из состояния исполнения:

Операции над процессами

Контекст процесса

Контекст процесса

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

Системный контекст процесса – все остальное.

Пользовательский контекст – код и данные, находящиеся в адресном пространстве процесса.

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

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

Основные функции подсистемы управления процессами и потоками

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

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

Типы планирования:

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

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

Вытесняющие и невытесняющие алгоритмы планирования

Алгоритмы, основанные на квантовании

Квант – ограниченный непрерывный период процессорного времени.

Смена активного процесса происходит, если исчерпан квант процессорного времени, отведенный данному процессу.

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

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

Алгоритмы, основанные на приоритетах

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

Чем выше приоритет процесса, тем значительнее его привилегии и тем меньше времени он будет проводить в очередях.

Приоритет может выражаться целым или дробным, положительным или отрицательным значением.

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

В системах с динамическими приоритетами изменения приоритета могут происходить

Разновидности алгоритмов приоритетного планирования:

Во многих современных ОС используются смешанные алгоритмы планирования (квантование с приоритетами)

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

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

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

Иерархия рабочих единиц в ОС




Задание

Процесс 1

Процесс 2

Процесс N

Поток 1 1

Поток 2

Поток N

Нить

Нить

Нить

Задание. Набор процессов с общими квотами и лимитами

Процесс. Контейнер для ресурсов и потоков

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

Нить. Облегченный поток, полностью управляемый в пространстве пользователя

Состояния процесса


Допуск к планированию

Событие произошло

Прерывание

Ожидание события

Выбран для исполнения

Рождение

Ожидание

Готовность

Исполнение

Закончил исполнение

Завершение работы

Процессы могут находиться в пяти основных состояниях:

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

Исполнение – активное состояние, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

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

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

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

Причины выхода процесса из состояния исполнения:

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

Операции над процессами

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

Контекст процесса

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

Контекст процесса

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

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

Системный контекст процесса – все остальное.

Пользовательский контекст – код и данные, находящиеся в адресном пространстве процесса.

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

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

Основные функции подсистемы управления процессами и потоками

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

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

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

  • определение момента времени для смены выполняемого процесса;
  • выбор процесса на выполнение из очереди готовых процессов.

Вид планирования

Выполняемые функции

Долгосрочное

Решение о добавлении задания (процесса) в пул выполняемых в системе

Среднесрочное

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

Краткосрочное

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

Планирование ввода-вывода

Решение о том, какой из запросов процессов (потоков) на операцию ввода-вывода будет выполняться свободным устройством ввода-вывода

Типы планирования:

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

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

  • сохранение контекста текущего процесса;
  • загрузка контекста нового процесса;
  • запуск нового процесса.

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

Вытесняющие и невытесняющие алгоритмы планирования

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

Алгоритмы, основанные на квантовании


Квант – ограниченный непрерывный период процессорного времени.

Смена активного процесса происходит, если исчерпан квант процессорного времени, отведенный данному процессу.

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

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

Алгоритмы, основанные на приоритетах

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

Чем выше приоритет процесса, тем значительнее его привилегии и тем меньше времени он будет проводить в очередях.

Приоритет может выражаться целым или дробным, положительным или отрицательным значением.

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

В системах с динамическими приоритетами изменения приоритета могут происходить

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

Разновидности алгоритмов приоритетного планирования:

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

Во многих современных ОС используются смешанные алгоритмы планирования (квантование с приоритетами)