[OS] Inter Process Communication

윤정민·2023년 9월 28일
0

OperationSystem

목록 보기
8/16

1. IPC(Inter-Process Communication)

  • 독립적인 프로세스 간의 통신을 하는 것

2. 종류

2.1. 익명 PIPE

  • 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 읽기만 가능
  • 단방향 통신이 가능한 반이중 통신
  • 양방향 통신ㅇ르 원한다면 파이프를 2개 만들어야 함
  • 전이중 통신을 위해 파이프를 2개 만들 때 구현이 복잡해짐
  • 통신할 프로세스를 명확히 알 수 있는 경우에 사용

2.2. Named PIPE(FIFO)

  • 전혀 모르는 상태의 프로세스들 사이 통신에 사용
  • 읽기/쓰기 동시에 불가능하기 때문에 양방향 통신을 위해 2개를 만들어야 함

2.3. Message Queue

  • 입출력 방식은 Named 파이프와 통일
  • 데이터 흐름이 아닌 메모리 공간
  • 사용할 데이터에 번호를 붙이면서 여러 프로세스가 동시에 데이터를 쉽게 다룰 수 있음

2.4. 공유 메모리

  • 통신을 위한 설비가 아닌 데이터 자체를 공유하도록 지원하는 설비
  • 프로세스간 메모리 영역을 공유해서 사용할 수 있도록 허용
  • 프로세스가 공유메모리 할당을 커널에 요청하면, 커널은 해당 프로세스에 메모리 공간을 할당해주고 이후 모든 프로세스는 해당 메모리 영역에 접근할 수 있게 됨
  • 중개자 없이 곧바로 메모리에 접근가능해 IPC중 가장 빠르게 이동가능

2.5. 메모리 맵

  • 열린 파일을 메모리에 맵핑시켜서 공유함
    • 공유 매게체가 파일+메모리
  • 주로 대용량 데이터를 공유해야할 때 사용

2.6. 소켓

  • 네트워크 소캣 통신을 통해 데이터를 공유
  • 원격에서 프로세스간 데이터를 공유할 때 사용
profile
그냥 하자

0개의 댓글