shared memory – 공유 메모리
컴퓨터 프로그래밍에서, 공유 메모리는 일반 운영체계 서비스가 사용하는 읽기/쓰기 방식에 의한 것보다 프로그램 프로세스들이 데이터를 더 빠르게 교환할 수 있는 방법이다. 예를 들면, 클라이언트 프로세서가 전달한 데이터를, 서버 프로세스가 수정 후 다시 클라이언트에게 되돌려주는 경우를 생각해 보자. 대개, 이런 경우에는 클라이언트가 운영체계의 버퍼를 사용하여 출력 파일에 기록하면, 서버는 버퍼로부터 그 파일을 자신의 작업 공간 내로 읽어들이게 된다. 그러나, 공유 메모리의 지정된 공간을 사용하면, 시스템 서비스를 사용하지 않고서도 데이터가 양쪽 프로세스에 의해 직접 액세스될 수 있도록 만들어질 수 있다. 데이터를 공유 메모리에 집어넣기 위해, 클라이언트는 세마포어 값을 확인한 후에 공유 메모리에 액세스하여 데이터를 기록하며, 그 다음에 대기하고 있는 데이터가 있다는 사실을 서버에게 알려주기 위해 세마포어 값을 재설정한다 (서버는 공유 메모리에 입력 데이터가 있는지를 알기 위하여 세마포어 값을 주기적으로 확인한다). 차례대로, 서버 프로세스는 공유 메모리 공간에 데이터를 다시 기록하고, 세마포어를 사용하여 데이터가 읽혀질 준비가 되었다는 사실을 알린다. 이외에 프로세스간 통신의 다른 형태에는 메시지 큐잉, 세마포어, 및 소켓 등이 있다.