Синхронизация в Win-API. Синхронизационные объекты 1 Синхронизационный объект это такой объект который может быть использован как аргумент в одной из.

Презентация:



Advertisements
Похожие презентации
Объекты ядра Дескрипторы объектов ядра Создание и удаление объектов Свободное (signaled) и занятое (non-signaled) состояния События Мьютексы Семафоры Лекция.
Advertisements

POSIX Threads. Общая модель Программа Общая память Поток 1 CPU Поток 2 Поток N Потоки – наборы инструкций, исполняющиеся на CPU. Все потоки одной программы.
Windows API для управления задачами. Процессы и потоки в Windows Процесс есть объект, обладающий собственным независимым виртуальным адресным пространством,
ЛЕКЦИЯ 4 СИНХРОНИЗАЦИЯ ПРОЦЕССОВ. ВОПРОСЫ 1.Синхронизация процессов с использованием объектов ядра. 2.Задачи синхронизации. 3.Мониторы Хоара. 4.Почтовые.
Управление процессами Синхронизация процессов и потоков.
Кооперация процессов Процессы Бленда Николай Андреевич 2009.
Параллельное программирование: WinAPI и OpenMP ЛЕКЦИЯ 7 Калинина А.П.
Система реального времени QNX/Neutrino (QNX6). QNX Микpоядеpная Cетевая Мyльтизадачная Многопользовательcкая.
Процессы и потоки. Процессы В общем представлении, процесс - это программа, выполняющаяся в оперативной памяти компьютера. Реально, все гораздо сложней.
Многопоточное программирование Синхронизация потоков Лекция 11.
Microsoft TechDays Михаил Черномордиков Microsoft Developer Evangelist
Мутексы Программирование с использованием POSIX thread library.
Site Migration Suite for SharePoint Sharepoint to Sharepoint Migration Windows File Share Migration Exchange Public Folder Migration Возможности продукта:
О ПРЕДЕЛЕНИЕ. Операционная система, сокр. ОС (англ. operating system, OS ) комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Управление процессами 3.Взаимодействие процессов: синхронизация, тупики 3.1.Разделение ресурсов 3.2.Взаимное исключение Проблемы реализации взаимного.
Процессор П1П2П3П4П2П1 Контроллер Завершение операции ввода-вывода Вызов операции ввода-вывода Операция ввода-вывода Синхронное выполнение операции ввода-вывода.
6. Средства синхронизации и взаимодействия процессов 6.1. Проблема синхронизации Процессам Процессам часто нужно взаимодействовать друг с другом, например,
POSIX Threads МО ВВС ИВМ и МГ СО РАН Городничев Максим Александрович.
Блокировки чтения-записи Введение Получение и сброс блокировки чтения-записи Атрибуты блокировки чтения-записи Реализация Отмена выполнения потоков Пример.
Транксрипт:

Синхронизация в Win-API

Синхронизационные объекты 1 Синхронизационный объект это такой объект который может быть использован как аргумент в одной из функций ожидания (wait function). Синхронизационный объект может находиться в «сигнальном» или «не- сигнальном» состоянии. Несколько процессов могут использовать один и тот же синхронизационный объект. Доступ к синхронизационный объекту осуществляется через «handle».

Синхронизационные объекты 2 Event – для уведомления одного или более ждущих потоков о произошедшем событии. Mutex – захватывается одновременно только одним потоком. Используется для алгоримов взаимного исключения. Семафор – используется для ограничения числа потоков к одновременно использующих разделяемый ресурс Waitable timer – уведомляет ожидающий поток о наступлении указанного времени

Синхронизационные объекты 3 Change notification - сигнализирует об изменениях в файловой системе (каталоге) Console input – сигнализирует о входных данных с консоли. Job – завершение всех процессов JOBа (end- of-job time limit) Memory resource notification – сигнализирует о изменениях в физической памяти Process – сигнализирует о завершении процесса Thread – сигнализирует о завершении потока

Синхронизационные объекты 4 Файлы (file), Именованные каналы (named pipe), или communications device могут использоваться как СО, но для них рекомендуется использовать «OVERLAPPED» ввод-вывод.

Wait Functions single-object multiple-object alertable registered

single-object wait functions DWORD SignalObjectAndWait ( __in HANDLE hObjectToSignal, __in HANDLE hObjectToWaitOn, __in DWORD dwMilliseconds, __in BOOL bAlertable ); DWORD WaitForSingleObject ( HANDLE hHandle, DWORD dwMsecs ); DWORD WaitForSingleObjectEx ( __in HANDLE hHandle, \ __in DWORD dwMilliseconds, __in BOOL bAlertable );

Функции ожидания DWORD WaitForMultipleObjects ( DWORD nCount, const HANDLE* lpHandles, BOOL bWaitAll, DWORD dwMsecs ); DWORD MsgWaitForMultipleObjects( __in DWORD nCount, __in const HANDLE *pHandles, __in BOOL bWaitAll, __in DWORD dwMilliseconds, __in DWORD dwWakeMask );

WaitForSingleObject Change notification Console input Event Memory resource notification Mutex Process Semaphore Thread Waitable timer

WaitForSingleObject WAIT_OBJECT_0 -указанный объект находится в сигнальном состоянии; WAIT_TIMEOUT - истек период ожидания. WAIT_ABANDONED – мутекс не освобожден умершим потоком. WAIT_FAILED – ошибка информацию об ошибке можно получить, вызвав функцию GetLastError.

us/library/ms684242(VS.85).aspxhttp://msdn.microsoft.com/en- us/library/ms684242(VS.85).aspx