作業系統知識點整理(完整版)
第一章 作業系統概述
1)一個完整的計算機系統是由硬體系統和軟體系統兩大部分組成
2)計算機軟體是指程式和與程式相關的文件的集合
3)按功能可把軟體分為“系統軟體”和“應用軟體”兩部分
系統軟體:作業系統語言處理程式,資料庫管理系統
應用軟體:各種管理軟體,用於工程計算的軟體包,輔助設計軟體
4)通常把未配置任何軟體的計算機稱為“裸機”
5)作業系統可以被看作是計算機系統的核心,統管整個系統資源,制定各種資源的分配策略,排程系統中執行的使用者程式,協調它們對資源的需求,從而使整個系統在高效、有序的環境裡工作。
6)發展的動力:
(1) 提高計算機資源的利用率的需要
(2) 方便使用者使用計算機的需要
(3) 硬體技術不斷髮展的需要
(4) 計算機體系結構發展的需要
7)作業系統是在“裸機”上載入的第一層軟體,是對計算機硬體系統功能的首次擴充
8)作業系統的定義:
作業系統是控制和管理計算機硬體和軟體資源,合理地組織計算機工作流程,以及方便使用者使用計算機的一個大型程式
9)作業系統的功能:
Ø 處理機管理:程序控制,程序同步,程序通訊、排程、實施CPU分配
Ø 儲存器管理:記憶體分配,記憶體保護,地址對映,記憶體擴充
Ø 裝置管理:緩衝管理,裝置分配,裝置管理
Ø 檔案管理:儲存空間管理,目錄管理,讀寫管理和保護
Ø 與使用者有關的介面:使用者介面,程式介面,人機互動
10)作業系統另一種定義:作業系統是一組能有效地組織和管理計算機硬體和軟體資源,合理地對各類作業進行排程,以及方便使用者使用的程式的集合
作業系統的種類:
1) 單道批處理系統
特點:單路性、獨佔性、自動性、封閉性、順序性
缺點:系統的資源得不到充分的利用
2) 多道批處理系統
特點:多路性、共享性、自動型、封閉性、無序性、排程性
好處:
ü 提高CPU的利用率
ü 提高記憶體和I/O裝置的利用率
ü 增加系統吞吐量
缺點:平均週轉時間長,無互動能力
3) 分時系統
分時系統是指在一臺主機上連線了多個配有顯示器和鍵盤的終端,由此所組成的系統,該系統允許多個使用者同時通過自己的終端,以互動方式使用計算機,共享主機中的資源。
採用了“時間片輪轉”的處理機排程策略
4) 實時系統
實時系統是指系統能及時響應外部事件的請求,在規定的時間內完成對該事件的處理,並控制所有實時任務協調一致地執行
第二章 處理機管理
1) 程序是指在系統中能獨立執行並作為資源分配的基本單位,它是由一組機器指令,資料和堆疊等組成的,是一個能獨立執行的活動實體,多個程序可以併發執行和交換資訊
2) 程式是一個在時間上嚴格有序的指令集合
3) 在單道程式設計下,系統具有的特點
a. 資源的獨佔性
b. 執行的順序性
c. 結果的再現性
在多道程式設計環境下,系統具有:
a. 執行的併發性
b. 相互的制約性
c. 狀態的多變性(不可再現性)
5) 併發、並行、序列
a. 從巨集觀上看是並行,同時在記憶體的多個程式都在執行著,互不影響
b. 從微觀上看是序列,由於CPU在任何時刻只能執行一個程式,因此這些程式輪流佔用CPU,交替執行著
c. 我們把“邏輯上相互獨立的程式,在執行時間上相互重疊,一個程式的執行還沒有結束,另一個程式的執行已經開始”的這種特性稱為程式執行的併發性
6) 對程序的描述
a. 程序是程式的一次執行過程
b. 程序的執行活動是建立在某個資料集合上的
c. 程序是在獲得資源的基礎上從事自己的執行活動
7) 程序的特徵
結構特徵、動態性、併發性、獨立性、非同步性
程序是一個動態的概念
不同程序可以執行同一個程式
每一個程序都有自己的生命週期
程序之間具有併發性,程序間會相互制約
8) 程式和程序的區別
a. 程式是指令的有序集合,是靜態的,程序是程式在處理機上的一次執行過程,是動態的。程式的存在時永久的,而程序是有生命週期的,它因建立而產生,因排程而執行,因撤銷而消亡
b. 程序是程式的一次執行過程,程式是程序賴以存在的基礎
c. 程序具有併發性,而程式併發執行會失去可再現性
d. 程序是系統分配和排程的獨立單位,程序由程式、資料集合和程序控制塊組成
9) 系統程序的使用級別高於使用者程序
10) 程序的狀態
建立、就緒、執行、阻塞
a. 一個程序從執行狀態變為就緒狀態,一定會引起另一個程序從就緒變為執行
b. 一個程序從執行狀態變為阻塞狀態,一定會引起另一個程序從執行狀態變為就緒狀態;這種因果變遷絕對不可能發生,因為一個CPU不可能真正同時執行兩個程序
c. 一個程序從阻塞狀態變為就緒狀態,不一定會引起另一個程序從就緒狀態變為執行狀態
11) 程序的三個組成部分:程式、資料集合、程序控制塊(PCB)
12) 程序控制塊是程序存在的唯一標示
a. 作用:通過PCB,是原來不能獨立執行的程式,成為一個可以獨立執行的基本單位,一個能夠併發執行的程序
b. 其中的資訊:程序識別符號、處理機狀態、程序排程資訊、程序控制資訊
13) 作業系統中把做出“決定把CPU分配給誰用”的程式稱為“程序排程程式”
14) 常用的程序排程演算法:
a. 先來先服務排程演算法
b. 時間片輪轉排程演算法:為就緒佇列中的每一個程序分配一個稱為“時間片”的時間段,它是允許該程序佔用CPU的最長時間長度
c. 優先數排程演算法:優先數高的先排程,若相同則先來先服務
d. 多級佇列排程演算法:時間片排程和優先數排程演算法的結合
15) 程序排程程式的主要功能
a. 記錄系統中所有程序的有關情況,比如程序的當前狀態,優先數等
b. 確定分配處理機的演算法
c. 完成處理機的分配
d. 完成處理機的回收
16) 把處理劑分配給程序後,還有一個允許它佔用多長時間的問題,有兩種處理方式,一種是不可剝奪方式,另一種是剝奪方式
17) 為了對程序進行有效的管理和控制,作業系統要提供若干基本的操作以便能建立程序、撤銷程序、阻塞程序、喚醒程序,把具有這種特性的程式稱為“原語”,原語的不可分割性,通常利用遮蔽中斷的方法
18) 程式介面:作業系統在程式一級給予使用者的支援
命令介面:作業系統在控制一級給予使用者的支援
19) CPU指令系統中的指令分為兩類
a. 作業系統和使用者都能使用的指令,非特權指令
b. 只能由作業系統使用的指令,特權指令
20) CPU的兩種工作狀態:管態、目態
a. 當CPU處於管態時,可以執行包括特權指令在內的一切機器指令
b. 當CPU處於目態時,禁止使用特權指令
21) 訪管指令
系統呼叫命令的程式屬於作業系統,它應該在管態下執行
使用者程式只有通過計算機系統提供的訪管指令才能實現由目態轉為管態,進而呼叫這些功能程式的目的
訪管指令屬於非特權指令,功能是執行它就會產生一個軟中斷,促使中央處理機由目態轉為管態,進入作業系統並處理該中斷
22) 從功能上看,可以把系統呼叫命令分為五大類:
a. 一是關於程序管理和控制的
b. 二是關於外部裝置輸入/輸出的
c. 三是關於磁碟檔案管理的
d. 四是關於訪問系統資訊的
e. 五是關於儲存申請與釋放的
23) 從形式上看,作業系統提供的系統呼叫與一般的過程呼叫(子程式呼叫)相似,但它們有著明顯 的區別
作業管理:
1) 把一個作業提交給系統時,系統要開闢一個作業控制塊JCB,以便隨時記錄作業的資訊
2) 被系統接納的作業,在沒有投入執行之前,稱為後備作業。這些作業存放在輔助儲存器中,並由他們的JCB連線在一起,形成所謂的後備作業佇列
3) 作業排程:按照某種規則,從後備作業佇列中挑選作業進入記憶體,參與處理機的競爭,這個過程稱為作業排程
4) 作業的狀態:
a. 提交狀態:進入輔助儲存器,作業的資訊還沒有全部進入系統,系統也沒有為它建立JCB,感知不到它的存在
b. 後備狀態:建立起了JCB,並將JCB排到後備作業佇列中
c. 執行狀態:(阻塞、執行、就緒)都屬於執行狀態
d. 完成狀態:也是一個暫時性的狀態
5) 作業的排程演算法:
a. 先來先服務:以作業進入後備作業佇列的先後次序
週轉時間=完成時間-到達時間
注:若分配一定的記憶體,且不允許作業在記憶體中移動時,要考慮所佔記憶體大小
b. 短作業優先:從後備作業佇列中挑選所需CPU時間最少且資源能夠得到滿足的作業
注:如果所有作業“同時”到達後備作業佇列,那麼採用短作業優先的作業排程演算法總會獲得最小的平均週轉時間
c. 響應比高著優先:先排程響應比高著
響應比=已等待時間/所需CPU時間
6) 在確定作業排程演算法時應注意的問題:
a. 公平對待後備作業佇列中的每一個作業,避免無故或無限期的延遲一個作業的執行,使各類使用者感到滿意
b. 使進入記憶體的多個作業,能均衡地使用系統中的資源,避免出現有的資源沒有作業使用,有的資源卻被多個作業爭搶的“忙閒”不均的情況
c. 力爭在單位時間內為儘可能多的作業提供服務,提高整個系統的吞吐能力
第三章 儲存管理
1) 計算機作業系統的儲存器:CPU暫存器,主存,輔存
2) 在考慮計算機儲存器的設計時,必須顧及
a. 價格、容量、訪問時間
b. 存取時間越快,價格越高,容量越小
3) 快取記憶體:介於暫存器和儲存器之間的儲存器,主要用於備份主存中較常用的資料,以減少處理機對主儲存器的訪問次數,提高程式執行速度
快取記憶體容量遠大於暫存器,比記憶體約小兩到三個數量級左右
為了緩和記憶體與處理機(CPU)速度的不匹配
4) 字(字長):一次傳送資料的長度{16、32、64…}依系統而定
(主)記憶體儲器和快取記憶體之間是以“塊”為單位傳遞資料的
快取記憶體與CPU之間則以“字”為單位傳遞資料
5) 儲存器管理的功能:
a. 記憶體的分配與回收
b. 儲存的保護和共享
c. 地址定位
d. 儲存擴充
6) 記憶體儲器由一個個儲存單元組成,一個儲存單元可存放若干個二進位制的位(bit),8個二進位制位被稱為一個位元組(byte)
7) 在作業系統中,把使用者程式指令中的相對地址變為所在絕對地址空間中的絕對地址的這個過程,稱為地址重定位
8) 地址的定位方式:
a. 絕對定位方式:是在程式裝入記憶體之前,程式指令中的地址就已經是絕對地址,已經正確地反映了它將要進入的儲存區的位置,不適用於多道程式設計環境
b. 靜態重定位(多道程式環境下)
根據記憶體的具體情況將裝入模組裝入到記憶體的適當位置,會使裝入模組中的所有邏輯地址與實際裝入記憶體後的實體地址不同。
這種地址重定位是在程式執行前完成的
c. 動態重定位
將地址重定位的時間推遲到程式執行時再進行
所以裝入記憶體的所有地址都仍是邏輯地址
連續分配儲存方式 :
1) 單一連續分配(靜態重定位)
a. 單道程式環境下,總體上把記憶體儲器分為兩個分割槽:系統區和使用者區
b. 系統總是把整個使用者區分配給一個使用者使用,把分配給了使用者但未被使用的區域稱為“內部碎片”
c. 單一連續分割槽儲存管理的缺點:
a) 由於每次只能有一個進入記憶體,故它不適用於多道程式設計,工作效率不高,資源利用率低
b) 只要作業比使用者區小,在使用者區裡就會形成碎片,造成資源浪費
c) 大作業無法在小記憶體中執行
d. 為緩解大作業小記憶體的情況提出覆蓋技術和對換技術
a) 覆蓋技術:允許一個作業的若干個程式段使用同一個儲存區
b) 對換技術:以輔助儲存器作為記憶體的後援(硬碟)
2) 固定分割槽儲存管理(靜態):分割槽數目、大小固定
a. 預先把記憶體儲器中可供分配的使用者區劃分成若干個連續分割槽,每個分割槽的尺寸可以相同,可以不同。每個分割槽中只允許裝入一個作業執行,系統可以為每一個分割槽設定一個後備作業佇列,一個作業到達時,總是進入到“能容納該作業的最小分割槽”的那個後備佇列中去排隊
b. 分割槽的分配與釋放方案:
a) 在佇列中挑選出第一個可容納的作業進入
i. 優點:選擇效率高
ii. 缺點:小作業->大記憶體
b) 在這個佇列中進行搜尋,找到這個分割槽能夠容納的最大的那個作業,讓它進入執行
i. 優點:儲存空間利用率高,產生內部碎片儘可能的小
ii. 缺點:選擇效率低
c) 在系統中至少保留一個小的分割槽,以避免因為執行小作業而被迫分配打分去的發生
d) 為具體管理各個分割槽,並建立一個“分割槽分配表”,其中包括每個分割槽的起始位置大小及狀態
c. 特點
a) 它是最簡單的,具有“多道”色彩的儲存管理方案,提高資源利用率
b) 當把一個分割槽分配給某個作業時,該作業的程式將一次性的全部裝入到分配給他的連續分割槽裡
c) 靜態重定位,在分割槽內的程式不能隨意移動
d. 缺點
a) 進入分割槽的作業尺寸不見得與分割槽的長度相吻合,勢必產生內部碎片,引起資源的浪費
b) 如果到達作業的尺寸比任何一個分割槽的長度都大,它就無法執行
3) 可變分割槽儲存管理:
分割槽的邊界劃分隨作業的需求可變,分割槽的數目隨著進入作業的多少可變,消滅了內部碎片(可能會產生內部碎片)。
外部碎片是指無法分配給使用者使用的儲存區
a. 基本思想:在作業要求裝入記憶體儲器時,如果當時記憶體儲器中有足夠的儲存空間滿足該作業的需求,就劃分出一個與作業相對地址空間同樣大小的分割槽,並分配給它
b. 要解決的問題
a) 採用一種新的地址重定位技術,動態地址重定位,以便程式能夠在記憶體儲器中隨意移動,為空閒區的合併提供保證
b) 記住系統中各個分割槽的使用情況
c) 給出分割槽分配演算法
c. 地址動態重定位過程(在程式執行時動態完成)
a) 為實施地址動態重定位,硬體要增加一個地址轉換機構,這個機構一般由地址轉換線路和一個定位暫存器(基址暫存器)組成
b) 地址的靜態重定位和動態重定位的比較
i. 地址轉換時刻:靜態重定位是在程式執行之前完成地址轉換的,而動態重定位是在程式執行時完成
ii. 誰來完成任務:靜態重定位是由軟體完成地址轉換工作的,而動態重定位則是由一套硬體提供的地址轉換機構來完成
iii. 完成的形式:靜態重定位是在裝入時一次性集中地把程式指令中所有要轉換的地址加以轉換;而動態重定位則是每執行一條執行時,就對其地址加以轉換
iv. 完成的結果:實施靜態重定位,原來的指令地址部分被修改了,而動態重定位只是按照所形成的地址去執行這條指令,並不對指令本身做任何修改
d. 空閒區的合併
e. 分割槽的管理
a) 表格法:一張已分配表,一張空閒表(分割槽號,分割槽大小,分割槽起始地址、狀態)
b) 單鏈表法:一個存放該分割槽的長度,另一個存放它下一個空閒分割槽的起始地址
c) 雙鏈表法:還存放上一個空閒區起始地址
f. 空閒分割槽的分配演算法
a) 最先適應演算法:要求空閒分割槽鏈以地址遞增的次序連結(對大作業不利)
b) 最佳適應演算法:每次為作業分配記憶體時,總是把能滿足要求,又是最小的空閒分割槽分配給作業,避免“大材小用” 按其容量
c) 最壞適應演算法:挑選一個最大的空閒區,從中分割一部分儲存空間給作者使用,以至於儲存器中缺乏大的空閒分割槽,照顧中小作業的需求
d) 迴圈首次適應演算法:從上次分配的位置之後開始查詢
g. 可變分割槽儲存管理的特點
a) 作業一次性的全部裝入到一個連續的儲存分割槽中
b) 分割槽是按照作業對儲存的需求劃分的,所以不會出現內部碎片
c) 為了確保作業能夠在記憶體中移動,要有硬體的支援,實行指令地址的動態重定位
h. 缺點:
a) 仍然沒有解決小記憶體裕興大作業的問題,只要作業的儲存需求大於系統提供的整個使用者區,該作業就無法投入執行
b) 雖然避免了內部碎片,但有可能出現極小的翻去暫時分配不出去的情形,引起了外部碎片,
c) 為了形成大的分割槽,可變分割槽儲存管理通過移動程式來達到分割槽合併的目的,然而程式的移動是很花費時間的,增加了系統在這方面的投入與開銷
4) 分頁式儲存管理:
需要兩次訪問記憶體,目的是提高記憶體利用率
a. 分頁式儲存管理是將固定分割槽方法與動態重定位技術結合在一起,需要硬體支援
基本思想:首先把整個記憶體儲器劃分成大小相等的許多分割槽,每個分割槽稱為“一塊”
b. 在分頁式儲存管理中,塊是儲存分配的單位
a) 使用者作業仍然是相對於“0”進行編址,形成一個連續的相對地址空間
b) 使用者程式相對地址空間中的每一個分割槽被稱為“頁”,使用者相對地址空間中的每一個相對地址,都可以用(頁號,頁內位移)這樣的數對來表示
i. 實體地址=頁的大小*頁號+頁內位移
ii. 頁號=相對地址/塊尺寸
iii. 頁內位移=相對地址%塊尺寸
c. 頁與塊對應關係表稱為“頁表”
a) 快速暫存器組單獨起名為“相聯暫存器”,簡稱“快表”
b) 快表與頁表聯合工作,先查詢快表,若無再查詢頁表並把資料寫入快表
c) (訪問頁表時間+訪問一次記憶體時間)*命中率+訪問快表時間*命中率=平均記憶體存取時間
d) 頁面尺寸大多選在512byte到64kb之間
d. 特點:
a) 記憶體儲器實現被劃分成相等尺寸的塊,它是進行儲存分配的單元
b) 使用者作業的相對地址空間按照塊的尺寸劃分成頁,這是在系統內部進行的,使用者感覺不到
c) 相對地址空間中的頁可以進入記憶體中的任何一個空閒塊,並且分頁式儲存管理實行的是動態重定位,因此它打破了一個作業必須佔據連續的儲存空間的限制,作業在不連續的儲存區裡,也能夠得到正確的執行
e. 缺點:
a) 平均每一個作業要浪費半頁大小的儲存塊,會產生內部碎片
b) 作業雖然可以不佔據連續的儲存區,但是每次仍然要求一次全部進入記憶體。因此,如果作業很大,其儲存需求大於記憶體,仍然存在小記憶體不能執行大作業的問題
5) 分段式儲存管理:
a. 目的:方便使用者使用程式設計,儲存共享,儲存保護,動態增長,動態連結
b. 要求使用者將自己的整個作業程式以多個相互獨立的稱為“段”的地址空間提交給系統,每個段都是一個從“0”開始的一維地址空間,長度不一,作業系統按照段長為作業分配記憶體空間
c. 段表:段號、段長、該段在記憶體的基址(起始地址){段號,段內位移}
a) 實體地址=段的起始地址+段內地址
b) 邏輯地址=段號+段內地址
d. 分段與分頁的區別:
a) 頁是資訊的物理單位,段是資訊的邏輯單位
i. 分頁提高記憶體的利用率,僅僅是系統管理上的需要,使用者不可見。段是資訊的邏輯單位,它通常包括的是一組意義相對完整的資訊,分段段的目的主要在於能更好地滿足使用者的需要
b) 頁的尺寸由系統決定,段的尺寸因段而異
i. 段的長度取決於使用者編寫的程式,通常由編譯程式在對源程式進行編譯時根據資訊的性質來劃分
c) 頁的地址空間是一維的,段的地址空間是二維的
i. 分頁:使用者必須通過連結編輯程式,把各程式段連結成一個相對於0編址的線性空間,程式中是通過地址編號來確定空間中的位置的。因此使用者向系統提供的是一個一維的邏輯地址空間。
ii. 分段:使用者不把各程式段連結成一個相對於0進行編制的一維線性空間,各程式段之間是通過{段號,段內位移}進行訪問的。因此,使用者向系統提供的是一個二維的邏輯地址空間
6) 段頁式儲存管理:(三次訪問記憶體)
a. 基本原理:分段和分頁原理的結合,即先將使用者程式分成若干個段,再把每個段分成若干個頁,併為每一個段賦予一個段名。
a) 作業地址空間結構:主程式段,子程式段,資料段
b) 地址結構:段號,段內頁號,頁內地址
b. 系統設定了位示圖、段表和頁表,記錄主存的使用情況和作業分配情況
a) 邏輯地址=段號+頁號+頁內位置
b) 塊號*塊長+頁內地址
c. 虛擬儲存器:是具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統,其邏輯容量由記憶體容量和外存容量之和所決定,其執行速度接近於記憶體速度。
a) 特徵:多次性、對換性、虛擬性、離散性
d. 請求分頁式儲存管理(需要硬體支援)
a) 是基於分頁式儲存管理的一種虛擬儲存器
“請求分頁式”是指當程式執行中需要某一頁時,再把它從輔助儲存器裡調入記憶體使用,解決了小記憶體與大作業的矛盾,但會產生內部碎片
b) 缺頁中斷是指在指令執行期間,若發現所要訪問的指令或資料不在記憶體時,便立即產生和處理缺頁中斷訊號,以便能及時將所缺之頁面調入記憶體
e. 缺頁中斷與一般中斷的區別 {缺頁中斷率=缺頁次數/頁面總數}
a) 缺頁中斷是在執行一條指令中間時產生的中斷,並立即去處理,一般中斷則是一條指令執行完畢後,當發現有中斷請求時,才去響應和處理
b) 缺頁中斷處理完成後,仍返回到原指令去執行,因為那條指令並未執行;而一般中斷則是到下一條指令去執行,因為上一條指令已經執行完畢了
f. 影響缺頁中斷次數的因素:
a) 分配給作業的記憶體塊數
b) 頁面尺寸
c) 程式的實現
7) 頁面淘汰(置換)演算法:
頁面淘汰是由缺頁中斷引起的,但缺頁中斷不見得一定引起頁面淘汰
a. 先進先出頁面淘汰(置換)演算法(FIFO)
淘汰最先進入記憶體的頁面 (3個記憶體塊都為空,3次缺頁中斷)
b. 最近最久未用頁面淘汰(置換)演算法(LRU)
總是把最長時間未被訪問過的頁面淘汰出去 (需要暫存器和棧)
c. 最近最少用頁面淘汰(置換)演算法(LFU)
總是把當前使用的最少的頁面淘汰出去
為每個記憶體中的頁面設定一個計數器(移位暫存器) 加1
d. 最優(最佳)頁面淘汰(置換)演算法(OPT)
把以後不再使用的或最長時間內不會用到的頁面淘汰出去(理論上,不會實現)
注:對於FIFO頁面淘汰演算法,有時增加分配給作業的可用記憶體塊數,它的缺頁次數反而上升,通常稱為異常現象
第四章 裝置管理
1.“裝置”泛指計算機系統中的各種外部裝置,外設(即主機以外的其他所有裝置)在眾多的I/O裝置中,並不是所有的裝置都是可以共享的,可以藉助於磁碟,把只能獨享的裝置變為共享,這就是所謂的“虛擬裝置” {SPOOLing技術}
2.裝置是指計算機中用以在機器之間進行傳送和接收資訊,完成使用者輸入/輸出(I/O)操作的那些部件。比如磁碟、磁帶、印表機、顯示器、滑鼠、鍵盤······
3.計算機I/O系統的組織結構:
(1)底層是具體的裝置和硬體介面
(2)中間是系統軟體(與裝置相關軟體、與裝置無關軟體)
(3)使用者程式
4.I/O裝置一般是由執行I/O操作的機械部分和執行控制I/O的電子部件組成
(1)執行I/O操作的機械部分就是一般的I/O裝置
(2)執行控制I/O的電子部件稱為裝置控制器或介面卡
① 為了能夠使CPU裝置控制器中的各個暫存器進行通訊,通常採用“單獨的I/O空間”和“記憶體對映I/O”兩種方法
② 裝置控制器是CPU與外圍裝置之間的介面,是一個可編址裝置,每一個地址對應一個裝置
功能:
Ø 接收和識別命令
Ø 資料交換
Ø 標識和報告裝置的狀態
Ø 地址識別
Ø 資料緩衝區
Ø 差錯控制
組成:
Ø 裝置控制器與處理機(CPU)的介面
Ø 裝置控制器與裝置的介面
Ø I/O邏輯:用於實現對裝置的控制
5.裝置驅動程式:
6.裝置處理方式:
(1)為每一類裝置設定一個程序,專門用於執行這類裝置的I/O操作
(2)在整個系統中設定一個I/O程序,專門用於執行系統中所有各類裝置的I/O操作
(3)不設定專門的裝置處理程序,而只為各類設定相應的裝置驅動程式,供使用者或系統程序呼叫
7.裝置驅動程式的處理過程
(1)將抽象要求轉換為具體要求
(2)對服務請求進行校驗,即檢查I/O請求的合法性
(3)檢查裝置的狀態
(4)傳送必要的引數
(5)啟動I/O裝置
(6)工作方式的設定
I/O介面程式:是作業系統中與裝置無關的軟體,它從上層接收使用者對裝置提出的I/O請求,然後負責吧I/O請求轉變成所需要的I/O命令,呼叫具體的裝置驅動程式去執行
系統都是用主裝置號和次裝置號組成“邏輯裝置名”
作業系統提供的裝置無關性的優點:
ü 方便使用者
ü 提高裝置的利用率
8.計算機裝置的分類
(1)基於裝置的從屬關係
a. 系統裝置(鍵盤、顯示器、印表機、磁碟驅動)
b. 使用者裝置
(2)基於裝置的分配特性
a. 獨享裝置(印表機)
b. 共享裝置
c. 虛擬裝置(SPOOLing技術)
(3)基於裝置的工作特性
a. 輸入/輸出裝置(字元裝置)
b. 儲存裝置(塊裝置) 磁碟、磁帶
(4)按資訊交換的單位
a. 塊裝置:用於儲存資訊,屬於結構裝置。磁碟、磁帶(以塊為單位傳送資訊)
b. 字元裝置:以單個字元為單位來傳送資訊。 鍵盤
9.裝置管理的目標
a. 提高外部裝置的利用率
b. 為使用者提供便利、統一的使用介面
10.裝置管理的功能
a. 提供一組I/O命令
b. 進行裝置的分配和回收
c. 對緩衝區進行管理
d. 實現真正的I/O操作
11.輸入輸出管理步驟
(1)使用者在程式中使用系統提供的輸入/輸出命令發出I/O請求
(2)輸入輸出管理程式接受這個請求
(3)“裝置驅動程式”來具體完成所要求的的I/O操作
(4)實現裝置中斷處理程式來處理這個請求
裝置的輸入輸出管理程式由3塊內容組成:接受使用者的I/O請求,組織管理輸入輸出進行,輸入輸出的善後處理
裝置控制:
1) 裝置控制塊DCB中存放的是一臺具體裝置的有關資訊,找到一個裝置的DCB,就得到了該裝置的特性,各種引數,使用情況等,所以DCB是裝置管理中最重要的一條資料結構
2) 獨享裝置中具有排他性,只能採取“靜態分配”的策略
a. 靜態分配:使用者作業開始之前,由系統一次分配給該作業所需的裝置,控制器和通道,不會發生死鎖
b. 動態分配:在程序執行過程中進行的裝置分配,可能造成死鎖
對獨享裝置採用的分配演算法:
v 先來先服務
v 優先順序高者先服務
3) 共享磁碟的排程
磁碟是一種典型的共享儲存裝置,允許多個作業程序同時使用,而不是讓一個作業在整個執行期間獨佔。“同時使用”是指當一個作業程序暫時不用時,其他作業程序就可以使用。每一個時刻只有一個作業用
4) 排程演算法
a. “先來先服務”排程演算法(並不理想)(移臂排程,減少查詢時間)
以I/O請求到達的先後次序作為磁碟排程的順序
b. “最短查詢時間”排程演算法
把距離磁頭當前位置最近的I/O請求作為下一次排程的物件
c. “電梯”排程演算法(SCAN)
總是沿著此案移動臂的移動方向選擇距離磁頭當前位置最近的I/O請求,作為下一次排程的物件
d. “單向掃描”排程演算法(迴圈掃描 CSCAN)
總是從0號柱面開始往裡移動移動臂,遇到有I/O請求就進行處理,直到到達最後一個請求柱面,然後移動臂立即帶動磁頭不做任何服務地快速返回到0號柱面,開始下一次掃描
對I/O裝置的控制方式(資料傳輸方式)
1) 程式迴圈測試方式(程式查詢式)
是指使用者程序使用start指令啟動裝置後,不斷地執行test指令,去測試所啟動裝置的狀態暫存器。只有在狀態暫存器出現了所需要的狀態後,才停止測試工作,完成輸入/輸出。
資料暫存器:用來存放傳輸的資料
狀態暫存器:用來記錄裝置當前所處狀態
2) 中斷方式
所謂“中斷”是一種使CPU暫時中止正在執行的程式而轉去處理特殊時間的操作。
引起中斷的時間稱為中斷源。
程式中產生的中斷,由CPU的某些錯誤結果(如,計算機溢位)產生的中斷稱為“內中斷”,由外部裝置控制器引起的中斷稱為“外中斷”
3) 直接儲存器存取方式(DMA方式)
特點:能使I/O裝置直接和記憶體儲器進行成批資料的快速傳輸。(單位:塊資料)
DMA控制器包括四個暫存器:資料暫存器,狀態暫存器,地址暫存器,位元組計數器
DMA控制器的組成:主機與DMA控制器的介面;DMA控制器與塊裝置的介面;I/O控制邏輯
4) 通道方式
通道方式能夠使CPU徹底從I/O中解放出來。CPU進行善後處理和啟動。
通道是一個獨立於CPU的,專門用來管理輸入/輸出操作的處理機。
通道是通過執行通道程式並與裝置控制器共同實現對I/O裝置的控制的。
它規定了裝置應該執行的各種操作的順序。由一系列通道指令所構成,CPU對I/O請求只去做啟動和善後處理工作,輸入/輸出的管理以及資料傳輸等事宜,全部由通道獨立完成。
緩衝:
1) 原因:
a. 緩和CPU與I/O裝置間速度不匹配的矛盾
b. 減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制
c. 解決資料粒度不匹配的問題
d. 提高CPU和I/O裝置之間的並行性
2) 緩衝的實現
a. 採用專門的硬體暫存器,比如裝置控制器裡的資料暫存器,“硬體緩衝”
b. 在記憶體儲器中開闢出n個單元,作為專用的I/O緩衝區,以便存放輸入/輸出的資料,這種緩衝區就是“軟體緩衝”
c. 根據緩衝區的個數:單緩衝區、雙緩衝區、多緩衝區、緩衝池
3) 虛擬裝置
a. 通過多道程式技術可將一臺物理CPU虛擬為多臺邏輯CPU,需要硬體的支援。作為後援的硬碟(大容量),具有裝置與CPU並行工作的能力
4) SPOOLing技術
a. 在主機的直接控制下,實現以前的離線輸入/輸出功能,此時的外圍操作與CPU對資料的處理同時進行,我們把這種在聯機情況下實現的同時外圍操作的技術稱為SPOOLing技術,或假離線技術
b. SPOOLing技術是對離線輸入/輸出系統的模擬。SPOOLing系統建立在通道技術和多道程式技術的基礎上,以高速隨機外存(通常為磁碟)為後援儲存器
5) 裝置無關性:
應用程式中所用的裝置,不侷限於使用某個具體的物理裝置。為每個裝置所配置的裝置驅動程式是與硬體緊密相關的軟體。為了實現裝置獨立性,必須再在裝置驅動程式上設定一層軟體,稱為與裝置無關的I/O軟體或裝置獨立性軟體
6) 作業系統中實現虛擬裝置的軟體功能模組由3部分組成
a. 預輸入程式
b. 緩輸出程式
c. 井管理程式
7) SPOOLing系統由四部分組成
a. 輸入井和輸出井
在磁碟上開闢出來的兩個儲存區域,輸入資料,輸出資料
b. 輸入緩衝區和輸出緩衝區
在記憶體中開闢的兩個緩衝區
c. 輸入程序和輸出程序
模擬外圍控制機
d. 井管理程式
特點:
Ø 提高了I/O的速度
Ø 將獨佔裝置改造為共享裝置
Ø 實現了虛擬裝置的功能
第五章 檔案管理
1) 目標:提高外儲存空間的利用率
主要任務:對使用者檔案和系統檔案進行管理,方便使用者使用,並保證檔案的安全性
檔案儲存裝置是以塊為單位進行管理的
2) 所謂“檔案”是指具有完整邏輯意義的一組相關資訊的集合,它是在磁碟上儲存資訊,而且能方便以後讀取的方法,檔案用符號名加以標識,這個符號名就被稱為“檔名”
3) 檔案是指由建立者所定義的,具有檔名的一組相關元素的集合,可分為有結構檔案和無結構檔案兩種。在有結構的檔案中,檔案由若干個相關記錄組成而無結構檔案則被看成是一個字元流。檔案在檔案系統中是一個最大的資料單位,它描述了物件集
檔案屬性:檔案型別、檔案長度、檔案的物理位置、檔案的建立時間(最後一次的修改時間)
4) 檔名:在不同的系統之間,對檔名的規定是不同的。一個檔名是在建立該檔案時由使用者給出的,作業系統將向用戶提供組成檔名的命名規則
5) 很多作業系統採用句點‘.’隔開成兩部分的檔名形式,句點之前的部分稱為檔名,句點後面的部分稱為檔案的“副檔名”。又稱字尾名,用於指示檔案的型別
.bak 備份檔案 .bas ABSIC源程式 .bin 可執行的二進位制檔案
.c C源程式 .dat 資料檔案 .doc 文件檔案
.hlp 幫助檔案 .obj 目標檔案 .pas Pascal檔案
.txt 一般文字檔案 .tmp 臨時檔案
1) 檔案被存在大容量的輔助儲存器(外存)中,當用戶需要使用時,就通過檔名把相應的檔案讀到記憶體
2) “檔案系統”是指作業系統中與檔案管理有關的那部分軟體,被管理的檔案,以及管理檔案所需要的資料結構(目錄、索引表······)的總體
3) 對檔案的分類
a. 按檔案的性質和用途:系統檔案、使用者檔案、庫檔案
b. 按檔案中資料的形式:原始檔、目標檔案、可執行檔案
c. 按存取控制屬性分類:只執行檔案、只讀檔案、讀寫檔案
d. 按檔案的保護性質:只讀檔案、讀寫檔案、可執行檔案、不保護檔案
e. 按檔案的保護期限:臨時檔案、檔案檔案、永久檔案
f. 按檔案的存取方式:順序存取檔案、隨機存取檔案
g. 按裝置的型別:磁碟檔案、磁帶檔案、列印檔案
h. 按檔案的物理結構:連續檔案、連結檔案、索引檔案
i. 按檔案的內容(組織形式和處理方式):普通檔案、目錄檔案、特殊檔案
j. 按檔案的邏輯結構:流式檔案、記錄式檔案
4) 檔案的邏輯結構
a. 從使用者使用的角度出發組織的檔案,被稱為是檔案的邏輯結構,一類是有結構的檔案,這是指由一個以上的記錄構成的檔案,故又稱為記錄式檔案
b. 從檔案的組織方式來分,可以分為順序檔案,索引檔案,索引順序檔案
c. UNIX作業系統總是以流失作為檔案的邏輯結構
5) 檔案的物理結構
a. 檔案按不同的組織方式在輔存上存放,就會得到不同的物理結構,檔案的物理結構有時也稱為檔案的“儲存結構”
b. 檔案在輔存(外存)上可以有3種不同的存放方式:連續存放、連結塊存放以及索引表存放
c. 對應地檔案就有3種物理結構,分別叫做順序結構,連結結構和索引結構,也叫作連續檔案,串聯檔案,索引檔案
6) 存放方式
a. 連續存放—連續檔案
不足之處:
v 必須預先知道檔案的最大長度
v 會造成磁碟碎片
b. 連結塊存放—串聯檔案
不會因為磁碟碎片而浪費儲存空間,但使用的指標要佔去一些位元組,每個磁碟塊儲存資料的位元組數不再是2的冪,從而降低了系統的執行效率
c. 索引表存放—索引檔案
7) 檔案的存取
a. 順序存取
b. 隨機存取
8) 磁碟空間的管理
a. 磁碟是以塊為單位進行分配的
b. 磁碟與記憶體之間是以磁碟塊為資訊傳輸的單位
c. 選定了塊的大小,還要對它們