信息
- 适用领域范围
- 服务器终端
- 应用学科
- 计算机
- 中文名
- 页面置换算法
页面置换算法常见的置换算法
这是一种理想情况下的页面置换算法,但实际上是不可能实现的。该算法的基本思想是:发生缺页时,有些页面在内存中,其中有一页将很快被访问(也包含紧接着的下一条指令的那页),而其他页面则可能要到10、100或者1000条指令后才会被访问,每个页面都可
[1]
以用在该页面首次被访问前所要执行的指令数进行标记。最佳页面置换算法只是简单地规定:标记最大的页应该被置换。这个算法唯一的一个问题就是它无法实现。当缺页发生时,操作系统无法知道各个页面下一次是在什么时候被访问。虽然这个算法不可能实现,但是最佳页面置换算法可以用于对可实现算法的性能进行衡量比较。
[1]
最简单的页面置换算法是先入先出(FIFO)法。这种算法的实质是,总是选择在主存中停留时间最长(即最老)的一页置换,即先进入内存的页,先退出内存。理由是:最早调入内存的页,其不再被使用的可能性比刚调入内存的可能性大。建立一个FIFO队列,收容所有在内存中的页。被置换页面总是在队列头上进行。当一个页面被放入内存时,就把它插在队尾上。
[1]
这种算法只是在按线性顺序访问地址空间
[1]
时才是理想的,否则效率不高。因为那些常被访问的页,往往在主存中也停留得最久,结果它们因变“老”而不得不被置换出去。FIFO的另一个缺点是,它有一种异常现象,即在增加存储块的情况下,反而使缺页中断率增加了。当然,导致这种异常现象的页面走向实际上是很少见的。
[1]
FIFO算法和OPT算法之间的主要差别是,FIFO算法利用页面进入内存后的时间长短作为置换依据,而OPT算法的依据是将来使用页面的时间。如果以最近的过去作为不久将来的近似,那么就可以把过去最长一段时间里不曾被使用的页面置换掉。它的实质是,当需要置换一页时,选择在之前一段时间里最久没有使用过的页面予以置换。这种算法就称为最久未使用算法(Least Recently Used,LRU)。
[1]
LRU算法是与每个页面最后使用的时间有关的。当必须置换一个页面时,LRU算法选择过去一段时间里最久未被使用的页面。
[1]
LRU算法是经常采用的页面置换算法,并被认为是相当好的,但是存在如何实现它的问题。LRU算法需要实际硬件的支持。其问题是怎么确定最后使用时间的顺序,对此有两种可行的办法:
[1]
1.计数器。最简单的情况是使每个页表项对应一个使用时间字段,并给CPU增加一个逻辑时钟或计数器。每次存储访问,该时钟都加1。每当访问一个页面时,时钟寄存器的内容就被复制到相应页表项的使用时间字段中。这样我们就可以始终保留着每个页面最后访问的“时间”。在置换页面时,选择该时间值最小的页面。这样做,
[1]
不仅要查页表,而且当页表改变时(因CPU调度)要
[1]
维护这个页表中的时间,还要考虑到时钟值溢出的问题。2.栈。用一个栈保留页号。每当访问一个页面时,就把它从栈中取出放在栈顶上。这样一来,栈顶总是放有目前使用最多的页,而栈底放着目前最少使用的页。由于要从栈的中间移走一项,所以要用具有头尾指针的双向链连起来。在最坏的情况下,移走一页并把它放在栈顶上需要改动6个指针。每次修改都要有开销,但需要置换哪个页面却可直接得到,用不着查找,因为尾指针指向栈底,其中有被置换页。
[1]
因实现LRU算法必须有大量硬件支持,还需要一定的软件开销。所以实际实现的都是一种简单有效的LRU近似算法。
[1]
一种LRU近似算法是最近未使用算法(Not Recently Used,NUR)。它在存储分块表的每一表项中增加一个引用位,操作系统定期地将它们置为0。当某一页被访问时,由硬件将该位置1。过一段时间后,通过检查这些位可以确定哪些页使用过,哪些页自上次置0后还未使用过。就可把该位是0的页淘汰出去,因为在之前最近一段时间里它未被访问过。
[1]
4)Clock置换算法(LRU算法的近似实现)
[1]
5)最少使用(LFU)置换算法在采用最少使用置换算法时,应为在内存中的每个页面设置一个移位寄存器,用来记录该页面被访问的频率。该置换算法选择在之前时期使用最少的页面作为淘汰页。由于存储器具有较高的访问速度,例如100 ns,在1 ms时间内可能对某页面连续访
[1]
问成千上万次,因此,通常不能直接利用计数器来记录某页被访问的次数,而是采用移位寄存器方式。每次访问某页时,便将该移位寄存器的最高位置1,再每隔一定时间(例如100 ns)右移一次。这样,在最近一段时间使用最少的页面将是∑Ri最小的页。
[1]
LFU置换算法的页面访问图与LRU置换算法的访问图完全相同;或者说,利用这样一套硬件既可实现LRU算法,又可实现LFU算法。应该指出,LFU算法并不能真正反映出页面的使用情况,因为在每一时间间隔内,只是用寄存器的一位来记录页的使用情况,因此,访问一次和访问10 000次是等效的。6)工作集算法
[1]
7)工作集时钟算法8)老化算法(非常类似LRU的有效算法)
[1]
9)NRU(最近未使用)算法10)第二次机会算法第二次机会算法的基本思想是与FIFO相同的,但是有所改进,避免把经常使用的页面置换出去。当选择置换页面时,检查它的访问位。如果是
[1]
0,就淘汰这页;如果访问位是1,就给它第二次机会,并选择下一个FIFO页面。当一个页面得到第二次机会时,它的访问位就清为0,它的到达时间就置为当前时间。如果该页在此期间被访问过,则访问位置1。这样给了第二次机会的页面将不被淘汰,直至所有其他页面被淘汰过(或者也给了第二次机会)。因此,如果一个页面经常使用,它的访问位总保持为1,它就从来不会被淘汰出去。
[1]
第二次机会算法可视为一个环形队列。用一个指针指示哪一页是下面要淘汰的。当需要一个
[1]
存储块时,指针就前进,直至找到访问位是0的页。随着指针的前进,把访问位就清为0。在最坏的情况下,所有的访问位都是1,指针要通过整个队列一周,每个页都给第二次机会。这时就退化成FIFO算法了。
[1]
-
页面置换算法演示 实验目的 1. 分析内存管理办法中每个页面置换算法原理; 2. 掌握页面置换算法执行过程。 二、实验预备内容 1. 熟悉内存管理办法; 2. 熟悉页面置换算法原理; 3. 熟悉不同页面置换算法的置换过程。...
-
页面置换算法(java)
2021-02-26 14:18:35在一个请求分页系统中,分别采用最佳置换算法、先进先出置换算法、最近最久未使用置换算法(LRU)时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在... -
用C++实现LRU页面置换算法
2020-06-03 09:24:22使用LRU算法实现页面置换算法。LRU算法基于一种假设,长期不使用的数据,在未来的使用性也不大。因此,当数据占用内存达到一定的阙值时,我们要移除最近最少使用的数据。LRU算法中,使用了一种有趣的数据结构,叫做... -
页面置换算法(OPT、FIFO、LRU)实现--C++版本-页面置换算法(Optimal、FIFO、LRU)
2019-12-18 10:16:04该工程具体是在codeblock上面实现了操作系统课程上讲解的页面置换算法,包括先进先出(FIFO)、最佳置换算法(OPT)、最久最近未使用算法(LRU)。 具体实现功能有: 1、建立相应的数据结构 2、在屏幕上显示页面... -
操作系统课程设计——页面置换算法模拟实现
2022-02-24 11:09:02通过对请求页式存储管理中页面置换算法的模拟设计,掌握请求页式存储管理页面置换算法,并进一步理解虚拟存储技术的原理及特点。 设计内容:设计一个虚拟存储及内存工作区,使用先进先出算法(FIFO),理想型淘汰... -
页面置换算法模拟实验操作系统大作业(含源文件),操作系统页面置换算法实验报告,C,C++
2021-09-10 18:55:51华南理工大学2020秋季作业算法模拟。。。。 -
页面置换算法的模拟实现.docx
2021-03-03 19:07:58a:最佳置换算法(OPT):将以后永不使用的或许是在最长(未来)时间内不再被访问的页面换出。 b: 先进先出算法(FIFO):淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。 c:最近最久未使用算法(LRU)... -
页面置换算法的模拟实现及命中率对比
2020-02-02 07:00:17通过请求页式管理方式中页面置换算法的模拟设计,了解虚拟存储技术的特点,掌握请 求页式存储管理中的页面置换算法。 容 二、课程设计内容 模拟实现 OPT(最佳置换)、FIFO 和 LRU 算法,并计算缺页率。 示 三、要求... -
实验六虚拟内存页面置换算法_最近最少使用页面置换算法
2020-01-29 16:21:44甘肃政法学院 本科生实验报告 六 姓名 : 马晓娟 学院 : 公安技术学院 专业 : 信息安全 班级 :...第一学期 甘肃政法学院实验管理中心印制 实验题目 小 组 合 否 虚拟内存页面置换算法 作 姓名 马晓娟 班级 2013 级 信 学 -
页面置换算法模拟 实验报告.doc
2020-06-11 13:51:12编程实现页面置换算法,最少实现两种算法,比较算法的优劣,并将调试结果显示在计算机屏幕上,检测机算和笔算的一致性。 (1)采用页式分配存储方案,通过分别计算不同算法的命中率来比较算法的优劣,同时也考虑页面... -
操作系统 C++ 页面置换算法(含实验报告)有opt,LRU,先进先出,时钟算法,改进的时钟算法等所有算法
2020-10-04 06:00:14页面置换算法 最佳置换算法(OPT):选择永不使用或是在最长时间内不再被访问(即距现在最长时间才会被访问)的页面淘汰出内存。用于算法评价参照。 随机置换算法 (S):产生一个取值范围在0和N-1之间的随机数,该... -
操作系统实验:页面置换算法的模拟实现及命中率对比.rar
2020-06-28 15:18:57本资源使用Java实现了页面置换算法OPT、FIFO、LRU的模拟实现以及FIFO和LRU的命中率对比,内容包括Java源项目、jar包和bat文件。该资源的文字版信息请访问博客《操作系统实验:页面置换算法的模拟实现及命中率对比... -
实验三页面置换算法模拟实验.pdf
2020-07-17 03:01:28实用文案 计算机科学系 实 验 报 告 书 课 程 名 操 作 系 统 题 目 虚拟存储器管理 页面置换算法模拟实验 班 级 学 号 姓 名 评语 成绩 指导教师 批阅时间 年 月 日 标准文档 实用文案 一实验目的与要求 1.... -
操作系统—页面置换算法(C++实现)
2019-05-13 17:37:47页面置换算法: 资源包含三个算法:OPT---最佳置换算法、//FIFO---先进先出、//LRU---最近最久未使用 操作:用户输入物理块数、页面待要访问的个数、每个页面编号,计算出缺页数、置换数、缺页率 语言:C++ 运行环境... -
LRU_页面置换算法—LRU_页面置换算法_
2021-10-03 05:26:50页面置换算法—LRU (1)建立相应的数据结构; (2)在屏幕上显示物理块的变化,可逐步展示或完整展示; (3)设计页面访问序列,可以展现你所设计的页面置换算法; (4)计算页面的缺页次数、缺页后的页面置换次数 -
计算机操作系统实验4页面置换算法.pdf
2021-09-30 14:05:20计算机操作系统实验4页面置换算法.pdf -
页面置换算法LRU(模拟页面管理)
2019-11-01 22:39:51页面置换算法LRU(模拟页面管理) 用高级语言编写一个页面置换算法LRU的模拟程序。 设置恰当的数据结构,有效存储数据。 动态输入存储区块数、作业调度序列。 输出分配结果、置换过程以及其它相关的... -
操作系统:分页管理系统页面置换算法设计与实现
2022-01-11 12:17:37一个请求分页管理系统,按字节编址,逻辑地址及物理地址的有效位均为32位(二进制),页面大小为4KB。假设一次内存访问时间为100ns,处理一次缺页的平均时间105 ns(已含更新页表的时间,缺页中断中不更新快表)。 -
实验四 页面置换算法.docx
2020-05-16 20:47:02要求计算以下两种置换算法的缺页数 1先进先出算法FIFOFirst In First Out 2最近最久未使用算法LRULeast Recently Used 二实验实训方法过程步骤 1新建一个文件命名为fifo.c并打开该文件编写C程序 2在fifo.c程序中实现... -
燕山大学课程设计评优作品(页面置换算法)
2021-01-13 10:28:40燕山大学2018级操作系统课程设计评优作品,页面置换算法的实现,其中包括课程设计书,源码,答辩PPT。该项目实现的功能包括多种页面置换算法(FIFO,LRU,OPT)页面置换算法的动态显示,各类参数的设定,实验结果的... -
山东大学操作系统实验七内存页面置换算法问题.pdf
2021-09-30 13:09:30山东大学操作系统实验七内存页面置换算法问题.pdf -
lru页面置换算法模拟最近最久未使用置换算法课程设计.docx
2020-11-17 21:06:24LRU页面置换算法模拟 - 最近最久未使用置换算法 - 课程设计 LRU 页面置换算法模拟 - 最近最久未使用置换算法 | 课程设计 | 计算机数据库课程设计 一设计目的 1用 C 语言实现最近最久未使用 LRU置换算法 2了解内存... -
操作系统课程设计之页面置换算法(流程模拟)
2020-12-22 15:18:41C#源码 -
三种页面置换算法的分析及C语言代码-附件资源
2021-03-05 15:18:14三种页面置换算法的分析及C语言代码-附件资源 -
页面置换算法
2018-12-20 18:26:07使用简单的图形化界面展示了FIFO、LRU、SC、Clock四种页面置换算法的运行结果,可以接受任意长度的作业序列,并统计缺页中断次数以及缺页中断率。 -
操作系统页面置换算法
2018-12-28 14:39:45包括了操作系统页面置换算法,其中有OPT,FIFO,LRU,CLOCK,改进型的CLOCK算法 -
操作系统 课程设计 页面置换算法FIFO和 LRU
2018-08-14 08:27:10这是一个自己完成软件工程的操作系统课程课程设计题目:此程序用于模拟虚拟磁盘页面置换算法,实现了FIFO页面置换算法和LRU页面置换算法,获得课程设计优秀的好成绩 -
页面置换算法实现
2017-12-30 19:41:31(1)理解页面置换相关理论 (2)掌握OPT、FIFO、LRU、Clock及改进型Clock置换算法 (3) 观察不同算法的页面置换情况,分析比较不同算法的特点 -
页面置换算法的比较
2018-04-18 11:25:241. 通过模拟实现几种基本页面置换的算法,进一步熟悉虚拟存储器的概念及实现虚拟存储器的方法;...2. 掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想; 3. 对各种算法的性能进行分析比较。 -
《操作系统》实验五:页面置换算法模拟.pdf
2021-09-30 12:12:36《操作系统》实验五:页面置换算法模拟.pdf
收藏数
19,102
精华内容
7,640