4、操作系统——页面置换算法

本文详细介绍了操作系统中的页面置换算法,包括最优页面置换算法、FIFO、LRU、时钟算法、二次机会法、LFU等,以及它们的特点和实现方式。此外,还探讨了全局页面置换算法,如工作集、常驻集和缺页率页面置换算法,以及页面置换中的Belady现象和抖动问题。
摘要由CSDN通过智能技术生成

当内存中的页面满了之后,需要的数据又在磁盘虚拟内存中,可以使用页面置换算法将需要的页置换到物理内存中。下面先介绍几种局部页面置换算法,其针对一个进程而言的页面置换。


一、局部页面置换算法

1、最优页面置换算法

功能:当缺页中断发生时,需要调入新的页面而内存已满时,选择内存中哪个物理页面被置换。

目标:尽可能地减少页面的换进换出次数(即缺页中断的次数)。具体地说,将未来不再使用或者短期不再使用的页面置换出去。

页面锁定(frame locking):用于描述必须常驻内存的操作系统的关键部分或时间关键的应用程序。即那些必不可少的数据。

基本思路:当一个缺页中断发生时,对于保存在内存中的每一个逻辑页面,计算它的下一次访问之前还需要等待多长时间,从等待时间中选取最长的那个页面将其置换。

注意:该算法只是一种理想的情况,在实际时无法实现,因为操作系统是无法知道每个页面需要等待的时间。但是该算法可以作为页面置换算法的一个标杆,用以衡量其他页面置换算法的性能。

下图是一个页面置换算法的简单例子,假设物理内存中有4个页帧,表的第二行为某个进程调用页面的轨迹,开始的时候可以将abcd四个页存放到物理内存中,第1,2,3,4次调用时都在这4个页面范围内,第5次调用页面e,所以需要将物理内存中的abcd页进行时间的排序,按照下次调用时的时间长度,发现d最久,所以将d和e进行置换。


2、 先进先出算法(first in first out)

基本思路:选择在内存中驻留时间最长的页面进行置换。系统维护一个链表,记录在内存中的所有逻辑页,链首的位置驻留时间最长,链尾的位置驻留时间最短,当发生缺页中断时将链首的页面进行置换,将新加入的页面添加到链尾。

特点:性能较差,调出的页面可能是经常需要访问的页面,同时可能会发生Belady现象(后面介绍)。

下面是一个简单的例子,如何实现该算法:假设物理内存中只能包含4个页帧,开始时物理内存中预存abcd四个页面,在1、2、3、4时刻时进程用到的页面都在abcd的范围内所以不会产生缺页中断。

 当第5时刻时,需要e页面,由于物理内存中不存在所以会产生缺页中断,需要进行页面置换,根据FIFO算法的规则选择驻留时间最长的页面a与e进行置换

后面再b不会产生缺页中断,然后a产生缺页中断,将物理页中的b置换,依次下去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值