Билет 22.Управление процессами.



Определение процесса. Типы процессов

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

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

Понятие «процесс» включает в себя следующее: исполняемый код; собственное адресное пространство; ресурсы системы; хотя бы одну выполняемую нить.

Жизненный цикл процесса

Рассмотрим типовые этапы обработки процесса в системе, совокупность этих этапов будем назвать жизненным циклом процесса в системе. Традиционно, жизненный цикл процесса содержит этапы: образование (порождение) процесса; обработка (выполнение) процесса; ожидание (по тем или иным причинам) постановки на выполнение; завершение процесса.

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

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

0. После формирования процесс поступает в очередь на начало обработки ЦП (попадает в БВП).

1. В БВП выбирается наиболее приоритетный процесс для начала обработки ЦП (попадает в БОП).

2. Процесс прекращает обработку ЦП по причине ожидания операции в/в, поступает в очередь завершения операции обмена (БОП).

3. Процесс прекращает обработку ЦП, но в любой момент может быть продолжен (например, истек квант времени ЦП, выделенный процессу). Поступает в очередь процессов, ожидающих продолжения выполнения центральным процессором (БОП).

4. Наиболее приоритетный процесс продолжает выполнение ЦП (БОП).

5. Операция обмена завершена и процесс поступает в очередь ожидания продолжения выполнения ЦП (БОП).

6. Переход из очереди готовых к продолжению процессов в очередь процессов, ожидающих завершения обмена (например, ОС откачала содержимое адресного пространства процесса из ОЗУ во внешнюю память) (БОП).

7. Завершение процесса, освобождение системных ресурсов. Корректное завершение работы процесса, разгрузка информационных буферов, освобождение ресурсов (например, реальный вывод информации на устройство печати).

Контекст процесса.

С каждым из процессов из БОП система ассоциирует совокупность данных, характеризующих актуальное состояние процесса – контекст процесса.

Контекст процесса может состоять из:

пользовательской составляющей – состояние программы, как совокупности машинных команд и данных, размещенных в ОЗУ;

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


БИЛЕТ. Базовые свойства процессов. Определение процесса. Контекст

В любой системе, оперирующей понятием процесс, существует системно-ориентированное определение процесса (определение, учитывающее конкретные особенности данной ОС).

Первое определение процесса Unix.

Процесс в ОС Unix – объект (не надо путать с объектом ООП!!!), зарегистрированный в таблице процессов Unix.

Таблица процессов

Каждый процесс характеризуется уникальным именем – идентификатором процесса (PID). PID – целое число от 0 до некоторого предельного значения, определяющего максимальное число процессов, существующих в системе одновременно.

 Будем использовать термины 0й процесс, 1й процесс, 125й процесс, это означает, что речь идет о процессах с PID = 0, 1, 125. 0й процесс в системе ассоциируется с работой ядра Unix. С точки зрения организации данных PID – номер строки в таблице, в которой размещена запись о процессе.

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

С точки зрения логической структуры контекст процесса Unix состоит из: пользовательской составляющей или тела процесса (иногда используется пользовательский контекст) ; аппаратной составляющей (иногда используется аппаратный контекст) ; системной составляющей ОС Unix (иногда – системный контекст).

Тело процесса состоит из сегмента кода и сегмента данных.

Сегмент кода содержит машинные команды и неизменяемые константы соответствующей процессу программы.

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

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

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

Системная составляющая.

В системной составляющей контекста процесса содержатся различные атрибуты процесса.

Рассмотрим второе определение процесса Unix.

Процесс в ОС Unix – это объект, порожденный системным вызовом fork(). Данный системный вызов является единственным стандартным средством порождения процессов в системе Unix. Ниже рассмотрим возможности данного системного вызова подробнее.


Дата добавления: 2018-08-06; просмотров: 295; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!