计算机操作系统基础 (十)--- 存储管理之虚拟内存
引言
本文为第十篇,存储管理之虚拟内存,在正式了解之前,有一个问题,一个游戏十几G,物理内存只有4G,那么这个游戏是怎么运行起来的呢?为了解决这个问题,就需要本篇中介绍到的虚拟内存的知识
虚拟内存概述
有些进程实际需要的内存很大,超过物理内存的容量
多道程序设计,使得每个进程可用物理内存更加稀缺
不可能无限增加物理内存,物理内存总有不够的时候
这些原因就促使虚拟内存技术的产生
虚拟内存是操作系统内存管理的关键技术
使得多道程序运行和大程序运行成为现实
把程序使用内存划分,把部分暂时不使用的内存放置在辅存
举例:
左边为进程的逻辑空间,红色部分为一个程序需要使用的内存,操作系统会将内存加载到物理内存中去,灰色的部分为暂时不需要使用的内存,这部分会先放到磁盘中,这样可以节省物理内存,把更多的物理内存让给其它进程使用,并且,在这个里边,如果说这个进程的逻辑空间很大的话,这些很大,且暂时不需要的空间都可以放到磁盘里边暂时保管
程序的局部性原理
局部性原理指的是CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。这个原理也是使得虚拟内存技术可以实现的一个原因
因为有局部性原理
所以计算机在加载程序时,无需全部逻辑空间装入内存,装载部分即可(需要使用的部分)
如果发现所使用的内存不在物理内存中,则发出缺页中断,发起页面置换,把保存在辅存中的页面置换到物理内存中,这样程序又可以继续运行下去了
从用户层面看,程序拥有很大的空间,既是虚拟内存
虚拟内存实际上是对物理内存的扩充,速度接近于内存,成本接近于辅存
虚拟内存的置换算法
先进先出算法(FIFO)
最不经常使用算法(LFU)
最近最少使用算法(LRU)
高速缓存的替换时机
在高速缓存替换的时候,主要发生在CPU需要获取缓存的时候,发现缓存中没有对应的数据,此时就会发生高速缓存的替换,也就是从主存中载入所需数据
主存页面的替换时机
主存缺页的时候,就会去辅存中加载相关数据,这个时候就会发生主存页面替换
对比来看:
替换策略发生在:高速缓存-主存层次、主存-辅存层次
高速缓存-主存层次的替换策略主要是为了解决速度问题
主存-辅存层次主要是为了解决容量的问题(这也是存储器存储分层的理由)
在快速变化的技术中寻找不变,才是一个技术人的核心竞争力。知行合一,理论结合实践
版权声明: 本文为 InfoQ 作者【书旅】的原创文章。
原文链接:【http://xie.infoq.cn/article/dd037a9f83d6674acb2977feb】。文章转载请联系作者。
评论