QEMM

Quarterdeck擴充存儲器管理器(Quarterdeck Expanded Memory Manager,簡稱 QEMM),是由Quarterdeck公司於1980年代末期至1990年代末期所發展的一套存儲器管理軟體。在當時,這是MS-DOS和其他DOS作業系統最流行的存儲器管理軟體。

概述

QEMM可以訪問上層記憶區(UMA 或 UMBs)、擴展存儲器(EMS)、延伸存儲器(XMS)。因為大部分的DOS程式需要大量的傳統存儲器,QEMM可以把一些程式載入到上述存儲器區域,因而增加傳統存儲器的自由空間。當時許多軟體,例如Lotus 1-2-3、Microsoft Windows及一些遊戲軟體,都有使用EMS、XMS。

歷史

它本來叫做QEMM-386。微軟在MS-DOS 4.01加入了HIMEM.SYS for XMS, EMM386.EXE for EMS。較早的 Windows/386 2.1也包含內置EMM提供Windows內的DOS視窗所需的EMS。但這個版本並沒有造出Upper Memory Blocks.

1991年發行的MS-DOS 5.0終於提供了UMBs。MS-DOS的EMM386一定要HIMEM先被載入,但是另一品牌的作業系統DR-DOS卻不用。MS與DR的DOS都要上層記憶區被手動找到並載入,而且MS-DOS需要用戶預先定好多少存儲器要給EMS,多少存儲器要給XMS;然而功能強大的QEMM都不用以上這些額外步驟。

雖然QEMM功能較好,但是仍不敵微軟搭配MS-DOS出售的自行開發軟體,如MS-DOS 6的Memmaker程式。它的最後一版是QEMM 97,可以兼容Windows 95/98/ME, 但技術已經不太一樣。Windows 3.0與其後來版本加入了386增強模式,要求關閉所有的存儲器管理軟體。由於同一時間不可能有多個保護模式核心,而事實上,QEMM是叫Windows 載入特定的VxD周邊驅動程式,取代 Windows原本的功能,那就是WINHIRAM.VXD、WINSTLTH.VXD。

記憶體管理

記憶體管理,是指軟體運行時對計算機記憶體資源的分配和使用的技術。其最主要的目的是如何高效,快速的分配,並且在適當的時候釋放和回收記憶體資源。

一個運行中的程式,譬如網頁瀏覽器在個人電腦或是圖靈機(Turing machine)裡面,為一個進程將數據轉換於真實世界及電腦存儲器之間,然後將數據存於電腦存儲器內部(在計算機科學,一個程式是一群指令的集合,一個進程是電腦在運行中的程式)。存儲器能被實際組織在許多方法裡頭,例如磁帶或是磁碟,或是小數組容量的微晶片。 從1950年代開始,計算機變的更複雜,它被連線於許多種類的存儲器。記憶體管理的任務也變得複雜,甚至必須要在同一台機器上相同的時間運行多個進程。

在存儲器內,一個程式(作業系統)在每一個數據區塊持續地追蹤實體位置,及移動實體上的數據去改善其性能及保證可靠性,對於每個用戶層(user-level)的程式,作業系統分配一段虛擬記憶體空間,當進程起始時,不需要移動數據到實體設備間,數據存於磁碟內的虛擬記憶體空間,也不需要去配置主存空間給該進程,當用戶有需要用到時,他們才會很自由地載入到主存內。

可以想像一個很大的程式,當他運行時變成進程,而大部分的存儲器空間都被存到磁碟內虛擬記憶體地址,需要用到的部分才被載入到存儲器內部提供服務。

延伸記憶體

延伸記憶體eXtended Memory),指的是超過1MB以上的記憶體空間,在配備Intel 80286或以上的CPU的IBMPC上。它是在1988年,由微軟、蓮花研究、英特爾和AST研究共同開會制定出來的規格,他們共同制定了延伸記憶體的定義、應用程式取用延伸記憶體的中斷呼叫,這個標準在MS-DOS的個人電腦時代,成為解決個人電腦記憶體不足的一種方法。

一般來說,在Intel 80286以上的個人電腦,超過640KB部分的RAM,通常都會對映到超過1MB以上的部分,使得在保謢模式下的程式可以存取它們。但即使沒有這種對映,還是有可能可以存取1MB以上的RAM。

延伸記憶體在真實模式只能透過EMS、UBM、XMS、HMA等方式來存取,只有在保護模式下執行的程式才可以直接存取到延伸記憶體。例如:Microsoft Windows,透過全域描述表(GDT)與多個局部描述表(LDT)可以存取這些記憶體,被稱為保護模式是因為被局部描述的節區不能被使用其他LDT的程式存取。被全域描述指派的記憶體節區有更嚴格的限制,當破壞時會引發硬體異常(通常是General Protection Fault),這使得在保護模式下執行的程式不會互相干擾。

保護模式下的作業系統(如Windows)也可以執行真實模式的程式,並提供延伸記憶體給他們。DOS保護模式界面是微軟所提供,在多工環境下使MS-DOS程式可以存取延伸記憶體的方法。

相關詞條

熱門詞條

聯絡我們