본문 바로가기

CS

[CS] 공유메모리란 무엇일까? shared memory?

 

shared memory 구조

 

 

 

📝 공유메모리란? (shared memory)

- 프로세스 간에 공통으로 사용하는 공유 메모리 공간으로 프로세스 간 협력을 한다. 

- IPC(Inter-Process Communication)의 일종으로 프로세스간 통신시 사용한다.

 

 

운영체제에서 가상메모리공간은 독립적이다.

모든 프로세스는 자신의 업무를 수행하기 위해 독립적인 메모리 공간을 가지게 된다.
예를들어 프로세스 A의 작업내용이 프로세스 B에 영향이 가면 안되기 때문이다.
프로세스를 침범해버릴 경우 운영체제는 프로세스를 논리규칙 위반에 따라 종료시킨다.

여러개의 프로세스가 특정 메모리 공간을 동시에 접근해야할 필요가 있을때
공유 메모리라는 IPC 기법을 사용한다.
공유메모리는 이러한 작업을 위한 효울적인 방법을 제공한다.

 

📌 특징

1. 하나의 메모리를 공유해서 접근하므로 불필요한 오버헤드가 발생하지 않으며 데이터의 이용이 빠르다.

 

2. 하나의 프로세스가 메모리 접근중에 있을때, 다른 프로세스가 동시 접근할 경우 데이터가 훼손될 수 있으므로,
한번에 하나의 프로세스만 접근이 가능하도록 보증이 되어야한다.

 

3.  단순히 공유 메모리를 point 함으로써 프로세스에서 사용되는 메모리가 증가되지는 않는다. 

 

4. 반드시 같은 기계에서만 사용이 가능하다.

 

5. 메모리를 공유하기때문에 IPC 기법중 처리속도가 가장 빠르다.

 

 

 

 


참고링크 : https://www.youtube.com/watch?v=yWUGdttpgkc