
운영체제
Inter-Process CommunicationIPC
IPC(Inter-Process Communication)는 서로 다른 프로세스가 데이터를 교환하고 동기화하는 메커니즘이다. 프로세스는 독립적인 메모리 공간을 가지므로, 통신을 위한 별도 수단이 필요하다.
IPC 방식 비교
| 방식 | 특징 | 용도 |
|---|---|---|
| 파이프(Pipe) | 단방향, 부모-자식 관계 | 쉘 명령어 연결 (ls |
| 명명된 파이프 | 양방향, 무관한 프로세스도 가능 | 서버-클라이언트 로컬 통신 |
| 공유 메모리 | 가장 빠름, 동기화 필요 | 대용량 데이터 공유 |
| 메시지 큐 | 메시지 단위 전달, 비동기 | 비동기 작업 처리 |
| 소켓 | 네트워크 통신 가능 | TCP/IP 기반 통신 |
| 시그널 | 비동기 알림 | 프로세스 종료 요청 (SIGTERM) |
| 세마포어 | 동기화 전용 | 공유 자원 접근 제어 |
파이프 예시 (Python)
공유 메모리 (Python)
관련 개념
- •프로세스와 스레드 — IPC의 주체
- •세마포어 — 공유 메모리 동기화
- •메시지 큐 — IPC의 응용
참고문헌
- •Silberschatz et al. Operating System Concepts — Chapter 3
