虚拟存储,虚拟内存什嘛关系???内存如何分配???页面又按何种方式置换???
虚拟存储器:为什么会出现虚拟存储器呢???(之前的要求是:将一个作业全部装入内存后方能运行)
1,有的作业很大,其所要求的内存空间超过了内存的总容量,作业并不能完全被装入内存,致使作业无法执行
2,有大量作业要求运行,但由于内存容量不足以容纳所有这些作业,只能将少数作业装入内存让他们先运行,
而其他大量的作业留在外存上等待.
一个显而易见的解决方法是:从物理上增加内存容量,但这往往会收到机器自身的限制,而且无疑要增加系统成本
另外一种:从逻辑上扩充内存容量
而常规存储器管理方式的特征:
一次性(作业在运行之前需要一次性的全部装入内存,但是许多作业在运行时,并非其全部程序和数据都要用到,如 果一次性的装入内存,那么也是对内存空间的一种浪费)
驻留性(作业装入内存后,便一直驻留在内存中,直至作业运行结束,并且占用极为宝贵的内存资源)
局部性原理:
1,时间局限性:如果程序中的某条指令一旦执行,则不久后该指令可能再次执行;如果某个数据被访问过,则不久 后该数据可能再次被访问(程序中存在大量的循环操作)
2,空间局限性:一旦访问某个存储单元,在不久之后,其附近的存储单元也将被访问,即程序在一段时间内所访问
的地址集中在一定的范围内
虚拟存储器:
基于局部性原理,应用程序在运行之前,没有必要完全装入内存,仅须将那些当前要运行的少数页面或段先装入内存运行便可运行.程序在运行时,如果它所要访问的页(段)已调入内存,便可继续执行下去;但如果程序所需要的页(段)尚未调入内存(称为缺页或缺段),此时程序应利用OS所提供的请求调页(段)功能,将它们调入内存,以使进程能继续执行下去.如果此时内存已满,无法再装入新的页(段),则还须在利用页(段)的置换功能,将内存中暂时不用的页(段)调至盘上,腾出足够的内存空间后,将在访问的页(段)调入内存,使程序继续执行下去.这样,便可以使一个大的用户程序能在较小的内存空间中运行;也可以在内存中装入更多的进程使它们并发执行.
从用户的角度看:该系统所具有的内存容量,将比实际内存容量大的多.但必须说明:我们所看到的大容量只是一种感觉,是虚的,故人们把这样的存储器称为虚拟存储器.
所以说:虚拟存储器,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统.其逻辑容量由内存容量和外存容量之和所决定,其运行速度接近于内存速度,而每位的成本又接近于外存.
可见及其优越.....