Технология программирования для распределенных параллельных систем. Демьянович Ю.К - 14 стр.

UptoLike

Глава 2. МОНИТОРЫ И УСЛОВНЫЕ ПЕРЕМЕННЫЕ
§ 1. Мониторы
Мониторы представляют собой программные модули. Как и се-
мафоры они являются мощным средством синхронизации; при этом
они реализуются столь же эффективно.
Семафоры представляют собой низкоуровенный механизм син-
хронизации: они глобальны по отношению ко всем процессам и это
доставляет значительные неудобства.
В противоположность семафорам мониторы обеспечивают боль-
шую структурированность и представляют собой механизм аб-
стракции данных.
Монитор содержит переменные, хранящие состояния объекта,
и имеет набор операций (процедур) для работы с объектом.
Взаимное исключение обеспечивается тем, что процедуры в од-
ном мониторе не могут выполняться параллельно.
Параллельная программа использует
активные процессы;
пассивные мониторы.
При условии, что все разделяемые переменные находятся внут-
ри монитора, два процесса взаимодействуют, вызывая процедуры
одного монитора.
В результате получается удобная модульность:
процесс, вызывающий процедуру монитора, может не знать о
конкретной реализации процедуры;
программист монитора может не знать о конкретных способах
использования монитора и изменять его “начинку”, сохраняя лишь
видимую сторону процедур и результаты их работы.
§ 2. Структура монитора
Монитор состоит из интерфейса и тела:
интерфейс определяет предоставляемые операции (методы);
тело содержит переменные (так называемые постоянные пе-
ременные), определяющие состояние ресурса и процедуры, реализу-
ющие интерфейс.
Хотя в различных языках мониторы объявляются и создаются
по-разному, будем считать мони тор статичным объектом вида:
15