프로세스끼리 데이터를 주고받거나 공유 데이터를 관리하기 위한 메커니즘
운영체제에서 프로세스 간 협업 및 데이터 교환을 가능하게 합니다.
1. 공유 메모리 (Shared Memory)
- 여러 프로세스가 동일한 메모리 공간을 공유하여 통신
- 장점: 불필요한 데이터 복사 오버헤드가 없어 가장 빠른 방식
- 단점: 여러 프로세스가 동시에 접근 가능하므로 동기화(세마포어, 뮤텍스 등) 필요
2. 소켓 (Socket)
- 네트워크 인터페이스 기반 통신 (TCP, UDP, HTTP 등)
- 로컬 프로세스 간 통신뿐만 아니라 원격지 프로세스 간 통신도 가능
3. 파이프 (Pipe)
익명 파이프 (Anonymous Pipe)
- FIFO 기반 통신 채널
- 부모-자식 프로세스 간 통신만 가능
- 네트워크 환경에서는 사용 불가
- 제약: 데이터 용량 제한, 쓰기 속도가 읽기 속도를 초과할 수 없음
명명 파이프 (Named Pipe)
- 익명 파이프의 확장
- 부모-자식 관계가 아닌 프로세스 간에도 통신 가능
- 네트워크 상에서도 사용 가능
- 일반적으로 서버-클라이언트 모델로 동작
4. 메시지 큐 (Message Queue)
- 버퍼(큐 자료구조) 기반으로 통신
- 특징:
- 프로세스가 메시지를 보내거나 받기 전에 큐를 초기화
- 보낸 메시지는 큐에 복사되어 수신 프로세스에게 전달
- 데이터 단위를 메시지 형태로 관리하므로 구조적이고 관리 용이
'ZeroBase > CS' 카테고리의 다른 글
| 경쟁 상태 해결(뮤텍스, 세마포어, 모니터) (4) | 2025.08.18 |
|---|---|
| 공유자원과 경쟁상태 그리고 임계영역 (0) | 2025.08.17 |
| 프로세스의 상태 (2) | 2025.08.14 |
| PCB와 컨텍스트 스위칭 (1) | 2025.08.13 |
| DFS(깊이 우선 탐색), BFS(너비 우선 탐색) (4) | 2025.08.13 |