使用者模式:
通過windows啟動的任何乙個程序都在使用者模式(user mode)下執行,在這種模式下的程序不能訪問其它程序的資源,除非通過api呼叫。在這種模式下執行的程式不能處理中斷(interrupts)和環境切換(context switching)。
中斷(interrupts):
cpu在執行時經常被一些事件打斷(interrupt),如計時器,鍵盤,硬碟等。這些事件就叫做中斷(interrupts)。作業系統核心必須建立一些中斷處理器(interrupts handlers)來處理這些事件。因此,當中斷出現時,作業系統就會停止當前執行的程式並轉入核心模式來之中中斷處理器來處理這些事件。事件處理器會儲存當前cpu的狀態,處理事件,恢復cpu的狀態,從而使得cpu可以繼續前面執行的程式。
當乙個程式希望呼叫windows api時,它就會觸發乙個中斷(interrupt),從而使cpu進入核心模式來執行所要求的api。在api呼叫結束後,cpu會切換回使用者模式並繼續執行先前的程式。
環境切換(context switching)
環境切換是由作業系統來執行的,環境切換的步驟如下:
(1)儲存當前程式的執行狀態
(2)指出下乙個將要執行的程式
(3)恢復另乙個程序的狀態
使用者模式與核心模式
首先了解一下使用者模式和核心模式。一般說來,程序既可在使用者模式下執行,又可在核心模式下執行。核心模式的許可權高於使用者模式的許可權。程序每次呼叫乙個系統呼叫時,程序的執行方式都發生變化 從使用者模式切換到核心模式,然後繼續執行。可見 乙個程序在cpu上執行可以有兩種執行模式 程序狀態 使用者模式和...
Linux使用者模式和核心模式
ms dos等作業系統在單一的cpu模式下執行,但是一些類unix的作業系統則使用了雙模式,可以有效地實現時間共享。在linux機器上,cpu要麼處於受信任的核心模式,要麼處於受限制的使用者模式。除了核心本身處於核心模式以外,所有的使用者程序都執行在使用者模式之中。核心模式的 可以無限制地訪問所有處...
核心與使用者模式
1.windows使用兩種處理器特權級別 1.核心 2.使用者 2.幾乎所有的 都在使用者模式,除了作業系統和硬體驅動 3.使用者模式不能直接訪問硬體,它被限制只能訪問cpu上所有暫存器和可用指令的乙個子集,所以我們為了改變硬體或者修改核心中的狀態,必須依賴api 4.進入核心模式的方式 sysen...