OS概述
OS的定義
操作系統(tǒng)是計算機(jī)系統(tǒng)的一個系統(tǒng)軟件,它是這樣一些程序模塊的集合 ——它們能有效地組織和管理計算機(jī)系統(tǒng)中的硬件及軟件資源舀瓢,合理地組織計算機(jī)工作流程廷雅,控制程序的執(zhí)行耗美,并向用戶提供各種服務(wù)功能撩满,使得用戶能夠靈活喜最,方便韵卤,有效地使用計算機(jī)型将,并使整個計算機(jī)系統(tǒng)能高效地運行树绩。
OS的特性
- 并發(fā)性
- 共享性
- 隨機(jī)性
OS的功能
- 進(jìn)程管理
- 存儲管理:內(nèi)存分配曙搬,地址映射硬耍,內(nèi)存保護(hù)影所,內(nèi)存擴(kuò)充灿巧;
- 文件管理:文件存儲空間的管理赶袄,文件操作的一般管理,目錄管理抠藕,文件的存取控制饿肺;
- 設(shè)備管理:緩沖區(qū)管理,設(shè)備分配盾似,設(shè)備驅(qū)動敬辣,設(shè)備無關(guān)性;
- 作業(yè)管理
- 其他功能
OS的發(fā)展歷史
OS的分類
- 批處理操作系統(tǒng)
- 分時操作系統(tǒng):將一臺計算機(jī)很好的提供給多個用戶同時使用,提高計算機(jī)的利用率溉跃。
- 實時操作系統(tǒng):是計算機(jī)系統(tǒng)可以立即對用戶程序要求或者外部信號作出反應(yīng)的系統(tǒng)村刨,它可以分為硬實時系統(tǒng)和軟實時系統(tǒng)。
- 嵌入式操作系統(tǒng)
- 個人計算機(jī)操作系統(tǒng)
OS硬件環(huán)境
特權(quán)指令
特權(quán)指令是指在指令系統(tǒng)中那些只能由操作系統(tǒng)使用的指令撰茎。
處理器工作狀態(tài)劃分成:管態(tài)和目態(tài)
管態(tài)
操作系統(tǒng)管理程序運行的狀態(tài)嵌牺,具有較高的特權(quán)級別,又稱為特權(quán)態(tài)乾吻,系統(tǒng)態(tài)髓梅。
目態(tài)
用戶程序運行時的狀態(tài),具有較低的特權(quán)級別绎签,又稱為普通態(tài)枯饿,用戶態(tài)。
程序狀態(tài)字
程序狀態(tài)字是指指示處理器狀態(tài)的寄存器
PSW通常包括以下狀態(tài)代碼
- CPU的工作狀態(tài)碼:
指明管態(tài)還是目態(tài)诡必,用來說明當(dāng)前在CPU上執(zhí)行的是操作系統(tǒng)還是一般用戶奢方。
- 條件碼:
反映指令執(zhí)行后的結(jié)果特征。
- 中斷屏蔽碼:
指出是否允許中斷爸舒。
多級存儲體系
計算機(jī)存儲系統(tǒng)的設(shè)計主要考慮三個問題:容量蟋字,速度,成本扭勉。
沿著層次下降時鹊奖,每比特的價格將下降,容量將增大涂炎,速度將變慢忠聚,處理器的訪問頻率下降!
用戶接口與作業(yè)管理
作業(yè)的概念
用戶在一次計算過程中唱捣,或一次事務(wù)處理過程中两蟀,要求計算機(jī)系統(tǒng)所做工作的總稱。
用戶與操作系統(tǒng)之間的接口分為:作業(yè)級接口和程序級接口
作業(yè)級接口
操作系統(tǒng)為用戶對作業(yè)運行全過程控制提供的功能震缭。
- 聯(lián)機(jī)接口(交互式)
- 脫機(jī)接口(批處理)
程序級接口
系統(tǒng)為用戶在程序一級提供有關(guān)服務(wù)而設(shè)置的赂毯,由一組系統(tǒng)調(diào)用
命令組成。
- 負(fù)責(zé)管理和控制運行的程序拣宰。
- 并在這些程序與系統(tǒng)控制的資源和提供的服務(wù)間實現(xiàn)交互作用党涕。
JCB
作業(yè)控制塊是批處理作業(yè)存在的標(biāo)志,其中保存有系統(tǒng)對于作業(yè)進(jìn)行管理所需要的全部信息巡社,它們被保存于磁盤區(qū)域中膛堤。
- 記錄系統(tǒng)管理作業(yè)所需要的全部信息
- 作業(yè)控制塊是批處理作業(yè)存在的標(biāo)志
- 位于磁盤固定區(qū)域中(長度固定)
作業(yè)的狀態(tài)及轉(zhuǎn)換
個作業(yè)從進(jìn)入系統(tǒng)到運行結(jié)束經(jīng)歷四個不同的狀態(tài)
- “進(jìn)入狀態(tài)”
- “后備狀態(tài)”
- “執(zhí)行狀態(tài)”
-
“完成狀態(tài)”
作業(yè)調(diào)度算法
- 先來先服務(wù)算法(FCFS:First Come First Serve)
- 最短作業(yè)優(yōu)先算法(SJF:Shortest Job First)
- 最高響應(yīng)比優(yōu)先算法(HRN:Highest Response Ratio Next)
響應(yīng)比R
= 作業(yè)周轉(zhuǎn)時間 / 作業(yè)處理時間
=(作業(yè)處理時間+作業(yè)等待時間)/ 作業(yè)處理時間
= 1 +(作業(yè)等待時間 / 作業(yè)處理時間)
系統(tǒng)調(diào)用
用戶在程序中調(diào)用操作系統(tǒng)提供的一些子功能。
- 一種特殊的過程調(diào)用重贺,由特殊的機(jī)器指令實現(xiàn)(每種機(jī)器的機(jī)器指令集中都有一條系統(tǒng)調(diào)用指令——訪管指令)
- 系統(tǒng)調(diào)用是操作系統(tǒng)提供給編程人員的
唯一接口
- 從目態(tài)轉(zhuǎn)入管態(tài)
- 系統(tǒng)調(diào)用是一個低級過程骑祟,只能由匯編語言直接訪問
- 利用系統(tǒng)調(diào)用回懦,動態(tài)請求和釋放系統(tǒng)資源,完成與硬件相關(guān)的工作以及控制程序的執(zhí)行等
進(jìn)程管理
程序順序執(zhí)行的特點
- 順序性
處理機(jī)嚴(yán)格按照程序所規(guī)定的順序執(zhí)行次企,即每個操作必須在下一個操作開始之前結(jié)束怯晕。
- 封閉性
程序一旦開始執(zhí)行,其計算結(jié)果不受外界的影響缸棵,當(dāng)程序的初始條件給定之后舟茶,其后的狀態(tài)只能由程序本身確定,即只有本程序才能改變它堵第。
- 可再現(xiàn)性
程序執(zhí)行的結(jié)果與初始條件有關(guān)吧凉,而與執(zhí)行時間無關(guān)。即只要程序的初始條件相同踏志,它的執(zhí)行結(jié)果是相同的阀捅,不論它在什么時間執(zhí)行,也不管計算機(jī)的運行速度针余。
多道程序并發(fā)執(zhí)行的特點
程序并發(fā)執(zhí)行(定義)
若干個程序段同時在系統(tǒng)中運行饲鄙,這些程序的執(zhí)行在時間上是重迭的,一個程序段的執(zhí)行尚未結(jié)束圆雁,另一個程序段的執(zhí)行已經(jīng)開始忍级,即使這種重迭是很小的,也稱這幾個程序段是并發(fā)執(zhí)行的伪朽。
多道程序環(huán)境具有以下特點
- 獨立性
- 隨機(jī)性
- 資源共享性
進(jìn)程的概念
進(jìn)程是具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合
上的一次運行活動轴咱,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨立單位。
進(jìn)程的狀態(tài)及變遷
進(jìn)程調(diào)度算法
- 先進(jìn)先出進(jìn)程調(diào)度算法(FIFO):按照進(jìn)程就緒的先后次序來調(diào)度進(jìn)程烈涮。
- 基于優(yōu)先數(shù)的調(diào)度(HPF—Highest Priority First):優(yōu)先選擇就緒隊列中優(yōu)先級最高的進(jìn)程投入運行朴肺。
- 時間片輪轉(zhuǎn)程序調(diào)度算法:把CPU劃分成若干時間片,并且按順序賦給就緒隊列中的每一個進(jìn)程,進(jìn)程輪流占有CPU跃脊,當(dāng)時間片用完時宇挫,即使進(jìn)程未執(zhí)行完畢苛吱,系統(tǒng)也剝奪該進(jìn)程的CPU酪术,將該進(jìn)程排在就緒隊列末尾。同時系統(tǒng)選擇另一個進(jìn)程運行翠储。
進(jìn)程控制
原語:創(chuàng)建绘雁、撤消進(jìn)程以及完成進(jìn)程各狀態(tài)之間的轉(zhuǎn)換,由具有特定功能的原語完成援所。
- 創(chuàng)建進(jìn)程原語
- 撤消進(jìn)程原語
- 阻塞原語
- 喚醒原語
- 掛起原語
- 激活原語
進(jìn)程撤銷
收回進(jìn)程所占有的資源庐舟,撤消該進(jìn)程的PCB。
進(jìn)程阻塞
處于運行狀態(tài)的進(jìn)程住拭,在其運行過程中期待某一事件發(fā)生挪略,如等待鍵盤輸入历帚、等待磁盤數(shù)據(jù)傳輸完成、等待其它進(jìn)程發(fā)送消息杠娱,當(dāng)被等待的事件未發(fā)生時挽牢,由進(jìn)程自己執(zhí)行阻塞原語,使自己由運行態(tài)變?yōu)樽枞麘B(tài)摊求。阻塞是因為要等待某個資源而無法運行
禽拔。
進(jìn)程喚醒
一個正在運行的進(jìn)程會因等待某事件(例如,等待打印機(jī))的發(fā)生室叉,由運行狀態(tài)轉(zhuǎn)換成阻塞狀態(tài)睹栖,當(dāng)它等待的事件發(fā)生后,這個進(jìn)程將由阻塞狀態(tài)轉(zhuǎn)換成就緒狀態(tài)茧痕。這種轉(zhuǎn)換由進(jìn)程喚醒操作完成野来。
進(jìn)程掛起
掛起則是可以運行,但被臨時置為睡眠踪旷。
※ 進(jìn)程的互斥
一組并發(fā)進(jìn)程中的一個或多個程序段梁只,因共享某一公有資源而導(dǎo)致它們必須以一個不允許交叉執(zhí)行的單位執(zhí)行。
※ 臨界資源
一次僅允許一個進(jìn)程使用的資源稱為臨界資源埃脏。
※ 臨界區(qū)
在每個進(jìn)程中搪锣,訪問臨界資源的那段程序
,稱為臨界區(qū)或臨界段彩掐。
※ 信號量
信號燈是一個確定的二元組(s,q)
构舟,s
是一個具有非負(fù)初值的整型變量,s
是信號量堵幽,q
是一個初始狀態(tài)為空的隊列狗超。
- 信號量
s
代表資源實體或并發(fā)進(jìn)程的狀態(tài),初值只能為0或正整數(shù)朴下。 -
S>0
努咐,代表可供并發(fā)進(jìn)程使用的資源個數(shù)(臨界資源則只有1個)。 -
S=0
殴胧,空閑資源數(shù)為0渗稍。 -
S<0
,代表有|s|
個進(jìn)程等待臨界資源以進(jìn)入臨界區(qū)团滥。 -
S
的值只能由p竿屹、v
原語改變;其他改變s
值的指令均為非法灸姊。
※ PV操作
-
p拱燃、v
操作用以改變信號量的值; - 是通過
PV原語
來完成的:p(s)和v(s)
力惯。 -
p(s)
:使信號量s
的值減1碗誉; -
v(s)
:使信號量s
的值加1召嘶; - 既,
P減V加
p(s)操作的主要動作如下
- s值減1
- 若相減結(jié)果大于或等于0哮缺,則進(jìn)程繼續(xù)執(zhí)行
- 若相減結(jié)果小于零苍蔬,該進(jìn)程被封鎖,并將它插入到該信號燈的等待隊列中蝴蜓,然后轉(zhuǎn)進(jìn)程調(diào)度程序
v(s)操作的主要動作如下
- s值加1
- 若相加結(jié)果大于零碟绑,進(jìn)程繼續(xù)執(zhí)行
- 若相加結(jié)果小于或等于零,則從該認(rèn)號燈的等待隊列中移出一個進(jìn)程茎匠,解除它的等待狀態(tài)格仲,將其轉(zhuǎn)變?yōu)榫途w狀態(tài),并將其加入就緒隊列诵冒,然后使本操作的進(jìn)程繼續(xù)執(zhí)行凯肋。
※ 進(jìn)程的互斥與同步
- 互斥——
間接制約
,共享臨界資源引發(fā)的并發(fā)進(jìn)程間的制約汽馋。 - 同步——
直接制約
侮东,并發(fā)進(jìn)程間相互共享對方私有資源引發(fā)的。
※ 生產(chǎn)者-消費者問題
- 生產(chǎn)者——把系統(tǒng)中釋放某一類資源的進(jìn)程統(tǒng)稱為生產(chǎn)者豹芯。
- 消費者——把系統(tǒng)中使用某一類資源的進(jìn)程統(tǒng)稱為消費者悄雅。
- 生產(chǎn)者——消費者問題:一個長度為n的有界緩沖區(qū)被一組生產(chǎn)者和一組消費者共享,形成生產(chǎn)者消費者問題铁蹈。
進(jìn)程間通信
又稱高級通信宽闲;進(jìn)程之間直接以較高的效率傳送較多的數(shù)據(jù)的信息交換方式稱為進(jìn)程間通信。
常用的進(jìn)程通信方式有管道
握牧、共享內(nèi)存
容诬、消息機(jī)制
。
線程
進(jìn)程內(nèi)一個相對獨立的沿腰,可獨立調(diào)度和指派的執(zhí)行單元览徒;是進(jìn)程中的一個執(zhí)行路徑。
進(jìn)程與線程的區(qū)別與聯(lián)系
- 進(jìn)程是
資源分配
和處理機(jī)調(diào)度
的基本單位颂龙。 - 線程與資源分配無關(guān)习蓬;一個進(jìn)程內(nèi)的多個線程共享該進(jìn)程的資源。
- 進(jìn)程具有完整獨立的
虛地址空間
厘托,而線程則只能繼承和共享這個空間友雳。 - 一個進(jìn)程可以包含一個以上的線程
存儲管理
存儲管理的目的
- 充分利用內(nèi)存稿湿,為多道程序并發(fā)執(zhí)行提供存儲基礎(chǔ)铅匹。
- 盡可能方便用戶使用,即用戶程序中不必考慮硬件細(xì)節(jié)饺藤。
- 解決程序比實際內(nèi)存大的問題包斑。
- 解決內(nèi)存保護(hù)與安全流礁。
- 解決共享問題。
存儲管理任務(wù)
▼ 內(nèi)存空間的管理罗丰、分配與回收
▼ 存儲共享
▼ 存儲保護(hù)
▼ 內(nèi)存擴(kuò)充
▼ 地址映射
- 邏輯地址(相對地址神帅,虛地址)
用戶程序經(jīng)過匯編或編譯后形成目標(biāo)代碼,目標(biāo)代碼通常采用相對地址的形式萌抵,其首地址為0找御,其余指令中的地址都相對于首地址而編址。不能用邏輯地址在內(nèi)存中讀取信息绍填。
- 物理地址(絕對地址霎桅,實地址)
內(nèi)存中存儲單元的實際地址,可直接尋址讨永。
- 地址映射
邏輯地址轉(zhuǎn)換為運行時由機(jī)器直接尋址的物理地址滔驶,這一過程稱為地址映射。
靜態(tài)地址轉(zhuǎn)換
當(dāng)用戶程序被裝入內(nèi)存時卿闹,一次性實現(xiàn)邏輯地址到物理地址的轉(zhuǎn)換揭糕,以后不再轉(zhuǎn)換,一般在裝入內(nèi)存時由軟件完成锻霎。
動態(tài)地址轉(zhuǎn)換
在程序運行過程中要訪問數(shù)據(jù)時再進(jìn)行地址變換著角。
虛擬存儲器
程序、數(shù)據(jù)旋恼、堆棧的大小可以超過內(nèi)存的大小雇寇,操作系統(tǒng)把程序當(dāng)前使用的部分保留在內(nèi)存
,而把其它部分保存在磁盤上蚌铜,并在需要時在內(nèi)存和磁盤之間動態(tài)交換锨侯。得到一個容量很大的“內(nèi)存”
,這就是虛存冬殃。
目的
提高內(nèi)存利用率
1.分區(qū)式存儲管理
系統(tǒng)把內(nèi)存用戶區(qū)劃分為若干分區(qū)囚痴,分區(qū)大小可以相等,也可以不等审葬。一個進(jìn)程占據(jù)一個分區(qū)深滚。
- 固定分區(qū)
預(yù)先把可分配的內(nèi)存空間分割成若干個連續(xù)區(qū)域,每一區(qū)域稱為分區(qū)涣觉。
每個分區(qū)的大小可以相同也可以不同痴荐,分區(qū)大小固定不變,每個分區(qū)裝一個且只能裝一個作業(yè)官册。
缺點:內(nèi)存利用率不高
- 可變分區(qū)
內(nèi)存不是預(yù)先劃分好的生兆,作業(yè)裝入時,根據(jù)作業(yè)的需求和內(nèi)存空間的使用情況來決定是否分配膝宁,若有足夠的空間鸦难,則按需要分割一部分分區(qū)給該進(jìn)程根吁;否則令其等待內(nèi)存空間。
內(nèi)存管理
空閑塊表——記錄了空閑區(qū)起始地址和長度合蔽。
已分配區(qū)表击敌。
內(nèi)存分配
三種分配算法:首先適應(yīng)分配算法、最佳適應(yīng)分配算法拴事、最壞適應(yīng)分配算法
內(nèi)存回收
當(dāng)某一塊歸還后沃斤,前后空間合并,修改內(nèi)存空閑塊表刃宵『渲Γ考慮:上鄰、下鄰组去、上下相鄰鞍陨、上下不相鄰。
“碎片”問題
經(jīng)過一段時間的分配回收后从隆,內(nèi)存中存在很多很小的空閑塊诚撵。它們每一個都很小,不足以滿足分配要求键闺;但其總和滿足分配要求寿烟。這些空閑塊被稱為碎片。
分區(qū)存儲管理缺點
- 分區(qū)式作業(yè)必須
連續(xù)存儲
辛燥。 - 分區(qū)式方式下當(dāng)作業(yè)的地址空間大于內(nèi)存可用分區(qū)空間時筛武,作業(yè)不能馬上運行,必須等到空閑分區(qū)和其他分區(qū)釋放后融合成為更大的空閑分區(qū)后才能全部載入內(nèi)存挎塌。
- 碎片問題(外碎片)徘六,內(nèi)存利用率不高,受實際內(nèi)存容量限制榴都。
2.分頁式存儲管理
頁是信息的物理
單位待锈,進(jìn)行分頁是出于系統(tǒng)管理
的需要;段是信息的邏輯
單位嘴高,分段是出于用戶
的需要竿音。
基本思想(工作原理)
- 用戶程序劃分
把用戶程序按邏輯頁劃分成大小相等
的部分,稱為頁拴驮。從0開始編制頁號春瞬,頁內(nèi)地址是相對于0編址。
- 頁表
OS為每個進(jìn)程建立的一張表套啤,存放在主存的固定區(qū)域中宽气,也有可能放在高速緩沖存儲器,或部分放在主存,部分放在高速緩存中抹竹,最簡單的頁表只包含兩方面的信息:頁號线罕、頁面對應(yīng)的塊號止潮。
- 頁表始址寄存器
用于保存正在運行進(jìn)程的頁表的始址
- 頁表長度寄存器
用于保存正在運行進(jìn)程的頁表的長度
- 邏輯地址:(虛地址)
- 內(nèi)存空間
按頁的大小劃分為大小相等的區(qū)域窃判,稱為內(nèi)存塊(物理頁面,頁框)喇闸。
- 內(nèi)存分配
以頁為單位進(jìn)行分配袄琳,并按進(jìn)程的頁數(shù)多少來分配。邏輯上相鄰的頁燃乍,物理上不一定相鄰唆樊。
缺頁中斷處理
在地址映射過程中,在頁表中發(fā)現(xiàn)所要
訪問的頁不在內(nèi)存
刻蟹,則產(chǎn)生缺頁中斷逗旁。操作系統(tǒng)接到此中斷信號后,就調(diào)出缺頁中斷處理程序舆瘪,根據(jù)頁表中給出的外存地址片效,將該頁調(diào)入內(nèi)存,使作業(yè)繼續(xù)運行下去英古。如果內(nèi)存中有空閑塊淀衣,則分配一頁,將新調(diào)入頁裝入內(nèi)存召调,并修改頁表中相應(yīng)頁表項目的駐留位及相應(yīng)的內(nèi)存塊號膨桥。
若此時內(nèi)存中沒有空閑塊,則要淘汰某頁唠叛,若該頁在內(nèi)存期間被修改過只嚣,則要將其寫回外存
頁式存儲管理地址變換過程
頁式管理的優(yōu)缺點
優(yōu)點
- 實現(xiàn)了作業(yè)或進(jìn)程的
非連續(xù)存放
,有效解決了碎片問題艺沼。 - 實現(xiàn)了內(nèi)外存統(tǒng)一管理的虛存方式介牙,用戶可利用的存儲空間大大增加。
缺點
- 硬件開銷加大(地址變換澳厢,缺頁中斷等)环础。
- 增加了系統(tǒng)開銷(缺頁中斷處理)。
- 抖動現(xiàn)象剩拢。
- 每個作業(yè)或進(jìn)程的最后一頁總有一部分空間得不到利用线得。
頁面置換(淘汰)算法
- 理想置換算法—最佳頁面算法(OPT)
淘汰以后不再需要的或最遠(yuǎn)的將來才會用到的頁面。
- 最近未使用頁面置換算法(NRU——Not Recently Used)
選擇在最近一段時間內(nèi)未使用過的一頁并淘汰之徐伐。
- 先進(jìn)先出頁面置換算法(FIFO)
選擇在內(nèi)存中駐留時間最長的頁并淘汰之贯钩。
3.段式存儲管理
基本思想(工作原理)
- 用戶程序劃分
按程序自身的邏輯關(guān)系劃分為若干個程序段,每個程序段都有一個段名,且有一個段號角雷。段號從0開始祸穷,每一段也從0開始編址,段內(nèi)地址是連續(xù)的勺三。
-
邏輯地址
內(nèi)存劃分
內(nèi)存空間被動態(tài)的劃分為若干個長度不相同的區(qū)域雷滚,稱為物理段,每個物理段由起始地址和長度確定吗坚。
- 內(nèi)存分配
以段為單位分配內(nèi)存祈远,每一個段在內(nèi)存中占據(jù)連續(xù)空間
(內(nèi)存隨機(jī)分割,需要多少分配多少)商源,但各段之間可以不連續(xù)存放
车份。
段式虛擬地址是二維的,包括(段號牡彻,段內(nèi)地址)扫沼。
OS為每個段指定一個唯一的段號,段號與段號之間無順序關(guān)系庄吼。
段式地址變換
- 段表
包括段號缎除,段長,段首址霸褒。
- 段表始址寄存器
用于保存正在運行進(jìn)程的段表的始址伴找。
- 段表長度寄存器
用于保存正在運行進(jìn)程的段表的長度。
段式存儲管理的優(yōu)缺點
優(yōu)點
- 實現(xiàn)了內(nèi)废菱、外存統(tǒng)一管理的虛擬存儲技矮。
- 段長可以動態(tài)增長。
- 便于信息的共享殊轴。
缺點
- 更多的硬件開銷衰倦。
- 出現(xiàn)碎片。
- 段長受內(nèi)存可用區(qū)大小限制旁理。
- 段的置換過程中出現(xiàn)抖動現(xiàn)象樊零。
段式存儲管理、頁式存儲管理的比較
- 段式存儲管理按程序邏輯結(jié)構(gòu)劃分孽文,頁式存儲管理按內(nèi)驻襟、外存物理結(jié)構(gòu)劃分。
- 段式存儲管理的程序地址是二維的芋哭,頁式存儲管理的程序地址是一維的沉衣。
- 段式存儲管理面向用戶,頁式存儲管理面向系統(tǒng)减牺。
- 段長由用戶決定豌习,可能不相等存谎;頁長由系統(tǒng)決定,一定相等肥隆。
4.段頁式存儲管理
基本思想(工作原理)
在段式存儲管理中結(jié)合分頁式存儲管理技術(shù)既荚,在一個分段內(nèi)劃分頁面,即形成段頁式存儲管理栋艳。具體而言恰聘,將程序按內(nèi)容或過程(函數(shù))關(guān)系分成段,每個分段有自己的段名嘱巾,每個段再劃分成若干大小相等的頁
憨琳;內(nèi)存以與頁相等的大小劃分成若干塊诫钓;用戶程序的一頁裝入到內(nèi)存的一塊中旬昭,如此,一個段可以裝入到若干個不連續(xù)的內(nèi)存塊中菌湃,段的大小不再受內(nèi)存可用的限制了问拘。
段頁式地址空間
段頁式用戶虛擬地址仍然是二維的,按段劃分惧所;地址結(jié)構(gòu)由段號骤坐、段內(nèi)頁號、頁內(nèi)偏移地址組成下愈;用戶使用的仍然是段號和段內(nèi)偏移地址纽绍,由地址變換機(jī)構(gòu)將段內(nèi)偏移地址解釋成頁號和頁內(nèi)偏移地址。
存儲管理中的快表是指聯(lián)想存儲器
顛簸(抖動)
在虛存中势似,頁面在內(nèi)存與外存之間頻繁調(diào)度拌夏,以至于調(diào)度頁面所需時間比進(jìn)程實際運行的時間還多,此時系統(tǒng)效率急劇下降履因,甚至導(dǎo)致系統(tǒng)崩潰障簿。這種現(xiàn)象稱為顛簸或抖動
原因
- 頁面置換算法不合理。
- 分配給進(jìn)程的物理頁面數(shù)太少
局部性原理
程序局部性原理
在一段時間內(nèi)一個程序的執(zhí)行往往呈現(xiàn)出高度的局部性栅迄,表現(xiàn)在時間與空間
兩方面
- 時間局部性
一條指令被執(zhí)行了站故,則在不久的將來它可能再被執(zhí)行。
- 空間局部性
若某一存儲單元被使用毅舆,則在一定時間內(nèi)西篓,與該存儲單元相鄰的單元可能被使用。
覆蓋與交換的技術(shù)
交換技術(shù)與覆蓋技術(shù)的共同點
進(jìn)程的程序和數(shù)據(jù)主要放在外存憋活,當(dāng)前需要執(zhí)行的部分放在內(nèi)存岂津,內(nèi)外存之間進(jìn)行信息交換
交換技術(shù)與覆蓋技術(shù)的不同點
與覆蓋技術(shù)相比,交換技術(shù)不要求用戶給出程序段之間的邏輯覆蓋結(jié)構(gòu)余掖,交換發(fā)生在進(jìn)程或作業(yè)之間寸爆,而覆蓋發(fā)生在同一進(jìn)程或作業(yè)內(nèi)礁鲁。覆蓋只能覆蓋那些與覆蓋段無關(guān)的程序段。
文件系統(tǒng)
文件的概念
一組帶標(biāo)識的在邏輯上
有完整意義
的信息項
的序列赁豆,這個標(biāo)識為文件名.
- 信息項
構(gòu)成文件內(nèi)容的基本單位仅醇。
- 長度
單個字節(jié),或多個字節(jié)魔种。
文件系統(tǒng)的概念
操作系統(tǒng)中統(tǒng)一管理信息資源的一種軟件
析二,管理文件的存儲、檢索节预、更新叶摄,提供安全可靠的共享和保護(hù)手段,并且方便用戶使用安拟。
文件的分類
1.按文件性質(zhì)和用途分類
- 系統(tǒng)文件(關(guān)OS及有關(guān)系統(tǒng)所組成文件)
- 用戶文件
- 庫文件(標(biāo)準(zhǔn)子程序及常用應(yīng)用程序組成文件蛤吓,允許用戶使用但不能修改
)
2.按信息保存期限分類
- 臨時文件
- 永久文件
- 檔案文件
3.按文件的保護(hù)方式分類
- 只讀文件
- 讀寫文件
- 可執(zhí)行文件
4.按文件的邏輯結(jié)構(gòu)
分類
- 流式文件
- 記錄式文件
5.按文件的物理結(jié)構(gòu)
分類
- 順序文件
- 鏈接文件
- 索引文件
文件的邏輯結(jié)構(gòu)
指從用戶觀點看到的文件組織形式
流式文件
構(gòu)成文件的基本單位是字符
,文件是有邏輯意義的糠赦、無結(jié)構(gòu)的一串字符的集合会傲。
文件
:一個無結(jié)構(gòu)字節(jié)序列。
好處
:提供很大的靈活性拙泽。
記錄文件
文件是由若干個記錄組成淌山,每個記錄有一個鍵,可按鍵進(jìn)行查找顾瞻。
記錄式文件是有結(jié)構(gòu)的文件
泼疑。
文件:一個固定長度記錄的序列,每條記錄有其內(nèi)部結(jié)構(gòu)荷荤。
文件的存取方法
順序存取
最后一次存取總是在前一次存取的基礎(chǔ)上進(jìn)行退渗,不必給出具體的存取位置。
隨機(jī)存取
在請求對某個文件進(jìn)行存取時要指出具體的存取位置(如記錄號梅猿、字符序號等)氓辣。
文件的物理結(jié)構(gòu)
順序結(jié)構(gòu)
文件的信息存放在若干連續(xù)的物理塊中。
優(yōu)點
- 簡單袱蚓。
- 支持順序存取和隨機(jī)存取钞啸。
- 順序存取速度快。
- 所需的磁盤尋道次數(shù)和尋道時間最少喇潘。
缺點
- 文件不能動態(tài)增長体斩。
- 不利于文件插入和刪除。
- 外部碎片問題颖低。
鏈接結(jié)構(gòu)
一個文件的信息存放在若干不連續(xù)的物理塊中絮吵,各塊之間通過指針連接,前一個物理塊指向下一個物理塊忱屑。
優(yōu)點
- 提高了磁盤空間利用率蹬敲,不存在外部碎片問題暇昂。
- 有利于文件插入和刪除。
- 有利于文件動態(tài)擴(kuò)充伴嗡。
缺點
- 存取速度慢急波,不適于隨機(jī)存取。
- 可靠性問題瘪校,如指針出錯澄暮。
- 更多的尋道次數(shù)和尋道時間。
- 鏈接指針占用一定的空間阱扬。
索引結(jié)構(gòu)
一個文件的信息存放在若干不連續(xù)物理塊中泣懊,系統(tǒng)為每個文件建立一個專用數(shù)據(jù)結(jié)構(gòu)--索引表
,并將這些塊的塊號存放在一個索引表中麻惶。一個索引表就是磁盤塊地址數(shù)組,其中第i個條目指向文件的第i塊馍刮。
優(yōu)點
- 保持了鏈接結(jié)構(gòu)的優(yōu)點,又解決了其缺點用踩。
- 即能
順序存取
渠退,又能隨機(jī)存取
忙迁。 - 滿足了文件
動態(tài)增長
脐彩、插入刪除的要求。 - 能充分利用外存空間姊扔。
缺點
- 較多的尋道次數(shù)和尋道時間惠奸。
- 索引表本身帶來了系統(tǒng)開銷。
UNIX文件系統(tǒng)采用的是多級索引結(jié)構(gòu)(綜合模式)
- 每個文件的索引表為
15個索引項
恰梢,每項2個字節(jié)佛南。最前面12項直接登記存放文件信息的物理塊號(直接尋址)。 -
如果文件大于12塊嵌言,則利用第13項指向一個物理塊嗅回,該塊中最多可放256個文件物理塊的塊號(一級索引)。對于更大的文件還可利用第14和第15項作為二級和三級索引摧茴。
文件目錄
把所有的FCB組織在一起绵载,就構(gòu)成了文件目錄,即文件控制塊的有序集合苛白。
FCB
文件控制塊(File Control Block)
:是操作系統(tǒng)為管理文件而設(shè)置的數(shù)據(jù)結(jié)構(gòu)娃豹,存放了為管理文件所需的所有有關(guān)信息(文件屬性)。文件控制塊是文件存在的標(biāo)志
购裙。
多級目錄結(jié)構(gòu)
一級目錄結(jié)構(gòu)
為所有文件建立一個目錄文件(組成一線性表)懂版。
優(yōu)點
簡單,易實現(xiàn)躏率。
缺點
- 限制了用戶對文件的命名疼鸟。
- 文件平均檢索時間長蜒蕾。
- 限制了對文件的共享屉来。
二級目錄結(jié)構(gòu)
為改變一級目錄文件目錄命名沖突
,并提高對目錄文件檢索速度而改進(jìn)摹察。
目錄分為兩級
一級稱為主文件目錄,給出用戶名倡鲸,用戶子目錄所在的物理位置供嚎。
二級稱為用戶文件目錄(又稱用戶子目錄),給出該用戶所有文件的FCB峭状。
優(yōu)點
- 解決了文件的重名問題問題 —— 用戶名 | 文件名克滴。
- 查找時間降低。
缺點
增加了系統(tǒng)開銷优床。
多級目錄結(jié)構(gòu)(樹型目錄)
優(yōu)點
- 層次結(jié)構(gòu)清晰劝赔,便于管理和保護(hù)。
- 有利于文件分類胆敞。
- 解決重名問題着帽。
- 提高文件檢索速度。
- 能進(jìn)行存取權(quán)限的控制移层。
缺點
查找一個文件按路徑名逐層檢查仍翰,由于每個文件都放在外存,多次訪盤影響速度观话。
文件的共享
文件的共享是指不同的用戶同時使用一個文件予借。
有三種文件的共享形式
- 文件被多個用戶使用,由存儲權(quán)限控制频蛔。
- 文件被多個程序使用灵迫,但分別使用自己的讀寫指針。
- 文件被多個程序使用晦溪,但共享讀寫指針瀑粥。
文件共享的目的:節(jié)省時間和存儲空間,減少用戶工作量三圆,進(jìn)程間通過文件交換信息狞换。
文件的保護(hù)
文件的保護(hù)是用于提供文件安全性的特定的一種操作系統(tǒng)機(jī)制。
文件系統(tǒng)的安全
確保未經(jīng)授權(quán)的用戶不能存取某些文件嫌术。
安全性的兩個重要方面
- 數(shù)據(jù)丟失哀澈。
- 入侵者。
設(shè)備管理
設(shè)備的分類
1.按功能特性分
- 存儲型設(shè)備
- 輸入輸出型設(shè)備(交互型設(shè)備)
- 數(shù)據(jù)通信設(shè)備
2.按數(shù)據(jù)組織分
塊設(shè)備
以數(shù)據(jù)塊為單位存儲度气、傳輸信息割按;傳輸速率較高、可尋址(隨機(jī)讀寫)磷籍。
字符設(shè)備
以字符為單位存儲适荣、傳輸信息现柠;傳輸速率低、不可尋址弛矛。
3.按資源分配角度分
獨占設(shè)備
在一段時間內(nèi)只能有一個進(jìn)程使用的設(shè)備够吩,一般為低速I/O設(shè)備(如打印機(jī),磁帶等)丈氓。
共享設(shè)備
在一段時間內(nèi)可有多個進(jìn)程共同使用的設(shè)備周循,多個進(jìn)程以交叉的方式來使用設(shè)備,其資源利用率高(如硬盤)万俗。
虛設(shè)備
在一類設(shè)備上模擬另一類設(shè)備湾笛,常用共享設(shè)備模擬獨占設(shè)備,用高速設(shè)備模擬低速設(shè)備闰歪,被模擬的設(shè)備稱為虛設(shè)備嚎研。
目的:將慢速的獨占設(shè)備改造成多個用戶可共享的設(shè)備,提高設(shè)備的利用率库倘。(實例:SPOOLing技術(shù)临扮,利用虛設(shè)備技術(shù)——用硬盤模擬輸入輸出設(shè)備)。
設(shè)備管理的功能
設(shè)備管理的主要任務(wù)是控制設(shè)備和CPU之間進(jìn)行I/O
操作教翩。
虛擬設(shè)備技術(shù)
是在一類物理設(shè)備上模擬另一類物理設(shè)備的技術(shù)杆勇,是將獨占設(shè)備轉(zhuǎn)換成共享設(shè)備的技術(shù)。
SPOOLing技術(shù)
是一個虛擬設(shè)備迂曲,一個資源轉(zhuǎn)換技術(shù)(用空間靶橱,如輸入,輸出等換取CPU時間)路捧。
解決問題:在進(jìn)程所需物理設(shè)備不存在或被占用時使用該設(shè)備。
設(shè)備獨立性
用戶在編制程序時使用的設(shè)備與實際使用的設(shè)備無關(guān)传黄。
緩沖技術(shù)及緩沖的種類
緩沖技術(shù)的引入
最早引入:CPU與I/O設(shè)備之間凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)杰扫。
目的
- 緩解CPU與I/O設(shè)備之間速度不匹配的矛盾。
- 提高CPU與I/O設(shè)備之間的并行性膘掰。
- 減少了I/O設(shè)備對CPU的中斷請求次數(shù)章姓,放寬CPU對中斷響應(yīng)時間的要求。
緩沖區(qū)設(shè)置
- 硬緩沖
由硬件寄存器實現(xiàn)(例如:設(shè)備中設(shè)置的緩沖區(qū))识埋。
- 軟緩沖
在內(nèi)存中開辟一個空間凡伊,用作緩沖區(qū)。
緩沖區(qū)管理
- 單緩沖
當(dāng)用戶進(jìn)程發(fā)出I/O請求時窒舟,操作系統(tǒng)在內(nèi)存的系統(tǒng)空間為該操作分配一個緩沖區(qū)系忙,可以實現(xiàn)預(yù)讀和滯后寫。
- 雙緩沖
可以實現(xiàn)用戶數(shù)據(jù)區(qū)—緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)—外設(shè)之間交換數(shù)據(jù)的并行惠豺。
- 緩沖池
緩沖區(qū)的設(shè)置可分為單緩沖
银还、雙緩沖
风宁、和緩沖池
。 其中關(guān)于緩沖池的操作有提取輸入
蛹疯、提取輸出
戒财、收容輸入
和收容輸出
。
死鎖
死鎖
一組進(jìn)程中捺弦,每個進(jìn)程都無限等待被該組進(jìn)程中另一進(jìn)程所占有的資源饮寞,因而永遠(yuǎn)無法得到的資源,這種現(xiàn)象稱為進(jìn)程死鎖列吼,這一組進(jìn)程就稱為死鎖進(jìn)程骂际。
產(chǎn)生死鎖的四個必要條件
- 互斥條件
- 不可剝奪條件
- 請求和保持條件
- 循環(huán)等待條件
通道
是一塊能控制一臺或多臺外圍設(shè)備與CPU并行工作的硬件。