topic★★★★★난이도 · 약 12분
IPC — 프로세스 간 통신
같은 시스템 내 프로세스 간 데이터 교환 방식. 메시지 큐·공유 메모리·파이프·소켓·시그널.
#IPC#OS
왜 배우는가
IPC 기법 5~6종의 이름과 특징이 단답형으로 출제된다. 특히 공유 메모리가 가장 빠르다는 특성과 소켓은 네트워크 IPC도 가능하다는 구분이 시험 포인트.
IPC(Inter-Process Communication) 는 하나의 시스템(혹은 네트워크) 안에서 여러 프로세스가 데이터를 주고받는 메커니즘이다. 성격별로 5~6종으로 분류된다.
| 기법 | 특징 | 속도 |
|---|---|---|
| 공유 메모리 (Shared Memory) | 여러 프로세스가 같은 메모리 영역 공유 | 가장 빠름 |
| 메시지 큐 (Message Queue) | 커널이 관리하는 큐에 메시지 저장·전달 | 중간 |
| 파이프 (Pipe) | 부모·자식 프로세스 간 단방향 스트림 | 중간 |
| Named Pipe / FIFO | 이름 있는 파이프, 부모·자식 관계 없어도 사용 가능 | 중간 |
| 소켓 (Socket) | 같은/다른 시스템 간 양방향 통신 | 느림 (네트워크 오버헤드) |
| 시그널 (Signal) | 비동기 이벤트 알림 (예: SIGINT, SIGKILL) | 빠름 |
공유 메모리가 가장 빠른 이유 — 커널을 경유하지 않고 사용자 공간에서 직접 접근하기 때문. 대신 동기화(세마포어·뮤텍스)를 프로그래머가 직접 관리해야 한다.
소켓의 두 얼굴 — 같은 호스트 내에서는 유닉스 도메인 소켓(파일 기반), 서로 다른 호스트 간에는 TCP/UDP 소켓(네트워크 기반)을 사용한다. 프로그래밍 API는 거의 동일하다.
실기 드릴 3문항
edit실기 드릴 · 단답형
IPC 기법 중 가장 속도가 빠른 방식은?
edit실기 드릴 · 단답형
프로세스에게 비동기로 이벤트를 알리는 IPC 기법으로, SIGINT·SIGKILL 등이 있는 것은?
check_circle실기 드릴 · OX
소켓(Socket)은 같은 호스트 내 프로세스 간 통신에는 사용할 수 없다.