ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows XP에서 RamDisk를 이용하여 남는 메모리 활용
    Computer/Software 2008. 11. 11. 10:46

    WindowsXP가 32bit OS이기 때문에 2^32 인 4GB까지 주소만 사용할 수 있다.
    게다가 그래픽 카드 같은 하드웨어에서 memory mapped IO 때문에 일부를 사용하고 있기 때문에
    시스템 따라 다르지만 내 PC에서는 3.5GB가 잡힌다.
    그렇게 되면 4GB - 3.5GB = 0.5GB (=512MB)가 남는데,
    이것을 놀리고 있다가 누군가가 RAMDISK를 써서 사용할 수 있다고 하였다.
    물론 메모리를 잘 쓰기 위해서 64bit OS로 갈아타면 좋겠지만 아직까지는 예전에 잘 쓰던 프로그램들의 호환성 문제 때문에 바꾸지 못하고 있다.

    parkoz 등에서 나오는 이전(SP2 이전) 문서에서는 /PAE (Physical Address Extension; 실제 주소 확장) 스위치를 boot.ini 에 넣고 메인 보드에서 바이오스 세팅을 바꾸고 하는 식으로 했지만 최근 메인보드와 OS에서는 기본적으로 지원하는 것 같다. 지금 내 컴퓨터 등록정보를 확인하니



    실제 주소 확장이 기본적으로 동작하고 있다.
    실제 주소 확장이란 놈이 예전에 도스에서 OS 한계 때문에 EMM386 을 쓰던 생각이 나게 하는 놈이다.
    그 때도 32bit OS로 갈아타면 될 것을 OS는 유지하면서 메모리를 더 쓰려고 억지로 썼었는데,
    지금 와서도 비슷한 일을 하고 있다.
    물론 64bit OS를 쓸 때보다 성능은 훨씬 떨어지겠지만...

    실제 주소 확장을 사용하려면 도스 때와 마찬가지로 어플리케이션이 지원을 해야 그것을 사용할 수가 있다.
    XP에서 이것을 기본으로 사용하는 이유는 DEP (데이터 실행 방지 - 스택 스매싱 어택과 같이 스택에 코드를 올리고 실행하는 것을 방지하기 위해서 데이터와 코드에 스위치를 두어서 스택과 같은 데이터 영역을 실행되지 않도록 하는 기술. 요즘에는 프로세서에서도 지원을 한다. - NX 스위치)를 이것을 이용해서 사용하기 때문이라고 한다. Visual Studio 최신 버전들에는 (VS2005~) 이 기능을 지원하는 코드를 생성할 수 있지만, 아직까지 XP 어플리케이션보다는 OS에서 주로 사용하는 듯 하다.

    어쨌든 여기에다가 웹 검색하면 널려 있는 RAMDISK 프로그램 중 적당한 것을 설치했더니
    잘 동작한다. 실제 주소 확장을 물론 지원하는 프로그램이어야 하겠지만 다들 하고 있는 듯 하다.



    R 드라이브로 지정을 하면 내 컴퓨터에 잘 설치 되고. 내 컴퓨터 등록 정보에서도 3.5GB의 메모리는 변화가 없다.
    혹시 잘못 된 것 아닌가 작업 관리자에서 프로세스 메모리를 살펴 보아도 512MB 차지하고 있는 프로세스는 없고, 실제 메모리 크기도 특별한 변화는 없었다.

    다른 사람들은 Windows의 페이지 파일이나 Temp 파일들을 램디스크에 넣고 쓴다고 했는데,
    안정성이 중요한 것들을 램드라이브에 넣는다는 것이 좀 불안한 감도 있기도 하고,
    램 디스크 용량이 워낙 작아서, (다른 사람들은 8GB 램에 4.5GB를 cache로 쓰기도 한다고 했다)
    웹페이지 캐시용으로만 쓰기로 결정하고 FireFox 캐시를 램디스크에 쓰기로 결정했다.

    그래서 FireFox의 주소창에 about:config를 입력하고 디렉토리를 설정한다.
    (이 설정이 IE에서는 메뉴에 있으나 FireFox에는 없다)
    browser.cache.disk.parent_directory 라는 key가 있으면 그 자리에 R:\ 값을 넣으면 되겠지만,
    기본적으로는 없기 때문에 마우스 우클릭 ->새 문자열 을 만들어
    이름을 browser.cache.disk.parent_directory 라고 하고
    값을 R:\ (램드라이브 위치) 로 하니
    잘 만들어진다.



    이후에 FireFox의 속도가 한결 빨라진 느낌이다.
    IE도 비슷한 방식으로 하면 속도 차이가 느껴진다.
    물론 이렇게 하면 FireFox에서 메모리 cache 설정하는 것과 거의 유사하고 속도도 차이가 없겠지만,
    지금은 놀고 있는 메모리 활용하는 것이니 이 방법이 현재로서는 효과적인 듯 하다.
    단점이라면 시스템 리부팅 때마다 캐시가 사라진다는 것.

Designed by Tistory.