虚拟存储器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6.1 虚拟存储器的基本概念
二、虚拟存储器的定义
所谓虚拟存储器,是指具有请求调入功能和 置换功能,能从逻辑上对内存容量加以扩充的一 种存储器系统。
6.1 虚拟存储器的基本概念
三、虚拟存储器的特征
1.离散性
2.多次性
3.对换性
4.虚拟性
虚拟存储器最基本的特征是离散性,在此基础上 又形成了多次性和对换性的特征。其表现出来的最重要 特征是虚拟性。
1.写出页面的访问序列。
2.假设内存中有3K字节可供程序使用且采用 FIFO算法,发生多少次缺页中断?采用LRU算法, 则又会发生多少次缺页中断?结果说明什么?
6.3 页面置换算法
页面访问序列为:3,3,1,3,2,3,0,2, 1 , 2 , 3 , 0 ,1 ,1
采用FIFO算法,发生6次缺页中断;
6.3 页面置换算法
例3:考虑一仅460个字节的程序的下述内存访问 序列(该序列的下标均从0开始):10,11,104, 170,73,309,185,245,246,434,458,364。 且页面大小为100字节,则: 1.写出页面的访问序列。 2. 假设内存中仅有 200 字节可供程序使用且 采用FIFO算法,那么共发生多少次缺页中断?
块号0 块号1 淘汰页号 缺页中断 0 0 0 0 1 1 0 1 1 0 0 1 0 3 3 1 0 1 3 1 2 2 3 1 2 2 3 4 4 2 3 4 4 2 3 3 4 2

采用FIFO算法产生的缺页中断为6次。
6.3 页面置换算法
答: 3.采用LRU算法的情况如下:
6.3 页面置换算法
例6:int A[100][100];按先行后列次序存储。 在一个虚存系统中,采用LRU淘汰算法。一个进 程有3页内存空间,每页可以存放100个整数。其 中第一页存放程序,且假定程序已经在内存。 程序A: For(i=0;i<=99;i++)
For(j=0;j<=99;j++) A[i][j]=0 ;
0 块号0 块号1 淘汰页号 缺页中断 0 0 0 1 1 0 1 1 0 0 0 1 3 3 0 1 1 1 3 0 2 2 1 3 2 2 1 4 4 2 1 4 4 2 3 3 4 2
采用LRU算法产生的缺页中断为7次。
6.3 页面置换算法
例4:某请求分页的存储管理系统,页面大小为 1K。一进程按下列地址顺序引用内存单元:3635, 3632,1140,3584,2892,3640,0040,2148, 1700,2145,3209,0000,1104,1100。内存中 尚未装入任何页。
For(j=0;j<=99;j++) A[i][j]=0 ;
程序B: For(j=0;j<=99;j++)
For(i=0;i<=99;i++) A[i][j]=0 ;
分别就程序A和B的执行过程计算缺页次数。
6.3 页面置换算法
答:程序A的执行过程中发生50次缺页;
程序B的执行过程中发生50*100次缺页;
答:FIFO算法,M=3时,缺页次数=9;M=4时,缺页次数=10; LRU 算法, M=3 时,缺页次数 =10 ; M=4 时,缺页次数 =8 ; 说明:
1、FIFO有Belady奇异现象,即不满足存储块增大,缺页 次数减小的规律; 2、m=3时,LRU的缺页次数比FIFO多,所以LRU算法并不 总优于FIFO,还要看当前访问串的特点。
答:物理块数为3:FIFO:缺页次数为9;LRU:缺页次数为10 物理块数为4:FIFO:缺页次数为10;LRU:缺页次数为8 结果说明:1. FIFO可能发生Belady现象(存储块增大, 缺页率反而增大); 2.LRU并不总优于FIFO算法。
6.3 页面置换算法
例2:在一个请求分页系统中,假如一个作业的 页面走向为4 3 2 1 4 3 5 4 3 2 1 5,计算当分配给该作业的物理块数分别为3和4时, 使用FIFO和LRU页面置换算法的缺页次数。结果 说明什么?
链头
单链表中删除 插入链 尾
6.3 页面置换算法
二、最近最久未使用(LRU)页面置换算法
即:访问页面
页面在内存:
将该页面从单链表中删除,插入链尾;
页面不在内存:
请求调入,调入时:
内存有可用空间:插入链尾 内存无可用空间: 删除链头元素, 将该页插入链尾
6.3 页面置换算法
例1:在一个请求分页系统中,假如一个作业的 页面走向为1 2 3 4 1 2 5 1 2 3 4 5 ,计算当分配给该作业的物理块数分别为3和4 时,使用FIFO和LRU页面置换算法的缺页次数和 缺页率。结果说明什么?
数,或最近已有多长时间未被访问,提供给置换算法 选择换出页面时参考;
修改位M:表示该页在调入内存是否被修改过。
6.2 请求分页存储管理方式
程序请求访问一页
二、地址变换机构
开始 页号>页表长度? 否 是 越界中断
缺页中断处理 保留CPU现场 从外存中找到缺页
CPU检索快表 否 是Fra bibliotek请 求 分 页 中 的 地 址 变 换 过 程 图
6.1 虚拟存储器的基本概念
四、虚拟存储器的实现方式
1.分页请求系统
2.请求分段系统
6.2 请求分页存储管理方式
一、页表机制
页号 物理块号 状态位P 访问字段A 修改位M 外存地址
状态位P:表示对应的页当前是否在主存中,如果状
态位为1,表示该页在主存中;
访问字段A:用于记录本页在一段时间内被访问的次
采用LRU算法,发生8次缺页中断;
说明:LRU的缺页次数比FIFO多,所以LRU算 法并不总优于FIFO,还要看当前访问串的特点。
6.3 页面置换算法
例5:int A[100][100];按先行后列次序存储。 在一个虚存系统中,采用LRU淘汰算法。一个进 程有3页内存空间,每页可以存放200个整数。其 中第一页存放程序,且假定程序已经在内存。 程序A: For(i=0;i<=99;i++)
抖动:如果页面置换算法选择不当,一个进程
在运行中,将把大部分时间花费在完成页面置换 的工作上。我们称该进程发生了抖动(thrashing); 一个好的页面置换算法,应具有较低的页面更 换频率。理论上讲,应将那些以后不再会访问的 页面换出。
6.3 页面置换算法
一、FIFO页面置换算法
1.选择最先进入内存的页换出。即选择在内 存中驻留时间最久的页面予以淘汰。
程序B: For(j=0;j<=99;j++)
For(i=0;i<=99;i++) A[i][j]=0 ;
分别就程序A和B的执行过程计算缺页次数。
6.3 页面置换算法
答:程序A的执行过程中发生100次缺页;
程序B的执行过程中发生100*100次缺页;
讨论:在什么情况下,FIFO变得与LRU一样? 1.工作集长度为1; 2.各页号均不同; 3.相同页号连续出现;
第六章 虚拟存储器
6.1 虚拟存储器的基本概念 6.2 请求分页存储管理方式
6.3 页面置换算法
6.1 虚拟存储器的基本概念
一、虚拟存储器的基本思想
虚拟存储器管理通过把主、辅存统一起来管理, 使用户看到的内存容量远大于实际的内存容量。 在页式、段式或段页式存储管理的基础上,仅把
作业的一部分页或段放在内存中。页表项或段表项中 注明对应的页或段是在主存还是在辅存,程序执行时, 当访问的页或段不在主存时,根据页表项或段表项的 指引,从辅存将其调入主存,如果这时已无可用的物 理空间,则从主存淘汰若干页或段。
3. 假设内存中仅有 200 字节可供程序使用且 采用LRU算法,则又会发生多少次缺页中断?
6.3 页面置换算法
答: 1.页面访问顺序(页面踪迹)如下:
10 0 11 0
104 170 73 309 185 245 246 434 458 364
1
1
0
3
1
2
2
4
4
3
2.采用FIFO算法的情况如下:
2.以队列组织内存中的页面: 页面进入内存时,若有可用空间,则页 面调入内存,在队尾进行排队; 若无可用空间,则应“选择一个页面换出” --应将队头元素换出;
6.3 页面置换算法
二、最近最久未使用(LRU)页面置换算法
1.选择离当前时间最久未使用的页面淘汰。
2.以特殊的栈组织内存中的页面: 进程访问某页面时,将该页面的页面号 从栈中移出,压入栈顶,栈底则是最近最久未 使用页面;
内存满否? 是 选择一页换出 否
页表项在快表中? 否 访问页表 产生缺页中 断请求调页
该页被修改否? 是 将该页写回外存
页在内存? 是 修改快表
OS命令CPU从外存读缺页
修改访问位和修改位 形成物理地址 地址变换结束
启动I/O硬件 将一页从外存换入内存
修改页表
6.3 页面置换算法
页面置换算法:选择换出页面的算法;
相关文档
最新文档