|
![]() | 作者: sniper167 [sniper167]
![]() |
登录 |
线性地址 物理地址 虚拟地址 逻辑地址 我是这样理解的,还请大家多指教 物理地址既是指我们的实际内存的地址,物理地址空间的大小既是我们内存的大小 线性地址空间由我们CPU的地址线来决定,比如32位的CPU,其可寻址范围为2的32次方,线性地址是指在这个范围内的地址,线性地址空间包括了物理地址空间 虚拟地址也只线性地址空间的一部分,没有被真正载入物理内存的东西就存在这个范围内 逻辑地址??? 偶不晓得 假设我的内存是512M,CPU是32位的,我的地址空间是不是这么分配的? -------------------------------------------------------------------------------- | 物理地址空间(512M) | 虚拟地址空间 | -------------------------------------------------------------------------------- 整个线性地址空间 虚拟地址空间里面是不是也包括了 硬盘地址空间、 显存地址空间呢? 我看三星的smdk2410平台上是这样安排的 ------------------------------------------------------------------------------------ | nand flash地址空间 | 保留 | SDRAM地址空间 | ------------------------------------------------------------------------------------ [此贴被 啥都不会(sniper167) 在 10月21日22时05分 编辑过] |
地主 发表时间: 06-10-21 22:03 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
以下是我的个人认识: 其实这些地址名称在不同时代有不同名称或别称,物理地址是实际的内存地址,因为内存单元从0开始计算排列,直到实际的内存大小,这个排列是属于线性排列的。也就是0、1、2、3、4、5、6等等一直排下去。 在DOS时代,还有段地址和段内偏移之说,当时的物理地址就等于段地址+段内偏移地址。也可以说是线性地址,所以物理地址与线性地址没有明显区别。 而在32位的时代,由于引入了虚拟内存的概念,即用磁盘空间来充当内存空间的技术,由于磁盘的速度远小于内存,而磁盘的空间又远大于内存,这是一种以时间换空间的技术。虚拟地址在这个时候出现了。假如我的物理内存只有256MB,但有一个游戏运行需要512MB的内存,如果在DOS时代是无法运行的,但有了虚拟内存技术,系统可以在磁盘上分出384MB的空间当作内存空间用,那么系统会认为我现在有256MB+384MB的内存,游戏现在可以运行了,但这时地址就有问题了,如果物理地址超过了256MB的范围,事实上CPU就无法访问,因为在系统的物理内存空间里没有这个地址,所以采用虚拟地址,即将整个640MB的地址空间形成一个线性地址空间,当CPU执行时,先将虚拟地址转换为物理地址,然后再访问内存即可。如果访问的信息不在内存,则在磁盘中将数据调入内存,然后再访问。 至于逻辑地址,这是为程序员而做的概念,也就是说当程序员编程的时候无需关心物理地址,直接用线性地址即可,如 mov ax, [0x10235h]。 如果要了解整个来龙去脉,可以看看《操作系统》相关书籍和视频。 [此贴被 jhkdiy(jhkdiy) 在 10月22日13时47分 编辑过] |
B1层 发表时间: 06-10-22 13:46 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
不清楚,只有一些模糊的概念 搞操作系统的快来回答这个问题 |
B2层 发表时间: 06-10-24 15:08 |
![]() | 回复: SysHu0teR [syshunter] ![]() |
登录 |
线性地址只是一个概念,用来告诉你这个地址空间没是线性的,只是一个名词.. 物理地址也就是真正的内存地址了,CPU的地址线个数也就决定了你的物理地址最大可以是多少. 虚拟地址有点模糊,也就是虚拟的,这当中包含了虚拟内存(比如windows就好象允许单个进程可寻址最大地址空间为4G,哪有那么大内存),是由缺页中断机构来完成调度,段页表中有一位标志用来标出该页是在物理内存还是虚拟内存(windows下是页面文件,linux/unix是交换分区). 操作系统丢的时间有点长了,只能凭印象瞎说一通. |
B3层 发表时间: 06-10-28 22:41 |
![]() | 回复: kert_t8 [kert_t8] ![]() |
登录 |
虚拟地址是一段连续的地址,但是被影射到了不连续的物理地址上,是吧 |
B4层 发表时间: 06-10-30 18:45 |
![]() | 回复: jhkdiy [jhkdiy] ![]() |
登录 |
没错,不过想具体了解还是看书或看视频了解的清楚一些。 |
B5层 发表时间: 06-10-30 20:06 |
![]() | 回复: romario [romario] ![]() |
登录 |
看一看清华王爽的<汇编语言> |
B6层 发表时间: 06-11-07 02:49 |
|
20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon
粤ICP备05087286号