贵州做网站公司
贵州做网站公司~专业!靠谱!
10年网站模板开发经验,熟悉国内外开源网站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等网站程序,可为您提供网站建设,网站克隆,仿站,网页设计,网站制作,网站推广优化等服务。我们专注高端营销型网站,企业官网,集团官网,自适应网站,手机网站,网络营销,网站优化,网站服务器环境搭建以及托管运维等。为客户提供一站式网站解决方案!!!

页面置换算法(什么是页面置换算法)

来源:网络转载 时间:2024-04-30 16:04:00

页面置换算法:本质是为了让有限内存能满足无线进程。

先说明一下处理缺页错误的过程:

分页硬件在通过页表转换地址时会注意到无效位被设置,从而陷入操作系统,这种陷阱是因为操作系统未能将所需要的页面调入内存引起的。

处理缺页错误:

1、检查这个进程的内部表,确定该引用是否为有效的内存访问(可以理解为这个内存能被当前进程使用),如果无效那么直接终止进程;如果有效但是尚未调入页面,就将该页面调入内存。

2、然后从空闲帧链表上找到一个空闲帧。

3、调度磁盘将进程所需要的内存读入页帧中,

4、磁盘读取完成,修改页表,使空闲帧对应到该页号上。并且修改页表有效-无效位 为有效。

注意页表中的一些标志位:

修改位:如果有效为位1,表明被修改,那么替换页面时需要将内存写入磁盘中;如果为0,表明未被修改,那么使用页面替换算法直接释放

保护位:可以标记为只读,写。

有效-无效位:i:表示逻辑页号不对应物理页帧,为V表示有对应的物理页帧

页面替换算法:

FIFO:算法

操作系统总时替换出在内存中停留时间最久的页面,可以用一个指针来指向这个位置(开销很小,可以使用一个队列来实现,每次缺页时移出末尾的页面,再队列头添加新的页面,未发生缺页错误就不需要对队列进行操作)

lru算法:操作系统总时替换在内存中最久没有使用的页面:我么可以使用链表来实现这个算法,表头表示的是最近被使用的页面,表尾表示最久没被使用的页面,每一次不管是否发生缺页,都需要对这个链表进行从新增删改查,来保证每一次的链表都是我们需要的(开销太大)

近似LRU算法:我们在页表中添加一个引用位clock,当clock为1时,不能移出,当clock为0时,表明可以移除

procedure t: {  指针p:指向当前的页面  p = 0;//指向初始位置  boolean :标志位clock  进程包含的所有页面组成的循环链表:linklist//当进程在运行时,链表存在,进程结束时,链表也消失  while(进程运行){        if(p.clock == 1){      p.clock = 0;      p++;//指针指向下一个    }    if(p.clock == 0){      删除p指向的页面并且在p处添加新的页面;      p.clock = 1;      p++;    }  }}

近似LRU增强算法:将修改位和引用位合起来作为是否替换条件:当(修改位,引用位) = (0,0)时表明可以替换

procedure t: {  指针p:指向当前的页面  p = 0;//指向初始位置  boolean :标志位clock  boolean : 修改位m  进程包含的所有页面组成的循环链表:linklist//当进程在运行时,链表存在,进程结束时,链表也消失  while(进程运行){          if(p.(clock,m) == (0,0)){            删除p指向的页面并且在p处添加新的页面;      p.(clock,m) = (1,0);      p++;    }    if(p.(clock,m) == (0,1)){                  p.(clock,m) = (0,0);      p++;    }    if(p.(clock,m) == (1,0)){                  p.(clock,m) = (0,0);      p++;    }    if(p.(clock,m) == (1,1)){            p.(clock,m) = (0,1);      p++;    }    if(修改页面){      p.(clock,m) = (1,1);      p++    }    if(读页面){      p.(clock,m) = (1,0);      p++;    }  }}

页面缓冲算法:操作做系统保留一个空闲帧池。

当发生缺页错误时,所需要的页面就读取空闲帧,并且将替换的牺牲帧放入缓冲池,在调页空闲时期将缓冲池中的牺牲帧中的内容写入(如果页表上的修改位为1)磁盘中(减少了操作系统的调页时直接访问磁盘的过程,提高了调页效率).

第二种方法:将牺牲帧中的内容写入磁盘,但是不释放帧中的内容,因为进程有可能调用之前的页,这样就将缓冲池中的帧直接写入内存,减少了(从磁盘读取数据的操作)。

以上均为局部页面置换算法,都是在单个进程内部进行的页面替换操作,但是操作系统在运行过程中不同的进程可以并行并发执行,这样对页面的替换就不会仅仅局限于单个进程中

下面我们学习全局置换算法:我们规定一个工作集和一个常驻集。工作集表明当前程序需要访问的Δ个页面,常驻集表明操作系统正在使用的页面。

工作集:WS(Δ,t) = {}  工作集不断移动,操作系统替换出不在工作集中的页面

动态工作集页面替换算法:如下图,我们规定一个阈值windows size = 2,我们使用两次缺页中断的差值(表明两次中断之间有多少次没有中断)和阈值比较,如果比阈值大,那么将不再当前工作集的页面换出,并且重置工作集的大小,如果比阈值小,那么将缺的页换入工作集并且重置工作集的大小。

以上就是关于什么是页面置换算法的内容,如果你们有学习到知识或者技能,可以把它分享出去让更多的人看到。

标签:页面置换算法-

抖音(Tiktok)是由北京字节跳动科技有限公司(ByteDance)孵化的音乐创意短视频社交网站。它于2016年9月20日上线,主要面向全年龄段的用户,尤其是...

飞极速为您提供高清在线电影、电视剧大全、动画片,综艺等,飞极速在线更新及时,播放速度快,给您带来最好的观影体验!飞极速在线,免费提供日本新番动漫、最新电影和最新...

《南华早报》(英语:South China Morning Post, SCMP)和星期日出版的《星期日南华早报》(英语:Sunday Morning Post...

【资料图】1、共和党的党色是红色,标志是大象 共和党现在是美国保守力量的代表,小布什任总统,反对堕胎、同性婚姻和干细胞研究,主张减税和加强军队防御力量消灭支持恐怖主义嫌疑的国家,攻打阿富汗和伊拉克即是证明。2、民主党的颜色是蓝色,党符号是驴。3、美国民主党没有固定党员,党籍自由。4、党员总数按本党总统候选人投票的结果计算 民主党代表自由主义思想。本文就为大家分享到这里,希望小伙伴们会喜欢。...

涨停板打开是洗盘还是出货?个股涨停板打开可能是出货,也可能是洗盘,需要结合实际情况来考虑。1、从成交量上看如果在涨停板打开时,其成交量出现较大的放量情况,则可能是主力出货;如果在涨停板打开时,其成交量出现缩量的情况,则可能是主力洗盘。2、从筹码分布图上看如果在涨停板打开时,庄家底部的筹码基本不动,而散户底部的获利筹码在不断的卖出,则可能是洗盘;如果在涨停板打开时,庄家出底部的筹码上移,卖给在高位接...

【资料图】据财经日历显示,北京时间2023年6月15日凌晨02:00,美联储将公布议息结果,到时6月份是否加息将揭晓。美国核心通胀意外回升,美联储或倾向于再次加息尽管自一年前见顶以来,美国通胀步伐已有所放缓,但家庭需求强劲可能会使价格压力继续保持在较高水平。这一数据是美联储官员面临的最新挑战,他们正在讨论是否暂停加息行动,并评估收紧对银行体系和经济的更广泛影响,如今超预期且上行的核心PCE数据公布...

TOP