搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
盐析白兔
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
图解目标检测 之 YOLO 算法 最全原理详解_yolo算法原理
2
解决VS code代码爆红的问题(VUE)_visual studio code突然变成红色
3
后台ui大全(有这些你就够了)
4
从零开始在腾某云部署Vue、Express、Spring boot项目_express spring vue
5
Element UI 中国省市区级联选择器_element ui地区选择器
6
Eslint配置 Must use import to load ES Module(已解决)
7
Unity开发日记【第一天】——素材的导入及地图的建立_unity从官网导入现成的街景
8
【Abp VNext】实战入门(五):【13】前端管理界面 vue-element-admin —— 左侧菜单自定义图标及图标大小控制_vue菜单图标
9
CVPR2019论文列表(中英对照)_label propagation for deep semi-supervised learnin
10
去除element table表格所有边框_element tabel去除上下边框线
当前位置:
article
> 正文
3.4 页面置换算法_nfu算法
作者:盐析白兔 | 2024-02-29 03:45:17
赞
踩
nfu算法
3.4 页面置换算法
1. 最优页面置换算法
将每个页面在接下来首次被访问前要执行的指令数作为标记,每次置换标记最大的页面。但是它不可能实现,因为与最短作业优先调度算法一样,无法知道各个页面下一次在什么时候被访问。
2. 最近未使用页面置换算法(NRU)
页表项中有页面的访问位R位和修改位M位。
当启动一个进程时,它的所有页面两个位都初始化成0,且R位会被定期清零(如每次时钟中断)以区别最近没有被访问的页面和被访问的页面。
缺页中断时,操作系统检查页面的R位和M位,分为4类:
第一类可能是第三类页面R位被时钟中断清零后得到。
NRU每次随机地从类编号最小的非空类中挑选一个页面淘汰。
3. 先进先出页面置换算法(FIFO)
操作系统维护一个所有当前在内存中的页面的链表,最新进入的放表尾。缺页中断时淘汰表头页面。
4. 第二次机会页面置换算法
改进FIFO,每次检查表头页面的R位,如果R位为0则淘汰,如果R位为1则将R位清零,并将该页面放到表尾,之后继续搜索。
如果所有页面的R位都为1,则退化成FIFO算法。
5. 时钟页面置换算法
第二次机会页面置换算法组织成环形链表(时钟),用一个指针,每次检查指针指向的页面,若R为0则淘汰,并在此处插入新页面,若R为1则清零并指针下移。
6. 最近最少使用页面置换算法(LRU,想法好难实现)
发生缺页中断时,置换未使用时间最长的页面。
如要在内存中维护一个所有页面的链表,最近最多使用的页面在表头,反之在表尾,困难在每次方位内存都要重新更新整个链表,找到一个页面删除并移动到表头,非常耗时。
有一些使用特殊硬件实现LRU,硬件有一个64位计数器,在每条指令执行完自动加一。每次访问内存后,把当前计数值保存到被访问页面的页表项。中断时,找到值最小的页面淘汰。
还有一种是硬件维持一个n*n的矩阵(假设n个页框),访问页框k时,把第k行全设为1,第k列全设为0.任何时刻,二进制数值最小的行就是最近最少使用的。依此类推。
7. 软件模拟LRU(NFU算法) (粗糙地近似LRU)
每个页面与一个软件计数器关联,初始化为0。每次时间中断由操作系统扫描所有页面,把每个页面的R位加到计数器上。这样计数器大体上跟踪了各个页面的被访问频繁程度。
缺点是:从来不忘记任何事情。
8. 老化算法: (良好的近似LRU)
是NFU算法的改良,它同样是缺页中断时置换计数器最小的页面。
R位被加进去之前,计数器右移一位,并将R位加到计数器最左端的位。
与LRU算法区别是它只有有限位数,而且越recent的影响越大。
9.工作集页面置换算法
请求调页:页面在需要时被调入,而不预先装入
预先调页:跟踪工作集,在进程运行前预先装入其工作集,减少缺页中断率
工作集:一个进程当前正在使用的页面集合
颠簸:每执行几条指令程序就发生一次缺页中断
算法:缺页中断时,淘汰一个不在工作集中的页面。
key:确定哪些页面在工作集
方案一:维护移位寄存器保存最近使用的k个页面号,每次使用新页面就更新,但开销特别大。
方案二:近似,不是向后找最近k次内存访问,而是最近10ms等的内存访问用到的页面集合。该时间是进程实际占用CPU的时间。该时间设为t。
同时会用硬件来预先设置R位和M位为0,同时每个时钟中断后也会有一个定期时钟中断来清除R位。
这样算法就可以:
每次,检查R位,若R位为1,明显在工作集中,则把当前实际时间更新进页表项的“上次使用时间”。若R位为0,则计算它的生存时间(当前实际时间-上次使用时间),若它大于t则表示不在工作集,因此可以置换它(但扫描还要继续,因为扫描同时有更新时间的作用),若小于t则要记录这些小于t的生存时间最长的(“上次使用时间”最小的),如果扫描完都找不到就淘汰这么一个生存时间最长的。
特别地,如果R位全为1,就随机选一个,但优先选一个干净页面。
缺点:缺页中断时要扫描整个页表才能确定淘汰的页面,比较费时。
10. 工作集时钟页面置换算法
组织成循环表(环)
同样用一个指针,具体算法同上面的算法,只是在发现一个R位为0且生存时间大于t的页面时,如果它是脏的(被修改过的),为了避免由于调度写磁盘操作引起进程切换,所以指针继续走,对下一个页面操作。(最后没有符合的就只能~咯!)
11. 总结
最好的两种应该是老化算法(基于LRU)和工作集时钟算法(基于工作集)。
2018/03/14 23:53
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/盐析白兔/article/detail/163549
推荐阅读
article
前端面试+学习笔记(
HTML
+
CSS
+
JavaScript
+
ES6
+
Vue
+NodeJs)_vue ...
前端面试+学习笔记(
HTML
+
CSS
+
JavaScript
+
ES6
+
Vue
+NodeJs)一.
HTML
1. 盒子模型是...
赞
踩
article
宝塔
面板
使用教程_
宝塔
教程...
如果你要安装
宝塔
linux
面板
,你要准备好一个纯净版的linux操作系统,没有安装过其它环境带的Apache/Nginx...
赞
踩
article
vue
核心
面试题
(
nextTick
实现
原理
)_
面试题
vue
$
nexttick
是
什么
原理
...
概念:
nextTick
就
是
一个异步方法。
nextTick
方法主要
是
使用了宏任务和微任务(事件循环机制),定义了一个异步...
赞
踩
article
node
.js
window10
上
安装
出现错误-“系统
无法访问
设备
或文件
error
code
275...
node
.js
window10
上
安装
出现错误-“系统
无法访问
设备
或文件
error
code
2755“ 看到这错误第一...
赞
踩
article
【
单片机
项目实训】八
路
抢答器
_
8
路
抢答器
...
8
路
抢答器
,可以供八名选手抢答,具有第一抢答信号的鉴别和锁存功能。
_
8
路
抢答器
8
路
抢答器
将...
赞
踩
article
Go
结构
体
深度探索
:
从基础到
应用
...
在计算机编程中,数据
结构
是组织、管理和存储数据的一种方式,它允许高效地执行各种操作。
Go
语言中的
结构
体
(Struct)是...
赞
踩
article
Mamba
作者谈
LLM
未来
架构
...
在大模型领域,一直稳站C位的 Transformer 最近似乎有被超越的趋势。这个挑战者就是一项名为【
Mamba
】的研究...
赞
踩
article
《
深度
学习
》Hs
训练营
【
第二期
】
视频教程
...
目录:┣━━00【学前准备】开营仪式,认识群内的小伙伴┣━━01 第一周线性代数┣━━02 第一周:概率与信息伦,数值计...
赞
踩
article
logback
设置
maxHistory
日志清除
不起作用
...
设置了
maxHistory
不起作用
,增加cleanHistoryOnStart后可以
[详细]
-->
赞
踩
article
Git
分支
管理...
本文章详细介绍了GIt的
分支
管理,包括理解
分支
,创建
分支
,切换
分支
,合并
分支
,删除
分支
,合并冲突以及如何剞劂,big
分支
...
赞
踩
article
基于
Python
爬虫
黑龙江
哈尔滨
天气预报
数据
可视化
系统设计与实现(
Django
框架)
研究
背景与意义...
基于
Python
爬虫
黑龙江
哈尔滨
天气预报
数据
可视化
系统设计与实现(
Django
框架)
研究
背景与意义、国内外
研究
现状,帮...
赞
踩
article
页面
置
换
算法
-OPT +
FIFO
+ LRU+
CLOCK
_利用opt、
fifo
和lru
算法
计算缺页...
如果是1,则将它
置
为0,暂不换出,继续检查下一个
页面
,若第一轮扫描中所有
页面
都是1,则将这些
页面
的访问位依次
置
为0后,再...
赞
踩
article
FPGA
学习笔记:
Vivado
2020.2
MicroBlaze
MIG
测试
DDR3
篇尾...
FPGA
学习笔记:
Vivado
2020.2
MicroBlaze
MIG
测试
DDR3
篇尾_microblaze...
赞
踩
article
页面
更换
算法
_nru...
页面
需要更换之前介绍了分页系统。它克服了交换系统的各种缺点:外部碎片、难以增长、程序不能大于物理内存。但是天下没有免费的...
赞
踩
article
2021
前端
面试题
系列
:
vue
相关
面试题
(二)
_
nuxt
面试题
...
大家好,我是
前端
岚枫,今天主要跟大家分享我整理的笔记2021
前端
面试题
系列
:
使用Proxy代理跨域、watch监听、ke...
赞
踩
article
软件
安装
教程
------
安装
vscode
并实现
远程
服务器
的链接和
annconda
虚拟环境
配置在一起,...
一,
安装
参考博文
vscode
安装
和使用
教程
Java_悲恋花丶无心之人的博客-CSDN博客_
vscode
java使用
教程
...
赞
踩
article
操作系统
实验
页面
置换
算法
LRU
置换
算法
计数器和
时间
戳_lru
时间
戳...
1.实验要求已知系统为一进程分配的物理块数,进程运行过程中引用的
页面
号,编程使用
LRU
算法
输出
置换
的页号、缺页中断次数及...
赞
踩
article
xvideo
s打开显示
服务器
出错,为什么打开
xvideo
显示
网页
...
满意答案eepgycj42016.03.31采纳率:54%等级:9已帮助:1814人打开
xvideo
显示
网页
。
网页
是构成...
赞
踩
article
C语言:
数组
的
地址
和
数组
首
元素
的
地址
的
区别...
当我们谈论
数组
的
地址
时,我们通常指
的
是整个
数组
的
起始
地址
,也就是
数组
第一个
元素
的
地址
。例如,如果你有一个指向10个整数
的
...
赞
踩
article
还未被超越
的
两本
深度
学习
,
一本用来入门
,
一本用来进阶_
深度
学习
花书
pdf
...
入门
深度
学习
请看《动手学
深度
学习
》入门优势:书
的
每一章用文字、数学、图示和代码来多方面介绍一个知识点。它是一个Jupyt...
赞
踩
相关标签
HTML+CSS
javascript
ES6
Vue
NodeJS
linux
服务器
centos
vue.js
前端
node.js
error
单片机
嵌入式硬件
51单片机
抢答器
课程设计
golang
go
开发语言
架构
计算机视觉
深度学习
transformer
Mamba