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