내 잡다한 노트
IPC 방식에 따른 속도 비교 본문
일단 IPC ( Inter-Process Communication ) 에는 공유메모리, 소켓, 파이프, DBus, 메세지 큐 등이 있다.
1. IPC 방식에 따른 속도 비교
1.1 공유 메모리(Shared Memory)
- 속도:
공유 메모리는 가장 빠른 IPC 방식 중 하나입니다.
이유는 두 프로세스가 동일한 물리적 메모리 영역을 직접 액세스하기 때문입니다.- 메모리 접근 속도는 나노초(ns) 수준입니다.
- 사용 사례:
- 대량의 데이터 전송이 필요할 때.
- 고성능 실시간 애플리케이션(예: 멀티미디어, 고속 트레이딩 시스템).
- 제약:
- 동기화(뮤텍스, 세마포어)가 필요하며, 이를 잘못 관리하면 경쟁 조건이나 데드락 문제가 발생할 수 있음.
1.2 파이프(Pipes)
- 속도:
파이프는 메모리 기반 버퍼를 사용하여 데이터를 전달합니다.
일반적으로 공유 메모리보다 느리지만, 여전히 빠릅니다.- 속도 범위: 마이크로초(μs) 수준.
- 익명 파이프: 부모-자식 프로세스 간에만 사용되며, 상대적으로 더 간단하고 빠릅니다.
- 명명된 파이프(FIFO): 파일 시스템을 통해 통신하므로 약간의 추가 오버헤드가 있습니다.
1.3 소켓(Sockets)
Unix Domain Socket
- 속도:
네트워크 소켓보다 훨씬 빠르며, 로컬 통신용으로 최적화되어 있습니다.- 속도 범위: 마이크로초(μs) 수준.
TCP/UDP 소켓
- 속도:
TCP/UDP 소켓은 네트워크 프로토콜 스택을 거치므로 Unix Domain Socket보다 느립니다.- 속도 범위: 마이크로초
밀리초(μsms) 수준.
- 속도 범위: 마이크로초
1.4 메시지 큐(Message Queue)
- 속도:
메시지 큐는 커널 공간에서 큐를 관리하며, 소켓보다 빠르지만 공유 메모리보다 느립니다.- 속도 범위: 마이크로초
밀리초(μsms) 수준.
- 속도 범위: 마이크로초
- 특징:
- 동기화 메커니즘이 내장되어 있어 안전하게 사용할 수 있음.
- 대량 데이터 처리보다는 이벤트 기반 통신에 적합.
1.5 파일 기반 통신
- 속도:
디스크 I/O를 통해 데이터를 주고받기 때문에 가장 느립니다.- 속도 범위: 밀리초(ms) 수준 이상.
- 특징:
- 파일 잠금(lock)을 관리해야 동시 접근 문제를 피할 수 있음.
- 대량 데이터를 장기간 보관하면서 통신할 때 적합.
1.6 신호(Signals)
- 속도:
신호는 커널을 통해 전달되며, 매우 빠른 이벤트 전달 방식 중 하나입니다.- 속도 범위: 나노초
마이크로초(nsμs) 수준.
- 속도 범위: 나노초
- 제한:
- 간단한 신호 전달에만 적합하며, 복잡한 데이터 전송에는 적합하지 않음.
3. 속도 비교 요약
방식속도(대략적)특징사용 사례
공유 메모리 | 나노초(ns) | 가장 빠름, 동기화 필요 | 대용량 데이터 전송, 실시간 애플리케이션 |
익명/명명된 파이프 | 마이크로초(μs) | 부모-자식 간 빠른 통신 | 간단한 데이터 전송 |
Unix Domain Socket | 마이크로초(μs) | 로컬 프로세스 간 네트워크 없는 소켓 통신 | 범용적이고 유연한 통신 |
TCP/UDP 소켓 | 마이크로초~밀리초 | 네트워크 스택을 거침 | 멀티 호스트 간 통신, 네트워크 애플리케이션 |
메시지 큐 | 마이크로초~밀리초 | 동기화 내장, 중간 속도 | 이벤트 기반 통신, 메시징 시스템 |
파일 기반 | 밀리초(ms) 이상 | 디스크 I/O, 가장 느림 | 데이터 저장 및 비동기 처리 |
신호(Signals) | 나노초~마이크로초 | 이벤트 전달, 단순 이벤트용 | 이벤트 알림 |
'운영체제' 카테고리의 다른 글
Page Fault와 Thrashing (0) | 2025.01.26 |
---|---|
Unix Domain Socket (0) | 2025.01.20 |
Ephemeral port란? (0) | 2025.01.09 |
시스템콜 처리 과정, 시스템 콜 테이블 (0) | 2023.03.31 |
프로세스 생성 시스템 콜 (0) | 2023.03.20 |