一、虚拟存储器的概念
前文所讲的段页式存储方式,存在一个共性,即需要把程序全部装入内存中,然后分为许多页和段。当内存有限时,那么较大的程序便很难装入内存中去。很自然的能够想到通过扩充物理内存来装入更大的程序的方法。但是内存容量小价格贵,所以这种方法不太合适。
在提出虚拟存储器之前,先了解什么是局部性原理。所谓局部性原理,指一个程序被访问后,从时间上来讲,一段时间内它再次被访问的概率较高,从空间上来讲,它和它地址附近的程序被访问的概率较高。基于此原理,我们知道,一个程序中并不是所有的程序段都会被频繁访问,真正需要频繁访问的只是某些程序段。那么将完整的程序装入内存中就存在内存的浪费。虚拟存储器便是不将完整的程序装入内存,只将需要运行的程序段(页或段)放入内存中,等到CPU运行到内存中没有的页或段时,再从外存中调入所需的页或段。虚拟存储器便是这样一种技术。从用户的角度来看,内存好像是比自己要运行的程序大,但实际可能并非如此。这种技术从逻辑上扩充了内存,但是实际内存并没有增加,所以称为虚拟存储器。
二、缺页中断
当CPU运行到内存中没有的页段时,便产生缺页中断,由请求调页程序将所需页调入内存。应当注意的是,一般中断请求发生在CPU执行完一条指令之后,而缺页中断发生在指令执行期间。即发现了就立即去中断而不必等到指令执行完毕。
三、页面置换算法
当有页需要调入内存而内存已满时,便要考虑将内存中的某些页调出内存,至于选择什么页调出,由算法决定。如果一个页刚被调出,又因为需要再调入内存,而因为此页的调入,又调出另一个页,而另一个页又因为需要又被调入内存,如此重复下去,便发生页面抖动。这就是页面抖动的概念。所以一个好的算法需要能够避免产生页面抖动。
1.LRU算法,least recently used.即当需要把页调出时,找到从上次使用到如今为止间隔时间T最大的页面换出。
菜鸡的计算机操作系统学习之路(十)虚拟存储器
最新推荐文章于 2023-07-01 10:59:27 发布