3.2.8 虚拟内存管理

来源:互联网 发布:中国新歌声 台湾 知乎 编辑:程序博客网 时间:2024/06/11 06:17
(1)为什么要引入虚拟内存?

多道程序并发执行不仅使进程之间共享了处理器,还同时共享了主存。然而,随着处理器需求的增长,进程的执行速度会以某种合理平滑的方式慢下来。但是,如果同时执行的进程太多,那么就需要很多的内存,当一个程序没有内存空间可用时,那么它甚至无法运行。所以,在物理上扩展内存相对有限的条件下,应当尝试以一些其他可行的方式在逻辑上来扩充内存。

(2)内存空间的大小由什么因素决定?

虚存的大小要同时满足2个条件:

1.虚存的大小<=内存容量和外存容量之和,这是硬件的硬性条件规定的,若虚存大小超过了这个容量则没有相应的空间来供虚存使用。

2.虚存的大小<=计算机的地址位数能容纳的最大容量,比如你的地址是32位的,那么假设按字节编制,一个地址代表1B的存储空间的话,那么虚存的大小<=4GB(2的32次方B).这是因为如果虚存的大小超过4GB,那么32位的地址将无法访问全部虚存,也就是说4GB以后的空间是浪费掉的,相当于没有一样,没有任何意义。

实际虚存的容量是取条件1,2的交集,也就是说,两个条件都要满足,光满足一个是不行的。

(3)虚拟内存是怎么解决问题的?会带来什么问题?

虚拟内存使用了外存上的空间来扩充内存的空间,通过一定的换入换出,使得整个系统在逻辑上能够使用一个远远超过其物理内存大小的内存容量。因为虚拟内存技术调换页面时需要访问外存,会导致平均访存时间下降,如果使用了不合理的替换算法,则会大大降低系统性能。

0 0
原创粉丝点击