Синхронизация и взаимодействие программных потоков в операционной среде реального времени. Дорогов А.Ю. - 17 стр.

UptoLike

Составители: 

17
довательность выполнения действий, например, когда результаты работы
одного потока используются другим потоком. В этом случае второй поток
должен подождать, пока первый поток закончит формирование промежу-
точного результата. Синхронизироватьэто значит установить порядок или
правила последовательного исполнения или доступа потоков (или процес-
сов) к общим данным или критическим областям программы.
Мьютексы, семафоры и условные переменные являются примерами
объектов, позволяющими разрешить указанные проблемы. Полный пере-
чень механизмов синхронизации приведен в табл. 2.1.
Вторая графа таблицы определяет возможности использования ука-
занных механизмов для синхронизации локальных процессов (в пределах
одного узла). Третья графа определяет возможности сетевого использова-
ния данных механизмов. Объекты, поддерживающие механизмы синхрони-
зации, могут быть созданы как статически (на этапе компиляции програм-
мы), так и динамически (при исполнении программы)
Таблица 2.2
POSIX вызов Вызов микроядра Описание
pthread_mutex_init() SyncTypeCreate() Создать мьютекс
pthread_mutex_destroy() SyncDestroy() Уничтожить мьютекс
pthread_mutex_lock() SyncMutexLock() Захватить мьютекс
pthread_mutex_trylock() SyncMutexLock() Условное блокирование на мьютексе
pthread_mutex_unlock() SyncMutexUnlock() Освободить мьютекс
pthread_cond_init() SyncTypeCreate() Создать условную переменную
pthread_cond_destroy() SyncDestroy() Уничтожить условную переменную
pthread_cond_wait() SyncCondvarWait() Ожидать на условной переменной
pthread_cond_signal() SyncCondvarSignal() Обращение к условной переменной
pthread_cond_broadcast() SyncCondvarSignal()
Широковещательное обращение к услов-
ной переменной
В табл. 2.2 приведены вызовы ядра, используемые для динамического
управления механизмами синхронизации.
2.1. Мьютексы
Mutex является сокращением фразы Mutual exclusion locksвзаимно-
исключающие блокировки. Этот механизм используется для обеспечения
исключительного доступа к разделяемым данным. Этот объект подобен
блокирующему замку в двери комнаты (критической секции): как только по-
ток захватит мьютекс, никакой другой поток не сможет получить доступ к