IPC란 무엇인가?

devdo·2022년 1월 1일
0

운영체제

목록 보기
1/3

프로세스 간 통신 (inter process communication : IPC)이란?

프로세스 간 통신이란 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다.
-- 위티백과


IPC의 종류

PIPE(파이프)

  • File 이용
  • 익명의 PIPE를 통해서 동일한 PPID를 가진 프로세스들 간에 단방향 통신을 지원
  • 생성된 PIPE에 대하여 Write 또는 Read만 가능하다.

Message Queue(메시지 큐)

  • 메모리를 사용한 PIPE이다.
  • 구조체 기반(큐: FIFO 구조)으로 통신을 한다.

Shared Memory(공유메모리, 전연변수)

  • 시스템 상의 공유 메모리를 통해 통신한다.
  • 메모리 길이 고정

Memory Map

  • 파일을 프로세스의 메모리에 일정 부분 맵핑 키셔 사용한다.
  • 파일로 대용량 데이터를 공유 할 때 사용한다.

Socket

  • 네트워크 소켓통신을 시용한 데이터 공유

  • 네트워크 소켓을 이용하여 Client - Server 구조로 데이터 통신

  • 운영체제 내에서 <sys/socket.h>라는 헤더를 이용하여 사용할 수 있으며, 같은 도메인에서의 경우에서 연결 될 수 있다.

  • 소켓을 사용하기 위해서는 생성해주고, 이름을 지정해주어야 합니다. 또한 domain과 type, Protocol을 지정해 주어야 한다.

  • 서버 단에서는 bind, listen, accept를 해주어 소켓 연결을 위한 준비를 해주어야 하고 , 클라이언트 단에서는 connect를 통해 서버에 요청하며, 연결이 수립 된 이후에는 Socket을 send함으로써 데이터를 주고 받게 된다. 연결이 끝난 후에는 반드시 Socket 을 close()해주어야 한다.

  • 후에 Http 웹통신도 이 소켓 통신의 기반이다.


RPC(Remote Precsor call)

Http3 랑 관련? TCP 역할 웹소켓까지 내용이 연결...


참고

https://doitnow-man.tistory.com/110
https://jwprogramming.tistory.com/54

profile
배운 것을 기록합니다.

0개의 댓글