1. 程式人生 > >操作系統學習(七) 、保護機制概述

操作系統學習(七) 、保護機制概述

長度 發的 之間 軟件開發 軟件 內存空間 工作 尋找 超級用戶

保護機制是可靠運行多任務環境所必須的。它可以用於保護各個任務免受互相之間的幹擾。在軟件開發的任何階段都可以使用段級和頁級保護來協助尋找和檢測設計問題和錯誤。當程序對錯誤內存空間執行了一次非期望的引用,保護機制可以阻止這種操作並且報告此類事件。

保護機制可以被用於分段和分頁機制。處理器寄存器的2個比特位定義了當前執行程序的特權級,稱為當前特權級CPL。在分段和分頁地址轉換過程中,處理器將對CPL進行驗證。

  • 通過設置控制寄存器CR0的PE標誌(位0)可以讓處理器工作在保護模式下,從而也就開啟了分段保護機制。一旦進入保護模式,處理器並不存在明確的標誌來停止或啟用保護機制。不過基於特權級的保護機制部分可以通過把所有段選擇符和段描述符的特權級都設置為0級來隱含地關閉。這種處理方式可以在段之間禁止特權級保護壁壘,但是其他段長度和段類型檢查保護機制任然起作用。

  • 設置控制寄存器CR0的PG標誌(位31)可以開啟分頁機制,同時也開啟了分頁保護機制。同樣,處理器中也沒有相關的標誌用來開啟條件下禁用或開啟頁級保護機制。但是通過設置每個頁目錄項和頁表項的讀/寫標誌和用戶/超級用戶標識,我們可以禁止頁保護機制。設置這兩個標誌可以使得每個頁面都可以被任意讀寫,因此實際上也就禁用了頁級保護。

對於分段級保護機制,處理器使用段寄存器中選擇符(RPL和CPL)和段描述符中各個字段執行保護驗證。對於分頁機制,則主要利用頁目錄和頁表項中的R/W和U/S標誌來實現保護操作。

操作系統學習(七) 、保護機制概述