본문 바로가기
Programming/General

[General] 공유메모리에 대한 정의 및 사용법

by MVP 2022. 4. 26.

1. 공유 메모리에 대한 정의

공유 메모리(shared Memory)는 멀티 프로세스 환경에서 여러 프로세스가 동시에 접근할 수 있는 메모리이다. 이 공유 메모리는 여러 프로세스가 동시에 접근 할 수 있으므로 한 프로세스에서 메모리 공간의 내용을 변경하면 다른 프로세스가 포인터로 해당 메모리에 접근하여 데이터를 취득 혹은 변경할 수 있게 되므로 프로세스간 통신이 이루어진다고 볼 수 있다.

 

2. 공유 메모리 사용법

공유 메모리의 생성은 최초로 공유 메모리 공간을 만들고자 하는 프로세스가 커널에 공유 메모리 공간 할당을 요청함으로써 이루어지고 이로 인해 만들어진 공유 메모리는 커널이 관리한다. 

공유 메모리는 PC를 재부팅하거나 직접 삭제하지 않는 한, 공유 메모리를 사용하는 모든 프로세스가 종료되었다고 하더라도 공간을 계속 유지하게 된다.

주의해야 할점은 공유 메모리를 구현하는 방식은 운영체제마다 다른데, Windows는 Memory Mapping 방식, Linux 또는 Unix는 shm 함수를 이용하여 구현하므로 사용하는 운영체제에 따라 달리 사용해야 한다.

 

3. 공유 메모리 예제 Windows

명명된 공유 메모리 만들기 - Win32 apps | Microsoft Docs

 

명명된 공유 메모리 만들기 - Win32 apps

데이터를 공유하기 위해 여러 프로세스에서 시스템 페이징 파일이 저장하는 메모리 매핑된 파일을 사용할 수 있습니다.

docs.microsoft.com

 

4. 공유 메모리 예제 Linux

Shared Memory 정리 및 예제 :: 코딩초보의 블로그 (tistory.com)

 

Shared Memory 정리 및 예제

공유 메모리는 IPC(Inter-Process Communication)의 한 가지 방법으로 프로세스간 통신이 필요할 경우 사용합니다. 공유 메모리를 통한 통신은 둘 이상의 프로세스가 공통 메모리에 액세스

coding-chobo.tistory.com