首页 > 其他分享 >基本分段存储管理方式

基本分段存储管理方式

时间:2024-11-29 10:48:53浏览次数:6  
标签:存储管理 分段 方式 访存 用户 段名 内存 分页

基本分段存储管理方式

前言:分段与分页基本类似,理解了分页此处不难

image


一、分段

进程的地址空间:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名(在低级语言中,程序员使用段名来编程),每段从 0 开始编址。

内存分配规则:以段为单位进行分配,每个段在内存中占据连续空间,但各段之间可以不相邻。

——补充:按逻辑功能模块划分使用户编程更方便,提高程序的可读性。

image

与分页基本类似:

image

二、段表

重点理解:与页表类似,段号是隐含的,不占存储空间。与页表略有不同的是段表还会存储“段长”(注意区分“段长”和“段表长度”)

image

三、地址变换

image

四、分页和分段管理的对比

| 分页 | 分段 |

| ----- | ----- |

| 页是信息的物理单位。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的。 | 段是信息的逻辑单位。分段的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。 |

分页 分段
页是信息的物理单位。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的 段是信息的逻辑单位。分段的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。
页的大小固定且由系统决定。 段的长度却不固定,决定于用户编写的程序。
分页的用户进程地址空间是一维的,程序员只需给出一个记忆符即可表示一个地址。 分段的用户进程地址空间是二维的,程序员在标识一个地址时,既要给出段名,也要给出段内地址。
分页(单级页表):第一次访存一一查内存中的页表,第二次访存一一访问目标内存单元。总共两次访存。 分段:第一次访存一一查内存中的段表,第二次访存一一访目标内存单元。总共两次访存。

补充:

与分页系统类似,分段系统中也可以引入快表机构,将近期访问过的段表项放到快表中,这样可以少一次访问,加快地址变换速度。

不能被修改的代码称为纯代码或可重入代码(不属于临界资源),这样的代码是可以共享的。可修改的代码是不能共享的。

分段比分页更容易实现信息的共享和保护。

举例:

image

image

标签:存储管理,分段,方式,访存,用户,段名,内存,分页
From: https://www.cnblogs.com/Wind730/p/18576024/basic-segment-storage-management-method-zartz3

相关文章

  • ELK使用elasticSearch密码的方式登录Kibana管理Web界面
    一、在logstash配置文件中加入elasicsearch的用户密码logstash.conf中配置用户密码二、在Kibana中的配置更改kibana.yml中配置elasticsearch用户密码,es7为dockerContianerName或者IP地址三、elasticsearch中必须已经开启并设置好了密码四、登录kibana管理界面五、使......
  • 基本分页存储管理的基本概念
    基本分页存储管理的基本概念(前言:概念特别多,注意理解和区分)​​‍一、概念(一)页和页框(易混淆)分页存储:将内存空间分为一个个大小相等的分区,每个分区就是一个“页框”。每个页框有一个编号(“页框号”),页框号从0开始。将某进程的逻辑地址空间也分为与​页框大小相等的一个个部分......
  • 面试官:说一下 MyBatis 的 3 种分页方式?
    分页是我们在开发中绕不过去的一个坎!当你的数据量大了的时候,一次性将所有数据查出来不现实,所以我们一般都是分页查询的,减轻服务端的压力,提升了速度和效率!也减轻了前端渲染的压力!注意:由于java允许的最大整数为2147483647,所以limit能使用的最大整数也是2147483647,一次性取......
  • 连续分配管理方式
    连续分配管理方式‍​​补充:非连续分配管理方式:基本分页存储管理基本分段存储管理段页式存储管理一、前言对于内存来说:内部碎片:已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间外部碎片:还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内存......
  • 数字IC后端设计实现之分段长clock tree经典案例
    最近发现很多读者问到分段长clocktree的做法,小编今天给大家分享几个SoC芯片中复杂时钟结构设计的分段长clocktree的应用案例。希望对各位的学习和工作有所助益。数字后端设计实现之时钟树综合实践篇数字IC后端实现专家都具备哪些技能?(附后端面试宝典)分段长clocktree案......
  • 【VMware VCF】基于 RDU 方式更新 VCF 环境中的 vCenter Server 组件。
    ReducedDowntimeUpgrade(RDU)是一种基于“迁移”的vCenterServer更新方式,通过临时部署一个与源vCenterServer完全一致的目标vCenterServer(类似于跨版本vCenterServer升级),然后找一个维护窗口期完成源vCenterServer和目标vCenterServer的切换即可,由于使用RDU更新......
  • Win7 .lnk快捷方式被绑定到以wps打开导致所有快捷方式失效
    最终通过FileTypesMan解决问题,FileTypesMan可以非常详细的编辑文件类型,找到.lnk,把用户选择项内容按退格键删除:  让.lnk属性保持这样: 正常的.lnk配置如下:保证类型名称是inkfile,用户选择处为空。.lnkfile有的电脑没有,也是正常的重启电脑或者结束explorer进程,重新......
  • 七种方式监听前端代码报错
    错误类型1SyntaxErrorSyntaxError是构建阶段错误,非运行阶段。解析时候发生语法错误无法捕获 2 TypeError TypeError 指的是:值不是所期待的类型3ReferenceErrorReferenceError 指的是:引用未声明的变量4 RangeError RangeError 指的是:当一个值不在其所允许的范......
  • Linux系统自定义服务使用system方式启动步骤
    确定启动的名字,如orzs#启动服务路径/etc/systemd/system/orzs.service 使用systemd启动服务文件所在路径/opt/orzs/start_orzs文件配置文件路径和工作目录#服务工作目录/opt/orzs/#配置文件目录/opt/orzs/etc/文件软连#软连ln-s/opt/orzs/start_orzs/usr......
  • 脚本语言(Script Language)是一种高层次的编程语言,通常用于自动化任务、编写程序脚本、
    脚本语言(ScriptLanguage)是一种高层次的编程语言,通常用于自动化任务、编写程序脚本、控制其他应用程序的行为等。与传统的编译型语言(如C、C++)不同,脚本语言通常不需要经过复杂的编译过程,而是通过解释器直接执行源代码。这使得脚本语言在开发和调试上通常比编译型语言更为快速和灵......