인텔 32bit 마이크로프로세서 플랫폼의 리눅스 커널은
0~ 4GByte까지를 가상 주소로 사용합니다.
(다른 종류는 어찌되는지 모르겠지만)
가상 주소에서
0~3G 까지는 사용자 프로세스들을 위한 가상 주소 공간이고
가상 주소 3G~4G까지가 커널 모드로만 사용합니다.
즉 커널은 가상주소 1 G 크기만 사용가능합니다.
그러므로 물리적인 주소와의
매핑은 1G 까지만 가능한거죠.(물론 이걸 늘리는 방법은 있습니다.)
이것도 다쓰는게 아닙니다.
896 MB 까지만 사용하죠. 나머지는
Fixed-mapping linear address 과
불연속 메모리 할당을 위해 사용됩니다.
가상 주소(선형 주소)가 3.2 G 이면
물리적인 주소는 0.2 G 이고
3.6G 이면 물리적으로는 0.6G입니다. 8)
/***************************************
Being the one is just like being in love.
***************************************/
가상주소
인텔 32bit 마이크로프로세서 플랫폼의 리눅스 커널은
0~ 4GByte까지를 가상 주소로 사용합니다.
(다른 종류는 어찌되는지 모르겠지만)
가상 주소에서
0~3G 까지는 사용자 프로세스들을 위한 가상 주소 공간이고
가상 주소 3G~4G까지가 커널 모드로만 사용합니다.
즉 커널은 가상주소 1 G 크기만 사용가능합니다.
그러므로 물리적인 주소와의
매핑은 1G 까지만 가능한거죠.(물론 이걸 늘리는 방법은 있습니다.)
이것도 다쓰는게 아닙니다.
896 MB 까지만 사용하죠. 나머지는
Fixed-mapping linear address 과
불연속 메모리 할당을 위해 사용됩니다.
가상 주소(선형 주소)가 3.2 G 이면
물리적인 주소는 0.2 G 이고
3.6G 이면 물리적으로는 0.6G입니다. 8)
/***************************************
Being the one is just like being in love.
***************************************/
Re: 커널이 한번에 access 가능한 용량 질문
음... kmalloc의 경우 한번에 잡을 수 있는 최대 크기는 128KB입니다.
그리구 사용할 수 있는 공간이 896MB이구요... 그럼...
댓글 달기