Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Универсальные объекты синхронизации



Мьютексы. Обычно используются для управления доступом к данным.

Мьютекс - синхронизирующий объект как для процессов, так и для потоков. В каж­дый момент времени только один процесс (поток) имеет право обладания этим объек­том. Суть его использования такова.

Пусть два (или более) процесса (потока) имеют необходимость в доступе к некоторо­му разделяемому ресурсу. Для организации взаимного исключения один из этих процес­сов должен посредством функции CreateMutex создать мьютекс с некоторым именем, пред­назначенный для пользования этим ресурсом. Остальные процессы должны знать это имя для обращения к мьютексу.

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

Фактически мьютекс - это реализация монитора в семействе WinNT.

События. Обычно используются для оповещения процессов о завершении некото­рых действий. В каждой ОС реализованы свои механизмы передачи сообщений и обра­ботки событий.

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

В ОС семейства WinNT для передачи данных чаще всего употребляются сообще­ния (при этом «полезная информация» переносится как самим сообщением, так и его параметрами - wparam и lparam). Специально зарезервированное сообщение wm_copydata позволяет передавать большие объемы данных, используя механизм отображаемых в память файлов (memory-mapped files). Этот механизм можно исполь­зовать и напрямую, оперируя функциями winAPI.

В UNIX для передачи данных используются конвейеры (при последовательном за­пуске программ), каналы, сигналы (эквивалент сообщений windows), а также средства, базирующиеся на протоколе TCP/IP. Последние позволяют организовать в том числе и межмашинное взаимодействие.






Дата публикования: 2015-10-09; Прочитано: 427 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...