공유 메모리

컴퓨터 환경에서 여러 프로그램이 동시에 접근할 수 있는 메모리

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

3개의 프로세서의 공유 메모리 시스템 그림

하드웨어에서

편집
 
HSA는 특수한 케이스의 메모리 공유를 정의하는데, 여기에서 CPU의 MMU와 GPU의 IOMMU는 동일한 형태의 페이징이 가능한 가상 주소 공간을 보유하고 있다.

컴퓨터 하드웨어에서 공유 메모리는 멀티프로세서 컴퓨터 시스템에서 각기 다른 여러 중앙 처리 장치(CPU)가 접근할 수 있는, 일반적으로 큰 랜덤 액세스 메모리(RAM) 블록을 가리킨다.

공유 메모리는 다음을 사용할 수 있다:[1]

소프트웨어에서

편집

컴퓨터 소프트웨어에서 공유 메모리는 다음 중 하나이다

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

같이 보기

편집

각주

편집
  1. El-Rewini, Hesham; Abd-El-Barr, Mostafa (2005). 《Advanced Computer Architecture and Parallel Processing》. Wiley-Interscience. 77–80쪽. ISBN 978-0-471-46740-3. 

외부 링크

편집