※ 아래는 윤성우 뇌를 자극하는 윈도우즈 프로그래밍 한빛미디어(주) 2022년
Chapter07(p.211 ~ 237)를 읽고 정리한 내용입니다.
Inter-Process Communication 프로세스 사이의 통신
-> 둘 이상의 프로세스가 데이터를 주고 받는 행위
프로세스들은 서로 만나서 데이터를 주고 받는 것이 불가능 함
(자신에게 할당된 메모리 공간 이외에는 접근이 불가능)
데이터를 주고 받기 위해서는 Windows 운영체제에서 제공하는 기능상의 도움을 받아야만 한다.
데이터를 주고 받기 위해서 프로세스가 우체통을 마련하는 것
*메일 슬롯은 단방향 브로드캐스팅 방식의 통신을 지원함
(하나의 Sender는 한 번의 메시지 전송으로 여러 Receiver에게 동일한 메시지 전달 가능)
커널 오브젝트의 상태는 두 가지이다.
상태는 나머지 다른 하나의 상태로 변경되는데,
변경되는 시점은 커널 오브젝트의 종류에 따라서 다르다.
WaitForSingleObject 함수는 커널 오브젝트를 감시하는 역할을 함
커널 오브젝트가 Non-Signaled 상태에 있으면 함수를 반환하지 않고 블로킹 상태에 있다가
함수가 Signaled 상태가 되면 함수를 빠져 나오는 특성을 지님
WaitForMultipleObjects 함수는 둘 이상의 커널 오브젝트를 감시할 때 사용
main 함수의 return 문에 의한 반환값은 프로세스의 종료코드로 커널 오브젝트에 저장됨
종료코드를 얻기 위해서는 GetExitCodeProcess 함수를 호출하면 되고,
이 종료코드는 프로세스의 종료 이유를 담는 용도로 사용하는 것이 일반적임