Backend/OS★

Shared Memory (공유 메모리)

petitCoding 2011. 6. 13. 13:33



공유 메모리는 프로세스들 간에 필요한 데이터를 빠르고 쉽게 공유하기 위해 만들어진 방법이다.
이 공유 메모리를 통해 직접적으로 데이터 엑세스가 가능하기 때문에 여러 개의 프로세스가 데이터를 주고 받을 때에 이 공유 메모리를 사용한다.


공유 메모리를 사용하기 위해 C라이브러리에서는 다음과 같은 함수들을 제공한다.

1. shmget() : shared memory get
synopsis -  int shmget(key_t key, size_t size, int shmflg);
공유 메모리 키 값을 인자로 사용하여 공유 메모리의 ID값을 리턴한다.

2. shmat() : shared memory attach
synopsis - void *shmat(int shmid, const void *shmaddr, int shmflg);
shmget() 등을 이용해 얻은 공유 메모리 ID를  인자로 사용하여 공유 메모리 주소 포인터를 리턴한다.

3. shmdt() : shared memory detach
synopsis - int shmdt(const void *shmaddr);
공유 메모리 주소 포인터를 인자로 사용하며 공유 메모리 주소를 해제한다.







반응형