## 7.4 任務門描述符(Task Gate Descriptor)
一個任務門描述符提供了一個間接的、有保護性的對一個TSS的的訪問方法。圖7-4顯示了任務門的格式。
門描述符的選擇子(SELECTOR)字段必須要指向一個TSS描述符。在這個選擇子內的RPL字段是不被處理器使用的。
門描述符的DPL字段用于控制可以訪問該描述符來導致任務切換的特權級。只有當選擇子的RPL和子程序的CPL的最大值在數值上小于或等于描述符的DPL,這個特性防止了非受信任代碼引起任務切換(注意,當使用任務門時,目標TSS描述符的DPL字段不用來做特權級檢測。)
和一個可以訪問一個TSS描述符的子程序一樣,一個有權訪問門描述符的子程序就可以引起任務切換。80386使用門描述符來達到以下三個需要:
1、? 使一個任務只有一個忙位。因為忙位(busy-bit)存儲在TSS描述符中,每一個任務吸能有一個這樣的描述符。也可能有這樣的情況,幾個任務同時選中同一個TSS描述符。
2、? 提供可選的其它方式來訪問任務。任務門可以滿足這種要求,因為他們可以存放在LDT中,還可以和要訪問的TSS有一個不同的DPL字段。一個不能訪問GDT中的TSS的程序,也可以通過任務門來通過自已的LDT訪問該任務。有了門描述符,系統軟件可以把任務切換只限制一定的權限下。
3、? 為了讓中斷和異常可以引發任務切換。任務門可以存放在IDT中,從而允許中斷或異常引起任務切換。當IDT中的項包含一個門描述符時,80386處理器切換到指定的任務。以便系統中的所有任務和中斷任務分離開來。
圖7-5顯示了在LDT和IDT中指向同一個任務的門描述符。


- 第一章 80386介紹
- 1.1 該手冊的組織結構
- 1.2 其他文獻
- 第二章 編程基本模型
- 2.1 存儲器組織和段
- 2.2 數據類型
- 2.3 寄存器
- 2.4 指令格式
- 2.5 操作數選擇
- 2.6 中斷和異常
- 第4章 系統寄存器
- 4.1 系統寄存器 (System Registers)
- 4.2 系統指令 (System Instructions)
- 第五章 內存管理
- 5.1 分段地址轉換(Segment Translation)
- 5.2 分頁地址轉換(Page Translation)
- 5.3 混合分段和分頁地址轉換(Combining Segment and Page Translation)
- 第六章 內存管理
- 6.1 為什么要保護(Why Protection?)
- 6.2 80386保護機制概述(Overview of 80386 Protection Mechnaisms)
- 6.3 段級保護(Segment-Level Protection)
- 6.4 頁級保護(Page-Level Protection)
- 6.5 混合分頁和分段保護(Combining Page and Segment Protection)
- 第7章 多任務(Multitasking)
- 8.1 I/O 尋址(I/O Addressing)
- 7.1 任務狀態段(Task State Segment)
- 7.3 任務寄存器(Task Register)
- 7.4 任務門描述符(Task Gate Descriptor)
- 7.5 任務切換(Task Switching)
- 7.6 任務鏈(Task Linking)
- 7.7 任務尋址空間(Task Address Space)
- 第8章 輸入 輸出
- 8.2 I/O 指令(I/O Instructions)
- 8.3 保護和I/O(Protection and I/O)
- 第9章 異常和中斷(Exceptions and Interrupts)
- 9.1 識別中斷(Identifying Interrupts)
- 9.2 允許和禁止中斷(Enabling and Disabling Interrupts)
- 9.3 同時發生的中斷和異常的優先級(Priority Among Simultaneous Interrupts and Exceptions)
- 9.4 中斷描述符表(Interrupt Descriptor Table)
- 9.5 IDT 描述符(IDT Descriptors)
- 9.6 中斷任務和中斷子程序(Interrupt Tasks and Interrupt Procedures)
- 9.7 出錯碼(Error Code)
- 9.8 異常條件(Exception Conditions)
- 9.9 異常總結(Exception Summary)
- 9.10 出錯碼總結(Error Code Summary)
- 第10章 初始化(Initialization)
- 10.1 復位后處理器狀態(Processor State After Reset)
- 10.2 實模式初始化(Software Initialization for Real-Address Mode)
- 10.3 切換到保護模式(Switching to Protected Mode)
- 10.4 保護模式初始化(Software Initialization for Protected Mode)
- 10.5 初始化示例
- 10.6 TLB測試
- 第十四章 80386實地址模式
- 14.1 物理地址構成
- 14.2 寄存器和指令
- 14.3 中斷和異常處理
- 14.4 進入和離開實地址模式
- 14.6 實地址模式異常
- 14.7 與8086的不同
- 14.8 與80286實地址模式的不同