操作系统复习之线程、对称多处理和微内核
Chapter 4線程、對稱多處理和微內(nèi)核
一、???????????? 線程間的狀態(tài)切換比進程間的狀態(tài)切換開銷更低的原因?(從資源分配角度來分析)
從下面這幅圖可以看出
左邊為單線程進程模型,右邊為多線程進程模型。從上圖可以看出,多線程雖然有自己的線程控制塊、用戶棧和內(nèi)核棧,但是他們是共享同一個進程中用戶地址空間的,線程切換不需要重新分配資源;相反,進程間由于不共享用戶地址空間,進程切換時需要重新分配資源,操作系統(tǒng)使其環(huán)境產(chǎn)生實質(zhì)性的變化。(核心問題是資源分配問題)
二、???????????? 在進程概念中體現(xiàn)出來的兩個獨立且無關(guān)的特點是什么?
資源所有權(quán)和調(diào)度/執(zhí)行。
資源所有權(quán):一個進程包括一個進程影像的虛擬地址空間,一個進程總是擁有對資源的控制或所有權(quán)。
調(diào)度/執(zhí)行:一個進程沿著一個通過一個或多個程序的一條執(zhí)行路徑(軌跡)。
三、???????????? 單用戶多處理系統(tǒng)中使用線程的4個例子
1、? 執(zhí)行速度
2、? 異步調(diào)用(程序)
3、? 前臺和后臺工作(如word)
4、? 模塊化程序結(jié)構(gòu)
在支持線程的OS中,調(diào)度和分派是在線程的基礎(chǔ)上完成的,但是有些活動影響著進程中的所有線程,因此OS必須在進程一級對它們進行管理。
四、???????????? 用戶級線程相對于內(nèi)核級線程的3個優(yōu)點
對比上面純用戶級線程和純內(nèi)核級線程,可知:
優(yōu)點一;純用戶級線程中,內(nèi)核以進程為單位進行調(diào)度,所有線程共享一個進程的用戶地址空間,因此線程切換不需內(nèi)核特權(quán)(右圖純內(nèi)核級線程中可以看出,當(dāng)進行線程切換時,需進入到內(nèi)核態(tài)進行切換),節(jié)省了兩次狀態(tài)轉(zhuǎn)換(用戶態(tài)——>內(nèi)核態(tài),內(nèi)核態(tài)——>用戶態(tài))。
優(yōu)點二:從上圖可知,用戶級線程處在用戶態(tài)執(zhí)行,與具體OS無關(guān)。調(diào)度可以是應(yīng)用程序相關(guān)的。
優(yōu)點三:用戶態(tài)線程可以在任何操作系統(tǒng)中運行(可移植性好),不需要內(nèi)核的的特別支持。線程庫(Thread libray)是一組供所有應(yīng)用程序共享的應(yīng)用程序級別的函數(shù)。
五、???????????? 用戶級線程相對于內(nèi)核級線程的兩個缺點。(也就是內(nèi)核級線程的優(yōu)點)
比較上兩圖可以看出:
缺點一:純用戶級線程中,內(nèi)核以進程為單位進行調(diào)度,因此當(dāng)其中一個用戶線程阻塞時,很有可能阻塞整個進程,而在內(nèi)核級線程中,當(dāng)一個線程發(fā)生阻塞時,內(nèi)核可以調(diào)度到另一個線程進行執(zhí)行。
缺點二、在純用戶進程中,內(nèi)核以進程為單位進行調(diào)度給處理器,一個多線程的應(yīng)用程序不能利用多處理技術(shù),講多個線程分配給不同的處理器進行執(zhí)行。而右圖中內(nèi)核級線程是可以的,Windows采用的就是這種技術(shù)。
六、???????????? Jacketing的定義
針對用戶級線程的缺點而產(chǎn)生的技術(shù)。目標(biāo):把產(chǎn)生阻塞的系統(tǒng)調(diào)用轉(zhuǎn)化成一個非阻塞的系統(tǒng)調(diào)用。
七、???????????? 給出在典型的單體結(jié)構(gòu)操作系統(tǒng)中可以找到,且可能是微內(nèi)核操作系統(tǒng)外部子系統(tǒng)的服務(wù)和功能。
文件系統(tǒng),設(shè)備驅(qū)動程序、虛存管理程序、窗口系統(tǒng)和安全服務(wù)。他們可以和內(nèi)核交互,也可以相互交互。
八、???????????? 微內(nèi)核設(shè)計相對于整體式結(jié)構(gòu)設(shè)計的7個優(yōu)點。
UNIX分層內(nèi)核體系結(jié)構(gòu)??????????? 微內(nèi)核體系結(jié)構(gòu)圖(客戶/服務(wù)器模式)
微內(nèi)核外部的操作系統(tǒng)部件被當(dāng)做服務(wù)器進程來實現(xiàn),它們可以借助與微內(nèi)核傳遞消息來實現(xiàn)相互之間的交互。MACH采用微內(nèi)核模式。
1、? 一致接口,進程無需區(qū)分是內(nèi)核級服務(wù)還是用戶級服務(wù)
2、? 可擴展性,允許增加新的服務(wù)以及在同一個功能區(qū)域中提供多個服務(wù)
3、? 靈活性,不僅 可以增加功能還可以刪減功能,以產(chǎn)生一個更小、更有效的實現(xiàn)
4、? 可移植性,
5、? 可靠性,小的微內(nèi)核可以被嚴(yán)格的測試。
6、? 分布式系統(tǒng)支持
7、? 對面向?qū)ο蟛僮飨到y(tǒng)的支持
九、???????????? 微內(nèi)核操作系統(tǒng)可能存在的性能缺點(從客戶服務(wù)器的架構(gòu)來分析)
從微內(nèi)核體系結(jié)構(gòu)圖可以看出。因為微內(nèi)核中只有最基本功能,微內(nèi)核外部操作系統(tǒng)部件被當(dāng)做服務(wù)器進程實現(xiàn),進程間通信需通過微內(nèi)核構(gòu)造和發(fā)送消息、接受應(yīng)答并解碼所花費的時間比進行一次系統(tǒng)調(diào)用的時間要多。
十、???????????? 列出即使在最小的微內(nèi)核操作系統(tǒng)中也可以找到的3個功能。
IPC——進程間通信,低級存儲管理、和I/O和中斷管理。
十一、????? 微內(nèi)核操作系統(tǒng)中,進程或線程間通信的基本形式是什么?
消息。通過微內(nèi)核構(gòu)造和發(fā)送信息,接受應(yīng)答并解碼。
轉(zhuǎn)載于:https://www.cnblogs.com/lixiangfa/archive/2011/09/08/2171880.html
總結(jié)
以上是生活随笔為你收集整理的操作系统复习之线程、对称多处理和微内核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 64位Fedora运行32位C++程序所
- 下一篇: visual studio vis