IPC

이하연·2021년 8월 15일
0

[OS] 운영체제

목록 보기
5/12

프로세스 종류

운영체제 내에서 실행되는 프로세스들은 독립적이거나 협력적인 프로세스들로 나눌 수 있습니다.

독립적인 프로세스

  • 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받지 않는 프로세스

협력적인 프로세스

  • 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받는 프로세스
  • IPC가 반드시 필요

IPC

  • IPC : inter process communication ( 프로세스 간 통신 )
  • IPC란, 협력적인 프로세스 사이에서 서로 데이터를 주고 받는 행위 또는 그에 대한 방법이나 경로를 의미합니다.

IPC 종류

  1. 공유 메모리 모델 Shared Memory

    • 두 개 이상의 프로세스들이 주소 공간의 일부를 공유하며, 공유한 메모리 영역에 읽기, 쓰기를 통해서 통신을 수행합니다. (Read,Write) - 양방향
    • 공유 메모리가 설정되면, 그 이후 통신은 커널(OS)의 관여 없이 진행이 가능
    • 장점
      • 따라서, 메모리를 직접 사용하여 IPC 속도가 빠름
      • 프로그램 레벨에서 통신 기능을 제공하여 자유로운 통신이 가능
    • 단점
      • 구현하기 어려움
      • Message Passing보다 뛰어나지만 동기화 문제가 발생할 수 있음
        • 같은 메모리 공간에 동시에 접근 해서, 동시에 수정할 경우가 생길 수 있겠지? 이런 현상을 방지하기 위해서 Shared Memory는 Synchromize(동기화)를 잘 해 줘야해. 이런 충돌이 안일어날 수 있도록 순서를 잘 정해주는거지
  2. 메시지 전달 모델 Message Passing - 소켓 포함

    • 커널을 경유하여 고정길이 메시지, 가변길이 메시지를 송,수신자끼리 주고 받으며, 커널에서는 데이터를 버퍼링합니다. (Send, Receive) - 단방향

    • 커널의 message queue에 한 프로세스가 보내면, 다른 프로세는 받는 형태

    • 프로세스간 메모리 공유 없이 동작이 가능

    • 장점

      • 구현하기에 간단하여 사용하기 편리
      • send,receive와 같은 연산에 대해서 커널이 동기화를 기본적으로 제공하기 때문에, 메시지 전달 모델은 동기화에 대한 고려없이 사용이 가능
    • 단점

      • 커널을 경유하므로 속도가 느리다.
      • 커널에 의해 작동되기 때문에 오버헤드가 존재합니다.
    • 메시지 전달과 공유 메시지 전달의 차이점과 각각의 장점에 대해서 설명해주세요.

    • 메시지 전달에서는 동기화가 필요 없으셨다 하셨는데 왜 필요가 없는지.

0개의 댓글