본문 바로가기
컴퓨터공학기초 개념/운영체제

21. 프로세스 - IPC기법(공유메모리)

by devraphy 2021. 4. 26.

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)

 

댓글