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