⑴ 什麼是缺頁中斷
缺頁中斷是一種操作系統中的頁面故障,指的是當程序試圖訪問的頁面不在內存中的情況。
在虛擬內存系統中,程序訪問的內存地址需要通過頁表轉換為實際的內存地址。如果程序試圖訪問的頁面尚未被載入到內存中,就會發生缺頁中斷。此時,操作系統會介入處理這一中斷,進行頁面置換或頁面分配等操作,將所需的頁面載入到內存中,以保證程序的正常運行。這就是缺頁中斷的基本過程。
具體來說,當發生缺頁中斷時,操作系統會完成以下幾個步驟:
1. 中斷檢測:操作系統檢測到程序試圖訪問一個未載入到內存中的頁面。
2. 中斷處理:操作系統暫停正在執行的程序,並處理這個中斷。處理方式可能包括查找磁碟上的頁面,以及決定如何替換掉現有的內存頁面來為新頁面騰出空間。
3. 頁面置換:如果內存已滿,操作系統需要選擇一個頁面進行置換。這通常基於某種頁面置換演算法來決定。
4. 頁面載入:操作系統將所選的頁面從磁碟載入到內存中。
5. 恢復程序執行:一旦頁面載入完成,操作系統恢復被中斷的程序執行,並從發生缺頁中斷的位置繼續執行。
缺頁中斷是虛擬內存管理的重要部分,它允許程序以分頁的方式運行,而不需要將所有內容都載入到內存中。通過這種方式,操作系統可以有效地管理有限的內存資源,並允許程序運行得更為高效。
總的來說,缺頁中斷是操作系統在響應程序訪問未載入到內存中的頁面時採取的一種措施,通過中斷處理來確保程序的正常運行並有效管理內存資源。
⑵ 試述缺頁中斷與一般中斷的區別。
【答案】:在計算機系統中,由於某些事件的出現,打斷了當前程序的運行,而使CPU去處理出現的事件,這稱為「中斷」。通常,計算機的硬體結構都是在執行完一條指令後,去檢查有無中斷事件發生的。如果有,那麼就暫停當前程序的運行,而讓CPU去執行操作系統的中斷處理程序,這叫「中斷響應」。CPU在處理完中斷後,如果不需要對CPU重新進行分配,那麼就返回被中斷進程的程序繼續運行;如果需要進行CPU的重新分配,那麼操作系統就會去調度新進程。
由上面的講述可以看出,缺頁中斷與一般中斷的區別如下。
(1)兩種中斷產生的時刻不同:缺頁中斷是在執行一條指令中間時產生的中斷,並立即轉去處理;而一般中斷則是在一條指令執行完畢後,當硬體中斷裝置發現有中斷請求時才去響應和處理。
(2)處理完畢後的歸屬不同:缺頁中斷處理完後,仍返回到原指令去重新執行,因為那條指令並未執行;而一般中斷則是或返回到被中斷進程的下一條指令去執行,因為上一條指令已經執行完了,或重新調度,去執行別的進程程序。