본문 바로가기
Operation System

IPC

by orioncsy 2023. 4. 30.

IPC

개념

Inter-Process Communication

  • 독립된 프로세스 간 통신을 가능하게 해주는 것
  • 커널이 제공하는 IPC 설비를 통해 프로세스 간 통신

종류

익명 PIPE

  • 파이프는 두 개의 프로세스를 반이중 통신으로 연결
  • 하나의 프로세스는 읽기만 가능하고 다른 프로세스는 쓰기만 가능
  • 한 방향으로만 통신이 가능
  • 전이중통신을 하기 위해서 2개의 파이프 구현
  • 간단하게 사용할 수 있다는 장점이 있고, 전이중 통신은 구현이 복잡

Named PIPE

  • 익명 파이프는 통신할 프로세스를 명확히 아는 경우에 사용
  • named PIPE는 통신을 위해 이름이 있는 파일을 사용하여 모르는 상태의 프로세스와도 통신 가능
  • 그러나 Named PIPE도 익명 파이프와 마찬가지로 읽기/쓰기를 동시에 하는 것이 불가능

Message Queue

  • 입출력은 Named Pipe와 같다.
  • 메시지 큐는 파이프처럼 데이터의 흐름이 아니라 메모리 공간이다.
  • 사용할 데이터에 번호를 부여해 여러 프로세스가 동시에 데이터를 다룰 수 있도록 한다.

공유 메모리

  • 파이프와 메시지 큐는 데이터 통신을 위한 설비이지만 공유 메모리는 데이터 자체를 공유하는 설비
  • 프로세스는 각각 독립된 메모리 영역을 가지는데 파이프처럼 데이터를 통신하는 것보다 스레드처럼 메모리를 공유하기 위해서 공유 메모리를 사용
  • 프로세스가 커널에 공유 메모리 할당을 요청하면 메모리를 할당해 주고 모든 프로세스가 접근 가능
  • 중개자 없이 메모리에 접근 가능하여 IPC 중 가장 빠르다.

메모리 맵

  • 공유 메모리처럼 메모리를 공유해준다.
  • 열린 파일을 메모리에 매핑시켜 공유하는 방식이다.
  • 대용량 데이터를 공유할 때 사용

소켓

  • 네트워크 소켓 통신을 통해 데이터 통신
  • 클라이언트와 서버가 소켓을 통해 통신하는 구조로 원격에서 데이터 공유할 때 사

Reference

https://gyoogle.dev/blog/computer-science/operating-system/IPC.html

'Operation System' 카테고리의 다른 글

Paging and Segment  (0) 2023.05.03
CPU Scheduling  (0) 2023.05.02
Interrupt  (0) 2023.04.27
PCB  (0) 2023.04.26
Process Address Space  (0) 2023.04.25