IPC(Inter Process Communication)

숭이·2021년 5월 19일
0

OS

목록 보기
6/11

IPC(Inter Process Communication)

  • 프로세스끼리 System Resource를 공유하며 효율성을 극대화 시키기 위한 과정
  • 기본적으로 프로세스는 자신에게 할당된 메모리 내의 정보만 접근가능
  • 커널이 제공하는 IPC 설비를 통해 프로세스간 통신이 가능하게 해주는 것이 목표!!

PIPE

  • 여러개의 프로세스가 공통으로 사용하는 임시공간
    -> 통신을 위한 메모리공간을 생성하여 프로세스가 데이터를 주고받게끔 해줌
  • 외부 프로세스와 통신이 가능하지만 단방향 통신, 정해진 프로세스간 통신만 가능하므로 자원의 낭비가 매우 심하다.

Message Passing

  • 기존에 형성되어 있던 커널을 거쳐서 message를 전달하는 방식
    -> user level과 kernel level을 넘나드는 작업

    장점

    1. 커널이 기존에 형성되어 있기 때문에 쉽게 구현할 수 있음
    2. 같은 파일을 전달하는데 있어서 conflict가 발생하지 않는다

    단점

    1. 커널에 따로 저장공간이 필요하고 직접 전달방식에 비해 속도가 느리다
    2. 매번 시스템콜이 호출되고 그로 인한 오버헤드가 발생한다.

**커널 : 운영체제의 핵심으로서 운영체제의 다른 모든 부분에 여러가지 기본적인 서비스를 제공하는 부분

Shared Memory

  • 프로세스 사이에 공유되는 공간이 존재하여 메세지를 사용하는 방식

    장점

    1. 커널을 통하지 않아 시스템콜을 사용할 피룡가 없고 커널에 대한 의존성이 낮다.
    2. 속도가 빠르고 편의성이 높다.
    3. 현존하는 IPC 기법 중 가장 속도가 빠르다.

    단점

    1. 생성공간에 대한 제한이 존재한다.
    2. 프로세스간 동기화가 필요하다
      -> Shared Memory에 없는데 사용하려 하거나 가득찬 상태에서 저장하려 하는 경우

0개의 댓글