Computer Science/Operating System

IPC(Inter-Process Communication)

settong 2024. 10. 29. 18:20
반응형

IPC(Inter-Process Communication)란?

프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 방법.

ex) 브라우저를 띄워 네이버 서버와 HTTP 통신해서 html 등의 파일을 가져오는 것

 

IPC의 종류

  • 공유메모리
  • 파일
  • 소켓
  • 파이프
  • 메세지 큐

위 다섯가지 IPC 종류를 하나씩 살펴보자

 

 

공유메모리 (Shared Memory)

  • 여러 프로세스가 메모리를 공유하여 서로 통신할 수 있도록 하는 것.
  • 어떠한 매개체를 통해 데이터를 주고 받는게 아니라 메모리 자체를 공유.
    때문에 불필요한 데이터 복사의 오버헤드가 발생하지 않음.
  • 고속 데이터 전송 : 메모리에 직접 접근하므로 속도가 가장 빠른 방법
  • 같은 메모리 영역을 여러 프로세스가 공유하기 때문에 동기화 필요

 

 

파일(File)

  • 디스크에 저장된 데이터를 기반으로 통신하는 것. 공용 파일을 통해 데이터를 주고 받음.
    하나의 프로세스가 파일에 데이터를 쓰고 다른 프로세스가 이를 읽음.
  • 파일 입출력 기능을 사용하여 구현이 비교적 간단
  • 디스크 입출력 속도가 느리기 때문에 실시간 통신에는 적합하지 않음. (저속)
  • 데이터를 파일에 저장하므로 시스템 종료 후에도 데이터를 유지할 수 있다는 장점이 있음.(지속성)

 

 

소켓(Socket)

  • TCP/IP 프로토콜을 사용하여 네트워크를 통해 서로 다른 호스트 간에도 통신이 가능.
  • 네트워크 통신으로 로컬과 원격 시스템 간의 통신 가능.
  • 다양한 프로토콜을 사용할 수 있음 (TCP, UDP)

 

 

파이프 (Pipe)

익명 파이프 (Anonymous Pipe, Unnamed pipe)

  • 주로 부모-자식 프로세스간 통신에 사용.
  • 파이프는 생성된 후 특정 프로세스 간에만 유효. 이름이 없어 외부에서 접근 불가
  • 기본적으로 단방향 통신. 양방향을 위해서는 두개의 파이프가 필요.

명명 파이프

  • 파일 시스템에 이름이 부여된 특별한 파일로, 파이프를 생성하고 나면 이름을 통해 접근
  • 부모-자식 관계뿐만 아니라 독립적인 프로세스 간 통신이 가능.
  • 양방향 통신 가능
  • 운영체제에 따라 명명 파이프 생성과 사용법이 다를 수 있음

 

 

 

메시지 큐 (Message Queue)

  • 운영체제에서 관리하는 메시지 큐를 통해 프로세스간 데이터를 주고받는 방법.
    메시지는 큐에 저장되고 다른 프로세스가 이를 읽음.
  • 메시지 큐는 메시지의 순서를 유지하고 동기화를 자동으로 처리함.
  • 다양한 크기의 메시지를 주고받을 수 있음.
  • 운영체제에 따라 메시지 큐 구현과 사용법이 다를 수 있음.

 

 

728x90
반응형