QNX RTOS: 6-1. IPC Methods
2025. 12. 15. 15:54ㆍ운영체제/QNX
QNX IPC 메커니즘 비교 정리
1. QNX IPC의 큰 분류
QNX는 IPC(Inter-Process Communication)를 크게 두 부류로 제공한다.
- QNX Native IPC
- QNX 고유 API
- 메시지(Message), 펄스(Pulse)
- POSIX / Unix 계열 IPC
- 이식성(portability) 중심
- Signal, Shared Memory, Pipe, POSIX Message Queue, TCP/IP Socket, File I/O
2. QNX Native Messaging (메시지 기반 IPC)
개념
- Client–Server / RPC(Remote Procedure Call) 모델
- Client가 MsgSend() → Reply 받을 때까지 block
- Server는 MsgReceive() → 처리 → MsgReply()
주요 특성
- 동기식(synchronous) 통신
- 추가 동기화 불필요
- 데이터 크기 제한 없음
- 작은 데이터 / 큰 데이터 / 가변 길이 모두 가능
- 우선순위 상속(priority inheritance) 지원
- Server가 Client의 우선순위를 상속받아 실행
장점
- 실시간성(real-time) 보장에 매우 유리
- 우선순위 역전(priority inversion) 문제 최소화
- 구조가 명확 (RPC 스타일)
단점
- 항상 block 발생 → 비동기 알림에는 부적합
적합한 사용처
- 제어(control) 중심 IPC
- 실시간 태스크 간 요청–응답 구조
- 드라이버, 시스템 서비스, 결정 로직
3. Pulses (펄스)
개념
- 비동기(non-blocking) 알림(notification)
- QNX Native Messaging과 호환
주요 특성
- 송신자(sender)는 block되지 않음
- 데이터 크기 매우 작음
- 약 71비트 수준
- 우선순위 정보 포함
- 수신 측은 pulse의 priority를 기준으로 처리
장점
- 가볍고 빠른 이벤트 알림
- 실시간 시스템에서 안전한 비차단 통지
단점
- 전달 가능한 데이터 양이 매우 제한적
적합한 사용처
- 상태 변경 알림
- “무언가 발생했다”는 신호 전달
- 서버 깨우기(wakeup) 용도
4. Signals (시그널)
개념
- POSIX 표준 비동기 알림 메커니즘
주요 특성
- 송신자는 block되지 않음
- 수신 프로세스를 강제로 인터럽트
- 우선순위 정보 없음
- 핸들러(signal handler) 필요
장점
- POSIX 이식성 높음
단점
- 처리 흐름을 깨뜨림 → 설계 난이도 높음
- 실시간 제어에는 부적합
- 우선순위 전달 불가
적합한 사용처
- 예외 상황 처리
- 프로세스 종료, 비정상 이벤트 알림
- 실시간 핵심 경로는 아님
5. Shared Memory (공유 메모리)
개념
- 여러 프로세스가 같은 메모리 영역을 직접 접근
- 데이터 복사 없음(copy-free)
주요 특성
- 매우 빠른 데이터 공유
- 우선순위 정보 없음
- 동기화 필수
- mutex, semaphore, atomic, IPC 병행 사용 필요
장점
- 대용량 데이터 처리에 최적
- 복사 오버헤드 최소화
단점
- 동기화 설계 부담
- 접근 제어/보안 문제
적합한 사용처
- 영상/센서/대용량 버퍼
- “IPC로 제어 + Shared Memory로 데이터” 패턴
6. Pipes (파이프)
개념
- POSIX 표준 파이프
- QNX 내부적으로는 QNX 메시지 기반 구현

주요 특성
- 데이터 복사 2회
- write 시 1회
- read 시 1회
- context switch 다수 발생
- 우선순위 정보 없음
- pipe 프로세스 필요
장점
- 기존 Unix/Linux 코드 이식 용이
단점
- 성능이 느림
- 실시간성 부족
적합한 사용처
- 기존 POSIX 코드 포팅
- 성능 중요하지 않은 도구성 IPC
7. POSIX Message Queues (메시지 큐)
개념
- POSIX 표준 메시지 큐 IPC

주요 특성
- 내부적으로 큐(queue) 사용
- 메시지 우선순위는 큐 정렬용
- 스케줄링 우선순위 전달은 아님
- 데이터 복사 2회
- mqueue 프로세스 필요
장점
- 표준 API
- 메시지 기반 구조
단점
- 실시간 우선순위 전달 불가
- 성능은 QNX 메시지보다 낮음
적합한 사용처
- POSIX 기반 설계
- 메시지 큐 개념이 필요한 경우
8. TCP/IP Sockets
개념
- POSIX 네트워크 IPC
- QNX에서는 io-sock 프로세스 필요
주요 특성
- 로컬/원격 통신 모두 가능
- 데이터 복사 2회 이상
- context switch 많음
- 우선순위 정보 없음
장점
- 네트워크 통신 유일한 선택지
- 이식성 최고
단점
- 로컬 IPC로는 비효율적
- 실시간성 낮음
적합한 사용처
- 외부 시스템 통신
- 분산 시스템
- 로컬/원격 동일 구조 필요 시
9. File Descriptor / File Pointer 기반 IPC
개념
- open(), read(), write(), fopen() 등
- 내부적으로 QNX 메시지 → Resource Manager
주요 특성
- POSIX 인터페이스 제공
- 내부는 QNX 메시지 기반
- 우선순위 정보 전달 가능
- 이중 복사 없음
장점
- 클라이언트는 POSIX 방식으로 사용
- 드라이버/리소스 관리에 최적
단점
- 서버(Resource Manager)는 QNX 메시지 구조를 이해해야 함
적합한 사용처
- 디바이스 드라이버
- 파일처럼 보이는 인터페이스 제공
- /dev/* 형태의 시스템 서비스
10. 한눈에 비교 요약
IPC 방식Block데이터 복사우선순위 전달실시간성대표 용도
| QNX Message | O | 1회 | O | ★★★★★ | 제어/RPC |
| Pulse | X | 매우 작음 | O | ★★★★★ | 이벤트 알림 |
| Signal | X | 없음 | X | ★ | 예외 처리 |
| Shared Memory | X | 없음 | X | ★★★★☆ | 대용량 데이터 |
| Pipe | O/X | 2회 | X | ★★ | POSIX 포팅 |
| POSIX MQ | O/X | 2회 | X | ★★ | 메시지 큐 |
| TCP/IP | O/X | 다수 | X | ★ | 네트워크 |
| File I/O (RM) | O | 1회 | O | ★★★★☆ | 드라이버 |
'운영체제 > QNX' 카테고리의 다른 글
| QNX RTOS: 7-1. Hardware I/O (0) | 2025.12.26 |
|---|---|
| QNX RTOS: 6-2. IPC 선택 기준 (0) | 2025.12.15 |
| QNX RTOS: 5-10. Shared Memory (0) | 2025.12.15 |
| QNX RTOS: 5-9. Event Delivery (0) | 2025.12.15 |
| QNX RTOS: 5-8. Deadlock Avoidance (0) | 2025.12.03 |