hackershcool level10

공유메모리(shared memory)

기본적으로는 프로세스에서 사용되는 메모리 영역은 해당 프로세스만이 사용.
하지만 때때로 여러개의 프로세스가 특정 메모리영역을 사용할 때 있음. 이때 공유 메모리 씀
(System V IPC 설비 중의 하나)

프로세스는 자신의 업무를 수행하기 위해 필요한 자료를 저장하기 위한 메모리 공간을 가질 때 이 메모리 공간에 CPU에 의해 수행되는 명령어들, 프로그램 시작시 정의되고 초기화되는 data, 프로그램 시작시 정의되었지만 초기화 되지 않은 data, 함수호출에 필요한 정보, 동적할당이 이루어지는 data 등이 들어가게 된다.

프로세스 시작 -> 커널로부터 메모리 공간을 요구하여 할당 받음(이 공간에는 기본적으로 메모리를 요청한 프로세스만 접근가능)

이 때 이 메모리 공간을 동시해 접근해야 할 때 필요한 것이 공유메모리

하나의 프로세스가 메모리에 접근 중일 때 또 다른 메모리가 접근하는 경우 data의 훼손 가능성이 있다. 
-> 한번에 하나의 프로세스가 메모리에 접근하고 있다는 걸 보증해야 될 필요성
-> Unix에서는 Semaphore라는 공유자원을 제어할 수 있는 도구를 제공


할당

공유메모리의 생성 요청 : 최초 공유메모리 영역을 만드는 프로세스가 커널에 의해 공유



댓글

가장 많이 본 글