Составители:
ращения к ядру не требуется, и он выполняется быстро. Синхрониза-
ция потоков на уровне пользователя происходит полностью в про-
странстве пользователя [5,6].
2.5.2. Средства высокоуровневой синхронизации
Средства высокоуровневой синхронизации разрабатываются для
упрощения написания программ и обычно являются структурными
компонентами языка программирования.
Монитор представляет собой набор процедур, переменных и
других структур данных, объединенных в программный модуль, ко-
торый обеспечивает функциональность, эквивалентную функцио-
нальности семафора [3,5]. Мониторы реализованы во множестве язы-
ков программирования, включая Pascal-Plus, Modula-3, Java. Мони-
торы также реализуются как программные библиотеки. Это позволя-
ет их использовать для блокировки любых объектов [3].
Основными характеристиками монитора являются следующие ха-
рактеристики:
локальные переменные монитора доступны только его проце-
дурам и не доступны внешним процедурам;
процесс входит в монитор путем вызова одной из его процедур;
в мониторе может находиться только один активный процесс и
любой другой процесс, вызвавший монитор, будет приостанов-
лен в ожидании доступности монитора.
Если в монитор поместить совместно используемые структуры дан-
ных, то будет обеспечено взаимное исключение при обращении к
данным. Для применения в параллельных вычислениях мониторы
должны включать инструменты синхронизации. Рассмотрим реализа-
цию мониторов в языке Java [6]. Возможность синхронизации в Java
реализована в виде ключевого слова
synchronized, указывающего на
необходимость получения монопольной блокировки, и трех методов
63
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »