基於《計算機操做系統》(第四版)總結:OS引論、進程描述與控制、處理機調度與死鎖、存儲器管理、虛擬存儲器、輸入輸出系統、文件系統程序員
一、目標:方便性、有效性、可擴充性、開放性編程
二、做用:數組
一、做爲用戶與計算機硬件系統之間的接口緩存
二、做爲計算機系統資源的管理者安全
三、實現對計算機資源的抽象服務器
三、發展過程:數據結構
一、人工操做方式:用戶獨佔全機,CPU等待人工操做--帶(卡)裝卸併發
二、脫機輸入/輸出方式:事先將裝有用戶程序和數據的紙帶裝入紙帶輸入機,外圍機控制,把紙帶內容輸入到磁帶上(相似於磁盤),CPU須要時,從磁帶高速調入內存。反之類同。異步
優勢:減小了CPU的空閒時間、提升了I/O速度
三、單道批處理:首先監督程序將磁帶第一個做業裝入內存,運行控制權在該做業,處理完改做業後,控制權回到監督程序,而後進行重複過程,系統自動對做業成批處理。(內存始終只保持一道做業---單道批處理)
缺點:內存浪費,不能充分利用系統資源
四、多道批處理:所提交的做業先存入外存,排成「後備隊列」,再由做業調度程序按算法從隊列調若干做業入內存。
優缺點:資源利用率高、系統吞吐量大、平均週轉時間長、無交互能力
五、分時系統:做業直接進入內存,採用輪轉運行方式,系統配置一個多路卡(實現分時多路複用),及時接收用戶終端命令(數據)。
特徵:多路性、獨立性、及時性、交互性
六、實時系統:系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制全部實時任務的協調一致的運行。
特徵:多路性(週期性信息採集,多個對象或執行機構進行控制)、獨立性、及時性、交互性、可靠性(多級容錯措施)
四、基本特徵:
一、併發:引入進程,並行併發,系統程序獨立併發執行,提升資源利用率,增長系統吞吐量。
2、共享:
①互斥共享,一段時間內只容許一個進程訪問資源(臨界資源)。
②同時共享,容許一段時間內多進程「同時」訪問。
3、虛擬:提升通訊信道的利用率--「虛擬」技術,經過「空分複用」或「時分複用」,將一條物理信道(實)變爲若干條邏輯信道(虛)。
空分複用:利用存儲器的空閒空間分區域存放和運行其餘的多道程序
時分複用:利用處理機的空閒時間運行其餘程序
4、異步:進程以不可預知的速度向前推動。
五、主要功能:
一、處理機管理功能:
①進程控制:建立和撤銷進程,分配資源、資源回收,控制進程運行過程當中的狀態轉換。
②進程同步:多進程運行進行協調--進程互斥(臨界資源上鎖)、進程同步。
③進程通訊:實現相互合做之間的進程的信息交換。
④調度:做業調度,進程調度。
2、存儲器管理功能:爲多道程序的運行提供良好的環境,提升存儲器的利用率,方便用戶使用,並能從邏輯上擴充內存。
①內存分配:靜態分配、動態分配。
②內存保護:各在其內存空間內運行(設兩界限寄存器),互不干擾。
③地址映射:地址空間中的邏輯地址轉換爲內存空間中與之對應的物理地址。
④內存擴充:藉助於虛擬存儲技術,邏輯上擴充內存容量。
3、設備管理功能:完成用戶進程提出的I/O請求,爲其分配所需I/O設備,完成指定I/O操做;提升CPU和I/O設備的利用率,提升I/O速度,方便用戶使用I/O設備。
①緩衝管理
②設備分配
③設備處理:設備驅動程序,用於實現CPU和設備控制器之間的通訊。
4、文件管理功能:對用戶文件和系統文件進行管理以方便用戶使用,並保證文件的安全性。
①文件存儲空間的管理:爲文件分配合理外存空間,文件存儲空間的使用狀況。
②目錄管理:爲每一個文件創建一個目錄項。
③文件的讀/寫管理和保護
5、操做系統與用戶之間的接口:用戶接口,程序接口
六、微內核操做系統:
①內核足夠小
②基於客戶/服務器
③「機制與策略分離」原理
④面向對象技術
一、前趨圖:用於描述程序執行前後順序 P1->P2,是指一個有向無循環圖。
程序的順序執行:按照某種前後次序順序執行,僅當前一程序執行完後,才運行後一段程序。
順序性、封閉性、可在現性
輸入操做I->計算操做C->打印操做P
程序的併發執行:間斷性、失去封閉性、不可再現性
二、進程
一、定義:
程序的一次執行,順序執行時所發生的活動,是具備獨立功能的程序在一個數據集合上的運行過程,系統資源調配的獨立單位。
二、實體:
即進程,由程序段、相關的數據段和PCB組成,所謂建立和撤銷進程實際是對其中的PCB的建立和撤銷。(PCB:進程控制塊Process Control Block)
三、特徵:
①動態性 ②併發性 ③獨立性 ④異步性
三、進程的三種基本狀態:就緒、執行、阻塞狀態(阻塞緣由:I/O請求、申請緩衝區失敗等)
一、進程狀態的轉換:
二、進程的掛起suspend:進程處於靜止狀態,暫停執行(執行狀態下掛起),暫不接受調度(就緒狀態下掛起)。是基於系統和用戶的需求。
三、進程的激活active:先將進程從外存調入內存,檢查進程現行狀態,靜止-->活動
四、進程控制塊PCB:
一、記錄系統所需,用於描述進程的當前狀況以及管理進程運行的所有信息,是操做系統中記錄型數據結構。
二、做用:一個在多道程序環境下不能獨立運行的程序成爲一個能獨立執行的基本單位,一個能與其餘進程併發執行的進程。
三、三種組織方式:
①線性方式:將系統中全部的PCB都組織在一張線性表中,查表
②連接方式:把具備相同狀態進程的PCB分別經過PCB中的連接字連接成一個隊列
③索引方式:根據全部進程狀態的不一樣,創建索引表
五、併發進程間的相互制約關係:
①間接相互制約關係:進程間對類臨界資源的間接相互制約關係,爲保證進程有序運行,此類資源必須由系統實施統一分配(即用戶使用前,應先提出申請)。
②直接相互制約關係:源於某些進程(隸屬於同一應用程序)之間爲完成同一項任務而相互合做(相互間喚醒激活--制約)。
六、臨界資源:
一次僅容許一個進程使用的資源(如打印機、磁帶機等),進程間互斥來實現對臨界資源的共享。
臨界區:每一個進程中訪問臨界資源的那段代碼,進程互斥地進入本身的臨界區,對臨界資源訪問
①進程進入臨界區前,對臨界資源進行檢查是否正被訪問---進入區
②若未被訪問,進入臨界區對該資源訪問,並設置「正被訪問」的標誌---臨界區
③臨界區後面代碼,將臨界區「正被訪問」的標誌恢復爲「未被訪問」的標誌---退出區
④除進入區(entry)、臨界區(critical)、退出區(exit)代碼,其他代碼---剩餘區
七、同步機制應遵循的原則:
一、爲實現進程互斥地進入本身的臨界區
二、空閒讓進、忙則等待、有限等待、讓權等待
八、信號量機制:解決進程同步問題(進程同步工具)
①整型信號量:表示資源數目的整型量(S),僅原子操做wait(S)和signal(S)可訪問,執行時不可中斷。(分別被稱爲P、V操做)
②記錄型信號量:在表明資源數目的整型變量value基礎,增長一個進程鏈表指針list,用於連接全部等待進程。不存在「忙等」的進程同步機制。
③AND型信號量:將進程運行所需全部資源,一次性所有分配給進程,待進程使用完後再一塊兒釋放。
④信號量集:AND型信號量基礎上,對進程所申請的全部資源以及每類資源不一樣的資源需求量,在一次P、V原語操做中完成申請或釋放。
九、管程
一、管程機制:
①共享資源的數據結構
②對該共享數據結構實施操做的一組過程所組成的資源管理程序,共同構成的一個操做系統的資源管理模塊。
「一個管程定義了一個數據結構和能爲併發進程所執行的一組操做,這組操做能同步進程和改變管程中的數據。」
二、管程的組成:
①管程的名稱
②局部於管程的共享數據結構說明
③對該數據結構進行操做的一組過程
④對局部於管程的共享數據設置初始值的語句
管程被請求和釋放資源的進程所調用。
十、經典進程同步問題(使用信號量方法解決)
生產者-消費者問題
哲學家進餐問題
讀者-寫者問題
十一、進程通訊的類型:
①共享存儲器系統:相互通訊的進程「共享數據結構」或「共享存儲區」。
②管道通訊系統:「管道」(pipe)是指用於鏈接一個讀進程和一個寫進程以實現彼此間通訊的一個共享文件。借花獻佛-管道通訊。
③消息傳遞系統:將通訊上網數據封裝在消息中,經過一組通訊命令在進程間傳遞消息,完成進程間的數據交換。直接通訊方式和間接(郵箱)通訊方式。
④客戶機-服務器系統:套接字、遠程過程調用、遠程方法調用。
十二、線程:「輕級進程」,做爲調度和分派的基本單位,是程序執行流的最小單位。
進程與線程間的異同:
①調度性:線程是做爲調度和分派的基本單位,進程只做爲資源擁有的基本單位。
②線程上下文切換比進程上下文切換快得多。
③併發性:進程間可併發執行,線程(不管在同一進程與否)間也可併發執行。
④擁有資源:進程擁有系統資源,線程僅有一點必不可少、保證獨立運行的資源。多個線程可共享本進程所擁有的資源。
⑤獨立性:同一進程中的不一樣線程之間的獨立比不一樣進程之間的獨立性低得多。
⑥系統消耗:進程的建立或撤銷的系統消耗「明顯大於」線程的建立或撤銷的系統消耗。
一、處理機調度的層次:
①高級調度:(長程調度或做業調度),調度對象是做業,主要功能是根據算法決定將外存後備隊列中的某些做業調入內存,建立進程、分配必要資源,並將入就緒隊列。
②低級調度:(短程調度或進程調度),調度對象是進程,主要功能是根據算法決定內存就緒隊列中的某個進程應得到處理機,並由分派程序給選中的進程分派處理機。
③中級調度:(內存調度),內存中暫不能運行的進程調至外存(掛起狀態),待條件齊全且內存空閒,中級調度,就緒進程重回內存(就緒狀態)入就緒隊列。
二、處理機調度算法的目標:
①共同目標:資源利用率、公平性、平衡性、策略強制執行
②批處理系統的目標:平均週轉時間、系統吞吐量高、處理機利用率高
③分時系統的目標:響應時間快、均衡性
④實時系統的目標:截止時間的保證、可預測性
三、做業:一般的程序+數據+做業說明書。
一、做業控制塊:做業標識+用戶名稱+用戶帳號+做業類型+做業狀態+調度信息+資源需求+資源使用狀況+……。管理和調度做業。
二、做業運行的三個階段(三種狀態):收容階段(後備狀態)、運行階段(運行狀態)、完成階段(完成狀態)。
四、做業調度算法:
①先來先服務(FCFS):前後次序進行調度(做業調度、進程調度)。
②短做業優先(SJF):做業(或進程)越短(估計運行時間短),優先級越高。
③高響應比優先級調度算法:既考慮做業的等待時間,有考慮做業的運行時間,既照顧短做業,又不導致長做業的等待時間過長,從而改善處理機調度的性能。
R p優先級=(等待時間+要求服務時間)/要求服務時間=響應時間/要求服務時間
五、進程調度機制:
①任務:保存處理機的現場信息、按某種算法選取進程、把處理機分配給進程
②基本部分:排隊器、分派器、上下文切換器
③進程調度方式:非搶佔方式、搶佔方式
六、輪轉調度算法原理:
根據FCFS,使用輪轉法處理,讓每個就緒隊列上的進程每次運行一個時間片(若就緒隊列上有n個進程,每一個進程每次大約得到1/n的處理機時間)。
時間的片的肯定:略大於一次典型交互所需時間。
七、多級反饋隊列調度算法:
①設置多個就緒隊列:每一個隊列賦予不一樣的優先級、不一樣大小的執行時間片。
②每一個隊列都採用FCFS算法
③按隊列優先級調度
八、最先截止時間優先EDF(earliest deadline first)調度算法:根據任務的截止時間肯定優先級,截止時間愈早的優先級愈高,具備最先截止時間的任務排隊列首,優先分配處理機。
最低鬆弛度優先LLF(least laxity first)調度算法:根據任務的緊急(鬆弛)程度,緊急程度愈高的優先級愈高,優先執行處理。
九、死鎖
一、死鎖的定義:若是一組進程中的‘每個進程’都在等待僅由該組進程中的‘其它進程’才能引起的‘事件’,那麼該組進程是死鎖的(Deadlock)。
二、死鎖的必要條件(缺一不可):
①互斥條件:進程分配到的資源互斥性使用,資源只能被一個進程佔用,其餘請求該資源的進程只能等到被用完釋放。
②請求和保持條件:進程已佔有某資源,又提出新資源請求,而該資源被佔,則進程請求被阻塞,已得資源保持。
③不可搶佔條件:進程已得資源不可被搶佔。
④循環等待條件:存在一個進程的資源循環鏈。
三、死鎖的處理方法:
①預防死鎖:設置限制條件,破壞死鎖四個必要條件。
②避免死鎖:在資源的動態分配過程當中,去防止系統進入不安全狀態。
③檢測死鎖:容許進程死鎖,但檢測機構檢測死鎖發生,措施解決。
④解除死鎖:撤銷某些進程,回收它們的資源分配給處於阻塞狀態的進程,使其能繼續運行。
十、預防死鎖的方法:破壞死鎖四個必要條件
互斥條件是非共享設備所必須的----主要破壞其餘三條件
①破壞「請求和保持」條件:第一種協議,全部進程運行前申請過程所需的所有資源;第二種協議,容許一個進程得到初期所需資源便開始運行,過程當中逐步釋放分配給本身的且用畢的資源,再請求新的所需資源。
②破壞「不可搶佔」條件:新的資源請求得不到知足時,釋放已經保持的全部資源,待需之時再申請。
③破壞「循環等待」條件:對系統全部資源類型進行線性排序,並賦予不一樣的序號。
十一、安全序列:(P1,P2,……,P n)
安全狀態:系統能按某種進程推動順序(P1,P2,……,P n)爲每一個進程Pi分配其所需資源,直至知足每一個進程對資源的最大需求,使每一個進程均可以順利的完成。
十二、利用銀行家算法避免死鎖的方法
一、存儲器的層次結構:
①CPU寄存器:寄存器
②主存(內存):高速緩存、主存儲器、磁盤緩存
③輔存:固定磁盤,可移動存儲介質
可執行存儲器:寄存器、主存(掉電信息丟失)---屬於操做系統存儲管理負責分配、回收,以及提供存儲層次間數據移動的管理機制。
二、用戶程序在系統中運行,先將其裝入內存,在將其轉變位一個可執行程序
①編譯:由編譯程序對用戶源程序編譯,造成若干個目標模塊。
②連接:由連接程序將一組目標模塊及其所需庫函數連接,造成一個完整的裝入模塊。
③裝入:由裝入程序將裝入模塊裝入內存。
一、程序的裝入(地址的變換)
①絕對裝入方式:(系統小,單道程序)編譯時知道程序將駐留在內存的位置,將產生絕對地址(即物理地址)的目標代碼。絕對裝入程序按照已知地址將裝入模塊裝入內存,不需對地址修改。
②可重定位裝入方式:裝入時,對目標程序中指令和數據的各地址重定位(虛擬地址到內存地址映射)。(靜態重定位)
③動態運行時的裝入方式:裝入程序將裝入模塊裝入內存後,不對裝入模塊進行地址變換(邏輯地址轉換爲物理地址),而是推遲到程序真正要執行時才進行。(動態地址重定位)
二、程序的連接
①靜態連接方式:程序運行前,先將各目標模塊及其所需庫函數連接成一個完整的裝配模塊,之後再也不拆開。
②裝入時動態連接:邊裝入邊連接。
③運行時動態連接:對某些目標模塊,在程序執行中須要時,纔對其進行連接。
三、連續分配管理方式:
①單一連續分配:(單道程序環境下)將內存分爲系統區和用戶區,系統區僅供OS使用,用戶區僅裝用戶程序(獨佔)。
②固定分區分配:(多道程序環境下)將整個用戶空間劃分爲若干個固定大小的區域。被劃分幾個分區便容許幾個程序併發運行而不會互相干擾。
③動態分區分配:根據進程的實際須要,動態地爲之分配內存空間。(數據結構:空閒分區表、空閒分區鏈;算法:順序式搜索算法;操做:分配內存、回收內存)
④動態可重定位分配:系統對內存進行「緊湊」使若干程序移位,用該程序在內存的新起始地址去置換原來的起始地址。(得到新起始地址--動態重定位:系統中增設一個重定位寄存器存放程序和數據在內存的起始地址,程序執行時,真正訪問的內存地址是相對地址與重定位寄存器中的地址相加而造成的)
碎片:由於內存中出現不相鄰的小分區,而造成的不能被利用的小分區。
緊湊:經過移動內存中做業的位置,把原來多個分散的小分區拼接成一個大分區的方法。
四、動態分配分區算法:基於順序搜索
依次搜索空閒分區鏈上的空閒分區,尋找一個其大小知足要求的分區。
①首次適應(FF)算法:要求空間分區鏈以地址遞增的次序連接。分配內存時,從鏈首開始順序查找,直至大小知足要求,按照做業大小從該空閒分區劃份內存空間給請求者,餘下的留在空閒鏈中。
②循環首次適應(NF)算法:從上次找到的空閒分區的下一個空閒分區開始查找。設置起始查尋指針,用於指示下一次起始查尋的空閒分區,採用循環查找方式。
③最佳適應(BF)算法:要求將全部的空閒分區按其容量以從小到大的順序造成一空閒分區鏈。(容易造成許多難以利用的碎片)
④最壞適應(WF)算法:掃描整個空閒分區表或鏈表,挑選一個最大的空閒區,分割一部分存儲空間給做業使用。
五、離散存儲管理方式:
連續分配方式造成的許多「碎片」,不進行「緊湊」,利用離散的方式,將一個進程直接分散地裝入到許多不相鄰接的分區中。
①分頁:將用戶程序的地址空間分爲若干個固定大小的區域(稱「頁」),相應地,內存空間也分爲若干個物理塊(頁框),頁和塊的大小相同。離散分配。
②分段:將用戶程序的地址空間分爲若干個大小不一樣的段,每段可定義一組相對完整的信息,以段爲單位離散分配。
③段頁式:分頁和分段相結合。(目前應用較普遍)
六、分頁存儲管理方式(含義)
①頁面:將進程的邏輯地址空間分紅若干個頁,併爲各頁加以編號,從0開始,如第0頁、第1頁等。
②物理塊:將內存的物理地址空間分紅若干個塊,併爲各塊加以編號,從0開始,如0#塊、#1塊等。
③地址結構:前一部分爲頁號P,後一部分爲位(偏)移量W(頁內地址)。
④頁表:記錄相應頁在內存中對應的物理塊號,實現從頁號到物理塊號的地址映射。
七、進程在運行期間,須要對程序和數據的地址進行變換,即將用戶地址空間中的邏輯地址變換爲內存空間中的物理地址。
地址變換方式:設置地址變化機構---利用頁面映射表(頁表),將邏輯地址中的頁號轉換爲內存中的物理塊號,實現從邏輯地址到物理地址的轉換。
快表:在地址變換機構中增設一個具備並行查尋能力的特殊高速緩衝寄存器。
八、分段系統的基本原理:
用戶程序的地址空間分段,分段地址中的地址結構:段號-段內地址
①在系統中設置段表寄存器,用於存放段表始址和段表長度。
②邏輯地址中的段號S與段表長度TL比較。
③若S>TL,段號太大,訪問越界,產生越界中斷信號。
④若S<TL,未越界,根據段表始址和該段段號,計算出該段對應段表項的位置,從中讀出該段在內存的起始地址。
⑤檢查比較段內地址d和該段的段長SL。
⑥若d>SL,發出越界中斷信號。
⑦若d<SL,未越界,段基址+段內地址=要訪問的內存物理地址。
九、分頁系統和分段系統的區別:
①頁是信息的物理單位,分頁系統是系統管理的須要,對用戶不可見。
段是信息的邏輯單位,分段系統是爲知足用戶的須要。
②頁的大小固定且由系統決定。
段的長度不固定,決定於用戶所編寫的程序,根據信息的性質劃分的。
③分頁的用戶程序地址空間是一維的。
分段的用戶程序地址空間是二維的。(分段是用戶的行爲,程序員標示一個地址時,既需給出段名,也需給出段內地址。)
十、段頁式存儲管理的基本思想:
分頁系統能有效地提升內存的利用率;分段系統能反映程序的邏輯結構,便於段的共享與保護。將分頁與分段兩種存儲方式結合,造成段頁式存儲管理方式。
段頁式存儲管理系統,做業的地址空間首先被分紅若干個邏輯分段,每段都有本身的段號,而後再將每段分紅若干個大小相等的頁。對於內存空間也分紅大小相等的頁,內存的分配以頁爲單位。
一、程序運行時的局部性原理:一較短期內,程序執行僅侷限於某個部分,所訪問的存儲空間也僅侷限於某個區域。
①時間侷限性:程序中存在大量的循環操做。
②空間侷限性:程序的順序執行,致使訪問區域侷限。
二、虛擬存儲器
一、定義:具備請求調入功能和置換功能,能從邏輯上對內存容量加以擴充的一種存儲器系統。(邏輯容量由內存容量和外存容量之和決定,運行速度接近於內存速度。)
二、特徵:
①屢次性:做業無須一次性地所有裝入內存運行,容許被分屢次調入內存運行,即只需將當前要運行的那部分程序和數據裝入內存便可開始運行。(基礎:離散分配存儲管理方式)
②對換性:做業運行時程序和數據無須一直常駐內存,容許做業運行時進行換進、換出,即進程運行期間容許那些暫不使用的代碼數據從內存調至外存的對換區(換出),待須要時再將其調回至內存(換進)。有效提升內存利用率。
③虛擬性:可以從邏輯上擴充內存容量,虛擬內存容量(實際內存容量小),實現小內存運行大做業,改善內存利用率,提升併發程度,增長系統吞吐量。
虛擬存儲器的實現:請求分頁系統or請求分段系統
三、請求分頁系統:硬件支持、實現請求分頁的軟件
硬件支持:
①請求頁表機制:請求頁表增長四個字段做爲請求分頁的數據結構。(請求分頁系統中頁表諸項:頁號 物理塊號 狀態位P 訪問字段A 修改位M 外存地址)
②缺頁中斷機構:每當用戶程序要訪問的頁面還沒有調入內存時,產生缺頁中斷,以請求OS將所缺的頁調入內存。
③地址變換機構:分頁系統地址變換機構基礎上爲實現虛擬存儲器,增長功能(如產生和處理缺頁中斷、從內存換出一頁……)。
四、頁面調入策略:
一、什麼時候調入:預調頁策略(一次調入若干相鄰頁)、請求調頁策略(須要時提出請求)
二、從何處(外存)調入:對換區(存放對換頁面)、文件區(存放文件--未運行過的頁面)、UNIX方式(該系統容許頁面共享--進程請求頁面可能被其餘進程調入內存,直接共享)
三、調入過程:
每當程序所要訪問的頁面未在內存(存在位爲「0」)
①向CPU發缺頁中斷
②中斷處理程序保留CPU環境去分析中斷緣由
③轉入缺頁中斷處理程序
④經過查找頁表獲得該頁所在外存物理塊
⑤若內存未滿,啓動磁盤I/O,調該缺頁入內存,修改頁表
⑥若內存已滿,置換算法將內存中一頁換出,調該缺頁入內存,修改頁表
置該頁面存在位爲「1」,頁表項寫入快表。
四、缺頁率:進程運行過程當中,訪問頁面成功的次數S,訪問頁面失敗的次數F
缺頁率f=F/(S+F)
五、頁面置換算法:
①最佳置換:淘汰的頁面是之後永不使用的或在將來很長時間裏再也不被訪問的。(保證得到最低的缺頁率,但目前沒法預知將來,難以實現,做爲標準用來評價其餘算法)
②先進先出:淘汰在內存中駐留時間最久的頁面。(性能較差)
③最近最久未使用:根據頁面調入內存後的使用狀況,記錄一個頁面自上次被訪問以來所經歷的時間t,淘汰現有頁面中t值大的。
④Clock算法:循環地檢查各頁面的應用狀況,最近未用算法。
⑤頁面緩衝算法:採用可變分配和局部置換方式的內存分配策略,系統爲每一個進程分配必定數目的物理塊的同時本身保留一部分空閒物理塊。在內存中設置一個空閒物理塊鏈表(用於分配給頻繁發生缺頁的進程)、設置一個修改頁面鏈表(已修改的頁面不當即換出至外存,而是將其所在物理塊掛在修改頁面鏈表的末尾)
六、「抖動」的含義:進程的大部分時間用於頁面的換進/換出,幾乎沒法去作任何有效的工做。
緣由:系統運行的進程過多,分配給每一個進程的物理塊少,不能知足進程正常運行的基本要求,運行過程當中,頻繁缺頁。
一、I/O系統的基本功能:
①隱藏物理設備的細節:對設備加以適當的抽象,以隱藏掉物理設備的實現細節。
②與設備的無關性:對設備抽象化使用。
③提升處理機和I/O設備的利用率:儘量地讓處理機和I/O設備並行操做。
④對I/O設備進行控制:驅動程序的功能。(控制方式:輪詢的可編程I/O方式、中斷的可編程I/O方式、直接存儲器訪問方式、I/O通道方式)
⑤確保對設備的正確共享:獨佔設備(打印機、磁帶機)、共享設備(磁盤)
⑥錯誤處理:臨時性錯誤,重試操做;持久性錯誤,向上層報告。
二、I/O系統的層次結構:
①用戶層I/O軟件:用於實現用戶與I/O設備交互。
②設備獨立性軟件:用於實現用戶程序與設備驅動器的統一接口、設備命令、設備保護、以及設備分配與釋放等。(設備無關的I/O軟件)
③設備驅動程序:與硬件直接相關,用來具體實現系統對設備發出的操做指令,驅動I/O設備工做。
④中斷處理程序:用於保護被中斷進程的CPU環境,轉入相應的中斷處理程序進行處理,處理完後恢復現場,並返回到被中斷的進程。
⑤硬件:I/O設備。
三、設備控制器的基本功能:
①接收和識別命令:相應的控制寄存器,存放接收的命令和參數,進行譯碼。
②數據交換:CPU與控制器之間、控制器與I/O設備之間,數據交換。
③標識和報告設備的狀態:控制器記錄設備的狀態供CPU瞭解。
④地址識別:控制器中配置地址譯碼器,識別其所控制的設備的地址。
⑤數據緩衝區:主機速率高,I/O設備速率低,暫存數據匹配速率再進行數據傳送。
⑥差錯控制:I/O設備傳來的數據,設備控制器進行差錯檢測,若錯,將差錯檢測碼置位,並向CPU報告,CPU處理,數據做廢,從新傳送。
四、I/O通道:特殊處理機,處於CPU和設備控制器之間,具備執行I/O指令的能力,並經過執行通道程序來控制I/O操做。(指令類型單1、與CPU共享內存)
通道類型:
①字節多路通道:按字節交叉方式工做的通道。
②數組選擇通道:按數組方式進行數據傳送的數組選擇通道,可連高速設備。(易出現獨佔通道現象,利用率低)
③數組多路通道:字節多路通道和數組選擇通道相結合,按數組方式進行。
五、中斷:I/O設備向CPU發來中斷信號,CPU暫停正執行的程序,保護現場,轉而執行該I/O設備的中斷處理程序,執行完後,返回斷點,繼續執行原程序。(外中斷)
中斷向量表:存放中斷處理程序的入口地址於中斷向量表中的表項中。每種設備配以相應的中斷處理程序,一個設備的中斷請求規定一箇中斷號,一箇中斷號直接對應中斷向量表中的一個表項。(I/O設備發中斷請求信號,中斷控制器肯定中斷號,查找中斷向量表,取其中斷處理程序的入口地址,轉入執行該程序)
六、中斷處理程序:
①測定是否有未響應的中斷信號
②保護被中斷進程的CPU環境
③轉入相應的設備處理程序
④中斷處理
⑤恢復CPU的現場並退出中斷
七、設備驅動程序:I/O系統的高層與設備控制器之間的通訊程序。
①接收軟件發來的命令和參數,將其中的抽象要求轉換爲與設備相關的低層操做系列。
②檢查用戶I/O請求的合法性,瞭解I/O設備工做狀態,傳遞與I/O設備操做有關的參數,設置設備的工做方式。
③發出I/O命令,若設備空閒,啓動I/O設備,完成指定操做;若設備忙碌,將請求塊掛在設備隊列上等待。
④及時響應設備控制器發來的中斷請求,根據其中斷類型,調用相應的中斷處理程序進行處理。
八、對I/O設備的控制方式:
①使用輪詢的可編程I/O方式:不斷循環測試狀態寄存器中的忙/閒標誌busy。
②使用中斷的可編程I/O方式:CPU中斷處理,I/O設備可與CPU並行工做。
③直接存儲器訪問方式:利用DMA控制器的直接存儲器訪問方式。
④I/O通道控制方式:DMA方式的發展,進一步減小CPU的干預,實現CPU、通道、I/O設備三者的並行操做。
九、設備無關軟件:應用程序中所用的設備,不侷限於使用某個具體的物理設備。
①設備驅動程序的統一接口
②緩衝
③錯誤報告
④分配與釋放專用設備
⑤提供與設備無關的塊大小
十、Spooling技術--假脫機技術
利用一道程序模擬脫機輸入時的外圍控制機功能,把低速I/O設備的數據傳送到高速磁盤上(脫機輸入),再利用另外一道程序脫機輸出時的外圍控制機功能,把高速磁盤的數據傳送到低速輸出設備上(脫機輸出)。
在聯機狀況(主機直接控制脫機輸入、輸出)下實現的同時外圍操做的技術。
特色:
①提升I/O的速度。
②將獨佔設備改造爲共享設備。
③實現虛擬設備功能。
十一、緩衝區:暫存儲區域,I/O設備與處理機交換數據的場所。
類型:
①單緩衝區:每當用戶進程發出一I/O請求時,OS在內存中爲其分配一緩衝區。
②雙緩衝區:生產者緩衝區、消費者緩衝區。
一、文件系統:OS存儲和管理文件信息,方便用戶對文件的存取、共享和保護等,有效提升系統資源的利用率。
二、文件的類型:
一、按用途分類:
①系統文件:系統軟件
②用戶文件:用戶的文件
③庫文件:標準子例程及經常使用的例程
二、按文件中數據的形式分類:
①源文件:源程序和數據
②目標文件:源程序通過編譯,還沒有連接的目標代碼「.obj」
③可執行文件:目標代碼通過連接後的文件「.exe」
三、按存取控制屬性分類:
①只執行文件
②只讀文件
③讀寫文件
四、按組織形式和處理方式分類:
①普通文件:由ASCII碼或二進制碼組成的字符文件
②目錄文件:由文件目錄組成的文件(檢索執行下屬文件)
③特殊文件:系統中的各種I/O設備
三、文件系統的層次結構:文件系統接口>對對象進行操縱和管理的軟件集合>對象及其屬性
①文件系統接口:命令接口、程序接口
②對對象進行操縱和管理的軟件集合:(核心)層次組織結構
③對象及其屬性:文件、目錄、磁盤存儲空間
四、文件操做:
①最基本的文件操做:建立、刪除、讀、寫文件,設置文件的讀/寫位置
②文件的「打開」和「關閉」操做:用戶和文件的鏈接創建和斷開
③容許用戶直接設置和得到文件的屬性,文件共享
五、文件的組織方式:
①順序文件:一系列記錄按順序進行存取操做,文件信息隊列排列。
②索引文件:創建對應關係的索引表,與主文件構成索引文件。
③索引順序:爲每個文件創建一張索引表,爲一組記錄中的第一個記錄創建一個索引表項。
六、文件結構
一、文件目錄:數據結構,用於標識系統中的文件及其物理地址,供檢索時使用。
二、文件控制塊FCB:基本信息、存取控制信息、使用信息。
三、索引節點:每個索引節點保存文件系統中的一個文件系統對象的元信息數據,但不包括數據內容或者文件名。
七、目錄分類:
一、簡單目錄:單級文件目錄,在整個文件系統中只創建一張目錄表,每一個文件佔一個目錄項---按名存取(目錄項:文件名、文件擴展名、文件長度、文件類型、文件物理地址、文件說明、狀態位)
二、兩級目錄:主文件目錄(一級,用戶名、指向子目錄指針),用戶文件目錄(二級,文件控制塊)。
三、樹形目錄:樹形結構目錄,主目錄被稱爲‘根目錄’(惟一),每一個文件和每一個目錄只能有一個父目錄,子目錄被稱爲‘樹節點’,數據文件被稱爲‘樹葉’。
八、路徑名:從主目錄開始,把所有目錄文件名與數據文件名依次用「/」鏈接起來,構成數據文件惟一的路徑名。
一、當前目錄:當前訪問工做的目錄。
二、相對路徑名:從當前目錄開始直到數據文件爲止所構成的路徑名。
三、絕對路徑名:從根目錄開始的路徑名。
九、文件共享方式:
①有向無循環圖:容許每一個文件均可以有多個父目錄。
②索引節點:文件的物理地址及其餘的文件屬性等信息放在索引節點中,文件目錄中只設置文件名及指向相應索引節點的指針。
③符號連接:連接父目錄。
十、影響文件安全的因素:人爲、系統、天然
確保文件系統的安全性:存取控制機制、系統容錯機制、創建後備系統