Билет Межпроцессорное взаимодействие

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

На рис. 2.2 показана диаграмма, отображающая три состояния, в которых может находиться процесс:

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

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

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

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

 

 

1. Процесс заблокирован в ожидании ввода

2. Диспетчер выбрал другой процесс

3. Диспетчер выбрал данный процесс

4. Входные данные стали доступны

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

 

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