Похожие презентации:
Системное ПО. Синхронизация потоков
1. Системное ПО
Синхронизация потоков2. Системное ПО
Критическая секцияКритическая
секция — участок
исполняемого кода
программы, в
котором
производится
доступ к общему
ресурсу (данным
или устройству),
который не должен
быть одновременно
использован более
чем одним потоком
исполнения.
3. Системное ПО
Пример4.
Критическая секция5. Системное ПО
МьютексМьютекс отличается от
критической секции
только тем, что может
быть доступен также для
других процессов, в то
время, как критическая
секция – только для
одного процесса
WaitForSingleObject
делает мьютекс
«занятым». Если он уже
занят, ждет, пока
освободится
6.
Мьютекс7. Системное ПО
СобытиеСобытие позволяет
«отправить сигнал»
сразу нескольким
потокам
ResetEvent
«отменяет»
событие
bManualReset – автоматическое переключение в состояние «событие
отсутствует»
bInitialState – начальное состояние события. FALSE – события нет
8. Системное ПО
СобытиеПосле запуска
Сразу после
нажатия
9. Системное ПО
СемафорСемафор позволяет
управлять доступом
к пулу объектов
WaitForSingleObject = P
ReleaseSemaphore = V
Пусть S – Семафор. Его значение изначально равно количеству объектов
в пуле.
Для объекта семафор вводятся две неделимые операции:
V(S): переменная S увеличивается на 1 единым действием.
P(S): уменьшение S на 1, если это возможно. Если S=0, то в этом
случае поток, вызывающий операцию Р, ждет, пока это уменьшение
станет возможным