[CS, TIL] 230920 프로세스 간 통신

CountryGirl·2023년 9월 20일
0

TIL

목록 보기
69/80

🌐 프로세스 간 통신 (Inter-Process Communication, IPC)

: 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로



📌 종류

1. 공유 메모리 (Shared Memory)

: 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리

기본적으로 각 프로세스의 메모리를 다른 프로세스가 접근할 수 없지만 공유 메모리를 통해 여러 프로세스가 하나의 메모리를 공유할 수 있다.

특징

  • 대량의 정보를 다수의 프로세스에게 배포가능
  • 빠르고 효율적
  • 공유 메모리 공간에 대한 접근 제어 필요
  • 프로세스간 Read, Write 모두 필요할 때 사용

2. 파이프 (Pipe)

: 통신을 위한 메모리공간(버퍼)을 생성하여 프로세스가 데이터를 주고받을 수 있도록 함

2.1 익명 파이프 (Unamed Pipe)

  • 통신할 프로세스를 명확하게 알 수 있는 경우 사용 : 부모 - 자식 OR 형제 프로세스 간 사용 ➡️ 외부 프로세스는 사용할 수 X

두 개의 프로세스를 연결하지만 하나의 프로세스는 데이터를 쓰기만 가능, 다른 하나의 프로세스는 데이터를 읽기만 가능 : 단방향

만약, 두 개의 프로세스를 양방향으로 통신하기 위해선 2개의 파이프가 필요!!
100개의 프로세스가 양방향으로 통신하기 위해선 99 * 100 = 9900 개의 파이프가 필요하다...

2.2 명명된 파이프 (Named Pipe)

  • 통신할 프로세스를 전혀 모르는 모르는 경우 사용 : 부모 프로세스와 무관한 다른 프로세스도 통신 가능 ➡️ 외부 프로세스 사용할 수 O

  • FIFO 라는 특수 파일을 이용해 통신을 한다.


3. 소켓 (Socket)

: 프로세스 간 데이터를 교환하기 위한 데이터 통신 엔드 포인트

  • 프로세스가 네트워크 또는 로컬 컴퓨터 내에서 데이터를 전송하고 수신할 수 있도록 하는 커뮤니케이션 엔드포인트로 작동

  • 데이터 교환을 위해 양쪽 PC에서 각각 임의의 포트를 정하고 해당 포트 간의 대화를 통해 데이터를 주고 받는 방식

  • 각각 PC의 PORT 를 담당하는 소켓은 각각 하나의 프로세스

  • 각각 PC 에서 프로세스를 통해 다른 PC PORT 에 연결하라는 명령을 보내면 두 프로세스는 서로 확인 과정을 거쳐 연결을 진행하고 연결 후 1 대 1로 데이터를 주고 받는 방식

  • 양방향 통신


4. 메시지 큐 (Mesage Queue)

  • 메시지를 큐(Queue) 데이터 구조 형태로 관리하는 것
  • 입출력 방식은 명명된 파이프와 같다!
    • 다른점: 파이프처럼 데이터 흐름이 아닌 메모리 공간 / FIFO 와 달리 다수의 프로세스 간 메시지를 전달할 수 O



✅ REFERENCE

wikipedia : 프로세스 간 통신
망나니 개발자 : [IPC] 내부 프로세스간의 통신
DEVSIA : 프로세스간 통신 / 백엔드 로드맵

profile
💻🌾시골소녀의 엉망징창 개발 성장일지🌾💻 (2023.05.23 ~)

0개의 댓글