Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС колоквиум.docx
Скачиваний:
5
Добавлен:
22.11.2019
Размер:
70.55 Кб
Скачать

5) Понятие процессов и потоков

Управление процессами состоит в их создании и уничтожении; приостановлении и

возобновлении; изменении приоритета; переключении состояний.

При управлении процессами ОС использует два основных типа информационных

структур: дескриптор процесса и контекст процесса.

Дескриптор процесса (это термин, используемый в Unix, но ставший обще-

употребительным. Аналогичная структура в Windows называется объект-процессом)

содержит информацию о процессе, которая необходима ядру ОС в течение всего жиз-

ненного цикла процесса независимо от его состояния.

Дескриптор содержит:

- идентификатор процесса;

- информацию о состоянии процесса;

- данные о степени привилегированности процесса;

- местоположение кодового сегмента;

- данные о родственных процессах;

- данные о событиях, которые ожидает процесс и др.

Дескрипторы отдельных процессов объединены в таблицу (очередь) процессов,

на основе которой ОС осуществляет планирование и синхронизацию процессов. Па-

мять для таблицы отводится динамически в области ядра ОС.

Контекст процесса содержит информацию, необходимую для возобновления вы-

полнения процесса после прерывания и поэтому сохраняемую перед прерыванием. Это:

- состояние аппаратуры компьютера:

- значение счетчика команд; содержимое регистров общего назначения;

- режим работы процессора;

- флаги;

- маски прерываний и др.;

- параметры операционной системы:

- указатели на открытые файлы;

- информация о незавершенных операциях ввода-вывода;

- коды ошибок выполняемых процессом системных вызовов и др.

Контекст, как и дескриптор, доступен только программам ядра, но хранится не в

области ядра, а непосредственно примыкает к образу (совокупности кода и данных)

процесса и может быть перемещен вместе с ним (из ОП на диск и наоборот).

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

Создать процесс – это означает:

- создать информационные структуры, описывающие процесс, т.е. его дескриптор и

контекст;

- включить дескриптор нового процесса в очередь готовых процессов;

- загрузить кодовый сегмент процесса в Оперативную память или область свопинга.

В многопоточных системах (с возможностью распараллеливания процессов) для

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

ОС генерирует описатель (дескриптор) потока.

Момент выборки процесса на выполнение осуществляется в соответствии с при-

нятой в ОС дисциплиной обслуживания.

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

иерархическая структура процессов. Отношения между потомками и родителями стро-

ятся по-разному в различных ОС.

В мультипрограммной системе процесс может находиться в одном из трех основ-

ных состояний:

· выполнение – активное состояние, во время которого процесс обладает всеми

необходимыми ресурсами и непосредственно выполняется процессором;

· ожидание – пассивное состояние; процесс заблокирован, он не может выполняться

по своим внутренним причинам, ждет осуществления некоторого события, например,

завершения операции ввода-вывода, получения сообщения от другого процесса, ос-

вобождения какого-либо необходимого ему ресурса;

· готовность – также пассивное состояние; но в этом случае процесс заблокиро-

ван в связи с внешними по отношению к нему обстоятельствами: процесс имеет все

требуемые для него ресурсы, он готов выполняться, однако процессор занят выпол-

нением другого процесса.

В течение своей жизни каждый процесс переходит из одного состояния в другое

в соответствии с алгоритмом планирования процессов, принятым в данной опера-

ционной системе. Жизненный цикл процесса начинается с состояния готовность, когда процесс го-

тов к выполнению и ждет своей очереди. При активизации процесс переходит в со-

стояние выполнение и находится в нем до тех пор, пока либо он сам не освободит

Выполнение

Готовность Ожидание

Только что созданный процесс

Процесс выбран на

выполнение

Процесс завершен

или произошла ошибка

Процесс ожидает ввода-вывода

(или другого события)

Ввод-вывод завершен

(событие произошло)

Процесс

вытеснен

процессор, перейдя в состояние ожидания какого-нибудь события, либо будет насильно

вытеснен из процессора (например, вследствие истечения отведенного данному про-

цессу кванта процессорного времени). В последнем случае процесс возвращается в

состояние готовность. В это же состояние процесс переходит из состояния ожида-

ния после того, как ожидаемое событие произойдет.

В состоянии выполнение в однопроцессорной системе может находиться только

один процесс, а в каждом из состояний ожидание и готовность – несколько процес-

сов. Эти процессы образуют очереди ожидающих и готовых процессов соответственно.

Очереди процессов представляют собой дескрипторы отдельных процессов, объе-

диненные в списки. Таким образом, каждый элемент списка содержит по крайней мере

один указатель на другой элемент, соседствующий с ним в очереди. Такая организа-

ция очередей позволяет легко переупорядочивать, включать и исключать процессы,

переводить их из одного состояния в другое (удалять из одной и ставить в другую

очередь)