您的位置:首页 > 其它

虚拟存储器

2014-05-11 17:14 211 查看
虚拟存储器的概念并不难懂,里面涉及的细节很多。



虚拟存储器是组织在硬盘上的一组连续的地址空间(抽象的空间,硬盘上的程序假想成在这个空间中,虚拟存储器是逻辑上的),一个程序相当于放在了磁盘的连续空间中,每一个进程拥有一个虚拟的地址空间。

这个虚拟的地址空间是线性的,可以看作是0-2^N个地址组成的一个空间,链接器指定了进程的代码起始位置,接着指定了数据段、堆、共享库、栈的虚拟地址。

(问题:为什么代码的其实位置一般是0x08084000?)

这样我们为进程抽象出来了一个虚拟地址空间,而物理内存DRAM则作为虚拟存储器的缓存,那么需要解决虚拟地址空间到缓存的映射关系。

1.映射是有操作系统、硬件共同完成的,主要的思想是:虚拟存储器->MMU硬件+内存中映射页表+页面调度->实际的物理地址空间。

其实就是使用了一个映射表,将虚拟存储器的页映射到了物理内存中的页,那么在虚拟寻址的时候,CPU内部会根据映射关系去找实际的内存中的页。

2.缓存的调度问题,在缓存管理中也提到过。无非是怎么判断缓存命不命中,不命中的怎么去调度页面两个问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: