分段存储管理方式

目录

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

1.方便编程

2.信息共享

3.信息保护

4.动态增长

5.动态链接

二、分段系统的基本原理

1.分段

2.段表

3.地址变换机构

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

三、信息共享

四、段页式存储管理方式

1.基本原理

2.地址变换过程


 

分段与分页最大的区别:

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

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

1.方便编程

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

2.信息共享

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

3.信息保护

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

4.动态增长

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

5.动态链接

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

二、分段系统的基本原理

1.分段

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

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

分段地址中的地址结构:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

2.段表

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

 watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

 eg:

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

3.地址变换机构

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

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

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

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

三、信息共享

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

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

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

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

四、段页式存储管理方式

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

1.基本原理

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

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

2.地址变换过程

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

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

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAQWxrYWxp77yB,size_20,color_FFFFFF,t_70,g_se,x_16

 

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
无法简单地回答哪一种存储管理方式更有利于信息共享,因为每种方式都有其优缺点。判断对错分段存储管理方式和分页存储管理方式都是操作系统中的存储管理方式。判断对错分段存储管理方式是将程序和数据分成若干段,每一段在磁盘上是连续存储的,程序在执行时将每一段调入内存并映射到一个连续的物理内存区域中。分页存储管理方式则是将程序和数据分成若干页,每一页都是固定大小的,当程序执行时,操作系统将每一页调入内存并映射到一个物理内存页面中。 从信息共享的角度来看,判断对错分段存储管理方式更有利于信息共享,因为在这种方式下,每个段都可以被多个进程共享,不同进程可以访问同一段,这样可以减少内存的浪费,提高内存利用率。而分页存储管理方式由于每个页面都是固定大小的,如果多个进程需要共享同一个页面,就需要将整个页面复制到每个进程的地址空间中,这样会浪费大量的内存空间,降低内存利用率。 但是,判断对错分段存储管理方式也有其缺点,例如程序和数据的大小不是固定的,可能会出现内存碎片的问题,导致内存利用率降低。而分页存储管理方式则可以解决内存碎片的问题,因为每个页面的大小是固定的,不会出现内存碎片的情况。因此,在选择存储管理方式时,需要综合考虑各个方面的因素,而不能简单地判断哪一种方式更有利于信息共享。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

几两春秋梦_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值