32 비트 프로세스의 가상 주소 공간의 포인터값은
0x00000000 ~ 0xFFFFFFFF 까지 표현할수있다.
4GB 의 크기이다.
64 비트 프로세스의 가상 주소 공간의 포인터값은
0x00000000'00000000 ~ 0xFFFFFFFF'FFFFFFFF 까지 표현할수있다.
16EB(엑사바이트) 의 크기이다.
모든 프로세스는 자신만의 가상 주소 공간을 가지기 때문에
A 프로세스의 주소와 B 프로세스의 주소값이 같은 값을 가르키고 있어도 실제로는 다른곳을 참조하는것이다.
각 프로세스의 가상 주소의 공간은 분리가 되어있어
사용자가 직접적으로 사용할수 있는 공간이 정해진다.
NULL 포인터 부분은
사용자가 널포인터 접근에 대한 대비용으로 항상 비어두는 공간.
널 체크 안하고 포인터 사용시 에러는 내기 위한것으로 생각됨.
유저모드는 실제로 사용자가 조작할수 있는 공간..
2GB의 공간.
64비트 프로세스 에서는 8TB 정도의 공간.
유저공간에는 .exe와 DLL 등이 같이 로드가 되므로 실제 2GB를 모두 사용하지 못한다.
커널모드.
프로세스에서 사용되는 커널과 디바이스드라이버 등이 로드된다.
32비트 프로세스에서는 2GB의 공간에도 겨우 넣을 정도로 힘들게 사용이 된다고 한다.
0x00000000 ~ 0xFFFFFFFF 까지 표현할수있다.
4GB 의 크기이다.
64 비트 프로세스의 가상 주소 공간의 포인터값은
0x00000000'00000000 ~ 0xFFFFFFFF'FFFFFFFF 까지 표현할수있다.
16EB(엑사바이트) 의 크기이다.
모든 프로세스는 자신만의 가상 주소 공간을 가지기 때문에
A 프로세스의 주소와 B 프로세스의 주소값이 같은 값을 가르키고 있어도 실제로는 다른곳을 참조하는것이다.
각 프로세스의 가상 주소의 공간은 분리가 되어있어
사용자가 직접적으로 사용할수 있는 공간이 정해진다.
x86 32비트 윈도우 | |
NULL 포인터 | 0x00000000 ~ 0x0000FFFF |
유저 모드 | 0x00010000 ~ 0x7FFEFFFF |
64KB 접근금지 | 0x7FFF0000 ~ 0x7FFFFFFF |
커널 모드 | 0x80000000 ~ 0xFFFFFFFF |
NULL 포인터 부분은
사용자가 널포인터 접근에 대한 대비용으로 항상 비어두는 공간.
널 체크 안하고 포인터 사용시 에러는 내기 위한것으로 생각됨.
유저모드는 실제로 사용자가 조작할수 있는 공간..
2GB의 공간.
64비트 프로세스 에서는 8TB 정도의 공간.
유저공간에는 .exe와 DLL 등이 같이 로드가 되므로 실제 2GB를 모두 사용하지 못한다.
커널모드.
프로세스에서 사용되는 커널과 디바이스드라이버 등이 로드된다.
32비트 프로세스에서는 2GB의 공간에도 겨우 넣을 정도로 힘들게 사용이 된다고 한다.
'프로그래밍' 카테고리의 다른 글
STL 컨테이너들의 사이즈를 한번 출력해 봤다.. (0) | 2011.01.24 |
---|---|
Windows CPU 효율 향상을 위한 프로그래밍시 데이터 정렬 (0) | 2011.01.21 |
python py파일을 exe 파일로 만들어 보자. (0) | 2010.11.26 |
python 파일 언어 인코딩 설정하기 (0) | 2010.11.24 |
python 디렉토리내부 파일리스트 가져오기 (0) | 2010.11.24 |
댓글