Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебное пособие по дисциплине ОССиО.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2. Управление локальными ресурсами

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

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

Важнейшей частью операционной системы является подсистема управления процессами.

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

Понятие «процесс» включает следующее:

  • исполняемый любой код;

  • собственное виртуальное адресное пространство;

  • ресурсы системы, такие как файлы, семафоры и т.п., которые назначены процессу операционной системой;

  • хотя бы одну выполняемую нить (поток).

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

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

2.1.1. Состояния процессов. Контекст и дескриптор процесса

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:

  • ВЫПОЛНЕНИЕ – активное состояние процесса, во время которого процесс обладает всеми необходимыми ресурсами и непосредственно выполняется процессором.

  • ОЖИДАНИЕ – пассивное состояние процесса, процесс заблокирован, он не может выполняться по своим внутренним причинам. Процесс ждет осуществления некоторого события, например, завершения операции ввода/вывода, получения сообщения от другого процесса.

  • ГОТОВНОСТЬ – также пассивное состояние процесса, но в этом случае процесс заблокирован в связи с внешними по отношению к нему обстоятельствами: процесс имеет все требуемые для него ресурсы, он готов выполняться, однако процессор занят выполнением другого процесса.

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

В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ – несколько процессов. Эти процессы образуют очереди соответственно ожидающих и готовых процессов.

На рисунке 1.1 показан жизненный цикл процесса.

Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет своей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЕ, либо будет насильно вытеснен из процессора, например, вследствие исчерпания отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.

Рис. 1.1. Жизненный цикл процесса

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

Кроме этого, операционной системе для реализации планирования процессов требуется дополнительная информация: идентификатор процесса, состояние процесса, данные о степени привилегированности процесса, место нахождения кодового сегмента и другая информация. В некоторых ОС (например, в ОС UNIX) информацию такого рода, используемую для планирования процессов, называют дескриптором процесса.

Контекст процесса используется операционной системой только после того, как принято решение о возобновлении прерванного процесса.

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

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

Создать процесс – это значит:

  • создать информационные структуры, описывающие данный процесс, то есть его дескриптор и контекст;

  • включить дескриптор нового процесса в очередь готовых процессов;

  • загрузить кодовый сегмент процесса в оперативную память или в область свопинга.