作業系統與硬體
當程式存取作業系統未配置的位址時,一般會發生下列何事?
- ACPU自動為該位址增設新的實體記憶體
- B存取被忽略,程式若無其事地繼續執行下一個指令
- C發生分頁錯誤,作業系統判斷為非法存取而讓程式停止
查看答案與解析
正確答案:C. 發生分頁錯誤,作業系統判斷為非法存取而讓程式停止
存取未配置的位址時,由於頁表中沒有有效的項目,會發生分頁錯誤。作業系統會檢查該位址是否在行程被允許的範圍內,若是哪裡都沒有配置的非法存取,就會通知程式發生異常並使其停止(也就是所謂的區段錯誤,segmentation fault)。如此可避免錯誤的指標破壞其他行程或作業系統的記憶體。實體記憶體不會自動增加,存取也不會被默默忽略。
- A. 實體記憶體不會自動增加。
- B. 若被默默忽略,就會無法察覺錯誤。
- C. 正確。作業系統接到分頁錯誤後,視為非法存取而使其停止。