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에 상주함을 의미한다.