`

【转】页面替换算法

阅读更多
【转】页面替换算法

  在虚拟存储器中,当发生页面失效时,需要从磁盘存储器中调入一页(或一段)到主存储器中。在段式和段页式虚拟存储器中,由于多用户虚页数比主存储器的实页数要多得多。在段式虚拟存储器中,虚存空间中能容纳的程序段数要比主存空间中能存放的相同长度的程序段数多得多。因此,必然会出现当主存中所有页面都已经被占用,或者所有主存空间都已经被占用,而又要从磁盘存储器中调入新页的情况。这时,必须从主存储器中淘汰掉一个不常用的页面,以便腾出主存空间来存放新调入的页面。那么,按照什么样的规则替换主存储器中的页面呢?这就是页面替换算法要解决的问题。
  以下,为了叙述方便,主要介绍页式和段页式虚拟存储器中的页面替换算法及其实现方法,在这两种虚拟存储器中都是以页面为单位进行调度的。而段式虚拟存储器是以程序段为单位进行调度的,但是它所采用的替换算法及算法的实现方法都是相同的。
  评价一个页面替换算法好坏的标准主要有两个,一是命中率要高,二是算法要容易实现。要提高一个页面替换算法的命中率,首先要使这种算法能正确反映程序的局部性,其次是这种算法要能够充分利用主存中页面调度情况的历史信息,或者能够预测主存中将要发生的页面调度情况。
  页面替换算法主要用于如下几个地方:
  (1) 虚拟存储器中,主存页面(或程序段)的替换。
  (2) Cache中的块替换。
  (3) 虚拟存储器的快慢表中,快表的替换。
  (4) 虚拟存储器中,用户基地址寄存器的替换。
  在虚拟存储器中常用的页面替换算法有如下几种:
  (1) 随机算法,即RAND算法(Random algorithm)。利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这种算法最简单,而且容易实现。但是,这种算法完全没有利用主存储器中页面调度情况的历史信息,也没有反映程序的局部性,所以命中率比较低。
  (2) 先进先出算法,即FIFO算法(First-In First-Out algorithm)。这种算法选择最先调入主存储器的页面作为被替换的页面。它的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,没有反映程序的局部性。因为最先调入主存的页面,很可能也是经常要使用的页面。
  (3) 近期最少使用算法,即LFU算法(Least Frequently Used algorithm)。这种算法选择近期最少访问的页面作为被替换的页面。显然,这是一种非常合理的算法,因为到目前为止最少使用的页面,很可能也是将来最少访问的页面。该算法既充分利用了主存中页面调度情况的历史信息,又正确反映了程序的局部性。但是,这种算法实现起来非常困难,它要为每个页面设置一个很长的计数器,并且要选择一个固定的时钟为每个计数器定时计数。在选择被替换页面时,要从所有计数器中找出一个计数值最大的计数器。因此,通常采用如下一种相对比较简单的方法。
  (4) 最久没有使用算法,即LRU算法(Least Recently Used algorithm)。这种算法把近期最久没有被访问过的页面作为被替换的页面。它把LFU算法中要记录数量上的"多"与"少"简化成判断"有"与"无",因此,实现起来比较容易。
  (5) 最优替换算法,即OPT算法(OPTimal replacement algorithm)。上面介绍的几种页面替换算法主要是以主存储器中页面调度情况的历史信息为依据的,它假设将来主存储器中的页面调度情况与过去一段时间内主存储器中的页面调度情况是相同的。显然,这种假设不总是正确的。最好的算法应该是选择将来最久不被访问的页面作为被替换的页面,这种替换算法的命中率一定是最高的,它就是最优替换算法。
  要实现OPT算法,唯一的办法是让程序先执行一遍,记录下实际的页地址流情况。根据这个页地址流才能找出当前要被替换的页面。显然,这样做是不现实的。因此,OPT算法只是一种理想化的算法,然而,它也是一种很有用的算法。实际上,经常把这种算法用来作为评价其它页面替换算法好坏的标准。在其它条件相同的情况下,哪一种页面替换算法的命中率与OPT算法最接近,那么,它就是一种比较好的页面替换算法。
分享到:
评论

相关推荐

    页面替换算法opt+fifo+lru+clock

    本文将详细探讨四种常见的页面替换算法:OPT(最佳页面替换算法)、FIFO(先进先出页面替换算法)、LRU(最近最少使用页面替换算法)和CLOCK(时钟页面替换算法)。 1. **OPT(最佳页面替换算法)** OPT算法被认为...

    页面替换算法

    理解页面替换算法的作用和不同的页面替换算法确定被替换页面的原则

    操作系统实验3_页面替换算法

    操作系统中的页面替换算法是解决虚拟内存管理中一个重要问题的关键技术,主要是因为计算机的物理内存(主存)通常比CPU的高速缓存或硬盘上的虚拟内存小得多。当所有需要的页面无法同时装入物理内存时,就需要通过...

    操作系统 页面替换算法

    操作系统中的页面替换算法是内存管理的关键部分,尤其是在虚拟内存系统中。当物理内存不足时,这些算法用于决定哪个页面应该被换出到磁盘上的交换区,以便为新页面腾出空间。本项目包含了三种常见的页面替换算法实现...

    os.txt.rar_页面替换算法

    在操作系统中,内存管理是核心任务之一,而页面替换算法是内存管理中的关键部分,它涉及到如何有效地在有限的物理内存中管理和调度程序所需的虚拟内存。本知识点将深入探讨页面替换算法,包括其原理、常见算法及其优...

    页面替换算法(实现了最佳置换算法,随机置换算法,LRU算法,FIFO算法,CLOCK算法)

    自己写的页面置换算法,分别实现了最佳置换算法,随机置换算法,LRU算法,FIFO算法,CLOCK算法,并计算了各算法的缺页率,便以比较各算法的优劣。

    页面替换算法(fifo lru的实现)

    页面替换算法是操作系统内存管理的重要组成部分,用于处理内存不足的情况,通过将不再使用的页面移出内存,为新页面腾出空间。在这个项目中,我们关注的是两种常见的页面替换算法:FIFO(先进先出)和LRU(最近最少...

    页面替换算法FIFO+最优+clock+LRU+随机

    页面替换算法是虚拟内存管理中的核心策略,它用于决定在主存空间有限的情况下,当一个页面需要被调入而主存已满时,应该替换哪个页面。本项目涵盖了五种常见的页面替换算法:FIFO(先进先出)、最优替换算法、随机...

    内存页面替换算法与管理策略

    在现代操作系统中,由于物理内存通常小于进程所需的总内存,因此必须使用页面替换算法来处理内存不足的情况。页面替换算法是解决这一问题的关键技术,其目标是在内存空间紧张时,选择合适的页面进行淘汰,以便为新的...

    操作系统:模拟页面替换算法

    操作系统:模拟页面替换算法 操作系统中,页面替换算法是内存管理中的一种重要机制,用于处理页面置换问题。页面置换算法的目的是在内存中保留最常用的页面,以减少_page_fault的次数和提高系统性能。在本实验中,...

    页面替换算法———LRU算法

    ### LRU页面替换算法 #### 一、LRU算法简介 LRU(Least Recently Used,最近最少使用)算法是一种常用的页面替换策略,在操作系统中的虚拟内存管理中扮演着重要的角色。该算法的基本思想是:当内存空间不足时,...

    lru.rar_LRU_LRU page replacement_lru 算法_页面替换_页面替换算法

    LRU(Least Recently Used)页面替换算法是操作系统中内存管理的一种策略,用于决定在主存空间不足时应淘汰哪个页面。这个算法基于一个假设:最近被频繁使用的页面在未来也更可能被频繁使用。当需要从内存中移除一个...

    操作系统第三次实验报告_页面替换算法.pdf

    操作系统中的页面替换算法是解决虚拟内存管理问题的关键技术之一,主要应对物理内存不足的情况,通过将不常使用的页面从内存中移出,让位于更需要的页面。本实验旨在理解和实现几种常见的页面替换算法,包括最佳替换...

    操作系统实验报告--页面替换算法,作业调度,进程调度,spooling技术

    操作系统实验报告中详细介绍了四个主要实验,分别是页面替换算法实验、作业调度实验、进程调度实验和spooling技术实验。这些实验不仅涵盖了操作系统的核心知识点,还包括了对操作系统基本概念、原理和机制的理解。接...

    操作系统的存储管理算法(替换算法)

    本程序着重实现的是存储管理中的页面替换算法,这是解决虚拟内存问题的关键技术。 页面替换算法的主要目标是在物理内存(主存)有限的情况下,合理地将内存中的页面进行替换,以解决由于内存不足而引起的缺页中断。...

    操作系统第三次实验报告_页面替换算法.docx

    操作系统中的页面替换算法是解决虚拟内存管理中一个重要问题的关键技术,主要是为了应对主存容量不足,需要将不常使用的页面换出到磁盘上的对换区,以便腾出空间加载其他更需要的页面。本实验报告主要介绍了三种常见...

    四种内存替换算法模拟程序

    3. **最佳替换(OPT, Optimal Page Replacement)**:OPT算法是理论上的最优策略,它总是能预测未来哪个页面最早会被访问,然后选择这个页面替换。然而,由于无法预知未来,实际操作中很难实现。 4. **最近未使用...

    精选_毕业设计_基于C++的请求分页虚拟页面替换算法_完整源码

    【标题】"精选_毕业设计_基于C++的请求分页虚拟页面替换算法_完整源码" 提供了一个深入理解操作系统内存管理的重要实践项目。在操作系统中,分页是内存管理的基本机制,它将进程的逻辑地址空间划分为固定大小的页,...

    存贮层次模拟器FIFO、LRU等替换算法

    为了平衡速度和容量,我们会使用一种叫做“虚拟存储”的技术,将部分辅存内容映射到主存,当主存空间不足时,就需要使用替换算法决定哪些页面应该被换出。 在这个模拟器中,映像方式采用的是组相联映射。组相联映射...

Global site tag (gtag.js) - Google Analytics