"點我查看秘籍連載" 限制進程:內核態和用戶態 進程可分為兩種類型。一是操作系統自身運行時的內核類進程,也稱為 操作系統進程 。另一種即非內核類進程,不是操作系統自身的進程,而是想要實現某些功能,用戶自己去啟動的程式產生的進程,也稱為 用戶類進程或用戶進程 。 操作系統自身也是一個程式,它啟動之後也 ...
限制進程:內核態和用戶態
進程可分為兩種類型。一是操作系統自身運行時的內核類進程,也稱為操作系統進程。另一種即非內核類進程,不是操作系統自身的進程,而是想要實現某些功能,用戶自己去啟動的程式產生的進程,也稱為用戶類進程或用戶進程。
操作系統自身也是一個程式,它啟動之後也有很多內核進程在後臺工作,而且這些內核進程都非常重要,是操作系統正常運行並提供服務的必要進程,比如負責調度類的進程、記憶體管理類進程等。
而操作系統要提供程式的運行平臺,還要管理各類軟硬體資源(比如進程調度是在管理CPU資源,記憶體的分配和回收是在管理記憶體資源,等等),那麼操作系統必然要以一種最高許可權的方式去運行,其它用戶進程都必須不能具備這個最高許可權。
此外,操作系統必須要在任何有需要的時候掌握CPU的控制權,因為進程是通過CPU去執行的,操作系統掌握了CPU的控制權,就代表操作系統進程開始執行。例如,在任何需要進行進程調度的時候,必須能夠立即回到操作系統,讓負責進程調度的進程開始根據調度演算法去調度下一個進程。
提示
需註意,內核模式和用戶模式這兩種進程狀態是CPU提供的控制,而不是操作系統提供的。在CPU中一個稱為PSW(program status word,程式狀態字)的寄存器中保存了和進程有關的一些控制位,例如內核模式和用戶模式的進程狀態。
這兩種模式描述了進程的工作狀態,是工作在內核模式下還是工作在用戶模式下。在內核模式下,表示具備了最高許可權,操作系統自身進程都是工作在內核模式下;在用戶模式下,執行的代碼將受到一些限制,用戶進程都是工作在用戶模式下,該模式下的進程不能執行一些關鍵性的操作,比如用戶進程必須不能讓它自己也變成內核態進程工作在內核模式下,這樣的話,許可權的限制就沒有意義了。
工作在這兩種狀態下的進程也稱為內核態進程和用戶態進程。通常,為了在描述問題時區分內核模式和用戶模式的進程,也會把這兩種模式稱為用戶空間和內核空間。如圖。
那麼如何保證在需要的時候,能夠立即切換回操作系統呢?通過中斷,且待後文再述。