Для чего нужен блок управления процессами
Перейти к содержимому

Для чего нужен блок управления процессами

  • автор:

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

Для того чтобы операционная система могла управлять процессами, она должна располагать всей необходимой для этого информацией. С этой целью на каждый процесс заводится специальная информационная структура, содержащая определенную важную информацию о процессе, и называемая дескриптором процесса (блоком управления процессом – Process Control Block – PCB). В общем случае дескриптор процесса содержит следующую информацию:

  • идентификатор процесса (так называемый PID — Process IDentificator);
  • тип (или класс) процесса, который определяет для супервизора некоторые правила предоставления ресурсов;
  • приоритет процесса, в соответствии с которым супервизор предоставляет ресурсы. В рамках одного класса процессов в первую очередь обслуживаются более приоритетные процессы;
  • переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе, в состоянии выполнения, ожидание устройства ввода/вывода и т.д.);
  • защищенную область памяти (или адрес такой зоны), в которой хранятся текущие значения регистров процессора, если процесс прерывается, не закончив работы. Эта информация называется контекстом задачи (процесса);
  • информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели на открытые файлы, информация о незавершенных операциях ввода/вывода и т. п.);
  • место (или его адрес) для организации общения с другими процессами;
  • параметры времени запуска (момент времени, когда процесс должен активизироваться, и периодичность этой процедуры).

3.4 Операции над процессами

Системы, управляющие процессами, должны иметь возможность выполнять определенные операции над процессами, в том числе:

  • создание (образование) процесса;
  • уничтожение процесса;
  • возобновление процесса;
  • изменение приоритета процесса;
  • блокирование процесса;
  • пробуждение процесса;
  • запуск (выбор) процесса.

Создание процесса состоит из многих операций, включая такие как:

  • присвоение имени процессу;
  • включение этого имени в список имен процессов, известных системе;
  • определение начального приоритета процесса;
  • формирование блока управления процессом РСВ;
  • выделение процессу начальных ресурсов.

Процесс может породить новый процесс. В этом случае первый, порождающий процесс называется родительским процессом, а второй, созданный процесс — дочерним процессом. Для создания дочернего процесса необходим только один родительский процесс. При таком подходе создается иерархическая структура процессов, подобная показанной на рис. 3.4, в которой у дочернего процесса есть только один родительский процесс, но у каждого родительского процесса может быть много дочерних процессов. Рис. 3.4 Иерархия создания процессов Уничтожение процесса означает его удаление из системы. Ресурсы, выделенные этому процессу, возвращаются системе, имя процесса в любых системных списках или таблицах стирается, и блок управления процессом освобождается. Уничтожение процесса усложняется, если это родительский процесс. В некоторых системах дочерний процесс уничтожается автоматически, когда уничтожается его родительский процесс, в других системах порожденные процессы начинают существовать независимо от своих родительских процессов, так что уничтожение родительского процесса не оказывает влияния на его потомков. Возобновление процесса – это активизация процесса, выполнение которого было приостановлено. Операция возобновления подразумевает не только непосредственно повторный запуск процесса, но и подготовку процесса к повторному запуску с той точки, в которой он был приостановлен. Приостановленный процесс не может продолжить свое выполнение до тех пор, пока его не активизирует какой-либо другой процесс. Изменение приоритета процесса, как правило, означает модификацию значения приоритета в блоке управления данным процессом.

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

Для того чтобы ОС могла выполнять операции над процессами, каждый из них представляется в ней некоторой структурой данных, содержащий следующую информацию специфическую для данного процесса:

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

    Состав и строение информации в структуре процесса зависит от конкретной ОС. Во многих ОС информация характеризующая процесс может храниться в нескольких связанных структурах данных. Также структуры данных могут иметь различные наименования, содержать дополнительную информацию или только её часть. Важно, что для любого процесса находящегося в вычислительной системе вся его информация для работы доступна ОС. Будем считать, что вся информация хранится в одной структуре данных, называемой блоком управления процессом (PCB – Process Control Block). Любая операция производимая или выполняемая ОС над процессом вызываем определенные изменения в PCB. Информация для хранения которой предназначен PCB разделен на две части: 1. регистровый контекст (к нему относится содержимое всех регистров процессора, в том числе значения программного счетчика) 2. системный контекст процесса (к нему относится вся остальная информация). Использования значения описанных выше контекстов достаточно для управления поведения процесса в ОС при совершении над ним операций, но недостаточно для полного описания процесса. Поэтому вводим понятие 3. пользовательского контекста (к нему относятся код и данные находящиеся в его адресном пространстве). Совокупность описанных выше трёх контекстов процессов, объединяет понятие контекст процесса, таким образом процесс в любой момент времени полностью характеризуется своим контекстом.

    Одноразовые операции.

    Жизненный путь любого процесса в компьютере начинается в компьютере начинается с его рождения. Любая ОС поддерживающая концепцию процессов должна обладать средстами для их создания. В очень простых системах (например в системах спроектированных для работы только одного приложения) все процессы могут быть порождены на этапе старта системы. Более сложные ОС создают процессы динамически, по мере необходимости. Инициатором рождения нового процесса после старта ОС может выступить либо процесс пользователя совершивший специальный системный вызов, либо сама ОС. Процесс инициировавший создание нового процесса принято называть процессом родителем. А вновь созданный процесс процессом ребенком. Процессы дети могут порождать новых детей и т. д. В общем случае внутри системы организуется набор генеалогических деревьев процессов — генеалогический лес. Все пользовательские процессы вместе с некоторыми процессами ОС принадлежат к одному и тому же дереву леса. При рождении процесса система заводит новый PCB и начинает его заполнение. Новый процесс получает свой собственный уникальный идентификационный номер. Для хранения данного номера процесса в ОС отводится определнное кол-во бит. Кол-во одновременно присутствующих в ОС процессах должно быть ограничено.

    После завершения какого либо процесса его освободившийся идентификационный номер может быть повторно использован для другого процесса. Обычно для выполнения своих функций процесс ребенок требует определенных ресурсов: памяти, файлов, устройств ввода-вывода и т. д. Существуют два подхода к их выделению: 1. при первом подходе новый процесс может получить в своё пользование некоторую часть родительских ресурсов, разделяя с процессом родителем и другими процессами детьми права на них. 2. при втором подходе новый процесс может получить свои ресурсы непосредственно из самой ОС. Вся информаци

    я о выделенных ресурсах заносится в PCB. Далее необходимо занести в адресное пространство процесса ребенка программный код, значения данных, установить программный счетчик — это осуществляется одним из двух способов: 1. процесс ребенок становится дубликатом процесса родителя по регистровому и пользовательскому контекстам, при этом должен существовать способ определения родителя из двух процессов двойников. 2. существование программ, т. е. исполняемых файлов для работы которых организуется более одного процесса. После того как процесс был наделен содержанием в PCB дописывается оставшаяся информация и состояние нового процесса изменяется на состояние готовности. После рождения процесса ребенка процесс родитель может продолжать своё выполнение с ним или может ожидать завершения работы некоторых или всех своих процессов детей.

    После того как процесс завершит свою работу ОС переведет его в состояние закончил исполнение и освобождает все ассоциированные с ним ресурсы. При этом производятся соответствующие записи в PCB. Далее блок не удаляется а остаётся в системе на некоторое время для того, чтобы в дальнейшем процесс родитель смог при запросе у ОС получить сведения о причине завершения процесса ребенка или (и) статистическую информацию о его работе. Данная информация сохраняется в PCB законченного процесса ребенка, до запроса процесса родителя или до конца его деятельности. После этого вся информация о процессе ребенке удаляется из системы. К примеру в ОС unix процессы находящиеся в состоянии: закончил исполнение называются процессы-зомби.

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

    Процессы имеют характеристики, используемые для идентификации и определения их поведения. Ядро поддерживает необходимые структуры данных и предоставляет системные функции, которые дают возможность пользователю получить доступ к этой информации. Некоторые данные хранятся в блоках управления процессами (process control block—PCB), или БУП. Данные, хранимые в БУП-блоках, описывают процесс с точки зрения потребностей операционной системы. С помощью этой информации операционная система может управлять каждым процессом. Когда операционная система переключается с одного процесса на другой, она сохраняет текущее состояние выполняющегося процесса и его контекст в области сохранения БУП-блока, чт обы надлежащим образом возобновить выполнение этого процесса в следующий раз, когда ему снова будет выделен центральный процессор (ЦП). БУП-блок считывается и обновляется различными модулями операционной системы. Модули «отвечают» за контроль производительности операционной системы, планирование, распределение ресурсов и доступ к механизму обработки прерываний и/или модифицируют БУП-блок. Блок БУП содержит следующую информацию:

    • текущее состояние и приоритет процесса;

    • идентификатор процесса, а также идентификаторы родительского и сыновнего процессов;

    • указатели на выделенные ресурсы;

    • указатели на область памяти процесса;

    • указатели на родительский и сыновний процесс;

    • процессор, занятый процессом;

    • регистры управления и состояния;

    Среди данных, содержащихся в БУП-блоке, есть такие, которые «отвечают» за управление процессом, т.е. отражают его текущее состояние и приоритет, указывают на БУП-блоки родительского и сыновнего процессов, а также выделенные ресурсы и память. Кроме того, этот блок включает информацию, связанную с планированием, привилегиями процессов, флагами, сообщениями и сигналами, которыми обмениваются процессы (имеется в виду межпроцессное взаимодействие— mterprocess communication, или IPC). С помощью информации, связанной с управлением процессами, операционная система может координировать параллельно выполняемые процессы. Стековые указатели и содержимое регистров пользователя, управления и состояния содержат информацию, связанную с состоянием процессора. При выполнении процесса соответствующая информация размещается в регистрах ЦП. При переключении операционной системы с одного процесса на другой вся информация из этих регистров сохраняется. Когда процесс снова получает ЦП во «временное пользование», ранее сохраненная информация может быть восстановлена. Есть еще один вид информации, который связан с идентификацией процесса. Имеется в виду идентификатор процесса (id), или PID, и идентификатор родительского процесса (PPID). Эти идентификационные номера (которые представлены положительными целочисленными значениями) уникальны для каждого процесса.

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

    A блок управления процессом (PCB) — это структура данных, используемая компьютерами операционными системами для хранения всей информации о процессе. Он также известен как дескриптор процесса . .

    • Когда процесс создается (инициализируется или устанавливается), операционная система создает соответствующий блок управления процессом.
    • Информация в блоке управления процессом обновляется во время переход состояний процесса.
    • Когда процесс завершается, его печатная плата возвращается в пул, из которого выводятся новые печатные платы.
    • Каждый процесс имеет одну печатную плату.
    • 1 Роль
    • 2 Структура
    • 3 Местоположение
    • 4 См. Также
    • 5 Примечания

    Роль

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

    Структура

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

    • Идентификация процесса
    • Состояние процесса
    • Управление процессом

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

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

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

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

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

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

    Местоположение

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

    См. Также

    • Блок управления потоком (TCB)
    • Программный сегмент префикс (PSP)
    • Сегмент данных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *