
第九章80x86/Pentium保护模式原理与结构
第九章 80x86/Pentium保护模式 原理与结构

本节主要内容80x86/Pentium处理器保护模式的基本概念:保护模式的主要数据结构:保护模式的寄存器模型;保护模式的存储管理和地址转换、保护模式的系统控制指令集、多任务和保护;保护模式的中断和异常操作,I/O敏感指令和I/O充允许位图
本节主要内容 ◼ 80x86/Pentium处理器保护模式的基本概念; ◼ 保护模式的主要数据结构; ◼ 保护模式的寄存器模型; ◼ 保护模式的存储管理和地址转换、保护模式的系统控制 指令集、多任务和保护; ◼ 保护模式的中断和异常操作,I/O敏感指令和I/O允许位 图

9.1保护模式概述保护模式是80286之后的CPU具有的内存管理模式,是80x86/Pentium最常用的工作模式,通常在开机或复位后先进入实模式完成初始化,然后便立即转到保护模式。保护模式提供了多任务环境中各种复杂功能以及对复杂存储器组织的管理机制。只有在保护模式下,处理器才能充分发挥其强大的功能和本性,因此,也称保护模式为本性模式。所谓保护,主要是指对存储器的保护,即防止对存储器资源进行未经授权或不正确的访问
9.1 保护模式概述 ▪ 保护模式是80286之后的CPU具有的内存管理模式,是 80x86/Pentium最常用的工作模式,通常在开机或复位后, 先进入实模式完成初始化,然后便立即转到保护模式。保 护模式提供了多任务环境中各种复杂功能以及对复杂存储 器组织的管理机制。 ▪ 只有在保护模式下,处理器才能充分发挥其强大的功能 和本性,因此,也称保护模式为本性模式。所谓保护,主 要是指对存储器的保护,即防止对存储器资源进行未经授 权或不正确的访问

概括而言,保护模式具有如下特点:1.在保护模式下,其寻址机制不同于实模式,需要通过一种称为“描述符表”的数据结构来实现对内存单元的访问。描述符表中的描述符含有存储器段的位置、长度、类型及访问权限等信息。2.与实模式下段寄存器的内容即为段的实际基地址不同,保护模式下的段寄存器作为索引“描述符表”的变址寄存器来使用,即由它指向“描述符表”的某一项,而实际的段基址则放在段描述符中,此时段寄存器的内容称为“段选择符”(也称段选择子)。可见,在保护模式下,微处理器访问存储器段时对段寄存器的解释与实模式并不相同
概括而言,保护模式具有如下特点: 1. 在保护模式下,其寻址机制不同于实模式,需要通过一 种称为“描述符表”的数据结构来实现对内存单元的访问。 描述符表中的描述符含有存储器段的位置、长度、类型及 访问权限等信息。 2. 与实模式下段寄存器的内容即为段的实际基地址不同, 保护模式下的段寄存器作为索引“描述符表”的变址寄存 器来使用,即由它指向“描述符表”的某一项,而实际的 段基址则放在段描述符中,此时段寄存器的内容称为“段 选择符”(也称段选择子)。可见,在保护模式下,微处理 器访问存储器段时对段寄存器的解释与实模式并不相同

3.在保护模式下,借助于存储器管理部件(MMU)的功能将磁盘等存储设备有效地映射到主存,使逻辑地址空间大大超过实际的物理地址空间。4.可以使用4级保护功能,以此实现程序与程序、用户程序与操作系统之间的隔离和保护,为多任务操作系统提供优化支持
3. 在保护模式下,借助于存储器管理部件(MMU)的功能 将磁盘等存储设备有效地映射到主存,使逻辑地址空间大 大超过实际的物理地址空间。 4. 可以使用4级保护功能,以此实现程序与程序、用户程 序与操作系统之间的隔离和保护,为多任务操作系统提供 优化支持

9.2保护模式的主要数据结构9.2.1段描述符在保护模式下,把有关一个段的信息即段基址、限长(段的字节数)、类型、访问权限和其他属性信息存放在8字节长的数据结构中,这种数据结构称为段描述符,简称描述符(Descriptor)。有两种类型的描述符:程序段描述符和系统段描述符程序段即应用程序段,也就是通常的代码段、数据段和堆栈段;而系统段包括任务状态段TSS(TaskStateSegment)和各种门,另外,局部描述符表也作为一种系统段。任务状态段是多任务系统中的一种特殊数据结构,它对应一个任务的各种信息
9.2 保护模式的主要数据结构 9.2.1 段描述符 ◼在保护模式下,把有关一个段的信息即段基址、限长(段 的字节数)、类型、访问权限和其他属性信息存放在8字节 长的数据结构中,这种数据结构称为段描述符,简称描述 符(Descriptor)。 ◼有两种类型的描述符:程序段描述符和系统段描述符。 ◼程序段即应用程序段,也就是通常的代码段、数据段和堆 栈段;而系统段包括任务状态段TSS(Task State Segment) 和各种门,另外,局部描述符表也作为一种系统段。任务 状态段是多任务系统中的一种特殊数据结构,它对应一个 任务的各种信息

9.2.2 描述符表为了查找和识别,把系统中的描述符按线性表的形式来组织即构成描述符表。描述符表的每一项就是一个描述符。描述符表由操作系统建立,并由操作系统维护和管理。有三种类型的描述符表:全局描述符表GDT(GlobalDescriptor Table)、局部描述符表LDT(LocalDescriptorTable)和中断描述符表IDT(Interrupt Descriptor Table)。全局描述符表GDT含有可供系统中所有任务使用的段描述符。局部描述符表LDT只含有与系统中某一个给定任务相关联的描述符。中断描述符表IDT含有指出各中断服务程序位置及相关属性信息的描述符
9.2.2 描述符表 ◼ 为了查找和识别,把系统中的描述符按线性表的形式来组织, 即构成描述符表。描述符表的每一项就是一个描述符。描述 符表由操作系统建立,并由操作系统维护和管理。 有三种类型的描述符表:全局描述符表GDT(Global Descriptor Table)、局部描述符表LDT(Local Descriptor Table)和中断描述符表IDT(Interrupt Descriptor Table)。 ◼ 全局描述符表GDT含有可供系统中所有任务使用的段描述 符。 ◼ 局部描述符表LDT只含有与系统中某一个给定任务相关联的 描述符。 ◼ 中断描述符表IDT含有指出各中断服务程序位置及相关属性 信息的描述符

采用描述符表带来的优点如下1.可以极大地扩展存储空间。2.可以实现虚拟存储。3.可以实现多任务隔离。由于描述符表是位于存储器中的,因此系统中分别用一个寄存器来指出其位置,并称该寄存器为描述符表寄存器共有三个描述符表寄存器,分别是全局描述符表寄存器GDTR、局部描述符表寄存器LDTR和中断描述符表寄存器IDTR
◼ 采用描述符表带来的优点如下: 1. 可以极大地扩展存储空间。 2. 可以实现虚拟存储。 3. 可以实现多任务隔离。 ◼ 由于描述符表是位于存储器中的,因此系统中分别用一个 寄存器来指出其位置,并称该寄存器为描述符表寄存器。 共有三个描述符表寄存器,分别是全局描述符表寄存器 GDTR、局部描述符表寄存器LDTR和中断描述符表寄存器 IDTR

9.2.3段选择符(或选择子)每个段描述符都有一个与之对应的段选择符。在保护模式下,16位段寄存器的内容即为段选择符。段选择符对GDT或LDT提供索引、全局/局部标志以及请求特权级信息。即用段选择符的高13位来选择描述符表中8192个描述符中的一个描述符(213=8192),用段选择符的右数第3位决定是从GDT中还是从LDT中选择描述符,用段选择符的最低两位指出请求特权级。注意,段选择符并不直接指向段,而是指向定义段的段描述符。段选择符的格式及功能如图9.1所示
9.2.3段选择符(或选择子) ◼ 每个段描述符都有一个与之对应的段选择符。在保护模 式下,16位段寄存器的内容即为段选择符。段选择符对 GDT或LDT提供索引、全局/局部标志以及请求特权级 信息。即用段选择符的高13位来选择描述符表中8192个 描述符中的一个描述符(213=8192),用段选择符的右数 第3位决定是从GDT中还是从LDT中选择描述符,用段 选择符的最低两位指出请求特权级。 ◼ 注意,段选择符并不直接指向段,而是指向定义段的段 描述符。段选择符的格式及功能如图9.1所示

150321段选择符索引TIRPL(16位).?段描述符(8字节段描述符(8字节)全局描述符表局部描述符表图9.1段选择符的格式及功能
15 3 2 1 0 全局描述符表 局部描述符表 段选择符 (16位) 图9.1 段选择符的格式及功能