Блок управления процессом — Process control block
A блок управления процессом (PCB) — это структура данных, используемая компьютерами операционными системами для хранения всей информации о процессе. Он также известен как дескриптор процесса . .
- Когда процесс создается (инициализируется или устанавливается), операционная система создает соответствующий блок управления процессом.
- Информация в блоке управления процессом обновляется во время переход состояний процесса.
- Когда процесс завершается, его печатная плата возвращается в пул, из которого выводятся новые печатные платы.
- Каждый процесс имеет одну печатную плату.
- 1 Роль
- 2 Структура
- 3 Местоположение
- 4 См. Также
- 5 Примечания
Роль
Роль печатных плат является центральной в управлении процессами: к ним осуществляется доступ и / или изменен большинством коммунальных предприятий, особенно теми, кто занимается планированием и управлением ресурсами.
Структура
В многозадачных операционных системах на плате хранятся данные, необходимые для правильного и эффективного управления процессами. Хотя детали этих структур зависят от системы, общие элементы делятся на три основные категории:
- Идентификация процесса
- Состояние процесса
- Управление процессом
Таблицы состояния существуют для каждого соответствующего объекта, например, описание памяти, устройств ввода-вывода, файлов и процессов.
Таблицы памяти, например, содержат информацию о распределении основной и вторичной (виртуальной) памяти для каждого процесса, атрибуты авторизации для доступа к областям памяти, совместно используемым различными процессами, и т. Д. Таблицы ввода-вывода могут содержать записи, указывающие доступность устройства или его назначение процессу, состояние операций ввода-вывода, расположение используемых для них буферов памяти и т. д.
Идентификационные данные процесса включают уникальный идентификатор процесса (почти всегда целое число), а в многопользовательской многозадачной системе — данные, такие как идентификатор родительского процесса, идентификатор пользователя, идентификатор группы пользователей и т. д. Идентификатор процесса особенно важен, поскольку он часто используется для перекрестных ссылок на таблицы, определенные выше, например показывая, какой процесс использует какие устройства ввода / вывода или области памяти.
Данные состояния процесса определяют состояние процесса, когда он приостановлен, позволяя ОС перезапустить его позже. Сюда всегда входит содержимое регистров ЦП общего назначения, слово состояния процесса ЦП, указатели стека и кадра и т. Д. Во время переключения контекста выполняющийся процесс останавливается и запускается другой процесс. Ядро должно остановить выполнение запущенного процесса, скопировать значения аппаратных регистров на свою печатную плату и обновить аппаратные регистры значениями с печатной платы нового процесса.
Информация об управлении процессом используется ОС для управления самим процессом. Сюда входят:
- Состояние планирования процесса — состояние процесса в терминах «готов», «приостановлен» и т. Д., А также другую информацию планирования, такую как значение приоритета, количество времени, прошедшее с момента получения процесса. управление процессором или с момента его приостановки. Кроме того, в случае приостановленного процесса, данные идентификации события должны быть записаны для события, которого процесс ожидает.
- Информация о структурировании процесса — идентификаторы дочерних процессов процесса или идентификаторы других процессов, связанных с текущим каким-либо функциональным образом, который может быть представлен в виде очереди, кольца или других структур данных
- Информация о межпроцессном взаимодействии — флаги, сигналы и сообщения, связанные с обменом данными между независимыми процессами
- Привилегии процесса — разрешен / запрещен доступ к системным ресурсам
- Состояние процесса — новый, готов, выполняется, ожидает, мертв
- Номер процесса (PID) — уникальный идентификационный номер для каждого процесса (также известный как Идентификатор процесса )
- Программный счетчик (ПК) — указатель на адрес следующей инструкции, которая должна быть выполнена для этого процесса
- Регистры ЦП — набор регистров, в котором процесс должен быть сохранен для выполнения в рабочем состоянии
- Информация о планировании ЦП — информация о планировании времени ЦП
- Управление памятью Информация о мерах — таблица страниц, ограничения памяти, таблица сегментов
- Учетная информация — объем CPU, используемый для выполнения процесса, ограничения по времени, идентификатор выполнения и т. д.
- I / O Информация о состоянии — список устройств ввода / вывода, назначенных процессу.
Местоположение
Печатная плата должна храниться в области памяти, защищенной от обычного доступа процесса. В некоторых операционных системах печатная плата размещается в начале ядра стека процесса.
См. Также
- Блок управления потоком (TCB)
- Программный сегмент префикс (PSP)
- Сегмент данных
3.3 Блок управления процессом
Системы, управляющие процессами, должны иметь возможность выполнять определенные операции над процессами, в том числе:
- создание (образование) процесса;
- уничтожение процесса;
- возобновление процесса;
- изменение приоритета процесса;
- блокирование процесса;
- пробуждение процесса;
- запуск (выбор) процесса.
Создание процесса состоит из многих операций, включая такие как:
- присвоение имени процессу;
- включение этого имени в список имен процессов, известных системе;
- определение начального приоритета процесса;
- формирование блока управления процессом РСВ;
- выделение процессу начальных ресурсов.
Процесс может породить новый процесс. В этом случае первый, порождающий процесс называется родительским процессом, а второй, созданный процесс — дочерним процессом. Для создания дочернего процесса необходим только один родительский процесс. При таком подходе создается иерархическая структура процессов, подобная показанной на рис. 3.4, в которой у дочернего процесса есть только один родительский процесс, но у каждого родительского процесса может быть много дочерних процессов. Рис. 3.4 Иерархия создания процессов Уничтожение процесса означает его удаление из системы. Ресурсы, выделенные этому процессу, возвращаются системе, имя процесса в любых системных списках или таблицах стирается, и блок управления процессом освобождается. Уничтожение процесса усложняется, если это родительский процесс. В некоторых системах дочерний процесс уничтожается автоматически, когда уничтожается его родительский процесс, в других системах порожденные процессы начинают существовать независимо от своих родительских процессов, так что уничтожение родительского процесса не оказывает влияния на его потомков. Возобновление процесса – это активизация процесса, выполнение которого было приостановлено. Операция возобновления подразумевает не только непосредственно повторный запуск процесса, но и подготовку процесса к повторному запуску с той точки, в которой он был приостановлен. Приостановленный процесс не может продолжить свое выполнение до тех пор, пока его не активизирует какой-либо другой процесс. Изменение приоритета процесса, как правило, означает модификацию значения приоритета в блоке управления данным процессом.
Блок управления процессом.
Состав и строение информации в структуре процесса зависит от конкретной ОС. Во многих ОС информация характеризующая процесс может храниться в нескольких связанных структурах данных. Также структуры данных могут иметь различные наименования, содержать дополнительную информацию или только её часть. Важно, что для любого процесса находящегося в вычислительной системе вся его информация для работы доступна ОС. Будем считать, что вся информация хранится в одной структуре данных, называемой блоком управления процессом (PCB – Process Control Block). Любая операция производимая или выполняемая ОС над процессом вызываем определенные изменения в PCB. Информация для хранения которой предназначен PCB разделен на две части: 1. регистровый контекст (к нему относится содержимое всех регистров процессора, в том числе значения программного счетчика) 2. системный контекст процесса (к нему относится вся остальная информация). Использования значения описанных выше контекстов достаточно для управления поведения процесса в ОС при совершении над ним операций, но недостаточно для полного описания процесса. Поэтому вводим понятие 3. пользовательского контекста (к нему относятся код и данные находящиеся в его адресном пространстве). Совокупность описанных выше трёх контекстов процессов, объединяет понятие контекст процесса, таким образом процесс в любой момент времени полностью характеризуется своим контекстом.
Одноразовые операции.
Жизненный путь любого процесса в компьютере начинается в компьютере начинается с его рождения. Любая ОС поддерживающая концепцию процессов должна обладать средстами для их создания. В очень простых системах (например в системах спроектированных для работы только одного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные ОС создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта ОС может выступить либо процесс пользователя совершивший специальный системный вызов, либо сама ОС. Процесс инициировавший создание нового процесса принято называть процессом родителем. А вновь созданный процесс процессом ребенком. Процессы дети могут порождать новых детей и т. д. В общем случае внутри системы организуется набор генеалогических деревьев процессов — генеалогический лес. Все пользовательские процессы вместе с некоторыми процессами ОС принадлежат к одному и тому же дереву леса. При рождении процесса система заводит новый PCB и начинает его заполнение. Новый процесс получает свой собственный уникальный идентификационный номер. Для хранения данного номера процесса в ОС отводится определнное кол-во бит. Кол-во одновременно присутствующих в ОС процессах должно быть ограничено.
После завершения какого либо процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса. Обычно для выполнения своих функций процесс ребенок требует определенных ресурсов: памяти, файлов, устройств ввода-вывода и т. д. Существуют два подхода к их выделению: 1. при первом подходе новый процесс может получить в своё пользование некоторую часть родительских ресурсов, разделяя с процессом родителем и другими процессами детьми права на них. 2. при втором подходе новый процесс может получить свои ресурсы непосредственно из самой ОС. Вся информаци
я о выделенных ресурсах заносится в PCB. Далее необходимо занести в адресное пространство процесса ребенка программный код, значения данных, установить программный счетчик — это осуществляется одним из двух способов: 1. процесс ребенок становится дубликатом процесса родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения родителя из двух процессов двойников. 2. существование программ, т. е. исполняемых файлов для работы которых организуется более одного процесса. После того как процесс был наделен содержанием в PCB дописывается оставшаяся информация и состояние нового процесса изменяется на состояние готовности. После рождения процесса ребенка процесс родитель может продолжать своё выполнение с ним или может ожидать завершения работы некоторых или всех своих процессов детей.
После того как процесс завершит свою работу ОС переведет его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы. При этом производятся соответствующие записи в PCB. Далее блок не удаляется а остаётся в системе на некоторое время для того, чтобы в дальнейшем процесс родитель смог при запросе у ОС получить сведения о причине завершения процесса ребенка или (и) статистическую информацию о его работе. Данная информация сохраняется в PCB законченного процесса ребенка, до запроса процесса родителя или до конца его деятельности. После этого вся информация о процессе ребенке удаляется из системы. К примеру в ОС unix процессы находящиеся в состоянии: закончил исполнение называются процессы-зомби.
Блок управления процессом, системные очереди
1. Презентация: Блок управления процессом, системные очереди.
Карагандинский колледж
экономики и статистики
Презентация: Блок управления процессом,
системные очереди.
2. Понятие процесса
ОС исполняет множество классов программ:
Пакетная система (batch system) – задания (jobs)
Система с разделением времени – пользовательские программы (задачи –
tasks)
Во многих учебниках термины “задание” и “процесс” – почти синонимы
Процесс – программа при ее выполнении; он должен выполняться
последовательно
Процесс включает:
Счетчик команд (program counter)
Стек (stack)
Секцию данных (data section)
3. Блок управления процессом (Process Control Block – PCB)
Информация, ассоциируемая с каждым
процессом
Состояние процесса
Счетчик команд
Регистры процессора
Информация для диспетчеризации процессора
Информация для управления памятью
Статистическая информация
Информация о состоянии ввода-вывода
4. Блок управления процессом (PCB)
5. Переключение процессора с одного процесса на другой
6. Очереди, связанные с диспетчеризацией процессов
Очередь заданий (Job queue) – множество
всех процессов в системе
Очередь готовых процессов (Ready queue) –
множество всех процессов, находящихся в
основной памяти и готовых к выполнению
Очередь ожидающих ввода-вывода (Device
queues) – множество процессов, ожидающих
результата работы устройства ввода-вывода
Процессы мигрируют между различными
очередями
7. Очередь готовых процессов и очереди к различным устройствам ввода-вывода
8. Графическое представление диспетчеризации процессов
9. Планировщики
Долговременный планировщик
(планировщик заданий) – определяет,
какие процессы должны быть
перемещены в очередь готовых
процессов
Кратковременный планировщик
(планировщик процессора) –
определяет, какие процессы должны
быть выполнены следующими и каким
процессам должны быть
предоставлены процессоры.
10. Добавление планировщика откачки и подкачки процессов
11. Особенности планировщиков и процессов
Кратковременный планировщик вызывается очень часто (в
течение ближайших миллисекунд) => должен быть очень
быстрым
Долговременный планировщик вызывается
относительно редко (минуты, секунды) => может быть
сравнительно медленным
Именно долговременный планировщик определяет
степень (коэффициент) мультипрограммирования
Процессы можно описать как:
Ориентированные на ввод-вывод (I/O-bound) – тратят
больше времени на ввод-вывод, чем на вычисления;
расходуют много коротких квантов процессорного
времени
Ориентированные на использование процессора
(CPU-bound) – тратят основное время на вычисления;
расходуют небольшое число долговременных
квантов процессорного времени
12. Переключение контекста процесса (context switch)
Когда процессор переключается на другой процесс,
система должна сохранить состояние старого процесса и
загрузить сохраненное состояние для нового процесса
Переключение контекста относится к накладным
расходам (overhead); система не выполняет никаких
полезных действий при переключении с одного процесса
на другой
Время зависит от аппаратной поддержки.
Пример: “Эльбрус” – контекстное переключение – одна
команда СМСТЕК (сменить стек, т.е. переключиться с
одного облегченного процесса на другой)