中斷上下文和程序上下文

2021-08-28 18:04:16 字數 629 閱讀 6383

上下文指的就是 在排程的切換過程就叫 上下文。(這個過程需要儲存當前 的一些引數)

核心排程的切換就叫中斷上下文,他的目的就是獲得cpu的排程全,在這裡沒有程序的概念 整個核心就乙個init 程序(多cpu除外)

程序上下文 就是指使用者程序之間的切換 過程中儲存的一些 當前程序的執行引數。

下面有個問題: 

1. 問什麼中斷上下文中不能有sleep

首先中斷實在核心態下的 所以理論上他是單程序的,若果你用sleep 那麼其他的程式就無法得到cpu (中斷禁止搶占) 這樣就造成了cpu的浪費。

其次 如果在中斷中呼叫了sleep 那麼由於中斷是不允許搶占的所以在設計是就沒有想程序那樣有儲存中斷排程的描述 所以當你sleep(也和中斷差不多 都是cpu的乙個排程) 當sleep 完成後由於中斷被swicth 出去了由於沒有記錄機制所以這個中斷就無法 在返回執行了。

再者由於由於中斷工作在核心態 我們知道核心是乙個程序 多有應用層程序公用的, 那摩如果你a 中斷中有sleep 如果被b中斷切換出去了 那麼由於在同乙個init 京城中 所以會導致b也可能sleep了這就導致了a b 的混亂,在這你怎麼喚醒a的sleep呢。

所以有種種原因linux 在設計是就要求中斷中不能有 sleep。  如果有kernel就無從實施。

中斷上下文 程序上下文

在學習與作業系統相關的知識時候,我們經常遇到程序上下文 中斷上下文,看似熟悉又感覺不是特別清晰。這裡我們從如下幾個方面進行描述。上下文是從英文中context翻譯過來的,指的是一種環境。上下文我們看起來不怎麼熟悉,但是我們可以看context的中文翻譯,或者我們能更加的情形些。context n 語...

程序上下文和中斷上下文

程序上下文和中斷上下文是作業系統中很重要的兩個概念,這兩個概念在作業系統課程中不斷被提及,是最經常接觸 看上去很懂但又說不清楚到底怎麼回事。造成這種局面的原因,可能是原來接觸到的作業系統課程的教學總停留在一種淺層次的理論層面上,沒有深入去研究。處理器總處於以下狀態中的一種 核心態,執行於程序上下文,...

程序上下文和中斷上下文

程序上下文是一種核心所處的操作模式,此時核心代表程序執行 例如執行系統呼叫或執行核心執行緒。上下文context 上下文簡單說來就是乙個環境,相對於程序而言,就是程序執行時的環境。具體來說就是各個變數和資料,包括所有的暫存器變數 程序開啟的檔案 記憶體資訊等。乙個程序的上下文可以分為三個部分 使用者...