实模式与保护模式

实模式与保护模式

ID:20378179

大小:110.00 KB

页数:13页

时间:2018-10-13

实模式与保护模式_第1页
实模式与保护模式_第2页
实模式与保护模式_第3页
实模式与保护模式_第4页
实模式与保护模式_第5页
资源描述:

《实模式与保护模式》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实模式、保护模式2009-06-0717:18参考了百度百科中关于实模式的讨论:http://baike.baidu.com/view/404433.htm及http://hi.baidu.com/toening/blog/item/d8d927d403bdfdc350da4b6d.html和http://hi.baidu.com/trueailei/blog/item/b8faa413a22c57d7f7039e4d.html实模式、保护模式、虚拟模式都是X86中的概念。从寻址方式来说,CPU中

2、的IP(EIP)中存放虚地址,把虚地址转换到物理地址,各个模式有各自的转换方式。实模式下,虚地址到实地址转换:DS段寄存器左移4位与偏移地址相加,得到物理地址,寻址1M。保护模式下,虚地址到实地址转换经过MMU(内存管理单元),也就是分段与分页机制,寻址4G。保护有两层含义:1、任务间保护:多任务操作系统中,一个任务不能破坏另一个任务的代码,这是通过内存分页以及不同任务的内存页映射到不同物理内存上来实现的。2、任务内保护:系统代码与应用程序代码虽处于同一地址空间,但系统代码具有高优先级,应用程序代

3、码处于低优先级,规定只能高优先级代码访问低优先级代码,这样杜绝用户代码破坏系统代码。这是通过段式管理来实现,4G虚拟内存中,代码数据和堆栈各占有一个段,段是一个独立有意义的内存单元,有基地址和边界以及本段的优先级,windows系统有两个优先级,Ring0(高优先级)或Ring3(低优先级),系统代码段和数据段属于Ring0,不能被用户代码(Ring3)访问。实模式:16bit的8086处理器标志着IntelX86王朝的开始,并且引入了一个重要概念——段。8086处理器地址总线扩展到20位,但算术

4、逻辑运算单元(ALU)宽度即数据总线却只有16位,也就是直接运算的指针长度是16位的。为支持1M寻址空间,引入分段的方法。为支持分段8086CPU设置四个16bit段寄存器:CS、DS、SS、ES,对应于地址总线中的高16位。寻址时,段寄存器*0x10+偏移地址=物理地址。这样实现16位内存地址到20位物理地址的转换,叫“映射”。(之前在想:为什么每个段最大不超过64K,其实很简单,因为16位CPU数据线是16位的,所以最多只能用一个16bit数来标识一个偏移量,也就说一个段最大长度是64K)保护

5、模式:80286处理器地址总线位数增加到24位,可以访问16M地址空间。并引入一个新概念——保护模式。这种模式下,内存段的访问受到了限制。访问内存时不能直接从段寄存器获得段起始地址了,而要经过额外转换和检查(从其不能随意存取数据段)。为与过去兼容,80286内存寻址有两种方式:保护模式和实模式。系统启动时处理器处于实模式,只能访问1M内存空间,经过处理可以进入保护模式,可访问16M内存空间,但要从保护模式回到实模式必须重启机器。它有个致命缺陷就是80286虽然扩大了寻址空间,但是每个段大小还是64

6、K(因为数据线还是16位的),程序规模仍然受到限制,因此很快就被80386代替了。80386是一个32位的CPU。它的地址总线和ALU数据总线都是32位的。寻址能力达到4G。理论上说当数据总线和地址总线宽度一致时,CPU结构应该简洁明了,但80386不能做到这点,作为80X86产品系列的一员,80386必须维持那些16位段寄存器的存在,必须支持实模式,同时还要支持保护模式。Intel选择在段寄存器基础上构筑保护模式,保留16位段寄存器。在保护模式下,段范围达到4G。从80386以后Intel的CP

7、U经历了80486、Pentium、Pentium2、Pentium3等型号,但都属于同一种系统结构的改进与加强,所以把80386以后的处理器统称为IA32(32BitIntelArchitecture)。深入讨论下保护模式:保护模式与实模式中程序运行的实质是一样的,都是“CPU执行指令,操作相关数据”。最大的变化是“地址转换方式”的变化。这里可以看下两种模式下地址转换方式的区别:在ES存入0x1000,DI存入0xFFFF实模式:ES:DI=0x1000*0x10+0xFFFF=0x1FFFF,

8、这就是“段基址左移4位加偏移地址”。保护模式:(注意:0x1000=1000000000000B)ES:DI=GDT全局描述符表中第0x200项描述符给出的段基址+0xFFFF。为什么是第0x200项?请看下边段选择子(即段值)的结构。这里ES在两种模式下都不是真正段地址(实模式下称"段寄存器",保护模式下称"选择子"),都是一种映射,不过映射规则不同而已。保护模式的基本组成:(围绕“地址转换方式”的变化增设了相应机构)1、数据段  实模式下的各种代码段、数据段、堆栈段、中断服务程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。