IPC기법 - 02 실습2

2021. 3. 10. 16:39Computer(인강)/시스템 프로그래밍

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 IPC기법 실습 두번째 시간이지요

바로 시작해보겠습니다

 

 

 

지난 시간에는 pipe, message queue가 프로세스A와 프로세스B가 커널 공간을 공유한다고 배웠었습니다.

 

하나의 명령어를 먼저 소개드리겠습니다. 

ipcs라고 하는 명령어 인데요, 이 명령어를 터미널에 입력하면

현재 커널공간에 생성된 message queue,

이번시간에 배울 공유메모리,

운영체제에서 배웠던 Semaphore 정보를 확인할 수 있습니다.

 

해당 메시지큐를 삭제한다는 명령어

 

이렇게 하면 메시지큐에 생성되어있는 메시지가 없는 모습을 확인하실 수 있습니다

msgctl이라는 명령은 

해당 메시지큐를 아예 커널 영역에서 삭제하는 명령입니다. 참고로만 알아두세요~

 

 

 

공유메모리(shared memory)

1. 노골적으로 kernel space에 공유공간을 만들고해당 공간을 변수처럼 쓰는 방식

2. message queue처럼 FIFO방식이 아니라 해당 메모리 주소를 마치 변수처럼 접근하는 방식

3. 공유메모리 key를 가지고, 여러 프로세스가 접근 가능

 

 

 

공유 메모리 코드 예제 

1. 공유 메모리 생성

 

2. 공유메모리 연결

3. 공유메모리 해제

 

 

공유 메모리 읽기/쓰기

4. 공유메모리에서 읽기

5. 공유메모리에 쓰기

 

참고 : shmctl()

 

공유메모리 아예 삭제

 

커널 영역에 있는 공유메모리 안에는 들어가있지 않게됩니다. shmctl로 삭제를 했기때문이죠.

 

728x90
반응형