操作系统(四)操作系统的运行机制
1.4 操作系統的運行機制
目錄
1.4 操作系統的運行機制
1.4.1 內核程序&應用程序
1.4.2 特權指令&非特權指令
1.4.3 內核態&用戶態
1.4.4 操作系統的內核
1.4.5 小結
? 操作系統其實也是一種程序,程序的執行過程也就是CPU執行一行行機器指令的過程。區別于一般程序員開發的應用程序,實現操作系統的程序就是內核程序。
1.4.1 內核程序&應用程序
? 內核程序:實現操作系統的程序稱為內核程序,許多內核程序結合在一起便組成了操作系統內核。
? 應用程序:普通程序員借助編程工具以及高級語言所完成的程序叫做應用程序。
1.4.2 特權指令&非特權指令
? 特權指令:作為系統資源的管理者,操作系統可以使用一些直接關系重大的指令(內存清零等),這些指令被稱為特權指令,而且應用程序沒有辦法直接使用特權指令,這保證了操作系統的安全。
? 非特權指令:應用程序可以使用的指令,如加減乘除指令等。
? CPU在設計的時候便已經劃分出了特權指令以及非特權指令,因此在執行這條命令前CPU就可以先判斷指令的內容。
1.4.3 內核態&用戶態
? CPU有兩種狀態:內核態(或稱核心態,管態)以及用戶態(目態)。當CPU處于內核態時,說明此時正在運行的是內核程序,此時可以執行特權指令;當CPU處于用戶態時,說明此時正在運行的是應用程序,此時只能執行非特權指令。在CPU中有一個寄存器叫做程序狀態寄存器(PSW),該寄存器的01狀態來表示此時處于內核態還是用戶態。
? 下面我們來講解一下,用戶態與內核態之間是如何相互進行變化的。
? 內核態-->用戶態:需要執行一條特權指令(指令內容是修改PSW寄存器狀態),此時內核態轉變為用戶態,CPU主動讓出使用權。
? 用戶態-->內核態:由“中斷”引發,當CPU檢測到中斷時,操作系統會強制將CPU變為內核態奪回CPU使用權,再執行與中斷有關的一系列操作。
? 下面我們用一個小栗子來解釋一下這個過程:
① 剛開機時,CPU 為“內核態”,操作系統內核程序先上CPU運行 ② 開機完成后,用戶可以啟動某個應用程序 ③ 操作系統內核程序在合適的時候主動讓出 CPU,讓該應用程序上CPU運行 ④ 應用程序運行在“用戶態” ⑤ 此時,一位黑客在應用程序中植入了一條特權指令,企圖破壞系統… ⑥ CPU發現接下來要執行的這條指令是特權指令,但是自己又處于“用戶態” ⑦ 這個非法事件會引發一個中斷信號 ⑧ “中斷”使操作系統再次奪回CPU的控制權 ⑨ 操作系統會對引發中斷的事件進行處理,處理完了再把CPU使用權交給別的應用程序1.4.4 操作系統的內核
? 當我們剛開始使用操作系統的時候,會發現一些程序并不是必需的(記事本等),這些程序稱為操作系統的非內核功能,下圖是將操作系統進行了更進一步的劃分。
? 有人將內核劃分為大內核以及微內核,這兩種劃分在不同的時期各有優勢。下面用企業來類比一下操作系統:
內核就是企業的管理層,負責一些重要的工作。只有管理層(內核程序)才能執行特權指令,普通員工(應用程序)只能執行非特權指 令。用戶態、核心態之間的切換相當于普通員工和管理層之間的工作交接。 大內核:企業初創時體量不大,管理層的人會負責大部分的事情。優點是效率高;缺點是組織結構混亂,難以維護。 微內核:隨著企業體量越來越大,管理層只負責最核心的一些工作。優點是組織結構清晰,方便維護;缺點是效率低。1.4.5 小結
需要注意的是:
? 特權指令只能在核心態下執行; 內核程序只能在核心態下執行。總結
以上是生活随笔為你收集整理的操作系统(四)操作系统的运行机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网晚报 | 2月11日 星期五 |
- 下一篇: 操作系统(五)中断和异常