操作系統(tǒng):第8章.ppt_第1頁
操作系統(tǒng):第8章.ppt_第2頁
操作系統(tǒng):第8章.ppt_第3頁
操作系統(tǒng):第8章.ppt_第4頁
操作系統(tǒng):第8章.ppt_第5頁
已閱讀5頁,還剩113頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章實例分析 MS DOS操作系統(tǒng) MS DOS是Microsoft公司為IBMPC系列微機研制的一個單用戶 單任務的磁盤操作系統(tǒng) 1981年8月 MS DOS1 0版誕生 它占據當時機器64KB內存中的12KB 支持5 25英寸軟盤 隨著時間的推移 MS DOS不斷地更新版本 1983年3月 推出MS DOS2 0版 1984年8月 推出MS DOS3 0版 MS DOS3 0版有很多的改進版 比如3 1 3 2 3 3等 1988年7月 MS DOS4 0版出現 1991年4月發(fā)布了MS DOS5 0版 目前 可見MS DOS的最高版本為7 X 退出 正是由于MS DOS隨時根據市場的需求被不斷地完善 才使它具有如此頑強的生命力 才能夠獲得如此廣泛的普及與應用 1995年8月 Microsoft公司推出了窗口操作系統(tǒng)Windows95 由于它精美的外觀 菜單式操作以及友好的界面 從而對MS DOS產生了極大地沖擊 但是 MS DOS的實現原理 設計技術和方法 仍然可以給予人們很多的啟迪和借鑒 本章著重講述四個方面的內容 1 MS DOS的進程控制塊 程序段前綴與環(huán)境塊 2 MS DOS對常規(guī)內存的管理以及地址的 分段 表示法 3 MS DOS的文件分配表和樹型目錄結構 4 MS DOS的設備頭鏈以及對塊設備 字符設備的不同管理方法 8 1MS DOS的處理機管理8 2MS DOS的存儲管理8 3MS DOS的文件管理8 4MS DOS的設備管理 8 1MS DOS的處理機管理 8 1 1MS DOS的基本組成MS DOS采用的是層次模塊結構 由一個引導程序和三個程序模塊組成 如圖8 1所示 各部分的功能如下 BOOT 引導程序 引導程序BOOT是在磁盤初始化時 由格式化命令FORMAT寫在軟盤的第0扇區(qū)或硬盤的主引導扇區(qū)上的 它是一個極短的程序 主要的任務是檢查哪個磁盤驅動器為DOS的系統(tǒng)盤 然后再檢查系統(tǒng)盤根目錄下的頭兩個文件是否是IO SYS和MSDOS SYS 如果為真 則把IO SYS文件讀入內存 從而完成引導任務 可見 DOS的引導程序只在系統(tǒng)啟動時起作用 IO SYS及ROM BIOS 這是MS DOS的輸入 輸出管理模塊 它由兩部分構成 在系統(tǒng)盤上的IO SYS 是進行輸入 輸出的接口模塊 固化在ROM中的ROM BIOS 是一個具體的設備驅動程序 在DOS系統(tǒng)初啟時 由引導程序負責將IO SYS裝入內存 引導任務結束 轉而執(zhí)行IO SYS中的系統(tǒng)初始化程序 該程序負責調入MSDOS SYS 負責解釋DOS系統(tǒng)的配置文件 CONFIG SYS 設置系統(tǒng)的運行環(huán)境 負責裝入COMMAND COM模塊 在系統(tǒng)運行過程中 接到輸入 輸出請求后 先由IO SYS對命令加以解釋 轉換成有關的設備控制命令 然后再與ROM BIOS中具體的設備驅動程序發(fā)生關聯 進而完成用戶所要求的輸入 輸出任務 MSDOS SYS 這是DOS內核 一方面實施對DOS磁盤文件的操作管理 另一方面還管理內存 外部設備以及其他系統(tǒng)資源 并為用戶使用DOS系統(tǒng)和這些資源提供諸多的系統(tǒng)調用 COMMAND COM 這是命令處理程序模塊 是MS DOS操作系統(tǒng)與用戶之間的接口 它接收用戶輸入的各種DOS命令 解釋后加以執(zhí)行 它將負責設置DOS的有關中斷向量 負責檢查啟動時有無DOS的自動執(zhí)行批處理文件 AUTOEXEC BAT 若有 則調入執(zhí)行 然后處于等待用戶輸入的狀態(tài) COMMAND COM在內存由兩部分組成 一是COMMAND COM的暫駐內存模塊 CCPT 一是COMMAND COM的常駐內存模塊 CCPR 它們分散存放在不同的區(qū)域中 如圖8 2所示 COMMAND COM的暫駐內存模塊 CCPT 定位在內存儲器 640KB 的最高端 這個區(qū)域實際上是整個內存中的可用存儲空間 即可以分配給用戶程序使用的空間 因此 如果用戶程序很大 就有可能將其覆蓋掉 正因為這個原因 才把它稱為 暫駐內存模塊 它的內容是 命令接收及解釋程序 內部命令程序 批命令處理程序以及外部命令裝入程序四個部分 從其組成可以看出 該模塊負責接收并解釋用戶通過鍵盤鍵入的命令 如果是內部命令 則立即從此模塊中調用相應的程序執(zhí)行 DOS把常用的命令稱為內部命令 若是外部命令 DOS把不常用的命令稱為外部命令 則通過INT21H中斷處理程序 將外部命令調入并執(zhí)行 COMMAND COM的常駐內存模塊 CCPR 與暫駐內存模塊隔著可用存儲空間相對而放 該模塊很小 主要就是一個檢查并重新安裝暫駐模塊的程序 DOS內部是這樣設計的 總是讓用戶程序執(zhí)行完畢后返回到CCPR 于是只要用戶程序執(zhí)行完 CCPR就會立即投入運行 它檢查CCPT是否被用戶程序覆蓋 如果被覆蓋 則啟動重新安裝程序 將CCPT從它所在的系統(tǒng)盤區(qū)調入到它所在的內存高端區(qū)域中 DOS把它的COMMAND COM模塊分成兩個部分 各占一個存儲區(qū) 一個常駐 一個暫駐 存儲區(qū)域雖然分隔兩處 卻是DOS完成命令處理的不可分割的整體 暫駐模塊完成命令處理的主體工作 常駐模塊確保系統(tǒng)的正常運行 DOS之所以這樣精心地安排COMMAND COM 主要是為了給用戶提供盡可能大的存儲空間 提高整個內存儲器的利用率 MS DOS的三大模塊 IO SYS MSDOS SYS COMMAN COM 形成了一個層次結構 命令處理程序 COMMAN COM 是人 機界面 是體現MS DOS操作系統(tǒng)外部特性的模塊 因此它應該在最上層 以便與用戶進行交往 DOS內核 MSDOS SYS 主要是實行文件管理 也兼管外部設備 它起到呈上啟下的作用 因此處于中間層 BIOS與計算機硬件關系密切 所以放在最下層 層次結構使系統(tǒng)清晰 有條理 8 1 2MS DOS的進程1 程序段前綴 PSP 在MS DOS中 由代碼 數據 工作棧組成的用戶程序 最終通過連接 形成一個擴展名為 EXE的可執(zhí)行浮動代碼程序 這個程序的地址空間就是用戶作業(yè)的邏輯地址空間 當通過系統(tǒng)調用EXEC調用它時 就在內存可用存儲空間里為其分配一個連續(xù)的分區(qū) 可以看出 MS DOS實行的是可變式分區(qū)存儲管理方案 成為它的絕對地址空間 但是要注意 這個分區(qū)的尺寸不等于用戶地址空間大小 而是用戶地址空間加上256個字節(jié) 如圖8 3所示 這個加在程序絕對地址空間前面的256個字節(jié) 就是該程序的程序段前綴 PSP 也可以說是DOS進程的進程控制塊 2 環(huán)境塊 EVB 在MS DOS中 進程的程序段與程序段前綴總是被分配在同一個內存分區(qū)中 環(huán)境塊則被安排在另一個分區(qū) 進程的環(huán)境塊由一系列格式為 變量名 參數 的環(huán)境參數組成 以便為進程的運行提供一個良好的環(huán)境 正因為如此 可以把DOS中進程的環(huán)境塊視為進程控制塊的擴充 即是進程的擴充控制塊 進程程序段前綴與環(huán)境塊之間的聯系 如圖8 4所示 它用到了DOS對常規(guī)內存管理中設置的數據結構 內存控制塊 MCB 下面為此做一些解釋 為了管理空閑的和已經分配的內存分區(qū) MS DOS在每個分區(qū)的前面開辟一個固定的區(qū)域 這就是該分區(qū)的內存控制塊 MCB 在MCB中 有一項 分區(qū)使用標志 當一個分區(qū)已經分配時 在此填寫該分區(qū)的起始地址 比如 對于程序和程序段前綴所在的分區(qū) 它的MCB中所填寫的正是程序段前綴PSP的起始地址 即圖8 4中標有 的指針所示 對于環(huán)境塊的 分區(qū)使用標志 在使用上有一些特殊 即在這里填寫的不是自己所在分區(qū)的起始地址 填寫的仍然是它所依附的進程的PSP地址 即圖8 4中標有 的指針所示 這樣一來 DOS的進程控制塊 即PSP 中有指向其環(huán)境塊的指針 而環(huán)境塊能從自己MCB的 分區(qū)使用標志 中得到進程控制塊的地址 一個進程的程序段前綴與環(huán)境塊之間就這樣被聯系在一起了 8 1 3MS DOS的作業(yè)管理鑒于MS DOS的單用戶 單任務 其內存中不可能允許有多個作業(yè)并存的情形出現 因此也就沒有作業(yè)調度的問題 不過 DOS既提供有脫機的作業(yè)控制方式 成批處理作業(yè) 也提供有聯機的作業(yè)控制方式 鍵盤命令或者菜單 1 MS DOS的命令處理 聯機方式 MS DOS中的命令處理模塊 COMMAND COM 提供了一組操作命令 用戶可以通過鍵盤鍵入命令 MS DOS把功能簡單 使用頻率較高的操作命令稱為 內部命令 如前所述 內部命令程序都在COMMAND COM暫駐內存模塊中 只要暫駐內存模塊在內存 在接收到輸入的一條內部命令時 就能夠直接調用到它并執(zhí)行 外部命令是一些使用頻度較小的命令 它們都是以一個個文件的形式存放在磁盤上 當在內存的暫駐內存模塊接收到一個外部命令時 必須先將它從磁盤上讀入內存 然后再執(zhí)行 所以 外部命令的執(zhí)行要比內部命令的執(zhí)行多一個讀盤的過程 圖8 5給出了在MS DOS管理下 從一個FORTRAN語言源程序的建立到執(zhí)行完畢的整個作業(yè)管理過程 作為MS FORTRAN3 3編譯系統(tǒng) 由六個文件組成 FOR1 EXE FORTRAN LIB LINK EXE FOR2 EXE LIB EXE和MATH EXE 將FORTRAN源程序從編輯到運行 可以分為四步走 編輯過程 編譯過程 連接過程和執(zhí)行過程 如果出錯 每一步都有可能循環(huán)重復再做 如圖8 5的中間所示 1 源程序的建立 啟動DOS 運行一個文字編輯軟件 比如DOS自帶的EDLIN 見圖8 5右側用戶命令所示 就可以輸入FORTRAN的源程序了 假定為該源程序起名為 ZONG FOR 這就是源程序的編輯階段 2 編譯 FORTRAN源程序需要經過兩次編譯才能夠生成目標程序 第一趟編譯由MS FORTRAN3 3的FOR1 EXE完成 功能是詞法分析 產生中間文件供第2趟編譯使用 第2趟編譯由FOR2 EXE完成 功能是進行語法 語義分析 最終產生目標代碼 文件名為ZONG OBJ 這是一個浮動代碼程序 還不能直接投入運行 為了完成編譯 用戶在鍵盤上直接鍵入命令FOR1和FOR2即可 3 連接裝配 在鍵盤上鍵入命令LINK 調用FORTRAN的LINK EXE 對目標程序ZONG OBJ與函數庫以及其他已經過編譯的目標程序進行連接裝配 經過這一步所產生出來的就是可執(zhí)行文件ZONG EXE 4 運行 連接裝配后所產生的是一個可以直接投入運行的程序 在DOS提示符下 鍵入命令ZONG 就可以得到所希望的結果 這是MS DOS為用戶提供的聯機作業(yè)控制方式 在整個控制過程中 是否下一步進行什么工作 何時進行下一步工作 以及怎樣進行下一步工作 都完全由用戶來加以控制 從表面上看 MS DOS并沒有向用戶提供顯式的作業(yè)控制命令 其實 這一切都隱含在DOS的命令處理程序COMMAND COM中 該程序負責接收鍵盤輸入的各種命令 另外 在MS DOS下 任何一個可執(zhí)行程序都等同于一個外部命令 因此 在鍵盤上鍵入EDLIN FOR1 FOR2 LINK和ZONG等 MS DOS都會到磁盤上把相應的程序讀入內存 然后執(zhí)行 從而達到控制作業(yè)運行的目的 2 MS DOS的批處理 脫機方式 在MS DOS中 以 BAT為擴展名的是所謂的 批處理 文件 如果希望多次重復執(zhí)行若干條命令 注意 這不僅指DOS提供的命令 它也包含任何一個可執(zhí)行程序 或希望有選擇地執(zhí)行不同的命令等情形 就可以把它們編寫成為一個批處理程序 以完成這樣的任務 批處理文件無須編譯 只要鍵入文件名 就由COMMAND COM模塊一條一條地讀入并解釋執(zhí)行 MS DOS向用戶提供專門用于編寫批處理程序的一些語句 以便能夠在程序中實現分支 循環(huán)和嵌套等程序結構 主要的有 ECHO 顯示 FOR 重復執(zhí)行 GOTO 無條件轉移 IF 條件判斷 PAUSE 暫停執(zhí)行 REM 注釋 SHIFT 移位替換參數 和CALL 嵌套調用另一個批處理程序 在MS DOS中 有三類批處理文件 一是不帶參數的普通批處理文件 它們是一些由用戶自己編寫的批處理文件 二是帶參數的復雜批處理文件 在這種批處理文件里 可以出現參數 0 9 其中 0即是批處理文件名本身 1 9出現在批處理程序中 調用時 用實際參數替換 1 9 三是名為AUTOEXEC BAT的自動執(zhí)行批處理文件 它總是位于系統(tǒng)啟動盤根目錄上 只要該文件存在 DOS啟動時它就會被自動執(zhí)行 因此 如果用戶想啟動后能有一個適合自己的工作環(huán)境 那么就可以把自己的設想編寫進該文件中 8 2MS DOS的存儲管理 自從DOS5 0版推出以來 使得MS DOS的內存模式趨于復雜化 整個地址空間可以分為四個獨立的區(qū)域 常規(guī)內存區(qū) 上位內存區(qū) 高端內存區(qū) 擴充內存區(qū) 各有其不同的大小與屬性 之所以會造成這么復雜的存儲結構 究其原因還是由于機器本身的結構引起的 為了保持與以往低版本的兼容性 MS DOS的存儲管理 仍然只局限于對常規(guī)的640K內存進行 本節(jié)主要介紹MS DOS對常規(guī)內存的管理 另外也對MS DOS的各種內存區(qū)域做一些說明 8 2 1MS DOS對常規(guī)內存的管理從總體上說 MS DOS對常規(guī)640KB內存的管理 采用的是靜態(tài)式分區(qū)存儲管理技術 向用戶提供多種存儲分配策略 但又有其自身的某些特點 每一個調入內存的程序 無論當前是否正處于執(zhí)行 MS DOS都為其分配一個連續(xù)的內存分區(qū) 不過MS DOS規(guī)定 從地址0開始每16個字節(jié)為一個 節(jié) 它是進行存儲分配的單位 比如 一個程序需要8K字節(jié)的存儲空間 那么MS DOS就分配給它512節(jié) 因為8192 16 512 為了管理內存中所有已分配的和空閑的分區(qū) MS DOS在每個內存分區(qū)的前面都開辟一個16個字節(jié) 即一個節(jié)長 的區(qū)域 在它的里面存放該分區(qū)的尺寸和使用信息 這個區(qū)域被稱為是一個內存分區(qū)所對應的內存控制塊 MCB 其結構如圖8 6所示 一個分區(qū)的內存控制塊里主要記錄如下信息 分區(qū)性質標志 用于記錄該分區(qū)是否是整個常規(guī)內存的最后一個分區(qū) 如果是 Z 則表示是整個常規(guī)內存中的最后一個分區(qū) 如果是 M 則表示是常規(guī)內存中的非最后一個分區(qū) 分區(qū)使用標志 用于記錄該分區(qū)是一個已分配區(qū)還是一個空閑區(qū) 如果這里記錄的是0000H 則表示這是一個空閑分區(qū) 如果是一個已分配的分區(qū) 則這里記錄它所管理的那個分區(qū)的起始地址 分區(qū)尺寸 用于記錄除去MCB所占用的一節(jié)外 所管轄的整個分區(qū)的大小 多少節(jié) 比如圖8 7 a 給出了一個分區(qū) 從其分區(qū)性質標志為 Z 可以知道 它是整個內存中的最后一個分區(qū) 從分區(qū)使用標志為 0000H 可以知道 它是一個空閑分區(qū) 可以參與分配 從分區(qū)尺寸為512可以知道 它的長度是8KB 又比如 圖8 7 b 給出了一個分區(qū) 從其分區(qū)性質標志為 M 可以知道 它是內存中的某一個分區(qū) 從分區(qū)使用標志為一個地址可以知道 它已經被分配 所管轄的分區(qū)的起始地址就在此記錄著 從分區(qū)尺寸為512可以知道 它的長度是8KB MS DOS采用這種方法管理內存中的分區(qū)后 在各分區(qū)之間建立起了這樣一種關系 從一個內存控制塊的起始地址出發(fā) 加上一節(jié)長度 即16個字節(jié) 就到達該控制塊所管理的內存分區(qū) 在此基礎上 再加上該分區(qū)的長度 它在內存控制塊里記錄著 就到達下一個分區(qū)的內存控制塊的起始位置 于是 MS DOS在各個分區(qū)之間雖然沒有設置任何指針指向 但卻通過上述方法 可以從一個分區(qū)的MCB出發(fā) 順序找到下面各個分區(qū)的MCB 從中得到該分區(qū)的使用信息 猶如通過MCB組成了一個管理內存分區(qū)的MCB鏈 利用這種辦法 也就能夠實行分區(qū)的分配和釋放操作了 MS DOS較高版本對常規(guī)內存的分配 提供了可做出選擇的三種方法 1 最先適應法 從最低地址的MCB開始 順著MCB鏈往下搜索 鏈上第一個滿足存儲申請尺寸的空閑分區(qū)作為分配對象 然后MS DOS從該分區(qū)開始的低地址處往高地址方向劃分出相當尺寸的分區(qū)進行分配 剩余部分形成一個新的空閑分區(qū) 2 最佳適應法 從最低地址的MCB開始 順著MCB鏈往下搜索 從鏈上所有滿足存儲申請尺寸的空閑分區(qū)中選出最小的那個分區(qū)作為分配對象 然后MS DOS從該分區(qū)開始的低地址處往高地址方向劃分出相當尺寸的分區(qū)進行分配 剩余部分形成一個新的空閑分區(qū) 3 最后適應法 從最低地址的MCB開始 順著MCB鏈往下搜索 從鏈上找出滿足存儲申請尺寸的最后那個空閑分區(qū)作為分配對象 然后MS DOS從該分區(qū)高地址往低地址方向劃分出相當尺寸的分區(qū)進行分配 剩余部分形成一個新的空閑分區(qū) 系統(tǒng)初啟時 MS DOS默認的是最先適應法 如果希望采用新的存儲分配策略 可以通過 獲取或設置分配策略 系統(tǒng)調用達到目的 在MS DOS中 該系統(tǒng)調用的功能號為58H 在此系統(tǒng)調用中 包含兩個子功能 0號子功能用于獲得當前系統(tǒng)采用的分配策略 1號子功能用于重新設置分配策略 MS DOS以00H代表最先適應法 01H代表最佳適應法 02H代表最后適應法 MS DOS是通過 申請內存分區(qū) 系統(tǒng)調用來實施空閑分區(qū)分配的 在MS DOS中 該系統(tǒng)調用的功能號為48H 該系統(tǒng)調用根據當時采用的存儲分配算法 沿著MCB鏈去尋找一個滿足條件的空閑分區(qū)加以分配 其功能主要是先進行空閑分區(qū)的合并工作 然后再進行分區(qū)的分配 要注意 在進行分區(qū)合并時 總是只考慮它后面分區(qū)的情形 如果后面分區(qū)是一個空閑的 那么就將兩者合并成一個大的空閑分區(qū) 合并后的這個分區(qū)的 分區(qū)性質標志 應該嗆喜 暗暮笠桓隹障蟹智 腦 曛盡 8 8給出了兩個分區(qū)合并的情形 在圖8 8 a 中 欲釋放的內存分區(qū)為8KB 512節(jié) 在它的下面有一個原來就是空閑的分區(qū) 長度為4KB 256節(jié) 圖8 8 b 為合并后的情形 合并后的分區(qū)長度為12KB 768節(jié) 分區(qū)的使用標志是 0000H 分區(qū)的性質標志是 Z 最后一個分區(qū) MS DOS是通過 釋放內存分區(qū) 系統(tǒng)調用來實施分區(qū)回收工作的 在MS DOS中 該系統(tǒng)調用的功能號為49H 要注意的是 該系統(tǒng)調用只管分區(qū)的回收 不過問是否需要進行空閑分區(qū)的合并 8 2 2PC機地址的構成 分段 表示法要搞清楚MS DOS的各種存儲模式 就首先要了解PC機的地址結構 存儲器是以字節(jié)為單位存儲信息的 每個字節(jié)都有一個與之相對應的地址 IBMPC機的字長是兩個字節(jié) 即16個二進制位 因此用一個字長來表示地址 可以從0到65535 若用十六進制表示 則為0 FFFFH 這就是說 16位字長的機器 可以直接表示的存儲空間是64KB 另一方面 86系列各類處理器的內存地址引線數目如圖8 9所示 這就產生了矛盾 用字長可以直接表示的存儲空間小 由處理器地址引線可以直接訪問的存儲空間來得大 也就是說 實際的物理存儲器要大 就拿8088為例 這個矛盾具體表現為 16位字長可以表示的地址范圍是0 FFFFH 十六進制表示 即64KB 而通過20根地址引線能夠直接訪問的地址范圍是0 FFFFFH 十六進制表示 即1024KB 1MB 它需要用20個二進制位才能表示出來 用一個字長是無法表示的 為了利用一個字長表示出地址引線可以直接達到的存儲范圍 在IBMPC機中 采用了構成存儲器地址的 分段 表示法 前面已經提及 MS DOS把16個字節(jié)算做一個 節(jié) 用它做為存儲分配的單位 另外 MS DOS還規(guī)定從任何一節(jié)開始的 最多64KB 即4096節(jié) 大小的存儲區(qū)域為一個 段 由于一段最長為64KB字節(jié) 因此一個段內各個單元的相對地址正好可以用一個字長表示出來 特別要注意 根據段的定義 在MS DOS中 段只能從某一個節(jié)開始劃分 而不能從隨便一個內存單元開始劃分 比如圖8 10 a 中 仍以8088為例 它的物理地址空間為1MB 其中 存儲單元0 00010H 00020H等都是一個節(jié)的開始地址 十六進制表示 因此 從0地址開始往下的一個大小為20KB的存儲區(qū)域 0 Y 構成一個MS DOS的段 從00010H地址開始往下的一個大小為12KB的存儲區(qū)域 00010H X 構成一個MS DOS的段 從00020H地址開始往下的一個大小為64KB的存儲區(qū)域 00020H Z 構成一個MS DOS的段 這些都是段的正確例子 又比如圖8 10 b 從00010H地址開始往下的一個大小為78KB的存儲區(qū)域 00010H A 不構成一個段 因為雖然它起始于一個節(jié) 但長度卻超過了64KB 用MS DOS的一個字長已無法表示出它里面含有的所有單元地址了 從00018H地址開始往下的一個大小為24KB的存儲區(qū)域 00018H B 不構成一個段 因為它沒有在一節(jié)處開始 從圖8 10 a 可以發(fā)現 在此物理空間里 凡是一個節(jié)的地址 其最后4位肯定是0 這是一個很重要的特征 也是一個很容易理解的特征 因為一節(jié)是16個字節(jié) 2的4次方為16 所以節(jié)的地址的最低4位只能是0 這個特征說明 可以用一個字長來表示一個節(jié)的物理地址的高16位 并理解它的低4位為0 有了這些基礎 就可以把1MB存儲空間里的任何一個地址用 分段 的方法表示出來了 所謂存儲空間地址的 分段 表示法 就是用 段址 段內位移 來表示20位的單元地址 這里 段址 是指某一段的起始地址 由于段總是從節(jié)開始 低4位一定是0 故只需保存它的高16位 使用時再把低4位0補上 這里的 段內位移 是指在一個段內其單元相對于段址的偏移量 比如 圖8 11中 在節(jié)地址為00020H處開始往下有一個長度為1KB的段 那么用16位字長表示段址應該是0002H 是地址去掉低4位的0 在這一段中 所有地址的段址都是它 見圖8 11左數第1列 該段共有1024個單元 在此段內的位移按十進制表示是0 1023 按十六進制表示是000H 03FFH 見圖8 11左數第2列 或右數第1列 物理地址的形成實際上是在段址后面添加一個0后與段內位移相加的結果 總結上述可以得出 由 段址 段內位移 形成一個物理地址的過程如圖8 12所示 即 在十六位段址的后面添加4位 然后和十六位的段內位移相加 從而得到所對應的物理地址 雖然一個單元的物理地址是唯一的 但因為一個單元可以被劃分在不同的存儲段中 因此用 段址 段內位移 表示單元地址時 可能出現不同的表示結果 在IBMPC機里 設有四個16位的段寄存器 每個寄存器里可以存放一個段址的高16位 它們是 代碼段寄存器CS 數據段寄存器DS 棧段寄存器SS以及附加段寄存器ES 一個進程運行時 就把涉及它的各段段址存放在相應的段寄存器中 需要產生一個20位的地址時 CPU就會根據當時的情形 選擇適當的段寄存器 將它里面的內容左移4位 形成低4位為0 然后再和段內位移相加 得到20位的物理地址 8 2 3MS DOS的各種內存區(qū)域圖8 13給出了MS DOS四個存儲區(qū)域 常規(guī)內存區(qū) 上位內存區(qū) 高端內存區(qū)和擴充內存區(qū)的劃分情形 下面對它們做一些簡單的說明 1 常規(guī)內存區(qū)2 上位內存區(qū)3 高端內存區(qū)4 擴展內存區(qū)和擴充內存區(qū) 8 3MS DOS的文件管理 8 3 1MS DOS文件管理綜述在MS DOS中 按照文件的內容 同樣把文件分成普通文件 目錄文件和特殊文件三類 特殊文件是針對設備而言的 普通文件和目錄文件則都存放在硬盤或軟盤上 無論是硬盤還是軟盤 在使用前都需要對磁盤的整個存儲區(qū)域進行統(tǒng)一安排 以便規(guī)定各個區(qū)域的具體用途 1 對于軟盤 在使用前必須先用FORMAT命令進行格式化 該命令的功能是按照格式化后軟盤的容量來劃分磁道和扇區(qū) 然后再把整個盤片劃分成如圖8 14所示的5個區(qū)域 成為一個盤卷 引導扇 引導扇為整個盤卷的第0扇區(qū) 它包含兩部分內容 一是在前面提及過的引導程序 BOOT 一是該盤卷的基本參數表 BPB 在BPB中 有關該盤卷的主要參數有 磁頭數 單面還是雙面 每個磁道的扇區(qū)數 總扇區(qū)數 每個扇區(qū)的字節(jié)數 文件分配表 FAT 的個數 每個文件分配表占用的扇區(qū)數 根目錄的項數以及每簇所含扇區(qū)數 簇 是MS DOS進行磁盤存儲空間分配的單位 MS DOS規(guī)定1簇由若干個連續(xù)扇區(qū)組成 并且所含扇區(qū)數必須是2的整數次方 比如1簇為1個扇區(qū) 為2個扇區(qū) 為4個扇區(qū) 為8個扇區(qū) 等等 文件分配表 FAT 在MS DOS的文件管理中 文件分配表起到很重要的作用 它用來記錄普通文件和目錄文件在盤卷文件存放區(qū)里占用的存儲空間 一般地 系統(tǒng)將設置兩個完全一樣的文件分配表FAT1和FAT2 以便在必要時 能夠用另一個做恢復工作 保證系統(tǒng)的安全運行 一個盤卷有幾個文件分配表 每個文件分配表占用多少扇區(qū) 都記錄在引導扇中 有關文件分配表的問題 后面還要詳細介紹 根目錄區(qū) 根目錄區(qū)用來存放盤卷根目錄下的各個目錄項內容 在MS DOS中 一個文件的目錄項要占用32個字節(jié) 由于盤卷格式化時規(guī)定了根目錄的項數 因此在一個盤卷中 根目錄中擁有的目錄項數是一定的 文件存放區(qū) 文件存放區(qū)用于存放普通文件和目錄文件 除根目錄以外 的內容 整個盤卷 去除引導扇 文件分配表和根目錄區(qū)所占用的扇區(qū)后 剩余的扇區(qū)就完全做為文件存放區(qū)使用了 2 對于硬盤 在使用之前必須經過如下3步處理 低級格式化 使用FDISK命令對硬盤進行分區(qū) 使用FORMAT命令進行高級格式化 低級格式化的任務主要有兩個 一是對整個硬盤按磁頭 按盤面劃分磁道和扇區(qū) 一是對磁盤上的所有 壞 扇區(qū)做上標記 購買微機時 硬盤一般都已經經過了低級格式化 用戶不必去做這項工作 用FDISK對硬盤分區(qū) 就是把經過低級格式化后的整個硬盤 按照用戶所需要的容量劃分成不同類型的區(qū)域 對于MS DOS 硬盤的分區(qū)有兩種類型 一是MS DOS的主分區(qū) 在該分區(qū)里存有MS DOS操作系統(tǒng) 其盤符 即一個盤區(qū)的標識 必須是 C 當系統(tǒng)是從硬盤啟動 MS DOS也可以通過軟盤啟動 不過這時一定是通過A盤 且在A盤驅動器里插入的是一張系統(tǒng)盤 時 就由此分區(qū)取得對計算機的控制權 一是MS DOS的擴展分區(qū) 擴展分區(qū)只能作為數據盤使用 不能承擔計算機的啟動任務 只有在把硬盤容量的一部分總體劃歸成擴展分區(qū)后 才能對該分區(qū)再細劃分若干個小分區(qū) 形成一個個邏輯磁盤 其盤符由FDISK命令依序自動分配為D E F 如圖8 15所示 用FDISK命令對硬盤進行分區(qū)時 就把物理上的第1扇區(qū)開辟為整個磁盤的主引導扇 在那里存放有主引導程序和記錄硬盤分區(qū)的有關信息 使用FORMAT命令對磁盤各分區(qū)進行格式化 就與對軟盤進行格式化相當 即把硬盤的一個分區(qū)視為一張很大的軟盤 對它進行盤面的劃分 有引導扇 并在其中建立基本參數表BPB 文件分配表區(qū) 根目錄區(qū)以及存放文件的文件存放區(qū) 在圖8 15中 下面畫的是某一個磁盤分區(qū)的放大效果 可以看出 對一個分區(qū)的安排 與一張軟盤相同 最初的MS DOS采用的是一級目錄結構 即直接通過文件名查找目錄 隨之處理I O 后來 MS DOS揉進了一些UNIX操作系統(tǒng)的風格 開始采用樹型目錄結構 使得其文件管理更加符合用戶使用的要求 MS DOS的文件名由兩個部分組成 基本文件名和擴展名 基本文件名可以有最多8個字符組成 出現在文件名中的字母 不區(qū)分大小寫 因此在MS DOS中 書寫成 ABC Abc或abC表示是相同的一個文件 要注意的是 對于UNIX來說 這樣書寫代表了3個不同的文件 在基本文件名的后面 可以跟隨擴展名 擴展名是可選的 擴展名總是以一個點開始 然后是1到3個字符 在MS DOS中 經常用擴展名來識別文件的性質 最常用的擴展名有 bat 一個可以解釋執(zhí)行的批處理文件 com 可執(zhí)行的二進制命令文件 doc 文檔文件 exe 可執(zhí)行的二進制文件 obj 由編譯程序產生的目標代碼文件 sys 系統(tǒng)文件或設備驅動程序文件 txt ASCII文本文件 在MS DOS 從根目錄出發(fā) 經過子目錄 然后到達一個文件的路徑 稱為該文件的路徑名 要注意的是 MS DOS路徑名之間是用字符 進行分隔 這一點又與UNIX不同 UNIX是用字符 做為路徑分隔符的 這意味著UNIX文件 usr ast zong 在MS DOS中應該寫為 usr ast zong 除了有從根目錄 開始的絕對路徑外 MS DOS也有從當前目錄開始的相對路徑 并經常用字符 代表當前目錄 用 代表當前目錄的上一級目錄 父目錄 MS DOS為文件賦予某些屬性 記錄在該文件的目錄項中 只讀 R 具有此屬性的文件不能被修改 存檔 A 上次備份后又被修改的文件具有此屬性 在MS DOS中 用MSBACKUP 備份或恢復文件 RESTORE 恢復備份文件 和XCOPY 拷貝目錄機器子目錄和文件 等命令 都會涉及到文件的歸檔 也可以用ATTRIB 顯示和修改屬性 命令來查看文件現有的屬性和修改其屬性 系統(tǒng) S 具有此屬性的文件 不能通過DEL 刪除文件 命令刪除 通常 MS DOS的系統(tǒng)文件屬于此列 隱藏 H 不希望被DIR 顯示文件和子目錄 命令列出的文件 可以設置此屬性 卷標 V 表示該目錄項為一個子卷標 目錄 D 表示該目錄想是一個子目錄 MS DOS支持多個磁盤的文件系統(tǒng) 但沒有像UNIX所提供的那種安裝功能 沒有把多個磁盤統(tǒng)一在一個根目錄下 因此 在MS DOS下 常會出現從這個盤切換到另一個盤 也就是從這個文件系統(tǒng)切換到另一個文件系統(tǒng)的情形發(fā)生 在每一個盤上都可以設置自己的當前目錄 切換也就在當前目錄之間進行 圖8 16給出了UNIX和MS DOS文件系統(tǒng)的簡略對比 8 3 2MS DOS的文件分配表 FAT MS DOS通過盤卷上的文件分配表 記錄普通文件和子目錄文件占用磁盤存儲空間的情形 FAT中的表目總是從0開始順序編號 表目0和1被用來存放磁盤介質標志等信息 因此 一個文件分配表從第2個表目開始 才真正用來記錄磁盤空間的分配情形 文件分配表到底有多大 這與磁盤上文件存放區(qū)包含多少簇有關 文件分配表的表目數 是磁盤文件存放區(qū)上所有的簇數加2 在前面已經知道 MS DOS是以簇為單位分配磁盤上的文件存放區(qū)的 為了與文件分配表配合 文件存放區(qū)在按照簇的尺寸劃分后 規(guī)定從2開始順序編號 于是 文件分配表的第2個表目 就對應于磁盤文件存放區(qū)上第2簇的使用情況 但是要記住 磁盤上文件存放區(qū)的第2簇實際上是第1個簇 只是由于編號從2開始 一般地 文件分配表上第i個表目 就對應于磁盤文件存放區(qū)上第i簇的使用情況 通過這種辦法 在文件分配表表目與文件存放區(qū)的簇之間 建立起了一一對應的關系 從文件分配表表目的內容 就能得到它所對應的簇的當前使用情況 一個文件總是占用存放文件區(qū)中的若干個簇 每個簇都有自己的編號 分配給文件的第1個簇的簇號 MS DOS把它登記在該文件的目錄項中 下一個簇的簇號總是登記在以其前一個簇的簇號為編號的文件分配表的相應表目中 這樣一來 在文件分配表中形成了文件占用存儲空間的 簇鏈 從文件目錄項中得到文件所在第1簇的簇號后 順著文件分配表相應表目中記錄的簇號 就能夠逐一找到整個文件在盤卷中占用的簇 圖8 17給出了文件分配表的一個例子 在圖中 有三個文件A B C 分配給文件A的是第6簇 第8簇 第4簇和第2簇 文件B占用第12 5和9簇 文件C占用第3 15和10簇 于是 在文件A的文件目錄項中存放著它占用的第1個簇的簇號6 在文件分配表的第6個表目中填寫它占用的第2個簇的簇號8 在文件分配表的第8個表目中填寫它占用的第3個簇的簇號4 在文件分配表的第4個表目中填寫它占用的第4個簇的簇號2 在文件分配表的第2個表目中填寫標志EOF 表明文件A的結束 同樣地 可以形成文件B和文件C的簇鏈 在圖8 17的文件分配表中 使用了一些象征性的標志 比如標有FREE標志的表目 表示所對應的簇為空閑的簇 標有BAD標志的表目 表示所對應的簇為壞簇 不能分配 等等 具體實現時 不用它們做為標志 向一個文件 包括子目錄文件 中追加記錄時 就要涉及簇的分配 刪除一個文件或子目錄 就會涉及到簇的釋放 就文件分配表而言 刪除文件即是沿著該文件的簇鏈 將各簇號對應的FAT表項內容置為FREE 變?yōu)榭梢灾匦率褂玫谋眄?刪除子目錄時 首先要判定該子目錄是否是當前目錄 若是 則不準刪除 其次是要判定該子目錄是否為空 只有當子目錄中只剩下 項和 項時 該子目錄才能被刪除 通過了這兩關 刪除子目錄與刪除文件的操作就一樣了 向一個文件追加記錄時 首先要計算文件的新長度 有兩種可能 一是如果創(chuàng)建一個新的文件 那么原來沒有簇鏈 長度是0 于是除了需要向文件分配表申請簇以外 還要把申請到的簇號填入該文件的目錄項中 另外一種情形是文件已經存在 原有簇鏈不夠使用 因此要在原來基礎上增加文件長度 這時就需要在文件分配表中尋找標有 FREE 標志的表目 并將它們所對應的簇一一鏈入原有的簇鏈 完成這項工作后 才能開始進行寫入操作 MS DOS在進行簇分配時 采用 就近雙向查找 分配策略 即以一個指定的簇號 比如文件尾的簇號 或一個已經找到的空閑簇號為中心 先正向增1 即簇號增1 查找 判定那個簇是否空閑 如果失敗 就反向減1 即簇號減1 查找 判定那個簇是否空閑 如果失敗 就正向增2 即簇號增2 查找 判定那個簇是否空閑 如果失敗 就反向減2 即簇號減2 查找 判定那個簇是否空閑 找到一個空閑簇后 就又以它為中心進行查找 直到所需空閑簇全部找到 否則不予分配 這種分配策略 可以使文件分配的存儲空間相對集中 從而減少文件讀寫時磁頭移動的次數和距離 8 3 3MS DOS的樹型目錄結構MS DOS的每一個盤卷都有一個根目錄表 簡稱根目錄 根目錄中有很多目錄項 它們可能是一般文件的目錄項 也可能是子目錄文件的目錄項 整個根目錄被固定在盤卷的根目錄區(qū)中 從根目錄中的一般文件目錄項出發(fā) 得到的分支是葉子 即具體的文件 從根目錄中的子目錄項出發(fā) 得到的是一個枝杈 即一個子目錄文件 每一個枝杈又可以繼續(xù)往下分出葉子或枝杈 子目錄文件就是由一個個子目錄項組成的子目錄表 簡稱子目錄 這樣一種帶有分支的層次結構 猶如一棵倒置的樹 根在上 分支和葉子在下 這種結構的優(yōu)點是能夠方便地組織和查找文件 在不同目錄下允許出現重名 圖8 18 a 給出了MS DOS目錄的層次結構示意圖 在圖中 倒三角表示一個目錄項 在根目錄表中 有6個目錄項 其中4個是一般文件目錄項 它們分別對應于文件A B C D 有兩個子目錄項 子目錄甲和子目錄乙 在子目錄甲中有兩個一般文件目錄項 分別對應于文件E和F 在子目錄乙中有一個一般文件目錄 它對應于文件G 有一個子目錄項 對應于子目錄丙 在子目錄丙中 有三個一般文件目錄項 它們對應于文件H I J 在MS DOS的每一個子目錄表中 除了具體的目錄項外 還安排一個目錄項 一個目錄項 它們分別表示當前目錄和父目錄 只有當一個目錄表中僅包含 和 時 才意味該目錄表為空 目錄項是一個含32個字節(jié)長的數據區(qū) 它里面登記著一個文件或子目錄的有關信息 MS DOS的目錄項結構如圖8 18 b 所示 圖中括號里的數字表示這一信息所需占用的字節(jié)數 下面是對目錄項內容的簡要說明 文件名 MS DOS規(guī)定文件名最多不得超過8個字符 因此在目錄項中 為 文件名 準備了8個字節(jié) 當這里的第1個字節(jié)取值00H時 表示該目錄項為空閑 可以被分配 當這里的第1個字節(jié)取值E5H時 表示原來占用該目錄項的文件已經被刪除 此目錄項現在可以重新分配它用 擴展名 擴展名最多3個字符 因為這里給擴展名只準備了3個字節(jié)的位置 如果擴展名不足3個字符 則用空格填充 文件屬性 MS DOS為文件設置屬性有兩個作用 首先通過文件屬性區(qū)分文件的類別 是卷標 V 是目錄 D 還是一般磁盤文件 只有在是一般磁盤文件時 才利用屬性給出文件的存取權限 A H R S 文件的建立和修改的日期和時間 文件的起始簇號 由前面已經知道 MS DOS總是把分配給一個文件的第1簇號填寫在文件目錄項中 也就是目錄項的 文件起始簇號 處 通過它 就可以在文件分配表 FAT 中找到該文件的簇鏈 得到文件的存儲位置 文件長度 文件長度是指該文件所需的總字節(jié)數 由于文件一般總要在最后一簇產生一些浪費 因此告知文件的總長度 對判定文件的結束位置是重要的 8 3 4MS DOS文件訪問的實現為了提高對文件訪問的速度 MS DOS在整個系統(tǒng)中設置了一張 系統(tǒng)文件表 SFT 該表主要用于記錄系統(tǒng)當前同時打開的文件的有關信息 從而起到了活動文件目錄的作用 SFT中擁有的表目數 用戶可以在系統(tǒng)配置文件CONFIG SYS中 通過命令行 files n 來設定 其默認值為8 整個系統(tǒng)文件表包括兩個子表 子表1由表頭以及5個表項構成 子表2由表頭以及n 5個表項構成 每一個表項占用53個字節(jié) 圖8 19是系統(tǒng)文件表的結構 子表表頭的第一部分是一個指針 通過它使兩個子表鏈接在一起 成為一個整體 表頭的第二部分記錄該子表表項的數目 子表1固定為5 子表2是n 5 兩個表的表目數總共為n 當用戶打開一個文件時 就要在SFT中申請一個表目 把文件的目錄信息從磁盤拷貝到表目中 除此之外 還要在表目中記錄如下信息 1 記錄打開文件的文件目錄項在磁盤的位置 以便關閉文件時 根據這一信息進行回寫操作 2 在此記錄對文件操作的控制信息 比如文件的打開方式 文件的讀寫指針和已經傳送的簇數等 3 記住這個文件被不同調用者同時打開的次數 打開一次就在計數值上加1 關閉一次就在計數值上減1 只有當計數值為0時 這個文件才能真正被關閉 即收回它所占用的系統(tǒng)文件表表目 回憶一下MS DOS為每個進程設置的程序段前綴 在程序段前綴里面 開辟著該進程的文件打開表 JFT 文件打開表的作用一方面是把父進程已經打開的文件情況復制過來 另一方面是可以用來打開自己所需要使用的文件 打開一個文件 就意味著要在文件打開表中申請到一個表目 該表目的序號 就是以后訪問這個文件的 句柄 那么 為什么有了文件的句柄就可以對某個文件進行訪問 這主要要弄清楚申請到的文件打開表表目是如何與具體文件溝通的 如果它能與文件溝通 也就是能夠找到文件的目錄信息 那么通過文件句柄也就能與文件溝通了 這就要用到上面介紹的系統(tǒng)文件表 具體地 要分兩步進行 1 獲得該文件在系統(tǒng)文件表中占用的表目序號 當進程打開一個文件時 首先通過文件名去查系統(tǒng)文件表 看里面有沒有叫這個名字的文件 如果有 說明該表目中存放的是該文件的目錄等有關信息 因此立即能夠獲得該表目序號 如果沒有 則申請一個空閑的SFT表項 把文件的目錄信息從磁盤拷貝到表目中 填寫進其他信息 然后也獲得該表目序號 2 將系統(tǒng)文件表表目序號填入進程的文件打開表中 到進程程序段前綴的文件打開表中申請一個表項 把得到的系統(tǒng)文件表表目序號填入該表項內 并獲得文件打開表項的序號 即句柄 經過這樣兩步之后 由文件的句柄 就可以去查進程的文件打開表 由文件打開表 得到該文件在系統(tǒng)文件表中的表目序號 通過這個序號去查系統(tǒng)文件表 就得到該文件的目錄內容等信息 就可以對文件進行各種操作了 圖8 20給出了示意圖 在圖中 進程A為了訪問文件X 就通過句柄k查進程程序段前綴中的文件打開表 由該句柄得到這個文件在系統(tǒng)文件表中的序號m 通過序號m 查系統(tǒng)文件表 得到文件X的目錄等信息 于是就可以訪問該文件了 8 4MS DOS的設備管理 8 4 1MS DOS設備管理綜述8 4 2MS DOS設備驅動程序的構成MS DOS的所有設備驅動程序都有如圖8 21所示的結構 總體上分成兩個部分 一個是由18個字節(jié)組成的設備頭 DH 另一個是驅動程序的實際代碼 前者用于標識各個驅動程序并給出它的一些屬性 后者用于進行實際的輸入 輸出 從這種劃分看 MS DOS中的設備頭 起到了設備控制塊的作用 下面對設備頭中的各項內容做一些說明 下一個設備頭指針 MS DOS把系統(tǒng)中已經安裝的設備驅動程序通過各自設備頭里的這個指針 鏈接成一個隊列 稱為設備頭鏈 當然 這里存放的地址是以 段址 段內位移 給出的 設備屬性 設備的屬性是指設備的類型 以及該設備具有的特性 MS DOS用一個字來刻畫設備的屬性 比如 用該字的最高位來區(qū)分是字符設備還是塊設備 此位為1是字符設備 此位為0是塊設備 其余15位的意義 有的位具有相同的含義 有的位將隨是字符設備還是塊設備而有不同的含義 策略程序指針和中斷程序指針 這是兩個指向具體程序代碼的指針 所謂 策略程序 它的任務很簡單 在系統(tǒng)接到一個I O請求后 由文件系統(tǒng)形成請求包并發(fā)送給策略程序 策略程序接收到I O請求包后 就把它的地址轉送給中斷程序 中斷程序才是設備驅動程序中真正實施I O服務的部分 它分析請求包里記錄的I O命令 然后執(zhí)行命令 并將執(zhí)行結果存入請求包中 在輸入 輸出任務完成后 進程就在請求包里獲得結果 在處理輸入 輸出時 MS DOS首先調用策略程序 作用是為設備下 工作任務單 然后調用中斷程序 作用是命令 雇員 即設備 執(zhí)行下達的任務 設備名 對于字符設備 在 設備名 處存放邏輯設備名 對于塊設備 在 設備名 處存放該設備驅動程序所支持的單元個數 為了構成設備頭鏈 MS DOS設置了名為 系統(tǒng)內部參數表 LOL 的一張表 為了管理方便 在該表中模仿設備頭開辟了18個字節(jié) 組成所謂的 NUL 設備頭 NUL 是一個沒有輸入 輸出的設備名 因此沒有具體的驅動程序代碼 它的設備頭總是位于設備頭鏈之首 由它與其他的設備頭鏈接成一個隊列 如圖8 22所示 前面已經說過 要通過設備頭中的 設備屬性 來區(qū)分不同的設備 總的來說 MS DOS把設備分為兩大類 設備屬性 最高位為1 表示是字符設備 為0 表示是塊設備 在圖8 22中 包括NUL設備在內 給出了5個屬于字符設備的設備頭 1個屬于塊設備的設備頭 在字符設備前提下 設備屬性 最低4位取值為4時 表示是NULL設備 取值為3時為標準輸入設備 取值為2時為標準輸出設備 從圖8 22看出 位于LOL中的是NUL設備頭 鏈接在它后面的名為CON的是標準輸入 輸出設備 即鍵盤和顯示器 在圖8 22中 標明為塊設備的設備頭 其 設備名 處填寫的是十六進制的03H 表示該設備驅動程序要驅動 控制3個單元的磁盤驅動器 MS DOS中 對驅動器進行全系統(tǒng)統(tǒng)一編號 有了設備頭鏈 在遇到輸入 輸出請求時 就根據設備的邏輯名 去查設備頭鏈 由設備頭鏈得到設備的驅動程序 從而就可以完成所需要的I O 8 4 3MS DOS對塊設備的管理塊設備在MS DOS中用于存儲文件 因此與文件管理關系密切 這里給出塊設備管理中用到的數據結構 1 驅動器參數塊 DPB從圖8 22看出 MS DOS是把塊設備驅動程序 設

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論