虚拟地址保护模式

虚拟地址保护模式

ID:14276142

大小:59.00 KB

页数:31页

时间:2018-07-27

虚拟地址保护模式_第1页
虚拟地址保护模式_第2页
虚拟地址保护模式_第3页
虚拟地址保护模式_第4页
虚拟地址保护模式_第5页
资源描述:

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

1、虚拟地址保护模式保护模式(ProtectedMode,或有时简写为pmode)是一种80286系列和之后的x86兼容CPU操作模式。保护模式有一些新的特色,设计用来增强多工和系统稳定度,像是内存保护,分页系统,以及硬件支援的虚拟内存。大部分的现今x86操作系统都在保护模式下运行,包含Linux、FreeBSD、以及微软Windows2.0和之后版本。另外一种286和其之后CPU的操作模式是真实模式,一种向前兼容且关闭这些特色的模式。设计用来让新的芯片可以执行旧的软件。依照设计的规格,所有的x86CPU都是在真实模式下开机来确保传统操作系统的向前兼容性。在任何保护模式的特色可用前,他们必须要由

2、某些程序手动地切换到保护模式。在现今的电脑,这种切换通常是由操作系统在开机时候必须完成的第一件工作的一个。它也可能当CPU在保护模式下运行时,使用虚拟86模式来执行设计给真实模式的程序码。尽管用软件的方式也有某些可能在真实模式的系统下使用多工,但保护模式下内存保护的特色,可以避免有问题的程序破坏其他工作或是操作系统核心所拥有的内存。保护模式也有中断正在执行程序的硬件支援,可以把executioncontent交给其他工作,得以实现先占式多工。大部分可以使用保护模式的CPU也拥有32位元暂存器的特色(例如80386系列和其后任何的芯片),导入了融合保护模式而成为32位元处理的概念。80286芯

3、片虽有支援保护模式,但是仍然只有16位元暂存器。Windows2.0和之后版本中的保护模式增强称为"386增强模式",是因为他们除了保护模式外,还需要32位元的暂存器,并且无法在286上面执行(即使286支援保护模式)。即使在32位元芯片上已经打开了保护模式,但是1MB以上的内存并无法存取,是由于一种仿照IBMXT系统设计特性的memorywrap-around(内存连续)的因素。这种限制可以由打开A20line来回避。在保护模式下,前面32个中断都是保留给CPU例外处理用。举个例子,中断0D(十进制13)是一般保护模式错物和中断00是除以零。在8086/8088时代,处理器只存在一种操作模

4、式(OperationMode),当时由于不存在其它操作模式,因此这种模式也没有被命名。自从80286到80386开始,处理器增加了另外两种操作模式——保护模式PM(ProtectedMode)和系统管理模式SMM(SystemManagementMode),因此,8086/8088的模式被命名为实地址模式RM(Real-addressMode)。PM是处理器的native模式,在这种模式下,处理器支持所有的指令和所有的体系结构特性,提供最高的性能和兼容性。对于所有的新型应用程序和操作系统来说,建议都使用这种模式。为了保证PM的兼容性,处理器允许在受保护的,多任务的环境下执行RM程序。这个特

5、性被称做虚拟8086模式(Virtual-8086Mode),尽管它并不是一个真正的处理器模式。Virtual-8086模式实际上是一个PM的属性,任何任务都可以使用它。RM提供了Intel8086处理器的编程环境,另外有一些扩展(比如切换到PM或SMM的能力)。当主机被Power-up或Reset后,处理器处于RM下。SMM是一个对所有Intel处理器都统一的标准体系结构特性。出现于Intel386SL芯片。这个模式为OS实现平台指定的功能(比如电源管理或系统安全)提供了一种透明的机制。当外部的SMMinterruptpin(SMI#)被激活或者从APIC(AdvancedProgramm

6、ingInterruptController)收到一个SMI,处理器将进入SMM。在SMM下,当保存当前正在运行程序的整个上下文(Context)时,处理器切换到一个分离的地址空间。然后SMM指定的代码或许被透明的执行。当从SMM返回时,处理器将回到被系统管理中断之前的状态。由于机器在Power-up或Reset之后,处理器处于RM状态,而对于Intel80386以及其后的芯片,只有使用PM才能发挥出最大的作用。所以我们就面临着一个从RM切换到PM的问题。本文不讨论SMM,本节的重点集中于在Booting阶段如何从RM切换到PM,这里不会过多的讨论PM的细节,因为《IntelArchitec

7、tureSoftwareDeveloper’sManualVolume3:SystemProgramming》中有非常详尽和准确的介绍。1.WhatisGDT在ProtectedMode下,一个重要的必不可少的数据结构就是GDT(GlobalDescriptorTable)。为什么要有GDT?我们首先考虑一下在RealMode下的编程模型:在RealMode下,我们对一个内存地址的访问是通过Segment:O

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

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

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