ABOUT ME

-

Graduate of Computer Engineering at Inha University

https://github.com/juwon0605

devprofessionalism@gmail.com
  • 6.IPC(Inter Process Communication)
    Computer Science/Operating System 2021. 8. 20. 00:31

      ∙IPC
       ∘독립적 구조를 가진 프로세스 간의 통신
                -커널이 제공하는 IPC 설비를 이용해 프로세스간 통신한다.
        ➀익명 PIPE
                -통신할 프로세스를 알 수 있는 경우에 사용
                -두 개의 프로세스를 연결하는데 하나는 데이터를 쓰기만 하고, 다른 하나는 읽기만 할 수 있다.
                -한쪽 방향으로만 통신이 가능한 반이중 통신
                -양쪽으로 모두 송/수신(전이중 통신) 하고 싶으면 2개의 파이프가 필요하다. 구현이 복잡하다.
                -단순한 데이터 흐름을 가질 때 사용하는 것이 효율적
        ➁Named PIPE
                -전혀 모르는 상태의 프로세스들 사이 통신에 사용
                -통신을 위해 이름있는 파일을 사용(Named)
                -익명 PIPE와 같은 반이중 통신
        ➂Message Queue
                -PIFE와 같은 데이터 흐름이 아닌 메모리 공간이다.
                -사용할 데이터에 번호를 붙이면서 여러 프로세스가 동시에 데이터를 쉽게 다룰 수 있다.
                -입출력 방식은 Named PIFE와 동일하다.
        ➃공유 메모리
                -PIFE, 메시지 큐가 통신을 이용한 설비라면, 공유 메모리는 데이터 자체를 공유하도록 
                  지원하는 설비이다.
                -공유 메모리는 독립된 프로세스간 메모리 영역을 공유(접근)해서 사용할 수 있도록 허용해준다.
                -중개자 없이 곧바로 메모리에 접근할 수 있어 IPC중에 가장 빠르다.
        ➄메모리 맵
                -열린 파일은 메모리에 맵핑시켜서 공유하는 방식이다.
                -주로 파일로 대용량 데이터를 공유해야 할 때 사용한다.
        ➅소켓
                -네트워크 소켓 통신을 통해 데이터를 공유한다.
                -클라이언트와 서버가 소켓을 통해 통신하는 구조로, 원격에서 프로세스 간 데이터를 공유
                  할 때 사용한다.

      ∙세마포어와 뮤텍스
       ∘데이터를 동기화하고 보호하기 위해 사용하는 기법

     

    출처

    링크

    'Computer Science > Operating System' 카테고리의 다른 글

    8.데드락(Dead Lock)  (0) 2021.08.22
    7.CPU Scheduling  (0) 2021.08.21
    5.PCB(Process Control Block), Context Switcing  (0) 2021.08.19
    4.시스템 콜(System Call)  (0) 2021.08.18
    3.인터럽트(Interrupt)  (0) 2021.08.17

    댓글

Designed by Tistory.