1. 程式人生 > >操作系統學習(十一) 、頁級保護

操作系統學習(十一) 、頁級保護

之前 成對 enter 緩沖 目錄 處理 lB 限制 頁表

一、頁級保護方式

頁目錄和頁表表項中的讀寫標誌R/W和用戶/超級用戶標識U/S提供了分段機制保護屬性的一個子集。分頁機制只識別兩級權限。特權級0、1和2被歸類為超級用戶級,而特權級3被稱為普通用戶級。普通用戶級的頁面可以被標誌成只讀/可執行或可讀/可寫/可執行。超級用戶級的頁面 對於超級用戶來說總是可讀/可寫/可執行的,但普通用戶不可訪問。 對於分段機制,在最外層用戶級執行的程序只能訪問用戶級的頁面,但是在任何超級用戶層(0、1、2)執行的程序 不僅可以訪問用戶層的頁面,也可以訪問超級用戶層的頁面。與分段機制不同的是,在內層超級用戶級執行的程序對任何 頁面都具有可讀/可寫/可執行權限,包括那些在用戶級標註為只讀/可執行的頁面。

普通用戶和超級用戶對頁面的訪問限制

技術分享圖片

正如在整個80x86地址轉換機制中分頁機制是在分段機制之後實施一樣,頁級保護也是在分段機制 提供保護措施之後 發回作用 。首先,所有段級保護被檢查和測試。如果通過檢查,就會再進行頁級保護檢查。例如,僅當一個字節位於級別3執行的程序可訪問段中,並且處於標誌為用戶級頁面中時,這個內存中的字節才可被級別3上的程序訪問。僅當分段和分頁都允許寫時,才能對頁面執行 寫操作。如果一個段是讀/寫類型的段,但是地址 對應的相應頁面被標註為只讀/可執行,那麽還是不能對頁面執行寫操作。如果段的類型是只讀/可執行,那麽不管對應頁面被賦何種保護屬性,頁面始終是沒有寫權限的。可見分段和分頁保護機制就像電子線路中的串行線路,其中只要有一個開關沒閉合上線路都不會通。

類似地,一個頁面的保護屬性有頁目錄和頁表結構中表項的“串行”或“與操作”構成,頁表表項中的U/S標誌和R/W標誌應用於該表項映射的單個頁面。頁目錄項中的U/S和R/W標誌則對該目錄項所映射的所有頁面起作用。頁目錄和頁表的組合保護屬性有兩者屬性的“與”操作構成,保護措施非常嚴格。

頁目錄和頁表項對頁面的“串行”保護

技術分享圖片

二、修改頁表項的軟件問題

這裏提供了一些有關操作系統軟件修改頁表項內容所需遵守的規則。分頁轉換緩沖要求所有系統都須遵守這些規則。為了避免每次 內存應用都要訪問駐留內存的頁表,從而加快速度 ,最近使用的線性到物理地址的轉換信息被保存在處理器內的頁轉換高速緩沖中。處理器在訪問內存中的頁表之前會首先利用緩沖中的信息。只有當必要的轉換信息不在高速 緩沖中時,處理器才會搜尋內存中的頁目錄和頁表。頁轉換高速緩沖也叫轉換查找緩沖TLB(快表??)

80x86處理器並沒有維護頁轉換高速緩沖和頁表中數據的相關性,但是需要操作系統軟件來確保它們一致。即處理器並不知道什麽時候頁表被軟件修改過了。因此操作系統必須在改動過頁表之後刷新高速緩沖以確保兩者一致。通過簡單地重新加載寄存器CR3,我們就可以完成對高速緩沖的刷新操作。

有一種特殊情況,在這種情況下修改頁表項不需要刷新頁轉換高速緩沖。也即不存在頁面的表項被修改時,及時是把P標誌從0改成1來標註表項對頁轉換有效,也不需要刷新高速緩沖。因為無效的表項不會被存入高速緩沖中。所以在把一個頁面從磁盤調入內存以使頁面存在 時,我們不需要刷新頁轉換高速緩沖。

操作系統學習(十一) 、頁級保護