Interested Article - Блок управления процессом
- 2020-08-03
- 1
Блок управления процессом (на англ. PCB — P rocess c ontrol b lock ) — это структура данных , используемая компьютерными операционными системами для хранения всей информации о процессе . Также известен как дескриптор процесса. Когда процесс создается (инициализируется или устанавливается), операционная система создает соответствующий блок управления процессом .
Такая структура позволяет определить состояние процесса, такое как: новый, готовый, выполняющийся, ожидающий, завершенный и т. п.
Роль
Роль блока является центральной в управлении процессами: доступ к ним и/или их изменение осуществляется большинством утилит, особенно теми, которые занимаются планированием и управлением ресурсами .
Структура
В многозадачных операционных системах блок управления процессом хранит данные, необходимые для правильного и эффективного управления процессами . Хотя особенности этих структур зависят от системы, общие элементы делятся на три основные категории:
- Идентификация процесса;
- Состояние процесса;
- Контроль процесса.
Для каждого соответствующего сегмента существуют таблицы состояния , например, описывающие память, устройства ввода-вывода , файлы и процессы.
Таблицы памяти , например, содержат информацию о распределении основной и вторичной ( виртуальной ) памяти для каждого процесса, атрибутах авторизации для доступа к областям памяти, разделяемым между различными процессами, и т. д. Таблицы ввода-вывода могут содержать записи, указывающие на доступность устройства или его назначение процессу, статус операций ввода-вывода, расположение используемых для них буферов памяти и т. д.
Идентификационные данные процесса включают уникальный идентификатор процесса (почти всегда целое число) и в многопользовательской многозадачной системе, такие данные, как идентификатор родительского процесса, идентификатор пользователя , пользователей и т. д. Идентификатор процесса особенно важен, поскольку он часто используется для перекрестных ссылок на таблицы, определенные выше, например показывающие, какой процесс использует определённые устройства ввода-вывода или области памяти.
Данные о состоянии процесса определяют статус процесса, когда он приостановлен, позволяя операционной системе перезапустить его позже. Это всегда включает в себя содержимое регистров ЦП общего назначения, ЦП, указатели стека и фрейма и т. д. Во время запущенный процесс останавливается и запускается другой процесс. Ядро должно остановить выполнение запущенного процесса, скопировать значения в аппаратных регистрах на свой блок управления и обновить аппаратные регистры значениями с блоком управления нового процесса.
Информация об управлении процессом используется операционной системой для управления самим процессом. Она включает в себя:
- Состояние управления процессом в терминах «готово», «приостановлено» и т. д., А также другая информация о планировании, такая как значение приоритета, количество времени прошедшего с момента получения процессом контроля над процессором или с момента его приостановки. Кроме того, в случае приостановленного процесса необходимо записать идентификационные данные события для события, которого ожидает процесс;
- Информация о взаимосвязях процесса — идентификаторы или идентификаторы смежных процессов, связанных с текущим каким-либо функциональным способом, которые могут быть представлены в виде очереди , кольца или других структур данных ;
- Информация о межпроцессном взаимодействии — флаги , сигналы и сообщения , связанные с взаимодействием между независимыми процессами;
- Привилегии процесса — разрешенный/запрещенный доступ к системным ресурсам;
- Состояние процесса — новый, готовый, выполняющийся, ожидающий, мертвый;
- Номер процесса ( PID ) — уникальный идентификационный номер для каждого процесса (также известный как идентификатор процесса);
- Счётчик команд ( PC ) — указатель на адрес следующей инструкции, которая должна быть выполнена для этого процесса;
- Регистры процессора — Набор регистров, в которых процесс должен быть сохранен для выполнения в запущенном состоянии;
- Информация о планировании ЦП — информация о планировании процессорного времени ;
- Информация об управлении памятью — таблица страниц , ограничения памяти, таблица сегментов;
- Учётная информация — объём ЦП используемого для выполнения процесса, ограничения по времени, идентификатор выполнения и т. д.;
- Информация о состоянии ввода–вывода — список устройств ввода-вывода выделенных процессу.
Расположение
Блок управления процессом должен храниться в области памяти защищённой от обычного доступа процесса. В некоторых операционных системах блок размещается в начале ядра стека процесса .
См. также
Примечания
- Робачевский А. М. , Немнюгин С. А. , Стесик О. Л. . Глава 1. Работа в операционной системе UNIX // Операционная система UNIX (рус.) . — 2-е изд. — СПб. : БХВ-Петербург, 2010. — С. 46-53. — 656 с. — ISBN 978-5-94157-538-1 .
- Рихтер Дж. . Глава 4. Процессы // Windows для профессионалов = Programming Applications for Microsoft Windows (рус.) . — 4-е изд. — СПб. : Питер , 2008. — С. 48-83. — 720 с. — ISBN 5–272–00384—5.
- Таненбаум Э. С. , Бос Х. . Глава 2. Процессы и потоки // = Modern Operating Systems (рус.) . — 4-е изд. — СПб. : Питер , 2015. — С. 111-118. — 1120 с. — ISBN 978-5-4461-1155-8 . 4 марта 2022 года.
- Лав Р . Глава 3. Управление процессами // Ядро Linux Описание процесса разработки (рус.) . — 3-е изд. — М. : Вильямс, 2013. — С. 51-72. — 496 с. — ISBN 978-5-8459-1779-9 .
- Лав Р . Глава 5. Управление процессами // Linux. Системное программирование = Linux. System Programming (рус.) . — 2-е изд. — СПб. : Питер , 2014. — С. 171-209. — 448 с. — ISBN 78-5-496-00747-4.
- Silberschatz Abraham , Galvin P. B. , Gagne Greg. (англ.) . — 9-е изд. — Hoboken, N.J.: Hoboken, N.J. : Wiley ; Chichester : John Wiley, 2013. — P. 107-108. — ISBN 9781118063330 .
- Yong Zhang. // Linux Journal . — 2004. — 1 января. 13 августа 2019 года.
Ссылки
- (англ.)
- 2020-08-03
- 1