Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700383.doc
Скачиваний:
15
Добавлен:
01.05.2022
Размер:
4.33 Mб
Скачать

3.3. Подсистема управления процессами и потоками

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

– создание процессов и потоков;

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

– изоляция процессов;

– планирование выполнения процессов и потоков (вообще следует говорить и о планировании заданий);

– диспетчеризация потоков;

– организация межпроцессного взаимодействия;

– синхронизация процессов и потоков;

– завершение и уничтожение процессов и потоков.

К созданию процесса приводят пять основных событий:

1) инициализация ОС (загрузка);

2) выполнение запроса работающего процесса на создание процесса;

3) запрос пользователя на создание процесса, например при входе в систему в интерактивном режиме;

4) инициирование пакетного задания;

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

С технической точки зрения во всех перечисленных случаях новый процесс формируется одинаково: текущий процесс выполняет системный запрос на создание нового процесса.

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

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

Диспетчеризация заключается в реализации найденного в результате планирования решения, т. е. в переключении процессора с одного потока на другой. Диспетчеризация проходит в три этапа:

– сохранение контекста текущего потока;

– загрузка контекста потока, выбранного в результате планирования;

– запуск нового потока на выполнение.

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

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