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