Just do IT
article thumbnail

다양한 IPC 기법

   * IPC : Inter Process Communication

   1. file 사용

   2. Message Queue

   3. Shared Memory

   4. Pipe

   5. Signal

   6. Semaphore

   7. Socket

 

파이프 (pipe)

   * 기본 파이프는 단방향 통신

   * fork() 자식 프로세스 만들었을 , 부모와 자식간의 통신

 

메시지 (message queue)

   * 큐니까 기본은 FIFO(First In First Out) 정책으로 데이터 전송한다

참고 : ftok()

   * ftok() : 생성을 위한 함수

      - path 경로명의 inode 값과 숫자값(id) 기반으로 생성

      - 경로 삭제 재생성시 inode 값이 달라지므로, 이전과는 다른 키값이 리턴

 

파이프와 메시지

   * message queue 부모/자식이 아니라, 어느 프로세스간에라도 데이터 송수신이 가능

   * 먼저 넣은 데이터가 먼저 읽혀진다

   * pipe VS message queue

      - 부모/자식 프로세스간 only or not

      - 단방향만 가능 or 양방향 가능

 

IPC 기법과 커널 모드

   * pipe, message queue 모두 kernel 공간의 메모리를 사용합니다

 

공유 메모리 (shared memory)

   * 노골적으로 kernel space 메모리 공간을 만들고, 해당 공간을 변수처럼 쓰는 방식

   * message queue 처럼 FIFO 방식이 아니라, 해당 메모리 주소를 마치 변수처럼 접근하는 방식

   * 공유메모리 key 가지고, 여러 프로세스가 접근 가능

   1. 공유 메모 생성
   2. 공유 메모리 연결
   3. 공유 메모리 해제
   4. 공유 메모리에서 읽기
   5. 공유 메모리에 쓰기

 정리

   * 주요 IPC 기법

      - pipe

      - message queue

      - shared memory

   * 모두 커널 공간을 활용해서 프로세스간 데이터 공유

 

출처 : 제로베이스

profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!