華中師范大學(xué)操作系統(tǒng)知識點總結(jié)

kog3OAcGgLI.jpg
kog3OAcGgLI.jpg

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è)計主要考慮三個問題:容量蟋字,速度,成本扭勉。

多級存儲體系.png
多級存儲體系.png

沿著層次下降時鹊奖,每比特的價格將下降,容量將增大涂炎,速度將變慢忠聚,處理器的訪問頻率下降!


用戶接口與作業(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è)的狀態(tài)及轉(zhuǎn)換.png
    作業(yè)的狀態(tài)及轉(zhuǎn)換.png

作業(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í)行的伪朽。

程序并發(fā)執(zhí)行.png
程序并發(fā)執(zhí)行.png

多道程序環(huán)境具有以下特點

  • 獨立性
  • 隨機(jī)性
  • 資源共享性

進(jìn)程的概念

進(jìn)程是具有獨立功能的程序關(guān)于某個數(shù)據(jù)集合上的一次運行活動轴咱,是系統(tǒng)進(jìn)行資源分配和調(diào)度的獨立單位。

進(jìn)程的狀態(tài)及變遷

進(jìn)程的狀態(tài)及變遷.png
進(jìn)程的狀態(tài)及變遷.png

進(jìn)程調(diào)度算法

  1. 先進(jìn)先出進(jìn)程調(diào)度算法(FIFO):按照進(jìn)程就緒的先后次序來調(diào)度進(jìn)程烈涮。
  2. 基于優(yōu)先數(shù)的調(diào)度(HPF—Highest Priority First):優(yōu)先選擇就緒隊列中優(yōu)先級最高的進(jìn)程投入運行朴肺。
  3. 時間片輪轉(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)系

  1. 進(jìn)程是資源分配處理機(jī)調(diào)度的基本單位颂龙。
  2. 線程與資源分配無關(guān)习蓬;一個進(jìn)程內(nèi)的多個線程共享該進(jìn)程的資源。
  3. 進(jìn)程具有完整獨立的虛地址空間厘托,而線程則只能繼承和共享這個空間友雳。
  4. 一個進(jìn)程可以包含一個以上的線程
一個進(jìn)程可以包含一個以上的線程.jpg
一個進(jìn)程可以包含一個以上的線程.jpg

存儲管理

存儲管理的目的

  • 充分利用內(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ū)存儲管理缺點

  1. 分區(qū)式作業(yè)必須連續(xù)存儲辛燥。
  2. 分區(qū)式方式下當(dāng)作業(yè)的地址空間大于內(nèi)存可用分區(qū)空間時筛武,作業(yè)不能馬上運行,必須等到空閑分區(qū)和其他分區(qū)釋放后融合成為更大的空閑分區(qū)后才能全部載入內(nèi)存挎塌。
  3. 碎片問題(外碎片)徘六,內(nèi)存利用率不高,受實際內(nèi)存容量限制榴都。

2.分頁式存儲管理

頁是信息的物理單位待锈,進(jìn)行分頁是出于系統(tǒng)管理的需要;段是信息的邏輯單位嘴高,分段是出于用戶的需要竿音。

基本思想(工作原理)

  • 用戶程序劃分

把用戶程序按邏輯頁劃分成大小相等的部分,稱為頁拴驮。從0開始編制頁號春瞬,頁內(nèi)地址是相對于0編址。

  • 頁表

OS為每個進(jìn)程建立的一張表套啤,存放在主存的固定區(qū)域中宽气,也有可能放在高速緩沖存儲器,或部分放在主存,部分放在高速緩存中抹竹,最簡單的頁表只包含兩方面的信息:頁號线罕、頁面對應(yīng)的塊號止潮。

  • 頁表始址寄存器

用于保存正在運行進(jìn)程的頁表的始址

  • 頁表長度寄存器

用于保存正在運行進(jìn)程的頁表的長度

  • 邏輯地址:(虛地址)
分頁式存儲管理邏輯地址.png
分頁式存儲管理邏輯地址.png
  • 內(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)存期間被修改過只嚣,則要將其寫回外存

頁式存儲管理地址變換過程

頁式存儲管理地址變換過程.png
頁式存儲管理地址變換過程.png

頁式管理的優(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ù)的勺三。

  • 邏輯地址


    分段式存儲管理邏輯地址.png
    分段式存儲管理邏輯地址.png
  • 內(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)程的段表的長度。

段式存儲管理地址變換過程.png
段式存儲管理地址變換過程.png

段式存儲管理的優(yōu)缺點

優(yōu)點
  • 實現(xiàn)了內(nèi)废菱、外存統(tǒng)一管理的虛擬存儲技矮。
  • 段長可以動態(tài)增長。
  • 便于信息的共享殊轴。
缺點
  • 更多的硬件開銷衰倦。
  • 出現(xiàn)碎片。
  • 段長受內(nèi)存可用區(qū)大小限制旁理。
  • 段的置換過程中出現(xiàn)抖動現(xiàn)象樊零。

段式存儲管理、頁式存儲管理的比較

  1. 段式存儲管理按程序邏輯結(jié)構(gòu)劃分孽文,頁式存儲管理按內(nèi)驻襟、外存物理結(jié)構(gòu)劃分。
  2. 段式存儲管理的程序地址是二維的芋哭,頁式存儲管理的程序地址是一維的沉衣。
  3. 段式存儲管理面向用戶,頁式存儲管理面向系統(tǒng)减牺。
  4. 段長由用戶決定豌习,可能不相等存谎;頁長由系統(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項作為二級和三級索引摧茴。


    UNIX多級索引結(jié)構(gòu).png
    UNIX多級索引結(jié)構(gòu).png

文件目錄

把所有的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并行工作的硬件。

原文地址:http://www.iooy.com/Operating-System-Overview

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末冈欢,一起剝皮案震驚了整個濱河市歉铝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌凑耻,老刑警劉巖太示,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異香浩,居然都是意外死亡类缤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進(jìn)店門邻吭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來餐弱,“玉大人,你說我怎么就攤上這事囱晴「囹荆” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵畸写,是天一觀的道長驮瞧。 經(jīng)常有香客問我,道長枯芬,這世上最難降的妖魔是什么论笔? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮千所,結(jié)果婚禮上狂魔,老公的妹妹穿的比我還像新娘。我一直安慰自己淫痰,他們只是感情好最楷,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般管嬉。 火紅的嫁衣襯著肌膚如雪皂林。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天蚯撩,我揣著相機(jī)與錄音础倍,去河邊找鬼。 笑死胎挎,一個胖子當(dāng)著我的面吹牛沟启,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播犹菇,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼德迹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了揭芍?” 一聲冷哼從身側(cè)響起胳搞,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎称杨,沒想到半個月后肌毅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡姑原,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年悬而,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锭汛。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡笨奠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唤殴,到底是詐尸還是另有隱情般婆,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布眨八,位于F島的核電站腺兴,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏廉侧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一篓足、第九天 我趴在偏房一處隱蔽的房頂上張望段誊。 院中可真熱鬧,春花似錦栈拖、人聲如沸连舍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽索赏。三九已至盼玄,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間潜腻,已是汗流浹背埃儿。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留融涣,地道東北人童番。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像威鹿,于是被迫代替她去往敵國和親剃斧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容