3.1_10 段页式管理方式

3.1_10 段页式管理方式

image-20240315104635671

(一)分页、分段的优缺点分析

image-20240315104807033

image-20240315104915465

  基于分页、分段的优缺点,人们想出了将分页、分段结合,就产生了段页式管理。段页式管理具备了分页、分段各自的优点。

(二)分段+分页=段页式管理

image-20240315105135002

  将进程按逻辑模块分段,再将各段分页(如每个页面4KB)。

  再将内存空间分为大小相同的内存块/页框/页帧/物理块。

(三)段页式管理的逻辑地址结构

  分段系统的逻辑地址结构由段号和段内地址(段内偏移量)组成。如:

image-20240315110104166

  对于段页式管理,我们知道,一个进程在被分段之后,还会被再次分页。

  段页式系统的逻辑地址结构由段号、页号、页内地址(页内偏移量)组成。如:

image-20240315110221441

  此处的“页号+页内偏移量”其实就是分段管理当中的“段内地址”。是对“段内地址”进行再拆分的一次结果。

  段号的位数决定了每个进程最多可以分几个段

  页号位数决定了每个段最大有多少页

  页内偏移量决定了页面大小、内存块大小是多少

  在上述例子中,若系统是按字节寻址的,则

  段号占16位,因此在该系统中,每个进程最多有 2 16 = 64 K 2^{16}=64K 216=64K个段。

  页号占4位,因此每个段最多有 2 4 = 16 2^4=16 24=16页。

  页内偏移量占12位,因此每个页面大小(也即每个内存块大小)为 2 12 = 4096 = 4 K B 2^{12}=4096=4KB 212=4096=4KB

  在段页式存储当中,“分段”对用户是可见的,程序员编程时需要显式地给出段号、段内地址。而将各段“分页”对用户是不可见的。系统会根据段内地址自动划分页号和页内偏移量。——即,对于用户来说,他只需向系统提供:段号、段内地址。

  因此段页式管理地址结构是二维的

  与之相应的,段式管理的地址结构也是二维的;页式管理的地址结构是一维的。

  提示:在分页存储管理(页式管理)的系统中,只要确定了每个页面的大小,逻辑地址结构就确定了。因此,页式管理中地址是一维的。即,只要给出一个逻辑地址,系统就可以自动地算出页号、页内偏移量两个部分,并不需要显式地告诉系统这个逻辑地址中,页内偏移量占多少位。

(四)段表、页表

  进程当中的各个段会分别对应段表当中的一个段表项。

image-20240315111601714

  由于内存块号的大小是固定的,因此,通过查询段表项,找到页表存放的块号,就能找到页表存放的地址。

  如上图,我们要查找0号段的段表项,可知0号段的页表存放在内存中的1号块的位置。从而就可以从内存当中读出0号段对应的页表信息。

  此外,由于0号段大小是7KB,而每个页面的大小是4KB,所以它会被分成两个页面。相应地,这两个页面就会依次对应0号段的页表当中的两个页表项。每一个页表项记录了每一个页面对应的内存块号是多少。

  每个段表项由段号、页表长度、页表存放块号(页表起始地址)组成。每个段表项长度相等,段号是隐含的

  每个页面对应一个页表项,每个页表项由页号、页面存放的内存块号组成。每个页表项长度相等,页号是隐含的。

  在段页式管理中,段表的结构,与段式管理中的段表是不一样的。段式管理当中的段表记录的是(段号, 段的长度, 段的起始地址);而段页式管理当中的段表记录的是(段号, 页表长度, 页表存放块号)。而对于页表而言,段页式管理、分页管理的页表结构基本上一样,都是记录页号到物理块号的映射关系。

  此外,无论是段表还是页表,由于每个段表项/页表项的大小是相等的,因此无论是段号、页号,都是隐含的。

  一个进程会对应一个段表,但是一个进程有可能会对应多个页表。

(五)地址转换

image-20240315113428763

  首先,系统当中也会有一个“段表寄存器”的硬件。在进程上处理机运行之前,会从PCB当中读出段表始址F和段表长度M。

  第一步,根据逻辑地址得到段号、页号、页内偏移量。

  第二步,要把段号和段表长度进行对比,检查是否越界。

  第三步,根据段表始址、段号,从而计算出这个段号对应的段表项在内存当中的存放位置。就找到了我们想要找的段表项。

  第四步,需要注意的是,由于各个段的长度是不一样的,所以各个段在分页之后,可能分为数量不等的不同页面。(比如有的段长一些,就会分为2个页面;有的段短一点,只需1个页面)因此,这个地方我们也需要对页号的合法性进行检查,看看页号是否越界。——总之,通过段表项,我们读出了这个段对应的页表,存放在内存块的哪个位置,从而读出该页表。

  第五步,已知这个段对应的页表信息,以及页号是多少,就可以找到相应的页表项,从而找到这个页面对应的内存块号,再结合页内偏移量,即可得知最终的物理地址。


  因此,在段页式存储管理当中,进行逻辑地址的转换,总共需要三次访存。

  第一次访存——访问内存当中的段表;

  第二次访存——访问内存当中的页表;

  第三次访存——访问最终的目标内存单元。

  之前也介绍过,在分页、分段管理方式中,也都是可以引入快表机构的。

  同样地,在段页式管理方式中,也可以引入快表机构,用段号和页号作为查询快表的关键字。若快表命中,则仅需一次访存。

总结

image-20240315113928047

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

H5 红色文字抖动网址发布页/引导页源码

源码名称:红色文字抖动网址发布页/引导页 源码介绍:一款红色文字抖动网页源码,可用于引导页或网址发布页。 需求环境:H5 下载地址: https://www.changyouzuhao.cn/10470.html

STM32使用常见错误合集(正在更新版)

本文章记录一些学习STM32的一些错误问题 一、编译、烧录类问题 1、烧录不成功,Keil提示RDDI-DAP Error【场景:PWM驱动直流电机】 解决方案:将电机断开再进行烧录,断开后就可以美美烧录不报错啦~ 二、Keil使用问题 1、打开一个…

maven私服搭建教程

搭建 下载安装包: 官方地址:https://www.sonatype.com/products/sonatype-nexus-oss-download 这里我提供安装包: https://www.123pan.com/s/tB5A-F4GYd.html 提取码:I3hp 这里以window10安装为例: nexus-3.66.0-02 sonatype-wo…

Linux搭建我的世界(MC)整合包服务器,All the Mods 9(ATM9)整合包开服教程

Linux使用MCSM面板搭建我的世界(Minecraft)整合包服务器,MC开服教程,All the Mods 9(ATM9)整合包搭建服务器的教程。 本教程使用Docker来运行mc服,可以方便切换不同Java版本,方便安装多个mc服版本。 视频教程:https:…

C++网络编程

网络通信socket 套接字(Socket),就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象。一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网…

从零开始的LLaMA-Factory的指令增量微调

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径及一点个人思考大模型应用开发实用开源项目汇总大模型问答项目…

chatgpt4.0开通方法,wildcard邀请码

第一步,先开通一个wildcard账户,这个是虚拟信用卡,可以通过支付宝充值,地址: 三达不溜点bewildcard点com,开卡是需要付费的,11.99美刀一个月,输入邀请码优惠两刀,这里提…

【HyperLips:】数字人——控制嘴唇 项目源码python实现

最近受到商汤“复活”汤晓鸥的视频刺激,大大的amazing!没看过的小伙伴可以自行百度,看了不研究一下【数字人】技术,都要跟时代脱轨了,那就以HyperLips为开篇吧。 目录 🍎🍎1.摘要 &#x1f3…

【黑马程序员】Python文件、异常、模块、包

文章目录 文件操作文件编码什么是编码为什么要使用编码 文件的读取openmodel常用的三种基础访问模式读操作相关方法 文件的写入注意代码示例 异常定义异常捕获捕获指定异常捕获多个异常捕获所有异常异常else异常finally 异常的传递 python 模块定义模块的导入import模块名from …

必备工具:Postman Newman 详解

Postman Newman 是什么? Postman Newman 是一个 CLI(命令行界面)工具,可以使用它来运行 Postman 中的集合(Collection)和环境(Environment)进行自动化测试。它是 Postman 的命令行 …

运营干货 | TikTok店铺引流就看这几点

在 TikTok 上进行店铺引流可以是一种非常有效的营销策略,尤其是针对年轻用户群体。以下是一些在 TikTok 上进行店铺引流的技巧: 创作有趣的内容:在 TikTok 上,有趣和创意的内容往往更容易引起用户的注意。制作与你的品牌或产品相…

Arcgis新建位置分配求解最佳商店位置

背景 借用Arcgis帮助文档中的说明:在本练习中,您将为连锁零售店选择可以获得最大业务量的商店位置。主要目标是要将商店定位在人口集中地区附近,因为这种区域对商店的需求量较大。设立这一目标的前提是假设人们往往更多光顾附近的商店,而对于距离较远的商店则较少光顾。您…