D4-4 基本分页存储管理方式(第二节课)

news2024/11/25 13:21:00

目录

4.4.4  两级和多级页表

1、两级页表的引入

2、两级页表

4.4.6  对换

1、外存的划分

2、对换区管理

3、进程的换出与换入


4.4.4  两级和多级页表

1、两级页表的引入

可以采用以下方法来解决这一问题:

  1. 采用离散分配方式来解决难以找到一块连续的大内存空间的问题,即引入两级页表;
  2. 只将当前需要的部分页表项调入内存, 其余页表项仍驻留在磁盘上,需要时再调入。

采用离散分配方式

  1. 对页表进行分页
  2. 离散地将各个页面分别存放在不同的物理块中
  3. 为离散分配的页表再建立一张页表 —— 外层页表
  4. 在每个页表项中记录了页表分页的物理块号

若采用二级页表,则对应的二级页表结构如下:

外部页表中存放的是页表盘块号,即存放页表的盘块的编号。比如,1011 号盘块存放了第一组 0~1023 个页表项,1078 号盘块存放了第二组 0~1023 个页表项。而页表中存放的是数据盘块号,即存放数据的盘块的编号。

2、两级页表

假设把页表按固定大小分成为一个个页面,页面大小为 2^12=4KB。

  1. 若每个页表项大小为 4B,那么每页最多允许有 2^10=1K 个页表项。
  2. 对于 2^32B 的进程,页面大小为 2^12B,则需要 2^32/2^12=2^20 个页表项。
  3. 由于每页最多存放 2^10=1K 个页表项,因此需要 2^20/2^10=2^10 个页表分页。

设置一个外层页表,其中有 1K 个页表项,分别指示每个页表分页所在的物理块号和其它相关的状态信息 => 每个进程都有一个外层页表。

逻辑地址结构如下:

具有两级页表的地址变换机构:

说明:两级页表只是解决了大页表需要大片连续存储空间问题,但是并未实现用较少内存去存放大页表,有关此类问题的成功解决方案将在 “虚拟存储器管理” 中讨论。

4.4.6  对换

对换:是指

  • 把内存中暂不能运行的进程,或者暂不使用的程序和数据,换出到外存上
  • 把外存上已具备运行条件的进程,或者进程所需要的程序和数据,换入到内存中

对换是系统行为,是提高内存利用率的有效措施。常用于多道程序系统或小型分时系统中,与分区存储管理配合使用。

实现:可在系统中设置一个对换进程,以执行换进内存、换出至外存操作。

 

分类:

(1) 整体对换/进程对换:对换以整个进程为单位,用于分时系统,以解决内存紧张的问题;

(2) 页面对换/分段对换:对换以页或段为单位进行部分对换,该方法是实现请求分页及请求分段存储器的基础,支持虚拟存储系统。

为实现对换,系统需要三方面的功能:

  • 对换空间的管理
  • 进程的换入
  • 进程的换出

1、外存的划分

外存被分为两部分:文件区和对换区。

(1) 文件区

用于存放文件,对它的管理应重在如何提高存储空间的利用率。因此采用离散分配方式。

(2) 对换区

用于存放从内存换出的进程,它们在外存的存放时间较短,换入、换出频繁。对对换区的管理应重在提高进程的换入换出速度。因此采用连续分配方式。

2、对换区管理

为了能够管理对换区中的空闲盘块,需要在系统中配置相应的数据结构,以记录空闲盘块的使用情况:采用空闲分区表或空闲分区链,基本单位都是盘块。

由于对换区采用连续分配方式,因此分配与回收和动态分区方式时内存的分配与回收方法雷同:

  • 首次适应算法、循环首次适应算法、最佳适应算法
  • 回收操作也可分为四种情况

3、进程的换出与换入

进程的换出与换入由对换进程完成。

(1) 换出(swap out)

首先选择阻塞或睡眠状态的进程,若有多个,按优先级由低到高进行选择。

若没有此状态进程,则选择就绪状态的,仍然按优先级由低到高进行选择。

为避免某进程被频繁的换入换出,还应考虑进程在内存中的驻留时间,优先选择驻留时间长的进程。

(2) 换入(swap in)

  1. 从 PCB 集合中查找 “就绪且换出” 的进程,若有多个,则选择换出时间最长的;
  2. 根据进程大小申请内存,成功则读入,否则要先执行换出,再换入;
  3. 若还有可换入进程,则转向 1,直至无 “就绪且换出” 进程或无法获得足够内存空间为止。

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

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

相关文章

SaaS突围战,用友走了8年,金蝶却用了10年,成果却被捷足先登

“南金蝶北用友”得风口在哪里? 众所周知,在企业软件管理市场中,一直有着这样的说法“北用友南金蝶”,足以可见,两家企业在市场中的份量。两家公司最初都是以财务软件起家,关于创始人王文京和徐少春的创业…

PyTorch-模型验证

目的:利用已经训练好的网络模型,输入数据进行测试。(相当于将其运用于真实场景中) Cifar-10分类: test1:放入一张狗狗的图片 进行验证:test.py import torch import torchvision from PIL imp…

gaussDB的schema创建查询,及其查询下面的表列

pg_catalog.pg_namespace来查看当前数据库中全部的Schema select oid,* from pg_catalog.pg_namespace; 创建schema create schema gs_dqms 显示当前使用的schema SHOW search_path; 切换当前schema SET search_path TO gs_dqms; 查看Schema---- dgp_sd下所有表的大小&…

2023年软件设计师上午试题及参考答案

2023年上半年 软件设计师 上午试卷 加粗为参考答案,不一定能全对 (考试时间9:00~11:30共150分钟) 请按下述要求正确填写答题卡 1.在答题卡的指定位置上正确填写你的姓名和准考证号,并粘贴考生条形码。 2.本试卷的试题中共有75个空格&#…

蓝牙资讯|2023 年 Q1 全球智能音频设备出货量8672万部

市场调研机构 Canalys 公布了 2023 年第一季度全球个人智能音频设备出货量报告。 报告显示 2023 年第一季度全球个人智能音频设备出货量跌至 8672 万部,同比下降 15%。其中 TWS 真无线耳机出货量下滑至 6158 万部,同步下降 10%。其中,苹果&…

基础知识铺垫

目录 一、HTTP 1.http协议 2.http协议的工作原理 3.http的请求 请求行 请求头 请求体 4.http的响应 响应行 5.get和post请求方法 6.get和post的区别 回退 请求响应速度 二、MYSQL 1.创建数据库 2.创建表 3.添加数据 4.删除数据 5.更新数据 6.查询数据 7.常…

Vue3+express实现element-plus组件upload上传图片携带data

需求背景:有多个轮播图需要单独上传,需要用data去区分上传的是哪一个轮播图 添加轮播图页面如下图所示: 实现效果: 实现思路及需要了解一下信息 ①每一个轮播图应在数据库中有相对应的字段,如下所示: 需…

【数据仓库】即席查询

文章目录 定义特点OLTP、OLAP、即席查询(ad hoc query)区别与联系相关框架Kylin来源 定义 即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不…

CompletableFuture的简单使用

原文地址:CompletableFuture原理与实践-外卖商家端API的异步化 CompletableFuture的介绍: CompletableFuture是Java 8中引入的一种基于Future的异步编程机制。与传统的Future相比,CompletableFuture提供了更多的操作链支持,并且…

skywalking 9.x入门(二) skywalking全链路tid追踪

这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 背景 继上次我们对skywalking整体架构作了一些了解,然后就是学习了spring boot项目如何基于agent接入skywalking 这次我们要实现的是spring boot项目…

USB | 查询usb设备占用带宽

USB | 查询usb设备占用带宽 请教一下windows下有什么工具能查询usb设备占用带宽吗?Linux上有usbtop,windows有类似工具吗 DeviceMonitoringStudio设备监控工具的使用

好用的自动化框架-Allure

概述 报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。 allure与pytest的结合使用可以呈现完…

华为OD机试真题B卷 Java 实现【求小球落地5次后所经历的路程和第5次反弹的高度】,附详细解题思路

一、题目描述 假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高? 数据范围:输入的小球初始高度满足 1 \le n \le 1000 \1≤n≤1000 ,且保证是一…

Mysql存储过程的递归调用及数据量过大group_concat()显示不全的问题

业务场景 使用mysql group_concat()函数,对查询的数据进行字符串连接操作。 由于查询的结果较多,连接后的结果很长导致不能完全显示。 第一种解决方案(不需要重启Mysql, 如果mysql重启后设置会失效,需重新设置) 执行…

代码随想录-哈希表

学习《代码随想录》 基础知识哈希函数哈希碰撞三种哈希结构 有效的字母异位词两个数组的交集两数之和暴力法Map 四数相加三数之和哈希解法双指针法 四数之和 基础知识 哈希表是一种根据关键码的值直接访问数据的数据结构。一般用来快速判断一个元素是否出现在集合中。 哈希函…

【AUTOSAR】Com通讯栈配置说明(二)---- CanIf模块

CanIf模块 CanIfCtrlDrvCfgs CanIfCtrlDrvBusOffNotification:busoff 发生后的callback函数 CanIfCtrlDrvWakeupNotification: wakeup 发生后的callback函数 CanIfCtrlId: 逻辑Canif id CanIfWakeupSupport:是否支持唤醒 CanIfMaxDlc:最大报文长度 CanIfCtrlCanCtrlRef: 关联…

我们是如何管理蓝精灵协会 PFP 集合的程序性生成的?

自从 Cryptopunks 和 Bored Apes 发布以来,大多数蓝筹 NFT 系列都在其创意基准中使用了相同的反复出现的概念:一幅插图肖像(也称为 PFP,用于个人资料图片或证明图片)通过使用随机分布的定制层而被改变成几千种略有不同…

【回顾经典AI神作】理解和实现ResNeXt(比ResNet最先进的图像分类模型)

与 ResNet 相比好在哪里? 相同的参数个数,结果更好:一个 101 层的 ResNeXt 网络,和 200 层的 ResNet 准确度差不多,但是计算量只有后者的一半 论文参考:https://arxiv.org/pdf/1611.05431.pdf 以下三篇是介绍和改进残差网络的论文: 用于图像识别的深度残差学习(链接…

ELECTRA模型简单介绍

目录 一、整体概要 二、生成器 三、判别器 四、模型训练 五、其它改进 一、整体概要 ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)采用了一种“生成器——判别器”结构,其与生成式对抗网络…

报表服务器Stimulsoft Server v2023.2亮点:支持PostgreSQL、选项卡

Stimulsoft Server(原Stimulsoft Reports.Server)是一款完善的商业智能解决方案,采用C/S架构,提供报告和分析功能。前端用来展现数据,后台用来处理和存储数据。Stimulsoft Server(原Stimulsoft Reports.Ser…