프로세스의 통신 방법

갱두·2021년 10월 20일
0

📚 운영체제

목록 보기
7/14

IPC(Inter Process Communication)

프로세스들 간의 의사소통하는 것을 의미함.

1. 공유 메모리 (Shared Memory)

프로세스 간 메모리 영역을 공유해서 사용할 수 있도록 허용함

  • 프로세스간 Read, Write를 모두 필요로 할 때 사용함
  • 대량의 정보를 다수의 프로세스에게 배포 가능함
  • 바로 메모리에 접근할 수 있기 때문에 모든 IPC중에 가장 빠르게 작동

2. 파이프

통신을 위한 메모리 공간을 생성하여 프로세스가 데이터를 주고 받게끔 한다.

✔️ 익명 파이프

  • 일반적인 파이프
  • 통신할 프로세스가 명확하게 알 수 있는 경우에 사용함
    • 외부 프로세스에서 사용할 수 없음
  • 파이프는 두 개의 프로세스를 연결하고, 하나의 프로세스는 데이터를 쓰기만, 다른 하나는 데이터를 읽기만 할 수 있음 ( = 반이중 통신 )
  • 송/수신을 모두 하기 위해서는 두 개의 파이프를 만들어야 가능함 ➡️ 구현이 복잡해짐

✔️ 네임드 파이프

  • 전혀 모르는 상태의 프로세스들 사이의 통신에 이용
  • 외부 프로세스와 통신 가능
  • 반이중 통신 ➡️ 전이중 통신을 위해서는 익명 파이프와 같이 2개 만들어야 함

3. 소켓

네트워크 소켓 통신을 통해 데이터를 공유함
데이터 교환을 위해 양쪽 PC에서 각각 임의의 포트를 정하고 해당 포트 간의 대화를 통해 데이터를 주고 받는 방식임.
즉, 1대1로 데이터를 주고받는 방식임

클라이언트와 서버가 소켓을 통해서 통신하는 구조로 원격에서 프로세스 간 데이터를 공유할 때 사용함. 전이중 통신이 가능함.

4. 메세지 큐

입출력 방식은 Named 파이프와 동일함.
다른 점은 메세지 큐는 파이프처럼 데이터의 흐름이 아니라 메모리 공간 임. 파이프니 피포와는 달리 다수의 프로세스 간 메세지를 전달할 수 있음

  • 사용할 데이터에 번호를 붙이면서 여러 프로세스가 동시에 데이터를 쉽게 다룰 수 있다.

5. RPC

RPC 방법은 분산 네트워크 망에서 많이 사용되는 방식임.
별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게하는 프로세스 간 통신 기술임. 즉, RPC를 이용하면 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 동일한 코드를 이용할 수 있음

스텁을 통해서 자신의 디스크에 존재하는 것처럼 착각을 일으켜 사용하는 방식임

출처 : https://dar0m.tistory.com/233

profile
👩🏻‍💻🔥

0개의 댓글