<Linux>(极简关键、省时省力)《Linux操作系统原理分析之存储管理(3)》(16)

《Linux操作系统原理分析之存储管理(3)》(16)

  • 5 存储管理
    • 5.6 分段存储管理
      • (1) 地址结构
      • (2) 段表
      • (3) 地址变换机构
      • (4) 存储共享
      • (5) 分页和分段的主要区别
    • 5.7 段页式存储管理
      • 5.7.1 段页式存储管理原理
      • 5.7.2 地址转换

5 存储管理

5.6 分段存储管理

1.基本思想
从固定分区到可变分区,进而又发展到分页系统的原因,主要都是为了提高内存利用率,然而,分段存储管理方式的引入,则主要是为了满足以下的一系列要求。

在这里插入图片描述

(1) 地址结构

分段系统,作业的地址空间(二维)由若干逻辑分段组成,每个段是一组逻辑意义完整的信息集合。每段都有自己的名字,且每段都是首地址为 0 的连续的一维地址空间。所以,整个作业空间是二维的,具有如下地址结构。 一个作业最多可以有 28个段,每段最长为 216
在这里插入图片描述

(2) 段表

分段式存储管理以段为单位进行内存分配,每段分配一个连续的内存区,各段之间的内存不一定连续,且各个内存区也不等长。内存的分配和释放随需要动态进行。在将一个进程的各个段离散地放入内存和不同的物理区中后,为能使程序正确运行,即能从物理内存中找出每个逻辑段对应的位置,需要在系统中为每个进程建立一张段映射表,简称“段表”(SMT: segment mapping table)。每个段在段表中占有一个表项,其中记录了该段在内存中的起始地址、段的长度。段表可实现从逻辑段到物理内存的映射。

SMT[段号][装入标志位][段长][内存始址]

(3) 地址变换机构

为了实现从进程的逻辑地址到物理地址的变换功能,在系统中设置了段表寄存器,用于存放段表的始址和段表的长度。在进行地址变换时,系统将段号与段表长度进行比较,若段号太大表示访问越界,便产生越界中断信号;若未越界,则根据段表始址和该段的段号,计算出该段对应的段表项的位置,从而读出该段在内存中的起始地址,然后再检查段内地址是否超过该段的段长,若超过,同样发出越界中断信号;若未越界,则将该段内存起始地址与段内地址相加,得到要访问的内存物理地址。

与页式管理相同,段式管理时的地址变换过程必须经过二次以上的内存访问。即首先访问段表以计算得到访问指令或数据的物理地址,然后才是对物理地址进行取数据或数据操作。为了提高访问速度,也可引入快表。

(4) 存储共享

只需在每个进程的段表中,由相应表项来指向该共享段在内存中的物理区即可。如下图:
在这里插入图片描述

(5) 分页和分段的主要区别

分页分段
页是信息的物理单位,分页仅仅是由于系统管理的需要,而不是用户的需要段是信息的逻辑单位,它含有一组具有相对完整意义的信息,是处于用户的需要。
页的大小固定且由系统确定,把逻辑地址分为页号和页内地址两部分功能,由机器硬件实现段的长度却不固定,由用户在变成是确定,或由编译程序在对源程序进行编译时,根据信息的性质来划分。
分页的作业地址空间是一维的,即单一的线性地址空间分段的作业地址空间则是二维的。

5.7 段页式存储管理

在这里插入图片描述

5.7.1 段页式存储管理原理

分页系统能有效地提高内存利用率,而分段系统则能很好地满足用户需要,如果对两种存储管理方式“各取所长”,可结合成一种新的存储管理方式,它具有分段系统的优点,又能象分页系统那样很好地解决“碎片”问题。这个系统别称为“段页式系统”。
1. 基本原理
段页式系统的基本原理是分段和分页原理的结合。先分段后分页,每段具有段名。例如:该作业由三段,页面大小为 4K
在这里插入图片描述
2.地址结构
段页式系统中,其地址结构由段名、段内页号和页内地址三部分组成。
3.为实现地址映射,必须配置段表和页表,段表的内容略有变化,它不是内存始址和段长,而是页表始地址和页表长度。
在这里插入图片描述

5.7.2 地址转换

在段页式系统中,需配置 1 段表寄存器, 其中存放段表始址和段表长度,进行地址变换时,首先利用段号 S,将之与段表长度进行比较,若未越界,便利用段表始址和段号求得该段表项的位置,并从中找到页表始址,并利用逻辑地址中的页号 P 获得对应页表项的位置,从而取出该页的物理块号 b,由块号b 和页内地址构成物理地址。

在这里插入图片描述

在段页式系统中,为了获得一条指令或数据,需要三次访问内存。第一次,时从内存中取得页表始址;第二次,从内存中取的物理块号形成物理地址;第三次才能取得所需的指令和数据。为了提高速度,必须引入超高速缓冲 Cache.

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

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

相关文章

Nginx 常用操作命令

​ windows: tasklist /fi “imagename eq nginx.exe” 列出nginx实列nginx -t 或 nginx -tc /etc/nginx/nginx.conf 校验 nginx.confnginx -s stop fast shutdownnginx -s quit graceful shutdownnginx -s reload changing configuration, starting new worker processes wi…

使用JavaFX如何实现简易网盘程序

实现一个简易网盘可以分为以下几个步骤: 搭建基本框架:使用JavaFX创建一个界面,包括登录、注册、主页面等各个部分。 数据库设计:创建一个数据库并设计表格,包括用户表、文件表等。 用户管理:用户在注册时需要输入用户名、密码等信息,这些信息需要存储到用户表中。登录时…

【JMeter】菜单栏介绍

【菜单栏】 1. Tools 导入curl接口信息 作用&#xff1a;快速导入接口信息&#xff0c;响应头和缓存信息等 Log level临时修改日志等级 作用&#xff1a; 从勾选的level开始往更高等级level抓取log日志等级优先级&#xff1a; ALL < TRACE < DEBUG <INFO<WA…

RT_Thread_msh_系统msh命令、使用msh时过滤ulog日志、添加msh命令(不带/带参)

1、msh配置 msh功能是自动开启的&#xff0c;配置如下&#xff0c;可以在“RT-Thread Settings”里去修改。 调试过程中遇到msh不能使用&#xff0c;理解msh也是一个线程&#xff0c;有自己的优先级20&#xff0c;高优先级的线程&#xff08;比如main是10&#xff09;如果一直…

保护你的应用:Spring Boot与JWT的黄金组合

&#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 保护你的应用&#xff1a;Spring Boot与JWT的黄金组合 前言第一&#xff1a;项目整合基本配置token验证配置拦截器配置依赖的pom坐标 第二&#xff1a;Spring Security与JWT的…

软件测试 —— 冒烟测试(Smoke Test,ST)

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;欢迎加入我们一起学习&#xff01;&#x1f4e2;资源分享&#xff1a;耗时200小时精选的「软件测试」资…

Android帝国之进程杀手--lmkd

本文概要 这是Android系统启动的第三篇文章&#xff0c;本文以自述的方式来讲解lmkd进程&#xff0c;通过本文您将了解到lmkd进程在安卓系统中存在的意义&#xff0c;以及它是如何杀进程的。&#xff08;文中的代码是基于android13&#xff09; 我是谁 init&#xff1a;“大…

SpringCloudAlibaba微服务 【实用篇】| Nacos配置管理

目录 一&#xff1a;Nacos配置管理 1. 统一配置管理 2. 配置热更新 3. 配置共享 4. 搭建Nacos集群 tips&#xff1a;前些天突然发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;感兴趣的同学可以进…

Zemax光学设计——单透镜设计

单透镜系统参数&#xff1a; 入瞳直径&#xff1a;20mm F/#&#xff08;F数&#xff09;&#xff1a;10 全视场&#xff1a;10 波长&#xff1a;587nm 材料&#xff1a;BK7 优化方向&#xff1a;最佳均方根光斑直径 设计步骤 一、单透镜系统参数 步骤一&#xff1a;入…

【Spring系列】DeferredResult异步处理

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

PDF文件如何限制打印?限制打印清晰度?

想要限制PDF文件的打印功能&#xff0c;想要限制PDF文件打印清晰度&#xff0c;都可以通过设置限制编辑来达到目的。 打开PDF编辑器&#xff0c;找到设置限制编辑的界面&#xff0c;切换到加密状态&#xff0c;然后我们就看到 有印刷许可。勾选【权限密码】输入一个PDF密码&am…

安装Qt6.2 在Ubuntu 22.04系统

先看目录&#xff0c;了解整体流程&#xff01; 先看目录&#xff0c;了解整体流程&#xff01; 先看目录&#xff0c;了解整体流程&#xff01; 文章目录 下载下载对应系统的下载器为下载器指定镜像源下载长期支持版本(比较稳定)添加到系统环境变量验证项目中使用 Troublesho…

vue3随机生成8位字母+数字

// 随机生成8位字母数字 export const autoPassword: any () > {// console.log("自动生成");//可获取的字符串const chars ABCDEFGHIJKLMNOPQRSTUVWSYZabcdefghijklmnopqrstuvwsyz0123456789;const list [];//通过随机获取八个字符串的索引下标for (let i 0;…

Hive_last_value()

在SQL中&#xff0c;LAST_VALUE()函数是一个窗口函数&#xff0c;用于返回窗口内的最后一个值。窗口函数允许你在一组行上执行计算&#xff0c;这组行与当前行有某种关系。可以将它们想象为与当前行相关的“窗口”。 LAST_VALUE()函数通常与OVER()子句一起使用&#xff0c;后者…

IBM ServeRAID M1015阵列卡 支持RAID5,需要配件

最近一台IBM x3400m3的旧服务器&#xff0c;折腾一下&#xff0c;要添置硬盘&#xff0c;重做RAID&#xff0c;阵列卡是ServeRAID M1015&#xff0c;默认进去WebBIOS&#xff0c;只有RAID0和RAID1&#xff0c;没有RAID5&#xff0c;参考官方原版的手册&#xff0c;如下图&#…

R语言30分钟入门

1. 环境&安装 R是支持win、linux合macos的 完整参考&#xff1a;https://zhuanlan.zhihu.com/p/596324321?utm_id0 主要是安装&#xff1a;1、R环境&#xff1b;2、rstudio开发环境&#xff08;后面主要是用rstudio&#xff0c;也可以用vscode&#xff09; 1.1. rstud…

【软件安装】conda

conda是什么 conda是一个开源的软件包管理系统和环境管理系统&#xff0c;用于安装和管理多个软件包和其依赖关系。它能够在各种操作系统上工作&#xff0c;包括Windows、macOS和Linux。 conda的主要功能 创建和管理虚拟环境&#xff1a;可以通过conda创建多个隔离的Python环…

绘制折扇-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第11讲。 绘制折扇&#xf…

Docker本地部署Firefox火狐浏览器并远程访问

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《Linux》《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…

分割掩模 VS 掩膜

掩膜 Mask分割掩模 Segmentation Mask总结示例 掩膜 Mask “掩膜” 是指一种用于 标识或遮蔽图像中特定区域 的 图像。 在图像处理中&#xff0c;掩膜通常是一个 二值图像&#xff0c;其中的 像素值为 0 或 1。binary Mask 叫做二元掩膜&#xff0c;如下图所示&#xff1a; 这…