yoongrammer

프로세스 간 통신 (IPC : Interprocess Communication) 알아보기 본문

운영체제(OS)

프로세스 간 통신 (IPC : Interprocess Communication) 알아보기

yoongrammer 2021. 2. 1. 17:36
728x90

목차

     

    프로세스 간 통신 (IPC : Interprocess Communication) 알아보기


    프로세스가 동시에 실행될 때 두 가지 유형으로 나눌 수 있습니다.

    1. 독립적 프로세스(Independent process)
      • 다른 프로세스에게 영향을 주거나 받을 수 없는 프로세스입니다. 독립적 프로세스는 데이터를 공유하지 않습니다.
    2. 협력 프로세스(Cooperating process)
      • 다른 프로세스에게 영향을 주거나 받을 수 있는 프로세스입니다. 협력 프로세스는 데이터를 공유합니다.

     

    협력 프로세스는 다음과 같은 장점이 있습니다.

    정보 공유

    • 여러 사용자가 상태나 데이터를 주고받으며 정보를 공유할 수 있습니다.

    계산 속도 향상

    • 여러 프로세스가 동시에 작업을 병렬로 처리하기 때문에 속도를 높일 수 있습니다.

    모듈성

    • 시스템 기능을 별도의 프로세스 또는 스레드로 분할하여 모듈 식 방식으로 시스템을 구성할 수 있습니다.

    편의

    • 한 번에 여러 작업을 수행할 수 있습니다.

    협력을 하기 위해서는 프로세스 간 통신 메커니즘(IPC)이 필요합니다.

    프로세스 간 통신(IPC : Interprocess Communication)


    프로세스 간 통신(IPC : Interprocess Communication)은 협력 프로세스 사이에서 서로 데이터를 주고받는 방법을 말합니다.

     

    IPC에는 기본적인 두 가지 모델이 있습니다.

    1. Shared memory
    2. Message passing

    Shared memory


    서로 다른 프로세스 간에 일부 주소 공간을 공유하여 데이터를 주고받는 방식입니다.

     

    장점

    • 메모리를 직접 접근하기 때문에 message pasing 모델보다 속도가 빠릅니다.

    단점

    • 프로세스 A가 공유 메모리에 데이터 전달해도 프로세스 B가 그것을 알 수 없습니다. 그렇기 때문에 별도의 동기화 기술이 필요합니다.

    Message passing 


    커널 메모리 영역에 메시지 전달을 위한 채널을 만들어서 협력하는 프로세스들 사이에 메시지 형태로 정보를 Send/Receive 하는 방법입니다.

     

    장점

    • 커널에서 데이터의 주고받음을 컨트롤할 수 있어 별도의 동기화 로직이 없어도 됩니다.

    단점

    • 커널을 통해서 데이터 주고받기 때문에 shared memory 모델보다 느립니다.

    message passing에는 두 가지 방법이 있습니다.

     

    1. Direct Communication : 통신하려는 프로세스의 이름을 명시적으로 표시하여 메시지를 직접 전달하는 방식

    2. Indirect Communication : mailbox(또는 port)를 통해 메시지 간접 전달하는 방식

     

     

    728x90
    Comments