1、段式管理的原理:
分区式管理和页式管理时的进程地址空间结构都是线性的,这要求对源地址进程程序进行编译、链接时,把源程序中的主程序、子程序、数据区等按线性空间的一维地址顺序排列起来。这使得不同作业或进程之间共享共有子程序和数据变得非常困难。
再者,从链接的角度看,分区管理和页式管理只能采用静态链接。一个大的进程可能包含上千个程序模块,对他们链接要花费大量CPU时间,而实际执行时间可能只用到其中的一个子集。
综上所述:段式存储管理是基于为用户提供一个方便灵活的程序设计环境而提出来的。段式管理的基本思想是:把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应于一个二维线性虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址映射机构把段式虚拟地址转换成实际的内存物理地址。
2、段式管理的优缺点
与页式管理时相同,段式管理时的地址变换也必须经过二次以上的内存访问。即首先访问段表计算得到待访问指令或数据的物理地址,然后才是对物理地址进行取数据或存数据操作。可以使用高速理想寄存器存放经常访问的段号所对应的段表项。
(1)优点
与动态页式管理一样,段式管理也提供了内外存统一管理的虚存实现。与页式管理不同的是,段式虚存每次交换的是一段有意义的信息,而不像页式存储那样只交换固定大小的页从而需要多次缺页中断才能把信息完整地调入内存。
在段式存储管理中,段长可根据需要动态增长。
便于对具有完整逻辑功能的信息段进行共享
便于实现动态链接。可用段名加上段入口地址等方法在执行过程中调入相应的段进行动态链接,但需要一定的硬件支持。
(2)缺点
要求有更多的硬件支持,提高了机器成本,在碎片问题上的处理比页式管理要差,允许段的动态增长会给系统管理带来难度和开销。
每个段的长度受内存可用区大小的限制
选择淘汰算法也必须十分谨慎,否则可能产生抖动现象。。
3、局部性原理和抖动问题
(1)局部性原理:
在一段时间内,CPU总是集中地访问程序中的某一个部分而不是随机地对程序所有部分具有平均访问概率。这种现象称为局部性原理
(2)抖动
当给进程分配的内存小于所要求的工作集时,由于内存外存之间
交换频繁,访问外存时间和输入输出处理时间大大增加,反而造成CPU因等待数据空转,使得整个系统性能大大下降,造成了系统抖动