【操作系统】几种基本页面置换算法的基本思想和流程图

news2025/2/22 6:52:36

目录

    • 一、概述
    • 二、最佳置换算法(OPT)
    • 三、先进先出置换算法(FIFO)
    • 四、最近最久未使用置换算法(LRU)
    • 五、三种页面置换算法优缺点对比
    • 六、运行结果
    • 七、总结

一、概述

  在地址映射过程中,若在页面中发现所要访问的页面不在内存中,则产生缺页中断。当发生缺页中断时,如果操作系统内存中没有空闲页面,则操作系统必须在内存选择一个页面将其移出内存,以便为即将调入的页面让出空间。而用来选择淘汰哪一页的规则叫做页面置换算法。下面介绍三种常见的页面置换算法。

二、最佳置换算法(OPT)

  OPT算法是当发生缺页时,选择以后永不使用的页面,或是在最长时间内不再被访问的页面。采用最佳置换算法通常可保证获得最低的缺页率,是一种理想情况下的页面置换算法,但实际上是不可能实现的,因为当缺页发生时,操作系统无法知道各个页面下一次是在什么时候被访问。
  其算法流程图如下图所示,首先判断当前访问的页面数是否小于物理块数,如果是则直接将页号载入内存。否则遍历还未访问过的页号,找到最长时间内不再被访问的页面并移出,移进访问的页号直到页号全部访问完毕。最后输出页面置换后的结果、缺页次数和缺页率。

三、先进先出置换算法(FIFO)

  OPT算法是当发生缺页时,选择以后永不使用的页面,或是在最长时间内不再被访问的页面。采用最佳置换算法通常可保证获得最低的缺页率,是一种理想情况下的页面置换算法,但实际上是不可能实现的,因为当缺页发生时,操作系统无法知道各个页面下一次是在什么时候被访问。
  其算法流程图如下图所示,首先判断当前访问的页面数是否小于物理块数,如果是则直接将一个页面载入内存,并且标记加一。否则就是物理块已满,然后移除标记数最大的块内页数,并访问下一个页号直到页号全部访问完毕。最后输出页面置换后的结果、缺页次数和缺页率。

四、最近最久未使用置换算法(LRU)

  当一个缺页中断发生时,LRU算法选择最近最长时间未访问过的页面予以淘汰,它认为过去一段时间内未访问过的页面,在最近的将来可能也不会被访问。该算法为每个页面设置一个访问字段,来记录页面自上次被访问以来所经历的时间,淘汰页面时选择现有页面中值最大的予以淘汰。适用于程序的局部性原理,在这种原理的情况下,如果一个程序经常访问,那么通过这种算法一般情况下就不会将常驻内存中的程序移除内存。
  其算法流程图如下图所示,首先判断当前访问的页面数是否小于物理块数,如果是则直接将一个页面载入内存,并且标记页号访问时间。否则移除时间记录最长的页号,并访问下一个页号直到页号全部访问完毕。最后输出页面置换后的结果、缺页次数和缺页率。

五、三种页面置换算法优缺点对比

算法优点缺点
最佳置换算法可保证获得最低的缺页率无法实现
先进先出置换算法算法实现简单性能较差,实际应用少
最近最久未使用置换算法一般有较好的性能,实际应用多需要寄存器和栈的硬件支持,会增加硬件成本

六、运行结果

(1)运行程序,首先输入物理块数,然后输入页面的个数及一组页号。
在这里插入图片描述
(2)可以看见最佳置换算法结果和缺页次数及缺页率。
在这里插入图片描述
(3)可以看见先进先出置换算法结果和缺页次数及缺页率。
在这里插入图片描述
(4)可以看见最近最久未使用置换算法结果和缺页次数及缺页率。
在这里插入图片描述

七、总结

  本次实验学习了几种不同的页面置换算法。最佳置换算法选择以后再也不用的页面,没有的话,选择以后最长时间不用的页面;先进先出置换算法基于程序的顺序执行特点选择到达内存最早的页面淘汰;最近最久未使用置换算法基于程序运行的局部性原理,淘汰最近以来最久未使用的页面。这几种页面置换算法各有优缺点。
  其中最佳置换算法性能最好,是一种理想情况下的页面置换算法,但无法实现;先进先出页面置换算法性能较差,因为它所依据的条件是各个页面调入内存的时间,而页面调入的先后不能反映页面的使用情况;最近最久未使用置换算法性能较好,是对页面调入内存后的使用情况做出决策的,但对硬件要求较高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752344.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 发行版 Gentoo 存在重大漏洞

导读网络安全公司 SonarSource 在日前研究中发现,Gentoo Linux 发行版中存在漏洞 CVE-2023-28424,黑客可以利用该漏洞进行 SQL 注入攻击。 研究人员从 GentooLinux 的 Soko 搜索组件中找到了这个漏洞。该漏洞的 CVSS 风险评分为 9.1,属于特别…

6款开源中文OCR使用介绍(亲测效果)

文章目录 前言开源ocr项目1. Paddle OCR(推荐指数:★★★★★)1.1 简介1.2 使用1.3 优缺点 2. CnOCR(推荐指数:★★★★★)2.1 简介2.2 使用2.3 优缺点 3. chinese_lite OCR(推荐指数&#xff1…

保障AI时代的图像安全:揭示解决虚假图片危机的三种策略

写在前面从 P 图到假图批量生成,AI 图像安全成可信 AI 重点关注方向三大技术:提前布局,合合信息 AI 图像安全技术助力行业健康发展✔ AI 图像篡改检测技术✔ 生成式图像鉴别技术✔ OCR 对抗攻击技术 一项标准:与中国信通院等权威机…

在本机搭建自己的ftp服务器--最简单的方法(详细教程)

在本机搭建自己的ftp服务器–最简单的方法 FTP服务器可以在局域网中快速传输文件,是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务。 FTP是File Transfer Protocol(文件传输协议)。顾名思义,就是专门用来传输文件的协议…

vue-next-admin跨域配置

vue-next-admin,这是基于 vue3.x CompositionAPI typescript vite element plus vue-router-next next.vuex,适配手机、平板、pc 的后台开源免费模板库 这是个开源免费的后台管理系统,从v2到v3,变化比较大,但是…

Windows系统安装配置Oracle数据库连接工具PLSQL

1.解压连接工具所需轻桌面压缩包 直接将轻桌面压缩包解压到一个自定义路径下(三个里面选择其中一个,推荐选择第一个轻桌面包),后面的环境变量会用到。 2.配置Windows环境变量 NLS_LANG AMERICAN_AMERICA.AL32UTF8 ORACLE_HOME …

VMware安装Ubuntu(VMware版本17-Ubuntu版本16.0)

VMware安装Ubuntu(VMware版本17-Ubuntu版本16.0) 一,VMware虚拟机下载官网点击https://customerconnect.vmware.com/cn/downloads/info/slug/desktop_end_user_computing/vmware_workstation_pro/17_0 二,Ubuntu乌班图下载官网点…

解决Vue项目打包后dist中的index.html用浏览器直接打开显示空白页的问题

目录 场景描述 问题分析 解决方案 vue-cli2项目通过修改index.html引用路径或添加配置信息 方案一:将index.html中引用的绝对路径改为相对路径 方案二:修改项目的assetsPublicPath或添加publicPath配置信息 vue-cli3项目通过修改index.html引用路…

Mars3d采用ellipsoid球实现模拟地球旋转效果

1.Mars3d采用ellipsoid球实现模拟地球旋转效果 2.开始自选装之后,模型一直闪烁 http://mars3d.cn/editor-vue.html?idgraphic/entity/ellipsoid 3.相关代码: import * as mars3d from "mars3d"export let map // mars3d.Map三维地图对象 …

Linux基础服务10——虚拟化kvm

文章目录 一、基本了解二、安装kvm2.1 部署准备2.2 安装基础服务2.3 安装web管理服务 三、web界面管理3.1 添加kvm主机3.2 存储管理3.2.1 上传镜像3.2.2 扩容存储池 3.3 网络管理3.4 创建虚拟机3.5 报错处理3.5.1 Server disconnected3.5.1 文件句柄问题 一、基本了解 什么是虚…

短视频抖音seo源码矩阵系统源码开发规则

一、 技术开发文档说明 目录 一、 技术开发文档说明 1. 系统架构 2. 抖音seo排名系统模块组成 二、功能结构: 三、 抖音seo源码开发功能目录 四、 短视频抖音seo矩阵系统源码开发代码展示 1. 建立数据表 1. 系统架构 短视频抖音seo矩阵源码部署功能架构包含…

基于 MNN 在个人设备上流畅运行大语言模型

LLM(大语言模型)因其强大的语言理解能力赢得了众多用户的青睐,但LLM庞大规模的参数导致其部署条件苛刻;在网络受限,计算资源有限的场景下无法使用大语言模型的能力;低算力,本地化部署的问题亟待…

牧云·云原生安全平台v2.0.0正式上线,云上想不安全都难!

**前言:**牧云云原生安全平台是长亭牧云团队以开源社区为生态载体技术积累为驱动所打造的云原生安全平台。首创双模探针架构,可选用 Agentless/Agent 多种方案进行部署,覆盖制品、运行时、集群全流程安全,开箱即用、快速实施、成本…

这所双一流,我求求你不要错过!错过后悔一年!

一、学校及专业介绍 山西大学(ShanxiUniversity),位于山西省太原市,是中国办学历史最悠久的高等学府之一,国家“双一流”建设高校。 1.1 招生情况 物理电子工程学院中,081000信息与通信工程、085402通信工程&#xf…

IIS 部署的应用禁用HTTP TRACE / TRACK方法【原理扫描】

远程Web服务器支持TRACE和/或TRACK方法。 TRACE和TRACK是用于调试Web服务器连接的HTTP方法。 直接在网站Web.config文件中进行如下操作&#xff1a;在Web.config中的<system.webServer>节点内添加以下配置即可&#xff1a; <security> <requestFiltering> &…

水果编曲软件FLStudio21.0.3.3517中文直装版2023最新百度网盘下载

水果编曲软件FLStudio21.0.3.3517中文直装版2023最新百度网盘完整下载是最好的音乐开发和制作软件也称为水果循环。它是最受欢迎的工作室&#xff0c;因为它包含了一个主要的听觉工作场所。最新水果编曲软件FLStudio21中文直装版有不同的功能&#xff0c;如它包含图形和音乐音序…

Linux 虚拟机重启远程连接超时

问题 : 虚拟机关机重启之后,本来可以连接的远程,访问超时 原因 : 为了可以访问 CentOS 虚拟机,在 /etc/sysconfig/network-scripts/ifcfg-ens33 中修改使用了network静态ip的方式,在重启后与NetWorkManager自动配置冲突,导致远程无法正常访问 处理方式 &#xff1a; 禁用…

PyTorch从零开始实现Transformer

文章目录 自注意力Transformer块编码器解码器块解码器整个Transformer参考来源全部代码&#xff08;可直接运行&#xff09; 自注意力 计算公式 代码实现 class SelfAttention(nn.Module):def __init__(self, embed_size, heads):super(SelfAttention, self).__init__()self.e…

奥特曼与钢铁侠【InsCode Stable Diffusion美图活动一期】

文章目录 简介图片生成步骤更多体验方式 简介 InsCode 是一个一站式的软件开发服务平台&#xff0c;从开发-部署-运维-运营&#xff0c;都可以在 InsCode 轻松完成。 InsCode 的 Ins 是 Inspiration&#xff0c;意思是创作、寻找有灵感的代码。 Stable Diffusion是文图生成模型…

MySQL的下载、安装和配置(图文详解)

目录 一、MySQL的4大版本 二、软件的下载 1. 下载地址 2. 打开官网&#xff0c;点击DOWNLOADS 3. 点击 MySQL Community Server 三、MySQL8.0 版本的安装 四、配置MySQL8.0 五、配置MySQL8.0 环境变量 六、MySQL5.7 版本的安装、配置 一、MySQL的4大版本 MySQL Commu…