2013-10-13 131 views
1

如果页面出现在虚拟内存中,但不在主内存中,会发生什么情况? 它是如何执行的?虚拟内存的使用

程序是否从虚拟内存加载到主内存中?如果它从虚拟内存加载到主内存中,那么这将是一个IO操作,因为它在磁盘上。那么如果使用虚拟内存,我们必须执行IO操作才能执行它。

而当使用程序生成的逻辑地址,和MMU其映射到物理地址,如果该地址不存在于主存储器,那么确实OS检查在虚拟存储器中??

在此先感谢

回答

0

让我说,这是一个很简单的解释,而不是确定指导虚拟内存启动;

虚拟内存基本上给你的进程一种错觉,即它是在计算机的内存空间中运行的唯一东西。当进程访问虚拟内存页面时,MMU将其转换为物理内存访问。如果物理内存页面尚不存在(或不在物理内存中),则会暂停该进程并通知操作系统,并且可以在重新启动该进程之前将页面添加到内存(例如,通过从磁盘获取内存) 。

虚拟内存的一个原因是,该过程不必过于担心它使用的内存,没有如果,例如扩大机上的物理内存换了,可刚工作,就好像它拥有它可以解决的所有内存,并让操作系统解决实际内存的使用方式。

它不(通常)慢计算机抓取的原因是,很多过程不会在任何时候使用他们的记忆的大部件,如果一个内存页是不是在一个小时访问,物理在那个小时内,内存可以更好地使用,而不是保持活动状态。当然,您的流程不断积极使用的内存越多,您的流程似乎运行得越慢。