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

28. Процессы. Состояние процессов. Жц процесса.

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

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

процесс исполняется

процесс не исполняется

готовность и ожидание

исполнение

закончил исполнение

29. Операции над процессами

Системы, управляющие процессами, должны иметь возможность выполнять определенные операции над процессами, в том числе:

-создание (образование) процесса;

-уничтожение процесса;

-возобновление процесса;

-изменение приоритета процесса;

-блокирование процесса;

-пробуждение процесса;

-запуск (выбор) процесса.

Создание процесса состоит из многих операций, включая такие как:

присвоение имени процессу; включение этого имени в список имен процессов, известных системе; определение начального приоритета процесса; формирование блока управления процессом РСВ; выделение процессу начальных ресурсов.

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

Уничтожение процесса означает его удаление из системы.

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

Изменение приоритета процесса, как правило, означает модификацию значения приоритета в блоке управления данным процессом.

30. Блоки управления процессами и дескрипторы процессов.

Управление процессами

Вторым по значимости понятием в операционной системе (ОС) является понятие процесса. Процесс - сущность, которая определяется по-разному. Это может быть - “упорядоченный набор команд и принадлежащих ему ресурсов”. С точки зрения ОС UNIX, процесс - это объект, зарегистрированный в специальной таблице процессов. Структура этой таблицы следующая: она позиционна (как практически и все таблице в UNIX), то есть номер записи в таблице - есть идентификатор процесса “PID”. Формируются процессы с 0 до N-1, где N - предельное число процессов, которые система может одновременно обрабатывать. Это параметр настройки ОС.

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

Контекст содержит:

номера пользователя и группы;

указатель на индексный дескриптор текущего каталога;

специфические условия работы процесса:

- обработка сигналов;

Рассмотрим это подробнее. В ОС UNIX каждый процесс может послать другому процессу некоторое воздействие, которое называют “сигнал”; соответственно, если процесс-отправитель имеет право передать сигнал процессу-получателю, то при выполнении передачи в последнем возникает событие, связанное с сигналом.

- информация об открытых в процессе файлах;

- информация о текущем состоянии процесса на случай его приостановки;

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

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

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

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

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

31. Приостановка и возобновление работы процессов.

Система может приостановить процесс в следующих случаях:

-если система работает ненадежно и есть признаки, что она может отказать, то текущие процессы можно приостановить, чтобы вновь активизировать впоследствии после исправления ошибки;

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

На рис. 3.5 показана диаграмма состояний процесса, модифицированная с учетом операций приостановки и возобновления. В диаграмму введены два новых состояния, а именно «приостановлен_готов» и «приостановлен_блокирован». На рисунке выше штриховой линии изображены активные состояния, а ниже — состояния приостановки.

Инициатором приостановки может быть либо сам процесс, либо другой процесс. В однопроцессорной машине выполняющийся процесс может приостановить только сам себя. В мультипроцессорной машине выполняющийся процесс может быть приостановлен и другим процессом, выполняющимся на другом процессоре.

Процесс, находящийся в состоянии готовности, может быть приостановлен только другим процессом. При этом происходит следующая смена состояния:

приостановка(имяпроцесса): готов ? приостановлен_готов

Процесс, находящийся в состоянии «приостановлен_готов», может быть переведен в состояние готовности другим процессом. Состояния меняются следующим образом:

?= ->

возобновление(имяпроцесса): приостановлен_готов ? готов

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

приостановка(имяпроцесса): блокирован ? приостановлен_блокирован

Процесс, находящийся в состоянии «приостановлен_блокирован», может быть активизирован другим процессом. При этом состояния меняются:

возобновление(имяпроцесса): приостановлен_блокирован ? блокирован

Рис. 3.5 Диаграмма состояний процесса с операциями приостановки и возобновления

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]