三、内存管理-页面置换算法

本文介绍了页面置换算法在内存管理中的作用和目标,包括最优页面置换算法(OPT)、先进先出(FIFO)、最近最久未使用(LRU)和时钟置换算法。其中,OPT是理想情况,FIFO简单但可能导致Belady现象,LRU是OPT的近似实现,而时钟算法则在效率和效果间寻求平衡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全局页面置换算

页面置换算法的概念

置换算法的功能和目标

功能
口当出现缺页异常,需调入新页面而内存已满时,置换算法选择被置换的物理页面
设计目标
口尽可能减少页面的调入调出次数
口把未来不再访问或短期内不访问的页面调出

页面锁定(frame locking)

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

置换算法的评价方法
记录进程访问内存的页面轨迹
口举例:虚拟地址访问用(页号,位移)表示
(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ÿ

分别有个程序都能使用!1) 进一步理解父子进程之间的关系。 2) 理解内存页面调度的机理。 3) 掌握页面置换算法的实现方法。 4) 通过实验比较不同调度算法的优劣。 5) 培养综合运用所学知识的能力。 页面置换算法是虚拟存储管理实现的关键,通过本次试验理解内存页面调度的机制,在模拟实现FIFO、LRU等经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。将不同的置换算法放在不同的子进程中加以模拟,培养综合运用所学知识的能力。 2. 内容及要求: 这是一个综合型实验,要求在掌握父子进程并发执行机制和内存页面置换算法的基础上,能综合运用这两方面的知识,自行编制程序。 程序涉及一个父进程和两个子进程。父进程使用rand()函数随机产生若干随机数,经过处理后,存于一数组Acess_Series[]中,作为内存页面访问的序列。两个子进程根据这个访问序列,分别采用FIFO和LRU两种不同的页面置换算法对内存页面进行调度。要求: 1) 每个子进程应能反映出页面置换的过程,并统计页面置换算法的命中或缺页情况。 设缺页的次数为diseffect。总的页面访问次数为total_instruction。 缺页率 = disaffect/total_instruction 命中率 = 1- disaffect/total_instruction 2)将为进程分配的内存页面数mframe 作为程序的参数,通过多次运行程序,说明FIFO算法存在的Belady现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值