본문 바로가기

programing150

타이버 기반 동기화 - 쓰레드의 실행시간과 실행주기를 결정 HANDLE CreateWatiableTimer( LPSECURITY_ATTRIBUTES lpTimerAttributes, // 보안 속성, NULL : 핸들을 프로세스에 상속 안함 BOOL bManualReset, // TRUE : 자동 리셋, FALSE : 수동 리셋 LPCTSTR lpTimerName // 타이머 오브젝트 이름 ); BOOLSetWaitableTimer( HANDLE hTimer, // 타이머 오브젝트 핸들 ->Signaled 상태가 될 것임 const LARGE_INTEGER* pDueTime, // 알람이 올리는 시간, +값 :절대시간, -값 :상대시간 LONG lPeriod, // 알람 주기 PTIMERAPCROUTINE pfnComple.. 2015. 5. 1.
쓰레드 동기화 유저 모드 : 응용 프로그램의 실행 모드 응용 프로그램이 실행되는 기본모드로, 물리적인 영역으로 접근이 허용되지 않으며, 접근할 수 있는 메모리의 영역에도 제한이 따름 커널 모드 : 운영체제의 실행 모드 운영체젝 실행될 때의 모드로, 메모리뿐만 아니라, 하드웨어의 접근에도 제한이 따르지 않음 1. 유저 모드 동기화 - 커널에서 제공하는 동기화 기능 사용 안함 -> 성능상 이점, 기능상 제한 - "속도가 빠르다"※ 동기화 기능이 유저 모드에서 일어날 뿐, 락 걸려서 스레드가 대기 모드로 바뀌어 컨텍스트 스위칭 일어나면 얄짤없이 커널 모드로 들어가게 된다. 2. 커널 모드 동기화 - 커널에서 제공하는 동기화 기능 사용, 커널 모드 전환 필요 -> 성능 저하, 기능 제공 받음 - Signal & Non-Sig.. 2015. 4. 30.
쓰레드 * Kernel Object - 커널 오브젝트 > 윈도우 운영체제가 생성해서 관리하는 리소스 프로세스, 쓰레드, 파일, 세마포어, 뮤텍스 등등 > 리소스 종류에 따라 관리의 방식도 다름 입출력할 데이터 위치, 파일의 오픈 모드(read, write), 쓰레드의 ID, 쓰레드가 속한 프로세스 > 커널 오브젝트 : 운영체제에 의해서 생성되는 리소스들은 관리 목적으로 정보를 기록하기 위해 내부적으로 생성하는 데이터 블록 > 커널 오브젝트의 생성, 관리, 소멸 시점을 결정하는 것은 운영체제 > 커널 오브젝트의 생성의 주체도 소유의 주체도 운영체제 - 상태 > signaled 상태 : 종료된 상태 > non-signaled 상태 : 종료되지 않은 상태 * Thread - main()의 호출 주체는 쓰레드, 과거에.. 2015. 4. 30.
API/MFC에서 Alt키 (VK_MENU) 막는 방법 LRESULT CALLBACK CNsApp::WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ) { switch( message ) { //////////////////////////////////////////////// case WM_SYSKEYDOWN: case WM_KEYDOWN: //alt키 막아놈 switch(wParam) { case VK_MENU : break; } break; ///////////////////////////////////////////////// default: { return DefWindowProc(hWnd, message, wParam, lParam); } } return NULL; } VK_MENU .. 2014. 12. 21.