IPC   InterProcess Communication   프로세스 간 통신

(2023-10-19)

1. IPC ( InterProcess Communication, 프로세스통신) 이란?

  ㅇ 실행 프로세스 간에 통신을 가능케하는 메커니즘들에 대한 통칭
     - 프로세스 간에 서로 통신하는 규칙에 관한 문제

  ㅇ 통상, 호스트의 기종, 운영체제 등이 무엇인지 관계없이 일정 규칙으로 통신하는 것이 매우 중요함
     - 이로써, 두 프로세스 간에 일정 포멧과 순서를 따르는 메세지를 주고 받으며 통신을 하게됨

  ㅇ 결국, 멀티타스킹 운영체제 내 또는 네트워크화(Networked)/분산된(Distributed) 컴퓨터들 사이에, 
     - 각각 실행되는 프로세스 간에 정보의 교환을 가능케 하는 다양한 기법들을 의미함
  

2. IPC 구현 기법들 구분

  ㅇ 전통적인 주요 기법 둘
     - 공유 메모리 기법 (Shared Memory)
        . 협력적 프로세스들이 공유 메모리 영역을 통해 데이터 교환
           . 주로, 전역 변수, 공유 변수, 공유 파일을 통해 통신을 이룸
        . 충돌 가능성은 있으나, 일반적으로 더 빠르고 커널 도움이 거의 필요 없음
           .. 즉, 고속 통신이 가능하나, 통신 책임이 응용 프로세스에 있고, 
           .. 운영체제는 단지 공유 메모리 만 제공 함
     - 메세지 전달 기법 (Message Passing)
        . 협력적 프로세스 간에 메세지 교환
        . 충돌하지 않으나, 적은 양의 데이터 교환 위주
        . 통신 책임 및 수단이 운영체제에 의해 제공됨

  ㅇ 유닉스 초기 IPC 구현 3가지 기법 
     - 공유 메모리 (Shared Memory)
        . 다중 프로세스들이 가상 메모리(Virtual Memory)를 공유
        . 협력 프로세스들 간에 공유되는 메모리 영역이 운영체제에 의해 구축 제공됨
     - 세마포어 (Semaphore) : 공유 자료에 대한 접근을 통제하는 일종의 카운터
     - 메세지  (Message Queue)

  ㅇ 메세지 전달 (Message Passing)에 기반을 둔 기법들
     - 시그널 (Signal)
        . 실시간으로 프로세스이벤트 발생을 알리기 위함 
     - 세마포어 (Semaphore)
        . 공유 자료에 대한 접근을 통제하는 일종의 카운터
     - 파이프 (Pipe)
        . 2개의 프로세스 입출력을 직렬 연결하여 하나의 공유 페이지를 제공
           .. 例)  ls | pr (ls를 수행한 표준출력이 pr의 표준입력으로 전달 됨)
        . 이름 없는 파이프 : 상호 관련 있는 프로세스통신에 사용
        . 이름 있는 파이프(Named Pipe) : 장치 파일을 통해, 상호 관련 없는 프로세스통신에 사용
     - 소켓 (Socket)
        . 네트워크에 기반을 둔 IPC 메카니즘
        . 파이프 개념을 네트워크로 확장시킨 것
     - RPC (Remote Procedure Call) : 클라이언트-서버 모델을 이용하는 기법
        . 원격지 프로세스 간에 함수의 호출에 기반을 둔 기법
        . 한편, LPC (Local Procedure Call)는 동일 시스템내에서 호출 기법을 말함


3. 통신계층의 관점

  ㅇ IPC는 트랜스포트 계층(Layer 4) 또는 세션계층(Layer 5)에서 이루어짐

IPC
   1. IPC(프로세스간 통신)   2. 세마포어   3. 공유 메모리   4. 파이프   5. Named Pipe   6. 소켓  


Copyrightⓒ written by 차재복 (Cha Jae Bok)
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"