IPC(Inter Process Communication)

김민성·2023년 3월 4일
0

Operating System

목록 보기
7/7
post-thumbnail

: 프로세스 간에 통신하여 상호 커뮤니케이션 하는 기법

→ 프로세스는 독립적으로 실행

→ 다른 프로세스에게 영향을 받지 않음 (스레드는 프로세스 안에서 자원을 공유하므로 영향을 받음)

이런 독립적 구조를 가진 프로세스 간의 통신을 해야 하는 상황에서 IPC 통신으로 해결

프로세스는 커널이 제공하는 IPC설비를 통해 통신이 가능함

→ 커널 : 운영체제의 핵심적 부분으로, 다른 모든 부분에 여러 기본 서비스를 제공해줌

통신이 필요한 이유

: 성능을 높이기 위해

로직을 한 프로세스만 수행하는 대신 여러 프로세스가 수행해서 빠른 성능 기대

→ 로직을 수행하기 위해서 데이터 공유가 필요함

IPC 종류

익명 PIPE


: 파이프는 두 프로세스 연결 / 하나는 데이터를 write, 하나는 read만 가능함

: 통신할 프로세스를 명확히 아는 경우 (ex.부모-자식 프로세스 통신)

  • 한 쪽 방향으로만 통신이 가능한 반이중 통신
  • 양 쪽 모두 송/수신을 하고 싶으면 파이프 2개

장단점

  • 장점 : 매우 간단 / 단순한 데이터 흐름에 효과적
  • 단점 : 전이중 통신을 위해 파이프 2개 생성 시 구현 복잡

Named PIPE (FIFO)


: 전혀 모르는 상태의 프로세스들 사이 통신에 사용

  • 익명 파이프의 확장된 형태로 부모 프로세스와 무관한 프로세스와도 통신 가능 → 통신을 위해 이름 있는 파일을 사용
  • 읽기/쓰기 동시 불가능, 전이중 통신을 위해 파이프 2개 생성해야 함

Message Queue

업로드중..

  • 입출력 방식은 Named 파이프와 동일 (FIFO)
  • 메세지 큐는 파이프처럼 데이터 흐름이 아닌 메모리 공간
  • 사용할 데이터에 번호를 붙이면서 여러 프로세스가 동시에 데이터를 쉽게 다룸

공유 메모리

: 파이프, 메세지 큐가 통신을 이용한 설비라면 공유 메모리는 데이터 자체 공유 지원 설비

0개의 댓글