Chinaunix首页 | 论坛 | 博客
  • 博客访问: 288606
  • 博文数量: 56
  • 博客积分: 3025
  • 博客等级: 中校
  • 技术积分: 534
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-06 17:28
个人简介

Honesty and diligence should be your eternal mates.

文章分类

全部博文(56)

文章存档

2012年(1)

2011年(27)

2010年(20)

2008年(8)

分类: LINUX

2010-11-05 08:50:13

1、实模式:
  
   实模式是一种比较古老的工作模式。早期的x86处理器有20根地址线,但是寻址寄存器只有16位。我们知道16位的地址可寻址2^16=64KB的地址空间,这并没有充分利用到20根地址总线。于是,实模式引入了段地址+偏移量=地址的方式,即将内存空间被分成了2^4个段,每段寻址64KB的地址空间,那么,总共寻址
(2^4)*(2^16)=2^20=1MB
的地址空间。当然,实模式需要引入段寄存器来存放段基址。x86有四个段寄存器:CS、DS、SS、ES。分别存放当前执行的代码段、数据段、堆栈段和附加数据段的段基址。

*实模式的缺点:
  
   @没有分开系统和应用程序的存储区域,如果应用程序对系统数据进行了误操作,可能会使得系统崩溃。
   @无法满足程序对大内存的需求。

2、保护模式:

   保护模式运用于大于等于32位的系统,拿32位系统来说,它有32根地址线,虽然寻址寻址寄存器也是32位,但,这些系统仍然保留了段寄存器。所谓保护模式,顾名思义,它是为了保护系统数据而引入的工作模式。对于上面所说的实模式而言,应用程序可直接访问物理地址,对系统安全造成了隐患。而保护模式引入了虚拟地址的概念,应用程序只能使用逻辑地址,逻辑地址到物理地址的转换又由MMU(内存管理单元)来完成,使得应用程序无法再直接访问物理地址,从而保护了系统数据的安全。保护模式下的内存管理采用了分段或者分页(可选)的管理方式,参见下篇博文《Linux系统的内存管理》。

3、虚拟模式:

   虚拟模式是为了在保护模式下运行16位的程序而虚拟的实模式,它并不是一种真正的cpu工作模式,还属于保护模式。
阅读(3137) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~