본문 바로가기

IT/컴온

32비트 윈도우와 4G 메모리

 

최근, 일이 있어서 글을 올리지 못했다.
몇 가지 쓸 것이 있었는데, 그 중 하나가 32비트 윈도우에서 4GByte메모리를 장착했을 때 그것을 다 인식하지 못하는 문제에 대한 것이었다.

 

PAE 옵션을 줌으로써 사용가능하게 할 수 있다.

 

왜 32비트에서는 4G를 다 인식하지 못하는가?
이것을 방에 비유해서 쓰려고 했던 것인데... 졸지에 설명이 잘 되어진 뉴스글을 보게 되어 그 링크를 건다.

사라진 메모리 용량 늘리는 법 - 32비트 운영체계의 한계 (2010년에 작성된 글)


추가: 더 옛날 기사지만 더 나은 설명 같아서 링크 하나 더 추가함
4GB가 3.2GB로 둔갑한 이유 (2009년)

 

내가 설명하려던 것과는 조금 다른 글이지만, 개념을 잘 설명해놓은 것 같다.

 

1. 32비트 운영체제에서 관리 가능한 최대 메모리 용량
                                                                          (2^32 ; 2의 32승 ; 2를 32번 곱한 값)

당연히 들 의문
그런데 윈도우에 들어가보면 그만큼의 메모리가 아닌데???

 

윗 기사에도 실려 있듯이 - 나는 그것을 하드웨어적인 시스템 사용 메모리로 언급하려 했던 부분이 MMIO라는 용어로 쓰여지는군요 - 다른 장치들에서 그 부분을 차지하게 된다.

 

2. 오우 4G 이상 메모리

자, 그냥 원래 설명하려던 방식으로 조금 쓰자.

윈도우에서는 4G의 방을 가지고 있다.
장착된 메모리(RAM)는 사람(일꾼)이다.

 

4G(4000명이라 하자)의 사람이 4G의 방에 들어와서 일하면 된다. 그러나, 메모리에는 장착된 메모리(RAM)만 있는 것이 아니다. BIOS, VGA, Audio 기타 등등의 메모리들이 있다. 그런데 이것들은 필수적인 하드웨어적인 시스템 메모리이기 때문에 먼저 자리를 차지하게 된다. 고로, 그 나머지 부분만 장착된 메모리(사람)가 들어와서 일할 수 있다. 그리고, -  MMIO라는 용어가 있으니, 그것을 쓰자 - MMIO영역은 침범을 받지 않게 칸막이가 쳐져 있다.

 

그럼, 남은, 방에 들어가지 못한 메모리 부분은 어떻게 해?
몇 가지 이야기가 있었다.
대표적인 것이 램디스크.
그러나, 문제는 램디스크로 할당되는 것도 방에 있는 녀석만을 대상으로 한다는 것이다.

방법은 방 크기를 늘릴 수 밖에 없다.
방을 늘릴 수는 있는가?
있다.
그것이 boot.ini 파일을 열어서 /PAE 옵션을 넣는 것이다.
(램디스크 프로그램들 대부분이 이 옵션을 활성화 시키는 기능이 있다)

예전에 한국어화 하던 때

여기서 문제가 하나 생긴다.
무슨 문제냐 하면
방을 확장하면 무슨 일이 생기느냐
방을 크게 늘리는(방의 벽을 허무는) 대신, MMIO와 일반 메모리 영역 사이의 칸막이 마저 없애 버리는 듯 하다.
이로 인해 침범하지 말아야 할 위치에 사람들이 들어와서 작업을 하는 것이다.
곧, 시스템이 상당히 불안정해지는 것이다.

이것은 사용자가 결정할 일이다.
방의 벽을 허물어서 충분한 공간을 확보하여 메모리를 모두 활용하느냐?
(대신, 영역 침범으로 인한 시스템 불안정은 감수하고)
아니면 방의 벽과 칸막이(MMIO 보호)를 유지하느냐

 

3. 원래 쓰려던 글의 부분 중 일부

원래 글을 쓰려고 했던 것이 1주일쯤 전의 일이다. 그 때는 머리 속에 있었는데...
PAE옵션 때문에 검색하다 위의 기사를 보고는 풀이 꺾였다.
머리 속의 내용이 다 날아가 버렸다.
(머리에 떠올랐을 때 정리를 해놓았어야 했는데...)

그래도 한 번 쓰려고 했던 뒷 부분을 쓰보자. (저 기사를 보니, 내 생각은 한낱 엉터리 치기였다)
무엇이었느냐 하면 내장 그래픽과 외장 그래픽 이야기였다.
외장 그래픽은 따로 메모리가 있어서 그것이 저 MMIO 부분에 로딩되어지게 된다.
그러나 내장 그래픽의 경우 따로 메모리가 없어서 우리가 일반적으로 이야기하는 RAM을 공유하게 된다.
여기서, 보면 외장 그래픽 카드를 장착했을 때 오히려 메모리 RAM 손해가 많아진다는 취지의 글이었고, 내장 그래픽카드의 경우 어차피 못 쓰는 RAM 그냥 좀 더 크게 지정해주는 것도 좋겠다는 것이었다.

하여간, 저 기사를 보기 전에는 조금 다르게 인식하고 있었다.

 

참고
- PAE 가 XP sp1에서만 된다고 나와 있는데, XP sp1이상이 아닐까 싶다.
- 외장 그래픽 카드가 있는데, 사용하지 않는 어리석은 일은 하지 말자 (내장 그래픽의 성능으로도 충분하다면 모르지만)

 

두번째 링크를 건 글을 보았다면 이 글을 쓰지 않았을 것 같다.