MEM.EXE

도스박물관
둘러보기로 이동검색으로 이동

MEM.EXE

MEM 명령은 컴퓨터의 메모리 사용 현황(사용 중/여유 메모리)을 표시하는 MS-DOS의 기본 유틸리티이다. 주 메모리 영역(Conventional / Upper Memory), 확장 메모리(XMS), 확장 메모리(EMS), 그리고 메모리에 로드된 프로그램 목록을 조회할 수 있다.

개요

MEM 명령은 DOS 환경에서 할당된 메모리, 사용 중인 프로그램, 남아 있는 메모리 블록 등을 표시한다. 특정 프로그램이 어떤 메모리 영역을 점유하는지 분석할 때 유용하며, /CLASSIFY, /DEBUG, /FREE, /MODULE 등의 다양한 스위치를 제공한다.

사용법

MEM [/CLASSIFY | /DEBUG | /FREE | /MODULE modulename] [/PAGE]

기본적으로 단순히 메모리 상태를 보려면 다음과 같이 입력한다:

MEM

스위치

/CLASSIFY (/C)

현재 메모리에 상주한 프로그램을 나열하고, 각 프로그램의 Conventional / Upper 메모리 사용량을 함께 표시한다.

  • 메모리 요약 표시
  • 가장 큰 자유 메모리 블록 표시
  • /PAGE와 함께 사용 가능
  • 다른 스위치와는 함께 사용할 수 없음

/DEBUG (/D)

프로그램 및 내부 드라이버 정보를 상세하게 표시한다.

  • 세그먼트 주소, 크기, 타입 표시
  • 메모리 전체 요약 제공
  • 디버깅용 정보 표시
  • /PAGE와 함께 사용 가능
  • /FREE 등 다른 스위치와는 함께 사용할 수 없음

/FREE (/F)

Conventional 및 Upper Memory의 빈 영역을 표시한다.

  • 빈 메모리의 세그먼트 주소와 크기 표시
  • 각 UMB(Upper Memory Block)의 최대 자유 공간 표시
  • /PAGE와 함께 사용 가능

/MODULE programname (/M)

특정 프로그램이 할당한 메모리 영역을 자세히 표시한다.

예:

MEM /MODULE WIN386
  • 프로그램이 점유한 모든 메모리 블록을 나열
  • 세그먼트 주소, 크기, 타입(Data/Environment/Program 등)
  • Upper Memory Block 사용 시 영역 번호(region) 표시
  • /PAGE와 함께 사용 가능

/PAGE (/P)

출력을 한 화면씩 끊어서 표시한다.

모든 스위치와 함께 사용 가능하다.

관련 명령어

  • CHKDSK — 디스크 사용량 확인

비고

DOSKEY를 이용한 /PAGE 자동 추가

AUTOEXEC.BAT에서 MEM 실행 시 항상 /PAGE가 적용되도록 설정할 수 있다.

C:\DOS\DOSKEY
DOSKEY MEM=MEM.EXE $* /P

확장/확대/상위 메모리 표시 조건

MS-DOS은 다음 조건에서만 해당 메모리 정보를 표시한다:

  • Extended Memory(XMS) → 1MB 이상 메모리가 설치되어 있어야 함
  • Expanded Memory(EMS) → LIM EMS 4.0 규격이어야 표시됨
  • Upper Memory(UMB) → EMM386.EXE 등 UMB 제공 프로그램 + CONFIG.SYS에서 DOS=UMB 필요
  • Windows 3.0 실행 중 MEM 실행 시 상위 메모리 정보는 표시되지 않음

INT 15h + XMS 동시 사용

HIMEM.SYS를 /INT15 옵션과 함께 로드하면 INT 15h 메모리와 XMS를 동시에 사용할 수 있다.

자세한 내용은 HIMEM.SYS 문서 참고.

예제

/CLASSIFY 예제

MEM /CLASSIFY

출력 예시는 다음과 유사하다:

Modules using memory below 1 MB:

  Name           Total       =   Conventional   +   Upper Memory
  --------  ----------------   ----------------   ----------------
  SYSTEM      16,477   (16K)     16,461   (16K)         16    (0K)
  SETVER         784    (1K)        784    (1K)          0    (0K)
  HIMEM        1,168    (1K)      1,168    (1K)          0    (0K)
  EMM386       3,120    (3K)      3,120    (3K)          0    (0K)
  ...
  Free       472,464  (461K)    464,448  (454K)      8,016    (8K)

Memory Summary:

  Type of Memory       Total   =    Used    +    Free
  ----------------  ----------   ----------   ----------
  Conventional         655,360      190,912      464,448
  Upper                109,712      101,696        8,016
  Reserved             393,216      393,216            0
  Extended (XMS)    15,618,928   12,424,048    3,194,880

/MODULE 예제

MEM /MODULE WIN386

출력 예:

WIN386 is using the following memory:

  Segment  Region       Total        Type
  -------  ------  ----------------  --------
   0081D                 80    (0K)  Data
   02EF8                384    (0K)  Environment
   02F10             89,856   (88K)  Program
   0D4D0       1         96    (0K)  Data
   0D611       1      7,888    (8K)  Data
   0EFFE       2         32    (0K)  Data
                   ----------------
  Total Size: 98,336   (96K)

참고

  • “Largest executable program size”는 현재 실행 가능한 가장 큰 연속된 Conventional Memory 크기.
  • “Reserved”는 VGA 등 확장 카드의 메모리 영역.
  • “MS-DOS is resident in HMA”는 DOS가 High Memory Area에 상주함을 의미한다.