精华内容
下载资源
问答
  • Clock置换算法

    2020-07-22 14:32:55
    置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,就选择该页置换出去;若为1,则重新置位0,暂不换出,给予该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。当检查到队列中的最后一个页面,若其...

    虽然LRU是一种比较好的算法,但它需要较多的硬件支持,使得其实现所需要的成本较高,故在实际应用中,常采用LRU的近似算法

    1. 简单的Clock算法
      当利用简单的Clock算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位置为1。置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,就选择该页置换出去;若为1,则重新置位0,暂不换出,给予该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。当检查到队列中的最后一个页面,若其访问位仍然为1,则再返回到队首检查第一个页面。
    2. 改进型的Clock置换算法
      在将一个页面换出时,如果该页已经被修改过,便须把该页重新写回磁盘上,但如果该页未被修改过,则不必拷回磁盘。所以,对于修改过的页面,在换出时所付出的开销比未修改过的页面大,所以增加一个因素——置换代价。
      选择页面换出时,既要是未使用过的页面,又要是未被修改过的页面,把同时满足这两个条件的页面作为首选淘汰的页面

    访问位A和修改位M可以组合形成四种类型的页面
    A=0,M=0,该页既没有被访问过,也没有被修改过,是最佳淘汰页
    A=0,M=1
    A=1,M=0
    A=1,M=1

    执行过程:
    (1)从指针所指示的当前位置开始,扫描循环队列,寻找A=0且M=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变A
    (2)如果第一步失败,即查找一轮后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页面。在第二轮扫描期间,所有扫描过的页面的访问位都置位0
    (3)如果第二步也失败,也没有找到第二类页面,则将指针返回到开始的位置,并把所有的访问位都置为0,然后重复第一步,寻找A=0,M=0的第一类页面,如果再失败,就重复第二步,A=0,M=1,此时一定能找到被淘汰页面

    该算法与简单的Clock算法相比,可减少磁盘的I/O操作次数,但是算法本身的查找开销增大

    展开全文
  • 页面置换算法-CLOCK置换算法及其改进版算法

    万次阅读 多人点赞 2018-12-29 13:31:51
    本文主要介绍页面置换算法中的CLOCK置换算法。页面置换算法中的LRU算法最接近理想情况下的OPT算法,但是实现起来比较困难且开销较大,所以很多设计者试图用开销比较小的算法接近LRU算法,CLOCK算法就是其中一种。 1...

    本文主要介绍页面置换算法中的CLOCK置换算法。页面置换算法中的LRU算法最接近理想情况下的OPT算法,但是实现起来比较困难且开销较大,所以很多设计者试图用开销比较小的算法接近LRU算法,CLOCK算法就是其中一种。

    1.简单的CLOCK算法是通过给每一个访问的页面关联一个附加位(reference bit),有些地方也叫做使用位(use bit)。他的主要思想是:当某一页装入主存时,将use bit置成1;如果该页之后又被访问到,使用位也还是标记成1。对于页面置换算法,候选的帧集合可以看成是一个循环缓冲区,并且有一个指针和缓冲区相关联。遇到页面替换时,指针指向缓冲区的下一帧。如果这页进入主存后发现没有空余的帧(frame),即所有页面的使用位均为1,那么这时候从指针开始循环一个缓冲区,将之前的使用位都清0,并且留在最初的位置上,换出该桢对应的页。

    以下面这个页面置换过程为例,访问的页面依次是:1,2,3,4,1,2,5,1,2,3,4,5。主存有4个空闲的帧,每个页面对应的结构为(页面号,使用位)

    1. 最开始页面号1进入主存,主存里面有空闲的帧,将其使用位记成1,由于主存中之前没有页面1,所以会发生缺页中断。
    2. 同理随后的页面2,3,4进入主存,将其使用位记成1,发生缺页中断。
    3. 当之后的页面1,2进入主存时,由于页面1,2已经在主存中,不做处理。
    4. 当之后的页面5进入主存时,主存内没有空余的帧,这时候随着指针循环移动整个缓冲区,将之前页面的使用位全部清0,即这时候页面1,2,3,4对应的使用位全部为0,指针回到最初的位置,将页面1替换出去,页面5换入主存,同时使用位标记成1。以此类推,可知CLOCK共发生10次缺页中断。

     2.改进型的CLOCK算法

    在之前的CLOCK算法上面除了使用位(used bit),还增加了一个修改位(modified bit),有些地方也叫做dirty bit。现在每一页有两个状态,分别是(使用位,修改位),可分为以下四种情况考虑:

    (0,0):最近没有使用使用也没有修改,最佳状态!

    (0,1):修改过但最近没有使用,将会被写

    (1,0):使用过但没有被修改,下一轮将再次被用

    (1,1):使用过也修改过,下一轮页面置换最后的选择

    以下面这个页面置换过程为例:访问的页面依次是:0,1,3,6,2,4,5,2,5,0,3,1,2,5,4,1,0,其中红色数字表示将要修改的页面,即他们的modified bit将被设置成1,在下图中这些页面用斜体表示,使用位和修改位如下图所示。下面的"Fault ?"表示缺页时查找空闲frame的次数。

    页面替换的顺序:

    1. 从指针当前的位置开始寻找主存中满足(使用位,修改位)为(0,0)的页面;
    2. 如果第1步没有找到满足条件的,接着寻找状态为(0,1)页面;
    3. 如果依然没有找到,指针回到最初的位置,将集合中所有页面的使用位设置成0。重复第1步,并且如果有必要,重复第2步,这样一定可以找到将要替换的页面。

    以下面替换的流程为例: 

    1.当页面0来时,Frame0空闲,所以换入页面0,修改状态为(1,0),同时发生缺页中断。

    2.当访问页面1时,由于页面1,将要被修改,其状态设置为(1,1),同时发生缺页中断。

    3.同理对于接下来的页面3,6,将其状态设置为(1,0),,同时发生缺页中断。

    4.对于接下来的页面2,按照之前的页面置换算法的顺序,他现在主存中找状态为(0,0)的页面,发现没有....然后执行算法的第二步,找状态为(0,1)的页面,发现还是没有.....这时候把主存里面所有页面的used bit清零,再重复执行算法的第一步,此时由于页面0的状态已经变成(0,0),页面2把页面0替换出主存。同时由于在之前的设计中页面2属于将要被修改(modify)的页面,故将其状态设置为(1,1)。由于经历了两轮查找,所以"Fault ?"对应的查找次数为2*4+1=9。同理可类推访问其他页面的情况。最后可知缺页次数为13次。

     

    欢迎指正~ 

    参考资料:

    http://courses.cs.tamu.edu/bart/cpsc410/Supplements/Slides/page-rep3.pdf

    资料更新:

    https://github.com/totororz/Examples-of-page-replacement-problems/blob/master/page-rep3.pdf

    展开全文
  • 页面置换之Clock置换算法

    千次阅读 2019-11-17 11:14:22
    1、简单的Clock置换算法 当采用简单Clock算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位被置1。置换算法在选择一页淘汰时,只需检查页的访问...

    LRU算法是较好的一种算法,但由于它要求有较多的硬件支持,故在实际应用中,大多采用LRU的近似算法。Clock算法就是用得较多的一种LRU近似算法。

    1、简单的Clock置换算法

    当采用简单Clock算法时,只需为每页设置一位访问位,再将内存中的所有页面都通过链接指针链接成一个循环队列。当某页被访问时,其访问位被置1。置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,就选择该页换出;若为1,则重新将它置0,暂不换出,而给该页第二次驻留内存的机会,再按照FIFO算法检查下一个页面。下图示出了该算法的流程和示例。由于该算法是循环地检查各页面的使用情况,故称为Clock算法。但因该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,故又把该算法称为最近未用算法NRU(Not Recently Used)。
    在这里插入图片描述

    2、改进型Clock置换算法

    在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。在改进型Clock算法中,除须考虑页面的使用情况外,还须再增加一个因素,即置换代价,这样,选择页面换出时,既要是未使用过的页面,又要是未被修改过的页面。把同时满足这两个条件的页面作为首选淘汰的页面。由访问位A和修改位M可以组合成下面四种类型的页面:
    1类(A=0,M=0):表示该页最近既为被访问,又未被修改,是最佳淘汰页。
    2类(A=0,M=1):表示该页最近未被访问,但也被修改,并不是很好的淘汰页
    3类(A=1,M=0):表示该页最近已被访问,但未被修改,该页有可能再被访问
    4类(A=1,M=1):表示该页最近已被访问且被修改,该页可能再被访问
    在内存中的每个页必定是这四个类页面之一,在进行页面置换时,可采用与简单Clock算法相类似的算法,其差别在于该算法须同时检查访问位与修改位,以确定该页是四类页面中的哪一种。其执行过程可分成以下三步:

    (1)从指针所指示的当前位置开始,扫描循环队列,寻找A=0且M=0的第一类页面,将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位A
    (2)如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有扫描过的页面的访问位都置0
    (3)如果第二步也失败,亦即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页

    该算法与简单Clock算法比较,可减少磁盘的I/O操作次数。但为了找到一个可置换的页,可能须经过几轮扫描。换言之,实现该算法本身的开销将有所增加。

    展开全文
  • 置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,将该页换出;若为1,将该页重新置0,暂不换出,给予该页第二次驻留内存的机会,再检查下一个页面。 当检查到队列的最后一个页面时,若访问位仍为1,则返回...

    1.1.算法思想

    为每页设置一访问位,将内存中的所有页面链成一个循环队列。当某页被访问时,访问位置1。置换算法在选择一页淘汰时,只需检查页的访问位。如果是0,将该页换出;若为1,将该页重新置0,暂不换出,给予该页第二次驻留内存的机会,再检查下一个页面。

    当检查到队列的最后一个页面时,若访问位仍为1,则返回队首去检查第一个页面。

    1.2.算法流程

    • 访问的页面在内存中:

      • 若该页面的访问位为0,将其置为1
      • 如果为1,仍保留位1
    • 访问的页面不在内存中:

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0yNVWFXe-1604238697370)(D:\笔记图片集\简单的Clock置换算法.png)]

    1.3.示例

    在请求分页系统中,假设系统为进程P分配5个物理块,并将页面5,7,3,2预先装入主存且访问位A为1,0,0,0,页面访问串如下,采用Clock页面置换算法。说明:低物理地址优先,替换指针开始指向最低地址的物理块。6,5,2,5,6,3,0,5,6,1,0,7,2,6,5,2,4,6,0,5。

    ①求缺页中断次数

    ②求页面置换次数;求页面置换次数;并给出最后主存中的页面P及对应的访问位A的值(用P-A表示)


    注:其中:红色表示访问位为1,星号表示替换指针的位置(初始在低地址)。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3xHxvgQq-1604238697372)(D:\笔记图片集\QQ截图20201030175908.png)]

    答案:

    • ①缺页次数:9

    • ②页面置换次数:8

      主存中的页面及访问位:2-0,4-1,6-1,0-1,5-1

    展开全文
  • clock页面置换算法

    2013-06-22 08:47:31
    采用CLOCK置换算法仿真请求分页系统 1、设计目的:用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。 2、设计要求: 1) 实现请求分页存储管理方式的页面置换算法:CLOCK算法 2) 内存物理块数...
  • Clock与改进Clock置换算法实现.doc
  • Clock及改进Clock置换算法实现.doc
  • 简单Clock置换算法

    2021-11-05 21:15:03
  • CLOCK页面置换算法

    千次阅读 2020-11-23 20:00:29
    1 时钟置换算法 CLOCK 1.1 代码实现 原谅我的无聊,偏要写一下代码实现以下 给定驻留集大小 访问串 计算每次内存中页面,并最终计算缺页率 BLOCKS = 3 # 驻留集大小 PAGE_ACCESS = [3, 4, 2, 6, 4, 3, 7, 4, 3,...
  • 操作系统时钟(CLOCK)置换算法

    万次阅读 多人点赞 2020-01-14 20:08:44
    时钟(CLOCK)置换算法流程 注意:红色为访问位,蓝色为内存数据 箭头处开始 第一步: 第一个页面走向为3,此时内存中没有数据,且访问位为0,于是将3放入内存,并修改访问位为1,指针下移,得到如下图 ...
  • 时钟(CLOCK)置换算法

    万次阅读 多人点赞 2018-12-28 21:44:19
    当调入进程所请求的页面时,如果内存中已经没有空闲块了,则必须按照某种算法将内存中的若干页面...但是CLOCK置换算法比较难从书上获取准确的概念了,教材上的定义替换指针的位置描述得不清楚,网上的clock例子也...
  • Clock页面置换算法(简单和改进)

    千次阅读 2020-12-06 10:34:18
    Clock页面置换算法(简单和改进简单的Clock置换算法改进型Clock算法 简单的Clock置换算法 简单的Clock置换算法,是一种LRU置换算法的近似算法。 思想:当利用简单的Clock算法的时候,需要给每一个页面添加一位...
  • 分析:clock置换算法是利用循环队列来实现的。操作系统课本上的讲解时这样的 代码实现: #include using namespace std; typedef struct numbernode {  int *data;  bool *ask;//访问号 }Numnode; ...
  • 适合学习过操作系统的学生下载学习,用C++语言和MFC写的,可以很好的模拟操作系统的页面置换算法,图形界面,内附实验源码+报告书。
  • 假设有一台配置了虚拟存储器的计算机,...1)若采用先进先出(FIFO)置换算法,则最终该逻辑地址对应的物理地址是:27CAH 解析: 因为是按字节编制,每个页面大小为1kb,即为2^10B,业内偏移地址为低10位,逻辑地址空
  • 操作系统os 页面置换算法 (java实现) Clock.java Lru.java Opt.java Fifo.java
  • 中文名:时钟置换算法 以下是作者对CLOCK算法的肤浅见解,如有错误之处,欢迎指出,十分感谢! 定义 时钟置换算法可以认为是一种最近未使用算法,即逐出的页面都是最近没有使用的那个。它和LRU算法有类似之处,只...
  • Clock页面置换算法

    千次阅读 多人点赞 2018-11-17 13:54:15
    替换原则:淘汰访问位为0的页框中的页面,被访问过的页面将其页框的访问位数值置1 1、初始页框为空,页面装入时立马被访问,所有访问位置1,当所有页框被装满时,所有访问位都为1,此时指针指向第一个页框。...
  • 一、页面置换算法 请求分页 存储管理与 基本分页 存储管理的主要区别: ①、在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存【操作系统要提供请求调页功能,将缺失页面从外存...
  • 页面置换算法之 改进型Clock算法

    千次阅读 2020-12-05 20:37:38
    改进型Clock算法 由 访问位A 和 修改位M 可以组合成下面四种类型的页面: 1类(A=0, M=0):表示该页最近既未被访问,又未被修改,是最佳淘汰页。 2类(A=0, M=1):表示该页最近未被访问,但已被修改,并不是很好的...
  • 进程页面的时钟(CLOCK置换算法

    千次阅读 2020-04-26 23:27:12
    时钟置换算法运作过程如下: 假设 此时使用位情况:0-1,1-1; 指针位置:0(初始化假设) 开始,0块使用位为1,不可置换,但是这次把它的使用位变为0,以免一直是1发生死循环。又假设指针顺时针转动,...
  • 只是clock置换算法,没有其他算法,用SQL完成
  • opt、FIFO、LRU/LFU、简单clock、改进型clock算法实现页面置换
  • 实现OPT、LRU、FIFO以及Clock四种不同的页面置换策略,界面良好
  • 一个页面置换算法性能比较程序,包括了最佳置换,先进先出,LRU,随机置换,简单时钟和改进时钟六个算法。使用了队列,链表,循环链表等数据结构。随机产生请求页号,计算六种算法的缺页率。
  • #include <iostream> #include<string.h> using namespace::std; struct page{ int pagenum; int A; int M; }; int run(page *a,int num){ page b[5]; int count=0; for (int i=0;... b[i]
  • 一、课程设计目的《操作系统》是一门重要的专业基础课,是涉及较多硬件知识的计算机系统软件课程。...操作系统课程设计的主要任务是研究计算机操作系统的基本原理和算法,掌握操作系统的进程管理、存储管...
  • 改进型clock算法--页面置换算法

    万次阅读 2016-06-17 13:45:23
    改进Clock算法——页面置换算法算法描述: 在将一个页面换出时,如果该页已被修改过,便须将该页重新写回到磁盘上;但如果该页未被修改过,则不必将它拷回磁盘。在改进型Clock算法中,除须考虑页面的使用情况外,...
  • 1.什么是页面置换算法? 在进程运行的过程当中,进程所要访问的页面不再内存中,我们就需要把这个不存在的页面调入内存,但内存已经没有空闲空间了,这时候就要求系统从内存中调出一个页面,将其移入磁盘的对换区...
  • 全面的页面置换算法(opt、fifo、lru、clock),很全。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,095
精华内容 1,638
关键字:

clock置换算法