1. 操作系統的資源管理技術
資源管理解決物理資源數量不足和合理分配資源這兩個問題。
操作系統虛擬機為用戶提供了一種簡單、清晰、易用、高效的計算機模型。虛擬機的每種資源都是物力資源通過復用、虛擬和抽象而得到的產物。
虛擬機提供進程運行的邏輯計算環境。從概念上來說,一個進程運行在一臺虛擬機上,可以認為一個進程就是一臺虛擬機,一臺虛擬機就是一個進程。
復用:空分復用共享和時分復用共享。
a. 空分復用共享(space-multiplexed sharing): 將資源從“空間”上分割成更小的單位供不同進程使用。在計算機系統中,內存和外存(磁盤)等是空分復用共享的。
b. 時分復用共享(time-multiplexed sharing): 將資源從“時間”上分割成更小的單位供不同進程使用。在計算機系統中,處理器和磁盤機等是時分復用共享的。
虛擬:對資源進行轉化、模擬或整合,把一個物理資源轉變成多個邏輯上的對應物,也可以把多個物理資源變成單個邏輯上的對應物,即創建無須共享獨占資源的假象,或創建易用且多于實際物理資源的虛擬資源假象,以達到多用戶共享一套計算機物理資源的目的。虛擬技術可用于外部設備(外部設備同時聯機操作(SPOOLing)),存儲資源(虛擬內存)和文件系統(虛擬文件系統(Virtual File System, VFS))中。
復用和虛擬相比較,復用所分割的是實際存在的物理資源,而虛擬則實現假想的同類資源。虛擬技術解決某類物理資源不足的問題,提供易用的虛擬資源和更好的運行環境。
抽象:通過創建軟件來屏蔽硬件資源的物理特性和實現細節,簡化對硬件資源的操作、控制和使用。
復用和虛擬的主要目標是解決物理資源數量不足的問題,抽象則用于處理系統復雜性,重點解決資源易用性。
2.系統調用
系統調用: 為給應用程序的運行提供良好環境,內核提供了一系列具有預定功能的服務例程,通過一組稱為系統調用(System Call)的接口呈現給用戶,系統調用把應用程序的請求傳送至內核,調用相應的服務例程完成所需處理,將處理結果返回給應用程序。
注:系統調用的編號稱為功能號
系統調用的執行過程: 當CPU執行程序中編寫的由訪管指令(supervisor, 也稱自陷指令(trap)或中斷指令(interrupt), 指引起處理器中斷的機器指令)實現的系統調用時會產生異常信號,通過陷阱機制(也稱異常處理機制,當異常或中斷發生時,處理器捕捉到一個執行線程,并且將控制權轉移到操作系統中某一個固定地址的機制),處理器的狀態由用戶態(user mode, 又稱目態或普通態)轉變為核心態(kerbel mode, 又稱管態或內核態),進入操作系統并執行相應服務例程,以獲得操作系統服務。當系統調用執行完畢時,處理器再次切換狀態,控制返回至發出系統調用的程序。
系統調用是應用程序獲得操作系統服務的唯一途徑。
系統調用的作用:
1. 內核可以基于權限和規則對資源訪問進行裁決,保證系統的安全性。
2. 系統調用對資源進行抽象,提供一致性接口,避免用戶在使用資源時發生錯誤,且編程效率大大提高。
系統調用與函數調用的區別:
1. 調用形式和實現方式不同。功能號 VS 地址; 用戶態轉換到內核態 VS 用戶態。
2. 被調用代碼的位置不同。 動態調用 + 操作系統 VS 靜態調用 + 用戶級程序。
3. 提供方式不同。 操作系統 VS 編程語言。
3. 操作系統內核
內核: 是一組程序模塊,作為可信軟件來提供支持進程并發執行的基本功能和基本操作,通常駐留在內核空間,運行于內核態,具有直接訪問硬件設備和所有內存空間的權限,是僅有的能夠執行特權指令的程序。
內核的功能:
a. 中斷處理。中斷處理是內核中最基本的功能,也是操作系統賴以活動的基礎。
b. 時鐘管理。時鐘管理是內核的基本功能。
c.短程調度。短程調度的職責是分配處理器,按照一定的策略管理處理器的轉讓,以及完成保護和恢復現場工作。
d. 原語管理。原語是內核中實現特定功能的不可中斷過程。
內核是操作系統對裸機的第一次改造,內核和裸機組成了第一層虛擬機,進程在虛擬機上運行。
4. 處理器狀態: 內核態和用戶態
僅在內核態下才能使用的指令稱為特權指令,執行這些指令不僅影響運行程序自身,而且還會干擾其他程序及操作系統。非特權指令在內核態和和用戶態下都能工作。
現代計算機為處理器建立硬件標志位,稱處理器狀態位,通常是程序狀態字(Program Status Word, PSW)中的一位,來將處理器的狀態設置為內核態或用戶態。
用戶態向內核態轉換的情況:
a. 程序請求操作系統服務, 執行系統調用。
b. 在程序運行時產生中斷事件(如I/O操作完成),運行程序被中斷,轉向中斷處理程序處理。
c. 在程序運行時產生異常事件(如在目態下執行特權指令),運行程序被打斷,轉向異常處理程序工作。
以上三種情況都是通過中斷機制發生,可以說中斷和異常是用戶態到內核態轉換的僅有途徑。
用戶棧和核心棧
a.用戶棧是用戶進程空間中的一塊區域。用于保存應用程序的子程序(函數)間相互調用的參數,返回值,返回點和子程序的局部變量。
b.核心棧是內存中操作系統空間的一塊區域。用于保存中斷現場和保存操作系統程序(函數)間相互調用的參數,返回值,返回點和程序的局部變量。
5. 中斷(Interupt)
中斷:程序執行過程中遇到急需處理的事件時,暫時終止現行程序在CPU上的運行,轉而執行相應的事件處理程序,待處理完成后再返回斷點或調度其他程序的執行過程。
中斷的分類:
a. 外中斷(又稱中斷或異步中斷): 來自處理器之外的中斷信號,如,時鐘中斷、鍵盤中斷等。外中斷可分為可屏蔽中斷和非可屏蔽中斷。
b. 內中斷(又稱異常或同步中斷),來自處理器內部的中斷信號,如,訪管中斷,硬件故障中斷,程序性中斷等。內中斷不能被屏蔽。
中斷和異常的響應: 發現中斷源 → 保護現場 → 轉向中斷/異常事件處理程序執行 → 恢復現場
6. 進程
進程:具有獨立功能的程序在某個數據集合上的一次運行活動,也是操作系統進行資源分配和保護的基本單位。
a. 從原理角度看,進程是支持程序執行的一種系統機制,它對處理器上運行程序的活動進行抽象。
b. 從實現角度看,進程是一種數據結構,用來準確地刻畫運行程序的狀態和系統動態變化狀況。
進程狀態的七態模型
a. 新建態(new): 進程被創建,尚未進入就緒隊列。
b. 就緒態(ready): 進程具備運行條件,等待系統分配處理器。
c. 掛起就緒態(ready suspend):進程具備運行條件,但目前在外存中。
d. 運行態(running): 進程占有處理器正在運行。
e. 終止態(exit): 進程達到正常結束點或被其他原因所終止,下一步將被撤銷。
f. 等待態(wait): 又稱阻塞態或休眠態。進程正在等待某個事件完成,目前不具備運行條件。
g. 掛起等待態(blocked suspend): 進程正在等待某個事件完成,并且在外存中。
程序和數據刻畫進程的靜態特征,稱為進程控制塊的一種數據結構刻畫進程的動態特征。進程映像(process image)包括進程控制塊、進程程序塊、進程核心塊、進程數據塊等要素。
進程控制塊(Process Control Block, PCB):進程存在的唯一標識,操作系統掌握進程的唯一資料結構和管理進程的主要依據。包括標識信息、現場信息和控制信息等信息。
進程隊列(process queue):處于同一狀態的所有進程的PCB鏈接在一起的數據結構。 有兩種隊列組織方式:鏈接方式和索引方式。
進程切換必定在內核態而非用戶態發生。
進程可以分為兩部分,資源集合和線程集合。進程要支撐線程運行,為線程提供虛擬地址空間和各種資源。進程封裝管理信息,線程封裝執行信息。
7. 處理器調度
處理器調度層次:
a.高級調度: 又稱作業調度、長程調度。從輸入系統的一批作業(job, 用戶提交給操作系統計算的一個獨立任務)中按照預定的調度策略挑選若干作業進入內存,為其分配所需資源并創建對應作業的用戶進程。
b.中級調度: 又稱平衡調度,中程調度。根據內存資源情況決定內存所能容納的進程數目,并完成外存和內存中進程對換工作。
c.低級調度:又稱進程調度/線程調度,短程調度。根據某種原則決定就緒隊列中那個進程/線程先獲得處理器,并將處理器出讓給它使用。
低級調度算法:
a.先來先服務(First Come First Server, FCFS)算法。
b.最短作業優先(Shortest Job First, SJF)算法。
c.最短剩余時間優先(Shortest Remaining Time First, SRTF)算法: 假設當前某進程/線程正在運行,如果有新進程/線程移入就緒隊列,若它所需的CPU運行時間比當前運行的進程/線程所需的剩余CPU時間還短,搶占式最短作業優先算法強行剝奪當前執行者的控制權,調度新進程/線程執行。
d.最高響應比優先(Highest Response Ratio First, HRRF)算法:非剝奪式算法。其中,響應比 = (作業已等待時間 + 作業處理時間) / 作業處理時間。
e.優先級調度算法:優先級高的選擇進程/線程優先選擇。
f.輪轉調度(Round-Robin, RR)算法: 也稱時間片調度。就緒隊列的進程輪流運行一個時間片。
g.多級反饋隊列(Multi-Level Feedback Queue, MLFQ)算法。
衡量調度算法的性能指標:
a.資源利用率: CPU利用率 = CPU有效工作時間/(CPU有效工作時間 + CPU空閑等待時間)
b.吞吐率: 單位時間內CPU處理作業的個數。
c.公平性: 確保每個進程都能獲得合理的CPU份額和其他資源份額,不會出現饑餓現象。
d.響應時間: 從交互式進程提交一個請求(命令)直到獲得響應之間的時間間隔。
e.周轉時間: 批處理用戶從向系統提交作業開始到作業完成為止的時間間隔。
平均周轉時間:T = (∑ni=1ti) / n , 其中ti表示作業i的周轉時間。
平均帶權作業周轉時間: T = (∑ni=1wi) / n, 其中wi=ti/tk,ti表示作業i的周轉時間。tk表示作業i的運行時間。
8. 進程的交互
進程互斥(Mutual Exclusion): 若干進程因相互搶奪獨占型資源而產生的競爭制約關系。
進程同步(Synchronization): 為完成共同任務的并發進程基于某個條件來協調其活動,因為需要在某些位置上排定執行的先后次序而等待、傳遞信息或消息所產生的協作制約關系。
資源競爭會引發兩個控制問題:
a.死鎖: 一組進程因爭奪資源陷入永遠等待的狀態。
b.饑餓: 一個可運行進程由于由于其他進程總是優先于它,而被調度程序無限期地拖延而不能被執行。
9. 臨界區管理
并發進程中與共享變量有關的程序段稱為臨界區(Critical Section)。共享變量所代表的資源稱為臨界資源(Critical Resource),即一次僅能供一個進程使用的資源。
臨界區調度原則:
a. 擇一而入。 一次之多只有一個進程進入臨界區內執行。
b. 忙則要等。 如果已有進程在臨界區中, 試圖進入此臨界區的其他進程應等待。
c. 有限等待。 進入臨界區內的進程應在有限時間內退出。
臨界區管理的硬件設施:
a. 關中斷。 在進程進入臨界區時關中斷,進程退出臨界區時開中斷。
b. 測試并設置指令。 利用機器指令TS(Test and Set)實現臨界區的上鎖和開鎖原語操作。
c. 對換指令。 利用對換指令實現臨界區的上鎖和開鎖原語操作。
10.管程
管程(monitor):代表共享資源的數據結構及并發進程在其上執行的一組構成就構成管程,管程被請求和釋放資源的進程鎖調用。
a.條件變量。 管程內的一種數據結構。只有在管程中才能被訪問,進程可以在條件變量上等待或被喚醒。只能通過de >wait()de>和de >signal()de>?原語操作來控制。
b.de >wait()de>?原語。 掛起調用進程并釋放管程,直至另一個進程在條件變量上執行de >signal()de>。
c.de >signal()de>?原語。如果有其他的進程因對條件變量執行de >wait()de>?而被掛起,便釋放之。 如果沒有進程在等待,那么相當于空操作,信號不被保存。
11. 死鎖
死鎖的主要解決方法: 死鎖防止、死鎖避免、死鎖檢測和恢復。
死鎖產生的必要條件:
a.互斥條件。 臨界資源是獨占資源,進程應互斥且排他地使用這些資源。
b.占有和等待條件。 進程在請求資源得不到滿足而等待時,不釋放已占有的資源。
c.不剝奪條件。已獲資源只能由進程資源釋放,不允許被其他程序剝奪。
d.循環等待條件。 存在循環等待鏈,其中每個進程都在等待下一個進程所持有的資源。
死鎖的防止就是去破壞死鎖產生的必要條件。 如,使資源可同時使用(破壞互斥條件)、靜態分配資源(破壞占有和等待條件)、剝奪調度(破壞不剝奪條件)、層次分配策略(循環等待條件)等。
死鎖避免:銀行家算法(額…自己百度去吧。 = =!)
死鎖檢測和恢復:進程-資源分配圖(額…還是去百度吧。)
a. 如果進程-資源分配圖中無環路,此時系統沒有死鎖。
b. 如果進程-資源分配圖中有環路,且每個資源類中只有一個資源,則系統發生死鎖。
c. 如果進程-資源分配圖中有環路,且所涉及的資源類有多個資源,則不一定會發生死鎖。
12. 可變分區存儲管理
可變分區存儲分配算法:
a.最先適應分配算法。從未分配區的開始位置開始掃描,在找到的第一個能滿足長度要求的空閑區上分配存儲空間。
b.下次適應分配算法。從未分配區上次掃描結束處開始順序查找,在找到的第一個能滿足長度要求的空閑區上分配存儲空間。
c.最優適應分配算法。掃描整個未分配區,選擇能滿足用戶進程要求的最小分區分配存儲空間。
d.最壞適應分配算法。掃描整個未分配區,選擇能滿足用戶進程要求的最大分區分配存儲空間。
e.快速適應分配算法。為經常用到的長度的空閑區設立單獨的空閑區鏈表。
13. 分頁存儲管理
基本概念:
a.頁面。進程邏輯地址空間分成大小相等的區,每個區稱為頁面或頁。(@楊領well注: 頁面的本質是邏輯地址空間)
b.頁框(kuàng, 0.0)。 又稱頁幀。內存物理地址空間分成大小相等的區,其大小和頁面大小相等,每個區就是一個頁框。(@楊領well注: 頁框的本質是物理地址空間)
c.邏輯地址。分頁存儲器的邏輯地址由頁號和頁內偏移兩部分組成。
d.內存頁框表。頁框表的表項給出物理塊使用情況:0為空閑,1為占用。
e.頁表。頁表是操作系統為進程建立的,是程序頁面和內存頁框的對照表,頁表的每一欄指明程序中的某一頁面和分得的頁框之間的關系。
分頁存儲管理的地址轉換
翻譯快表:也稱轉換后援緩沖(Translation Look_aside Buffer, TLB)。用來存放進程最近訪問的部分頁表項。(@楊領well注: 翻譯快表之于頁表類似于Cache之于存儲器)
二級頁表:把整個頁表分割成許多小頁表,每個稱為頁表頁,每個頁表頁含有若干個頁表表項。頁表頁允許分散對應不連續的頁框。為了找到頁表頁,應建立地址索引,稱為頁目錄表,其表項指出頁表頁起始地址。
二級頁表實現邏輯地址到物理地址轉換的過程: 由硬件“頁目錄表基址寄存器”指出當前運行進程的頁目錄表的內存起始地址,加上“頁目錄位移”作為索引,可找到頁表頁在內存的起始地址,再以“頁目錄位移”作為索引,找到頁表頁在內存的起始位置,再以“頁表頁位移”作為索引,找到頁表頁的表項,此表項中包含一個頁面對應的頁框號,由頁框號和頁內偏移便可生成物理地址。
@楊領well注: 類比于書的目錄,找某一段內容的時候,先在目錄上找到對應的章節,再在對應的章節下面找具體的知識點。比如,我要在《操作系統原理》中查“多級頁表”。首先我知道它是在存儲管理一章的,于是就找到了“第四章 存儲管理”(類似于找到了頁目錄表)。 然后在第四章下面找“多級頁表”(類似于在頁目錄表下面找具體的頁表頁)。最后找到“多級頁表”對應的頁碼(類似于在頁表頁中找到其對應的頁框)。最后查閱對應的章節頁碼(類似于讀取對應頁框的數據)。
14. 分段存儲管理
分段和分頁的比較:
a. 分段是信息的邏輯單位,由源程序的邏輯結構及含義所決定,是用戶可見的,段長由用戶根據需要來確定,段起始地址可以從任何內存地址開始。引入的目的是滿足用戶模塊化程序設計的需要。
b. 分頁是信息的物理單位,與源程序的邏輯無關,是用戶不可見的,頁長由系統(硬件)決定,頁面只能從頁大小的整數倍地址開始。引入目的是實現離散分配并提高內存利用率。
15. 虛擬存儲管理
虛擬存儲管理的基本思路:
把磁盤空間當做內存的一部分,進程的程序和數據部分放在內存中,部分放在磁盤上。程序運行時,它執行的指令或訪問的數據在哪里由存儲管理負責判斷,并針對情況采取響應的措施。
請求分頁虛存管理: 將進程信息副本存放在外存中,當它被調度投入運行時,程序和數據沒有全部裝進內存,僅裝入當前使用頁面,進程執行過程中訪問到不在內存的頁面時,產生缺頁異常,再由系統自動調入。
全局頁面替換策略(頁面替換算法的作用范圍是整個系統,不考慮進程的屬主):
a.最佳頁面替換算法(Optimal Replacement, OPT)。 淘汰不再訪問的頁或者距現在最長時間后才訪問的頁。
b.先進先出頁面替換算法(First in First Out Replacement, FIFO)。淘汰在內存中駐留時間最長的頁。
c.最近最少使用頁面替換算法(Least Recently Used Replacement, LRU)。 淘汰最近一段時間內最久未被使用的頁面。
d.第二次機會頁面替換算法(Second Chance Replacement, SCR)。 首先檢查FIFO頁面隊列中的隊首,這是最早進入內存的頁面,如果其“引用位”為0,那么它最早進入且未被引用,此頁被淘汰。如果其“引用位”為1,說明雖然它最早進內存,但最近仍在使用,于是將“引用位”清零,并把這個頁面移到隊尾,把它看做新調入的頁面,再給它一次機會。
e.時鐘頁面替換算法(Clock Policy Replacement, Clock)。與SCR算法思路一致。只是用循環隊列來構造頁面隊列,隊列指針指向可能被淘汰的頁面。如果隊列指針指向的頁的“引用位”為1,則將其置為0,同時隊列指針指向下一個頁。
局部頁面替換算法(頁面替換算法的作用局限于進程自身,要為進程維護稱為工作集的一組頁面):
a.局部最佳頁面替換算法(Local Minimum Replacement, MIN)。 在t時刻時,若頁面P在未來(t, t+delta)時間段內未被引用,則它被淘汰。
b.工作集置換算法。 在t時刻時,若頁面P在未來(t-delta, t)時間段內未被引用,則它被淘汰。
c.模擬工作集替換算法。
d.缺頁頻率替換算法。
16. 請求段頁式虛擬內存管理
虛地址以程序的邏輯結構劃分為段。
實地址劃分為位置固定、大小相等的頁框(塊)。
邏輯地址分為三個部分:段號s、段內頁號p、頁內位移d。對于用戶而言,段式虛擬地址應該由段號s和段內位移d’組成,操作系統內部自動把d’解釋成段內頁號p和頁內位移號d。
17. I/O硬件原理:I/O控制方式
輪詢方式: 又稱程序直接控制方式。使用查詢指令測試設備控制器的忙閑狀態位,確定內存和設備是否能能交換數據。(@楊領well注:所謂輪詢,就好比,老濕依次問每一個童鞋:“有問題沒?”, 如果沒問題,就繼續問下一個童鞋。如果這個童鞋有問題,這個老濕就停下了解決這個問題。然后又繼續詢問下一個童鞋。)
中斷方式: 要求CPU和設備控制器及設備之間存在中斷請求線,設備控制器的狀態寄存器有相應的中斷允許位。
a. 進程發出啟動I/O指令。
b. 設備控制器檢查狀態寄存器的內容,執行相應的I/O操作,一旦傳輸完成,設備控制器通過中斷請求線發出I/O中斷信號。
c. CPU收到并響應I/O中斷后,轉向設備的I/O中斷處理程序執行。
d. 中斷處理程序執行數據讀取操作,將I/O緩沖寄存器的內容寫入內存。操作結束后退出中斷程序恢復之前的狀態。
e. 執行中斷前之前運行的進程。
(@楊領well注: 類似于老濕在上面講課,有童鞋問問題時,老濕就記錄下自己講到的位置,然后取回答童鞋的問題,回答完之后,又回到剛剛講課的地方繼續講課)
DMA(Direct Memory Access, 直接存儲器存取)方式: 內存和設備之間有一條數據通路成塊的傳輸數據,無須CPU干9預,實際數據傳輸操作由DMA直接完成。
通道方式: CPU在執行主程序時遇到I/O請求,啟動在指定通道上選址的設備,一旦啟動成功,通道開始控制設備進行操作,這時CPU就可以執行其他任務并與通道并行工作,直到I/O操作完成;當通道發出I/O操作結束中斷時,處理器才響應并停止當前工作,轉而處理I/O操作結束時間。
18. I/O軟件原理
I/O中斷處理程序: 通常是設備驅動程序的組成部分之一。檢查設備狀態寄存器內容,判斷產生中斷原因,根據I/O操作的完成情況進行相應處理。若數據傳輸有錯,應向上層軟件報告設備出錯信息,實施重新執行;若正常結束,應喚醒等待傳輸的進程,使其轉換為就緒態;若有等待傳輸的I/O命令,應通知相關軟件啟動下一個I/O請求。
I/O設備驅動程序:設備驅動程序是設備專有的。把用戶提交的邏輯I/O請求轉化為物理I/O的啟動和執行。同時監督設備是否正確執行,管理數據緩沖區,進行必要的糾錯處理。
獨立于設備的I/O軟件
用戶空間的I/O軟件
19. 緩沖技術
緩沖技術的基本思想: 當進程執行寫操作輸出數據時,先向系統申請一個輸出緩沖區,然后將數據送至緩沖區,若是順序寫請求,則不斷地把數據填入緩沖區,直至裝滿為止,此后進程可以繼續計算,同時,系統將緩沖區的內容寫在設備上。當進程執行讀操作輸入數據時,先向系統申請一個輸入緩沖區,系統將設備上的一條物理記錄讀至緩沖區,根據要求把當前所需要的邏輯記錄從緩沖區中選出并傳送給進程。
單緩沖: 是最簡單的緩沖技術,每當有I/O請求時,操作系統就在內存的系統區中開設一個緩沖區。不允許多個進程同時對一個緩沖器操作。
雙緩沖: CPU可把輸出到設備的數據放入其中一個緩沖器(區)、讓設備慢慢處理;然后,它又可以從另一個為終端設置的緩沖器(區)中讀取所需要的輸入數據。
多緩沖: 是把多個緩沖區連接起來組成兩部分,一部分專門用于輸入,另一部分專門用于輸出的緩沖結構。
20. 驅動調度技術
磁盤的物理結構:
磁盤包括多個盤面,每個盤面有一個讀寫磁頭,所有的磁頭都固定在唯一的移動臂上同時移動。一個盤面上的讀寫磁頭的軌跡稱為磁道,讀寫磁頭下的所有磁道形成柱面,一個磁道又可以劃分為多個扇區。在磁盤上定位某個物理記錄需要知道其柱面號、磁頭號以及扇區號。定位物理記錄時,磁頭到達指定扇區的時間稱為查找時間, 選擇磁頭號并旋轉至指定扇區的時間稱為搜索延遲。
磁道(柱面)的搜索定位算法:
a.先來先服務算法(First Come First Server algorithm, FCFS)。
b.最短查找時間優先算法: 總是執行查找時間最短的請求。
c.掃描算法: 移動臂來回的掃過所有柱面,掃描處遇到I/O請求便進行處理。
d.分步掃描算法: 將I/O請求分為長度為N的子隊列,按FIFO算法依次處理每個隊列,而每個子隊列采用掃描算法,處理完一個后再服務下一個隊列。
e.電梯調度算法: 又稱LOOK算法。
磁頭號由外向內遞增。
f.循環掃描算法: 移動臂總是從0號柱面至最大號柱面順序掃描,然后直接返回0號柱面重復進行,歸途中不提供服務(而掃描算法歸途是要提供服務的)。
21. 設備獨立性
設備獨立性: 用戶通常不指定物理設備,而是指定邏輯設備,使得用戶作業和物理設備分離開來,再通過其他途徑建立邏輯設備和物理設備之間的映射,設備的這種特性稱為設備獨立性。
22. 虛擬設備
外部設備同時聯機操作(Simultaneous Peripheral Operations On Line, SPPPLing):
a.預輸入程序。 控制信息從輸入設備至輸入井,填寫預輸入表以便在作業執行過程中要求輸入信息時可以隨時找到其存放位置。
b.井管理程序。 作業執行過程中要求啟動某臺設備進程I/O操作時,作業控制程序截獲這個要求并調用井管理程序控制從相應輸入井讀取信息,或將信息送至輸出井。
c.緩輸出程序。 當處理器空閑時,操作系統調用緩輸出程序執行緩輸出,它查看緩輸出表是否有輸出打印的文件,文件打印前還可能組織作業或文件標題,也可能對從輸出井中讀出的信息進行格式加工。
23. 文件邏輯結構
文件的邏輯結構的兩種形式:
a.流式文件。 一種無結構的文件,文件內的數據不再組成記錄,只是一串順序的信息集合,稱為字節流文件。
b.記錄式文件。 一種有結構的文件,包含若干邏輯記錄,邏輯記錄是文件中按信息在邏輯上獨立含義所劃分的信息單位。
24. 文件物理結構
文件物理結構: 文件的物理結構和組織是指邏輯文件在物理存儲空間中的存放方法和組織關系。
常見組織方式:順序文件、連接文件、直接文件和索引文件。