Тема 3. Управление основными ресурсами в операционных системах

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

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

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

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

Для выполнения процесса необходимы:

· область оперативной памяти, в которой будут размещены коды и данные процесса;

· необходимое количество процессорного времени.

Дополнительно процессу может понадобиться доступ к таким ресурсам, как файлы и устройства ввода-вывода.

Часто в информационные структуры процесса включаются вспомогательные данные:

· историю пребывания процесса в системе (относительные доли вычислений и ввода-вывода);

· его текущее состояние (активное или заблокированное);

· уровень привилегированности процесса (значение приоритета).

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

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

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

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

Различные процессы часто одновременно претендуют на одни и те же ресурсы, поэтому важнейшей задачей операционной системы является поддержание очередей заявок процессов на ресурсы (процессор, принтер, последовательный порт и т. д.).

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

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

· состоянием регистров и программного счетчика процессора;

· режимом работы процессора,

· указателями на открытые файлы,

· информацией о незавершенных операциях ввода-вывода,

· кодами ошибок выполняемых процессом системных вызовов и т. д.

Эта информация обычно называется контекстом процесса. При этом говорят, что при смене процесса происходит переключение контекста.

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

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

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

В итоге можно сказать, что подсистема управления процессами:

· планирует выполнение процессов, то есть, распределяет время между несколькими одновременно существующими в системе процессами;

· создает и уничтожает процессы;

· обеспечивает процессы необходимыми системными ресурсами;

· обеспечивает синхронизацию процессов;

· обеспечивает межпроцессное взаимодействие.