ВУЗ:
Составители:
3.4.2.6. МОНИТОРЫ
Монитор – это механизм организации параллелизма, который содержит как данные, так и процедуры, необходимые для
реализации динамического распределения конкретного общего ресурса или группы общих ресурсов.
Чтобы обеспечить выделение нужного ему ресурса, процесс должен обратиться к конкретной процедуре монитора.
Необходимость входа в монитор в различные моменты времени может возникать у многих процессов. Однако вход в
монитор находится под жестким контролем: здесь осуществляется взаимоисключение процессов, так что в каждый момент
времени только одному процессу разрешается войти в монитор. Процессам, которые хотят войти в монитор, когда он занят,
приходится ждать, причем режимом ожидания автоматически управляет сам монитор.
Если процесс обращается к некоторой процедуре монитора и обнаруживается, что соответствующий ресурс уже занят, то
эта процедура монитора выдает процессу команду WAIT (ЖДАТЬ). Процесс, получивший такую команду, переводится в ре-
жим ожидания вне монитора.
Со временем процесс, занимавший нужный ресурс, освобождает его, обращаясь для этого к монитору. Соответствую-
щая процедура монитора может просто принять уведомление о возвращении ресурса, а затем ждать, пока не поступит запрос
от другого процесса, которому потребуется этот ресурс. Однако может оказаться, что уже имеются процессы, ожидающие
освобождение данного ресурса. В этом случае монитор выполняет примитив
оповещение SIGNAL, чтобы один из ожидаю-
щих процессов мог занять данный ресурс и покинуть очередь к монитору. Если процесс сигнализирует об освобождении
ресурса и в это время нет процессов, ожидающих этот ресурс, то подобное оповещение не вызывает никаких других послед-
ствий, кроме того, что монитор вновь вносит ресурс в список свободных.
monitor Распределитель_ресурса;
var ресурс_занят: логический;
ресурс_свободен: условие;
procedure захватить_ресурс;
begin
if ресурс_занят then
WAIT(ресурс_свободен);
ресурс_занят:=истина;
end;
procedure возвратить_ресурс;
begin
ресурс_занят:=ложь;
SIGNAL(ресурс_свободен);
end;
begin
ресурс_занят:=ложь;
end;
Рис. 3.6. Распределение ресурса при помощи монитора
На практике у процессов может возникнуть необходимость находиться в режиме ожидания вне монитора по различным
причинам. Поэтому было введено понятие переменной-условие. Для каждой отдельно взятой причины, по которой процесс
может быть переведен в состояние ожидания, назначается свое условие. В связи с этим команды ожидания и оповещения
модифицируются. В них включают имена условий, так что они приобретают вид:
WAIT (имя_условие)
SIGNAL (поле_условие)
Переменные-условия совершенно не похожи на обычные переменные. Когда определяется переменная-условие, заво-
дится очередь. Процесс, выдавший команду ожидания, включается в эту очередь, а процесс, выдавший команду оповещения,
тем самым позволяет ожидающему процессу выйти из очереди и войти в монитор (рис. 3.6).
3.4.3. Алгоритмы управления ресурсами
3.4.3.1. ВВОДНЫЕ ЗАМЕЧАНИЯ
Для реализации функций управления ресурсами операционная система осуществляет постоянный учет их наличия и со-
стояния. В современных ОС наиболее употребительным является идентификация ресурса с помощью файла его описания.
Способы формирования запросов на ресурсы различаются местом их выдачи в операционную систему – в пакете зада-
ний или в программе во время ее выполнения. В первом случае ОС осуществляет статическое распределение ресурсов, а во
втором – динамическое. Операционная система может принять, отложить или проигнорировать запрос на ресурс, что зависит
от реализованного в ОС алгоритма управления ресурсами.
Существуют также комбинированные способы формирования запросов на ресурсы с предварительным заказом в пакете
заданий или в программе и исполнительным запросом во время выполнения программы.
3.4.3.2. АЛГОРИТМ ПРЕДОСТАВЛЕНИЯ РЕСУРСА ПО ПЕРВОМУ ОБРАЩЕНИЮ
Алгоритм представления ресурса по первому обращению к нему является самым простым из алгоритмов управления
ресурсами. Суть данного алгоритма состоит в следующем.
Независимо от места выдачи запроса на ресурс (пакет заданий или выполняющаяся в системе программа) ОС выполня-
ет следующие действия:
1) фиксирует первое упоминание имени запрашиваемого ресурса;
Страницы
- « первая
- ‹ предыдущая
- …
- 36
- 37
- 38
- 39
- 40
- …
- следующая ›
- последняя »
