컴퓨터공학기초 개념/운영체제
21. 프로세스 - IPC기법(공유메모리)
devraphy
2021. 4. 26. 09:00
1. 공유메모리(shared memory) 기법
- 커널 영역에 메모리 공간을 만들고, 해당 공간을 변수처럼 쓰는 방식
- message queue처럼 FIFO 방식이 아니라, 해당 메모리 주소를 마치 변수처럼 접근하는 방식
- 공유 메모리의 key를 가지고, 여러 프로세스가 접근 가능
2. 공유메모리 예제 코드
a) 공유메모리 생성 및 주소 얻기
shmid = shmget((key_t)1234, SIZE, IPC_CREAT|0666))
// shmid = shared memory id
shmaddr = shmat(shmid, (void *)0, 0)
// shmaddr = shared memory address
b) 공유 메모리에 쓰기
strcpy((char *)shmaddr, "Linux Programming")
c) 공유 메모리에서 읽기
printf("%s\n", (char *)shmaddr)