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

news2024/9/21 2:44:00

《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.coloradmin.cn/o/1273518.html

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

相关文章

自动化测试理论

一、初识自动化测试 概念 软件测试的定义 在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。 自动化测试的定义 把人对软件的测试行为转化为由机器执行测试行为的一种实践&#xff0…

芯片技术探索:了解构芯片的设计与制造之旅

芯片技术探索:了解构芯片的设计与制造之旅 一、引言 随着现代科技的飞速发展,芯片作为信息技术的核心,已经渗透到我们生活的方方面面。从智能手机、电视、汽车到医疗设备和工业控制系统,芯片在各个领域都发挥着至关重要的作用。然而,对于大多数人来说,芯片仍然是一个神秘…

【Flink进阶】-- Flink kubernetes operator 快速入门与实战

1、课程目录 2、课程链接 https://edu.csdn.net/course/detail/38831

发朋友圈的重要性和黄金时间

一、为什么发朋友圈要选择时间发? 1. 增加曝光率:通过定时自动发朋友圈,可以让更多的人看到你的动态。 2. 提高互动率:定时自动发朋友圈可以保持你的朋友圈活跃度,提高与粉丝的互动率。 3. 增强品牌形象&#xff1a…

系统设计面试指南之分布式任务调度

1 简介 任务是需要资源(CPU 时间、内存、存储、网络带宽等)在指定时间内完成的一段计算工作。 通过智能地将资源分配给任务以满足任务级和系统级目标的系统称为任务调度程序。 任务调度程序: 及时决定和分配资源给任务的过程称为任务调度。 当我们在 Facebook 发…

Golang语言基础之切片

概述 数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性 func arraySum(x [3]int) int{sum : 0for _, v : range x{sum sum v}return sum } 这个求和函数只能接受 [3]int 类型,其他的都不支持。 切片 切片(Slic…

2023长三角(芜湖)人工智能数字生态峰会暨视觉算法大赛颁奖典礼邀您一同参与!

时光荏苒,科技飞速发展,人工智能正在以令人瞩目的速度改变着我们的生活。在这个数字科技的新时代,为促进长三角地区人工智能产业的蓬勃发展,助推数字经济的繁荣,2023长三角(芜湖)人工智能数字生…

php请求okx接口获取比特币价格数据、k线数据

php请求okx接口获取比特币价格数据 环境配置请求头、签名设置签名配置代理 全部代码 环境 我本地用的是thinkphp框架和guzzle 安装guzzle composer require guzzlehttp/guzzle 配置请求头、签名 我们需要准备api_key,secret_key,passphrase api_key…

软件测试的测试文档怎么编写?

在软件测试中的流程中,测试文档也是一个重要的流程,所以测试人员也需要学习测试文档的编写和阅读。 一定义: 测试文档(TestingDocumentation)记录和描述了整个测试流程,它是整个测试活动中非常重要的文件。…

预约系统源码解析:打造智能定制化预约服务的技术奇迹

在当今数字化时代,预约系统的重要性日益凸显,而预约系统源码的开放将为各行业带来更加灵活、智能的预约解决方案。本文将深入探讨预约系统源码的技术内幕,为开发者提供实用的代码示例,助力打造智能定制化的预约服务。 技术栈概览…

泛域名SSL证书是什么?泛域名SSL证书价格多少钱?

泛域名SSL证书是一种SSL证书类型,也被称为通配符SSL证书。SSL证书是保护网站数据传输安全及服务器身份可信的数字证书产品,通常绑定域名或IP,配置到网站服务器上。SSL证书根据保护域名数量及域名类型的不同,可以分为单域名SSL证书…

分布式系统:CAP 定理

欢迎来到分布式系统系列。在本文中,我们将学习并理解什么是 CAP 定理。CAP 代表一致性、可用性和分区容错性。当我们谈论CAP定理时,我们主要谈论的是分布式系统。首先,让我们了解一下什么是分布式系统。分布式系统是由运行在单台或多台机器上…

(免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐

摘 要 随着时代的不断更新,社会的不断变换,信息技术的飞速发展,计算机科技技术也逐步走向成熟。图书馆管理系统对于当今社会来说是必不可少的一个信息组成部分,它可以管理大量图书、大量读者、让读者有条不紊的进行借阅图书&#…

易石无代码开发:电商平台连接CRM与客服系统,实现营销自动化

易石无代码开发的优势 易石软件以其强大的无代码开发平台,为电商企业提供了一种全新的业务集成手段。在激烈的市场竞争中,电商平台必须不断优化其运营效率和客户服务质量。易石无需复杂的API开发,通过简单的配置就能实现电商平台与CRM、客服…

Linux Centos系统安装Mysql8.0详解

本文是基于服务器Linux Centos 8.0系统 安装 Mysql8.0真实运维工作实战为例,详细讲解安装的全过程。 1,检查卸载mariadb Mariadb数据库是mysql的分支,mariadb和mysql会有冲突,所以安装Mysql前,首先要检查是否安装了m…

Xilinx FPGA——ISE的UCF时序约束

时序约束是我们对FPGA设计的要求和期望,例如,我们希望FPGA设计可以工作在多快的时钟频率下等等。 设计是要求系统中的每一个时钟都进行时序约束。 一、分组约束语法(NET、PIN、INST) TNM是最基本的分组约束语法,其语法…

如何去选择合适的线缆测试仪?CAT8网线认证测试

如何去选择合适的线缆测试仪? 如果你是第三方检测单位,系统集成商,或者线缆生产厂家,我个人建议选择福禄克DSX系列无疑是比较保险的做法,因为考虑到福禄克在国内耕耘多年所积累起来的品牌知名度和口碑,选择一款大家都…

又一张图片,还单纯吗-MISC-bugku-解题步骤

——CTF解题专栏—— 题目信息: 题目: 又一张图片,还单纯吗 作者:harry 提示:falg{} 解题附件: 解题思路: ok图片隐写问题,老三样儿:binwalk、010Editor、Stegsolve …

电话销售如何提高成功率

电话销售是一种非常有效的销售方式,睡着通信技术,互联网的发展,现在电话销售已经成为一种重要的销售方式,很多行业和领域都有使用。 虽然最终目的都是为了将产品卖出去,但是对于电话销售来说,前期寻找客户…

你知道功能测试和非功能测试有什么区别么?

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…