物理地址 虚拟地址 逻辑地址 线性地址

http://linux.chinaitlab.com/administer/836984.html

http://www.cnblogs.com/visayafan/archive/2011/12/26/2301903.html


物理地址

  实际计算机的物理内存的地址,为32位或者64位。(常见的内存条就是一类RAM——>随机存储存储器,特点就是加电状态下可任意读写,断电后信息消失)

虚拟地址

  现代OS都提供一技术——虚拟内存(virtual memory),它可以使给用户错觉好像自己在使用比实际物理内存大得多的内存,实际上通过映射把虚拟内存的虚拟地址转化为物理内存的物理地址。

  多个进程可以使用相同的虚拟地址,是因为转化的时候把各自的虚拟地址映射到了不同的物理地址。

逻辑地址

  包含在机器语言指令中用来指定一个操作数或一条指令的地址。这种寻址方式在80X86著名的分段结构中表现的尤为具体,它促使MS-DOSWindows程序员把程序分成若干段,程序员直接打交道的地址也是逻辑地址(因为程序员一般都是使用高级语言编写程序,这些 程序都是运行在OS上的,程序员一般都只管写高级语言的代码和数据,根本就不用操心这些代码和数据运行在内存的什么地方,是否会覆盖,因为os和高级语言编辑器替我们作了大量的看护工作,以确保不会出错)。每一个逻辑地址都由一个段(segment)和偏移量(offsetdisplacement)组成,偏移量指明了从段开始的地方到实际地址的距离。

线性地址

  线性地址(Linear Address)也叫虚拟地址(virtual address)是逻辑地址到物理地址变换之间的中间层。

  线性地址是一个32位无符号整数,可以用来表示高达4GB的地址,也就是,高达4294967296个内存单元。线性地址通常用十六进制数字表示,值的范围从0x00000000到0xfffffff)。


逻辑地址==>线性地址==>物理地址

  在分段部件中逻辑地址是段中的偏移地址,然后加上基地址就是线性地址。(需要用到全局描述符表,先查找全局描述符表找到相应的基地址再+偏移地址便得到物理内存地址)    

  如果没有启用分页机制,那么线性地址直接就是物理地址

  如果启用了分页机制,那么线性地址需要再经过变换以产生一个物理地址:

    1. 当采用4KB分页大小的时候,线性地址的高10位为页目录项在页目录表中的编号,中间十位为页表中的页号,其低12位则为偏移地址;

    2. 如果是使用4MB分页机制,则高10位页号,低22位为偏移地址;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值