Создание и завершение процессов


 

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

 

Создание процессов

 

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

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

Таблица 3.1. Причины создания процессов

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

 

Традиционно операционная система создает все процессы незаметно для пользователя или приложения; такой способ принят во многих современных операционных системах. Однако иногда требуется, чтобы один процесс мог послужить причиной создания другого процесса. Например, процесс приложения может сгенерировать другой процесс, который будет получать данные от первого процесса и приводить их к виду, удобному для дальнейшего анализа. Новый процесс будет работать параллельно с приложением и время от времени активи­зироваться для получения новых данных. Такая организация может быть очень полезна для структурирования приложений. В качестве другого примера можно привести ситуацию, в которой процесс-сервер (например, сервер печати или файловый сервер) может генерировать новый процесс для каждого обрабатываемого им запроса. Создание операционной системой процесса по явному запросу другого процесса называется порождением процесса (process spawning).

Когда один процесс порождает другой, то порождающий процесс называется родительским, или предком (parent), а порождаемый процесс — дочерним, или потомком (child). Обычно "родственные" процессы обмениваются между собой информацией и взаимодействуют друг с другом. Организация такого взаимодействия является достаточно трудной задачей для программиста (эта тема рассматривается в главе 5, "Параллельные вычисления: взаимоисключения и многозадачность").



Дата добавления: 2016-06-05; просмотров: 2601;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.