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. 소켓  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"