问个操作系统比较底层的问题,实在不知道发哪就发这了

stackoverlow 2011-11-16 10:05:09
比如windows系统,从CPU利用一个虚拟地址到L1,L2...主存等通过页表一级一级往下走,根据PTE位发现数据不在DRAM缓存中的时候,否则发生缺页异常,根据从windows的页文件(profile.sys,一直听说有这么个缓存文件,貌似是这个吧我的理解),如果页文件里有需要数据就移到DRAM缓存里再从CPU开始来次数据获取,如果不在的话是不是从磁盘读取进页文件再继续前面的步骤?还是从进程的虚拟存储器空间读取?进程的虚拟存储器空间是在什么地方?还是说页表映射的物理地址是分散在各处什么的,这里不太明白,就是到进程的虚拟存储空间这一环的数据是如何获取的不太清楚
相应的linux的交换分区是不是相当于windows页缓存文件?
有高手能帮我详细讲解讲解这CPU用虚拟地址获取物理存储器的数据的整个流程么?谢了啊
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Clovstul 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xuqiqw 的回复:]

是正在看呢,深入理解计算机系统那本书
就那一下说虚拟存储器是连续的,又说每个进程有自己的虚拟存储空间,所以到进程获取数据那环不太懂
[/Quote]

你可以理解为:一个进程占用虚拟存储器中的几个页,这几个页组成了这个程序的虚拟存储空间
柯本 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xuqiqw 的回复:]
是正在看呢,深入理解计算机系统那本书
就那一下说虚拟存储器是连续的,又说每个进程有自己的虚拟存储空间,所以到进程获取数据那环不太懂
[/Quote]
计算机技术几乎每天都在进步,所以书本的东西只能作为参考
不同的CPU,不同的平台都会有差别
真正要了解具体的,可下载各厂家的手册,如intel的,里面介绍的相对完整
stackoverlow 2011-11-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lking_2011 的回复:]
这个内容太多了,不好说。建议楼主找一本关于计算机体系结构或者操作系统原理的书里有关虚拟存储器管理的章节看看。
[/Quote]
是正在看呢,深入理解计算机系统那本书
就那一下说虚拟存储器是连续的,又说每个进程有自己的虚拟存储空间,所以到进程获取数据那环不太懂
LKing_2011 2011-11-16
  • 打赏
  • 举报
回复
这个内容太多了,不好说。建议楼主找一本关于计算机体系结构或者操作系统原理的书里有关虚拟存储器管理的章节看看。
柯本 2011-11-16
  • 打赏
  • 举报
回复
网上搜下资料吧
http://baike.baidu.com/view/969924.htm
http://baike.baidu.com/view/1499823.htm
另外,intel CPU资料中也有有关介绍(不过只有E文的),以前也曾小研究下

64,688

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧