保護機制

邊界和型態檢查


邊界檢查

邊界檢查是用來確保所有對 segment 的存取動作,都在 segment 的有效範圍內。一個 segment 的有效範圍,由 segment descriptor 中的參數來決定(參考「記憶體管理」的「分段架構」)。決定有效範圍的方式如下: 任何試圖存取在有效範圍之外的動作,都會導致例外(exception)。所以,試圖在 LIMIT - 1 的地方讀取一個 word(16 bit),也會導致例外。
除了對一般的 segment 有邊界檢查之外,對 GDT 和 IDT 也會進行邊界檢查。在 GDTR 和 IDTR 中存放的邊界值可以避免存取到 GDT 和 IDT 外面的值。同樣的,在 LDTR 和工作暫存器(task register)中也有存放從 segment descriptor 中讀取的邊界值,所以對 LDT 和 TSS 也會進行邊界檢查。
 

型態檢查

型態檢查是用來避免對 segment(或 gate,gate 是一種系統 segment)進行不適當的動作,例如把資料 segment 當成程式執行。Segment 的型態由 S 旗標和型態位元決定(參考「記憶體管理」的「分段架構」)。
型態檢查有下面幾種(這裡只是舉一些例子):