一、操作系統簡介
1. 操作系統(Operating System, OS)是一種複雜的系統軟件,是不同程序代
碼、數據結構、數據初始化文件的集合,可執行。
2. 操作系統與硬件部分相互作用,並且爲運行在計算機上的應用程序提供執行環境。
3. 處理機管理: 決定把處理機先給哪個程序用,後給哪個程序用。
4. 內存管理:給程序分配內存空間。
5. 設備管理:完成怎麼分配設備,分配哪臺設備,怎麼和設備連接等。
6. 文件管理:爲每個文件分配空間、建立目錄,對目錄進行組織管理以及根據用戶請求從外存讀取數據或將數據寫入外存。
7. 單道批處理系統:單道批處理系統內存中只有一道作業。
8. 單道批處理系統特點:自動性、順序性、單道性。
9. 多道批處理系統:由操作系統的作業調度程序按一定策略從後備作業隊列中
選擇若干個作業調入內存,使它們共享CPU和系統中的各種資源。
10. 多道批處理系統特點:多道性、無序性、調度性、複雜性。
11. 分時操作系統:允許多個用戶通過終端機同時使用計算機,每個用戶通過終
端與主機交互時都能得到快速響應。
12.分時操作系統特點:多路性、獨立性、及時性、交互性。
13.實時操作系統:實時系統必須及時響應外部事件的請求,在規定時間內完成
對該事件的處理。主要用於實時控制和實時信息處理領域。
14.實時操作系統特點:多路性、獨立性、及時性、交互性、可靠性
15. 現代操作系統都支持多任務,具有併發、共享、虛擬和異步性特徵。
16. 操作系統的功能:管理計算機資源、提供用戶接口。
17. 內存管理:含義:內存管理的主要任務是爲多道程序的運行提供良好的環境,
方便用戶使用內存,提高內存的利用率,以及從邏輯上擴充內存以實現虛擬存儲。
18. 內容:1)內存分配 2)內存保護 3)地址映射 4)內存擴充
19. 1)內存分配:主要任務是爲每道程序分配內存空間,可採用兩種分配方式,
即靜態分配方式和動態分配方式。2)內存保護:主要任務:一是使操作系統內
核的空間不會被用戶隨意訪問,以保證系統的安全和穩定;二是確保每道用戶程
序都在自己的內存空間中運行,互不干擾。3)地址映射:CPU執行程序過程中
訪問內存時,需要把程序的邏輯地址轉變爲物理地址,這個轉換過程稱爲地址映
射。4)內存擴充:藉助於虛擬技術,從邏輯上擴充內存容量,使系統能夠向用
戶提供比物理內存大的存儲容量。
20. 請求調入:允許系統在裝入一部分用戶程序時就啓動該程序運行,在程序運
行過程中若發現要執行的指令或訪問的數據尚未裝入內存,通過請求調入將需要
指令或數據裝入內存。
21. 置換功能:在請求調入時,若發現內存空間不足,需要先將內存中的一部分
內容換到外存中,以便騰出內存空間裝入當前需要的內容。
22. 進程管理:內容:進程的描述與組織、進程控制、進程同步、進程通信及進
程調度。
23. 設備管理:含義:設備管理主要完成用戶的I/O請求,爲用戶分配I/O設備。
24. 設備管理具有以下功能:1)緩衝管理 2)設備分配 3)設備處理 4)設
備獨立性和虛擬設備(設備獨立性功能使應用程序獨立於物理設備)
25. 文件管理具有以下功能:1)文件存儲空間的管理2)目錄管理3)文件的讀、
寫管理和存取控制
二、進程管理
1. 1)文件存儲空間的管理:爲每個文件分配必要的外存空間,提高外存利用率,
並能有助於提高訪問文件的速度。2)目錄管理:爲每個文件建立目錄項並對衆
多目錄項進行有效組織。目錄項包括文件名、文件屬性及文件的地址等信息。 3)
文件的讀、寫管理和存取控制:根據用戶的請求,從外存中讀取數據或將數據寫
入外存。防止未經審覈的用戶存取文件,防止冒名頂替存取文件,防止以不正確
的方式使用文件。
2.提供用戶接口:命令接口、圖形用戶接口、程序接口。
3. 命令接口:目的:爲了便於用戶與計算機系統的交互;分類:聯機用戶接口和脫機用戶接口。聯機:常命令接口由一組鍵盤操作命令和命令解釋程序組成;脫機:爲批處理作業的用戶提供,也稱爲批處理用戶接口。
4. 圖形用戶接口:用戶可以輕鬆地通過選擇窗口、菜單、對話框、滾動條、圖標等簡單的操作來完成對作業和任務的提交與控制。
5. 程序接口:用戶程序接口指的是應用程序和系統的核心程序的接口,就是系
統調用。系統調用是一組預先定義好的模塊,它們提供一條管道讓應用程序或用
戶能由此得到核心程序的服務。
6. 程序是指令的集合,程序的執行就是按照某種控制流執行指令的過程。
7. 一個單一指令需要的處理稱爲指令週期。一個指令週期可以劃分爲兩個步驟,
分別是取指週期和執行週期。
8. 程序計數器(PC)保存有下一次要取的指令的地址。取到的指令被放置在處
理器的指令寄存器(IR)中。
9. 指令中包含確定處理器要採取動作的位,處理器解釋指令並執行要求的動作。
10. 這些動作可分爲4類:1)處理器與存儲器之間的指令或數據傳送操作;2)
處理器與I/O設備之間的指令或數據傳送操作;3)算術運算操作或邏輯運算操作;4)控制操作,即修改指令的執行順序的操作。
11. 程序的順序執行:含義:先進入內存的程序先執行,在一個程序執行完畢之
前,不能執行其他程序。
12. 特點:順序性、封閉性、可再現性。
13. 程序的併發執行:含義:程序併發執行是指在同一時間間隔內運行多個程序。
一個程序執行結束前,可以運行其他程序。
14. 間斷性:程序在CPU上執行時,是時斷時續的;失去封閉性:系統的狀態不
再只對正在執行的程序可見;不可再現性:同一個程序在輸入相同的情況下多次
運行,可能出現不同的結果。
15. 進程的定義:定義1: 允許併發執行的程序在某個數據集合上的運行過程;定義2:進程是由正文段、用戶數據段及進程控制塊共同組成的執行環境。
16. 進程的特徵:併發性、動態性、獨立性、異步性、結構特徵
17. 併發性:多個進程實體能在一段時間間隔內同時運行
18. 動態性:進程是實體的執行過程
19. 獨立性:獨立運行和資源調度的基本單位
20. 異步性:進程的執行時斷時續,何時執行、何時暫停都無法預知
21. 結構特徵:進程實體包括用戶正文段、用戶數據段和進程控制塊
22. 程序和進程的比較:程序是靜態的,進程是動態的;程序是永久的,進程是
暫時的;程序是指令的集合,進程包括正文段、用戶數據段、進程控制塊。
23.程序和進程的聯繫:進程是程序的的一次執行;一個程序可以對應多個進程;
同一個程序可以在不同的數據集合上運行,構成不同的進程。
24. 進程控制塊定義:進程控制塊是進程實體的一部分,是操作系統中重要的
數據結構。
25. 進程控制塊中記錄了操作系統所需要的、用於描述進程及控制進程運行所需
的全部信息。
26. 進程控制塊中的信息:進程標識符信息、處理機狀態信息、進程調度信息、
進程控制信息。
三、進程管理
1.進程的三種狀態:執行態、就緒態、阻塞態。
2.進程的組織方式:鏈接方式、索引方式、進程隊列。
3. 鏈接方式:把系統中具有相同狀態的進程控制塊PCB用其中的鏈接字連成一
個隊列;索引方式:系統根據所有進程的狀態,建立索引表,索引表的每一個表
項指向一個PCB物理塊;進程隊列:把具有相同狀態的進程控制塊用隊列組織起
來。
4. 進程的控制:創建、阻塞、喚醒、終止。
5. 什麼情況下需要創建新進程呢?用戶登錄、作業調度、提供服務、應用請求。
6. 如何創建新進程?/創建新進程的步驟?1.申請空白PCB;2.爲新進程分配資源;3.初始化進程控制塊;4.將新進程插入到就緒隊列。
7. 什麼情況下會進行進程的阻塞呢?請求系統服務、啓動某種操作、新數據尚
未到達、無新工作可做。
8. 完成進程阻塞的過程?1.將進程的狀態改爲阻塞態;2.將進程插入相應的阻塞隊列;3.轉到進程調度程序,從就緒隊列中選擇進程爲其分配CPU。
9. 進程喚醒的過程?1.將進程從阻塞隊列中移出;2.將進程狀態由阻塞態改爲就緒態;3.將進程插入就緒隊列。
10. 完成進程終止的過程:1.從進程PCB中讀進程狀態;2.若進程正在執行,則
終止進程的執行;3.釋放資源;4.將終止進程的PCB移出。
11. 操作系統內核是計算機硬件的第一次擴充,與硬件關係密切。
12. 操作系統內核功能:支撐功能(中斷處理、時鐘管理、原語操作)、資源管理功能(進程管理、存儲管理、設備管理)。
13. 中斷:改變處理器執行指令順序的一種事件。出現中斷時,計算機停止現在
程序的運行,轉向對這些中斷事件的處理,處理結束後再返回到現行程序的間斷
處。
14. 爲什麼需要中斷?引入中斷機制後,CPU可以與其他設備並行工作,能有效
提高CPU的利用率。
15. 時鐘是計算機系統的脈搏,計算機的很多活動都是由定時測量來驅動的。
16. 計算機系統中的時鐘:實時時鐘RTC、OS時鐘。
17. 操作系統的時鐘機制:保存當前的日期和時間、維持定時器。
18. 時鐘驅動程序:1)維護日期和時間;2)遞減當前進程在一個時間片內的剩
餘執行時間,防止運行超時;3)對CPU的使用情況記賬;4)遞減報警計數器。
19. 什麼是系統調用?系統調用是一羣預先定義好的模塊;提供一條管道讓應程
序能由此到核心程序的服務;系統調用是系統程序與用戶程序之間的接口。
20. 系統調用和一般函數調用的區別?區別1:系統調用運行在系統態,一般函數運行在用戶態;區別2:執行過程不同(系統調用執行時,當前進程被中斷);區別3:系統調用進行中斷處理,多了系統開銷。
21. 必須以互斥方式訪問的共享資源稱爲臨界資源;進程中訪問臨界資源的那段
代碼稱爲臨界區。
22. 同步機制:保證在多任務共享系統資源的情況下,程序執行能得到正確的結
果。
23. 同步機制應遵循的準則:空閒讓進、忙則等待、有限等待、讓權等待。
四、進程調度與死鎖
1. 信號量機制:用信號量的取值來表示資源的使用狀況,以此爲基礎實現進程
同步。
2. 整型信號量是表示共享資源狀態且只能只能由特殊的原子操作改變的整型量。
3. 整型信號量機制原理:定義一個整型變量,用該變量的值來標記資源的使用
情況。
4. 記錄型信號量機制原理:定義一個記錄型變量,用該變量的值來標記資源的
使用情況。
5. 管程是描述共享資源的數據結構和在數據結構上的共享資源管理程序的集合。
包括變量的定義、變量的初始化代碼,以及管理共享資源的過程。
6. 管程是可供程序員調用的軟件包;每次只有一個進程調用管程執行,任意時
刻管程中只有一個活躍進程;管程是一種編程語言的構件。
7.進程通信機制:共享存儲器系統、消息傳遞系統、通信管道、消息緩衝隊列。
8. 線程是進程中的一個實體,是被系統獨立調度和分派的基本單位。
9. 線程只擁有在運行中必需的資源,包括程序計數器、一組寄存器和棧,但它可與同一進程的其他線程共享進程所擁有的全部資源。
10. 每一個線程都由一個數據結構表示,包括它的基本狀態等,這個數據結構就
是線程控制塊TCB。
11. TCB記錄了操作系統需要的、用於描述線程情況及控制線程運行所需的全部
信息。
12. 進程與線程的關係:
1). 資源和調度。線程是程序執行的基本單位,進程是擁有資源的基本單位。
2). 地址空間資源。不同進程的地址空間是相互獨立的,而同一進程中的各線程共享同一地址空間。
3). 通信關係。進程之間的通信必須使用操作系統提供的進程間通信機制,而同一進程中的各線程間可以通過直接通信。
4). 併發性。多進程之間可以併發執行,多線程之間也可以併發執行。
5). 系統開銷。線程切換的開銷比進程切換的開銷小。
13. 線程的控制:創建、阻塞、喚醒、調度、切換、終止。
14. 線程創建的情況:1)請求系統服務;2)啓動某種操作;3)用戶線程的阻
塞與喚醒。
15. 線程終止的情況:1)正常結束;2)異常結束;3)外界干擾。
16. 進程調度的功能由操作系統的進程調度程序完成。
17. 進程調度的功能:按照某種策略和算法從就緒態進程中爲當前空閒的CPU選擇在其上運行的新進程。
18. 進程調度的時機:進程正常或異常結束、進程阻塞、有更高優先級進程到來、
時間片用完時都會導致進程調度。
19. 選擇調度方式和算法的若干準則:1.週轉時間短、2.響應時間快、3.截止時
間的保證、4.系統吞吐量高、5.處理機利用率好。
五、進程調度與死鎖
1. 先來先服務調度算法:從就緒隊列的隊首選擇先到達就緒隊列的進程,爲
該進程分配CPU。
2. 短進程優先調度算法:從就緒隊列中選擇估計運行時間短的進程,爲該進
程分配CPU。
3. 短進程優先調度算法優點:與FCFS算法相比,短進程優先算法能有效降低進
程的平均等待時間,提高系統吞吐量;缺點:對長進程不利;不能保證緊迫進程
的處理;進程長短由用戶估計,不一定準確。
4.優先權調度算法:該算法中,系統將CPU分配給就緒隊列中優先權高的進程。
5. 優先權調度算法類型:非搶佔式:運行期間,有更高優先權的進程到來,也不能剝奪CPU;搶佔式:運行期間,有更高優先權的進程到來,就可以搶佔CPU。
6. 優先權類型:靜態優先權、動態優先權。
7. 存在的問題:無窮阻塞(飢餓問題);解決的方案:老化技術。
8. 時間片輪轉調度算法:時間片大小的確定:系統對響應時間的要求:響應時間要求越短,時間片越小;就緒隊列中進程的數目:進程數量越多,時間片越小;
系統的處理能力:系統的處理能力越強,時間片越小。
9. 多級隊列調度算法:將就緒隊列分成多個獨立隊列,每個隊列有自己的調度
算法;多級反饋隊列調度算法:建立多個優先權不同的就緒隊列,每個隊列有大
小不同的時間片。
10. 實現實時調度的基本條件:提供必要的調度信息;系統處理能力強;採用搶
佔式調度機制;具有快速切換機制。
11. 提供必要的調度信息:就緒時間、開始截止時間、完成截止時間、處理時間、
資源要求、優先級。
12. 具有快速切換機制:對外部中斷的快速響應能力、快速的進程切換能力。
13. 常用的實時調度算法:早截止時間優先算法、低鬆弛度優先算法。
14. 進程切換:當前正在執行的進程成爲被替換進程,讓出其所使用的CPU,以
運行被進程調度程序選中的新進程。
六、進程調度與死鎖
1. 多處理器系統的類型:按耦合程度分:緊密耦合和鬆弛耦合;按結構功能是否相同分:對稱和非對稱。
2. 多處理器系統中進程的分配方式:對稱系統分配方式:靜態分配、動態分配;
非對稱分配方式:主-從式分配方式。
- 進程(線程)的調度方式:自調度、成組調度、專用處理器分配。
4. 自調度:最常用最簡單的方式。優點:易移植、有利於提高CPU利用率;缺點:瓶頸問題、低效性、線程切換頻繁。
5. 成組調度:系統將一組相互合作的進程或線程同時分配到一組處理器上運行,
進程或線程與處理器一一對應。優點:❶減少線程切換;❷減少調度開銷。
6. 專用處理器分配:在程序執行期間,專門爲該程序分配一組處理器,每個線程一個。優點:❶加快程序運行速度;❷避免進程切換。缺點:❶處理器資源嚴
重浪費。
7. 死鎖的定義:由於多個進程競爭共享資源而引起的,進程不能向前推進的僵
死狀態稱爲死鎖。
8. 產生死鎖的原因:競爭共享資源且分配資源的順序不當。
9. 產生死鎖的必要條件:互斥條件、請求和保持條件、不剝奪條件、環路等待條件。
10. 處理死鎖的基本方法:死鎖的預防、避免、檢測、解除。
11. 死鎖的預防:摒棄請求和保持條件:要求進程一次性申請需要的全部資源、
申請其他資源前釋放已經佔用的資源;摒棄不剝奪條件:系統搶佔被佔用的資源
分配給需要的進程;摒棄環路等待條件:進程必須按規定的順序申請資源。
12. 死鎖的避免:通過資源合理分配使系統處於安全狀態。
13. 安全狀態:能夠找到一個進程執行序列,按照這個序列爲每個進程分配資源,
就可以保證進程資源分配和執行順利完成,不會發生死鎖。
14. 銀行家算法的原理:一個進程提出資源請求後,系統先進行資源的試分配,
分配後檢測系統是否安全。
15. 死鎖的檢測:何時調用檢測算法:依據死鎖可能發生的頻率、死鎖發生時受
影響的進程數量。
16. 死鎖定理: S爲死鎖狀態的充分條件是當且僅當S狀態的資源分配圖是不可完全簡化的。
17. 死鎖的解除:1)進程終止:終止所有死鎖進程、一次只終止一個處於死鎖
的進程,直到死鎖解除;2)逐步從進程中搶佔資源給其他進程使用直到死鎖被
打破爲止。
七、內存管理
1. 局部性原理:在一段較短時間內,程序的執行僅限於某個部分,相應地,它所訪問的存儲空間也侷限於某個區域。
2. 時間局部性:某條指令一旦執行,不久後該指令可能再次執行。
3. 空間局部性:一旦程序訪問了某個單元,不久後附近的存儲單元也將被訪問。
4. 靜態鏈接:程序運行前,用鏈接程序將目標模塊鏈接成一個完整的裝入模塊。
5. 動態鏈接:可將某些目標模塊的鏈接推遲到這些模塊中的函數被調用執行時
才進行。
6. 絕對裝入方式:編譯時產生物理地址的目標代碼。
7. 可重定位裝入方式(靜態重定位):編譯時地址是邏輯地址,裝入時通過重定
位轉換爲物理地址。
8. 程序裝入時對目標程序中的指令和數據地址的修改過程叫重定位。
9. 動態運行時裝入(動態重定位):程序執行時通過重定位轉換爲物理地址。
10. 單一連續分配:任何時刻主存儲器最多隻有一個作業。
11. 固定分區分配:每個分區大小固定不變,每個分區可以且僅可以裝入一個作
業。
12. 固定分區說明表:記錄分區的起始地址、長度、是否佔用。
13. 動態分區分配:分區大小不是預先固定的,而是按作業的實際需求來劃分的;
分區的個數也不是預先固定的,而是由裝入的作業數決定的。
14. 空閒分區表:記錄空閒分區的分區大小、起始地址。
15. 首次適應算法:空閒分區鏈以地址遞增的順序鏈接,從鏈首開始查找,直至
找到第一個滿足要求的空閒分區,從該分區中劃出一塊內存給進程,剩下的仍留
在空閒鏈。
16. 循環首次適應算法:從上次找到的空閒分區的下一個空閒分區開始查找。
17. 最佳適應算法:空閒分區鏈以分區大小遞增的順序鏈接,從鏈首開始查找,
直至找到第一個與進程請求的空間大小最接近的空閒分區。
八、內存管理
1. 頁 ( Page):將一個進程的邏輯地址空間分成若干個大小相等的片,稱爲頁。
2. 頁框(Paw Frame):將物理內存空間分成與頁大小相同的若干個存儲塊,稱爲
頁框或頁幀。
3. 分頁存儲:在爲進程分配內存時,以頁框爲單位將進程中的若干頁分別裝人
多個可以不相鄰接的頁框中。
4. 頁內碎片:進程的後一頁一般裝不滿一個頁框,而形成了不可利用的碎片,
稱爲“頁內碎片”,是一種內部碎片。
5.頁表 ( Page Table):頁表是系統爲進程建立的數據結構,頁表的作用是實現從頁號到頁框號的映射。
6. 分頁地址變換:(1) 進程執行,PCB中頁表起始地址和頁表長度送CPU的頁
表寄存器;(2)CPU訪問邏輯單元A;(3) 由分頁地址變換硬件自動將A分爲
頁號和頁內偏移兩部分;(4) 由硬件檢索頁表,得到A所在的頁對應的頁框號。
頁號對應的頁表項起始地址=頁表起始地址+頁表項長度*頁號(頁表項中存有頁
框號)。從該地址指示的內存單元中讀取頁框號。(5) 頁框號和頁內偏移地址
送物理地址寄存器,計算物理地址。物理地址=頁框大小*頁框號+頁內偏移量。
7. 影響頁大小設計的因素有管理內存的開銷和內存利用率。
8. 快表也稱轉換後援緩衝(TLB),是爲了提高CPU訪存速度而採用的專用緩存,
用來存放近被訪問過的頁表項。
9. 動態運行時裝入(動態重定位):程序執行時通過重定位轉換爲物理地址。
10. 單一連續分配:任何時刻主存儲器多隻有一個作業。
11. 固定分區分配:每個分區大小固定不變,每個分區可以且僅可以裝入一個作
業。
12. 引入TLB之後的地址變換過程: (1)CPU產生分頁的邏輯地址頁號和頁內偏移後,將該邏輯地址的頁號提交給TLB; (2)查找TLB,如果找到頁號,則把該頁所在的頁框號用於形成物理地址。否則(TLB失效)查找內存頁表,從內存頁表中找到相應的頁表項,讀取頁所在的頁框號,以形成物理地址; (3)如果所査找的頁表項不在TLB中,在訪問完內存頁表後,要把找到的頁表項中的頁號和頁框號寫到TLB中。如果TLB中的條目已滿,系統會根據某種策略(如近少使用替換)選擇一個TLB中的條目,用剛訪問的頁表項信息替換選中的這個TLB條目。
13. 兩級頁表是將頁表再進行分頁,使每個頁表分頁的大小與內存頁框的大小相
同,併爲它們編號,將這些頁表分頁分別放入不同的、不一定相鄰的頁框中,爲
離散分配的頁表再建立一張外層頁表,本書稱之爲頁目錄表,頁目錄表中的每個
表項中記錄了頁表分頁所在的頁框號。
14. 虛擬存儲技術的好處:(1)提高內存利用率;(2) 提高多道程序度;(3)
把邏輯地址空間和物理地址空間分開,使程序員不用關心物理內存的容量對編程
的限制。
15. 虛擬存儲系統的特徵:離散性、多次性、對換性、虛擬性。
16. 爲實現請求分頁,需要特殊的頁表(相對於基本分頁存儲的頁表而言)、缺頁
異常機構和支持請求分頁的地址變換機構。
17. 分頁地址變換: (1)由分頁地址變換機構從邏輯地址中分離出頁號和頁內偏移地址。 (2)以頁號爲索引查找快表,若快表中有該頁的頁表項,則讀出頁框號,計算物理地址。 (3)若快表中無該頁信息,轉到內存表中查找。若頁表中的狀態位P顯示該頁已調入內存,則從相應的頁表項讀出頁所在的頁框號,並計算物理地址,然後把該頁表項寫入快表。(4)若該頁尚未調入內存,則產生缺頁異常,請求操作系統從外存中把該頁調入內存,然後修改頁表,重新執行被中斷的指令。
18. 少頁框數,是指能保證進程正常運行所需要的少的頁框數。
19. 頁分配和置換策略(1)固定分配局部置換(2)可變分配全局置換(3)可
變分配局部置換
20. 頁框分配算法: (1)平均分配算法(2)按比例分配算法(3)優先權分配算法
21. 頁置換算法:佳置換算法、先進先出置換算法、近久未使用置換算法。
22. 佳置換算法:選擇以後永遠不會被訪問的頁或者在未來長時間內不再被
訪問的頁作爲換出頁。
23. 先進先出置換算法FIFO:爲每個頁記錄該頁調入內存的時間,選擇換出頁時,選擇進入內存時間早的頁
24. 近久未使用置換算法:選擇近久未使用的頁換出(用一個字段記錄
一個頁自上次被訪問以來所經歷的時間)。
九、內存管理
1. 缺頁率對有效訪問時間的影響:P爲缺頁率,有效訪問時間=0.1+24999.9xP,
有效訪問時間與缺頁率成正比,缺頁率越高,有效訪問時間越長,訪問效率越低。
2. 工作集:某段時間間隔裏,進程實際要訪問的頁的集合。
3. 引入工作集目的:降低缺頁率,提高訪問內存效率。
4. 抖動:運行進程的大部分時間都用於頁的換入換出,幾乎不能完成任何有效
果工作的狀態。
5.產生原因:進程數量太多,分配頁框太少。
6. 預防方法:(1) 採取局部置換策略;(2)引入工作集;(3) 掛起若干進程。
7. 在分段存儲管理的系統中,程序員使用二維的邏輯地址,一個數用來表示段,另一個數用來表示段內偏移。
8. 引入分段機制的優點:方便編程、分段共享、分段保護、動態鏈接,以及動態空間的增長。
9. 分段的概念:進程的地址空間被劃分成若干個段;每個段定義了一組邏輯信
息,每個段的大小由相應的邏輯信息組的長度確定,段的大小不一樣,每個段的
邏輯地址從0開始,採用一段連續的地址空間;系統爲每個段分配一個連續的物
理內存區域,各個不同的段可以離散地放入物理內存不同的區域;系統爲每個進
程建立一張段表,段表的每一個表項紀錄的信息包括段號、段長和該段的基址,
段表存放在內存中。
10. 段表是由操作系統維護的用於支持分段存儲管理地址映射的數據結構。
11. 每個進程有一個段表,段表由段表項構成。每個段表項包括段號、段基址(段
的起始地址)和段長(段大小)3個部分。
12. 分段系統的地址變換:若已知邏輯單元的地址爲s:d,求相應物理地址的步驟如下:
1)以段號作索引,從段表中找到段號爲s的段表項;
2)從找到的段表項中讀出s段的基地址和段大小;
3)如果d<=段大小,則將段基址與段內偏移d相加,得到與邏輯單元s:d相應的物理單元地址。
13. 分頁和分段的主要區別:分頁和分段都屬於離散分配方式,都要通過數據結
構與硬件的配合來實現邏輯地址到物理地址的映射。 1) 頁是按物理單位劃分的,分頁的引入是爲了提高內存的利用率和支持虛擬存儲;而段是按邏輯單位劃分的,一個段含有一組意義相對完整的信息,引入分段的目的是爲了方便程序員編程。2)頁的大小是固定的,而段的大小不固定,取決於用戶編寫的程序;3)分頁的地址空間是一維的,分段的地址空間是二維的。
14. 段頁式存儲管理的基本原理:將用戶進程的邏輯空間先劃分成若干個段,每
個段再劃分成若干個頁。進程以頁爲單位在物理內存中離散存放,每個段中被離
散存放的頁具有邏輯相關性。爲了實現地址映射,操作系統爲每個進程建立一個
段表,再爲每個段建立一個頁表。進程段表的每一個段表項存放某個段的頁表起
始地址和頁表長度
15. 段頁式地址變換過程:1)以段號s作索引,找到段s的段表項,得到該段頁表的起始地址;2)通過分頁機制從段內偏移d中分離出頁號P和頁內偏移W;3)以段內頁號P作索引,從段s的頁表中搜索頁號P對應的頁表項;4)從頁表項得到頁所在的頁框號;5)由頁框號與頁內偏移W得到對應的物理地址。物理地址=頁框號*頁框大小+頁內偏移。
16. 滿足以下條件的兩個塊稱爲夥伴:1)兩個塊具有相同的大小,記作b;2)
它們的物理地址是連續的,起始地址是2b的整數倍
十、文件管理
1. 文件系統的用戶接口包括文件的命名、類型、屬性和對文件的操作。
2. 文件命名:所有操作系統都允許用1~8個字母組成的字符串命名文件。
3. 文件結構:無結構字節序列(流式文件)、固定長度記錄序列、樹形結構。
4. 樹形目錄:記錄長度不定,在記錄的固定位置包含一個關鍵字域,記錄樹按關鍵字域排序。
5. 文件類型:正規文件、目錄文件、字符設備文件、塊設備文件。
6. 正規文件的分類:ASCII文件、二進制文件。
7. 文件存取:順序存取(早期,從文件開始處讀取信息,不能跳過)、隨機存取
(又稱直接存取,可以以任意順序讀取文件信息)。
8. 文件屬性:除了文件名和文件數據外,其他與文件相關的信息,如創建日期、
文件大小、修改時間等。
9. 目錄是文件系統中實現按名訪問的重要數據結構。
10. 目錄文件有兩種常見的結構:屬性放在目錄項中和放在i結點中。
11. 目錄結構:單層目錄(根目錄)、兩級目錄、樹形目錄。
12. 單層目錄問題:問題:文件命名、搜索效率低;兩級目錄:優點:解決重名
問題,查找快;缺點:增加系統開銷;樹形目錄:優點:便於文件分類,層次結
構清晰,便於管理和保護,解決了重名問題,查找速度加快。
13. 採用樹形目錄時,需要有某種方法指明文件。
14. 絕對路徑名:從根目錄到文件;相對路徑名:從當前工作目錄到文件。
15. 文件系統通常是以2的n次方個連續的扇區爲單位對文件進行磁盤空間的分
配,把分配給文件的連續扇區構成的磁盤塊稱爲簇。
16. 文件存儲的4種常用方式:連續分配、磁盤鏈接表、內存的鏈接分配表、i結點。
17. 連續分配:把每個文件作爲一連串的數據塊放在磁盤上。優點:實現簡單,
記錄每個文件用到的簇僅需存儲兩個數字即可:第一塊的磁盤地址和文件的塊數;
讀操作性能好,在單個操作中就能從磁盤上讀取整個文件。缺點:磁盤變得零碎,
空閒的連續簇形成“空洞”。
18. 磁盤鏈接表:爲每個文件構造簇的鏈接表,每個簇開始的幾個字節用於存放
下一個簇的簇號,簇的其他部分存放數據,每個文件可以存放在不連續的簇中。
優點:充分利用每個簇,不會因爲磁盤碎片而浪費空間,管理也比較簡單。缺點:
隨機存取相當緩慢,要獲得文件的第n塊,每一次都要從頭開始讀取前面的n-1
塊。
19. 內存的鏈接分配表:將文件所在的磁盤的簇號放在內存的表(文件分配表)中。缺點:必須把整個表都存放在內存中,磁盤容量很大時,表佔的內存比較大。
20. i結點:爲每個文件賦予一個被稱爲i結點的數據結構,其中列出了文件屬性和文件塊的磁盤地址。
21. CP/M以簇而不是以字節爲單位來記錄文件長度的。
22. 使用文件分配表FAT作爲索引表來存放文件數據所在簇的簇號
23. UNIX中採用的目錄結構非常簡單,每個目錄項只包含一個文件名及其i結點號。
24. 文件系統爲文件分配磁盤空間以簇爲單位;簇大小過大:容易造成空間浪費;
簇大小過小:文件跨越簇,訪問文件時間延長。
25. 一般簇大小是2的整數次冪個連續的扇區,如1個扇區,512個字節;連續2個扇區,大小爲1KB;連續4個扇區,大小爲2KB。
26. 跟蹤記錄空閒塊的兩種常用方法:空閒簇鏈接表(用一些空閒簇存放空閒簇
的簇號)、位圖(用n位位圖對應磁盤的n個簇,空閒簇用1表示,已分配簇用0表
示)
十一、設備管理
1. I/O設備即輸入/輸出設備,是用於計算機系統與人通信或與其他機器通信的所有設備,以及所有外存設備。
2. I/O系統不僅包括各種I/O設備,還包括與設備相連的設備控制器,有些系統還配備了專門用於輸入/輸出控制的專用計算機,即通道。此外,I/O系統要通過總線與CPU、內存相連。
3. I/O系統的結構分爲兩大類:微機I/O系統、主機I/O系統。
4. 微機IO系統:CPU與內存之間可以直接進行信息交換,但是不能與設備直接
進行信息交換,必須經過設備控制器。
5. 主機IO系統:主機I/O系統採用四級結構,包括主機、通道、控制器和設備,
一個通道可以控制多個設備控制器,一個設備控制器也可以控制多個設備。
6. IO設備的分類:按傳輸速率分、按信息交換單位分、按設備的共享屬性分。
7. 按傳輸速率分:低速設備、中速設備、高速設備。
8. 按信息交換單位分:塊設備、字符設備。
9. 按設備的共享屬性分:獨佔設備、共享設備、虛擬設備。
10. 1)設備控制器是CPU與I/O設備之間的接口,接收I/O的命令並控制設備完成I/O工作;2)設備控制器是一個可編址設備,連接多個設備時可有多個設備地址。
11. 設備控制器的組成:1)設備控制器與處理機的接口:數據線、控制線、地
址線;2)設備控制器與設備的接口:接口中3類信號爲數據、狀態、控制信號;
3)I/O邏輯:主要由指令譯碼器和地址譯碼器兩部分功能部件構成,將CPU的命令和地址分別譯碼,控制指定設備進行I/O操作。
12. 設備控制器的功能:1)接收和識別命令2)數據交換3)設備狀態的瞭解和
報告4)地址識別5)數據緩衝6)差錯控制
13. 一種特殊的處理機,它具有執行I/O指令的能力,並通過執行通道程序來控
制I/O操作,大型主機系統中專門用於I/O的專用計算機。
14. 引入通道能夠使CPU從控制I/O操作的任務中解脫,使CPU與I/O並行工作,
提高CPU利用率和系統吞吐量。
15. IO控制方式:輪詢控制方式、中斷控制方式、DMA控制方式、通道控制方式。
16. 輪詢控制方式:主機試圖發送I/O控制命令之前,先通過反覆檢測設備控制
器狀態寄存器的忙/閒標誌位,若設備“忙”,主機繼續檢測該標誌位,直到該位
爲“空閒”,主機發送I/O指令。
17. 輪詢控制方式的缺點:使CPU經常處於循環測試狀態,造成CPU的極大浪費,
影響整個進程的吞吐量。
18. CPU執行過程中,發出輸入/輸出請求,若此時I/O設備忙,則進程阻塞等待。當處於“忙”狀態的設備工作完畢,通過中斷控制器發出中斷請求信號,CPU響應中斷,執行對應該設備的中斷處理程序,然後喚醒因等待該設備而被阻塞的進程。CPU繼續執行這個進程時,向設備控制器發送I/O指令,然後CPU被調度程序分配給某個進程,繼續執行某個進程。本次I/O結束後,設備控制器通過向CPU發送中斷請求信號告知CPU本次數據傳輸結束。
19. 內存的鏈接分配表:將文件所在的磁盤的簇號放在內存的表(文件分配表)中。缺點:必須把整個表都存放在內存中,磁盤容量很大時,表佔的內存比較大。
20. 中斷控制方式的優點:優點: 使CPU和I/O設備在某些時間段上並行工作,提高CPU的利用率和系統的吞吐量。
21. DMA控制器的結構:DMA控制器的邏輯組成包括3部分:DMA與主機的接
口、DMA與設備的接口,以及I/O控制邏輯。
22. DMA控制器中的寄存器:命令/狀態寄存器CR,內存地址寄存器MAR,數據
寄存器DR,數據計數器DC
23. 命令/狀態寄存器CR:用於接收從CPU發來的I/O命令或有關控制信息、設備狀態。
24. 內存地址寄存器MAR:存放內存地址;在輸出數據時,存放輸出數據在內存
的起始地址,指示DMA應該從內存的什麼地方讀取輸出數據;在輸入數據時,
存放輸入數據將要被放入內存的起始地址,指示DMA應該把輸入數據放在內存
的什麼地方。
25. 數據寄存器DR:用於暫存DMA傳輸中要輸入或輸出的數據。
26. 數據計數器DC:指示DMA,本次向CPU發中斷信號前要讀或寫數據的次數。
27. DMA工作方式流程:當CPU要從磁盤讀入一個數據塊時,就向磁盤控制器發
送一條讀命令。該命令被送到DMA的命令寄存器CR中,同時CPU將本次讀入數
據將要放在內存中的起始地址送DMA的MAR寄存器,將本次要讀的字節數送入
DC寄存器。然後啓動DMA控制器進行數據傳輸,在DMA控制輸入過程中,CPU
可以執行其他的進程,當本次讀入的數據全部傳輸完畢後,DMA向CPU發送中
斷請求。
28. 緩衝區是用來保存兩個設備之間或設備與應用程序之間傳輸數據的內存區
域。由於CPU的速度遠遠高於I/O設備,爲了儘可能使CPU與設備並行工作,提
高系統的性能,通常需要操作系統在設備管理軟件中提供緩衝區管理功能。
29. 在數據到達速率與數據離去速率不同的地方,都可以引入緩衝區。
30. 引入緩衝的主要原因: (1)處理數據流的生產者與消費者之間的速度差異
(2)協調傳輸數據大小不一致的設備。
31. 引入緩衝的主要作用:引入緩衝區除了可以緩和CPU與I/O設備之間速度不
匹配的矛盾,還能提高CPU和I/O設備之間的並行性。
32. 單緩衝:最簡單的緩衝類型,在主存儲器的系統區中只設立一個緩衝區。用
戶進程發出I/O請求時,操作系統爲該操作分配一個位於主存的緩衝區。
33. 當一個進程往這一個緩衝區中傳送數據(或從這個緩衝區讀取數據)時,操
作系統正在清空(或填充)另一個緩衝區,這種技術稱爲雙緩衝(Double Buffering),或緩衝交換(Buffering Swapping)
34. 循環緩衝:多個緩衝區(空緩衝區R,已裝滿數據的緩衝區G,先行工作緩衝區C)多個指針(Nextg,Nexti,Current)
35. Getbuf過程:消費者進程要使用緩衝區中數據時調用,生產者進程要使用空緩衝區裝數據時調用;Releasebuf過程:進程使用完緩衝區後,調用Releasebuf過程釋放G緩衝區。
36. 設備分配中的數據結構:支持設備分配的數據結構需要記錄設備的狀態(忙
或空閒)、設備類型等基本信息。
37. 設備分配中的數據結構:設備控制表DCT、控制器控制表COCT、通道控制
表CHCT、系統設備表SDT。
38. 設備控制表DCT:系統爲每個設備建立一張設備控制表,多臺設備控制表構
成設備控制表集合。每張設備控制表包含設備類型、設備標識符、設備狀態(忙
/閒)等信息。
39. 控制器控制表COCT:系統爲每個控制器設置一張用於記錄該控制器信息的
控制器控制表,通常包含控制器標識符、控制器狀態等信息。
40. 通道控制表CHCT:系統爲每個通道設備設一張通道控制表,通常包含通道
標識符、通道狀態等信息。
41. 系統設備表SDT:記錄了系統中全部設備的情況,每個設備佔一個表目,其
中包括設備類型、設備標識符、設備控制表及設備驅動程序的入口地址。
42. 設備分配應考慮以下3個因素: (1)設備的固有屬性(2)設備分配算法(3)設備分配方式
43. 設備的固有屬性:獨佔性、共享性、可虛擬性
44. 獨佔設備:獨享分配策略;共享設備:可同時分配給多個進程使用;可虛擬
設備:可同時分配給多個進程使用。
45. 設備分配算法:先來先服務:根據進程對某設備提出請求的先後順序分配;
基於優先權的分配算法:對高優先權進程所提出的I/O請求也賦予高優先權。
46. 設備分配方式:安全分配方式、不安全分配方式。
47. 設備獨立性:應用程序獨立於具體使用的物理設備。應用程序中,使用邏輯
設備名稱來請求使用某類設備;系統在實際執行時,必須使用物理設備名稱。
48. 實現設備獨立性帶來的好處:1)應用程序與物理設備無關;2)易於處理輸
入/輸出設備的故障;3)提高了系統的可靠性,增加了設備分配的靈活性。
49. 設備獨立軟件的功能:1)執行所有設備的公有操作:包括獨佔設備的分配
與回收、將邏輯設備名轉換爲物理設備名、對設備進行保護等。2)向用戶層軟
件提供統一的接口:嚮應用軟件和最終用戶提供簡單、統一的訪問接口。
50. SPOOLing的含義:在多道程序環境下,利用一道程序來模擬脫機輸入時的
外圍控制機的功能,把低速I/O設備上的數據傳送到高速輸出磁盤上,再利用另
一道程序來模擬脫機輸出時外圍控制機的功能,把數據從磁盤傳送到低速輸出設
備上。這種在聯機情況下實現的同時外圍操作稱爲SPOOLing (Simultaneous
Peripheral Operations On-Line)
51. SPOOLing的組成: (1)輸入井和輸出井(2)輸入緩衝區和輸出緩衝區(3)
輸入進程SPi和輸出進程SPo(4)請求I/O隊列
52. SPOOLing的特點: (1)提高了I/O速度 (使用了磁盤作爲低速設備的大容量緩存)(2)將獨佔設備改造爲共享設備(3)實現了虛擬設備功能
十二、設備管理
1. 輸入輸出軟件的總體目標是將軟件組織成一種層次結構,低層軟件用來屏蔽
硬件的具體細節,高層軟件則主要是爲用戶提供一個簡潔、規範的界面。
2. 設備管理的4個層次:用戶軟件層(向系統發出I/O請求,顯示I/O操作的結果,提供用戶與設備的接口)、與設備無關的軟件層(完成設備命名、設備分配、設備獨立性和緩衝管理等功能)、設備驅動程序(與硬件關係最密切,包括設備服務程序和中斷處理程序)、中斷處理程序。
3. 設備管理軟件的功能:(1) 實現I/O設備的獨立性(2) 錯誤處理(3) 異
步傳輸(4)緩衝管理(5) 設備的分配和釋放(6)實現I/O控制方式。
4.中斷處理程序的作用:I/O中斷處理程序的作用是將發出I/O請求而被阻塞的進程喚醒。
5.設備驅動程序是I/O進程與設備控制器之間的通信程序,其主要任務是接受上層軟件發來的抽象的I/O請求,如read和write命令,把它們轉換爲具體要求後,發送給設備控制器啓動設備去執行。
6. 與設備無關的IO軟件:(1) 設備命名(2) 設備保護(3) 提供獨立於設
備的塊大小(4) 爲塊設備和字符設備提供必要的緩衝技術(5) 塊設備的
存儲分配(6) 分配和釋放獨立設備(7) 錯誤處理
7. 磁盤存儲器不僅容量大,存取速度快,而且可以實現隨機存取,是存放大量程序和數據的理想設備。磁盤管理的重要目標是提高磁盤空間利用率和磁盤訪問速度。
8. 一個物理記錄存儲在一個扇區上,磁盤存儲的物理記錄數目是由扇區數、磁
道數及磁盤面數決定的。
9. 磁盤類型:固定頭磁盤、活動頭磁盤。
10. 磁盤訪問時間:尋道時間:磁頭移動到指定磁道所經歷的時間;旋轉延遲時
間:指定扇區移動到磁頭下面所經歷的時間;傳輸時間:把數據從磁盤讀出或向
磁盤寫入數據時所經歷的時間。
11. 磁盤調度算法:(1)先來先服務 (First Come First Served, FCFS)(2)最短尋道時間優先 (Shortest Seek Time First, SSTF)(3)掃描算法 (SCAN)(4)循環掃描算法 (CSCAN)(5) NStepSCAN和FSCAN調度算法
12. 1)先來先服務 (First Come First Served, FCFS):最簡單的磁盤調度算法,根據進程請求訪問磁盤的先後順序進行調度;2)最短尋道時間優先 (Shortest Seek Time First, SSTF):該算法選擇這樣的進程:其要求訪問的磁道與當前磁頭所在的磁道距離最近,以使每次的尋道時間最短;3)掃描算法 (SCAN):不僅考慮到要訪問的磁道與當前磁道的距離,更優先考慮磁頭當前的移動方向; 4)循環掃描算法 (CSCAN):規定磁頭是單向移動。
13. 提高磁盤I/O速度的方法: (1) 提前讀(2)延遲寫(3)優化物理塊的分佈(4)虛擬盤(5)磁盤高速緩存