ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

存储器管理——基本分段存储管理

2022-05-25 06:32:02  阅读:166  来源: 互联网

标签:存储管理 表项 分段 存储器 内存 地址 段表 分页



基本分段存储管理与“分页”最大的区别是:离散分配时所分配地址空间的基本单位不同

分段:按照程序自身的逻辑关系划分为若干个段,每个段都有一个段名,每段从0开始编址

段名:在低级语言中,程序员使用段名来编程

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

分段的好处:按逻辑功能模块划分,用户编程更方便,程序的可读性更高

编译程序会将段名转换为:段号

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

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

段内地址位数决定了:每个段的最大长度是多少

每个段对应:一个段表项,

段表组成:段号、段长、基址(该段在内存中的起始位置)

各个段表项的长度是相同的,因此段号可以:隐含,不占存储空间

基本分段存储管理地址转换:
1.根据逻辑地址得到段号、段内地址
2.判断段号是否越界。若越界越界中断,否则继续执行
3.查询段表,找到对应的段表项
4.检查段内地址是否超过段长。若超过越界中断,否则继续执行
5.计算得到物理地址
6.访问目标内存单元

判断段号是否越界的依据:逻辑地址的段号S与段表寄存器的段表长度M比较。段表长度至少是1,而段号从0开始。(段号S≥段表长度M就是越界)

查询段表需要:逻辑地址的段号S与段表寄存器的段表始址F

段表项的存放地址:段表始址F+段号S×段表项长度

分段访问一个逻辑地址需要几次访存:总共两次访存。第一次访存(查内存中的段表),第二次访存(访问目标内存单元)。

分段系统如何加快地址变换速度:引入快表机构,将近期访问过的段表项放到快表中

分段与分页的比较:
1.分页对用户不可见,分段对用户可见
2.分页的地址空间是一维的,分段的地址空间是二维的
3.分段更容易实现信息的共享和保护(纯代码/重入代码可以共享)
4.分页(单级页表)、分段访问一个逻辑地址都需要两次访存,分段存中也可以引入快表机构

页是信息的物理单位。分页的主要目的是为了实现离散分配,提高内存利用率。分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的。

段是信息的逻辑单位。分页的主要目的是更好地满足用户需求。一个段通常包含着一组属于一个逻辑模块的信息。分段对用户是可见的,用户编程时需要显式地给出段名。

页的大小固定且由系统决定。段的长度却不固定,决定于用户编写的程序。

分页的用户进程地址空间是一维的,程序员只需给出一个记忆符即可表示一个地址。

分段的用户进程地址空间是二维的,程序员在标识一个地址时,既要给出段名,也要给出段内地址。

分段比分页更容易实现信息的共享和保护。不能被修改的代码称为纯代码或可重入代码(不属于临界资源),这样的代码是可以共享的。可修改的代码是不能共享的








标签:存储管理,表项,分段,存储器,内存,地址,段表,分页
来源: https://www.cnblogs.com/LXZYZDCZL/p/16307922.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有