ZeroBase/CS

IPC

Red_Horse 2025. 8. 17. 16:23

프로세스끼리 데이터를 주고받거나 공유 데이터를 관리하기 위한 메커니즘
운영체제에서 프로세스 간 협업 및 데이터 교환을 가능하게 합니다.

 

1. 공유 메모리 (Shared Memory)

  • 여러 프로세스가 동일한 메모리 공간을 공유하여 통신
  • 장점: 불필요한 데이터 복사 오버헤드가 없어 가장 빠른 방식
  • 단점: 여러 프로세스가 동시에 접근 가능하므로 동기화(세마포어, 뮤텍스 등) 필요

2. 소켓 (Socket)

  • 네트워크 인터페이스 기반 통신 (TCP, UDP, HTTP 등)
  • 로컬 프로세스 간 통신뿐만 아니라 원격지 프로세스 간 통신도 가능

3. 파이프 (Pipe)

익명 파이프 (Anonymous Pipe)

  • FIFO 기반 통신 채널
  • 부모-자식 프로세스 간 통신만 가능
  • 네트워크 환경에서는 사용 불가
  • 제약: 데이터 용량 제한, 쓰기 속도가 읽기 속도를 초과할 수 없음

명명 파이프 (Named Pipe)

  • 익명 파이프의 확장
  • 부모-자식 관계가 아닌 프로세스 간에도 통신 가능
  • 네트워크 상에서도 사용 가능
  • 일반적으로 서버-클라이언트 모델로 동작

4. 메시지 큐 (Message Queue)

  • 버퍼(큐 자료구조) 기반으로 통신
  • 특징:
    1. 프로세스가 메시지를 보내거나 받기 전에 큐를 초기화
    2. 보낸 메시지는 큐에 복사되어 수신 프로세스에게 전달
  • 데이터 단위를 메시지 형태로 관리하므로 구조적이고 관리 용이