第八讲 虚拟存储

存储层次结构

理想中的存储器:容量更大,速度更快,价格更便宜的非易失性存储器
实际中的存储器:

访问时间存储器层次结构容量
1纳秒寄存器<1KB
2纳秒高速缓存1MB
10纳秒内存64-512MB
10毫秒磁盘5-50GB
100秒磁带20-100GB

覆盖技术

目标:在较小的可用内存中运行较大的程序
方法:依据程序逻辑结构,将程序划分为若干功能相对独立的模块,将不会同时执行的模块共享同一块内存区域

  • 1.必要部分(常用功能)的代码和数据常驻内存
  • 2.可选部分(不常用功能)放在其他程序模块中,只在需要用到时装入内存
  • 3.不存在调用关系的模块可相互覆盖,共用同一块内存区域

交换技术

目标:增加正在运行或需要运行的程序的内存
实现方法:可将暂时不能运行的程序放到外存中

  • 换入换出的基本单位:整个进程的地址空间
  • 换出:把一个进程的整个地址空间保存到外存
  • 换入:把外存中某进程的地址空间读入到内存

局部性原理

程序在执行过程中的一个较短时期,所执行的指令地址和指令的操作数地址分别局限于一定区域

  • 时间局部性
  • 空间局部性
  • 分支局部性

虚拟存储的基本概念

思想:将不常用的部分内存块暂存到外存
原理:

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

实现方式

主要用两种方法:虚拟页式存储和虚拟段式存储

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

逻辑页号访问位修改位保护位驻留位物理页帧号
i

驻留位:表示该页是否在内存
修改位:表示在内存中的该页是否被修改过
访问位:表示该页面是否被访问过(读或写)
保护位:表示该页的允许访问方式(只读,可读写,可执行等)

缺页异常(缺页中断)的处理流程

A.在内存中有空闲物理页面时,分配一物理页帧f,转至第E步
B.根据页面置换算法选择将被替换的物理页帧f,对应逻辑页q
C.如q被修改过,则把它写回外存
D.修改q的页表项中驻留位置为0
E.将需要访问的页P装入到物理页面f
F.修改P的页表项驻留位为1,物理页帧号为f
G:重新执行产生缺页的指令

虚拟页式存储管理的性能

有效存储访问时间
EAT=访存时间×(1-p)+缺页异常处理时间×缺页率p
例子:访存时间:10ns,磁盘访问时间:5ms,缺页率p,页修改概率q
EAT=10×(1-p)+5000000p(1+q)

置换算法的功能和目标

功能:当出现缺页异常,需调入新页面而内存已满时,置换算法选择被置换的物理页面
设计目标:

  • 尽可能减少页面的调入调出次数
  • 把未来不再访问或短期内不访问的页面调出

页面锁定(frame locking)

1.描述必须常驻内存的逻辑页面
2.操作系统的关键部分
3.要求响应速度的代码和数据
4.页表中的锁定标志位(lockbit)

记录进程访问内存的页面轨迹

举例:虚拟地址访问用(页号,位移)表示
(3,0),(1,9),(4,1),(2,1),(5,3),(2,0),(1,9),(2,4),(3,1),(4,8)
对应的页面轨迹
3,1,4,2,5,2,1,2,3,4
替换如c,a,d,b,e,b,a,b,c,d
评价方法:模拟页面置换行为,记录产生缺页的次数

置换算法

  • 局部页面置换算法:置换页面的选择范围仅限于当前进程占用的物理页面内;最优算法,先进先出算法,最近最久未使用算法,时钟算法,最不常用算法
  • 全局页面置换算法:置换页面的选择方位是所有可换出的物理页面;工作集算法,缺页率算法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值