프로세스가 다른 프로세스와 데이터를 주고받는 프로세스 간 통신에는 같은 컴퓨터 내에 있는 프로세스뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함된다.
(a) 프로세스 내부 데이터 통신: 하나의 프로세스 내에 2개 이상의 쓰레드가 존재하는 경우의 통신이다. 프로세스 내부의 쓰레드는 전역 변수나 파일을 사용하여 통신한다.
(b) 프로세스 간 데이터 통신: 같은 컴퓨터에 있는 여러 프로세스끼리 통신하는 경우로, 공용 파일 또는 운영체제가 제공하는 파이프를 사용하여 통신한다.
(c) 네트워크를 이용한 데이터 통신: 여러 컴퓨터가 네트워크로 연결되어 있을 때도 통신이 가능한데, 이 경우 프로세스는 소켓을 이용하여 데이터를 주고받는다.
대기가 있는 통신(동기화 통신): 동기화를 지원하는 통신 방식이다. 데이터를 받는 쪽은 데이터가 도착할 때까지 자동으로 대기 상태에 머물러 있다. 파이프, 소켓을 예로 들 수 있다.
대기가 없는 통신(비동기화 통신): 동기화를 지원하지 않는 통신 방식이다. 데이터를 받는 쪽은 바쁜 대기를 사용하여 데이터가 도착했는지 여부를 직접 확인한다. 전역 변수, 파일을 예로 들 수 있다.
프로세스 간에 데이터를 주고받는 것은 읽기와 쓰기연산으로 단순화 할 수 있다.
부모-자식 관계로 연결되어 있는 프로세스끼리는 전역 변수, 파일, 이름 없는 파이프 등을 이용하여 통신한다.
서로 독립적인 프로세스끼리는 이름 있는 파이프를 이용하여 통신한다.
또한 서로 다른 시스템에 있는 프로세스끼리는 소켓을 이용하여 통신한다.