
1.MS-DOS的系統結構
MS-DOS采用層次模塊結構,它由三個層次模塊和一個引導程序組成。這三個模塊是文件系統(MSDOS.SYS)、命令處理程序(COMMAND.COM)和輸入輸出系統(IO.SYS)。其中輸入輸出系統又由駐在ROM中的基本輸入輸出系統BIOS和系統盤上的BIOS接口模塊兩部分組成。MS-DOS是用戶與物理機器的接口,用戶**它提供的一組鍵盤命令或一組軟中斷和系統功能調用來使用MS-DOS。命令處理程序(COMMAND.COM)可處理MS-DOS和操作員打入的鍵盤命令以及批處理文件。當命令處理程序執行操作員打入的鍵盤命令時,它就啟動相應的程序運行。用戶程序在運行過程中可以調用MS-DOS文件系統提供的一組系統功能調用。MS-DOS文件系統提供的系統功能調用主要有文件的建立、刪除、讀寫以及其它各種文件操作。此外,它還管理內存、外設以及其它系統資源并為應用程序使用這組資源提供相應的系統功能調用。文件系統是MS-DOS的核心部分。當文件系統在處理系統功能調用時,要調用BIOS接口模塊中的設備驅動程序提供的設備讀寫、控制等功能。最后由設備驅動程序調用BIOS驅動設備工作。BIOS是MS-DOS中惟一與設備有關的部分。由于它與硬件的關系較為密切,通常固化在ROM中,故也稱為ROMBIOS。BIOS包括自檢程序、一組設備輸入輸出子程序和裝入程序。引導程序是在磁盤初始化時,由FORMAT命令寫在軟盤或硬盤的0柱0面1扇區上的,它在系統啟動時用來查找和裝入MS-DOS(IO.SYS和MSDOS.SYS)。
2.MS-DOS的存儲管理
MS-DOS是基于單道程序設計方法的操作系統,它最早選用的微處理器芯片是Intel 8088和8086。這類微處理器上共有20根地址總線,因而內存容量為1MB,編址從0開始到220-1結束。其中除MS-DOS的常駐主存部分和硬件用于硬盤驅動、顯示緩沖等需要外,可供用戶使用的內存空間最多還剩余640KB。MS-DOS對用戶空間采用單連續存儲管理方法。當一個用戶程序裝入運行時,MS-DOS把整個用戶區分配給它;當程序運行結束時,MS-DOS收回用戶區以滿足下一個用戶程序的運行要求。用戶區域最多只有640KB,這一限制使許多用戶感到失望,因而從MS-DOS5.0開始管理的內存空間可以擴大到16MB(80286)或4GB(80386、80486),把所管理的內存空間可分成下列幾類:
(1)常規內存把0KB至640KB的內存區域作為基本內存區,稱為“常規內存”,可供所有的程序使用。其中MS-DOS5.0占用了一部分,其余可歸用戶使用。
(2)保留內存指定址在640KB到1MB之間的內存區域,這部分區域也稱“上方內存”(Upper Memory—縮記為UMB)。該區域供硬件使用,保留給屏幕處理、ROMBIOS或其它設備使用。
(3)擴展內存定址在1MB之后的內存稱“擴展內存”,一般程序不能直接使用擴展內存。擴展內存的使用要用XMS(Extended Memory Specification)規范提供支持,所以,擴展內存有時也簡稱XMS。Microsoft的HIMEM.SYS是一個符合XMS規范的擴展內存管理程序,因而,在使用擴展內存前應首先在CONFIG.SYS中加入安裝HIMEM.SYS的命令。擴展內存的第一段,即1MB到1MB+64KB的區域稱為“高內存區”(High Memory Area—縮寫HMA)。用戶可以要求把常規內存中的DOS大部分常駐程序移到高內存區,以騰出更多的空間讓用戶的應用程序使用。
(4)擴充內存擴充內存是由EMS規范支持的內存,它被做成一塊卡的方式插在擴充槽上,擴充內存可簡稱EMS。使用EMS時必須裝入擴充內存管理程序EMM386.EXE。
3.MS-DOS的存儲管理
MS-DOS的設備管理:
(1)塊設備與字符設備
按主存儲器與設備交換的單位來分類,MS-DOS把設備分成兩類:塊設備和字符設備。塊設備交換信息的單位為“塊”,塊設備主要用于存儲文件信息,硬盤和軟盤都是軟設備。在塊設備上存儲信息是按塊組織的,程序執行時可以從這些設備上讀取某個文件信息,也可以將某個文件信息存儲到它們上面去。字符設備交換信息的單位為“字節”,字符設備主要是作為一種輸入輸出工具,例如,鍵盤、顯示器、行式打印機等,字符設備上的信息往往是以字符為單位組織的。
(2)設備的驅動
MS-DOS設備管理的主要任務是提供各類設備驅動程序(包含在BIOS接口模塊中),盡管各類設備的特性有很大差異,但設備驅動程序為文件系統MSDOS.SYS提供了一組統一的設備驅動功能和接口。文件系統就用規定的命令碼調用設備驅動功能,完成一次輸入輸出操作。MS-DOS的設備驅動程序分三部分:設備頭、設備策略模塊和設備中斷模塊。設備頭用于標識設備的類型是字符設備還是塊設備。如果是字符設備,還必須定義該設備的設備名(即以后提到的設備文件名)。如果是塊設備,還要指出該設備對應的驅動器個數(在MS-DOS中稱為單元數)。另外,設備頭必須指出設備中斷模塊和設備策略模塊的入口地址。
(3)在MS-DOS中,除磁盤文件外,把一些常用的標準外部設備也看做文件,稱為“設備文件”。