Блок управления процессом
Блок управления процессом ( PCB ), также иногда называемый дескриптором процесса , представляет собой структуру данных, используемую операционной системой компьютера для хранения всей информации о процессе .
Когда процесс создается (инициализируется или устанавливается), операционная система создает соответствующий блок управления процессом, который определяет и отслеживает состояние процесса (т. е. новый, готовый, запущенный, ожидающий или завершенный). Поскольку плата используется для отслеживания информации о процессе, она играет ключевую роль в переключении контекста . [1]
Ядро операционной системы хранит платы в таблице процессов. [2]
Текущий рабочий каталог процесса — это одно из свойств, которое ядро хранит в плате процесса. [3]
Роль
[ редактировать ]Роль печатных плат является центральной в управлении процессами : к ним обращаются и/или изменяют большинство утилит, особенно тех, которые занимаются планированием и управлением ресурсами.
Структура
[ редактировать ]В многозадачных операционных системах на плате хранятся данные, необходимые для правильного и эффективного управления процессами. [4] Хотя детали этих структур зависят от системы, общие элементы делятся на три основные категории:
- Идентификация процесса
- Состояние процесса
- Управление процессом
Таблицы состояний существуют для каждого соответствующего объекта, например, с описанием памяти, устройств ввода-вывода, файлов и процессов.
Таблицы памяти, например, содержат информацию о выделении основной и вторичной (виртуальной) памяти для каждого процесса, атрибутах авторизации для доступа к областям памяти, совместно используемым различными процессами, и т. д. Таблицы ввода-вывода могут содержать записи, указывающие доступность устройства или его назначение процессу, состояние операций ввода-вывода, расположение используемых для них буферов памяти и т. д.
Данные идентификации процесса включают в себя уникальный идентификатор процесса (почти всегда целое число), а в многопользовательской многозадачной системе такие данные, как идентификатор родительского процесса, идентификатор пользователя, идентификатор группы пользователей и т. д. Идентификатор процесса особенно важен. поскольку он часто используется для перекрестных ссылок на таблицы, определенные выше, например, показывая, какой процесс использует какие устройства ввода-вывода или области памяти.
Данные о состоянии процесса определяют состояние процесса, когда он приостановлен, что позволяет ОС перезапустить его позже. Сюда всегда входит содержимое регистров ЦП общего назначения, слово состояния процесса ЦП, указатели стека и кадра и т. д. Во время переключения контекста текущий процесс останавливается и запускается другой процесс. Ядро должно остановить выполнение запущенного процесса, скопировать значения аппаратных регистров на свою плату и обновить аппаратные регистры значениями из платы нового процесса.
Информация управления процессом используется ОС для управления самим процессом. Это включает в себя:
- Состояние планирования процесса. Состояние процесса с точки зрения «готов», «приостановлено» и т. д., а также другая информация о планировании, такая как значение приоритета, количество времени, прошедшее с тех пор, как процесс получил контроль над ЦП или с момента оно было приостановлено. Кроме того, в случае приостановления процесса необходимо записать данные идентификации события для события, которого ожидает процесс;
- Информация о структурировании процесса – идентификаторы дочерних процессов процесса или идентификаторы других процессов, связанных с текущим каким-либо функциональным образом, которые могут быть представлены в виде очереди, кольца или других структур данных;
- Информация межпроцессного взаимодействия – флаги, сигналы и сообщения, связанные со взаимодействием между независимыми процессами;
- Привилегии процесса – разрешен/запрещен доступ к системным ресурсам;
- Состояние процесса – новый, готовый, запущенный, ожидающий, мертвый;
- Номер процесса (PID) – уникальный идентификационный номер для каждого процесса (также известный как идентификатор процесса );
- Программный счетчик (ПК) – указатель на адрес следующей инструкции, которая будет выполнена для этого процесса;
- Регистры ЦП — набор регистров, в которых процесс должен быть сохранен для выполнения в рабочем состоянии;
- CPU Scheduling Information – информация планирования процессорного времени;
- Информация управления памятью – таблица страниц, пределы памяти, таблица сегментов;
- Учетная информация – количество процессора, используемого для выполнения процесса, ограничения по времени, идентификатор выполнения и т. д.;
- Информация о состоянии ввода-вывода — список устройств ввода-вывода, выделенных процессу.
Расположение
[ редактировать ]Плата должна храниться в области памяти, защищенной от обычного доступа процесса. В некоторых операционных системах плата размещается в нижней части стека процессов . [5]
См. также
[ редактировать ]- Блок управления резьбой (TCB)
- Блок технологической среды (PEB)
- Префикс сегмента программы (PSP)
- Сегмент данных
Примечания
[ редактировать ]- ^ «Блок управления процессами | Основы информатики» . 25 июня 2020 г.
- ^ «Класс 9: Файловая система Unix» . www.usna.edu . Проверено 9 декабря 2023 г.
- ^ «Примечания CS 537: Каталоги» . страницы.cs.wisc.edu . Проверено 9 декабря 2023 г.
- ^ Ганье, Авраам Зильбершац, Питер Баер Гэлвин, Грег (2013). Концепции операционной системы (9-е изд.). Хобокен, Нью-Джерси: Уайли. С. 107–108 . ISBN 9781118063330 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Юн, Чжан, «Преодоление максимального числа процессов», «Linux Journal», 1 января 2004 г., [1] .