如何理解分段存储管理的工作原理?
分段存储管理是一种内存管理方式,它将程序的地址空间划分为若干个段,每个段分配一个连续的内存区,分段存储管理的主要目的是提高内存利用率,同时满足用户和程序员在编程和使用上的多方面需求,以下是对分段存储管理工作原理的详细阐述:
1、分段存储管理方式的引入
背景与目的:分段存储管理方式的引入主要是为了解决固定分区和动态分区分配方式存在的问题,特别是为了满足用户和程序员在编程和使用上的多方面需求,这些需求包括方便编程、信息共享、信息保护、动态增长和动态链接等。
2、分段系统的基本原理
逻辑分段:在分段存储管理中,作业的地址空间被划分为若干个段,每个段定义了一组逻辑信息,主程序段、子程序段、数据段和栈段等。
物理分段:内存空间按需划分为若干个长度不相同的物理段,每个物理段由起始地址和长度确定,每段在内存中占据连续空间,但段间可以不连续存放。
3、地址变换机构
段表:为了实现从进程的逻辑地址到物理地址的变换功能,系统中设置了段表寄存器,用于存放段表始址和段表长度TL,段表记录了每段在内存中的起始地址(基址)和段的长度,当访问某段时,系统将逻辑地址中的段号与段表长度TL进行比较,若未越界,则根据段表的始址和段号计算出该段对应段表项的位置,从中读出该段在内存的起始地址,再检查段内地址d是否超过该段的段长SL。
联想存储器:由于段表放在内存中,每访问一个数据都需要访问两次内存,这极大地降低了计算机的速率,增设了一个联想存储器(相联寄存器),用于保存最近常用的段表项,以减少存取数据的时间。
4、请求分段存储管理方式
原理:请求分段系统中,程序运行之前只需先调入若干个分段(不必调入所有的分段),便可启动运行,当所访问的段不在内存中时,可请求操作系统将所缺的段调入内存。
硬件支持:包括状态位(存在位)、访问位、修改位、增补位和外存地址等字段,用于说明该段是否已调入内存、记录访问次数、表示是否被修改过、说明是否允许扩展以及指出该段在外存上的地址。
缺段中断机构:当所访问的段不在内存中时,会触发缺段中断,操作系统负责将所缺的段调入内存。
5、分段存储的管理表格
段表结构:每个进程一张段表,给出逻辑段和物理段的对应关系,段表中的表项包括段号、段长、基地址等信息。
段表寄存器:用于保存正在运行进程的段表的始址和长度。
6、分页和分段的主要区别
相似点:两者都采用离散分配方式,通过地址映射机构实现地址变换。
不同点:页是信息的物理单位,分页是为了满足系统的需要;段是信息的逻辑单位,含有意义相对完整的信息,是为了满足用户的需要,页的大小固定且由系统确定,由机器硬件实现;段的长度不固定,取决于用户程序,编译程序对源程序编译时根据信息的性质划分,分页的作业地址空间是一维的;分段的作业地址空间是二维的。
7、信息共享与保护
信息共享:分段系统的一个突出优点是易于实现段的共享和保护,允许若干个进程共享一个或多个分段,且对段的保护十分简单易行。
信息保护:通过对段表项中的保护位进行检查,以防止对内存的非法访问。
8、段页式存储管理方案
结合页式和段式的优点,克服二者的缺点,按逻辑关系划分用户程序为若干逻辑段,按分页存储管理机制划分和分配内存,地址结构由段号、段内页号和页内地址三项共同构成。
以下是关于分段存储管理的两个问题与解答:
1、问题一:什么是分段存储管理?它有哪些主要特点?
答案:分段存储管理是一种内存管理方式,它将程序的地址空间划分为若干个段,每个段分配一个连续的内存区,其主要特点包括满足用户和程序员在编程和使用上的多方面需求(如方便编程、信息共享、信息保护、动态增长和动态链接等)、逻辑分段与物理分段相结合、通过段表实现地址映射和变换、以及易于实现信息的共享和保护等。
2、问题二:分段存储管理与分页存储管理有什么主要区别?
答案:分段存储管理与分页存储管理的主要区别在于它们处理内存的方式不同,分页存储管理将内存划分为固定大小的页框,并将作业的逻辑地址空间划分为同样大小的页,而分段存储管理则将内存划分为大小可变的段,每个段包含一组逻辑信息,分页的作业地址空间是一维的,而分段的作业地址空间是二维的,分页主要用于满足系统的需要,而分段则更多地考虑用户的需要。
各位小伙伴们,我刚刚为大家分享了有关“分段存储管理工作原理”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
暂无评论,1人围观