【基本資料】

書名:虛擬記憶體:觀念、設計與實作
出版:旗標 1991.08
ISBN:957-717-?????
頁數: 9 章, 542 頁
定價:NT$ 450.0

【自序】

若能以此書榮耀雙親,是我最大的欣慰


如果說硬體是電腦的軀體, 軟體是電腦的靈魂,那麼記憶體可以說是電腦的大腦所在位置了。 所有人類的思維都在大腦中進行,而所有的軟體程式碼以及軟體所需要的資料都必需在記憶體中運算並貯存。這可以解釋記憶體之於電腦的重要性。遺憾的是個人電腦雖然在硬體的中央處理器 (CPU) 方面有長足的進步,但是 DOS 這個擁有廣大客戶群、個人電腦史上最重要的作業系統卻沒有跟上腳步,一直侷限在 8086/8088 的格局裡,導至應用程式的發展受到記憶體方面嚴重的限制。

雖然 DOS 不能直接突破 1 Mega 的定址能力,但是透過各種間接的方法,仍然可以存取超過 1 Mega 的記憶體。這些 1 Mega 以外的輔助記憶體裝置配合本書發展的驅動管理程式,就稱為虛擬記憶體系統,可以使得應用程式發展者不再需要負擔資料量過大而記憶體不足的沉重壓力,

本書適合給對電腦架構以及程式設計已經有經驗的人閱讀。作者假設讀者已經具備 C 語言的寫作能力 ,並且對 DOS 的功能有基本的了解。如果讀者曾經學習過組合語言更佳,對於傳統記憶體的定址方式以及 DOS 和 BIOS 的中斷服務常式一定更有深刻的體會。

研讀本書可以得到記憶體方面完整而豐富的知識 、各種輔助記憶體裝置的差異、優缺點、以及驅動這些輔助記憶裝置的程式技巧。書中的進階部份 (Part II) 更以大型而實用的系統 (程式庫) 為目的,將這些技巧整合起來。作者表現在範例程式中的一些 C 語言寫作技巧以及對系統的規劃方式,對大部份的程式設計者而言,或許也具有參考價值。書中討論的程式,編譯製作成程式庫後, 實用性極高,很容易 embeded 進入您原先的系統中,提昇您軟體的威力。

本書所有程式均以 C 語言撰寫,這是考慮到易讀性的緣故。事實上一小部份最基層的常式如果能夠以組合語言重新撰寫,更能增加程式的執行效率。對於值得以組合語言再寫過的部份書中均特別提出說明, 並提示設計方向和作法。作者非常贊成並鼓勵擁有組合語言能力的人將這些部份再改寫過。

所有書內的 C 程式在 Microsoft C 或 Turbo C 這兩種編譯器下均能順利編譯其奧妙處在於一個前置處理的步驟,在 1.5 節中將有介紹。這是一種值得推薦的作法,如果您的應用程式也希望能夠使用不同編譯器的話。

本書如果能夠帶給讀者任何實質上的幫助,將是作者莫大的快樂。

-- 侯俊傑 (J. J. Hou) -- 80/05/09

 

【目錄】

第一部份 : 基礎技巧篇

第一章 : 基礎觀念
1.1 什麼是虛擬記憶體
1.2 為什麼需要虛擬記憶體
1.3 名稱與觀念
1.4 各式各樣的記憶體驅動程式
1.5 本書的程式和風格

第二章 : 延伸記憶體
2.1 DOS 位址 和 實體位址 (physical address)
2.2 區塊搬移描述表格 (Block Move Description Table) (BMDT).
2.3 BIOS 中斷服務常式 : 中斷 15h  功能 87h、88h
2.4 程式設計 (原始碼與說明文件)
2.5 測試

第三章 : 擴展記憶體
3.1 擴展記憶體規格 (EMS)
3.2 安裝擴展記憶體驅動程式
3.3 BIOS 中斷服務常式 : 中斷 67h  功能 41h、42h、43h、
      44h、45h、47h、48h
3.4 程式設計 (原始碼與說明文件).
3.5 測試
3.6 延伸記憶體和擴展記憶體的比較

第四章 : 磁碟記憶體
4.1 低層次磁碟檔案 輸入/輸出
4.2 DOS 中斷服務常式 : 中斷 21h  功能 36h、3ch、3eh、
      3fh、40h、42h
4.3 程式設計 (原始碼與說明文件)
4.4 三種輔助記憶體裝置驅動程式的函數比較
4.5 POWRDEVC 測試

第二部份 : 進階應用篇

第五章 : 一個快速存取螢幕影像的系統 (POWRVIDO)
5.1 視訊記憶體 (Video Memory) 回顧.
5.2 EGA/VGA 程式設計技巧
* 16 色模式 (Plane System)
* 256 色模式 (Linear Bytes System)
5.3 利用外部檔案 (config file) 指定輔助記憶體配置情況
5.4 一個簡單的記憶體區塊管理.
5.5 POWRVIDO 的內部動作
5.6 程式設計 (原始碼與說明文件)
5.7 POWRVIDO 測試

第六章 : 虛擬記憶體管理系統 (POWRSTOR)
6.1 混合運用三種輔助記憶體裝置
6.2 POWRSTOR 初始陣列
6.3 POWRSTOR 內部運作 (從 memory pool 中配置記憶體)
6.4 程式設計 (原始碼與說明文件)
6.5 POWRSTOR 測試

第七章 : 虛擬記憶體 --- 堆積 (POWRVMEM-heap)
7.1 虛擬記憶體核心部份 (POWRVMEM-kernal)
* 外部檔案 (config file) 指定輔助記憶體配置情況
* 以 POWRSTOR 作為 POWRVMEM 的核心
7.2 什麼是堆積
7.3 虛擬堆積的管理
7.4 程式設計 (原始碼和說明文件)
7.5 測試

第八章 : 虛擬記憶體 --- 一維陣列 (POWRVMEM-1Darray)
8.1 不受限制的陣列大小
8.2 陣列的形成 --- 陣列元素的資料型態
8.3 速度最佳化和空間最佳化
8.4 程式設計 (原始碼與說明文件)
8.5 測試

第九章 : 虛擬記憶體 --- 三維陣列 (POWRVMEM-3Darray)
9.1 不受限制的陣列大小
9.2 陣列的形成 --- 陣列元素的資料型態
9.3 速度最佳化和空間最佳化
9.4 程式設計 (原始碼與說明文件)
9.5 POWRVMEM 測試

第三部份 : 本書程式原始碼列表

* 函數名稱
* 引數說明
* 功能說明
* 原始碼

附錄
A : 記憶體空間配置
B : PowerSTOR 簡介: 一個功能強大的虛擬記憶體程式庫
C : 如何製作本書的程式庫
D : 中英文名辭對照

f306.jpg (10955 bytes)