공유 메모리

공유 메모리(Shared memory)는 컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리이다. 과다한 복사를 피하거나 해당 프로그램 간 통신을 위해 고안되었다. 환경에 따라 프로그램은 하나의 프로세서에서나 여러 개의 프로세서에서 실행할 수 있다. (예를 들어 여러 개의 스레드 간에) 하나의 프로그램 안에서 통신을 위해 메모리를 사용하는 일은 일반적으로 공유 메모리로 부르지 않는다.

 하드웨어에서 
섬네일|HSA는 특수한 케이스의 메모리 공유를 정의하는데, 여기에서 CPU의 MMU와 GPU의 IOMMU는 동일한 형태의 페이징이 가능한 가상 주소 공간을 보유하고 있다.
컴퓨터 하드웨어에서 공유 메모리는 멀티프로세서 컴퓨터 시스템에서 각기 다른 여러 중앙 처리 장치(CPU)가 접근할 수 있는, 일반적으로 큰 랜덤 액세스 메모리(RAM) 블록을 가리킨다.

공유 메모리는 다음을 사용할 수 있다:
 균일 기억 접근 장치(UMA)
 불균일 기억 장치 접근(NUMA)
 캐시 전용 메모리 구조(COMA)

 소프트웨어에서 
컴퓨터 소프트웨어에서 공유 메모리는 다음 중 하나이다
 프로세스 간 통신(IPC) 방식
 가상 메모리 매핑을 사용하거나 프로그램의 명시적 지원이 있을 때 하나의 인스턴스에 대한 데이터 사본으로의 접근을 지시하면서 메모리 공간을 보존하는 방식

 같이 보기 
 분산 공유 메모리
 전역 변수

 각주 

 외부 링크 
  공유 메모리 인터페이스
  Shared Memory Introduction, Ch. 12 from book by Richard Stevens "UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications".

분류:프로세스 간 통신
분류:병행 컴퓨팅
분류:병렬 컴퓨팅