页面置换算法

目录

一  实验目的

二  基础知识

1.请求分页虚拟内存管理

2.工作集

3.缺页率

4.五种替换方法

最佳置换算法

先进先出置换算法

最近最久未使用置换算法

改进型Clock置换算法

页面缓冲算法

三  实验要求

1.页面访问序列随机生成说明

2.内存

3.页面

四  实验结果

1.各算法执行结果

最佳置换算法

先进先出置换算法

最近最久未使用置换算法

改进型Clock置换算法

页面缓冲算法

2.内存空间

工作集=3

工作集=5  

对于同一序列

3. 实验结论


一  实验目的

 

设计和实现最佳置换算法、先进先出置换算法、最近最久未使用置换算法、页面缓冲置换算法;通过页面访问序列随机发生器实现对上述算法的测试及性能比较。

 

二  基础知识

1.请求分页虚拟内存管理

请求分页虚拟内存管理是建立在基本分页基础上的,为了能支持虚拟存储器功能,而增加了请求调页功能和置换功能。

2.工作集

多数程序都显示出高度的局部性,也就是说,在一个时间段内,一组页面被反复引用。这组被反复引用的页面随着时间的推移,其成员也会发生变化。有时这种变化是剧烈的,有时这种变化则是渐进的。我们把这组页面的集合称为工作集

3.缺页率

           缺页率 = 缺页中断次数/页面访问次数

4.五种替换方法

最佳置换算法

最佳置换算法的主要思想是,在发生页面替换时,被替换的对象应该满足,在以后的页面访问中,该对象不会再次被访问或者较晚被访问。是一种理想化算法,具有最好性能(对于固定分配页面方式,本法可保证获得最低的缺页率),但实际上却难于实现,故主要用于算法评价参照。

先进先出置换算法

先进先出置换算法的主要思想是,在发生页面替换时,被替换的对象应该是最早进入内存的。

最近最久未使用置换算法

最近最久未使用置换算法的主要思想是,在发生页面替换时,被替换的页面应该满足,在之前的访问队列中,该对象截止目前未被访问的时间最长。

改进型Clock置换算法

改进型Clock置换算法的主要思想是,在每次页面替换时,总是尽可能地先替换掉既未被访问又未被修改的页面。

页面缓冲算法

设立空闲页面链表和已修改页面链表采用可变分配和基于先进先出的局部置换策略,并规定被淘汰页先不做物理移动,而是依据是否修改分别挂到空闲页面链表或已修改页面链表的末尾,空闲页面链表同时用于物理块分配,当已修改页面链表达到一定长度如Z个页面时,一起将所有已修改页面写回磁盘,故可显著减少磁盘I/O操作次数。1.确定虚拟内存的尺寸N,工作集的起始位置p,工作集中包含的页数e,工作集移动率m(每处理m个页面访问则将起始位      置p +1),以及一个范围在0和1之间的值t;

 

三  实验要求

1.页面访问序列随机生成说明

符合局部访问特性的随机生成算法:

1.确定虚拟内存的尺寸N,工作集的起始位置p,工作集中包含的页数e,工作集移动率m(每处理m个页面访问则将起始位      置p +1),以及一个范围在0和1之间的值t;

2.生成m个取值范围在p和p + e间的随机数,并记录到页面访问序列串中;

3.生成一个随机数r,0 ≤ r ≤ 1;

4.如果r < t,则为p生成一个新值,否则p = (p + 1) mod N;

5.如果想继续加大页面访问序列串的长度,请返回第2步,否则结束。

2.内存

模拟的虚拟内存的地址为16位,页面大小为1K

模拟的物理内存有32K

3.页面

页表用整数数组或结构数组来表示

页面访问序列串是一个整数序列,整数的取值范围为0到N - 1。页面访问序列串中的每个元素p表示对页面p的一次访问

 

四  实验结果

1.各算法执行结果

以下截图为部分关键截图,结果分别为缺页率(总32页)、缺页数。

最佳置换算法

先进先出置换算法

最近最久未使用置换算法

改进型Clock置换算法

页面缓冲算法

2.内存空间

工作集=3

多次统计缺页率绘制以下折线图,每次访问序列不同。

从上到下依次为:先进先出置换算法、最近最久未使用置换算法、改进型Clock置换算法、页面缓冲算法、最佳置换算法

工作集=5  

少量统计缺页率见下表,每次访问序列不同。

对于同一序列

统计1次缺页率见下表。

9, 4, 5, 8, 4, 4, 7, 6, 4, 9, 10, 7, 4, 9, 9, 10, 6, 11, 10, 7, 12, 12, 10, 8, 40, 42, 41, 45, 45, 40, 45, 40

3. 实验结论

  1. 同一种算法,对于不同的访问序列,其缺页率是不同,会有所变化。
  2. 总的来看,最佳置换算法的缺页率是最低的,这一点是毋庸置疑的。剩下的集中算法中,页面缓冲算法的缺页率要低于其他置换算法。改进型clock算法稍微好于先进先出算法和最近最久未使用算法。先进先出算法和最近最久未使用算法性能相近。总的来看,性能如下。最佳置换算法>页面缓冲置换算法>改进型clock置换算法>最近最久未使用算法>=先进先出置换算法。
  3. 对比内存块数为3和内存块数为5两种情况下的同一序列下的同一,可以发现,算法的缺页率还跟分配的内存块数有关系,分配的内存块数越多,缺页率越低。这与直观感受是一致的,即导入内存的块数越多,发生缺页的可能性就越小。
  4. 当物理内存显著小于一个进程所需要的页面总数时,不同的页面替换算法的差距会更明显。五种页面替换算法中,最优算法的缺页率,明显低于其他四种页面替换算法,其它四种页面替换算法的缺页率相差很小。当页面替换算法的选择对缺页率的影响较大的情况下,FIFO算法比随机替换算法的缺页率要低。LRU算法比FIFO算法的缺页率要低。LRU算法的缺页率明显比最优算法要高。Clock算法比LRU算法的缺页率要高。当物理内存与一个进程所需要的页面总数差不多或者物理内存更大的情况下,不同的页面替换算法的差距会减小,相差无几。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值