Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Проверочные и экзамен / Вопросы к экзамену по операционным системам 080500.doc
Скачиваний:
394
Добавлен:
25.02.2015
Размер:
1.18 Mб
Скачать
  1. Методы создания процессов.

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

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

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

ИЗ ЛЕКЦИЙ:

Создание процесса – создание структуры данных в памяти (PCB). Любой процесс порождается другим существующим процессом (идеология ОС). Первый процесс порождается ядром ОС, остальные порождаются от этого процесса.

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

В Linux используется иерархия процессов. Родитель всех процессов - процесс init с PID =1. Процесс-потомок посылает информацию по завершению работы и контроль осуществляет процесс-родитель. Процессы-потомки не могут иметь большие права, чем права у процесса-родителя. Если процесс-родитель аварийно завершился, то процесс-наследник усыновляется либо процессом-родителем, вышестоящим по иерархии, либо процессом init.

Зомби процесс – процесс, который никогда не выполнится и удалить его крайне невозможно.

В PCB хранится PID, PPID, UID, которые характеризует процесс (идентификация процесса).

Еще одно отличие Windows и Linux заключается в том, что в Linux процессы размножаются клонированием, в Windows е создается с чистого листа.

Так же в PCB хранится статус процесса (status word). С точки зрения ОС нельзя попытаться родить процесса с одинаковым статусом. Данные о ресурсах, история (статистика) процесса - сколько процесс потреблял процессорного времени, сколько ожидал процессорное время - данные для планировщиков