본문 바로가기

IT 용어 정리/Network

IPC 란

https://velog.io/@yanghl98/OS%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C-IPC%EB%9E%80

 

IPC(Inter Process Communication)

* 정의

- 프로세스 간 통신

- 프로세스들끼리 서로 데이터를 주고받는 행위 또는 그에 대한 방법을 뜻함.

 

* Process는 완전한 독립된 실행객체 이다.

- 장점 : 다른 Process의 영향을 받지 않음

- 단점 : 별도의 설비가 없이는 서로 통신 어려움

 

* Kernel

- Process간 통신을 원활하게 도와주기 위해, IPC(Inter Process Communication) 라는 내부 프로세스간 통신을 제공

- Process는 Kernel이 제공하는 IPC 설비를 이용해서 프로세스간 통신을 할 수 있게 됨.

 

IPC 종류

1. 메세지 전달 (Message Passing)

- Kernel이 제공하는 API를 이용하여 커널 공간을 통해 통신

- 메세지 큐(Message Queue)를 사용하여 송신 프로세스는 Que에 enqueue, 수신 프로세스는 Que에 dequeue하여 상호

  간  통신 함

- Message Que는 Kernel단에서 관리 됨.

 

>> 파이브 (쉘에서 사용하는 파이프)

>> 소켓(TCP/IP) : 로컬에서도 통신이 가능하며, 원격에서도 통신이 가능하다.

                              ex) IP : 127.0.0.1 일 경우, 로컬에서 패킷을 통해 프로세스끼리 통신하기도 한다.

 

2. 메모리 공유 (Shared Memory)

- Process끼리 특정 공통의 Memory 영역을 공유하며, 상호간 통신하는 방법

- 데이터 자체를 공유하도록 지원하며, 한 Process에서 변경한 Memory 공간의 내용을 다른 Process에서 접근할 수 있다.

- 공유 Memory는 Kernel에서 관리됨.