天天3分鐘操做系統修煉祕籍(3):內核態和用戶態

點我查看祕籍連載算法

限制進程:內核態和用戶態

進程可分爲兩種類型。一是操做系統自身運行時的內核類進程,也稱爲操做系統進程。另外一種即非內核類進程,不是操做系統自身的進程,而是想要實現某些功能,用戶本身去啓動的程序產生的進程,也稱爲用戶類進程或用戶進程操作系統

操做系統自身也是一個程序,它啓動以後也有不少內核進程在後臺工做,並且這些內核進程都很是重要,是操做系統正常運行並提供服務的必要進程,好比負責調度類的進程、內存管理類進程等。3d

而操做系統要提供程序的運行平臺,還要管理各種軟硬件資源(好比進程調度是在管理CPU資源,內存的分配和回收是在管理內存資源,等等),那麼操做系統必然要以一種最高權限的方式去運行,其它用戶進程都必須不能具有這個最高權限。blog

此外,操做系統必需要在任何有須要的時候掌握CPU的控制權,由於進程是經過CPU去執行的,操做系統掌握了CPU的控制權,就表明操做系統進程開始執行。例如,在任何須要進行進程調度的時候,必須可以當即回到操做系統,讓負責進程調度的進程開始根據調度算法去調度下一個進程。進程

提示內存

需注意,內核模式和用戶模式這兩種進程狀態是CPU提供的控制,而不是操做系統提供的。在CPU中一個稱爲PSW(program status word,程序狀態字)的寄存器中保存了和進程有關的一些控制位,例如內核模式和用戶模式的進程狀態。資源

這兩種模式描述了進程的工做狀態,是工做在內核模式下仍是工做在用戶模式下。在內核模式下,表示具有了最高權限,操做系統自身進程都是工做在內核模式下;在用戶模式下,執行的代碼將受到一些限制,用戶進程都是工做在用戶模式下,該模式下的進程不能執行一些關鍵性的操做,好比用戶進程必須不能讓它本身也變成內核態進程工做在內核模式下,這樣的話,權限的限制就沒有意義了。get

工做在這兩種狀態下的進程也稱爲內核態進程和用戶態進程。一般,爲了在描述問題時區份內核模式和用戶模式的進程,也會把這兩種模式稱爲用戶空間和內核空間。如圖。內存管理

那麼如何保證在須要的時候,可以當即切換回操做系統呢?經過中斷,且待後文再述。後臺

相關文章
相關標籤/搜索