版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2.4 保护模式软件体系结构3.8 保护模式的系统控制指令4.5 保护模式汇编语言程序设计保护模式1保护模式概述描述符与描述符表保护模式的寄存器模型保护模式的存储器寻址虚拟8086模式2.4 保护模式软件体系结构保护模式软件体系结构2保护模式软件体系结构保护模式概述32条地址线全部有效,可寻址4GB物理地址空间扩充的存储器分段管理机制和可选的存储器分页管理机制,为实现虚拟存储器提供了硬件支持支持多任务,能够快速地进行任务切换和保护任务环境4个特权级和完善的特权检查机制,既能实现资源共享又能保证代码和数据的安全和保密以及任务的隔离支持虚拟8086方式3保护模式软件体系结构保护模式概述虚拟存储器的
2、概念虚拟存储器是一种软硬件结合的技术,用于提供比在计算机系统中实际可以使用的物理内存大得多的存储空间。虚拟存储器的地址称为逻辑地址或虚拟地址,全部逻辑地址的集合称为虚拟地址空间。Pentium支持的虚拟地址空间可达64TB。只有物理内存中的程序才能运行,只有物理内存中的数据才能被访问,所以虚拟地址空间必须映射到物理地址空间。Pentium通过扩充的存储器分段管理机制和可选的存储器分页管理机制实现虚拟地址到物理地址的转换。4保护模式软件体系结构保护模式概述保护机制为了支持多任务,Pentium处理器要对存放在存储器中的代码及数据的保护与共享提供支持。任务(进程):程序在执行时的一种情况,是一个动
3、态的概念。乐谱与演奏Pentium的保护机制能有效地实现不同任务之间的保护和同一任务内的保护。5保护模式软件体系结构保护模式概述保护机制不同任务之间的保护任务A和任务B并存,那么任务A和任务B必须隔离,以免相互影响。把每个任务放置在不同的虚拟地址空间可以实现任务与任务的隔离。两个不同任务的虚拟地址转换为不同的物理地址。仅由一个任务占有的虚拟地址空间部分,称为局部地址空间。局部地址空间包含的代码和数据,是任务私有的,需要与系统中的其它任务相隔离。另一方面,任务A和任务B可能要共享部分代码和数据,如对操作系统的共享。各个任务公用的虚拟地址空间部分,称为全局地址空间。对全局地址空间中同一虚拟地址的访
4、问,在所有任务中都转换为同样的物理地址,从而支持公共的代码及数据的共享。6保护模式软件体系结构保护模式概述保护机制同一任务内的保护在一个任务之内,定义有四种执行特权级(PL, Privilege Level) ,用于限制对任务中不同的存储器段进行访问。Pentium为每个任务提供了4种特权级,0级最高,3级最低应用程序常规扩展系统服务内核级别0级别1级别2级别37保护模式软件体系结构保护模式概述保护机制同一任务内的保护每个存储器段都与一个特权级别相联系。在任何时候,一个任务总是在四个特权级之一下运行,任务在特定时刻的特权级称为当前特权级 (Current Privilege level),标记
5、为CPL,即当前运行程序的特权级。每当一个程序试图访问一个段时,就把CPL与要访问的段的特权级进行比较,以决定是否允许这一访问。Windows 操作系统只使用了0级和3级8描述符(Descriptor):描述符是一个8字节的数据结构。 Pentium采用描述符来描述存储器段的位置、大小和使用情况。包括段描述符、系统段描述符和门描述符三种类型。保护模式软件体系结构描述符与描述符表9段描述符:用于描述代码、数据和堆栈段(用户段)01234567段界限015位段基址023位访问权限字节段界限1619位段基址2431位DG0AVL保护模式软件体系结构段基址为段的起始地址,长32位段界限长20 位段内最
6、大有1M个可寻址单位10段描述符:G位(粒度位):G=0, 段的长度以字节为单位段长最大1M字节G=1,段的长度以页(4K字节)为单位段长最大1M4K=4G字节D位:D=0, 16位指令方式(代码段) 段的上界为64K(数据段) 使用16位堆栈指针SP(堆栈段) D=1, 32位指令方式(代码段) 段的上界为4G(数据段) 使用32位堆栈指针ESP(堆栈段) AVL位:软件可用位。未作规定保护模式软件体系结构11R W段描述符:访问权限字节01234567APDPLSEED CP位:P=0,段不在内存中 P=1,段在内存中DPL:取值03,确定段的 特权级S位:S=1,段描述符A位:A=0,段
7、尚未被访问 A=1,段已被访问保护模式软件体系结构12W R段描述符:访问权限字节01234567APDPLSEED C13位表示段的类型E=0,为数据段ED=0,段向上扩展 为数据段ED=1,段向下扩展 为堆栈段W=0,数据段只读W=1,数据段可写E=1,为代码段C=0,忽略描述符特权级C=1,遵循描述符特权级R=0,代码段不可读 即只执行R=1,代码段可读保护模式软件体系结构13系统段描述符:格式与段描述符基本相同,主要差别访问权限字节01234567PDPLS TYPE S=0,系统段描述符TYPE为4位,共有16种类型。其中:2,LDT9,TSS,非忙B,TSS,忙5,任务门C,调用门
8、E,中断门F,陷阱门 D位无定义(D=0)保护模式软件体系结构14门描述符:偏移量:相对于段基地址的偏移 量,为目标代码的入口点 选择符:用于确定段基地址字计数:从调用者堆栈中复制到被 调用者堆栈中的参数个数属于系统段描述符门提供了将程序控制转给服务程序入口的手段。有任务门、调用门、中断门、陷阱门4种类型保护模式软件体系结构15门描述符:访问权限字节格式与系统段描述符相同DPL为任务允许访问该门的最低特权级保护模式软件体系结构16例:判断描述符所描述的段的性质01234567S=0,为系统段描述符TYPE=2,为DLTP=1,DPL=2因此为一个特权级为2的LDT,已经在内存中该LDT的基址为
9、00200000H,界限为00300HG=0,段的长度以字节为单位保护模式软件体系结构17描述符表一个任务会涉及多个存储器段,每个段需要一个描述符来描述,Pentium把描述符按顺序组织成线性表,称为描述符表描述符表占内存一定的区域,由系统地址寄存器(GDTR、IDTR、LDTR)指示其在物理存储器中的位置和大小描述符表有三种:全局描述符表GDT中断描述符表IDT局部描述符表LDT保护模式软件体系结构18全局描述符表(GDT)表中包含可能被所有任务所共享的段的描述符包括操作系统用的数据段、代码段、堆栈段,各种任务的任务状态段(TSS),所有的LDT段,中断服务程序段等。整个系统只有一个描述符表
10、保护模式软件体系结构19描述符表保护模式软件体系结构中断描述符表(IDT)共有256个描述符,一般由中断门组成,每个门只包含中断的选择符和偏移量,基地址通过查GDT得到整个系统只有一个20描述符表保护模式软件体系结构局部描述符表(LDT)该描述符表包含该任务使用的数据段、代码段、堆栈段的描述符。通常每个任务一个21描述符表保护模式软件体系结构通过LDT可以使各个任务私有的各个段与其它任务相隔离,从而达到受保护的目的。通过GDT可以使各任务都需要使用的段能够被共享。22保护模式的寄存器模型保护模式软件体系结构230151631015015163178ALBLCLDLAXBXCXDXAHBHCHD
11、HEAXEBXECXEDXIPCSDSSSESFSGSSPBPSIDIESPEBPESIEDIFLAGSCR0实模式的寄存器模型保护模式软件体系结构24全局描述符表寄存器GDTR在物理存储器地址空间中定义全局描述符表GDTBASE指示GDT在物理存储器中开始的位置LIMIT规定GDT的界限LIMIT有16位,从而GDT最大65536个字节,能够容纳65536/8=8192个描述符保护模式软件体系结构0151647GDTRBASELIMIT存放GDT的基址和界限25GDTRGDTBASELIMIT保护模式软件体系结构全局描述符表寄存器GDTR26例:(GDTR)=001000000FFFH,求G
12、DT在物理存储器中的起始地址,结束地址,表的大小,表中可以存放多少个描述符?全局描述符表寄存器GDTR解:GDT的起始地址为00100000H结束地址为00100000H+0FFFH=00100FFFH表的大小为0FFFH+1=4096字节表中可以存放4096/8=512个描述符保护模式软件体系结构27中断描述符表寄存器IDTR在物理存储器地址空间中定义中断描述符表IDT由于Pentium只能支持256个中断和异常,因此LIMIT最大为0FFFHIDT中的描述符类型为中断门保护模式软件体系结构0151647IDTRBASELIMIT存放IDT的基址和界限28局部描述符表寄存器LDTR16位的L
13、DTR并不直接定义LDT,它只是一个指向GDT中LDT描述符的选择符,指出当前任务的LDT描述符在GDT中的位置。在任务切换时,系统将当前任务的LDT选择符的值装入LDTR寄存器内。如果LDTR中装入了一个LDT选择符,相应的描述符将从GDT中读出并装入局部描述符表高速缓冲寄存器。将该描述符装入高速缓冲寄存器就为当前任务创建了一个LDT保护模式软件体系结构015LDTR选择符29保护模式汇编语言程序设计GDTLDT描述符LDTRLDT基址界限32位16位LDT描述符高速缓冲寄存器(不可见)选择符局部描述符表寄存器LDTR30段选择符寄存器保护模式下CS、DS、SS、ES、FS、GS寄存器称为段
14、选择符寄存器,其值不再是基址而是选择符,它选择一个定义存储器段大小和属性的描述符RPL: 申请特权级03TI: 表指示符0使用全局描述符表1使用局部描述符表索引:选择描述符表入口保护模式软件体系结构段选择符02315索引CS/DS/./GSTIRPL215位共14位用于段选择,因而一个任务最多可以有16384个段,其中8192个全局段,8192个局部段31段选择符寄存器例:设LDT的基址为00120000H,GDT的基址为00100000H,(CS)=1007H,那么:请求的特权级是多少段描述符位于GDT中还是LDT中段描述符的地址是什么解:(CS)=1007H=0001 0000 0000
15、0111B RPL=3,申请的特权级为3TI=1,描述符位于LDT中描述符相对于LDT基址的偏移量为0001000000000B8=512 8=4096=1000H段描述符的地址为00120000H+1000H=00121000H保护模式软件体系结构32控制寄存器CR4CR3CR2CR1CR0页目录基址页故障线性地址保留保留31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0VMEPVITSDDEMCE0PSEPCDPWTPGCDNWAMWPNEETTSEMMPPE000000
16、0000000000000000000保护模式软件体系结构33控制寄存器CR0的低5位组成机器状态字(MSW):PE:0实模式;1保护模式MP:1(系统有数学协处理器)EM:0 浮点指令的执行是用软件模拟(1),还是由 硬件执行(0)。TS:任务切换,切换任务时处理器自动将TS置1ET:1(协处理器的类型)CR0保留保留PGCDNWAMWPNEETTSEMMPPE31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0保护模式软件体系结构34存储器分页机制:CR0中的PG位设置为1
17、,表示允许分页CR3包含页目录基址,指向页目录的开头如果发生缺页,则将发生缺页的地址保存在CR2中控制寄存器CR3CR2CR1CR0页目录基址页故障线性地址31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0PCDPWTPG保护模式软件体系结构35任务寄存器TR存放16位的选择符,指示全局描述符表中任务状态段(TSS)描述符的位置当选择符装入TR时,相应的TSS描述符自动从存储器中读出并装入任务描述符缓冲寄存器。该描述符定义了一个称为任务状态段(TSS)的存储块。每个任务都有T
18、SS,TSS包含启动任务所必需的信息。TSS最大64K字节保护模式软件体系结构36GDTTSS描述符TR基址界限32位16位TSSTSS描述符高速缓冲寄存器(不可见)保护模式软件体系结构任务寄存器TR37标志寄存器EFLAGSVM: 虚拟8086模式标志保护模式软件体系结构38保护模式下存储器寻址实模式存储器寻址保护模式软件体系结构39保护模式下存储器寻址保护模式的存储器管理单元使用48位存储器指针:16位选择符,32位偏移量选择符放在段选择符寄存器中偏移量放在其他用户可访问的32位寄存器中偏移量32位,因此段的大小可以达到4G字节48位存储器指针称为虚拟地址(逻辑地址)16位选择符中有14位
19、用于存储器段选择,虚拟空间中可容纳16384个段,每段最大4GB,因而虚拟地址空间最大64TB保护模式软件体系结构40保护模式下存储器寻址保护模式软件体系结构虚拟地址(逻辑地址)必须转换成物理地址后才能访问物理存储器。Pentium分两步实现虚拟地址空间到物理地址空间的映射,其中第二步是可选的。分段机制把逻辑地址转换成线性地址;分页机制把线性地址转换成物理地址。41分段管理机制实现逻辑地址向线性地址的转换在程序指令中使用的逻辑地址格式段内偏移选择符16位 32位把逻辑地址中的选段符装入段选择符寄存器中,把段内偏址通用寄存器中,经过分段机制的转换后成为32位线性地址42分段管理机制逻辑地址GDT
20、/LDT选择符偏移量段描述符段描述符高速缓冲寄存器(不可见)数据段操作数DSEAX保护模式软件体系结构43CSDSSSESFSGS程序员可见访问权限基址界限01920515263段描述符高速缓冲寄存器(不可见)保护模式软件体系结构分段管理机制44例:假设虚拟地址为0100:00000200H,禁止分页。如果描述符中读出的段基址为00030000H,那么操作数的物理地址是什么?解:将此虚拟地址转换成物理地址为基地址+偏移量=00030000H+00002000H=00032000H保护模式软件体系结构分段管理机制45分页机制分页机制将内存划分成大小相同的存储块,称为物理页面,每个物理页面大小为4
21、K字节。内存最大4GB的空间可以分为1M(1048576)个页面保护模式软件体系结构页0页1页10485754KB4KB4KB物理地址空间4GB46如果不允许分页,那么分段机制确定的32位线性地址即为物理地址;如果允许分页,32位线性地址由3个域组成:分页机制通过两级表格结构将线性地址转换成物理地址,第一级是页目录,第二级是页表保护模式软件体系结构分页机制页目录页表页内偏移量31 22 21 12 11 0线性地址格式10位 10位 12位47页目录长4KB,包含最多1024个页目录项,每个页目录项4字节(32位)765432100DA00U/SR/WP页表指针03位0页表指针411位页表指针
22、1219位0123保护模式软件体系结构分页机制AVL4820位的页表指针是某一个页表起始地址的高20位,该地址的低12位总为0,保证了页表在物理地址空间总是按页面对齐的,即页表总是位于4K页面的地址边界上。保护模式软件体系结构分页机制页表指针AVL 0 0 D A 0 0 U/S R/W P31 12 11 10 9 8 7 6 5 4 3 2 1 0 AVL供操作系统使用D修改位,D=1表示该页表已被修改过A访问位,A=1表示页表已被访问过,49保护模式软件体系结构分页机制页表指针AVL 0 0 D A 0 0 U/S R/W P31 12 11 10 9 8 7 6 5 4 3 2 1 0
23、 U/S用户/系统访问权限位,U/S=1表示用户访问级, U/S=0表示系统访问级。W/R读/写保护位,W/R=1表示允许写入和读取, W/R=0表示不允许写入,仅允许读取。P 存在位,P=1表示该页表在物理存储器中50页表长4KB,包含最多1024个页面项,每项4字节页表的表项与页目录的表项结构相同。保护模式软件体系结构765432100DA00U/SR/WP页面指针03位0页面指针411位页面指针1219位0123AVL分页机制51整个存储器有一个页目录,它最多有1024个页目录项,每个页目录项可含有1024个页面项共有10241024=1M个页面,每页面4KB,存储器大小正好4GB保护模
24、式软件体系结构分页机制52线性地址页目录目录偏移量页目录项页面操作数页CR3页表页表项保护模式软件体系结构分页机制53例:对于线性地址00000000H00000FFFH,将选中页目录项0和页表项0。若页表项0包含的地址为00100000H,则线性地址00000000H00000FFFH对应的物理地址为00100000H00100FFFH保护模式软件体系结构分页机制线性地址页目录0000000000 0000000000 xxxxxxxxxxxx页目录项0页面操作数页表0页表项0目录项10位页表项10位页内偏移量12位54保护模式软件体系结构分页机制TLB转换后援缓冲器TLB为一个Cache,
25、其中保存了32个最近使用的页转换地址。若访问同样的存储区域,则不必再访问页目录和页表 ,可以加快程序的运行。使用TLB的命中率平均可达98%55虚拟8086模式保护模式的子模式在保护模式下,只要将EFLAGS寄存器的VM位置1,处理器便进入V86模式。将VM位清0,处理器便又退回保护模式当处理器处于V86模式时,段寄存器的使用与实模式相同。通过分页操作,V86的1MB地址空间可以转换到Pentium的4GB空间的任何地方保护模式软件体系结构56虚拟8086模式保护模式软件体系结构不同模式的相互转换实模式保护模式虚拟8086模式RESETVM=0VM=1RESETPE=0PE=157保护模式的系
26、统控制指令SGDT指令存储全局描述符表寄存器GDTREGDB 6 DUP(?).SGDT GDTREG将GDTR的内容复制到由GDTREG指定的内存中的6个字节中LGDT指令装入全局描述符表寄存器GDTREGDW 001FH,0000H,0000H.LGDT GDTREG将由GDTREG指定的内存中的6字节操作数装入GDTR中3.8 保护模式的系统控制指令58SIDT指令存储中断描述符表寄存器IDTREGDB 6 DUP(?).SGDT IDTREG将IDTR的内容复制到由IDTREG指定的内存中的6个字节中LIDT指令装入中断描述符表寄存器IDTREGDW 00FFH,0000H,0000H
27、.LIDT IDTREG将由IDTREG指定的内存中的6字节操作数装入IDTR中保护模式的系统控制指令保护模式的系统控制指令59SLDT指令存储局部描述符表寄存器SGDT OP复制LDTR到由OP指定的16位操作数中LLDT指令装入局部描述符表寄存器LIDT OP将OP指定的16位内存操作数或16位寄存器操作数装入LDTR中保护模式的系统控制指令保护模式的系统控制指令60保护模式汇编语言程序设计SMSW指令存储机器状态字SMSW OP将CR0中机器状态字MSW复制到由OP指定的16位操作数中LMSW指令装入机器状态字LMSW OP用OP指定的16位内存操作数或16位寄存器操作数修改MSW保护模式的系统控制指令61保护模式汇编语言程序设计例:实模式保护模式实模式显示存储器简介系统内存的部分地址空间指定为显示存储区,在文本方式下,彩色图形适配器显示存储区的地址空间为B800:00000FFF,向这一地址空间写入信息将导致在显示器上显示出相应的字符。4.5 保护模式汇编语言程序设计62保护模式汇编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厦门外代仓储有限公司2025年仓储事业部客服岗社会招聘备考题库及1套完整答案详解
- 2026年湖南长城银河科技有限公司招聘备考题库及完整答案详解一套
- 2026年祖庙街道公有企业招聘工作人员备考题库及参考答案详解1套
- 2026年襄阳有岗湖北省大学生乡村医生专项计划招录386人备考题库及参考答案详解1套
- 2026年深圳市建筑科学研究院股份有限公司北京分公司招聘备考题库及一套参考答案详解
- 2026年润曜(北京)国际医药科技有限公司招聘备考题库及1套参考答案详解
- 中学图书馆借阅制度
- 养老院老人心理咨询师行为规范制度
- 企业内部培训与外部合作制度
- 企业职业健康安全事故调查处理指南(标准版)
- 海洋水文气象观测员测试考核试卷及答案
- 街道人民调解工作课件
- 年产10万吨特种环氧树脂项目可行性研究报告
- 自来水厂理论知识培训课件
- 车间主管年终总结和明年方案
- 酒精戒断的医学解析
- 目标计划与管理课件
- 城市道路单向交通组织原则
- 2025年高考语文古诗词《将进酒》鉴赏专项题库
- 2025年高考真题-政治(云南卷) 含答案
- 《铁路线路养护与维修》课件 2.1.3改道作业
评论
0/150
提交评论