CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

应用程序最终是如何访问到物理地址的?

楼主longge520(longge520)2005-09-25 10:40:12 在 VC/MFC / 基础类 提问

我们都知道windows是一个多任务的系统,可以"同时"执行几个进程,各个进程有自己的地址空间.  
  一般的操作系统的书上都会讲逻辑地址转换到物理地址的内容,但是我不明白究竟是什么时候转换的?这个过程是不是操作系统完成的?还是CPU自己完成的?因为在VC中我可以看见CPU寄存器中的值仍然是逻辑地址,这样的话操作系统就不会有机会转换了.  
  应用程序最终是如何访问到物理地址的? 问题点数:20、回复次数:9Top

1 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-09-25 14:24:43 得分 4

操作系统转换的,页文件交换等Top

2 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2005-09-25 15:05:33 得分 4

当然是操作系统转换的啦,可以参考下win32保护模式编程。Top

3 楼longge520(longge520)回复于 2005-10-01 10:34:59 得分 0

在VC中我可以看见CPU寄存器中的值仍然是逻辑地址,这样的话操作系统就不会有机会转换了啊.  
  Top

4 楼steedhorse(晨星)回复于 2005-10-08 23:47:46 得分 4

但很可能另外一个寄存器里保存着另外一个重要的地址,而CPU对访问的实际地址是由他们两个共同决定的。Top

5 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2005-10-08 23:59:02 得分 4

是由CPU完成的,不过之前的工作是由操作系统完成的。  
  一个线性地址的Base部分,根据由操作系统在切换到该任务之前设置的CR3分页register,得到页目录的项,然后根据线性地址Page部分与页目录项中的页表地址,得到物理内存中页的地址,然后根据线性地址中Offset部分,得到该物理页上的偏移。  
  其中页表的和页目录的维护是操作系统完成的,而这个转换过程是x86CPU中的电路完成滴。  
   
  不过有的系统并不是按这种二级分页,一般64位的系统都是用三级分页,Linux上用的是三级分页,所以,同样的代码,可以在32位和64位下都能使用  
   
  另外,在80x86里还有中扩展分页,其中物理内存的也大小是4MB,它相当于一级分页Top

6 楼steedhorse(晨星)回复于 2005-10-09 00:09:42 得分 2

顶一顶鸡丁。Top

7 楼longge520(longge520)回复于 2005-10-30 19:33:04 得分 0

还是不太明白   希望有人对下面这句话给出明确的回答是或不是:  
  CPU的某个寄存器被装入一个逻辑地址,然后CPU自己访问到正确的物理地址,yes   or   no?Top

8 楼crcr(游侠)回复于 2005-10-30 21:14:12 得分 2

操作系统完成的Top

9 楼Jinhao(辣子鸡丁·GAME就这样OVER了)回复于 2005-10-30 22:02:51 得分 0

在x86   microprocessor中,逻辑地址到物理地址的转换是CPU提供的功能,也就是常说的保护模式下的分段,分页寻址Top

相关问题

  • DbgridEh的打印预览后退出应用程序怎么出现地址访问错误?
  • 应用程序访问无权限
  • 服务器如何唤醒访问者的应用程序???
  • 如何监视访问网络的应用程序?
  • 如何访问其他应用程序的控件?
  • 请问如何在java应用程序里访问url
  • 如何解决:应用程序权限--拒绝访问
  • Tomcat中如何在应用程序中访问JNDI?
  • 关于Win32的应用程序地址空间(0x00000000--0x00000fff)
  • 如何用vc的单文档+ado应用程序访问sql数据库?

关键词

  • 64位
  • 物理
  • 操作系统
  • 转换
  • 逻辑
  • cpu
  • 系统
  • 地址
  • 分页
  • 寄存器

得分解答快速导航

  • 帖主:longge520
  • oyljerry
  • fisker0303
  • steedhorse
  • Jinhao
  • steedhorse
  • crcr

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo