프로세스 간 통신 (Inter-Process Communication, IPC)이란 프로세스 들 사이에 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻한다. - wiki 백과 -
메모리 상에는 여러 가지 프로세스가 존재할 수 있다. 그렇기 때문에 우리는 크롬으로 유튜브를 보면서 게임을 할 수 있다.
프로세스는 기본적으로 고유의 메모리 영역을 가진다. 하드디스크에 있는 프로그램(이미지)이 메모리에 적재되면 OS로부터 메모리 공간을 할당받는데 이 영역은 프로세스의 고유의 영역으로 다른 프로세스가 침범할 수 없다.
하지만, 프로세스 간에 데이터가 공유돼야 하는 상황이 발생할 수 있는데, 이를 가능케하는 것이 IPC이다.
IPC에는 크게 2가지 방법이 있다.
1. 한 프로세스에서 다른 프로세스로 데이터를 전송하는 방법
2. 공유할 수 있는 메모리 영역을 할당해 여러 개의 프로세스가 접근하는 방법
다음 장부터 자세히 설명하겠지만 2번 방법의 경우, 여러 프로세스가 동시에 같은 메모리에 접근하여 작업을 하게 되면 결과 값이 모순되는 현상이 발생할 수 있다. 따라서 동기화(Synchronization) 작업이 병행되어야 한다.