Лекция 3. Управление процессами. Прерывания процессов

Управление процессами

Таблицы управления процессами

Для управления процессами операционная система содержит таблицу, называемую таблицей процессов, с одним элементом для каждого процесса. (Некоторые авторы называют эти элементы блоками управления процессом или дескрипторами.).

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

Дескриптор процесса.

Дескриптор процесса строится при создании процесса и представляет процесс во время его существования.

Возможный набор дескрипторных данных процесса Pi (рис. 3.1).

Рис. 3.1 Возможный набор дескрипторных данных процесса

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

Определяются следующие операции над процессами:

Создать новый процесс

Создается дескриптор процесса и процесс заносится в список (очередь) готовых к выполнению процессов. Начальные ресурсы (включая ОП) определяются как ресурсы нового процесса и должны быть подмножеством ресурсов процесса-предка. Созданный процесс в свою очередь может разделять свои ресурсы со своими «детьми» и может получать в дальнейшем ресурсы, которые будут его собственными.

Нормальная последовательность действий для введения нового процесса в систему состоит из операций создать-активизировать.

Уничтожить один или более процессов.
Можно удалить единственный процесс (потомок), или удалить этот процесс и всех его потомков.
Изменить состояние процесса на «блокированный».
Изменить состояние на «готовый».
Изменить приоритет процесса в очереди блокированных или готовых.

Полномочия процессов

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

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

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

Процесс может передать своему потомку только подмножество своих ресурсов.

Процесс может разрушать только те семафоры ресурсов, которые создали он или его потомки.

Семафоры лучше всего представлять себе как счетчики, управляющие доступом к общим ресурсам. Чаще всего они используются как блокирующий механизм, не позволяющий одному процессу захватить ресурс, пока этим ресурсом пользуется другой процесс.

Слово «семафор» - старый железнодорожный термин. Семафор в положении ON (руки подняты вверх) - ресурс свободен, в положении OFF (руки опущены) - ресурс недоступен (должны ждать).

В теории операционных систем семафор представляет собой неотрицательную целую переменную, над которой возможны два вида операций: P и V.

P-операция над семафором представляет собой попытку уменьшения значения семафора на 1. Если перед выполнением P-операции значение семафора было больше 0, P-операция выполняется без задержек. Если перед выполнением P-операции значение семафора было 0, процесс, выполняющий P-операцию, переводится в состояние ожидания до тех пор, пока значение семафора не станет большим 0.

V-операция над семафором представляет собой увеличение значения семафора на 1. Если при этом имеются процессы, задержанные на выполнении P-операции на данном семафоре, один из этих процессов выходит из состояния ожидания и может выполнить свою P-операцию.

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

Более последовательная и эффективная стратегия полномочий получается, если явно определять, какие ресурсы могут быть запрошены и освобождены каждым процессом.

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

Создатель семафора ресурсов автоматически получает полномочия запросить освободить для этого ресурса.

При создании потомка процесс может разделять любое подмножество его полномочий с новым процессом

При нарушении полномочий должно быть предпринято некоторое действие:

  • Разрушить процесс-нарушитель.
  • Сообщить процессу о нарушении.
  • Передать управление ОС для обработки ошибок.

Прерывания процессов

Основное назначение механизма прерываний:

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

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: