作業系統與硬體

處理完中斷或例外而回到原本的程式時,不使用一般函式的返回指令,而是使用專用的返回指令(RISC-V的sret、mret等),其理由為何?

  1. A因為專用的指令長度比較短
  2. B因為除了返回位置,還要一併還原模式與中斷的狀態
  3. C因為使用一般的返回指令時,處理常式無法得知返回位置的位址
查看答案與解析

正確答案:B. 因為除了返回位置,還要一併還原模式與中斷的狀態

發生例外或中斷時,CPU會將返回位置的位址,以及之前的運作模式、中斷是否原本為允許的狀態,儲存到專用暫存器後進入特權模式。返回時必須同時還原這些,並降到使用者模式後再前進到原本的指令,否則有可能以特權狀態繼續執行。專用的返回指令能以一個指令不可分割地完成這件事。這與指令長度無關,返回位置的位址可從已儲存的暫存器得知。

  • A. 指令長度並不是理由。
  • B. 正確。必須同時還原模式與中斷的狀態。
  • C. 返回位置儲存在專用暫存器中,是可以得知的。
練習這個領域 前往領域頁面

作業系統與硬體的其他題目

  1. 在要求即時性的系統中,下列何者最適合作為使中斷延遲(從中斷發生到處理常式開始執行的時間)變大的因素?
  2. 關於NMI(不可遮罩中斷,non-maskable interrupt)的說明,下列何者正確?
  3. 在具有多個核心的系統中,作業系統改寫某個分頁的頁表項目而取消其對應時,必須進行的處理為下列何者?
  4. 當程式存取作業系統未配置的位址時,一般會發生下列何事?
  5. 在將檔案對應到記憶體的機制(如mmap)中,關於讀取檔案內容時發生之事的說明,下列何者正確?

這個領域的比較