操作系统实验四_页面置换算法_16281028

该实验设计并实现了最佳置换算法(OPT)、先进先出(FIFO)、最近最久未使用(LRU)、改进型Clock(CLOCK)和页面缓冲(PBA)算法。通过页面访问序列随机生成器对这些算法进行测试,比较它们的性能,如缺页率。实验结果显示,最佳置换算法表现出最优性能。
摘要由CSDN通过智能技术生成

实验四 页面置换算法

目录

实验四 页面置换算法

 

实验目的

实验原理

请求分页虚拟内存管理

工作集与缺页率

 

最佳置换算法(OPT)

 

先进先出置换算法(FIFO)

最近最久未使用置换算法(LRU)

 

改进型Clock置换算法(CLOCK)

 

页面缓冲算法PBA

实验内容

课题要求

 

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

性能测评及问题说明

概要设计

函数列表

变量列表

生成随机序列

OPT

FIFO

LRU

改进CLOCK

PBA

主函数

运行比较


实验目的

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

实验原理

   UNIX中,为了提高内存利用率,提供了内外存进程对换机制;内存空间的分配和回收均以页为单位进行;一个进程只需将其一部分(段或页)调入内存便可运行;还支持请求调页的存储管理方式。

   当进程在运行中需要访问某部分程序和数据时,发现其所在页面不在内存,就立即提出请求(向CPU发出缺中断),由系统将其所需页面调入内存。这种页面调入方式叫请求调页。

   为实现请求调页,核心配置了四种数据结构:页表、页帧(框)号、访问位、修改位、有效位、保护位等。

   当CPU接收到缺页中断信号,中断处理程序先保存现场,分析中断原因,转入缺页中断处理程序。该程序通过查找页表,得到该页所在外存的物理块号。如果此时内存未满,能容纳新页,则启动磁盘I/O将所缺之页调入内存,然后修改页表。如果内存已满,则须按某种置换算法从内存中选出一页准备换出,是否重新写盘由页表的修改位决定,然后将缺页调入,修改页表。利用修改后的页表,去形成所要访问数据的物理地址,再去访问内存数据。整个页面的调入过程对用户是透明的。

请求分页虚拟内存管理

工作集与缺页率

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

(2)缺页率:缺页率 = 缺页中断次数/页面访问次数

 

最佳置换算法OPT)

(1)基本思想

选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存。

(2)评价

理想化算法,具有最好性能(对于固定分配页面方式,本法可保证获得最低的缺页率),但实际上却难于实现,故主要用于算法评价参照

 

先进先出置换算法FIFO)

(1)基本思想

①选择最先进入内存即在内存驻留时间最久的页面换出到外存

②进程已调入内存的页面按进入先后次序链接成一个队列,并设置替换指针以指向最老页面

(2)评价

简单直观,但不符合进程实际运行规律,性能较差,故实际应用极少

 

最近最久未使用置换算法LRU)

(1)基本思想

以“最近的过去”作为“最近的将来”的近似,选择最近一段时间最长时间未被访问的页面淘汰出内存。

(2)评价

适用于各种类型的程序,性能较好,但需要较多的硬件支持。

 

改进型Clock置换算法CLOCK)

(1)基本思想

① 从查寻指针当前位置起扫描内存分页循环队列,选择A=0且M=0的第一个页面淘汰;若未找到,转②

② 开始第二轮扫描,选择A=0且M=1的第一个页面淘汰,同时将经过的所有页面访问位置0;若不能找到,转①

(2)评价

与简单Clock算法相比,可减少磁盘的I/O操作次数,但淘汰页的选择可能经历多次扫描,故实现算法自身的开销增大。

 

页面缓冲算法PBA

基本思想:

(1)设立空闲页面链表和已修改页面链表

(2)采用可变分配和基于先进先出的局部置换策略,并规定被淘汰页先不做物理移动,而是依据是否修改分别挂到空闲页面链表或已修改页面链表的末尾

(3)空闲页面链表同时用于物理块分配

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值