2021. 3. 10. 16:39ㆍComputer(인강)/시스템 프로그래밍
안녕하세요 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로 삭제를 했기때문이죠.
'Computer(인강) > 시스템 프로그래밍' 카테고리의 다른 글
쉘 스크립트 - 01 이해와 변수 (0) | 2021.03.10 |
---|---|
시그널 동작 매커니즘 01 사용법 이해 (0) | 2021.03.10 |
IPC기법 실습 - 1 (0) | 2021.03.09 |
프로세스 스케쥴링 관련(참고) (0) | 2021.03.09 |
프로세스 생성과 종료 총정리 및 wait 시스템콜 상세 (0) | 2021.03.09 |