保护模式及其编程.ppt
《保护模式及其编程.ppt》由会员分享,可在线阅读,更多相关《保护模式及其编程.ppt(35页珍藏版)》请在三一办公上搜索。
1、第十四章 保护模式及其编程,保护虚拟地址模式(简称保护模式),32位的寄存器可用、可寻址4GB的物理地址空间逻辑物理地址转换过程包含两级:先分段再分页。(注:分页过程是可选的)为实现虚拟存储器提供了硬件支持支持多任务,能够快速地进行任务切换和保护任务环境包含4个特权级和完善的特权检查机制,对所有的内存和I/O访问操作都进行严格检查,能够屏蔽普通程序对系统、硬件和中断等资源的直接访问。不同的特权级下有不同的指令系统设置CR0的PE位为1可使系统进入保护模式,14.1保护模式下的的存贮管理,设置CR0的PG位可以开启(1)和关闭(1)分页机制保护模式中的逻辑地址(虚拟地址)由16位的选择子和32位
2、的偏移量两部分组成。选择子放在段地址寄存器中,用来指定一个段描述符,选择子,偏移量,分段机制,线性地址,物理地址,分页机制,虚拟地址,15 0,31 0,分段机制实现了虚拟地址到线性地址的转换程序员在编写程序时,会定义数据段、代码段等多个逻辑段,分段管理机制就是用于管理这些段,并将二维的虚拟地址转化成一维的线性地址。段由 段描述符 来定义,其中存放了关于段的三个参数:(1)段基址(Base,32位)(2)段界限(Limit,20位)(3)段的属性(读/写/执行,特权级等)(12位)段描述符存放在描述符表中,选择子就是用来指定某个特定描述符的关于描述符表的索引,14.1.1分段管理,段选择子与存
3、储段描述符,选择子的格式:(一般放在段寄存器中),描述符的格式:,A,描述符表,描述符可用于描述多种对象:存储段、任务状态段、调用门、任务门、中断门、陷阱门和LDT。为了便于组织管理,80386把描述符组织成线性表。由描述符组成的线性表称为描述符表。每个描述符表本身形成一个特殊的内存数据段。这样的特殊数据段最多包含8192个描述符。该段由操作系统维护、并由处理器中的存储管理单元硬件(MMU)访问。在80386中有三种类型的描述符表:全局描述符表GDT、局部描述符表LDT 和 中断描述符表IDT。在整个系统中,全局描述符表GDT和中断描述符表IDT只有一张,局部描述符表可以有若干张,每个任务有一
4、张。,GDT和LDT,GDT含有每一个任务都可能访问的描述符,通常包含操作系统所使用的代码段、数据段和堆栈段的描述符,也包含多种特殊描述符,如LDT描述符。在任务切换时,并不切换GDT。通过GDT可以使各任务都需要的段能够被共享。每个任务的局部描述符表LDT含有该任务自己的代码段、数据段和堆栈段的描述符,也包含该任务所使用的一些门描述符,如任务门和调用门描述符等。随着任务的切换,系统当前的局部描述符表LDT也随之切换。通过LDT可以使各个任务私有的各个段与其它任务相隔离,从而达到受保护的目的。选择子的TI位为0表示它所访问的描述符在GDT中,为1表示描述符在LDT中。,GDT和LDT,GDTR
5、、LDTR,GDT和IDT的基地址分别存放在GDTR和IDTR中,而各个LDT的基地址存放在GDT的LDT描述符中。LDTR是当前所使用的LDT描述符的选择子。GDTR和IDTR长48位,高32位为基地址,低16位为界限。LDTR类似于段寄存器,存储的是当前所使用的LDT表的LDT描述符的选择子。任务状态段寄存器TR包含指示描述当前任务的任务状态段的描述符选择子,从而规定了当前任务的状态段。,虚拟线性地址转换过程,基本过程:通过虚拟地址中的选择子在描述符表中找到相应的段描述符,取出其中的32位段基地址,该基地址加上虚拟地址中偏移量就形成了线性地址。当然,在相加之前要根据描述符中的Limit字段
6、判断一下该偏移量是否越界。,选择子,偏移地址,段基址,段界限,段属性,+,虚拟地址,从GDT或LDT中得到的段描述符,线性地址,例:MOV EAX,DS:EDX设描述符表的基地址存放在GDTR中,则转换结果为:(GDTRDS8).Base+EDX注:A表示取A所指向的内存单元的内容,分页机制在分段机制之后进行操作,以完成线性地址到物理地址的转换过程。保护模式下,CR0中的PG位控制分页管理机制是否生效。分页机制把线性地址空间和物理地址空间分别划分为大小相同的块。这样的块称之为页。通过在线性地址空间的页与物理地址空间的页之间建立的映射,分页机制实现线性地址到物理地址的转换。在80386中,页的大
7、小固定为4K字节,每一页的边界地址必须是4K的倍数。因此,4G大小的地址空间被划分为1M个页,每个页的起始地址用20位记录。线性地址的低12位经过分页机制直接作为物理地址的低12位使用。页映射函数可看成是把线性地址的高20位转换为对应物理地址高20位的转换函数。,14.1.2 分页管理,两级页表结构,页映射表的第一级称为页目录表,存储在一个4K字节的物理页中。页目录表共有1K个表项,其中,每个表项为4字节长,包含对应第二级表所在物理地址空间页的基地址。页映射表的第二级称为页表,每张页表也安排在一个4K字节的页中。每张页表都有1K个表项,每个表项为4字节长,包含对应物理地址空间页的基地址。由于页
8、目录表和页表均由1K个表项组成,所以使用10位的索引就能指定具体表项,即用10位的索引值乘以4加基地址就得到了某个表项的物理地址。任务切换时,页目录表和页表也要相应进行切换,使得不同任务的线性地址空间被映射到不同的物理地址空间中。当前页目录表的物理基地址存放在CR3寄存器中。,两级页表结构,表项格式,P位表示该表项是否有效。P=1表项有效;P=0表项无效。在通过页目录表和页表进行地址转换过程中,无论在页目录表还是在页表中遇到无效表项,都会引起缺页异常。处理器在访问过某个表项之后总是将其A位置1。一般由操作系统将其周期性的刷新为0。处理器在对某个物理页进行过写操作之后,总是将其所对应的页表中表项
9、的D位置1。U/S和R/W位用于对页进行保护。,线性地址到物理地址的转换,14.1.2 虚拟存贮器,虚拟存储器是一项硬件和软件结合的技术。存储管理部件把物理存储器和辅存储器看作是一个 整体,即虚拟存贮器。虚拟存贮器容量可达64T32位处理器的分段、分页存贮管理机制从硬件上 很好地支持了虚拟存贮器的实现。,14.1.3 保护机制,为了支持多任务,从80286开始,处理器就具备了保护机制。不同任务之间的保护和共享 通过把每个任务放置在不同的虚拟地址空间的方法,来达到应用程序之间保护的目的。2同一任务内的段级保护 在段级保护中使用了三种形式的特权管理:当前特权级(CPL)描述符特权级(DPL)请求特
10、权级(RPL)。3同一任务内的页级保护 页目录表和页表的表项中的保护属性位R/W和U/S就是用于对页进行保护。,14.2 保护模式下的程序调用和转移,保护模式下的调用和转移可分为两大类:同一任务内的调用和转移任务间的调用和转移(任务切换)。同一任务内的调用和转移又可分为:段内调用和转移、段间调用和转移。,14.2.1 系统段描述符、门描述符和任务状态段,每个任务都有自己的局部描述符表LDT。另外每个任务还有一个任务状态段TSS,用于保存任务的有关信息。LDT和TSS作为系统的一个特殊段,由系统段描述符描述,描述符存放在GDT中。,段界限(位70),段界限(位158),段基址(位70),段基址(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 保护 模式 及其 编程
链接地址:https://www.31ppt.com/p-5923844.html