1 / 13
文档名称:

银行东莞分行开业庆典方案.ppt

格式:ppt   大小:11,354KB   页数:13页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

银行东莞分行开业庆典方案.ppt

上传人:jiquhe72 2017/12/19 文件大小:11.09 MB

下载得到文件列表

银行东莞分行开业庆典方案.ppt

文档介绍

文档介绍:微机原理学****报告
——关于INTEL保护模式
张正清 082602
一,摘要
本报告的主题为介绍什么是微处理器的保护模式。教材中第一次出现保护模式是在2-3节中,介绍了保护模式的储存器寻址(memory addressing),虽然没有直接介绍什么是保护模式,但却是实现寻址模式不可忽略的问题。除此之外,本报告将主要介绍保护模式的核心:权限级别(Privilege Levels)。包括如何限制对数据的访问(Restricting Access to Data)、控制执行的转移(Control of Execution Transfers)等。另外还有保护模式对多任务机制(Multitasking)的有效支持。
二,正文
1,主要特性
在网上搜索到的对保护模式的介绍中,百度百科的介绍虽然并不是很严谨很有条理,但算是最易懂的一个,所以先借鉴百科中的话来总述一下保护模式的特点:
保护模式, (Protected Mode,或有时简写为 pmode) 是一种 80286 系列和之后的 x86 兼容 CPU 操作模式。保护模式有一些新的特色,设计用来增强多工和系统稳定度,像是内存保护,分页系统,以及硬件支援的虚拟内存。尽管用软件的方式也有某些可能在真实模式的系统下使用多工,但保护模式下内存保护的特色,可以避免有问题的程序破坏其他工作或是操作系统核心所拥有的内存。保护模式也有中断正在执行程序的硬件支援,可以把 execution content 交给其他工作,得以实现先占式多工。
2,存储器寻址
首先从课本上说起。保护模式(PM)与先前的实模式(RM)的一个重要区别就在段地址上。PM下的段地址不再像实模式那样由段寄存器提供,而是在原来放段地址的段寄存器里放一个选择子(selector),来选择描述表内的一个描述符(descriptor),描述符描述了存储器段的位置、长度以及访问权限。
可见,选择子是为描述符服务的,而描述符在存储器中的表现形式为一个描述表,通常分为全局描述表(GDT,Global Descriptor Tables),局部描述表(LDT)。那GDT和LDT又是为何而设置的呢?
对于段模式来讲,访问一个内存地址仍然使用Segment:Offset的方式,这是很自然的。由于 Protected Mode运行在32-bit系统上,那么Segment的两个因素:Base Address和Limit也都是32位的。另外,Protected Mode,顾名思义,又为段模式提供了保护机制,也就说一个段的描述符需要规定对自身的访问权限(Access)。所以,在Protected Mode下,对一个段的描述则包括3方面因素:[Base Address, Limit, Access],它们加在一起被放在一个64-bit长的数据结构中,被称为段描述符。这种情况下,如果我们直接通过一个64-bit段描述符来引用一个段的时候,就必须使用一个64-bit长的段积存器装入这个段描述符。但Intel为了保持向后兼容,将段积存器仍然规定为16-bit(尽管每个段积存器事实上有一个64-bit长的不可见部分,但对于程序员来说,段积存器就是16-bit的),那么很明显,我们无法通过16-bit长度的段积存器来直接引用64-bit的段描述符。
解决的方法就是把这些长度为64-bit的段描述符放入一个数组中,而将段寄存器中的值作为下标索引来间接引用(事实上,是将段寄存器中的高13 -bit的内容作为索引)。这个全局的数组就是GDT。事实上,在GDT中存放的不仅仅是段描述符,还有其它描述符,它们都是64-bit长。GDT可以被放在内存的任何位置,那么当程序员通过段寄存器来引用一个段描述符时,CPU必须知道GDT的入口,也就是基地址放在哪里,所以Intel的设计者门提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此积存器,从此以后,CPU就根据此积存器中的内容作为GDT的入口来访问GDT了。
GDT是Protected Mode所必须的数据结构,也是唯一的——不应该,也不可能有多个。另外,正像它的名字(Global Descriptor Table)所揭示的,它是全局可见的,对任何一个任务而言都是这样。
除了GDT之外,IA(Intel Architecture)-32还允许程序员构建与GDT类似的数据结构,它们被称作LDT(Local Descriptor Table),但与GDT不同的是,LDT在系统中可以存在多个,并且从LDT的名字可以得知,LDT不是全局可见的,它们只对引用它们的任务可见,每个任务最多可以拥有一个LDT。另外,每一个LDT自身作