Table of Contents
前置问题:
Question:为什么要引入虚拟内存:
Answer: 多道程序并发执行不仅使进程之间共享的处理器,而且同时共享了主存。
当进程数量达到内存不能承受的时候,速度就会变慢;这时需要更多的内存
解决方式:
(1)在物理上扩展内存(加内存)
(2)在逻辑上扩充内存——虚拟内存
上一节3.1节只是讲解了内存的结构和管理方式
而本节虚拟内存讲解了具体的实现方式
==============================
Question: 虚拟内存的空间大小
Answer:
(1)虚拟内存 < = 内存容量 + 外村容量 ; 超出了这个范围的虚拟地址毫无意义
(2)虚拟内存<= 计算机地址地址总线的位数,比如地址总线的32位的,按字节编址,故虚拟存储 <= 2^32(4GB)
实际虚拟内存的容量取(1)(2)的交集,两个条件都要满足
这也回答了32位的操作系统卡的原因
重要一点
引入虚拟内存后,每个进程的进程空间就是整个的虚拟地址空间,通过内存置换算法来计算物理地址。
===============================
Question: 虚拟内存是如何解决问题的?会带来什么问题
Answer: 虚拟内存使用外存上的空间来扩充内存的容量,通过一定的换入/换出内存操作,使得使用的内存容量增加
带来的问题:换入/换出需要访问外存,导致访问时间增加,若使用了不当的替换算法,则会大大降低系统性能。
===============================
3.2.1 虚拟内存的基本概念
虚拟存储器的定义和特征
3.2.2请求分页管理方式