作業系統與硬體
一般的作業系統不讓應用程式直接讀寫裝置暫存器,其主要理由為何?
- A因為在應用程式中寫不出讀寫暫存器的指令
- B因為若多個程式任意操作裝置,裝置的狀態可能遭到破壞,保護機制也可能被突破
- C因為裝置的暫存器只有在剛開機通電後才能讀寫
查看答案與解析
正確答案:B. 因為若多個程式任意操作裝置,裝置的狀態可能遭到破壞,保護機制也可能被突破
裝置暫存器所在的位址,在頁表中被設定為使用者模式無法存取,只有作業系統的驅動程式才能操作。這是因為若多個程式任意操作同一個裝置,過程中的狀態會混在一起而使裝置誤動作,也可能透過DMA改寫任意記憶體而突破保護。應用程式是透過系統呼叫,請作業系統代為操作。並不是寫不出指令,而是被保護機制所禁止。
- A. 指令是寫得出來的,只是被頁表的保護所禁止。
- B. 正確。這是為了避免裝置狀態遭破壞及保護被突破。
- C. 暫存器隨時都可以操作。