Блок управления процессом

УПРАВЛЕНИЕ ПРОЦЕССАМИ. ПЛАНИРОВАНИЕ И ДИСПЕТЧЕРИЗАЦИЯ ПРОЦЕССОВ

Начиная с данной лекции, в курсе более подробно рассматриваются все ключевые концепции и задачи ОС и используемые для их реализации алгоритмы и структуры данных. Первая концепция, подробно рассматриваемая в данной и следующей лекциях, — концепция процесса и управления процессами. Рассматриваются следующие вопросы:

  • понятие процесса;
  • cостояния процесса;
  • блок управления процессом;
  • диспетчеризация процессов;
  • операции над процессами.

Понятие процесса

Процесс (process) это программа пользователя при ее выполнении. При своей работе операционная системы исполняет множество классов программ: пакетные задания; пользовательские программы в режиме разделения времени; системные программы и процессы. Имеется несколько схожих терминов, характеризующих пользовательские программы: процесс (process), задание (job), задача (task) Однако не будем здесь преувеличивать различие между ними: для лучшего понимания специфики процессов и управления ими в ОС, мы можем считать приведенные термины синонимами, как и считается во многих учебниках поОС.

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

Процесс при его создании и управлении им операционной системой включает следующую основную информацию:

  • Счетчик команд (program counter — PC)– адрес текущей выполняемой команды процесса; обычно хранится в специальном системном регистре аппаратуры;
  • Стек (stack)– резидентная область основной памяти, выделяемая операционной системой при создании процесса, в которой хранятся локальные данные процедур процесса, их параметры (аргументы) и связующая информация между ними, необходимая для организации вычислений. При запуске очередной процедуры в стеке отводится запись активации (activation record),называемая также стековым фреймом (stack frame)и областью локальных данных (local data area)для хранения локальных данных текущего поколения (запуска)процедуры. По окончании ее выполнения запись активации удаляется из стека;
  • Секция данных( data section ) – статическая (постоянно выделенная, неизменного размера) область основной памяти, выделяемая операционной системой процессу, в которой хранятся его глобальные переменные, массивы, структуры, объекты.

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

Состояния процесса

При исполнении процесс может изменять свое состояние следующим образом:

Новый (new):Процесс создается операционной системой, но еще не начал выполняться.

Исполняемый (running):Исполняются команды процесса на процессоре или процессорах компьютерной системы под управлением ОС.

Ожидающий (waiting):Процесс ожидает наступления некоторого события, например, завершения ввода-вывода. В состоянии ожидания процесс не занимает процессор.

Готовый к выполнению (ready):Процесс ожидает получения ресурсов процессора для его исполнения. В состояние готовности к выполнению процесс попадает обычно либо при его создании, либо после завершения ввода-вывода (из состояния ожидания).

Завершенный (terminated):Исполнение процесса завершено.

Диаграмма состояний процесса представлена на рис. 8.1.

Блок управления процессом

Рис. 8.1.Диаграмма состояний процесса.

Как видно из схемы, новый процесс, созданный в системе, проходит стадию допущен (admitted)– включается операционной системой в очередь всех процессов в системе, после чего ОС переводит его в состояние готовности к выполнению. Отметим сразу, что очередь готовых к выполнению процессов – одна из наиболее часто используемых системных структур для управления процессами. Из состояния готовности в состояние выполнения процесс переводится планировщиком ОС в результате диспетчеризации– выделения кванта процессорного времени. При выполнении процесс может быть прерван (потаймеру, в результате ошибки и т.п.), а после обработки прерывания операционной системой переходит снова в состояние готовности к выполнению. Если в процессе выполняется синхронный ввод-вывод, либо процесс должен ожидать наступления некоторого события (например, определенного момента времени), процесс переходит в состояние ожидания. При завершении ввода-вывода или при наступлении ожидаемого события процесс не получает сразу же квант процессорного времени, а переходит в состояние готовности к выполнению. Процесс переходит в завершенное состояние при завершении работы программы процесса — например, в результате системного вызова exit(c), где c – код завершения. Если c = 0,процесс считается благополучно завершенным.

Блок управления процессом

Блок управления процессом (Process Control Block – PCB)– системная структура данных, используемая ОС для управления процессом, содержащая следующую информацию, ассоциируемую с каждым процессом:

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

Структура блока управления процессом изображена на рис. 8.2.

Блок управления процессом

Рис. 8.2.Блок управления процессом (PCB).

Delphi Delco HSFI. Ещё один ремонт блока управления двигателем автомобиля Опель (ECU, MCU, АСУД).


Похожие статьи.

Понравилась статья? Поделиться с друзьями: