본문 바로가기
반응형

분류 전체보기798

스레드/동기화/비동기/크리티컬섹션/뮤텍스 /* 1. 스레드는 각자의 스택을 가진다. 2. 멀티스레드 환경에서 지역변수는 안전하다.-어떤것을 얼마나 사용하던 상관이 없다. 3. 멀티 스레드 환경에서 전역(static 지역) 변수는 불안하다. 반드시 동기화 해야한다. CriticalSection, Mutex, Semaphore, Event 등의 기범을 사용해야한다. - CriticalSection 구역에는 반드시 하나의 스레드만 존재한다. - 상호 배제 구역을 들어가기 전에 Enter() 나가면 Leave()먼저 온것이 들어가면 나중에 온것은 먼저 온것이 나갈때까지 기다려야한다.- 독점 하지만 먼조 온 스레드가 나가더라도 다시 실행하려고 하면 두 스레드는 다시 경쟁상태에 놓이게 된다. */ /* #include #include void Delay(.. 2007. 1. 22.
프로세스가 죽으면 다시 살림 /* 1. EProcess 의 포인터가 Process Enviroment Block을 가리키고 있다. PEB(Process Enviroment Block)에는 현재 디렉토리, 환경변수,command line argument을 가지고 있다. 2. Eprocess에는 프로세스 ID를 가지고 있다. */ #include #include /* void main() { //현재 프로세스의 ID얻기 -> EPROCESS 에서 꺼내오는 함수. DWORD pid = GetCurrentProcessId(); printf("프로세스 ID : %d\n",pid); //현재 디렉토리 얻기, char dir[MAX_PATH]; GetCurrentDirectory(MAX_PATH, dir); printf("현재 디렉토리 : %s.. 2007. 1. 22.
핸들값을 다른 프로세스에 복사해주기 /* 1. 윈도우를 만들때 시스템 입장에서는 메모리에 잡힌 윈도우 구조체이다. 2. 펜이 필요해 만들때에도 팬은 시스템 입장에서는 하나의 구조체이다. 3. 파일을 읽거나 쓸때에도 하나의 구조체이다. 윈도우와 관련된 객채를 User Object이다. - 핸들이 전형적이다. 펜과 같이 그래픽관련 객체를 GDI Object이다. -핸들이 지역적이다. 파일과 같이 시스템적으로 관련된 객체를 Kernel Object라 한다. -한정적 핸들 or 상대적 핸들 1. OS가 만드는3가지 객체의 종류 ↑ 2. 핸들의 특징 ↑ 3. 모든 커널객체의 공통적인 특징 (KO - Kernel Object) 1. 보안이라는 속성을 갖는다. 2. 시그널이라는 속성을 같는다. 3. 참조개수가 있다. 4. 이름이 있다. 5. 소유자는 .. 2007. 1. 22.
이미 실행중인 응용프로그램이면 실행안되게 /* 1. 실행가능한 파일을 프로그램이라한다. 2. 프로그램이 하나 실행되면 하나의 프로세스가 된다. 같은 프로그램이라도 2번실행되면 프로세스는 2개가 된다. 3. 프로세서는 CPU를 말한다. 4. 프로세스 하나당 쓰레드 하나가 생성된다. 5. 에러 전역변수는 프로세스당 하나라서 스레드가 2개일때 하나의 스레드가 처리하기 전에 다른 스레드가 에러를 발생하면 먼저 에러를 발생한 스레드의 에러는 알수가 없다. 6. 그레서 스레드당 하나의 에러전역변수를 지원해주는것이 있다. GetLastError(); 7. 브레이크 포인트(F9)하고 서치창에 @err과 @err,hr를 넣으면 에러를 알수 있다. 8. 성공시에도 GetLastError호출할때가 있다. */ #include #include #include //함.. 2007. 1. 22.
반응형