프로세스 간 통신(Inter-Process Communication, IPC)
: 프로세스들이 서로 데이터를 주고받으며 상호작용하는 방식
- 프로세스는 독립적으로 실행되지만, 때때로 다른 프로세스와 데이터를 주고 받으며 통신하는 경우도 있음
- 통신은 한 컴퓨터 내의 다른 프로세스와 할 수도 있고, 네트워크로 연결된 다른 프로세스와 할 수도 있음
프로세스 간 통신의 종류
1. 파일과 파이프를 이용하는 방법
: 한 컴퓨터 내에서 프로세스 간 통신을 하는 방법
- 파일을 이용하는 방법
- 통신하려는 프로세스들이 하나의 파일을 공유하여 데이터를 읽고 쓰는 방법
- 한 프로세스가 파일에 데이터를 쓰고, 다른 프로세스가 파일을 읽는 방식
- 파이프를 이용하는 방법
- 운영체제가 생성한 파이프를 이용해 데이터를 읽고 쓰는 방법
- 일반적으로 부모-자식 프로세스 간에 자주 사용됨
2. 쓰레드를 이용한 방법
: 한 프로세스 내에서 쓰레드 간 통신을 하는 방법
- 쓰레드는 code, data, heap 영역을 공유하고, stack 영역만 고유하게 가짐
- data 영역에 있는 전역 변수나 heap 영역을 통해 쓰레드 간 통신이 가능
3. 네트워크를 이용한 방법
: 네트워크를 통해 다른 컴퓨터에 있는 프로세스와 통신하는 방법
- 소켓 통신
- 운영체제가 제공하는 네트워크 통신 인터페이스
- IP 주소와 포트를 통해 데이터를 송수신
- RPC (Remote Procedure Call, 원격 프로시저 호출)
- 다른 컴퓨터에 있는 함수를 호출하듯 실행하는 방식
- 내부적으로 네트워크를 통해 데이터가 전달됨