본문 바로가기
CS/운영체제

프로세스 간 통신 (Inter Process Communication)

by minkang 2021. 7. 20.

프로세스 간 통신(Inter-Process Communication, IPC)이란 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다.

프로세스는 본래 독립적이나, 상황에 따라 프로세스끼리 협력해야 하는 경우가 있다. 이 경우, 프로세스 간 자원/데이터 공유가 필요한데, 이때 필요한 것이 IPC이다.

IPC가 필요한 이유

  • 정보 공유 : 여러 사용자가 동일한 정보를 필요
  • 계산 가속화 : 특정 작업을 빠르게 실행하기 위해, 해당 작업을 부분 작업으로 나눠서 병렬 실행
  • 모듈성 : 특정한 시스템 기능을 별도의 프로세스(스레드)로 구분하여 모듈식 형태로 시스템 구성
  • 편의성 : 여러 사용자들이 동시에 많은 작업을 수행

 

메시지 전달

  • 커널(OS)이 memory protection을 위해 대리 전달해주는 방식이다.
  • 안전하고 동기화의 문제는 없지만 성능이 떨어진다는 단점

direct commnunication은 커널에 메시지를 직접 주고 그걸 커널이 B에게 메시지를 직접 전달하는 것이고

indirect communication은 A가 '커널에 ABC라는 메시지 박스에 넣어둘 테니까 니가 가서 직접봐'하면 B가 그 ABC라는 메시지 박스에 가서 읽어오는 방식을 말한다.

둘 다 커널을 이용한 Message passing이지만 커널이 직접 주냐 안주냐로 방법이 나뉘는 것이다.

 

공유 메모리

  • 두 프로세스간의 공유된 메모리를 생성 후 이용한다.
  • 커널 의존성이 낮아 성능이 좋지만 동기화 문제가 발생할 수 있다.

 

출처

'CS > 운영체제' 카테고리의 다른 글

교착상태 (DeadLock)  (0) 2021.07.27
CPU 스케줄링의 종류  (0) 2021.07.27
스케줄러  (0) 2021.07.24
PCB & Context Switching  (0) 2021.07.20
프로세스와 스레드의 차이  (0) 2021.07.19