第2章 i386硬件与软件接口技术_第1页
第2章 i386硬件与软件接口技术_第2页
第2章 i386硬件与软件接口技术_第3页
第2章 i386硬件与软件接口技术_第4页
第2章 i386硬件与软件接口技术_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第2 2章章 i386i386硬件硬件 与软件接口技术与软件接口技术 本章研究的基本问题本章研究的基本问题 微型计算机硬件组成。微型计算机硬件组成。 实模式软件结构。实模式软件结构。 存储管理存储管理单元单元MMU。 保护模式下的保护保护模式下的保护。 任务切换机制任务切换机制。 2.1 2.1 微型计算机的硬件组成微型计算机的硬件组成 辅助存储器辅助存储器 输入部件输入部件输出部件输出部件 微处理器微处理器(CPUCPU) 主存储器主存储器 软盘软盘硬盘硬盘光盘光盘 I/OI/O接口(接口(DMADMA) 总线总线 图图2-1是微型计算机的基本组成框图是微型计算机的基本组成框图 图图2-1

2、 微型计算机的基本组成框图微型计算机的基本组成框图 2.1.12.1.1 微型计算机基本组成微型计算机基本组成 微型计算机是由微型计算机是由: 算逻部件、控制部件、存储部件、输入算逻部件、控制部件、存储部件、输入 部件和输出部件部件和输出部件组成。组成。 算逻部件和控制部件被集成在一块芯片算逻部件和控制部件被集成在一块芯片 中,称为中央处理器中,称为中央处理器CPU。 2.1.2 2.1.2 微微处理器分类处理器分类 微处理器可分为:可重编程的微处理器微处理器可分为:可重编程的微处理器 和嵌入式微处理器。和嵌入式微处理器。 嵌入式微处理器又称为单片微型计算机嵌入式微处理器又称为单片微型计算机

3、简称单片机,又叫微控制器。用于数字简称单片机,又叫微控制器。用于数字 信号处理、媒体处理和微控制器。信号处理、媒体处理和微控制器。 通用微型计算机中使用的微处理器归类通用微型计算机中使用的微处理器归类 为可重编程的微处理器,它能运行各种为可重编程的微处理器,它能运行各种 各样的应用软件;个人计算机以及文件各样的应用软件;个人计算机以及文件 服务器都是可重编程微型计算机。服务器都是可重编程微型计算机。 微型计算机总线结构微型计算机总线结构种类有:种类有: 2.1.42.1.4 微型计算机总线结构种类微型计算机总线结构种类 XT总线总线 AT(ISA)总线总线 MCA总线总线 EISA总线总线 P

4、CI总线总线 这里主要介绍这里主要介绍ISA总线结构和总线结构和PCI总线总线结构。结构。 ISAISA总线结构总线结构 主存储器主存储器 微处理器微处理器DMA控制器控制器I/O设备设备I/O设备设备 存储器总线存储器总线 图图2-2 ISA总线结构框图总线结构框图 I/O总线总线 PCIPCI总线结构总线结构 微处理器微处理器 PCIPCI桥路桥路主存储器主存储器CacheCache 磁盘控制器磁盘控制器图形控制器图形控制器ISAISA总线控制器总线控制器网卡网卡 扫描仪扫描仪打印机打印机CD-ROMCD-ROM PCIPCI总线总线 ISAISA总线总线 存储器总线存储器总线 图图2-3

5、 PCI总线结构总线结构 2.2 2.2 实模式软件结构实模式软件结构 硬件与软件接口技术是从软件观点去了解硬件与软件接口技术是从软件观点去了解 微型计算机系统的运行规则。所谓软件结微型计算机系统的运行规则。所谓软件结 构构是是指指: CPUCPU中各种寄存器的功能、用途以及限制中各种寄存器的功能、用途以及限制 存储单元如何组织存储单元如何组织 CPUCPU如何获得指令和数据。如何获得指令和数据。 输入输入/ /输出接口电路的电器特性和初始化输出接口电路的电器特性和初始化 过程。过程。 2.2.1 2.2.1 实模式软件实模式软件组织组织 图图2-4 i386微处理器在实模式下寄存器软件模型。

6、微处理器在实模式下寄存器软件模型。 主存主存 代码段代码段(CSCS) (0 - 64KB0 - 64KB) 数据段数据段(CSCS) (0 - 64KB0 - 64KB) 附加段附加段(ESES) (0 - 64KB0 - 64KB) 数据段数据段(FSFS) (0 - 64KB0 - 64KB) 数据段数据段(GSGS) (0 - 64KB0 - 64KB) 堆栈段堆栈段 (SSSS) (0 - 64KB0 - 64KB) 15 015 0 IP CS DS SS ES FS GS AX BX CX DX SP BP SI DI CR0 FFFFFH 输入输入/ /输出输出 接口接口 地址

7、空间地址空间 (6464K K) 2.2.2 2.2.2 实模式主存地址的产生实模式主存地址的产生 例例2.12.1程序中某指令的逻辑地址为:程序中某指令的逻辑地址为: (CSCS)2324H2324H,(,(IPIP)0025H0025H, 问它所指示的物理地址是多少?问它所指示的物理地址是多少? 图解:图解: 0010 0011 0010 0100 00000010 0011 0010 0100 0000 CSCS 0000 0000 0010 0101 0000 0000 0010 0101 逻辑地址逻辑地址 0010 0011 0010 0110 01010010 0011 0010

8、0110 0101 物理地址物理地址 IPIP CSCS 再加上再加上IPIP的内容的内容 即可得到主存的即可得到主存的 物理地址物理地址 先将先将CSCS的内容的内容左移左移4 4位位 解:解:先将先将CS的内容的内容左移左移4位位, 得得(CS)23240H,再将再将IP的内容与其的内容与其 相加,即可得到主存的物理地址:相加,即可得到主存的物理地址: 23240H+0025H 23265H 注:注:在实模式下,逻辑地址转换成物在实模式下,逻辑地址转换成物 理地址的过程是由理地址的过程是由CPU中的中的MMU单元单元 自动完成的。自动完成的。 2.2.3 2.2.3 实模式输入实模式输入/

9、 /输出地址空间输出地址空间 FFFFHFFFFH 01000100H H 0000FFHFFH 00000000H H 0 0页页 图图2-5 I/O地址空间地址空间 I/O地址空间又叫地址空间又叫I/O 接口接口,它是它是CPU与外设与外设 直接通信的地址。直接通信的地址。 存储器与存储器与I/O地址空间地址空间 是独立编址的。是独立编址的。 其地址范围是其地址范围是0000- FFFFH。 有专用的有专用的I/O指令:助指令:助 记符为记符为IN和和OUT。 图图2-5是是80386的的I/O地址空间。地址空间。 I/O地址空间的地址空间的0页是主板上页是主板上I/O芯片的接芯片的接 口

10、地址。共有口地址。共有256字节的寻址区。这些芯字节的寻址区。这些芯 片是片是定时器定时器/计数器、中断控制器、计数器、中断控制器、DMA 控制器、并行接口以及由嵌入式微处理控制器、并行接口以及由嵌入式微处理 器构成的键盘控制器器构成的键盘控制器。 其他的其他的I/O地址空间(地址空间(0100-FFFFH)用用 于微机于微机I/O扩展槽上的接口控制卡。接口扩展槽上的接口控制卡。接口 控制卡也叫适配器,例如图形适配器,控制卡也叫适配器,例如图形适配器, 声卡,网卡等等。声卡,网卡等等。 2.32.3 保护模式下存储管理单元保护模式下存储管理单元 i386在保护模式下可以提供支持虚拟存在保护模式

11、下可以提供支持虚拟存 储器储器管理管理,包括分段、分页、保护和多,包括分段、分页、保护和多 任务的硬件支持环境,任务的硬件支持环境,可可运行高级操作运行高级操作 系统系统。例如:。例如:WinNT,UNIX和和LINUX等。等。 保护模式下新增加的硬件有:保护模式下新增加的硬件有: v保护模式下的寄存器组织。保护模式下的寄存器组织。 v全局描述符表全局描述符表GDT。 v局部描述符表局部描述符表LDT。 v描述符表寄存器组织。描述符表寄存器组织。 保护模式下的寄存器组织保护模式下的寄存器组织 310 EAX EBX ECX EDX CR0 CR3 CR2 CR1 EIP 015 CS DS S

12、S ES FS GS 0 0 1515 GDTR IDTR LDTR TR 0 0 1515 16164747 ESP EBP ESI EDI EFLAGS 2.3.12.3.1 描述符寄存器描述符寄存器 保护模式寄存器组织中新增加的寄存器有:保护模式寄存器组织中新增加的寄存器有: 全局描述符表寄存器全局描述符表寄存器GDTR。 中断描述符表寄存器中断描述符表寄存器IDTR。 局部描述符表寄存器局部描述符表寄存器LDTR。 任务寄存器任务寄存器TR。 四个控制寄存器四个控制寄存器CR0- CR3。 指令指针指令指针EIP的长度扩展到的长度扩展到32位。位。 在保护模式下改变功能的寄存器:在保护

13、模式下改变功能的寄存器:CS、DS、 ES、SS、FS、GS。 全局描述符表机制全局描述符表机制 基址基址 限长限长 0151647 8192 8191 8190 全局描述符表全局描述符表 (GDTGDT) 3 2 1 主存主存 全局描述符表寄存器(全局描述符表寄存器(GDTR) 在全局描述符表(在全局描述符表(GDT)中存放有段描述符。中存放有段描述符。 每个描述符占每个描述符占8个字节,它提供主存段的个字节,它提供主存段的 起始地址、大小以及访问权限等信息。起始地址、大小以及访问权限等信息。 表的最大尺寸为表的最大尺寸为65536个字节,最多可存个字节,最多可存 放放8192个描述符。个描

14、述符。 可以用程序控制可以用程序控制GDT表的大小。表的大小。 在进入保护模式之前,须将在进入保护模式之前,须将GDT的基址和的基址和 限长用指令装入全局描述符表寄存器。限长用指令装入全局描述符表寄存器。 1. 1. 全局描述符表寄存器全局描述符表寄存器 2. 2. 中断描述符表寄存器中断描述符表寄存器 中断门描述符的功能是将控制传给中断服中断门描述符的功能是将控制传给中断服 务程序务程序 门描述符也是门描述符也是8字节长,它包含服务程序字节长,它包含服务程序 的属性和起始地址。的属性和起始地址。 在进入保护模式之前,在进入保护模式之前,IDT表的基址和限表的基址和限 长也要用指令装入中断描述

15、符表寄存器,长也要用指令装入中断描述符表寄存器, 切换到保护模式后不允许再改动切换到保护模式后不允许再改动。 中断描述符表中断描述符表IDT中,存放的是中断门描述符中,存放的是中断门描述符。 3. 3. 局部描述符表寄存器局部描述符表寄存器 局部描述符表中存放当前任务的代码段或局部描述符表中存放当前任务的代码段或 数据段描述符。数据段描述符。 每个任务都有自己的局部描述符表每个任务都有自己的局部描述符表LDT。 LDTR和和GDTR不同,它并不直接定义内不同,它并不直接定义内 存中的一个局部描述符表存中的一个局部描述符表,而是选择而是选择GDT 中描述符的一个索引,这个索引叫做选择中描述符的一

16、个索引,这个索引叫做选择 符。符。 当用指令装入当用指令装入LDTR选择符时,就激活了选择符时,就激活了 一个局部描述符表,过程如下:一个局部描述符表,过程如下: 第第1 1步,当用指令向步,当用指令向LDTRLDTR装入选择符后,装入选择符后, 第第2 2步,硬件就立即从全局描述符表中读出相对应步,硬件就立即从全局描述符表中读出相对应 的描述符,并装入局部描述符表高速缓存中。的描述符,并装入局部描述符表高速缓存中。 第第3 3步,高速缓存中的描述符确定了局部描述符的步,高速缓存中的描述符确定了局部描述符的 基址和大小。基址和大小。 LDTLDT描述符描述符 LDTLDT LDTRLDTR 0

17、15 基址基址 限长限长 0151647 GDTGDT 主存主存 LDT高速高速 缓存缓存 第第1 1步步 第第2 2步步 第第3 3步步 4. 4. 任务寄存器任务寄存器 任务寄存器任务寄存器TR用于保护模式下的任务切换用于保护模式下的任务切换 机制。机制。 TR中存放的是一个有中存放的是一个有16位索引值的选择符。位索引值的选择符。 TR中最初的选择符由软件装入,它开始第中最初的选择符由软件装入,它开始第1个任务,个任务, 以后由任务切换指令自动修改选择符。以后由任务切换指令自动修改选择符。 TR中的选择符用来指示中的选择符用来指示GDT中任务状态段描述符中任务状态段描述符 (TSS)的位

18、置。的位置。 TSS描述符定义了一个称为任务状态段的内存段,描述符定义了一个称为任务状态段的内存段, 它提供段的起始地址和段大小。它提供段的起始地址和段大小。 每个任务都有自己的每个任务都有自己的TSS,存放进程运行时所需要存放进程运行时所需要 的硬件上下文。的硬件上下文。激活一个新任务的过程如下:激活一个新任务的过程如下: 第第1 1步,一旦选择符装入任务寄存器步,一旦选择符装入任务寄存器TR, 第第2 2步,步,就立即从全局描述符表中读出相对应的任就立即从全局描述符表中读出相对应的任 务状态段描述符,接着装入任务描述符高速缓存中。务状态段描述符,接着装入任务描述符高速缓存中。 第第3 3步

19、,该描述符提供了任务状态段的起始地址和步,该描述符提供了任务状态段的起始地址和 段大小。段大小。 TSS TSS 描述符描述符 TSSTSS TRTR 基址基址 限长限长 0151647 GDTGDT 0 01515 任务描述任务描述 符缓存符缓存 主存主存 第第1 1步步 第第2 2步步 第第3 3步步 5. 5. 控制寄存器控制寄存器CR0-CR3 保护模式中有保护模式中有4个系统控制寄存器个系统控制寄存器CR0- CR3。 。 其组成结构框图如下:其组成结构框图如下: 0 0 3131 7 78 8 页目录基址寄存器页目录基址寄存器(PDBRPDBR) 保留保留 缺页线形地址缺页线形地址

20、 保留保留 PG PG 保留保留 R TS EM MP PER TS EM MP PECR0 CR1 CR2 CR3 其中:其中:PG该位置为逻辑该位置为逻辑1,表示允许分页,表示允许分页。 CR0的低的低5位是系统控制标志,这些位组成机器位是系统控制标志,这些位组成机器 状态字。状态字。 PE是保护模式允许位,开机或重启时是保护模式允许位,开机或重启时PE清零,清零, 允许实模式操作。若要进入保护模式,须通过允许实模式操作。若要进入保护模式,须通过 软件将软件将PE置为置为1。但。但PE位不能由软件清零回到位不能由软件清零回到 实模式,回到实模式的唯一办法是重启。实模式,回到实模式的唯一办法

21、是重启。 MP是数学协处理器存在位,为是数学协处理器存在位,为1表示系统中有表示系统中有 一个数学协处理器。一个数学协处理器。 EM位为位为1,表示系统要使用软件模拟器执行数,表示系统要使用软件模拟器执行数 学运算。学运算。 R位为位为1表示安装的是表示安装的是80387数学协处理器。数学协处理器。 TS是任务切换位,在是任务切换位,在i386切换任务时自动设置,切换任务时自动设置, 也可由软件清零。也可由软件清零。 6. 6. 段选择符寄存器段选择符寄存器 实模式下的段寄存器在保护模式下称为段实模式下的段寄存器在保护模式下称为段 选择符寄存器(选择符寄存器(CSCS、DSDS、SSSS、ES

22、ES、FSFS和和 GSGS)。 段寄存器的值不再是段基址而是段选择符。段寄存器的值不再是段基址而是段选择符。 选择符用来选择位于选择符用来选择位于GDT或或LDT中的一个段中的一个段 描述符,该描述符直接定义存储器段的基址、描述符,该描述符直接定义存储器段的基址、 大小和属性。大小和属性。 段选择符的格式如下:段选择符的格式如下: 索引索引 TI RPLTI RPL 012315 其中:其中: RPL位叫做请求特权级位,指明当前选择位叫做请求特权级位,指明当前选择 符的特权级。符的特权级。 TI位叫做表指示符,它指示访问位叫做表指示符,它指示访问GDT表还表还 是是LDT表。若表。若TI=0

23、,则访问全局描述符表则访问全局描述符表。 TI=1,则访问局部描述符表则访问局部描述符表。 索引位是全局或局部描述符表的索引,共索引位是全局或局部描述符表的索引,共 13位位。 段选择符段选择符 7. 7. 标志寄存器标志寄存器EFLAGS 在保护模式下标志寄存器扩展到在保护模式下标志寄存器扩展到3232位,它位,它 新增加了新增加了5 5位有定义的位。其中:位有定义的位。其中: IOPL是输入是输入/输出特权级,在输出特权级,在EFLAGS中占两位。若中占两位。若 IOPL=00,在最高特权级为在最高特权级为0级时才能允许执行级时才能允许执行I/O操操 作。作。 若若IOPL=11,则最低特

24、权级为则最低特权级为3时可执行时可执行I/O操操 作。作。 NT为嵌套任务标志,指明当前任务是否嵌套。当发为嵌套任务标志,指明当前任务是否嵌套。当发 生任务嵌套时该位由硬件自动设置,用软件清零。生任务嵌套时该位由硬件自动设置,用软件清零。 RF为恢复标志。为恢复标志。 VM为虚拟为虚拟8086模式标志。模式标志。 2.3.22.3.2 描述符描述符 图图2-7是段描述是段描述 符格式。符格式。 每个描述符由每个描述符由8 个字节组成。个字节组成。 段描述符中含有段描述符中含有 段基址、段限长段基址、段限长 和访问权限和访问权限以及以及 少量其他信息。少量其他信息。 描述符属性字节描述符属性字节

25、 描述符访问权限字节描述符访问权限字节 段基址段基址31-2431-24 G X 0 G X 0 AVLAVL 段限长段限长19-1619-16 P DPL S P DPL S 类型类型 A A 段基址段基址16-2316-23 段基址段基址15-8 15-8 段基址段基址7-0 7-0 段限长段限长15-8 15-8 段限长段限长7-0 7-0 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 字节字节 图图2-7 2-7 段描述符格式段描述符格式 1表示该段为表示该段为32位代码段位代码段 0表示该段为表示该段为16位代码段位代码段 1段长度以页(段长度以页(4K)为单位分配

26、。为单位分配。 0段长度以字节为单位分配。段长度以字节为单位分配。 G X 0 AVL 段限长段限长19-16 描述符属性字节是描述符的第描述符属性字节是描述符的第6个字节,定个字节,定 义如下:义如下: 描述符访问权限字节是描述符的第描述符访问权限字节是描述符的第5个字节,个字节, 定义如下:定义如下: P DPL S 1/0 C/EDR/W A 0 0: :未访问过未访问过 段类型和保护段类型和保护 1 1:访问过:访问过 0 0:系统段描述符或门描述符:系统段描述符或门描述符 1 1:代码段或数据段描述符:代码段或数据段描述符 描述符特权级:描述符特权级:0-30-3级级 0 0:段在内

27、存中:段在内存中 1 1:段不在内存中:段不在内存中 2.3.3 2.3.3 虚拟地址和虚拟地址空间虚拟地址和虚拟地址空间 虚拟存储器:虚拟存储器:在计算机系统中,把由主存在计算机系统中,把由主存 和部分辅存组成的和部分辅存组成的、在在MMU单元和操作系单元和操作系 统软件统软件(请求调页请求调页)管理下组成的面向用户的管理下组成的面向用户的 统一存储器系统称为虚拟存储器。统一存储器系统称为虚拟存储器。 虚拟存储器的整个地址空间称为虚拟地址虚拟存储器的整个地址空间称为虚拟地址 空间。空间。 一个处理器的虚拟地址空间一个处理器的虚拟地址空间尺寸尺寸是由机器是由机器 指令系统体系结构确定的。指令系

28、统体系结构确定的。 处理器的物理地址空间是由芯片地址引处理器的物理地址空间是由芯片地址引 脚数来确定。脚数来确定。 i386指令系统使用的虚拟地址指针格式指令系统使用的虚拟地址指针格式 如下:如下: 0 0 313132324747 偏移量偏移量选择符选择符虚拟地址格式为:虚拟地址格式为: INDEXINDEX(索引)索引)TI RPLTI RPL 0 015151 12 2 选择符的格式为:选择符的格式为: 2.3.42.3.4 虚虚实实地址地址转换转换 通过段选择符找到该段的段描述符,从通过段选择符找到该段的段描述符,从 描述符中读出描述符中读出32位线性地址。位线性地址。 若若CR0中的

29、中的PG位为位为0,则系统,则系统禁止分页禁止分页, 因此因此32位线性地址与位线性地址与32位偏移量相加,位偏移量相加, 就得到主存的物理地址。就得到主存的物理地址。 若若CR0中的中的PG位为位为1,则系统允许分页,则系统允许分页, 32位线性地址需要再进行位线性地址需要再进行页转换页转换后才能后才能 得到主存的物理地址。得到主存的物理地址。 选择符选择符偏移量偏移量 段转换段转换 目录目录 页页 偏移量偏移量 PG=0 ?PG=0 ? 页转换页转换 若若PGPG为为0 0,则禁止分页,则禁止分页 若若PGPG为为1 1,则允许分页,则允许分页 0 03131 0 015150 03131

30、 主存物理地址主存物理地址 0 03131 线性地址线性地址 虚实地址转换示意图虚实地址转换示意图 2.42.4 保护模式保护模式和保护和保护 保护是指在多道程序设计中,主存中同保护是指在多道程序设计中,主存中同 时驻留时驻留了了多个任务,为了避免各个任务多个任务,为了避免各个任务 的相互干扰,需要硬件与软件协作对各的相互干扰,需要硬件与软件协作对各 个作业进行保护,以免各个任务之间受个作业进行保护,以免各个任务之间受 到恶意攻击而到恶意攻击而使系统使系统陷入瘫痪。陷入瘫痪。 i386工作在保护模式下可以支持多道程序工作在保护模式下可以支持多道程序 设计,即对同时存在的多任务进行保护。设计,即

31、对同时存在的多任务进行保护。 2.4.12.4.1 多任务与分时系统多任务与分时系统 多任务与分时系统的概念见第多任务与分时系统的概念见第1章。章。 2.4.22.4.2 保护环保护环 i386设置了设置了4种保护级别,既种保护级别,既0、1、2和和3 级。级。 它可以形象的用一个它可以形象的用一个4层的同心圆来层的同心圆来 表示,如图表示,如图2-3所示:所示: 3 3级级 应用程序应用程序 2 2级级 共享库共享库 1 1级级 系统调用系统调用 内核内核 0 0级级 图图2-3 2-3 保护环保护环 i386规定:规定:处于某一处于某一 保护环的任务,可保护环的任务,可 以使用它内圈的更以

32、使用它内圈的更 高保护级别的程序,高保护级别的程序, 但绝对不允许修改但绝对不允许修改 其内容。以达到保其内容。以达到保 护的目的。护的目的。 2.4.32.4.3 保护机制保护机制 在硬件支持下,通过软件对存储器访问在硬件支持下,通过软件对存储器访问 进行检查和限制的防护措施称为进行检查和限制的防护措施称为保护保护。 i386的保护机制是:存储器的分段、分的保护机制是:存储器的分段、分 页和描述符机制。页和描述符机制。 在分段模型中,每个任务存放在不同的在分段模型中,每个任务存放在不同的 存储器段中,其属性由该段描述符的访存储器段中,其属性由该段描述符的访 问权限和限长域定义。问权限和限长域

33、定义。 段段描述符对任务可以访问的局部和全局描述符对任务可以访问的局部和全局 资源做了限制,从而把各个任务隔离开。资源做了限制,从而把各个任务隔离开。 2.4.42.4.4 保护性检查保护性检查 保护性检查是在访问存储器的过程中由保护性检查是在访问存储器的过程中由 MMU硬件完成的。硬件完成的。 MMU硬件对相应的选择符、描述符以及硬件对相应的选择符、描述符以及 页目录和页表项执行一系列检查。页目录和页表项执行一系列检查。 检查项目包括:类型检查、限长检查、检查项目包括:类型检查、限长检查、 地址域的限制、任务入口点的限制以及地址域的限制、任务入口点的限制以及 指令集的限制等。指令集的限制等。

34、 类型检查:检查存放段选择符的段寄存类型检查:检查存放段选择符的段寄存 器与要访问的段描述符类型是否一致。器与要访问的段描述符类型是否一致。 v例如:例如:CS寄存器是代码段选择符寄存器,寄存器是代码段选择符寄存器, 因此它只能访问因此它只能访问GDT或或LDT中的代码段描中的代码段描 述符,而不能访问数据段描述符。述符,而不能访问数据段描述符。 限长检查:检查程序提供的虚拟地址是否在限长检查:检查程序提供的虚拟地址是否在 段限长之内,以确保该段的访问没有越界。段限长之内,以确保该段的访问没有越界。 指令集的限制:指令集的限制:i386中有中有16条系统控制指令条系统控制指令 只能在保护级别为

35、只能在保护级别为0的代码段中执行。的代码段中执行。 输入输入/ /输出限制:输出限制:I/O驱动程序处于驱动程序处于0保护级保护级 别。别。i386规定:规定:I/O指令只能在小于或等于指令只能在小于或等于 IOPL(EFLAGS中的中的I/O特权级标志位)所特权级标志位)所 代表的特权级上执行。代表的特权级上执行。 v例如:假如例如:假如IOPL=0,则保护级为则保护级为3的应用的应用 程序需要执行程序需要执行I/O操作的话,它只能通过共操作的话,它只能通过共 享库、系统调用或内核来代为执行。享库、系统调用或内核来代为执行。 局部描述符表的限制:每个任务都有自局部描述符表的限制:每个任务都有

36、自 己的局部描述符表,其中的描述符只能己的局部描述符表,其中的描述符只能 被自己引用而拒绝其他任务使用。这样被自己引用而拒绝其他任务使用。这样 就将该任务同其他任务隔离开来。就将该任务同其他任务隔离开来。 过程入口点的限制:如果程序需要执行过程入口点的限制:如果程序需要执行 越级调用越级调用(使用使用CALL指令指令),它的操作步,它的操作步 骤是:骤是: vCALL指令的操作数字段应该是一个选指令的操作数字段应该是一个选 择符,该选择符指向调用门的门描述符。择符,该选择符指向调用门的门描述符。 v再由该门描述符中的目标选择符定位被再由该门描述符中的目标选择符定位被 调用代码段的段描述符。调用

37、代码段的段描述符。 v该段描述符中的该段描述符中的32位基址就是调用过程位基址就是调用过程 的首址,而门描述符中的偏移量将定位的首址,而门描述符中的偏移量将定位 代码段中的入口点。代码段中的入口点。 用上述方法隔离和保护不同级别的代码用上述方法隔离和保护不同级别的代码/ / 数据段。数据段。 2.4.52.4.5 越级访问代码段和数据段越级访问代码段和数据段 i386规定,规定,若要从若要从低特权级越级访问高低特权级越级访问高 特权级代码段中的代码和数据,特权级代码段中的代码和数据,则要使则要使 用用门描述符。门描述符的格式如门描述符。门描述符的格式如图图2-14。 有有4 4种类型的门描述符

38、:种类型的门描述符: 调用门:实现任务从当前特权级到更高特权级调用门:实现任务从当前特权级到更高特权级 的间接转移。的间接转移。 任务门:实现将控制传给请求特权级比当前特任务门:实现将控制传给请求特权级比当前特 权级高的任务的方法。权级高的任务的方法。 中断门和陷阱门:实现将控制转给当前任务的中断门和陷阱门:实现将控制转给当前任务的 高特权级的其他服务程序。高特权级的其他服务程序。 偏移量偏移量31-1631-16 选择符选择符31-1631-16 P DPL 0 XXXX 000 P DPL 0 XXXX 000 双字计数双字计数 偏移量偏移量 0 0 151516163131 0 0 4

39、4 3 3 7 7 P DPL 0 X X X X 0 O 0 P DPL 0 X X X X 0 O 0 双字计数双字计数 01000100:调用门:调用门 01010101:任务门:任务门 01100110:中断门:中断门 01110111:陷阱门:陷阱门 描述符特权级描述符特权级 0 0:描述符无效:描述符无效 1 1:描述符有效:描述符有效 只用在调用门中只用在调用门中 图图2-14 2-14 门描述符格式门描述符格式 门门描述符描述符 2.5 2.5 任务切换机制任务切换机制 i386的的保护模式提供了任务切换机制,保护模式提供了任务切换机制, 可实现多任务的可实现多任务的运运行环境

40、。行环境。 任务任务切换机制是由切换机制是由MMU和操作系统的调和操作系统的调 度程序共同完成的。度程序共同完成的。 完成任务切换是由任务寄存器完成任务切换是由任务寄存器TR,任务任务 状态段描述符,任务门描述符和任务状状态段描述符,任务门描述符和任务状 态段表等组成。态段表等组成。 软件方面应该使用远转移或调用指令。软件方面应该使用远转移或调用指令。 任务切换过程任务切换过程 i386处理器处理器为每个任务为每个任务分配分配一个选择符,称为一个选择符,称为 任务状态选择符。任务状态选择符。 执行任务切换时,该选择符由硬件自动装入任执行任务切换时,该选择符由硬件自动装入任 务寄存器务寄存器TR

41、,以以指示任务状态段描述符在全指示任务状态段描述符在全 局描述符表中的位置。局描述符表中的位置。 任务状态段描述符提供了任务状态段表任务状态段描述符提供了任务状态段表TTS的的 基址和限长以及访问权限等信息。基址和限长以及访问权限等信息。 任务切换过程如图任务切换过程如图2-162-16所示:所示: CALLCALL 任务状态选择符任务状态选择符 任务状态选择符任务状态选择符 TRTR 0 01515 主存主存 GDTGDTTTSTTS段描述符段描述符 基址基址限长限长 0 06464 返回链接返回链接 ESPESP0 0 SSSS0 0 ESPESP1 1 SSSS1 1 EIPEIP EFLAGSEFLAGS CSCS 任务状态段任务状态段 TTSTTS 任务状态任务状态 段描述符段描述符 缓存缓存 图图2-16任务任务切换机制切换机制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论