保护模式软件体系结构.ppt
- 文档编号:1424504
- 上传时间:2022-10-22
- 格式:PPT
- 页数:69
- 大小:530.50KB
保护模式软件体系结构.ppt
《保护模式软件体系结构.ppt》由会员分享,可在线阅读,更多相关《保护模式软件体系结构.ppt(69页珍藏版)》请在冰豆网上搜索。
1,2.4保护模式软件体系结构3.8保护模式的系统控制指令4.5保护模式汇编语言程序设计,保护模式,1,2,保护模式概述描述符与描述符表保护模式的寄存器模型保护模式的存储器寻址虚拟8086模式,2.4保护模式软件体系结构,保护模式软件体系结构,2,3,保护模式软件体系结构,保护模式概述,32条地址线全部有效,可寻址4GB物理地址空间扩充的存储器分段管理机制和可选的存储器分页管理机制,为实现虚拟存储器提供了硬件支持支持多任务,能够快速地进行任务切换和保护任务环境4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密以及任务的隔离支持虚拟8086方式,3,4,保护模式软件体系结构,保护模式概述,虚拟存储器的概念,虚拟存储器是一种软硬件结合的技术,用于提供比在计算机系统中实际可以使用的物理内存大得多的存储空间。
虚拟存储器的地址称为逻辑地址或虚拟地址,全部逻辑地址的集合称为虚拟地址空间。
Pentium支持的虚拟地址空间可达64TB。
只有物理内存中的程序才能运行,只有物理内存中的数据才能被访问,所以虚拟地址空间必须映射到物理地址空间。
Pentium通过扩充的存储器分段管理机制和可选的存储器分页管理机制实现虚拟地址到物理地址的转换。
4,5,保护模式软件体系结构,保护模式概述,保护机制,为了支持多任务,Pentium处理器要对存放在存储器中的代码及数据的保护与共享提供支持。
任务(进程):
程序在执行时的一种情况,是一个动态的概念。
乐谱与演奏Pentium的保护机制能有效地实现不同任务之间的保护和同一任务内的保护。
5,6,保护模式软件体系结构,保护模式概述,保护机制不同任务之间的保护,任务A和任务B并存,那么任务A和任务B必须隔离,以免相互影响。
把每个任务放置在不同的虚拟地址空间可以实现任务与任务的隔离。
两个不同任务的虚拟地址转换为不同的物理地址。
仅由一个任务占有的虚拟地址空间部分,称为局部地址空间。
局部地址空间包含的代码和数据,是任务私有的,需要与系统中的其它任务相隔离。
另一方面,任务A和任务B可能要共享部分代码和数据,如对操作系统的共享。
各个任务公用的虚拟地址空间部分,称为全局地址空间。
对全局地址空间中同一虚拟地址的访问,在所有任务中都转换为同样的物理地址,从而支持公共的代码及数据的共享。
6,7,保护模式软件体系结构,保护模式概述,保护机制同一任务内的保护,在一个任务之内,定义有四种执行特权级(PL,PrivilegeLevel),用于限制对任务中不同的存储器段进行访问。
Pentium为每个任务提供了4种特权级,0级最高,3级最低,应用程序,常规扩展,系统服务,内核,级别0,级别1,级别2,级别3,7,8,保护模式软件体系结构,保护模式概述,保护机制同一任务内的保护,每个存储器段都与一个特权级别相联系。
在任何时候,一个任务总是在四个特权级之一下运行,任务在特定时刻的特权级称为当前特权级(CurrentPrivilegelevel),标记为CPL,即当前运行程序的特权级。
每当一个程序试图访问一个段时,就把CPL与要访问的段的特权级进行比较,以决定是否允许这一访问。
Windows操作系统只使用了0级和3级,8,9,描述符(Descriptor):
描述符是一个8字节的数据结构。
Pentium采用描述符来描述存储器段的位置、大小和使用情况。
包括段描述符、系统段描述符和门描述符三种类型。
保护模式软件体系结构,描述符与描述符表,9,10,段描述符:
用于描述代码、数据和堆栈段(用户段),0,1,2,3,4,5,6,7,段界限015位,段基址023位,访问权限字节,段界限1619位,段基址2431位,D,G,0,AVL,保护模式软件体系结构,段基址为段的起始地址,长32位段界限长20位段内最大有1M个可寻址单位,10,11,段描述符:
G位(粒度位):
G=0,段的长度以字节为单位段长最大1M字节G=1,段的长度以页(4K字节)为单位段长最大1M4K=4G字节D位:
D=0,16位指令方式(代码段)段的上界为64K(数据段)使用16位堆栈指针SP(堆栈段)D=1,32位指令方式(代码段)段的上界为4G(数据段)使用32位堆栈指针ESP(堆栈段)AVL位:
软件可用位。
未作规定,保护模式软件体系结构,11,12,RW,段描述符:
访问权限字节,0,1,2,3,4,5,6,7,A,P,DPL,S,E,EDC,P位:
P=0,段不在内存中P=1,段在内存中DPL:
取值03,确定段的特权级S位:
S=1,段描述符,A位:
A=0,段尚未被访问A=1,段已被访问,保护模式软件体系结构,12,13,WR,段描述符:
访问权限字节,0,1,2,3,4,5,6,7,A,P,DPL,S,E,EDC,13位表示段的类型,E=0,为数据段ED=0,段向上扩展为数据段ED=1,段向下扩展为堆栈段W=0,数据段只读W=1,数据段可写,E=1,为代码段C=0,忽略描述符特权级C=1,遵循描述符特权级R=0,代码段不可读即只执行R=1,代码段可读,保护模式软件体系结构,13,14,系统段描述符:
格式与段描述符基本相同,主要差别访问权限字节,0,1,2,3,4,5,6,7,P,DPL,S,TYPE,S=0,系统段描述符,TYPE为4位,共有16种类型。
其中:
2,LDT9,TSS,非忙B,TSS,忙,5,任务门C,调用门E,中断门F,陷阱门,D位无定义(D=0),保护模式软件体系结构,14,15,门描述符:
偏移量:
相对于段基地址的偏移量,为目标代码的入口点选择符:
用于确定段基地址字计数:
从调用者堆栈中复制到被调用者堆栈中的参数个数,属于系统段描述符,门提供了将程序控制转给服务程序入口的手段。
有任务门、调用门、中断门、陷阱门4种类型,保护模式软件体系结构,15,16,门描述符:
访问权限字节格式与系统段描述符相同,DPL为任务允许访问该门的最低特权级,保护模式软件体系结构,16,17,例:
判断描述符所描述的段的性质,0,1,2,3,4,5,6,7,S=0,为系统段描述符TYPE=2,为DLTP=1,DPL=2因此为一个特权级为2的LDT,已经在内存中该LDT的基址为00200000H,界限为00300HG=0,段的长度以字节为单位,保护模式软件体系结构,17,18,描述符表,一个任务会涉及多个存储器段,每个段需要一个描述符来描述,Pentium把描述符按顺序组织成线性表,称为描述符表描述符表占内存一定的区域,由系统地址寄存器(GDTR、IDTR、LDTR)指示其在物理存储器中的位置和大小,描述符表有三种:
全局描述符表GDT中断描述符表IDT局部描述符表LDT,保护模式软件体系结构,18,19,全局描述符表(GDT),整个系统只有一个,描述符表,保护模式软件体系结构,19,20,描述符表,保护模式软件体系结构,中断描述符表(IDT),整个系统只有一个,20,21,描述符表,保护模式软件体系结构,局部描述符表(LDT),通常每个任务一个,21,22,描述符表,保护模式软件体系结构,通过LDT可以使各个任务私有的各个段与其它任务相隔离,从而达到受保护的目的。
通过GDT可以使各任务都需要使用的段能够被共享。
22,23,保护模式的寄存器模型,保护模式软件体系结构,23,24,0,15,16,31,0,15,0,15,16,31,7,8,AL,BL,CL,DL,AX,BX,CX,DX,AH,BH,CH,DH,EAX,EBX,ECX,EDX,IP,CS,DS,SS,ES,FS,GS,SP,BP,SI,DI,ESP,EBP,ESI,EDI,FLAGS,CR,0,实模式的寄存器模型,保护模式软件体系结构,24,25,全局描述符表寄存器GDTR,在物理存储器地址空间中定义全局描述符表GDT,BASE指示GDT在物理存储器中开始的位置LIMIT规定GDT的界限,LIMIT有16位,从而GDT最大65536个字节,能够容纳65536/8=8192个描述符,保护模式软件体系结构,0,15,16,47,GDTR,BASE,LIMIT,存放GDT的基址和界限,25,26,GDTR,GDT,BASE,LIMIT,保护模式软件体系结构,全局描述符表寄存器GDTR,26,27,例:
(GDTR)=001000000FFFH,求GDT在物理存储器中的起始地址,结束地址,表的大小,表中可以存放多少个描述符?
全局描述符表寄存器GDTR,解:
GDT的起始地址为00100000H结束地址为00100000H+0FFFH=00100FFFH表的大小为0FFFH+1=4096字节表中可以存放4096/8=512个描述符,保护模式软件体系结构,27,28,中断描述符表寄存器IDTR,在物理存储器地址空间中定义中断描述符表IDT,由于Pentium只能支持256个中断和异常,因此LIMIT最大为0FFFHIDT中的描述符类型为中断门,保护模式软件体系结构,0,15,16,47,IDTR,BASE,LIMIT,存放IDT的基址和界限,28,29,局部描述符表寄存器LDTR,16位的LDTR并不直接定义LDT,它只是一个指向GDT中LDT描述符的选择符,指出当前任务的LDT描述符在GDT中的位置。
在任务切换时,系统将当前任务的LDT选择符的值装入LDTR寄存器内。
如果LDTR中装入了一个LDT选择符,相应的描述符将从GDT中读出并装入局部描述符表高速缓冲寄存器。
将该描述符装入高速缓冲寄存器就为当前任务创建了一个LDT,保护模式软件体系结构,0,15,LDTR,选择符,29,30,保护模式汇编语言程序设计,GDT,LDT描述符,LDTR,LDT,基址,界限,32位,16位,LDT描述符高速缓冲寄存器(不可见),选择符,局部描述符表寄存器LDTR,30,31,段选择符寄存器,保护模式下CS、DS、SS、ES、FS、GS寄存器称为段选择符寄存器,其值不再是基址而是选择符,它选择一个定义存储器段大小和属性的描述符,RPL:
申请特权级03TI:
表指示符0使用全局描述符表1使用局部描述符表索引:
选择描述符表入口,保护模式软件体系结构,段选择符,0,2,3,15,索引,CS/DS/./GS,TI,RPL,215位共14位用于段选择,因而一个任务最多可以有16384个段,其中8192个全局段,8192个局部段,31,32,段选择符寄存器,例:
设LDT的基址为00120000H,GDT的基址为00100000H,(CS)=1007H,那么:
请求的特权级是多少段描述符位于GDT中还是LDT中段描述符的地址是什么,解:
(CS)=1007H=0001000000000111BRPL=3,申请的特权级为3TI=1,描述符位于LDT中描述符相对于LDT基址的偏移量为0001000000000B8=5128=4096=1000H段描述符的地址为00120000H+1000H=00121000H,保护模式软件体系结构,32,33,控制寄存器,CR4,CR3,CR2,CR1,CR0,页目录基址,页故障线性地址,保留,保留,313029282726252423222120191817161514131211109876543210,VME,PVI,TSD,DE,MCE,0,PSE,PCD,PWT,PG,CD,NW,AM,WP,NE,ET,TS,EM,MP,PE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,保护模式软件体系结构,33,34,控制寄存器,CR0的低5位组成机器状态字(MSW):
PE:
0实模式;1保护模式MP:
1(系统有数学协处理器)EM:
0浮点指令的执行是用软件模拟
(1),还是由硬件执行(0)。
TS:
任务切换,切换任务时处理器自动将TS置1ET:
1(协处理器的类型),CR0,保留,保留,PG,CD,NW,AM,WP,NE,ET,TS,EM,MP,PE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 保护 模式 软件 体系结构
![提示](https://static.bdocx.com/images/bang_tan.gif)