1)概念:CPU的工作狀態;對資源和指令使用權限的概述;
2)態的分類:核態(能夠訪問所有資源和執行所有的指令;管理程序/os內核);用戶態(僅能訪問部分資源,其他資源受限;管理應用程序);管態(介於核態和用戶態之間);
3)態的轉化
a)用戶態向核態轉化
用戶請求OS提供服務;發生中斷;用戶進程產生錯誤(內部中斷);用戶態企圖執行特權指令;
b)核態向用戶態轉化
一般是執行中斷返回
4)硬件按照“態“來區分CPU的狀態,OS按照“進程”來區分CPU的狀態
5)linux上進程分為五態,新建狀態,就緒狀態,阻塞狀態(等待態),運行狀態,終止狀態。
- 新建狀態:進程剛創建,但還不能運行,OS還沒有把它加到可執行進程組中,通常是還沒有加載到主存中的新進程。
- 就緒狀態 :一個進程獲得了除處理機外的一切所需資源,一旦得到處理機即可運行,則稱此進程處於就緒狀態。
- 執行狀態:當一個進程在處理機上運行時,則稱該進程處於運行狀態。
- 阻塞狀態:一個進程正在等待某一事件發生(例如請求I/O而等待I/O完成等)而暫時仃止運行,這時即使把處理機分配給進程也無法運行,故稱該進程處於阻塞狀態。
- 掛起狀態:由於IO的速度慢於CPU的運算速度,經常出現CPU等待I/O的情況。這時OS需要將主存中的進程對換至外存。在進程行為模式中需要增加一個新的掛起(suspend)狀態。當內存中所有進程阻塞時,OS可將一進程置為掛起態並交換到外存,再調入另一個進程執行。
- 退出狀態:OS從可執行進程組中釋放出的進程,或者是因為它自身停止了,或者是因為某種原因被取消。進程不在適合執行,但與作業相關的表和其它信息臨時被OS保留起來,為其他程序提供所需信息。
狀態之間的轉換如下圖: