1.系統內核
1.系統內核:操作系統(OS)是硬件之上的第一層軟件,多采用層次結構,可分為多個層次。而內核顧名思義,是操作系統的核心部分,是加到硬件上的第一層軟件。內核可以通過執行各種原語操作實現管理和控制功能,同時內核也是進程賴以活動的基礎。
內核作為操作系統的一部分會被頻繁的調用,所以會常駐在內存中。通常會將一些與硬件緊密相關的模塊(如中斷處理程序),各種常用設備的驅動程序,以及運行頻率較高的模塊(時鍾管理、進程調度)都安排在內核,以便提高操作系統的的運行效率。除此以外,一般還會對內核加以特殊的保護。
進入核心的唯一入口是中斷。
內核的執行特點:(1)由中斷驅動:中斷——內核——退出。(2)連續執行(3)內核執行過程是在中斷屏蔽狀態下(4)內核使用特權指令
內核的功能:
1.支撐功能:中斷處理,時鍾管理,原語操作
2.資源管理功能:進程管理,儲存器管理,設備管理
2.中斷
早期計算機各個程序只能串行執行、系統資源利用低。為了提高了系統資源的利用率,人們引入了並發執行機制。 而中斷就是並發執行的重要前提條件,可以將機器從用戶態轉換到核心態。在進程運行過程中,如果時間片用完或者需要等待某個事件發生,即時模塊就會發出一個中斷信號,CPU接收后就會切換到核心態,將CPU的權限交給操作系統,由操作系統進行后續的調度。
在上述過程中我們可以看到:(1)中斷后,CPU進入核心態(2)進入核心態后,操作系統會進行進一步的調度防止資源浪費
從而我們可以看到中斷的實質:中斷會發出一種信號,其意味着進程遇到了問題或者時間片用完,需要操作系統介入。
<\font>
3.管態與目態
區分內核態和用戶態兩種操作方式的目的是為了保護操作系統程序 通常CPU執行兩種不同性質的程序:一種是操作系統內核程序;另一種是用戶自編程序或系統 外層的應用程序。對操作系統而言,這兩種程序的作用不同,前者是后者的管理者,因此“管理 程序”要執行一些特權指令,而“被管理程序”出於安全考慮不能執行這些指令。所謂特權指令, 是指計算機中不允許用戶直接使用的指令,如I/O指令、 置中斷指令,存取用於內存保護的寄存 器、送程序狀態字到程序狀態字寄存器等指令。通常CPU執行兩種不同性質的程序:一種是操作系統內核程序;另一種是用戶自編程序或系統外層的應用程序。對操作系統而言,這兩種程序的作用不同,前者是后者的管理者,因此“管理程序”要執行一些特權指令(不允許用戶直接使用的指令,如I/O指令、置中斷指令等),而“被管理程序”出於安全考慮不能執行這些指令。所以我們將機器分為兩種狀態,通過狀態的切換來保護操作系統程序。
管態(核心態、系統態):在此狀態下,CPU可以執行指令系統的全集,是一種具有較高特權的執行狀態,可以訪問所有寄存器和存儲區。另外OS內核通常是運行在系統態的,進程控制是由OS內核實現。
目態(用戶態):在此狀態下,CPU只能執行非特權指令。可訪問指定的寄存器和存儲區,只具有較低的特權。一般的用戶程序在此狀態下執行。
4.原語
原語:原語是由若干機器指令構成的,是系統狀態下執行的某些具有特定功能的程序段(軟指令)。 比如在掛起進程時會使用掛起原語,相應的還有解掛(激活)原語。原語的特點:具有不可分割性,即是它的執行必須是連續的,一旦開始就不能間斷,直至完成。
這種操作形式也被稱為原子操作(一個操作中的動作要么全做,要么全不做)。