实模式与保护模式

实模式:CPU刚刚启动的时候是实模式阶段,实模式被特殊定义为20位地址内存可访问空间   因此实模式只能访问地址在1M以下的内存(这个内存把它叫做常规内存,地址在1M以上的叫扩展内存)

工作机理x86下的cpu 地址总线:20根,因为实模式下的寻址是寻的实际物理地址,因此最大的寻址范围就是2^20字节=1M内存,但是对于x86下的内部寄存器都是16位的,能表示的地址范围只有64k,因此在cpu内部,采取的是分段寻址的模式:物理地址=左移4位的段地址+偏移地址。举个例子来说,例如你的段基地址:DS=1000H,偏移地址:EA=FFFFH,那么对应的物理地址就是:10000H+0FFFFH=1FFFFH,即16寄存器访问20根地址线的地址范围(通过计算可知这里面访问的地址区间会超过1M的大小,最大为10FFEFH,所以有个A20 GATE地址线的概念)

 

保护模式:实模式下,最大访问内存只有1M,即使A20 GATE 打开也只有10FFEFH,对于计算机来说太小了;更重要的,直接操作实际的物理地址风险太大了,如果一个指针指向了系统程序等区域,并且改变了值,那么这个后果可是灾难性的。  因此有了保护模式的概念,保护模式下的地址叫做虚拟地址,在保护模式下,内存的寻址方式为:段式+页式 ,段的定义通过“描述符表”来定义的,这其中包括了全局描述符表(GDT)和局部描述符表(LDT),其段长最大可达到2^32次方=4GB。

 

实模式和保护模式的区别:

1.进程内存受保护与否:实模式下直接指向实际物理地址,其任何修改都是会造成极大的影响;保护模式下物理内存地址不可直接被程序访问,通过虚拟地址由操作系统转化为实际地址访问。

2. 可寻址空间的大小:实模式下1M,保护模式下4GB;

3. 更高的安全级别:实模式下直接操作cpu,没有安全控制;保护模式下有4个安全级别,其内存的操作会有安全检查。

 

我相信懂了这些,再别人问你32位的计算机为什么最大只支持4G内存的时候,你可以好好的侃侃而谈了,这也算是技术映射到实际的一个体现吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值