第四章 存儲器管理
1. 存儲器的層次結構
2. 程序的裝入
用戶運行一個程序,需要先編譯將用戶源代碼編譯成一組目標模塊;其次是鏈接將各模塊與庫函數鏈接在一起形成一個完整的裝入模塊;最後是裝入將模塊裝入內存。
(1)絕對裝入方式
編譯程序直接產生絕對地址。
(2)可重定位裝入方式(靜態重定位)
裝入內存後,會使裝入模塊中的所有邏輯地址與實際裝入內存的物理地址不同。地址轉換通常是在裝入時一次完成的,以後不再改變。
(3)動態運行時裝入方式
如果程序運行時在內存中移動,就需要動態運行時裝入方式。地址轉換推遲到真正執行時才進行。
3. 程序的鏈接
(1)靜態鏈接
先進行鏈接形參一個完整的裝入模塊,不再拆封開,要運行時直接將它裝入內存。
(2)裝入時動態鏈接
(3)運行時動態鏈接
4. 連續分配方式
爲用戶程序分配連續內存空間,與分段、分頁存儲(離散存儲)並列。
進一步分爲:單一連續分配、固定分區分配、動態分區分配、動態重定位分配。
(1)動態分區分配
實現分區分配,常用兩種數據機構:空閒分區表、空閒分區鏈。
分區空閒鏈以地址遞增次序鏈接,並且前面空間小,後面大。
分區分配算法:首次適應算法(利於留下大空間給大作業,缺點是會留下許多難以利用的空閒分區);循環首次適應算法(查找時候不是從鏈首開始,而是從上次找到的空閒分區下一個分區開始查找);最佳適應算法(最佳適應指能滿足要求並且剩餘空間最小);最壞適應算法(總是選取剩餘空間最大);快速適應算法(也稱分類搜索法,設立一個空閒分區鏈表,優點查找效率高,缺點是系統開銷大)。
分區回收時候可與相鄰空分區合併。
(2)可重定位分區分配
主要解決:當若干個小的分區單個不能滿足要裝入的程序,但是總和是大於的,就可以去原有分散的小分區進行“拼接”和“緊湊”,對移動了的程序或數據進行重定位。
(3)對換(交換)
將內存中某些進程被阻塞但卻佔用大量內存空間,此時又有許多作業在外存等待。
所謂對換,是指把內存中暫時不能運行的進程或者暫時不用的程序和數據調出到外存上,以便騰出足夠的內存空間,再把已具備運行條件的進程或進程所需要的程序和數據調入內存。可以提高內存利用率。
對換是實現請求分頁和請求分段式存儲管理的基礎,其目的是爲了支持虛擬存儲系統。
5. 基本分頁存儲管理方式
如果不具備頁面對換功能,則稱爲基本的分頁存儲管理方式,否則爲請求分頁管理方式。
分頁地址中的地址結構:頁號P + 位移量W
系統需要爲每個進程建立一張頁面映像表,簡稱頁表,頁表中的每項爲:頁號 + 塊號。
地址變換機構:將用戶地址空間中的邏輯地址變換爲內存空間中的物理地址。
快表:爲了節省在頁表中查找的時間,增設高速緩衝寄存器,即快表。
兩級和多級頁表:解決頁表過大問題。
6. 基本分段存儲管理方式
分段地址:段號 + 段內地址
段表:每個項爲:段長 + 基址
分頁和分段的區別:頁是信息的物理單位,分頁是爲了滿足系統需求,段是信息的邏輯單位,分段是爲了滿足用戶需求;頁的大小固定且由系統決定,段的長度不固定取決於用戶程序;分頁的作業地址空間是一維的,分段的二維的。
段頁式系統中的地址變換機構:
7. 虛擬存儲器
虛擬存儲器的基礎:局部性原理:在一較短的時間內,程序的執行僅侷限於某個部分,相應的,它所訪問的存儲空間也侷限於某個區域。
虛擬存儲器實現方法:分頁請求系統和請求分段系統。
8. 請求分頁存儲管理方式
硬件支持:頁表機制、缺頁中斷機構、地址變換機構。
物理塊的分配策略:固定分配局部置換(爲每個進程分配固定書目的物理塊,發生缺頁時,從該進程在內存的頁面中選出一個頁換出)、可變分配全局置換、可變分配局部置換。
9. 頁面置換算法
(1)最佳置換算法
被淘汰的頁面將是以後永不使用的,或是在最長(未來)時間內不再被訪問的頁面。但是未來需要的頁面是不可能預知的,所以只是一個理想的情況。
(2)先進先出(FIFO)頁面置換算法
(3)最近最久未使用(LRU)置換算法
缺點是需要較多的硬件支持。
(4)Clock置換算法
一位訪問位,只能用它表示該頁是否已經使用過。
改進之後,2位訪問位,表示:最近既未被訪問又未被修改、最近未被訪問但已被修改、最近已被訪問但未被修改、最近已被訪問且被修改。
10. 請求分段存儲管理方式
硬件支持:段表機制、缺段中斷機構、地址變換結構
分段的共享(共享段的分配和回收)與保護(越界檢查、存取控制檢查、環保護機構)。
第五章 設備管理
1. I/O控制方式
I/O控制方式:計算機需要傳輸數據時候,內部如何進行?
早期計算機系統中,採用程序I/O方式(忙-等待模式);當系統引入中斷機制後,便出現了中斷驅動方式(需要數據傳輸時發出中斷);此後隨着DMA(直接存儲器訪問)控制器的出現,I/O方式發展爲以數據塊爲單位傳輸(僅在傳送開始和結束時候需要CPU干預);通道的引入又使得I/O操作無需CPU干預。
2. 緩衝管理
爲了緩和CPU和I/O設備速度不匹配的矛盾,減少對CPU的中斷頻率,提高CPU和I/O設備的並行性。
(1)單緩衝
(2)雙緩衝
(3)循環緩衝
(4)緩衝池
包含:空緩衝區(空緩衝隊列)、裝滿輸入數據的緩衝區(輸入隊列)、裝滿輸出數據的緩衝區(輸出隊列)。
3. I/O軟件
I/O系統的層次與功能:
(1)硬件
(2)中斷處理程序:用於保存被中斷進程的CPU環境,轉入相應的中斷處理程序進行處理,處理完後再恢復被中斷進程的現場後返回到被中斷進程。
過程:喚醒被阻塞的驅動進程——保護被中斷進程的CPU環境——轉入相應的設備處理程序——中斷處理——恢復被中斷進程的現場。
(3)設備驅動程序:與硬件相關,負責具體實現系統對設備發出的操作指令,驅動I/O設備工作的驅動程序。
過程:將抽象要求轉換爲具體要求——檢查I/O請求的合法性——讀出和檢查設備的狀態——傳送必要的參數——工作方式的設置——啓動I/O設備。
(4)設備獨立性軟件:負責實現與設備驅動器的統一接口、設備命名、設備的保護以及設備的分配與釋放等,同時爲設備管理和數據傳送提供必要的存儲空間。
設備獨立性,也稱設備無關性:應用程序獨立於具體使用的物理設備。
邏輯設備表,用於將應用程序中所使用的邏輯設備名映射爲物理設備名。
(5)用戶層軟件:實現與用戶交互的接口,用戶可直接調用在用戶層提供的、與I/O操作相關的庫函數,對設備進行操作。
4. 設備分配
(1)設備分配中的數據結構
設備控制表DCT、控制器控制表COCT、通道控制表CHCT、系統設備表SDT
(2)設備分配時應考慮的因素
設備的固有屬性、設備分配算法、設備分配時的安全性、設備獨立性。
5. SPOOLing技術
實現虛擬設備功能,將獨佔設備改造爲共享設備。
爲了緩和CPU的高速性與I/O設備低速性間的矛盾引入了脫機輸入、脫機輸出技術。
該技術利用專門的外圍控制機,將低速I/O設備上的數據傳送到高速磁盤上;或者相反。
外圍操作與CPU對數據的處理同時進行,稱爲SPOOLing,或假脫機操作。
SPOOLing系統的主要部分:
6. 磁盤存儲器
磁道,每條磁道上可存儲相同數目的二進制位。
盤塊、扇區
磁盤訪問時間:尋道時間(磁頭移動到指定磁道上所經歷的時間);旋轉延遲時間(指定扇區移動到磁頭下面的時間);傳輸時間(數據從磁盤讀出或向磁盤寫入數據所經歷的時間)。
在訪問時間中,尋道時間和旋轉延遲時間基本與傳輸數據多少無關,且通常佔據了訪問時間的大頭。
7. 磁盤調度
目標:最少訪問時間。
(1)先來先服務(FCFS)
(2)最短尋道時間優先(SSTF)
要求訪問的磁道與當前磁頭所在的磁道距離最近。
(3)掃描算法(SCAN)
解決SSTF算法可能導致的“飢餓”問題。
磁頭先選擇按從裏向外且距離最近的磁道,然後再從外向裏訪問,再從裏向外,如此往復。
(4)循環掃描算法(CSCAN)
磁頭先選擇按從裏向外且距離最近的磁道,然後將磁頭轉到最裏面要訪問的磁道,再按從裏向外移動。
(5)NStepSCAN算法
解決“磁臂粘着”,將磁盤請求隊列分爲若干個長度爲N的子隊列,磁盤調度將按FCFS算法依次處理這些子隊列,每個隊列按SCAN算法處理。
(6)FSCAN算法
即NStepSCAN算法的N=2的情況。
8. 提高磁盤I/O速度的方法
磁盤高速緩存(利用內存暫存磁盤數據)、提前讀、延遲寫、優化物理塊分佈、虛擬盤、磁盤冗餘陣列RAID技術。
第六章 文件管理
1. 文件的邏輯結構
文件的邏輯結構可分爲:有結構文件(由記錄構成)和無結構文件(字符流構成)。
有結構文件中記錄的組織方式:順序文件、索引文件、索引順序文件、直接文件(哈希文件)。
2. 文件的物理結構
也稱爲文件的外存分配方式:連續分配、鏈接分配和索引分配。
文件系統FAT與NTFS
3. 目錄管理
文件存取需要:文件控制塊FCB、索引結點。
目錄結構:單級目錄、兩級目錄、多級目錄。
目錄查詢技術:線性檢索法、Hash方法。
4. 文件存儲空間的管理
(1)空閒表法
(2)空閒鏈表法
(3)位示圖法
(4)成組鏈接法
適用於大型文件系統
5. 文件共享
(1)基於索引結點的共享方式
(2)利用符號鏈實現文件共享
只有文件主纔有其索引結點的指針,而共享該文件的其它用戶則只有該文件的路徑名。
(3)磁盤容錯技術