ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • # 08. IPC
    전공 지식/OS 2022. 10. 3. 19:32

     

    0. IPC란?

     

     

    - 프로세스는 독립적으로 실행된다. (독립적이라는 것은 다른 프로세스에게 영향을 받지 않는다는 말. )

    - 이런 독립적인 구조를 가진 프로세스들이 서로 통신을 해야하는 상황이 있을 것이고,

                                                                                                                     그것을 가능하도록 해주는 것이 IPC 통신이다. 

    - 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스 간 통신을 할 수 있다. 

     

     

     

    1. IPC 종류

     

    IPC 설비 종류도 여러가지가 있다. 필요에 따라 설비를 선택해서 사용하면 된다.

     

    1. 익명 PIPE
    2. Named PIPE(FIFO)
    3. Message Queue
    4. 공유 메모리
    5. 메모리 맵
    6. 소켓

     

     

    * (익명) PIPE

     

    익명의 PIPE를 통해서 동일한 PPID를 가진 프로세스들 간에 단방향 통신을 지원. 

    FIFO 구조

    부모 자식 프로세스 간에 주로 쓰임.

    생성된 파이프에 대해서는 WRITE 또는 READ 만 가능. 

    따라서 양방향 통신을 위해서는 READ용 하나, WRITE용 하나 총 두개 만들어야 한다. 

     

     

    * Named PIPE

     

    이름을 가진 PIPE를 통해 프로세스들 간에 단방향 통신

    서로 다른 프로세스들이 PIPE의 이름만 알면 통신이 가능하다. 

    FIFO 구조

    연관이 전혀 없는 프로세스간에 통신을 할 때 주로 쓰임. 

    생성된 파이프에 대해서는 WRITE 또는 READ 만 가능.

     

     

    * Message Queue

     

    메모리를 사용한 PIPE

    구조체 기반으로 통신을 한다. 

    FIFO 구조

    프로세스간 다양한 통신을 할 때 쓰임.

     

     

    *Shared Memory

     

    임계 시스템상의 공유 메모리를 통해 통신한다. 

    일정한 크기의 메모리를 프로세스간에 공유하는 구조. 

    프로세스간 READ, WRITE를 모두 필요로 할 때 쓰임.

    프로세스간에 메모리 크기가 동일해야 한다.

     

     

    * Memory Map

     

    파일을 프로세스의 메모리에 일정 부분 맵핑 시켜 사용한다. 

    파일로 대용량 데이터를 공유할 때 사용한다. 

     

     

    * Socket

     

    네트워크 소켓통신을 사용한 데이터 공유

    원격에서 프로세스 간 데이터를 공유할 때 사용.

     

     

     

    IPC 종류  PIPE Named PIPE  Mesage Queue  Shared Memory  Memory Map  Socket 
    사용
    시기
     부모 자식 간
    단 방향 통신 시
    다른 프로세스와 
    단 방향 통신 시 
    다른 프로세스와
     단 방향 통신 시  
    다른 프로세스와
    양 방향 통신 시 
    다른 프로세스와 
    양 방향 통신 시 
     다른 시스템간 
    양 방향 통신 시
     공유
    매개체
    파일  파일  메모리  메모리  파일+메모리  소켓 
    통신
    단위
     Stream Stream 구조체 구조체  페이지 Stream 
     통신
     방향
     단 방향 당 방향  단 방향  양 방향  양 방향  양 방향 
    통신 
    가능 
    범위
     동일 시스템 동일 시스템 동일 시스템  동일 시스템  동일 시스템  동일 + 외부 
    시스템 

     


    출처

    https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Operating%20System/IPC(Inter%20Process%20Communication).md

    '전공 지식 > OS' 카테고리의 다른 글

    # 04-2 스케줄러  (0) 2022.11.07
    # 07. Memory  (3) 2022.09.19
    # 05. 병행프로세스 동기화  (3) 2022.08.30
    # 04. CPU 스케줄링  (0) 2022.08.30
    # 03. Interrupt & System call  (6) 2022.08.15

    댓글

Designed by Tistory.