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

Блок управления процессом (на англ. PCBProcess control block) — это структура данных, используемая компьютерными операционными системами для хранения всей информации о процессе. Также известен как дескриптор процесса. Когда процесс создается (инициализируется или устанавливается), операционная система создает соответствующий блок управления процессом[1].

Такая структура позволяет определить состояние процесса, такое как: новый, готовый, выполняющийся, ожидающий, завершенный и т. п.

Роль

Роль блока является центральной в управлении процессами: доступ к ним и/или их изменение осуществляется большинством утилит, особенно теми, которые занимаются планированием и управлением ресурсами.

Структура

В многозадачных операционных системах блок управления процессом хранит данные, необходимые для правильного и эффективного управления процессами[2]. Хотя особенности этих структур зависят от системы, общие элементы делятся на три основные категории:

  • Идентификация процесса;
  • Состояние процесса;
  • Контроль процесса.

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

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

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

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

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

  • Состояние управления процессом в терминах «готово», «приостановлено» и т. д., А также другая информация о планировании, такая как значение приоритета, количество времени прошедшего с момента получения процессом контроля над процессором или с момента его приостановки. Кроме того, в случае приостановленного процесса необходимо записать идентификационные данные события для события, которого ожидает процесс;
  • Информация о взаимосвязях процессаидентификаторы дочерних процессов или идентификаторы смежных процессов, связанных с текущим каким-либо функциональным способом, которые могут быть представлены в виде очереди, кольца или других структур данных;
  • Информация о межпроцессном взаимодействиифлаги, сигналы и сообщения, связанные с взаимодействием между независимыми процессами;
  • Привилегии процесса — разрешенный/запрещенный доступ к системным ресурсам;
  • Состояние процесса — новый, готовый, выполняющийся, ожидающий, мертвый;
  • Номер процесса (PID) — уникальный идентификационный номер для каждого процесса (также известный как идентификатор процесса);
  • Счётчик команд (PC) — указатель на адрес следующей инструкции, которая должна быть выполнена для этого процесса;
  • Регистры процессора — Набор регистров, в которых процесс должен быть сохранен для выполнения в запущенном состоянии;
  • Информация о планировании ЦП — информация о планировании процессорного времени;
  • Информация об управлении памятью — таблица страниц, ограничения памяти, таблица сегментов;
  • Учётная информация — объём ЦП используемого для выполнения процесса, ограничения по времени, идентификатор выполнения и т. д.;
  • Информация о состоянии ввода–вывода — список устройств ввода-вывода выделенных процессу.

Расположение

Блок управления процессом должен храниться в области памяти защищённой от обычного доступа процесса. В некоторых операционных системах блок размещается в начале ядра стека процесса[3].

См. также

Примечания

  1. Таненбаум Э. С., Бос Х.. Глава 2. Процессы и потоки // Современные операционные системы = Modern Operating Systems. — 4-е изд. СПб.: Питер, 2015. — С. 111-118. — 1120 с. — ISBN 978-5-4461-1155-8.
  2. Silberschatz Abraham, Galvin P. B., Gagne Greg. Operating system concepts (англ.). — 9-е изд. — Hoboken, N.J.: Hoboken, N.J. : Wiley ; Chichester : John Wiley, 2013. — P. 107-108. — ISBN 9781118063330.
  3. Yong Zhang. Breaking through the Maximum Process Number // Linux Journal. — 2004. — 1 января.

Ссылки

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.