[운영체제] IPC 기법- Pipe, 메세지 큐, 공유메모리

Peter·2021년 10월 4일
0

운영체제

목록 보기
16/22

파이프


출처: https://blog.naver.com/akj61300/80130589983

  • 기본 파이프는 단방향 통신
  • fork()로 자식 프로세스 만들었을 때, 부모와 자식간의 통신

메세지 큐


출처:https://heo-seongil.tistory.com/73

  • A프로세스
msqid = msgget(key, msgflg)
msgsnd(msqid, &sbuf, buf_length, IPC_NOWAIT)
  • B프로세스
msqid = msgget(key, msgflg)
msgrcv(msqid, &sbuf, MSGZ, 1, 0)
  • key를 같게해 큐값을 맞추고
  • msgsnd로 보내고
  • msgrcv로 받음

파이프와 메세지큐 비교

  • 메세지 큐는 어느 프로세스간에라도 데이터 송수신 가능
  • 파이프는 부모 자식 관계에서만 사용 가능
  • FIFO구조
  • 메세지 큐는 양방향 송수신 가능
  • 파이프는 단방향 통신만 가능

파이프, 메세지큐는 커널 공간의 메모리 사용

공유 메모리(shared memory)

  • 노골적으로 커널공간에 메모리 공간 만들고 변수처럼 사용
  • 변수처럼 사용하기 때문에 FIFO방식이 아님
  • 생성된 메모리의 key를 가지고 여러 프로세스가 접근 가능함
profile
컴퓨터가 좋아

0개의 댓글