stringtranslate.com

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

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

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

Первичные состояния процесса

Следующие типичные состояния процесса возможны в компьютерных системах всех типов. В большинстве этих состояний процессы «хранятся» в основной памяти .

Созданный

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

Готовый

«Готовый» или «ожидающий» процесс загружен в основную память и ожидает выполнения на ЦП (чтобы контекст переключился на ЦП диспетчером или краткосрочным планировщиком). В любой момент выполнения системы может быть много «готовых» процессов — например, в однопроцессорной системе одновременно может выполняться только один процесс, а все остальные «параллельно выполняющиеся» процессы будут ожидать исполнение.

Очередь готовности или очередь выполнения используется в компьютерном планировании . Современные компьютеры способны одновременно запускать множество различных программ или процессов. Однако процессор способен обрабатывать только один процесс одновременно. Процессы, готовые для ЦП, сохраняются в очереди «готовых» процессов. Другие процессы, ожидающие возникновения события, такие как загрузка информации с жесткого диска или ожидание подключения к Интернету, не находятся в очереди готовности.

Бег

Процесс переходит в рабочее состояние, когда он выбран для выполнения. Инструкции процесса выполняются одним из процессоров (или ядер) системы. На каждый процессор или ядро ​​может быть запущен не более одного процесса. Процесс может работать в любом из двух режимов: режиме ядра или режиме пользователя . [1] [2]

Режим ядра

Пользовательский режим

Заблокировано

Процесс переходит в заблокированное состояние, когда он не может продолжаться без внешнего изменения состояния или события. Например, процесс может заблокировать вызов устройства ввода-вывода, такого как принтер, если принтер недоступен. Процессы также обычно блокируются, когда им требуется ввод данных пользователем или доступ к критическому разделу , который должен выполняться атомарно. Такие критические разделы защищаются с помощью объекта синхронизации, такого как семафор или мьютекс.

Прекращено

Процесс может быть завершен либо из «выполняющегося» состояния путем завершения его выполнения, либо путем явного уничтожения. В любом из этих случаев процесс переходит в состояние «завершено». Базовая программа больше не выполняется, но процесс остается в таблице процессов как процесс-зомби до тех пор, пока его родительский процесс не вызовет wait системный вызов , чтобы прочитать статус завершения , после чего процесс удаляется из таблицы процессов, окончательно завершая его работу. продолжительность жизни. Если родительскому процессу не удается вызвать wait, это продолжает использовать запись таблицы процессов (точнее, идентификатор процесса или PID) и вызывает утечку ресурсов .

Дополнительные состояния процесса

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

Поменял и жду

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

Заменил и заблокировал

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

Смотрите также

Рекомендации

  1. ^ Авраам Зильбершац; Питер Баер Гэлвин; Грег Ганье (29 июля 2008 г.). Концепции операционной системы. ISBN 978-0470128725.
  2. ^ Морис Дж. Бах (1986). Проект операционной системы UNIX . Prentice-Hall, Inc. Аппер-Сэддл-Ривер, Нью-Джерси, США ©1986. ISBN 0-13-201799-7.
В частности, глава 3, раздел 3.2, «Состояния процесса», включая рисунок 3.9 «Переход между состояниями процесса с состояниями ожидания».