전성빈의 사리사욕

[OS의 작동방식] IPC (Inter Process Communication) 본문

백엔드 로드맵따라가기/OS 및 일반적인 지식

[OS의 작동방식] IPC (Inter Process Communication)

Been2 2020. 8. 12. 00:43
728x90

IPC란?

 

프로세스들은 각각이 완전히 독립된 실행 객체들입니다. 서로 다른 프로세스 끼리는 영향을 주지 않는다는 장점을 가집니다. 그러나 독립되어 있는 만큼 서로간 통시니 어렵다는 문제가 있습니다. 이를 위해 커널에서 IPC를 제공하게 되고 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있게 됩니다.

 

 

IPC 표준

  system V IPC : 오래된버전이며 역사가 긴 만큼 다른 기종간 코드 호환성을 보장해 주지만 API가 오래 되었으며 함수명도 며확하지 않습니다.

  POSIX IPC : 비교적 최근에 개발된 표준입니다. 직관적인 API들로 구성되어 있어 상대적으로 사용하기 쉽습니다.

 

 

IPC 설비

 

다양한 IPC 설비들이 존재하고 각각의 필요에 따라 알맞은 IPC를 선택해야합니다. 상황에 맞는 IPC선택, 특히 fork()를 이용해서 만들어진 멀티 프로세스의 프로그램에게는 매우 중요합니다.

  PIPE(Anonymous Pipe) : Half-Duplex 통신, 상대가 명확해야 한다.

  Named PIPE(FIFO)

  Message Queue

  Shared Memory

  Memory Map

  Socket

  Semaphore

728x90