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