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

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

cat chapterl chapter2 chapter3 | grep tree

первый процесс, запускающий программу cat, объединяет и выдает на выходе содержимое трех файлов. Второй процесс, запускающий программу grep, выбирает все строки, в которых содержится слово «tree». В зависимости от относительной скорости этих двух процессов (которая зависит от двух факторов: относительной сложности программ и количества выделяемого каждому из них времени работы центрального процессора) может получиться так, что программа grep готова к работе, но ожидающие ее входные данные отсутствуют. Тогда она должна блокироваться до поступления входных данных.

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

♦ выполняемый (в данный момент использующий центральный процессор);

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

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

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


Рис. 2.2. Процесс может быть в выполняемом, заблокированном или готовом состоянии.

Стрелками показаны переходы между этими состояниями

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

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

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

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

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

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

Рис. 2.3. Самый низший уровень структурированной в виде процессов операционной системы обрабатывает прерывания и планирует выполнение процессов. Выше этого уровня находятся последовательные процессы


2.1.1.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Состояния процессов:

  1. Тема 4. ПСИХИЧЕСКИЕ ПРОЦЕССЫ И СОСТОЯНИЯ ПИЧНОСТИ
  2. V. Динамика психического состояния специалиста в процессе деятельности.
  3. Очерк 2: Берт «Процесс — вот мое достояние. Именно процесс создает успех»
  4. Задания, мешающие когнитивному процессу (ЗМКП), и задания, помогающие когнитивному процессу (ЗПКП)
  5. § 19 Узаконение незаконных детей в России. – Узаконение раскольничьих детей. – Когда признаются незаконными дети, рожденные в браке? – Состояние незаконных детей. – Законность рождения и состояние незаконных по закону прибалтийских губерний.
  6. СОСТОЯНИЕ ПСИХИЧЕСКОЕ
  7. Психические состояния
  8. СОСТОЯНИЕ
  9. СОЗНАНИЕ: СОСТОЯНИЕ
  10. ТЕСТ СОСТОЯНИЙ
  11. СОСТОЯНИЕ ПОГРАНИЧНОЕ
  12. Неврологические состояния
  13. Неврологические состояния