시스템 프로그래밍

프로세스 간 통신

은행털이 2024. 10. 18. 13:49

프로세스 간 통신(IPC)

- 프로세스 간 데이터 송, 수신을 의미 -> 즉 메모리 공유

- 대표적 기법으로 메일슬롯 존재

 

 

메일 슬롯

- 단방향 통신 : 두 프로세스간 메시지 전달을 위해서는 두 개의 메일슬롯을 생성해야함
- 브로드캐스트 가능 : 여러 Sender가 하나의 Reciever에게 데이터 전달 가능

 

 

 

커널 오브젝트의 Non-signaled, Signaled 상태

- 프로세스가 실행중이면 Non-signaled, 신호를 받지 않는 상태
- 프로세스가 종료되면 Signaled, 신호를 받는 상태
- 종료된 프로세스를 살릴 수 없듯이, Signaled상태가 되면 절대 Non-signaled로 돌아갈 수 없음

 

 

 

핸들과 핸들 테이블
- 핸들 테이블 : 핸들 정보를 저장하고 있는 테이블로, 프로세스별로 독립적(프로세스별로 하나의 핸들 테이블 소유)

- 숫자가 핸들로서의 의미를 가지는 것은, 해당 숫자가 핸들 테이블에 등록된 순간부터이다. 이 핸들로 이제 커널오브젝트에 간접 접근이 가능하다

 

 

이름없는 파이프와 이름있는 파이프(IPC)

  메일슬롯 이름없는 파이프 이름있는 파이프
방향성 단방향, 브로드캐스팅 단방향 양방향
통신범위 제한 없음 부모, 자식 프로세스 제한 없음