请求分页管理方式(页表机制,缺页中断,地址变换)

news2025/7/9 19:29:49

请求分页存储管理与基本分页存储管理的主要区别:

  • 在程序执行过程中,当所访问的信息不在内存时,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。(操作系统要提供请求调页功能,将缺失页面从外存调入内存)
  • 若内存空间不够,由操作系统负责将内存中暂时用不到的信息换出到外存。(操作系统要提供页面置换的功能,将暂时用不到的页面换出外存)

1.页表机制

1.实现请求调页

与基本分页管理相比,请求分页管理中,为了实现“请求调页”,

  • 操作系统需要知道每个页面是否已经调入内存;
  • 如果还没调入,那么也需要知道该页面在外存中存放的位置。

2.实现页面置换

当内存空间不够时,要实现“页面置换”,操作系统需要通过某些指标来决定到底换出哪个页面;

  • 有的页面没有被修改过,就不用再浪费时间写回外存。
  • 有的页面修改过,就需要将外存中的旧数据覆盖,
  • 因此,操作系统也需要记录各个页面是否被修改的信息。

3.请分页存储管理的页表

在基本分页的基础上增加了几个表项:

  • 状态位:表示页面是否已在内存中
  • 访问字段:记录最近被访问过几次,或记录上次访问的时间,供置换算法选择换出页面时参考
  • 修改位︰表示页面调入内存后是否被修改过,只有修改过的页面才需在置换时写回外存
  • 外存地址:页面在外存中存放的位置

在这里插入图片描述

2.缺页中断机构

1.在请求分页系统中,每当要访问的页面不在内存时,便产生一个缺页中断
然后由操作系统的缺页中断处理程序处理中断。
此时缺页的进程阻塞,放入阻塞队列,调页完成后再将其唤醒,放回就绪队列。

2.如果内存中有空闲块,则为进程分配一个空闲块,将所缺页面装入该块,并修改页表中相应的页表项。
如果内存中没有空闲块,则由页面置换算法选择一个页面淘汰,若该页面在内存期间被修改过,则要将其写回外存。
未修改过的页面不用写回外存。

3.缺页中断是因为当前执行的指令想要访问的目标页面未调入内存而产生的,因此属于内中断.
属于内中断中的"故障",即可能被系统修复的异常

4.一条指令在执行期间,可能产生多次缺页中断。(如: copy A to B,即将逻辑地址A中的数据复制到逻辑地址B,而A、B属于不同的页面,则有可能产生两次中断)

3.地址变换机构

1.与基本分页相比,新增步骤:

  1. 找到页表项是需要检查页面是否在内存中
  2. 若页面不在内存中,需要请求调页(查到页表项时进行判断)
  3. 若内存空间不够,需页面置换(需要调入页面,但没有空闲内存块时进行)
  4. 页面调入内存后,需要修改请求页表中新增的表项
    在这里插入图片描述

2.细节

  1. 只有“写指令”才需要修改“修改位”。并且,一般来说只需修改快表中的数据,只有要将快表项删除时才需要写回内存中的慢表。这样可以减少访存次数。
  2. 和普通的中断处理一样,缺页中断处理依然需要保留CPU现场。
  3. 需要用某种“页面置换算法”来决定一个换出页面
  4. 换入/换出页面都需要启动慢速的I/O操作,可见,如果换入/换出太频繁,会有很大的开销。
  5. 页面调入内存后,需要修改慢表,同时也需要将表项复制到快表中。

在具有快表机构的请求分页系统中,访问一个逻辑地址时,若发生缺页,则地址变换步骤是:
查快表(未命中) ⟶ \longrightarrow 查慢表(发现未调入内存) ⟶ \longrightarrow 调页(调入的页面对应的表项会直接加入快表) ⟶ \longrightarrow 查快表(命中) ⟶ \longrightarrow 访问目标内存单元

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

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

相关文章

MapReduce任务个数如何影响执行效率?性能优化从这里做起

在正文开始之前,请先来回答一下这个问题: 题目:输入为3个文件,a.txt 300MB,b.txt 100MB,c.txt 58.MB,使用MapReduce的example程序,计算Wordcount,请问,应该有多少个MapTask&#xf…

分享一种非隔离控制三象限双向可控硅的产品级电路

上图是一款在美国卖得很火的挂烫机的电源电路和双向可控硅控制电路,可以看到电源部分采用的是阻容降压,阻容降压电路适用于低成本小电流的应用场合,根据电容容抗的计算公式Xc1/(2πfC) 可算出容抗大小,(f为市电的频率5…

编译和链接(小白初理解)

目录 1. 翻译环境和运⾏环境 1.2翻译环境 2. 翻译环境:预编译编译汇编链接 2.1预处理(预编译)阶段 2.2编译 2.2.1词法分析 2.2.2语法分析 2.2.3语义分析 2.3 汇编 2.4 链接 3. 运⾏环境 1. 翻译环境和运⾏环境 翻译环境指的是&a…

设计模式截图记录

设计模式截图记录

GeoServer改造Springboot启动五(解决接口返回xml而不是json)

请求接口返回的是xml,而不是我们常用的json,问题呈现如下图 40 图 40请求接口返回XML 在RequestMapping注解上增加produces {MediaType.APPLICATION_JSON_UTF8_VALUE} 图 41增加produces

AP8100 DC-DC 升压恒压电源管理芯片

说明 AP8100 是一款外围电路简单的 BOOST 升压恒压控 制驱动芯片,适用于 2.8-40V 输入电压范围的升压恒 压电源应用领域,启动电压可以低至 2.5V。 芯片会根据负载的大小自动切换 PWM , PFM 和 BURST 模式以提高各个负载端的电源系统效率。 本…

跨境电商系统源码分享,助力企业快速搭建电商平台

在如今的全球化时代,跨境电商成为了许多企业拓展国际市场的重要途径。然而,搭建一个完善的跨境电商系统并不是一件容易的事情。幸运的是,有许多跨境电商系统的现成源码可供使用,以解决企业在电商过程中遇到的各种难题。 一、现成源…

[架构之路-239]:目标系统 - 纵向分层 - 中间件middleware

目录 前言: 一、中间件概述 1.1 中间件在软件层次中的位置 1.2 什么是中间件 1.3 为什么需要中间件 1.4 中间件应用场合(应用程序不用的底层需求:计算、存储、通信) 1.5 中间件分类 - 按内容分 二、嵌入式系统的中间件 2…

基于SpringBoot的漫画动漫网站

基于SpringBootVue的漫画动漫网站的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 动漫详情 排行榜 通知公告 管理员界面 摘要 基于SpringBoot的漫画动漫网…

confluence8.5.1版本升级到8.5.2

由于confluence的漏洞CVE-2023-22515的出现,现在需要升级版本 查看漏洞已修复版本: 需要升级到8.5.2 下载软件包: https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.5.2-x64.bin 完成后上传…

浅谈新能源电动汽车充电设施的建设及运营平台分析

安科瑞 崔丽洁 摘要:在社会经济发展的新时期,我国城市化的水平也在随之不断的提高,使我国制造业迅速崛起,并加剧了该行业的竞争力,要想使企业在竞争中占据有力的位置,企业就要顺应时代发展的潮流&#xff0…

Linux之iostat溯源diskstats

iostat 默认输出解析详细输出解析关键指标 diskstats字段解析await的计算来源计算方法 svctm计算来源计算方法 util的计算来源计算方法 系统级别的IO工具 默认输出解析 iostat%usr CPU在用户模式下的时间百分比%nice CPU处在带NICE值的用户模式下的时间百分比%system CPU在系统…

11+肠道微生物群+孟德尔随机化

今天给同学们分享一篇孟德尔随机化的生信文章“Causal relationship between gut microbiota and cancers: a two-sample Mendelian randomisation study ”,这篇文章于2023年2月21日发表在 BMC Med 期刊上,影响因子为11.15。 观察性研究和临床试验的…

《动手学深度学习 Pytorch版》 8.7 通过时间反向传播

8.7.1 循环神经网络的梯度分析 本节主要探讨梯度相关问题,因此对模型及其表达式进行了简化,进行如下表示: h t f ( x t , h t − 1 , w h ) o t g ( h t , w o ) \begin{align} h_t&f(x_t,h_{t-1},w_h)\\ o_t&g(h_t,w_o) \end{ali…

实验2.1.3 交换机的远程配置

实验2.1.3 交换机的远程配置 一、任务描述二、任务分析三、实验拓扑四、具体要求五、任务实施(一) password认证1. 进入系统视图重命名交换机的名称为SWA2. 关闭干扰信息3. 设置vty为0-44. 设置认证方式为password5. 设置登录密码为:huawei6.…

芯片测试一般包含哪些方面,ATECLOUD如何部署进行测试?

芯片测试主要包括以下方面: 功能测试:检查芯片是否按照预期进行功能操作。这涉及到对芯片内部的各种功能模块进行测试,以确保它们能够正常工作。 性能测试:检查芯片在特定工作负载或条件下的性能。这包括测试芯片在不同频率、电…

视频Logo添加实战:批量处理视频的技巧

在今天的教程中,我们将向大家介绍一种在视频上添加Logo的快捷方法。无论你是自媒体作者、视频编辑还是其他需要处理视频的从业人员,这个方法都将为你节省大量时间和精力。让我们一起学习如何使用固乔剪辑助手来实现这个任务。 首先,我们需要打…

C++初阶(二)

文章目录 一、缺省参数1、概念2、缺省参数分类1、全缺省参数2、半缺省参数 3、特性总结 二、函数重载1、引入函数重载2、函数重载概念3、函数重载分类4、C支持函数重载的原理--名字修饰(name Mangling) 三、 引用1、引用概念2、引用特性3、 常引用4、 使用场景1、做参数2、做返…

Echarts(1)

Echarts官方文档----快速上手 - Handbook - Apache ECharts 1.1ECharts的快速上手 ECharts 的入门使用特别简单, 5分钟就能够上手. 他大体分为这几个步骤 步骤1:引入 echarts.js 文件 该文件获取方式可通过:在 https://www.jsdelivr.com/package/npm…