[CS스터디]IPC

지영·2023년 5월 29일
0

CS

목록 보기
11/77
post-thumbnail

다른 프로세스에게 영향을 받지 않는 프로세스! 독립적으로 실행되는 프로세스는 어떻게 서로 통신할까?

IPC란?

: Inter Process Communication, 프로세스 간 통신

✔️ 독립 실행 객체인 프로세스가 서로 통신하기 위해서는 **커널 영역**에서 IPC라는 내부 프로세스 간 통신을 제공함.

IPC 종류

1. PIPE

  • 한 쪽 방향으로만 통신이 가능한 반이중 통신
  • 파이프가 두 개의 프로세스를 연결하는데, 하나는 데이터 READ, 나머지 하나는 데이터 WRITE만 가능함.
  • 따라서 양쪽에서 모두 송/수신을 하고자 하면 2개의 파이프가 필요함
  • ✨ 장점
    • 단순한 데이터 흐름일 때 유용
    • 매우 간단하게 사용 가능
  • 🧐 단점
    • 같은 부모 프로세스를 가진 프로세스들 사이에서만 통신이 가능
    • 전이중 통신을 위해서는 2개의 파이프를 만들어야 함

Named PIPE : 부모 프로세스가 다른 프로세스들 사이에서도 통신이 가능

2. 메시지 큐

  • 생산자가 메시지를 큐(버퍼)에 넣어두면 사용자가 메시지를 가져와 처리하는 방식
  • 각 메시지는 하나의 사용자에 의해 한번만 처리가 가능하다 -> 일대일 통신
  • 메시지 큐는 사용자가 언제 메시지를 가져가서 처리할지는 보장하지 않음 -> 비동기적 특성
  • 따라서 실패하면 치명적인 핵심 작어보다는 어플리케이션의 부가적인 기능에 적합
  • 에시 ) 웹 사이트의 비밀번호를 잊어버려서 이메일을 통해 임시 비밀번호 받기
  • ✨ 장점
    • 큐에 메시지를 넣어두기 때문에 나중에 처리가 가능 -> 동기화 방식에서 발생할 수 있는 메시지 병목 현상이 없음
    • 생산자 서비스와 사용자 서비스가 독립적 -> 결합도가 낮아 확장성, 탄력성이 좋음
  • 🧐 단점
    • 큐가 가득 차서 더는 저장을 하지 못할 경우, 메시지를 다른 곳에 보존하거나 버림
    • 즉, 메시지 큐에 문제가 생기면 전체가 영향을 받음

3. 공유 메모리

  • 프로세스 간 메모리 영역을 공유해서 사용할 수 있도록 한 방식
  • 공유 메모리 할당을 커널에 요청하면 커널이 해당 프로세스에 메모리 공간을 할당함
  • 이 후에 어떤 프로세스건 해당 메모리 영역에 접근이 가능함
  • ✨ 장점
    • 중개자(큐) 없이 곧바로 메모리에 접근하여 통신이 가능. IPC 중 가장 빠름
  • 🧐 단점
    • 여러 프로세스가 동시에 공유메모리에 접근하면 문제가 발생하기 때문에 별도의 동기화 과정이 필요함.
profile
꾸준함의 힘을 아는 개발자가 목표입니다 📍

0개의 댓글