Written by
LSM
on
on
TIL:IPC
IPC
- 컴퓨터 프로세스 간의 통신
- OS 상에서 실행 중인 프로세스 간 정보를 주고 받는 것을 의미
종류
메일슬롯
- 단방향 메세지 전송
- 메모리 상의 가상 파일
- 크기 제한이 있으나 만들기 쉽고 브로드캐스팅 가능
파이프
-
쉘에서 “ “을 쓰게 되면 프로그램 앞 뒤로 파이프가 생성. 앞의 프로그램의 결과가 뒤의 프로그램의 입력으로 들어가게 됨 - 명명되지 않은 파이프(Anonymous Pipe)
- 기본적인 파일 기반 단방향 IPC
- 쓰기, 읽기만 가능한 커넥션 2개로 구성
- 양방향 통신시 파이프를 2개를 생성해 전송
- 프로세스가 죽으면 파이프도 죽음
- 명명된 파이프(Named Pipe)
- 이름을 붙여 만들었기 때문에 이름을 공유 가능
- 프로세스가 죽어도 명명된 파이프는 남아있음
소켓
- 네트워크 상에서 데이터 입출력으로 많이 사용
- TCP 사용 시 Stream Socket, UDP 사용시 Datagram Socekt
- 같은 컴퓨터 내에서 실행된다면 프로세스 간 통신 가능
시그널
- 유닉스 시스템에서 쓰이는 IPC 시스템
- 별도의 식별자 없이 다른 프로세스로 보낼 수 있음
- 소켓과 달리 데이터는 보낼 수 없음 cf) Segment Fault
공유 메모리
- 메모리의 일정 부분을 공유