도스는 640KB까지를 기본 메모리(base memory)로 별다른 설정 없이 쓸 수 있다. 몇몇 풀그림들은 삼국지3처럼 기본 메모리 공간을 아주 많이 요구하기도 하고, 기본 메모리보다 훨씬 많은 공간을 쓰기도 한다. 도스가 애초에 640KB보다 많은 메모리를 쓰도록 설계하지 않은 탓에 상위 메모리(Uppper Memory), 연속 확장 메모리(Extended Memory) 따위의 복잡한 메모리 구분이 생겨났다.

  도스의 메모리 구역을 구분하는 용어를 정리해 보면 다음과 같다.

  • BMS (Base Memory Specification; 기본 메모리 규격) : 640KB 이내의 기본 메모리
  • UMB (Upper Memory Block; 상위 메모리 구역) : 640KB~1MB 사이 메모리 영역
  • XMS (eXtended Memory Specification; 연속 확장 메모리 규격) : 1MB 이상 메모리 영역
  • HMA (High Memory Area; 고위 메모리 영역) : XMS의 첫 64KB
  • EMS (Expanded Memory Seicification; 중첩 확장 메모리 규격) : UMB와 XMS를 이용하는 확장 메모리

도스의 메모리 구분

도스의 메모리 구분


  기본 메모리 이외의 메모리 영역은 전체 메모리가 640KB 이상인 286(AT) 이상 기종에서 HIMEM.SYS, EMM386와 같은 관리자를 통하여 쓸 수 있다.


연속 확장 메모리(XMS)와 고위 메모리(HMA) 쓰기

  연속 확장 메모리(XMS) 관리자인 HIMEM.SYS는 CONFIG.SYS에서 XMS를 쓰는 다른 풀그림이나 장치보다 먼저 메모리에 띄우도록 해야 한다.
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH
  'DOS=HIGH'라고 하면 기본 메모리를 차지하는 도스 알맹이(커널)의 일부를 크기가 64KB인 고위 메모리(HMA)로 옮겨서 40KB쯤 되는 기본 메모리 공간을 아낄 수 있다.


상위 메모리(UMB)와 중첩 확장 메모리(EMS) 쓰기

  EMM386.EXE는 램 상주 풀그림을 올릴 수 있는 상위 메모리(UMB) 공간을 마련하거나, 드물게 몇몇 풀그림이 이용하는 중첩 확장 메모리 공간을 마련하는 역할을 한다. EMM386.EXE는 XMS 공간을 이용하므로 HIMEM.SYS 다음에 실행해야 한다.

상위 메모리(UMB)만 쓰기

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH,UMB
  'NOEMS'는 중첩확장 메모리는 만들지 않고 상위 메모리(UMB)만 만들라는 선택사항이어서 가장 많은 상위 메모리를 확보할 수 있다. 'DOS=UMB'라고 하면 상위 메모리(UMB)를 도스의 메모리 자원으로 인식하여 상위 메모리에 램 상주 풀그림이 들어갈 수 있다. 'DOS=HIGH'와 'DOS=UMB'를 'DOS=HIGH,UMB'로 묶어 적었다.


중첩 확장 메모리(EMS)만 쓰기

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE EMS 1024
DOS=HIGH

  EMM386.EXE에 'EMS 1024'라고 붙이면 중첩 확장 메모리(EMS) 1024KB를 만들게 된다. EMS 크기를 붙이지 않으면 자동으로 256KB가 설정된다. EMM386.EXE가 상위 메모리(UMB)는 만들지 않으므로, 'DOS=UMB'를 붙이지 않았다.


상위 메모리(UMB)와 중첩 확장 메모리(EMS) 모두 쓰기

DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM 1024
DOS=HIGH,UMB
  'DEVICE=EMM386.EXE RAM 1024'라고 하면 상위 메모리(UMB)와 중첩 확장 메모리(EMS) 1024KB를 모두 만들게 된다. 상위 메모리(UMB)에 EMS 페이지 프레임이 들어가므로, 'NOEMS'로 한 것보다 쓸 수 있는 UMB 용량이 64KB 적다.


램 상주 풀그림을 상위 메모리(UMB)에 올리기

  EMM386.EXE로 상위 메모리(UMB)를 만들어서 'DOS=UMB'라는 명령도 적었다면, EMM386.EXE 다음에 실행되는 램 상주 풀그림을 상위 메모리에 올려서 기본 메모리를 아낄 수 있다. config.sys와 autoexec.bat에서 실행문에 'DEVICEHIGH'나 'LOADHIGH'를 쓰면 된다.
DEVICE=C:\DOS\RAMDRIVE.SYS 1024 /E
→ DEVICEHIGH=C:\DOS\RAMDRIVE.SYS 1024 /E

C:\DOS\MOUSE.EXE
→ LOADHIGH C:\DOS\MOUSE.EXE

2010/05/29 13:39 2010/05/29 13:39
얽힌 글타래
무른연모 / 윈도〉 글갈래의 다른 글
글 걸기 주소 : 이 글에 다른 글을 걸 수 없습니다

덧글을 달아 주세요