Üst hafıza alanı - Upper memory area

Üst bellek alanı 640 KB ile 1024 KB arasındadır.

Gelen DOS bellek yönetimi , üst bellek alanı ( UMA ) belirtir bellek arasındaki adresleri 640  KB 1024 KB ( 0 x in A0000-0xFFFFF) IBM PC ya da uyumlu. IBM, 8088 CPU'nun 1024 KB adres alanının en üstteki 384 KB'ını BIOS ROM , Video BIOS , Seçenek ROM'lar , video RAM, çevre birimlerdeki RAM , bellek eşlemeli G / Ç ve kullanılmayan ROM BASIC için ayırdı .

Ancak, video RAM, ROM BIOS , Video BIOS , Seçenek ROM'lar ve çevre birimleri için G / Ç bağlantı noktaları ile bile, bu 384 KB adres alanının çoğu kullanılmamıştı. 640 KB bellek kısıtlaması her zamankinden daha fazla engel haline geldikçe, boş alanları RAM ile doldurmak için teknikler bulundu. Bu alanlar, üst bellek blokları ( UMB'ler ) olarak adlandırıldı.

Kullanım

DOS'un evrimindeki bir sonraki aşama, işletim sisteminin üst bellek bloklarını (UMB'ler) ve yüksek bellek alanını (HMA) kullanmasıydı. Bu sürümü ile meydana DR DOS 5.0 dahili bellek yöneticisi, 1990 DR DOS,' EMM386.EXE temel işlevlerinin çoğu gerçekleştirebilir, QEMM ve karşılaştırılabilir programlara.

DR DOS 5.0'ın eski bir DOS artı QEMM kombinasyonuna göre avantajı, DR-DOS çekirdeğinin kendisi ve neredeyse tüm veri yapılarının yüksek belleğe yüklenebilmesiydi. Bu , temel belleğin neredeyse tamamını boş bırakarak 640 KB'den 620 KB'ye kadar ücretsiz yapılandırmalara izin verdi.

Yapılandırma otomatik değildi - ücretsiz UMB'lerin elle tanımlanması, CONFIG.SYS'den EMM386'yı yükleyen satıra manuel olarak dahil edilmesi ve ardından sürücüler ve benzerlerinin CONFIG.SYS ve AUTOEXEC.BAT'den UMB'lere manuel olarak yüklenmesi gerekiyordu . Bu konfigürasyon önemsiz bir süreç değildi. QEMM kurulum programı tarafından büyük ölçüde otomatikleştirildiği için, bu program piyasada ayakta kaldı; aslında, DR DOS'un kendi HMA ve UMB desteğiyle iyi çalıştı ve PC için en çok satan araçlardan biri olmaya devam etti.

Bu işlevsellik, Haziran 1991'de MS-DOS 5.0 sürümüyle Microsoft tarafından kopyalandı . Sonunda, daha da fazla DOS veri yapısı geleneksel bellekten taşındı ve 640 KB'nin 631 KB'sine kadar boş bırakılmasına izin verildi. MS-DOS'un 6.0 sürümünden başlayarak, Microsoft, TSR programlarını üst belleğe taşıyarak geleneksel belleği otomatik olarak optimize etmek için kullanılan MEMMAKER adlı bir program bile içeriyordu .

1990'ların başlarında bir dönem için, DOS bellek haritasının manuel optimizasyonu çok değerli bir beceri haline geldi ve en büyük uygulamaların en karmaşık PC yapılandırmalarında bile çalışmasına izin verdi. Teknik, öncelikle renkli makinelerdeki monokrom görüntü alanı gibi tahsis edilmiş ancak kullanılmayan bellek bloklarını yeniden eşleme dahil olmak üzere mümkün olduğunca çok UMB oluşturmaktı. Daha sonra, DOS'un birçok alt bileşeninin bellek bloklarını olabildiğince verimli kullanmak için bu UMB'lere doğru sırayla yüklenmesi gerekiyordu. Bazı TSR programları, yükleme sırasında ek belleğe ihtiyaç duyuyordu ; bu, yükleme tamamlandıktan sonra yeniden serbest bırakıldı. Neyse ki, bu modüller arasında çok az bağımlılık vardı, bu yüzden onları hemen hemen her sırada yüklemek mümkündü. İstisnalar, CD-ROM'ları başarılı bir şekilde önbelleğe almak için, çoğu disk önbelleğinin herhangi bir CD-ROM sürücüsünden sonra yüklenmesi ve ağ yığınlarının çoğunun modüllerinin, esasen katmanların katmanları arasında aşamalı olarak çalışarak, belirli bir sırayla yüklenmesi gerekmesiydi. OSI modeli .

Geleneksel belleği optimize etmek için kullanılan basit ama etkili bir yöntem, HIMEM.SYS'i bir aygıt olarak yüklemek, ardından EMM386.EXE'yi aygıt sürücülerini aygıt yüksek olarak yükleyerek UMA'ya erişime izin veren "RAM AUTO" seçeneğine sahip bir aygıt olarak yüklemekti. Bu yöntem, temel bellek yöneticilerini etkin bir şekilde geleneksel belleğe ve daha sonra diğer her şeyi UMA'ya yükler. MSCDEX gibi geleneksel bellek oburluk programları da benzer bir şekilde UMA'ya yüklenebilir, böylece büyük miktarda geleneksel bellek serbest kalır.

pencereler

Windows 3.0'ın artan popülaritesi, Windows uygulamaları DOS'un temel bellek sınırlarından doğrudan etkilenmediğinden, Windows altında çalışan DOS programları (Windows'un kendisi bir çoklu görev yöneticisi olarak işlev görürken) hala böylelikle üst bellek alanının gerekliliğini daha az alakalı hale getirdi kısıtlı. Windows 95'in piyasaya sürülmesiyle, Windows'un bu sürümü CD, ağ ve ses desteği gibi Windows altında çalışan DOS uygulamalarına DOS aygıt sürücülerinin işlevselliğinin çoğunu sağladığından, daha az alakalı hale geldi; Windows 95 DOS kutularının bellek haritası otomatik olarak optimize edildi. Ancak, tüm DOS programları bu ortamda çalıştırılamaz. Spesifik olarak, gerçek moddan korumalı moda doğrudan geçmeye çalışan programlar, çalıştığı sanal 8086 modunda buna izin verilmediğinden çalışmaz . Bu nokta şu anda Intel VT-x (Vanderpool gibi x86 sanallaştırma teknolojileri tarafından ele alınmaktadır) ) ve AMD-V (Pacifica). Ayrıca, Sanal Kontrol Programı Arayüzü (VCPI) API'sini kullanarak geçiş yapmayı deneyen programlar (korumalı moda ihtiyaç duyan DOS programlarının, yukarıda açıklandığı gibi bir bellek yöneticisi tarafından kurulan sanal 8086 modundan girmesine izin vermek için getirilmiştir) Windows 95'te çalışmıyor. Korumalı moda geçiş için yalnızca DOS Korumalı Mod Arabirimi (DPMI) API destekleniyordu.

Uygulama

Sanal 8086 Modu

Üst bellek blokları, sanal 8086 modunda çalışırken genişletilmiş belleği üst bellek alanına eşleyerek oluşturulabilir . Bu ne kadar benzer genişletilmiş bellek kullanılarak taklit edilebilir genişletilmiş bellek üst bellek blok sağlamak ve bu yöntem, genellikle, (örneğin genişletilmiş hafıza yöneticisi tarafından temin edilir, böylece EMM386'için ). Uygulama programlama arayüzü üst bellek blok yönetmek için belirtilen genişletilmiş bellek kartı .

Gölge RAM

Modern olanlar da dahil olmak üzere birçok sistemde, genişletme kartı ROM'unu gölgelemek için ayrılmış belleği üst bellek olarak kullanmak mümkündür. Birçok yonga seti bu amaç için 384 KB'a kadar RAM ayırır ve bu RAM genellikle kullanılmadığından , UMBPCI gibi özel bir aygıt sürücüsü ile gerçek mod üst belleği olarak kullanılabilir.

IBM XT

On IBM XT bilgisayarları, anakart için daha fazla bellek eklemek ve özel kullanmak mümkündü adres dekoder PROM'u üst bellek alanına görünmesi için. Yukarıda açıklanan 386 tabanlı üst bellekte olduğu gibi, ekstra RAM TSR dosyalarını yüklemek için veya bir RAM disk olarak kullanılabilir .

XT sınıfı bilgisayarlar için bir eklenti bellek yönetim birimi olan AllCard , normal belleğin 0xA0000-EFFFF adres aralığına eşlenmesine izin vererek DOS programları için 952 KB'ye kadar vermiştir. Doğrudan video belleğine erişen Lotus 1-2-3 gibi programların bu bellek düzenini işlemek için yama uygulanması gerekiyordu. Bu nedenle, yazılım uyumluluğu pahasına 640 KB bariyer kaldırıldı. Üst bellek alanının bu kullanımı, aygıt sürücülerini ve TSR'leri 1 MB adres alanının üst 384  KB'sine taşıyarak geleneksel belleği boşaltmak için kullanılan üst bellek bloklarını kullanmaktan farklıdır , ancak adreslenebilir bellek miktarını (640 KB ) bozulmamış.

Ayrıca bakınız

Referanslar