Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемВадим Янковский
1 Պրոցեսների և հոսքերի սինխրոնիզացիա
2 Ներածություն Ինչ խնդիրներ կարող են ծագել բազմապրոցեսային և բազմահոսքային ծրագրավորման դեպքում ? Ինչ խնդիրներ կարող են ծագել բազմապրոցեսային և բազմահոսքային ծրագրավորման դեպքում ? Ինչպես լուծել դրանք ? Ինչպես լուծել դրանք ?
3 Սինխրոնիզացիան օգտագործողի ռեժիմում – interlocked խումբը LONG InterlockedExchangeAdd( PLONG volatile plAddend, LONG lIncrement); LONG InterlockedExchangeAdd( PLONG volatile plAddend, LONG lIncrement); PVOID InterlockedExchangePointer( PVOID* volatile ppvTarget, PVOID pvValue); PVOID InterlockedExchangePointer( PVOID* volatile ppvTarget, PVOID pvValue); LONGLONG InterlockedAdd64( LONGLONG* Destination, LONGLONG Value) LONGLONG InterlockedAdd64( LONGLONG* Destination, LONGLONG Value)
4 CRITICAL_SECTION CRITICAL_SECTION CRITICAL_SECTION VOID InitializeCriticalSection(PCRITICAL_SECTION pcs); VOID InitializeCriticalSection(PCRITICAL_SECTION pcs); VOID DeleteCriticalSection(PCRITICAL_SECTION pcs); VOID DeleteCriticalSection(PCRITICAL_SECTION pcs);
5 CRITICAL_SECTION VOID EnterCriticalSection(PCRITICAL_SECTION pcs); VOID EnterCriticalSection(PCRITICAL_SECTION pcs); BOOL TryEnterCriticalSection(PCRITICAL_SECTION pcs); BOOL TryEnterCriticalSection(PCRITICAL_SECTION pcs); VOID LeaveCriticalSection(PCRITICAL_SECTION pcs); VOID LeaveCriticalSection(PCRITICAL_SECTION pcs);
6 Սինխրոնիզացիան կեռնելի ռեժիմում Քնած - արթուն ռեժիմ (signaled, non signaled) Քնած - արթուն ռեժիմ (signaled, non signaled) Processes Processes Threads Threads Jobs Jobs File and console standard input/output/error streams File and console standard input/output/error streams Events Events Waitable timers Waitable timers Semaphores Semaphores Mutexes Mutexes
7 Wait ֆունկցիաները DWORD WaitForSingleObject( HANDLE hObject, DWORD dwMilliseconds); DWORD WaitForSingleObject( HANDLE hObject, DWORD dwMilliseconds); WAIT_OBJECT_0 WAIT_OBJECT_0 WAIT_TIMEOUT WAIT_TIMEOUT WAIT_FAILED WAIT_FAILED DWORD WaitForMultipleObjects( DWORD dwCount, CONST HANDLE* phObjects, BOOL bWaitAll, DWORD dwMilliseconds); DWORD WaitForMultipleObjects( DWORD dwCount, CONST HANDLE* phObjects, BOOL bWaitAll, DWORD dwMilliseconds);
8 Event HANDLE CreateEvent( PSECURITY_ATTRIBUTES psa, BOOL bManualReset, BOOL bInitialState, PCTSTR pszName); HANDLE CreateEvent( PSECURITY_ATTRIBUTES psa, BOOL bManualReset, BOOL bInitialState, PCTSTR pszName); BOOL SetEvent(HANDLE hEvent); BOOL SetEvent(HANDLE hEvent); BOOL ResetEvent(HANDLE hEvent); BOOL ResetEvent(HANDLE hEvent);
9 Semaphore HANDLE CreateSemaphore( PSECURITY_ATTRIBUTE psa, LONG lInitialCount, LONG lMaximumCount, PCTSTR pszName); HANDLE CreateSemaphore( PSECURITY_ATTRIBUTE psa, LONG lInitialCount, LONG lMaximumCount, PCTSTR pszName); BOOL ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, PLONG plPreviousCount); BOOL ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, PLONG plPreviousCount);
10 Mutex HANDLE CreateMutex( PSECURITY_ATTRIBUTES psa, BOOL bInitialOwner, PCTSTR pszName); HANDLE CreateMutex( PSECURITY_ATTRIBUTES psa, BOOL bInitialOwner, PCTSTR pszName); HANDLE OpenMutex( DWORD dwDesiredAccess, BOOL bInheritHandle, PCTSTR pszName); HANDLE OpenMutex( DWORD dwDesiredAccess, BOOL bInheritHandle, PCTSTR pszName); BOOL ReleaseMutex(HANDLE hMutex); BOOL ReleaseMutex(HANDLE hMutex);
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.