從Computer Organization and Design, by Patterson et al「I/O設備請求」是外部中斷還是內部異常?
爲什麼是 「I/O設備的請求」 外部中斷?
「I/O設備請求」是否表示用戶程序請求I/O設備通過系統調用服務?如果是,是不是系統調用內部異常?
謝謝。
從Computer Organization and Design, by Patterson et al「I/O設備請求」是外部中斷還是內部異常?
爲什麼是 「I/O設備的請求」 外部中斷?
「I/O設備請求」是否表示用戶程序請求I/O設備通過系統調用服務?如果是,是不是系統調用內部異常?
謝謝。
它是指外設需要注意的信號,例如,磁盤控制器硬件,現在已準備好滿足之前收到的讀取請求(或已完成讀取請求的數據DMA操作)。
因爲中斷不是由處理器或程序產生的。它是連接到狀態改變的中斷控制器的物理連線。由處理器外部的設備控制器驅動。中斷處理程序通常位於知道如何處理設備控制器的服務請求的驅動程序中。
「調用操作系統」是一個軟件中斷,通常會將處理器切換到保護模式以處理請求。
「算術溢出」通常是由處理器上的浮點單元生成的陷阱。
「使用未定義的指令」是另一個陷阱,由處理器本身在無法執行代碼時產生,因爲指令無效。
處理器通常會有更多類似的陷阱。像零分一樣。或執行特權指令。或虛擬內存尚未映射到物理內存時發生頁面錯誤。或者程序讀取未映射的虛擬內存地址時發生保護錯誤。
進入操作系統的路徑是一個指針數組。取決於系統,該進位可能具有不同的名稱。我將其稱爲「調度表」。調度表處理所有需要操作系統注意的事情:中斷,故障和陷阱。後兩個集體是「例外」。
執行指令導致異常。他們同步。 中斷是由執行進程/線程外發生的事件引起的。
用戶通過執行導致陷阱的指令(在intel芯片上它們誤稱這種陷阱爲「軟件中斷」)來同步調用操作系統。這樣的偶數是指令流的同步,可預測的結果。
這樣的陷阱將用於將I/O請求排隊到設備。 「在用戶程序中調用操作系統」。
當請求完成時,設備將引起中斷。表中的「I/O設備請求」是什麼意思。
令人困惑的是,操作系統通過調度表對中斷,故障和陷阱進行同樣的處理。而且,正如我所說的,在英特爾的土地上,他們稱之爲陷阱並打斷「中斷」。