1. IPC 개념
프로세스는 서로 독립적인 주소 공간을 가지는 실행 단위 임. 따라서 한 프로세스가 다른 프로세스의 메모리 영역을 직접 참조하는 것은 구조적 한계 임. 이 한계를 해결하기 위한 메커니즘이 IPC (Inter 프로세스 Communication) 임. IPC는 프로세스 간 데이터 교환을 위한 통신 구조 임.
2. IPC 필요성
프로세스 분리 실행 구조 자체가 IPC 필요성을 만드는 직접적 원인 임.
문제 구조
- 메모리 공간 독립성
- 메모리 직접 공유 불가능성
결과
- 프로세스 간 직접 데이터 교환 불가
해결 방향
- 운영체제 커널의 IPC 제공 필요성
- 프로세스 간 통신 규약의 명시적 설계 필요
3. IPC 방식
IPC는 두 모델로 구분됨.
- 공유 메모리 (Shared 메모리)
- 메시지 전달 (Message Passing)
4. 공유 메모리 (Shared 메모리)
여러 프로세스가 하나의 메모리 영역을 공유하는 방식 임.
동작 구조
- 프로세스의 공유 메모리 생성 요청
- 커널의 메모리 영역 할당
- 프로세스의 해당 영역 직접 접근 허용
특징
- 커널 개입은 생성/매핑 구간 중심
- 일반 메모리 접근 방식의 재사용
- 비교적 높은 성능 특성
장점
- 매우 빠른 처리 속도
- 커널 호출 오버헤드의 상대적 축소
단점
- 동기화 이슈 발생 가능성
- Race Condition 노출 가능성
- 사용자 수준 동기화 구현 부담
5. 메시지 전달 (Message Passing)
커널을 통해 메시지를 주고받는 방식 임.
동작 구조
send(message)호출receive(message)호출
프로세스 → 커널 → 프로세스 구조 임
특징
- 커널 중심 통신 중재
- 메모리 공유 없음
장점
- 동기화 처리의 사용자 부담 감소 경향
- 구현 구조의 단순화 경향
- 안정성의 상대적 확보
단점
- 커널 개입으로 인한 지연 가능성
- 통신 오버헤드 상시 존재
6. IPC 방식 비교
| 구분 | 공유 메모리 | 메시지 전달 |
|---|---|---|
| 속도 | 높음 | 상대적으로 낮음 |
| 커널 개입 | 생성/매핑 구간에 집중 | 통신 구간 전반에서 상시 관여 |
| 동기화 | 사용자 책임 비중 큼 | 커널/큐 채널 특성에 따른 완화 |
| 안정성 | 동기화 품질에 민감 | 구조적 중재로 상대적 안정성 큼 |
| 구현 난이도 | 동기화 설계 부담 큼 | 구현 진입 장벽이 대체로 낮음 |
7. IPC 예시
공유 메모리 방식
- Shared 메모리
- POSIX Shared 메모리
메시지 전달 방식
- Pipe
- Socket
- Message Queue
핵심 정리
IPC
프로세스 간 데이터 통신 방법의 필요성 개념 임
독립된 메모리 구조 한계의 해결 목적 임공유 메모리
높은 처리 속도, 동기화 설계 부담 구조메시지 전달
상대적 안정성 확보, 커널 기반 통신 구조
참고 자료
- KOCW, 운영체제 강의자료
https://contents.kocw.or.kr/KOCW/document/2015/cup/weonsunghyun/4.pdf - University of Illinois Chicago, Operating Systems Notes, “Interprocess Communication”
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/3_Processes.html