FTZ level 10
hint
+) 공유 메모리?
모든 프로세스는 자신의 업무를 수행하기 위해 필요한 자료를 저장하기 위한 메모리 공간을 가지게 된다. 시작시 혹은 실행 중에 데이터를 저장하고 사용하기 위한 메모리 공간을 커널에 요구하여 할당받아 사용하는데 이러한 메모리 공간은 기본적으로 메모리를 요청한 프로세스만이 접근 가능하다. 하지만 여러개의 프로세스가 특정 메모리 공간을 동시에 접근해야할 경우도 있는데 이러한 작업을 위해 공유 메모리가 있다. 하나의 메모리를 공유해서 접근하는 것이다.
(http://www.joinc.co.kr/w/Site/system_programing/IPC/SharedMemory)
공유 메모리를 확인하고 접근하는 코드를 짠다.
shmget은 커널에 공유 메모리 공간을 요청하기 위해 호출하는 시스템 호출
shmget( key, size, 접근 권한과 생성방식 )
공유 메모리 공간을 생성하면 공유 메모리에 접근할 수 있는 int형의 식별자를 얻는다. 이 식별자를 shmat을 이용하여 프로세스가 공유 메모리를 사용할 수 있도록 해준다.
shmat( shmget을 이용해서 얻은 식별자 번호, 메모리가 붙을 주소인데 0을 사용할 경우 커널이 메모리가 붙을 주소를 명시한다, 해당 공유 메모리에 대한 “읽기전용, 읽기/쓰기가능”모드로 열 수 있는데 아무값도 지정하지 않을 경우 “읽기/쓰기가능”모드로 열린다)
'FTZ' 카테고리의 다른 글
FTZ level 12 (0) | 2016.12.23 |
---|---|
FTZ level 11 (0) | 2016.12.23 |
FTZ level 9 (0) | 2016.12.23 |
FTZ level 8 (0) | 2016.12.23 |
FTZ level 7 (0) | 2016.12.23 |