DLL의 기본 주소 지정에 대한 의문
좋다.
DLL의 기본 주소를 지정할 수 있다.
이렇게 함으로서 DLL이 로드된 메모리에 다른 DLL이 로딩되어야 해서
DLL이 재배치 되고,
이것은 상당히 큰 속도의 저하원인이 될 수 있다.

하지만,
만일 0x60000000 에다가 sample.dll 을 로드 한다고 값을 주었을 때에,
각 컴퓨터 마다 0x60000000 의 값이 사용되고 있을지 없을지는 미지수인데,
어떻게 이렇게 설정하는 것을 효율적일 수 있는지?
0x60000000 는 해당 프로세스에 할당된 4G 의 가상 메모리 영역인가?
그렇다면 OK
음... 아마도 프로세스에 설정된 4G의 가상 메모리 영역이겠구나...
란 생각이 많이 든다.

아니다! 그렇치 않다. DLL은 공용 모듈이기 때문에,
커널 영역에 로드 되어 다른 프로세스들과 같이 이용될 것이다. -_-
뭐냐 @.@

(WDBG 혹은 WinDBG를 이용해 확인이 가능할 것이다.)

by 호랭 | 2004/04/08 01:06 | 호영이 연구소 | 트랙백 | 덧글(1)
트랙백 주소 : http://horang79.egloos.com/tb/427227
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 견우 at 2004/05/22 13:45
프로세스A의 0x60000000 과 프로세스B의 0x6000000의 Physical Address 는 다릅니다. 고로 0x6000000에 sample.dll 을 올려도 다른 프로세스와 무관하게 올릴수 있는것이지요. 프로세스마다 Page Directory Table 이 다르기 때문에 가능한 것입니다.^^
※ 이 포스트는 더 이상 덧글을 남길 수 없습니다.
<< 이전 다음 >>