프로세스끼리는 기본적으로 자원을 공유하지 않지만, 프로세스끼리도 충분히 자원을 공유하고 데이터를 주고 받을 수 있다. 이렇게 프로세스 간의 자원을 공유하고 데이터를 주고받는 것을 프로세스 간 통신(IPC)
이라고 한다.
프로세스들은 서로 공유하는 메모리 영역을 두어 데이터를 주고받을 수 있다. 이런 메모리 영역을 공유 메모리
라고 한다.
프로세스가 공유 메모리 할당을 커널에 요청하면 커널은 해당 프로세스에 메모리 공간을 할당 ->이후 다른 프로세스들은 해당 메모리 영역에 접근
프로세스간 읽기와 쓰기를 모두 필요로 할 때 사용
대량의 정보를 다수의 프로세스에세 배포 가능
중개자 없이 곧바로 메모리에 접근할 수 있기 때문에 모든 IPC중에서 가장 빠르게 작동
파이프
는 통신을 위한 메모리 공간(버퍼)를 생성하여 프로세스가 데이터를 주고 받게 한다.
반이중 통신
이라고 함)소켓
은 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점이다.
네트워크를 이용해 데이터를 송수신 하고 싶은 프로그램들은 소켓을 거쳐야 한다.