当前位置: 代码迷 >> 综合 >> 408OS - 3.2 虚拟内存
  详细解决方案

408OS - 3.2 虚拟内存

热度:18   发布时间:2024-03-08 04:01:09.0

Table of Contents

前置问题:

3.2.1 虚拟内存的基本概念

虚拟存储器的定义和特征

3.2.2请求分页管理方式


前置问题:

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请求分页管理方式