虚拟存储

虚拟存储的需求背景:内存空间不够用


覆盖overlay:应用程序手动把需要的指令额数据保存在内存中;

对换swapping:操作系统自动把暂时不能执行的程序保存到外存中;

虚拟存储:在有限容量内存中,以页为单位自动装入更多更大的程序

覆盖技术overlay

目的:是在较小的可用内存中运行较大的程序。

实现方法:

依据程序逻辑结构,将程序划分为若干功能相对独立的模块,将不会同时执行的

模块共享同一块内存区域。

必要部分(常用功能),放在常驻内存;

可选部分(不常用功能)放在其他程序模块中,只在需要的时候装入内存;不存在调用关系的模块可相互覆盖,共同一块内存区域。


开发难度:增加了编程难度,执行时间也会增加

 

交换技术swapping

目的:增加正在运行或者需要运行的程序的内存(多个进程)

实现方法:将暂时不能运行的程序放到外存,基本单位是整个进程的地址空间。


覆盖和交换的比较:

覆盖:只能发生在没有调用关系的模块间;程序员必须给出模块间的逻辑覆盖结构;

发生在运行程序的内部模块间。

交换:以进程为单位;不需要模块间的逻辑覆盖结构;发生在内存进程间。

 

 

虚拟存储技术的目标:


只把部分程序放到内存中,从而运行比物理内存大,由操作系统自动完成,无需程序员干涉;

实现进程在内存和外存之间的交换,在内外存之间只交换进程的部分内容。

 

局部性原理principle of locality:程序在执行过程中的一个较短使其,所执行的指令地址和指令的操作数地址,分别局限于一定区域。时间局部性:一个数据的一次集中在较短时间内;空间局部性:当前访问的数据和邻近的几个数据集中在较小区域内;分支局部性。

 

虚拟存储的基本概念:将不常用的部分内存暂存到外存。

原理:装载程序时,只将当前指令执行需要的部分装入内存;指令执行中需要的指令或数据不在内存(缺页)时,处理器通知操作系统将相应的页面或段调入内存;操作系统将暂时不用的页面或段保存到外存。

实现方式:虚拟页式存储,虚拟段式存储

 

 

特征:不连续性:物理内存非连续,虚拟地址空间使用非连续;

大用户空间:提供给用户的虚拟内存可大于实际的物理内存;

部分交换:虚拟存储只对部分虚拟地址空间进行调入和调出。

 虚拟页式存储管理:请求调页和页面置换。下图为虚拟页式存储中的地址转换

 

                                                                       虚拟页式存储中的页表项结构


驻留位:表示该页是否在内存中,1在内存中,0则缺页;

修改位:表示内存中的该页是否被修改过,修改过则回收;

访问位:表示该页是否被访问过,用于页面置换;

保护位:该页允许访问的方式。

 

缺页异常处理流程:


A.在内存中有空闲物理页面时,分配一个物理页面帧f,转E;

B.根据页面置换算法选择将被替换的物理页帧f,对应逻辑页q;

C.如果q被修改过,则把他写回外存;

D.修改q的页表项中驻留位为0;

E.将需要访问的页面p装入到物理页面f;

F.修改p的页表项驻留位为1,物理页帧号为f;

G.重新执行产生缺页的指令。

虚拟页式存储管理的性能:有效存储访问时间 effective memory access time

EAT=访存时间*(1-p)+缺页异常处理时间*缺页率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值