程序上下文 中斷上下文

2021-08-17 22:37:37 字數 1342 閱讀 8121

當乙個程序在執行時,cpu的所有暫存器中的值、程序的狀態以及堆疊的內容被稱為該程序的上下文

程序上下文

當核心需要切換到另乙個程序時,它需要儲存當前程序的所有狀態,即儲存當前程序的上下文,以便在再次執行該程序時,能夠得到切換時的狀態執行下去。

中斷上下文

在linux中,當前程序上下文均儲存在程序的任務資料結構中,在發生中斷時,核心就在被中斷程序的上下文中,在核心態下執行中斷服務例程。但同時會保留住所有需要用到的資源,以便中繼服務結束時能恢復被中斷程序的執行。

程式在執行的過程中通常有使用者態和核心態兩種狀態,cpu對於處於核心態根據上下文環境進一步分為以下三種狀態:

1.核心態,執行於程序上下文,核心代表程序處於核心空間。

2.核心態,執行於中斷上下文,核心代表硬體執行於核心空間。

3.使用者態,執行於使用者空間。

上下文,我們可以簡單的認為是乙個環境

使用者空間的應用程式,通過系統呼叫,進入核心空間。這個時候使用者空間的程序需要傳遞很多變數、引數的值給核心,核心態執行的時候也要儲存使用者程序的一些暫存器值、變數等

因此,程序上下文指的是使用者程序傳遞給核心的這些引數以及核心要儲存的那一整套的變數和暫存器值和當時的環境等

當發出程序排程時,程序切換的就是上下文切換。作業系統必須對上面提到的全部資訊進行切換,新排程的程序才能執行。而系統呼叫進行的是模式切換。模式切換比程序切換容易,節省時間,原因是模式切換最主要的任務只是切換程序暫存器上下文的切換。

硬體通過觸發訊號,導致核心呼叫中斷處理程式,進入核心空間。這個過程中,硬體的一些變數和引數也要傳遞給核心,核心通過這些引數進行中斷處理。所謂的中斷上下文,可以看作是硬體傳遞過來的這些引數和核心需要儲存的一些其他環境中斷時,核心不代表任何程序執行,它一般只訪問系統空間,而不會訪問程序空間,核心再中斷上下文中執行時一般不會阻塞。

程序上下文 中斷上下文

請問程序上下文是什麼意思?1.程序上下文一般在程序切換中提到,也就是當程序要切換時關於當前程序的暫存器內容以及記憶體頁表的詳細資訊等等內容,一句話概括也就是關於描述程序的資訊。2.同意樓上的,就是很多書本上提到的程序控制塊pcb,儲存著程序的很多詳細資訊 3.補充 linux完全注釋中的一段話 當乙...

程序上下文 中斷上下文

核心空間和使用者空間是現代作業系統的兩種工作模式,核心模組執行在核心空間,而使用者態應用程式執行在使用者空間。它們代表不同的級別,而對系統資源具有不同的訪問許可權。核心模組執行在最高端別 核心態 這個級下所有的操作都受系統信任,而應用程式執行在較低級別 使用者態 在這個級別,處理器控制著對硬體的直接...

程序上下文 中斷上下文

程序上下文 中斷上下文 當工作在使用者態的程序想訪問某些核心才能訪問的資源時,必須通過系統呼叫或者中斷切換到核心態,由核心代替其執行。程序上下文和中斷上下文就是完成這兩種狀態切換所進行的操作總稱。我將其理解為儲存使用者空間狀態是上文,切換後在核心態執行的程式是下文。中斷上下文 中注意事項 1 睡眠或...