상위 메모리 영역

Upper memory area
상위 메모리 영역은 640KB에서 1024KB 사이에 위치한다.

DOS 메모리 관리에서 상위 메모리 영역(UMA)은 640KB와 1024KB(0xA00–0x) 사이메모리를 가리킨다.FFFFF) 또는 호환되는 IBM PC의 경우.IBM은 8088 CPU의 1024KB 주소 공간 중 가장 윗부분 384KB를 BIOS ROM, 비디오 BIOS, 옵션 ROM, 비디오 RAM, 주변기기의 RAM, 메모리 매핑된 I/O, 폐기된 ROM BASIC용으로 예약했다.[1]

그러나 비디오 RAM, ROM BIOS, 비디오 BIOS, 옵션 ROM, 주변 장치용 I/O 포트에서도 384KB의 주소 공간 중 상당 부분이 사용되지 않았다.640KB 메모리 제한이 어느 때보다 걸림돌이 되면서 빈 공간을 램으로 채우는 기법이 발견됐다.이러한 영역은 상위 메모리 블록(UMB)으로 언급되었다.

사용법

DOS 진화의 다음 단계는 운영체제가 상위 메모리 블록(UMB)과 높은 메모리 영역(HMA)을 사용하는 것이었다.이것은 1990년 DR DOS 5.0의 출시와 함께 일어났다.[2]DR DOS의 내장 메모리 관리자, EMM386.EXEQEMM과 비교 가능한 프로그램의 대부분의 기본 기능을 수행할 수 있다.

이전 DOS와 QEMM의 조합에 비해 DR DOS 5.0의 장점은 DR DOS 커널 자체와 거의 모든 데이터 구조가 높은 메모리에 로드될 수 있다는 것이었다.이는 640KB 중 최대 620KB의 구성을 허용하면서 사실상 모든 기본 메모리를 사용할 수 없게 만들었다.

구성은 자동이 아니었으며, CONFIG에서 EMM386을 로드한 라인에 수작업으로 포함된 무료 UMB를 식별해야 했다.SYS, 그리고 드라이버 등을 CONFIG에서 UMB에 수동으로 로드해야 했다.SYS 및 AUTOEXEC.BAT. 이 구성은 사소한 과정이 아니었다.QEMM의 설치 프로그램에 의해 주로 자동화되었기 때문에 이 프로그램은 시장에서 살아남았고, 실제로 DR DOS의 자체 HMA 및 UMB 지원과 잘 연동되어 PC에서 가장 잘 팔리는 유틸리티 중 하나가 되었다.

이 기능은 1991년 6월에 MS-DOS 5.0이 출시되면서 마이크로소프트에 의해 복제되었다.[2]결국 더 많은 DOS 데이터 구조가 기존 메모리 밖으로 옮겨져 640KB 중 최대 631KB까지 자유로워졌다.MS-DOS 6.0 버전부터 마이크로소프트는 TSR 프로그램을 상위 메모리로 옮겨 기존 메모리를 자동으로 최적화하는 MEMMAKER라는 프로그램까지 포함시켰다.

1990년대 초반의 기간 동안, DOS 메모리 맵의 수동 최적화는 가장 복잡한 PC 구성에서도 가장 큰 애플리케이션을 실행할 수 있게 하여 높은 가치를 지닌 기술이 되었다.기법은 우선 컬러 머신의 단색 표시 영역과 같이 할당되었지만 사용되지 않은 메모리 블록을 다시 매핑하는 것을 포함하여 가능한 한 많은 UMB를 만드는 것이었다.그 후 DOS의 많은 하위 컴포넌트는 가능한 한 효율적으로 메모리 블록을 사용하기 위해 정확한 순서로 이들 UMB에 로드되어야 했다.일부 TSR 프로그램은 로딩하는 동안 추가 메모리를 요구했으며 로딩이 완료되면 다시 메모리를 확보했다.다행히 이들 모듈 사이에는 의존성이 거의 없었기 때문에 거의 어떤 순서로든 로딩이 가능했다.캐시가 CD-ROM로딩되어야 했고, 대부분의 네트워크 스택의 모듈은 특정 순서에 따라 로딩되어야 했으며,본질적으로 OSI모델의 레이어를 통해 점진적으로 작동해야 한다는 예외도 있었다 뒤에 드라이버 CD-ROM을대부분의 디스크 캐싱하려면 성공적으로.

재래식 메모리를 최적화하는 데 사용되는 기본적이면서도 효과적인 방법은 HIMEM을 로딩하는 것이었다.장치로서의 SYS, 이후 EMM386 로딩.장치 드라이버를 장치 높이로 로드하여 UMA에 액세스할 수 있는 "RAM AUTO" 옵션이 있는 장치로서의 EXE.이 방법은 기본 메모리 관리자를 기존 메모리에 효과적으로 로딩하고 그 이후에는 모든 것을 UMA에 로딩한다. MSCDEX와 같은 전통적인 메모리 과잉 프로그램도 유사한 방식으로 UMA에 로딩할 수 있어 많은 양의 기존 메모리를 확보할 수 있다.

창문들

Windows 3.0의 인기는 Windows 애플리케이션이 DOS의 기본 메모리 제한의 직접적인 영향을 받지 않지만, Windows에서 실행 중인 DOS 프로그램(Windows 자체가 멀티태스킹 관리자 역할을 하는 경우)은 여전히 제약을 받고 있기 때문에 상위 메모리 영역의 필요성은 덜했다.윈도 95의 출시와 함께, 이 버전의 윈도우는 CD, 네트워크, 사운드 지원 같은 윈도우에서 실행되는 도스 어플리케이션에 도스 장치 드라이버의 많은 기능을 제공하기 때문에 덜 관련성이 있어졌다. 윈도 95 도스 박스의 메모리 맵은 자동으로 최적화되었다.그러나 모든 DOS 프로그램이 이 환경에서 실행될 수 있는 것은 아니다.구체적으로, 실제 모드에서 보호 모드로 직접 전환하려고 했던 프로그램은 실행 인 가상 8086 모드에서는 이것이 허용되지 않았기 때문에 작동하지 않을 것이다.또한 VCPI(Virtual Control Program Interface) API(위에서 설명한 것처럼 보호 모드가 필요한 DOS 프로그램이 메모리 관리자가 설정한 가상 8086 모드에서 이 모드로 진입할 수 있도록 하기 위해 도입된 프로그램)를 사용하여 스위치를 만들려고 시도한 프로그램도 윈도 95에서는 작동하지 않았다.보호 모드로 전환하기 위한 DOS 보호 모드 인터페이스(DPMI) API만 지원되었다.

실행

가상 8086 모드

상위 메모리 블록은 가상 8086 모드에서 실행할 때 확장 메모리를 상위 메모리 영역에 매핑하여 생성할 수 있다.이는 확장메모리를 사용하여 확장된 메모리를 에뮬레이션할 수 있는 방법과 유사하므로 이 상위 메모리 블록을 제공하는 방법은 대개 확장된 메모리 관리자(예: EMM386)에 의해 제공된다.상위 메모리 블록 관리를 위한 응용 프로그램 프로그래밍 인터페이스는 eXtended 메모리 사양에 지정되어 있다.

섀도 RAM

현대적인 시스템을 포함한 많은 시스템에서는 확장 카드 ROM을 섀도잉하기 위해 예약된 메모리를 상위 메모리로 사용하는 것이 가능하다.많은 칩셋은 이를 위해 최대 384KB RAM을 예약하고 있으며, 이 RAM은 일반적으로 사용되지 않기 때문에 UMBPCI와 같은 사용자 지정 장치 드라이버와 함께 실제 모드 상위 메모리로 사용할 수 있다.[3]

IBM XT

IBM XT 컴퓨터에서는 마더보드에 메모리를 더 추가하고 사용자 지정 주소 디코더 PROM을 사용하여 상위 메모리 영역에 표시할 수 있었다.[4]위에서 설명한 386 기반 상위 메모리와 마찬가지로, 여분의 RAM은 TSR 파일을 로드하거나 RAM 디스크로 사용할 수 있다.

XT급 컴퓨터용 추가 메모리 관리 유닛올카드는 일반 메모리를 0xA0000-EFF 주소 범위에 매핑할 수 있게 해 DOS 프로그램용 최대 952KB를 제공했다.비디오 메모리에 직접 액세스한 Lotus 1-2-3과 같은 프로그램은 이 메모리 레이아웃을 처리하기 위해 패치를 적용해야 했다.따라서 640KB 장벽은 소프트웨어 호환성 비용으로 제거되었다.이러한 상위 메모리 영역 사용은 디바이스 드라이버와 TSR1MB 주소 공간의 상위 384KB로 이동시켜 기존 메모리를 자유롭게 할 때 사용하던 상위 메모리 블록을 사용하면서도 어드레스 가능한 메모리 양(640KB)은 그대로 둔 것과는 다르다.

참고 항목

참조

  1. ^ "Memory Map (x86) - OSDev Wiki". wiki.osdev.org. Retrieved 2020-12-20.
  2. ^ a b Dryfoos, 마이크,(1991-09-18)[1991-07-19]."MS-DOS5.0개발 Post-Mortem 보고서"(PDF)(법원 서류로 우편).Microsoft. 페이지의 주 10. MS-PCA1179169(MS-PCA1179159-MS-PCA1179191).MS7020988(MS7020978-MS7021010).Depo.. 1109년.'v'마이크로 소프트 원고의 그림 3473게 됩니다.CA.No.2:96CV645B원고의 그림 477.그 2019-04-02에 원래에서Archived(PDF).2019-07-22 Retrieved.DRDOS 5.0에서 1990년 봄에 우리가 처음 배우[…]어느 기능을 추가하기 위한 가장 중요한 stimulanta의 경쟁이 압력,.그 분산 반사 서비스 거부 공격 특징 집합 우리 UMB 지원 업무를 나누며, Undelete을 추가하게 되었다.팀의 관리 관심의[…]상당한 양의 파일 전송 소프트웨어, 삭제 취소 및 네트워크 설치[…]결국 이 상황을 7월 1990년이 끝나면, BradS 위기에 달했다 같은 새로운 기능에 전용되었다, 그 팀의 경영 회의에 대한 일정과 과정에 못질하고의 힘든 시리즈를 보냈다.[…](1+32 페이지)아래 프로젝트다.
  3. ^ "UMBPCI V3.89 - c't magazine's hardware-UMB-driver for DOS and Win95/98". Archived from the original on 2019-12-30. Retrieved 2020-02-07.
  4. ^ Atkinson, Cy (2001). "What is high memory, why do I care, and how can I use it?". San Jose, CA, USA. Archived from the original on 2018-10-05. Retrieved 2020-02-07.