## 6.4 页级保护(Page-Level Protection)
两种保护机制和页级保护相关:
1、 可寻址范围约束。
2、 类型检查。
### 6.4.1 页表项保存保护参数(Page-Table Entries Hold Protection Parameters)
图6-10高亮显示了控制访问的页表项和页目录项的字段。
![](https://box.kancloud.cn/2016-03-06_56dbfdae027fd.gif)
6.4.1.1 可寻址范围约束(Restricting Addressable Domain)
页面的特权级的概念是通过以下两级来实现的:
1、 超级用户级(Supervisor level (U/S=0))—— 用于关连操作系统和其它一些系统软件和数据。
2、 用户级(U/S=1)—— 用于应用程序子程序和数据。
当前级(U或者S)和CPL相关的。如果CPL是0,1或2,系统在特权级执行。如果CPL是3,处理器在用户级执行。
当系统在超级用户(特权级)模式执行,所有页面可寻址,但是,当处理器在用户模执行时,只有用户的页面可寻址。
6.4.1.2 类型检查(Type Checking)
在分页地址转换时,以下两种类型被定义:
1、 只读访问(R/W=0)(Read-Only Access)
2、 可读写访问(R/w=1)(Read/Write Access)
当处理器在特权模式下执行时,所有页面都是可读可写的。哪处理器在用户模式下执行时,只有用户页面而且被标识为可写的页面才能写,被标识为只读的页面则只允许读取。所有属于超级用户的页面都不可访问,无论读还是写。
### 6.4.2 混合两级页表保护
对于任何一个页面,它的页目录项可能和页表项的保护属性不同。80386综合计算两级页表的保护参数来保护一个页面。表6-5显示了这种保护。
### 6.4.3 覆盖页保护(Overrides to Page Protection)
一些访问会使用特权级0来当做访问发出者做检测,即使CPL=3时。
1、对LDT,GDT、TSS、IDT的访问。
3、 通过跨特权级的CALL/INT来访问内层堆栈。
![](https://box.kancloud.cn/2016-03-06_56dbfdae13033.gif)
- 第一章 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实地址模式的不同