作業系統與硬體
在具有多個核心的系統中,作業系統改寫某個分頁的頁表項目而取消其對應時,必須進行的處理為下列何者?
- A只要清除自己核心的TLB,其他核心就會自動使用正確的轉換
- B進行確實清除其他核心TLB中舊轉換的處理
- C什麼都不用做,改寫頁表的同時所有TLB就會更新
查看答案與解析
正確答案:B. 進行確實清除其他核心TLB中舊轉換的處理
在許多CPU中,TLB不像快取那樣由硬體維持一致性,其他核心的TLB裡可能還留著改寫頁表前的舊轉換。若置之不理,其他核心就可能存取到本應已取消的分頁。因此作業系統會對其他核心發送處理器間中斷,或使用將無效化傳達給所有核心的指令,讓它們清除舊項目,並等待完成。這稱為TLB shootdown,核心數越多越耗時。
- A. 其他核心的TLB中可能仍留有舊的轉換。
- B. 正確。必須從其他核心的TLB中也清除舊轉換。
- C. 在許多CPU中,TLB的一致性不會自動維持。