作業系統與硬體

一般的作業系統不讓應用程式直接讀寫裝置暫存器,其主要理由為何?

  1. A因為在應用程式中寫不出讀寫暫存器的指令
  2. B因為若多個程式任意操作裝置,裝置的狀態可能遭到破壞,保護機制也可能被突破
  3. C因為裝置的暫存器只有在剛開機通電後才能讀寫
查看答案與解析

正確答案:B. 因為若多個程式任意操作裝置,裝置的狀態可能遭到破壞,保護機制也可能被突破

裝置暫存器所在的位址,在頁表中被設定為使用者模式無法存取,只有作業系統的驅動程式才能操作。這是因為若多個程式任意操作同一個裝置,過程中的狀態會混在一起而使裝置誤動作,也可能透過DMA改寫任意記憶體而突破保護。應用程式是透過系統呼叫,請作業系統代為操作。並不是寫不出指令,而是被保護機制所禁止。

  • A. 指令是寫得出來的,只是被頁表的保護所禁止。
  • B. 正確。這是為了避免裝置狀態遭破壞及保護被突破。
  • C. 暫存器隨時都可以操作。
練習這個領域 前往領域頁面

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

  1. 在一台電腦上,讓多個作業系統各自作為獨立的虛擬機器同時運作的軟體稱為什麼?
  2. 關於虛擬機器監視器(hypervisor)類型的說明,下列何者正確?
  3. 在使用巢狀分頁(nested paging,兩層位址轉換)的虛擬化中,關於硬體進行位址轉換的說明,下列何者正確?
  4. 在客體與主機都使用4層頁表的巢狀分頁中,發生TLB未命中時,最壞情況下需要幾次記憶體存取?
  5. 當虛擬機器的作業系統執行需要特權的指令時,處理會轉移到虛擬機器監視器,由其代為重現該指令效果的方式,稱為什麼?

這個領域的比較