作業系統與硬體

在具有多個核心的系統中,作業系統改寫某個分頁的頁表項目而取消其對應時,必須進行的處理為下列何者?

  1. A只要清除自己核心的TLB,其他核心就會自動使用正確的轉換
  2. B進行確實清除其他核心TLB中舊轉換的處理
  3. C什麼都不用做,改寫頁表的同時所有TLB就會更新
查看答案與解析

正確答案:B. 進行確實清除其他核心TLB中舊轉換的處理

在許多CPU中,TLB不像快取那樣由硬體維持一致性,其他核心的TLB裡可能還留著改寫頁表前的舊轉換。若置之不理,其他核心就可能存取到本應已取消的分頁。因此作業系統會對其他核心發送處理器間中斷,或使用將無效化傳達給所有核心的指令,讓它們清除舊項目,並等待完成。這稱為TLB shootdown,核心數越多越耗時。

  • A. 其他核心的TLB中可能仍留有舊的轉換。
  • B. 正確。必須從其他核心的TLB中也清除舊轉換。
  • C. 在許多CPU中,TLB的一致性不會自動維持。
練習這個領域 前往領域頁面

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

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

這個領域的比較