作業系統與硬體

當程式存取作業系統未配置的位址時,一般會發生下列何事?

  1. ACPU自動為該位址增設新的實體記憶體
  2. B存取被忽略,程式若無其事地繼續執行下一個指令
  3. C發生分頁錯誤,作業系統判斷為非法存取而讓程式停止
查看答案與解析

正確答案:C. 發生分頁錯誤,作業系統判斷為非法存取而讓程式停止

存取未配置的位址時,由於頁表中沒有有效的項目,會發生分頁錯誤。作業系統會檢查該位址是否在行程被允許的範圍內,若是哪裡都沒有配置的非法存取,就會通知程式發生異常並使其停止(也就是所謂的區段錯誤,segmentation fault)。如此可避免錯誤的指標破壞其他行程或作業系統的記憶體。實體記憶體不會自動增加,存取也不會被默默忽略。

  • A. 實體記憶體不會自動增加。
  • B. 若被默默忽略,就會無法察覺錯誤。
  • C. 正確。作業系統接到分頁錯誤後,視為非法存取而使其停止。
練習這個領域 前往領域頁面

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

  1. 在將檔案對應到記憶體的機制(如mmap)中,關於讀取檔案內容時發生之事的說明,下列何者正確?
  2. 寫出小量資料時,與其逐位元組每次都呼叫系統呼叫,不如先暫存在使用者空間的緩衝區再一併寫出,速度會比較快,其主要理由為何?
  3. CPU設置特權模式(核心模式)與使用者模式,主要目的為何?
  4. 應用程式請求作業系統進行檔案讀寫等操作的機制稱為什麼?
  5. 上方RISC-V程式碼最後的ecall指令被執行時,會發生下列何事?

這個領域的比較