第二章操作系统逻辑结构总结
1. 邏輯結(jié)構(gòu)
1.1 邏輯結(jié)構(gòu),即OS的設(shè)計(jì)和實(shí)現(xiàn)思路!
1.2 邏輯結(jié)構(gòu)的種類:
(1)整體式結(jié)構(gòu):以塊為基本單位構(gòu)建或以模塊為基本單位構(gòu)建。
特點(diǎn):
模塊設(shè)計(jì)、編碼和調(diào)試獨(dú)立;
模塊調(diào)用自由;
模塊通信多以全局變量形式完成;
缺點(diǎn)
信息傳遞隨意,維護(hù)和更新困難。
(2)層次結(jié)構(gòu):分層結(jié)構(gòu)的操作系統(tǒng),所有功能模塊按照調(diào)用次序排成若干層,相鄰層間只有單向依賴或單向調(diào)用。上層的實(shí)現(xiàn)依賴下一層,每一層為上一層提供服務(wù)
分層原則:
硬件相關(guān)-最底層
外部特性-最外層
中間層-調(diào)用次序或消息傳遞順序
共性的服務(wù)-較低層
活躍功能-較低層
特點(diǎn):
結(jié)構(gòu)清晰,避免循環(huán)利用
整體問(wèn)題局部化,系統(tǒng)的正確性容易保證
有利于操作系統(tǒng)的維護(hù)、擴(kuò)充、移植
(3)微內(nèi)核結(jié)構(gòu)(客戶/服務(wù)器結(jié)構(gòu),Client/Server)
操作系統(tǒng)=微內(nèi)核+核外服務(wù)器
a) 微內(nèi)核: 要足夠小,提供OS最基本的核心功能和服務(wù)
實(shí)現(xiàn)與硬件緊密相關(guān)的處理
實(shí)現(xiàn)一些較基本的功能
負(fù)責(zé)客戶和服務(wù)器間的通信
b) 核外服務(wù)器
完成OS的絕大部分服務(wù)功能,等待應(yīng)用程序提出請(qǐng)求
由若干服務(wù)器或進(jìn)程共同構(gòu)成
例如:進(jìn)程/線程服務(wù)器、虛存服務(wù)器、設(shè)備管理服務(wù)器等 以進(jìn)程形式運(yùn)行在用戶態(tài)
2. CPU的態(tài)
2.1 CPU的態(tài),即CPU的工作狀態(tài),對(duì)資源和指令使用權(quán)限的概述;
2.2 態(tài)的分類:
核態(tài)(能夠訪問(wèn)所有資源和執(zhí)行所有的指令;管理程序/os內(nèi)核);
用戶態(tài)(僅能訪問(wèn)部分資源,其他資源受限;管理應(yīng)用程序);
管態(tài)(介于核態(tài)和用戶態(tài)之間);
2.3 態(tài)的轉(zhuǎn)化
a)用戶態(tài)向核態(tài)轉(zhuǎn)化
? 用戶請(qǐng)求OS提供服務(wù)——>發(fā)生中斷——>用戶進(jìn)程產(chǎn)生錯(cuò)誤(內(nèi)部中斷)——>用戶態(tài)企圖執(zhí)行特權(quán)指令
b)核態(tài)向用戶態(tài)轉(zhuǎn)化
一般是執(zhí)行中斷返回
2.4 硬件按照“態(tài)“來(lái)區(qū)分CPU的狀態(tài),OS按照“進(jìn)程”來(lái)區(qū)分CPU的狀態(tài);
2.5 linux上進(jìn)程分為五態(tài),新建狀態(tài),就緒狀態(tài),阻塞狀態(tài)(等待態(tài)),運(yùn)行狀態(tài),終止?fàn)顟B(tài)。
新建狀態(tài):進(jìn)程剛創(chuàng)建,但還不能運(yùn)行,OS還沒(méi)有把它加到可執(zhí)行進(jìn)程組中,通常是還沒(méi)有加載到主存中的新進(jìn)程。
就緒狀態(tài) :一個(gè)進(jìn)程獲得了除處理機(jī)外的一切所需資源,一旦得到處理機(jī)即可運(yùn)行,則稱此進(jìn)程處于就緒狀態(tài)。
執(zhí)行狀態(tài):當(dāng)一個(gè)進(jìn)程在處理機(jī)上運(yùn)行時(shí),則稱該進(jìn)程處于運(yùn)行狀態(tài)。
阻塞狀態(tài):一個(gè)進(jìn)程正在等待某一事件發(fā)生(例如請(qǐng)求I/O而等待I/O完成等)而暫時(shí)仃止運(yùn)行,這時(shí)即使把處理機(jī)分配給進(jìn)程也無(wú)法運(yùn)行,故稱該進(jìn)程處于阻塞狀態(tài)。
掛起狀態(tài):由于IO的速度慢于CPU的運(yùn)算速度,經(jīng)常出現(xiàn)CPU等待I/O的情況。這時(shí)OS需要將主存中的進(jìn)程對(duì)換至外存。在進(jìn)程行為模式中需要增加一個(gè)新的掛起(suspend)狀態(tài)。當(dāng)內(nèi)存中所有進(jìn)程阻塞時(shí),OS可將一進(jìn)程置為掛起態(tài)并交換到外存,再調(diào)入另一個(gè)進(jìn)程執(zhí)行。
退出狀態(tài):OS從可執(zhí)行進(jìn)程組中釋放出的進(jìn)程,或者是因?yàn)樗陨硗V沽耍蛘呤且驗(yàn)槟撤N原因被取消。進(jìn)程不在適合執(zhí)行,但與作業(yè)相關(guān)的表和其它信息臨時(shí)被OS保留起來(lái),為其他程序提供所需信息。
狀態(tài)之間的轉(zhuǎn)換如下圖:
3. 中斷機(jī)制
3.1 中斷定義
中斷指CPU對(duì)突發(fā)的外部事件的反應(yīng)過(guò)程或機(jī)制。CPU受到外部信號(hào)(中斷信號(hào))后,停止當(dāng)前工作,去處理外部事件,處理完畢后回到原來(lái)工作的中斷處(斷點(diǎn))繼續(xù)原來(lái)的工作?!?/p>
3.2 中斷目的:
實(shí)現(xiàn)并發(fā)
實(shí)時(shí)處理
故障自動(dòng)處理
3.3 中斷的一些概念:
a)引起系統(tǒng)中斷的事件稱為中斷源;
b)中斷類型:
(1)強(qiáng)迫中斷和自愿中斷:
? 強(qiáng)迫中斷:程序無(wú)預(yù)期
? 自愿中斷:程序設(shè)計(jì)好的
(2)內(nèi)中斷和外中斷:
外中斷:CPU外部世界(如i/o)
不可屏蔽中斷:中斷原因很關(guān)鍵CPU必須響應(yīng)
可屏蔽中斷:中斷原因不重要CPU可以不響應(yīng)
內(nèi)中斷:CPU內(nèi)部世界
c)斷點(diǎn):(程序中斷的地方)
用程序下一條指令的地址來(lái)表示這個(gè)參數(shù)
在匯編語(yǔ)言中就是CS:IP
d)現(xiàn)場(chǎng)(程序正確運(yùn)行所依賴的信息集合):
相關(guān)寄存器
現(xiàn)場(chǎng)的兩個(gè)處理過(guò)程:
現(xiàn)場(chǎng)保護(hù):進(jìn)入中斷服務(wù)程序之前,把東西放進(jìn)棧里
現(xiàn)場(chǎng)恢復(fù):恢復(fù)原程序,把棧的東西換原
e)中斷響應(yīng)過(guò)程:
1.識(shí)別中斷源
2.保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)
3.裝入中斷服務(wù)程序的入口地址(CS:IP)
4.進(jìn)入中斷服務(wù)程序
5.恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn)
6.中斷返回LRET
e)中斷響應(yīng)的實(shí)質(zhì):
交換指令執(zhí)行地址(CS:IP)
交換了CPU的態(tài)
現(xiàn)場(chǎng)保護(hù)和恢復(fù),還有傳遞的參數(shù)
reference:
cpu的態(tài)https://blog.csdn.net/Maybe_ch/article/details/85650818
中斷https://www.cnblogs.com/beautiful7/p/12409589.html
問(wèn)題
1. 何為操作系統(tǒng)的邏輯結(jié)構(gòu)?有哪幾種典型邏輯結(jié)構(gòu)?
? 邏輯結(jié)構(gòu),即OS的設(shè)計(jì)和實(shí)現(xiàn)思路。有整體結(jié)構(gòu)、層次結(jié)構(gòu)、微內(nèi)核結(jié)構(gòu)三種。
2. 分層結(jié)構(gòu)的分層原則是什么?
硬件相關(guān)——最底層
外部特性——最外層
中間層——調(diào)用次序或消息傳遞順序
共性的服務(wù)——較低層
活躍功能——較低層
3. 微內(nèi)核結(jié)構(gòu)的特點(diǎn)是什么?
1)較高的靈活性和可擴(kuò)充性
2)高了操作系統(tǒng)的可靠性
3)更適合于分布式系統(tǒng)
4. 何為CPU的態(tài)?定義態(tài)的作用什么?有哪些態(tài)?
1)CPU的態(tài),即CPU的工作狀態(tài),對(duì)資源和指令使用權(quán)限的概述;
2)為了避免用戶程序錯(cuò)誤地使用特權(quán)指令,保護(hù)操作系統(tǒng)不被用戶程序破壞。具體規(guī)定為,當(dāng)CPU處于用戶態(tài)時(shí),不允許執(zhí)行特權(quán)指令;當(dāng)CPU處于系統(tǒng)態(tài)時(shí),可執(zhí)行包括特權(quán)指令在內(nèi)的一切機(jī)器指令;
3)核態(tài)、用戶態(tài)、管態(tài);
?
5. 中斷的概念是什么?中斷的響應(yīng)過(guò)程是怎樣的?
1)中斷指CPU對(duì)突發(fā)的外部事件的反應(yīng)過(guò)程或機(jī)制。CPU受到外部信號(hào)(中斷信號(hào))后,停止當(dāng)前工作,去處理外部事件,處理完畢后回到原來(lái)工作的中斷處(斷點(diǎn))繼續(xù)原來(lái)的工作。
2)中斷的響應(yīng)過(guò)程:
① 識(shí)別中斷源
② 保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)
③ 裝入中斷服務(wù)程序的入口地址(CS:IP)
④ 進(jìn)入中斷服務(wù)程序
⑤ 恢復(fù)現(xiàn)場(chǎng)和斷點(diǎn)
⑥ 中斷返回LRET
6. 操作系統(tǒng)分層結(jié)構(gòu)有何作用?在應(yīng)用編程中,我們?nèi)绾问褂梅謱拥木幊趟枷胩嵘绦虻目梢浦残院涂删S護(hù)性?
1)開發(fā)人員的專業(yè)分工,專注理解某一層。 由于某一層僅僅調(diào)用其相鄰下一層所提供的程序接口,只需要本層的接口和相鄰下一層的接口定義清晰完整,開發(fā)人員在開發(fā)某一層時(shí)就可以像關(guān)注集中于這一層所用的功能和技術(shù)。
2) 可以很容易用新的實(shí)現(xiàn)來(lái)替換原有層次的實(shí)現(xiàn)。 只要前后提供的服務(wù)(接口)相同,即可替換。 系統(tǒng)開發(fā)過(guò)程中,功能需求不斷變化,我們可以替換現(xiàn)有的層次以滿足新的需求變化。
3)降低了系統(tǒng)間的依賴。 比如業(yè)務(wù)邏輯層中的業(yè)務(wù)發(fā)生變化, 其他兩層即表現(xiàn)層以及數(shù)據(jù)訪問(wèn)層程序也不需要變化。 這大大降低了系統(tǒng)各層之間的依賴。
4)有利于復(fù)用。 充分利用現(xiàn)有的功能程序組件,將已經(jīng)辨識(shí)的具有相對(duì)獨(dú)立功能的層應(yīng)用于新系統(tǒng)的開發(fā),保證新系統(tǒng)開發(fā)的過(guò)程中,能夠?qū)⒅攸c(diǎn)集中于辨識(shí)和實(shí)現(xiàn)應(yīng)用系統(tǒng)特有的業(yè)務(wù)功能, 最終縮短系統(tǒng)開發(fā)周期,提高系統(tǒng)的質(zhì)量。
7. 操作系統(tǒng)微內(nèi)核架構(gòu)有何作用?在應(yīng)用編程中,我們?nèi)绾问褂谩翱蛻?服務(wù)器”的編程思想提升程序的功能可擴(kuò)展性?
1)作用
① 提高了系統(tǒng)的可擴(kuò)展性
② 增強(qiáng)了系統(tǒng)的可靠性
③ 可移植性強(qiáng)
④ 提供了對(duì)分布式系統(tǒng)的支持
⑤ 融入了面向?qū)ο蠹夹g(shù)
2)如何使用
① 客戶只能通過(guò)以公有的方式定義的接口使用服務(wù)器,這意味著客戶(客戶程序員)唯一的責(zé)任是了解接口。
② 服務(wù)器(服務(wù)器程序設(shè)計(jì)人員)的責(zé)任是確保服務(wù)器根據(jù)該接口可靠并準(zhǔn)確的執(zhí)行。
③ 服務(wù)器設(shè)計(jì)任務(wù)只修改設(shè)計(jì)的實(shí)現(xiàn)細(xì)節(jié),而不能修改接口。
這樣程序員就能夠獨(dú)立的對(duì)客戶和服務(wù)器進(jìn)行改進(jìn),對(duì)服務(wù)器的修改不會(huì)對(duì)客戶的行為造成意外的影響。
總結(jié)
以上是生活随笔為你收集整理的第二章操作系统逻辑结构总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 几款软件需求分析工具 Chars
- 下一篇: 颖儿产后晒减肥餐(颖儿晒月子减肥餐)