分段存储管理方式

news2024/11/25 7:34:01

目录

一、分段存储管理方式的引入的需求:

1.方便编程

2.信息共享

3.信息保护

4.动态增长

5.动态链接

二、分段系统的基本原理

1.分段

2.段表

3.地址变换机构

4.分页与分段的主要区别

三、信息共享

四、段页式存储管理方式

1.基本原理

2.地址变换过程


分段与分页最大的区别:

离散分配时所分配地址空间的基本单位不同。

一、分段存储管理方式的引入的需求:

1.方便编程

通常,用户把自己的作业按照逻辑关系划分为若干个段,每个段都从0开始编址,并有自己的名字和长度。因此,程序员们都迫切地需要访问的逻辑地址是由段名(段号)和段内偏移量(段内地址)决定的,这不仅可以方便程序员编程,也可使程序非常直观,更具可读性。

2.信息共享

在实现对程序和数据的共享时,是以信息的逻辑单位为基础的。所以,段可以是信息的逻辑单位。

3.信息保护

信息保护同样是以信息的逻辑单位为基础的,而且经常是以一个过程、函数或文件为基本单位进行保护的。

4.动态增长

在实际应用中,往往存在着一些段,尤其是数据段,在它们的使用过程中,由于数据量的不断增加,而使数据段动态增长,相应地它所需要的存储空间也会动态增加

5.动态链接

为了提高内存的利用率,系统只将真正要运行的目标程序装入内存,也就是说,动态链接在作业运行之前,并不是把所有的目标程序段都链接起来。当程序要运行时,首先将主程序和它立即需要用到的目标程序装入内存,即启动运行。而在程序运行过程中,当需要调用某个目标程序时,才将该段(目标程序)调入内存并进行链接。可见,动态链接要求的是以目标程序(即段)作为链接的基本单位。因此,分段存储管理方式非常适合于动态链接。

二、分段系统的基本原理

1.分段

在分段存储管理方式中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息

逻辑地址是由段号(段名)段内地址所组成。

分段地址中的地址结构:

在这里插入图片描述

2.段表

在前面所介绍的动态分区分配方式中,系统为整个进程分配一个连续的内存空间。而在分段式存储管理系统中,则是为每个分段分配一个连续的分区。进程中的各个段,可以离散地装入内存中不同的分区中。为保证程序能正常运行,就必须能从物理内存中找出每个逻辑段所对应的位置。为此,在系统中,类似于分页系统,需为每个进程建一张段映射表,简称“段表”。每个段在表中占有一个表项,其中记录了该段在内存中的起始地址(又称为“基址”)和段的长度,如图所示。段表可以存放在一组寄存器中,以利于提高地址转换速度。但更常见的方法是将段表放在内存中。在配置了段表后,执行中的进程可通过查找段表,找到每个段所对应的内存区。可见,段表是用于实现从逻辑段到物理内存区的映射的。

 在这里插入图片描述

 eg:

若段表存放起始位置为M,则k号段对应段表项存放地址为M+k*段长

3.地址变换机构

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

当段表放在内存中时,每要访问一个数据,都必须访问两次内存。

在这里插入图片描述

4.分页与分段的主要区别

(1)页是信息的物理单位。采用分页存储管理方式是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅只是系统管理上的需要,完全是系统的行为,对用户是不可见的。分段存储管理方式中的段则是信息的逻辑单位,它通常包括的是一组意义相对完整的信息。分段的目的主要在于能更好地满足用户的需要。
(2)页的大小固定且由系统决定。在采用分页存储管理方式的系统中,在硬件结构上,就把用户程序的逻辑地址划分为页号和页内地址两部分,也就是说是直接由硬件实现的,因而在每个系统中只能有一种大小的页面。而段的长度却不固定,决定于用户所编写的程序,通常由编译程序在对源程序进行编译时,根据信息的性质来划分。
(3)分页的用户程序地址空间是一维的。分页完全是系统的行为,故在分页系统中,用户程序的地址是属于单一的线性地址空间,程序员只需利用一个记忆符即可表示一个地址。而分段是用户的行为,故在分段系统中,用户程序的地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

三、信息共享

分段系统的一个突出优点,是易于实现段的共享,即允许若干个进程共享一个或多个分段,且对段的保护也十分简单易行

1.分页系统中对程序和数据的共享

在这里插入图片描述

2.分段系统中对程序和数据的共享

在分段系统中,由于以段为基本单位,不管该段有多大,我们都只需为该段设置一个段表项

在这里插入图片描述

四、段页式存储管理方式

分页系统以页面作为内存分配的基本单位,能有效地提高内存利用率,而分段系统以段作为内存分配的基本单位,它能够更好地满足用户多方面的需要。

1.基本原理

段页式系统的基本原理是分段和分页原理的结合,即先将用户程序分成若干段,再把每个段分成若干个页,并为每个段赋予一个段名。

在段页式系统中,其地址由段号、段内页号及页内地址(页内偏移量)三部分组成。

在这里插入图片描述

2.地址变换过程

在段页式系统中,为了便于实现地址变换,须配置一个段表寄存器,其中存放段表始址段长 TL 。

在段页式系统中,为了获得一条指令或者数据,须三次访问内存

  • 第一次访问是访问内存中的段表,从中取得页表始址
  • 第二次访问是访问内存中的页表,从中取出该页所在的物理块号,并将该块号与页内地址一起形成指令或数据的物理地址
  • 第三次访问才是真正从第二次访问所得的地址中取出指令或数据

在这里插入图片描述

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

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

相关文章

Spring实现IOC和DI入门案例(XML版)

文章目录 1 IOC入门案例(XML版)1.1 思路分析1.2 代码实现步骤1:创建Maven项目步骤2:添加Spring的依赖jar包步骤3:添加案例中需要的类步骤4:添加spring配置文件步骤5:在配置文件中完成bean的配置步骤6:获取IOC容器步骤7:从容器中获取对象进行方法调用步骤8:运行程序 2 DI入门案例…

AltTab for Mac 像Windows一样的窗口快速切换工具

AltTab for Mac AltTab for Mac 是一款非常好用的窗口快速切换工具,AltTab将Windows的 “Alt-Tab” 窗口切换器的功能引入到了macOS。可以让您更快的在各个程序之间自由切换,大大提高您的工作效率。 AltTab for Mac下载 AltTab for Mac AltTab for Ma…

哈工大软件过程与工具作业2

云原生技术云原生技术 哈尔滨工业大学 计算机科学与技术学院/国家示范性软件学院 2022年秋季学期 《软件过程与工具》课程 作业报告 作业 2:需求分析UML建模 姓名 学号 联系方式 石卓凡 120L021011 944613709qq.com/18974330318 目 录 1 需求概述...........…

Vue3——简易版个人空间(上半部分)

创建项目 使用vue 的图形化界面创建一个新的vue3项目如下图所示 装两个新的插件——router和vuex插件 该过程的可能有点久,需要耐心等待。 再装一些需要的依赖 需要用到的依赖: boostrap和poperjs/core(bootstrap是提供给不会做美工的程序员的一个新的…

物联网|uart串口相关寄存器|波特率设置及计算|发送处理代码|串口接收中断处理函数|物联网之蓝牙4.0 BLE基础-学习笔记(7)

文章目录 13 uart串口基础开发基本电路图:实验相关寄存器波特率设置及计算计算过程:设置中断发送处理代码串口接收中断处理函数main.c 13 uart串口基础开发 基本电路图: 实验相关寄存器 相关寄存器UxCSR、UxCSR、UxGCR、UxBUF、UxBAUD、CLK…

大厂设计师青睐的十大设计网站

设计绝对是薪酬差距最大的职业之一,有些人年薪100万,有些人月薪3000。 你有没有想过普通人和高薪设计师之间的差距在哪里? 在这篇文章中,我们将解密大厂设计师青睐的十大设计网站。让我们看看! 1.即时设计 即时设计…

眺望高阶智能驾驶的远方,北醒驶入新“平台”

从4月到5月,关于2023上海国际车展的话题热度始终不减。 这次车展既让外界感受到了车企们的“卷”,也把智能汽车产业发展的蓝图更加清晰地呈现了出来——智能汽车正在进入产业布局的关键期,产业链上下游发展不断提速。 作为推动汽车产业的“…

基于边缘的图像分割

文章目录 基于边缘的图像分割基本原理常用的算法实现步骤示例代码结论 基于边缘的图像分割 基于边缘的图像分割是数字图像处理中常用的一种方法,它通过检测图像中的边缘信息来实现图像的分割。边缘通常代表着图像中不同区域之间的边界或目标的轮廓,因此…

Java 8 腰斩,Java 17 暴涨 430% (文末惊喜福利)

文末送出惊喜赠书福利一份,绝对high到爆! 预约视频号:《Java核心技术》新书发布会暨"Java核心技术大会2023"启动仪式 New Relic 最新发布了一份 “2023 年 Java 生态系统状况报告”,旨在提供有关当今 Java 生态系统状态…

51单片机(十六)AD/DA

❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 :适用于想要…

罗马斗兽场在古罗马时期为什么这么流行,它对罗马有何影响?

在古罗马时期,斗兽场可谓是当时的一大热门娱乐场所。为何斗兽场如此受欢迎,它又如何影响了罗马社会呢? 斗兽场是古罗马人民的一种独特的娱乐形式。无论贵族、平民还是奴隶,他们都喜欢观看这种刺激的竞技。 有人认为,斗…

弹性盒子的属性

display:指定元素使用弹性盒子布局,属性值为 flex 或 inline-flex。 flex-direction:指定弹性盒子主轴的方向,属性值可以是 row(默认值,主轴为水平方向)、row-reverse(主轴为水平方…

第11章:约束

一、数据完整性与约束的分类 1.为什么需要约束constraint SQL以约束方式对表数据进行额外的条件限制。 为了保证数据的完整性,SQL对表数据进行条件限制 ①实体完整性:同一个表,不能存在两条相同无法区分的记录 ②域完整性:年…

【数据结构】入门及时间空间复杂度的介绍

🌱博客主页:大寄一场. 🌱系列专栏:数据结构与算法 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 目录 前言 1.什么是数据结构? 2.什么是算法? 3.数据结构和算法的重要性 4.常见的数…

【杂记】Rest风格

文章目录 1.什么是Rest?2.URI URL URN3.什么是Restful架构风格4.状态转换 1.什么是Rest? Rest是一种软件架构的风格。 英文名称:REpresentational State Transfer(表现层状态转移) 加上主语:Resource Repr…

Linux网络基础-3

在上一篇网络基础的博客当中,我们对应用层协议--HTTP协议进行了详解,接下来我们对传输层协议进行详解 目录 1.传输层协议 2.UDP协议 2.1协议内容 2.2协议格式 2.3协议特性 3.TCP协议 3.1协议内容 3.2协议格式 3.3协议特性 3.3.1三次握手建立连…

Bootstrap开发之——Bootstrap安装及使用(02)

一 概述 Bootstrap下载npm安装bootstrap并使用(vue中使用)bootstrap通过本地lib导入并使用(html)bootstrap通过cdn导入并使用(html) 二 Bootstrap下载 2.1 Bootstrap下载(v3.x版本为例) 在Bootstrap中文官网,点击顶部的入门标签,在如下图页面点击下载…

Linux——对权限的理解

文章目录 总述Linux权限的概念Linux 权限管理Linux对文件访问者的分类文件类型和访问权限a.文件类型b.基本权限文件权限修改的相关方法 其他问题在首次创建时文件的权限属性是固定的吗?目录的权限粘滞位 总述 本篇博客将主要讲解linux系统中权限的概念,权…

Sort练习题

sort 练习 练习题 题目&#xff1a;浮点数排序 #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <algorithm> //sort()排序 #include <cmath> //round()来找最近的整数 using namespace std; const double EPSILON 1e-6; //两个浮点…

web框架:Iris快速入门

web框架&#xff1a;Iris快速入门 1 介绍及安装 介绍 Iris是一款用Go开发的web应用框架&#xff0c;被称为速度最快的Go后端开发框架。官网地址&#xff1a;https://www.iris-go.com/中文教程地址&#xff1a;http://www.codebaoku.com/iris/iris-index.html 安装 环境要求&a…