В многозадачной компьютерной системе процессы могут находиться в различных состояниях . Эти отдельные состояния могут не распознаваться как таковые ядром операционной системы . Однако они представляют собой полезную абстракцию для понимания процессов.
Основные состояния процесса
Следующие типичные состояния процесса возможны в компьютерных системах всех типов. В большинстве этих состояний процессы «хранятся» в основной памяти .
Созданный
Когда процесс создается впервые, он находится в состоянии « создан » или « новый ». В этом состоянии процесс ожидает перевода в состояние «готово». Прием будет одобрен или отложен долгосрочным планировщиком . Обычно в большинстве настольных компьютерных систем это разрешение утверждается автоматически. Однако для операционных систем реального времени это разрешение может быть отложено. В системе реального времени перевод слишком большого числа процессов в состояние «готовность» может привести к перенасыщению и чрезмерной загруженности ресурсов системы, что приведет к неспособности уложиться в сроки выполнения процесса.
Готовый
«Готовый» или «ожидающий» процесс был загружен в основную память и ожидает выполнения на CPU (для переключения контекста на CPU диспетчером или краткосрочным планировщиком). В любой момент выполнения системы может быть много «готовых» процессов - например, в однопроцессорной системе одновременно может выполняться только один процесс, а все другие «одновременно выполняющиеся» процессы будут ждать исполнение.
Готовы очереди или запустить очередь используется в компьютерном планировании . Современные компьютеры могут одновременно запускать множество различных программ или процессов. Однако ЦП может одновременно обрабатывать только один процесс. Процессы, которые готовы для ЦП, хранятся в очереди для «готовых» процессов. Другие процессы, ожидающие возникновения события, такие как загрузка информации с жесткого диска или ожидание подключения к Интернету, не находятся в очереди готовности.
Бег
Когда процесс выбран для выполнения, он переходит в состояние выполнения. Инструкции процесса выполняются одним из процессоров (или ядер) системы. На каждый процессор или ядро приходится не более одного запущенного процесса . Процесс может работать в любом из двух режимов, а именно в режиме ядра или в пользовательском режиме . [1] [2]
Режим ядра
- Процессы в режиме ядра могут обращаться как к адресам ядра, так и к адресам пользователей.
- Режим ядра обеспечивает неограниченный доступ к оборудованию, включая выполнение привилегированных инструкций.
- Различные инструкции (такие как инструкции ввода-вывода и инструкции остановки) являются привилегированными и могут выполняться только в режиме ядра.
- Системный вызов из пользовательской программы приводит к переключению в режим ядра.
Пользовательский режим
- Процессы в пользовательском режиме могут иметь доступ к своим собственным инструкциям и данным, но не к инструкциям и данным ядра (или другим процессам).
- Когда компьютерная система выполняется от имени пользовательского приложения, система находится в пользовательском режиме. Однако, когда пользовательское приложение запрашивает службу у операционной системы (через системный вызов ), система должна перейти из пользовательского режима в режим ядра, чтобы выполнить запрос.
- Пользовательский режим позволяет избежать различных катастрофических сбоев:
- В пользовательском режиме для каждого процесса существует изолированное виртуальное адресное пространство .
- Пользовательский режим обеспечивает изолированное выполнение каждого процесса, так что он не влияет на другие процессы как таковые.
- Прямой доступ к какому-либо аппаратному устройству не допускается.
Заблокировано
Процесс переходит в заблокированное состояние, когда он не может продолжать работу без внешнего изменения состояния или возникновения события. Например, процесс может заблокировать вызов устройства ввода-вывода, такого как принтер, если принтер недоступен. Процессы также обычно блокируются, когда они требуют ввода данных пользователем или доступа к критическому разделу, который должен выполняться атомарно. Такие критические секции защищены с помощью объекта синхронизации, такого как семафор или мьютекс.
Прекращено
Процесс может быть завершен либо из «запущенного» состояния, завершив его выполнение, либо явным завершением. В любом из этих случаев процесс переходит в состояние «завершено». Базовая программа больше не выполняется, но процесс остается в таблице процессов как процесс-зомби до тех пор, пока его родительский процесс не wait
вызовет системный вызов, чтобы прочитать его статус выхода , после чего процесс удаляется из таблицы процессов, наконец завершая процесс. продолжительность жизни. Если родительский wait
элемент не может вызвать , он продолжает использовать запись таблицы процессов (в частности, идентификатор процесса или PID) и вызывает утечку ресурсов .
Дополнительные состояния процесса
Для процессов в системах, поддерживающих виртуальную память , доступны два дополнительных состояния . В обоих этих состояниях процессы «хранятся» во вторичной памяти (обычно на жестком диске ).
Заменил и жду
(Также называется приостановкой и ожиданием .) В системах, поддерживающих виртуальную память, процесс может быть выгружен, то есть удален из основной памяти и помещен во внешнее хранилище планировщиком. Отсюда процесс может быть переведен обратно в состояние ожидания.
Заменено и заблокировано
(Также называется приостановленным и заблокированным ). Процессы, которые заблокированы, также могут быть выгружены. В этом случае процесс одновременно выгружается и блокируется, и может быть снова заменен обратно при тех же обстоятельствах, что и процесс, который был выгружен и ожидает (хотя в этом случае процесс перейдет в заблокированное состояние и все еще может ожидать чтобы ресурс стал доступным).
Смотрите также
Рекомендации
- ↑ Авраам Зильбершатц; Питер Баер Гэлвин; Грег Гань (29.07.2008). Понятия операционной системы . ISBN 978-0470128725.
- ^ Морис Дж. Бах (1986). Дизайн операционной системы UNIX . Прентис-Холл, Инк. Верхняя Сэдл-Ривер, Нью-Джерси, США © 1986. ISBN 0-13-201799-7.
- Столлингс, Уильям (2005). Операционные системы: внутреннее устройство и принципы построения (5-е изд.). Прентис Холл. ISBN 0-13-127837-1.
- В частности, глава 3, раздел 3.2, «состояния процесса», включая рисунок 3.9 «переход между состояниями процесса с приостановленными состояниями».