QNX RTOS: 6-1. IPC Methods

2025. 12. 15. 15:54운영체제/QNX

QNX IPC 메커니즘 비교 정리

1. QNX IPC의 큰 분류

QNX는 IPC(Inter-Process Communication)를 크게 두 부류로 제공한다.

  1. QNX Native IPC
    • QNX 고유 API
    • 메시지(Message), 펄스(Pulse)
  2. 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