블로그 이미지
SITD

카테고리

분류 전체보기 (34)
1.DB (4)
2.OS (3)
3.PROGRAMMING (14)
4.학업 (0)
5.영어 (0)
6.KSIT (5)
7.증권 (1)
8.EXCEL (0)
9.Graduate (2)
기타 (5)
Total
Today
Yesterday

달력

« » 2024.4
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

공지사항

태그목록

최근에 올라온 글

1. 프로세스에서 가리키는 주소는 해당 프로세스 안에선 절대적인 위치값이지만, 이는 그 프로세스 안에서만 해당한다.
    즉, 프로세스 A와  프로세스 B가 있을 때 서로 100번지를 강제로 가리킨다고 해보자. 
    일반적으로 프로세스가 관리하는 메모리끼리는 관여가 불가능하지만 A 프로세스 종료 후 B프로세스를 생성했을 경우나 공유 메모리의 경우로 가정했을 때,
    A에서 100번지에 값을 넣고 B에서 100번지의 값을 읽을 때 실제론 서로 다른 메모리 위치를 사용하게 된다.
    프로세스에서 사용하는 메모리 주소는 물리 주소가 아니라 MMU에 의해 변경된 논리 주소이기 때문이다.

2. 그렇다면 공유메모리의 값을 다른 프로세스가 공유하려면 어떻게 해야 하는가?
    상대적인 위치값을 기록해서 shmget, shmat를 이용해 리턴된 주소에 포인터 연산을 해서 구한 주소를 사용해야 한다.
    즉, 1000만큼의 메모리를 shmget로 할당했다고 했을 때, 실제 객체가 저장된 위치가 그 중간이라면, 500이란 값을 공유메모리 변수에 저장해 둔 후, 이후 다른 프로세스에서 참조시, shmget -> shmat를 수행한 후 리턴된 주소에 + 500을 한 위치의 값을 사용하면 된다.
 
출처
 : http://kldp.org/node/38864
Posted by SITD
, |

최근에 달린 댓글

글 보관함