Архитектура современных операционных систем
121 4.5. Средства межпроцессной синхронизации WindowsNT имеет средства синхронизации выполнения потоков (табл. 4.8.). Эти средства реализованы в рамках объектной модели, поэтому называ- ются объектами синхронизации (синхронизационными объектами). Табл. 4.8. Объект синхронизации Устанавливается Событие Мютекс Семафор Процесс Поток Файл При явной установке При освобождении Счетчик > 0 Когда завершается последний поток Когда завершается Когда завершается операция ввода- вывода для этого файла Поток может синхронизировать свое выполнение с объектами синхрониза- ции с помощью вызовов API: WaitForSingleObject (описатель) WaitForMultipleObjects (описатель1, …, описательN) Первый вызов переводит вызвавший его поток в состояние ожидания уста- новки объекта синхронизации, описатель которого указан в качестве параметра. Второй вызов переводит поток в состояние ожидания, пока не будет уста- новлен один из объектов, описатели которого указаны в качестве параметров. Каждый раз при установке объекта синхронизации, ОС проверяет, нет ли ждущих установки этого объекта потоков. Если такие находятся, система пере- водит их в состояние «готов». Событие создается с помощью функции e=CreateEvent(имя_события) Получить доступ к существующему событию можно с помощью функции
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy