- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]Chpt5-2
5.2.2 固定分区分配Fixed Partition Allocation 最早的一种可运行多道程序的存储管理方式。它将内存空间划分为若干个固定大小的区域,在每个分区中可以装入一道作业。 一. 划分分区的方法 1.分区大小相等 所有的内存分区都大小相等,其缺点是明显的 :(空间浪费或者使大程序无法运行)。 2.分区大小不等 为了克服分区大小相等分配方法的缺点,可在内存中划分出多个较小的分区、适量的中等分区及少量的大分区。 二、内存分配 (见图5-6) 通常将这些分区根据其大小进行排队,并为之建立一张分区使用表。 5.2.3 动态分区分配Dynamic Partition Allocation 动态分区分配是根据进程的实际需要,动态地为之分配连续的内存空间。在实现可变分区存储管理方式时,必须解决下述三个问题: (1)分区分配中所用的数据结构 (2)分区的分配算法 (3)分区分配操作 一、分区分配中的数据结构 常用的数据结构有两种: 1.空闲分区表 2.空闲分区链 二.分区分配算法Partition Allocation Algorithm (1)首次适应策略(First-Fit Strategy) 分配主存中第一次遇到的适合该作业要求的空闲空间。(要求空闲分区链以地址递增的次序链接) 特点:倾向于使用低地址部分,从而保留了高地址部分的大的空闲区;但,低地址部分的分区数量增多,从而增加了查找空闲区的开销。 (2)循环首次适应策略(Cyclic First-fit strategy) 查找空闲区从上次找到的空闲区的下一空闲区开始,并循环查找。 (需要设置一起始查找指针。) 特点:空闲区分布均匀,从而减少了查找的开销;但会缺乏大的空闲区。 (3)最佳适配策略(Best-fit strategy) 从空闲区中挑选一个能满足作业要求的最小分区。 (空闲区以其空间大小递增顺序形成空闲区链)(缺点:更容易形成碎片) (4)最坏适应策略(Worst-fit strategy) 该策略分配满足作业要求的最大一块空闲空间。 三 、分区分配操作Partition Allocation Operation 1、分配内存(Memory Allocation) u.size:请求的分区大小; m.size:表中每个空闲分区的大小; size:事先规定的不再切割的剩余分区的大小。 内存分配流程(见图5-9) 三 、分区分配操作Partition Allocation Operation 2、回收操作(Return Operation) 当内存运行完毕释放内存时,系统根据回收区的首址,从空闲链中找到相应的插入点,此时可能出现四种情况之一: (1)回收区与插入点的前一个分区相邻接。 (2)回收区与插入点的后一个分区相邻接。 (3)回收区与插入点的前、后两个分区相邻接。 (4)回收区不与插入点的前、后两个分区相邻接。 二 、动态重定位Dynamic Relocation 5.2.5 IBM-PC微机中的存储管理方式Memory Management in IBM-PC 一.段寄存器和作业的分段 在IBM-PC微机中,采用了多重定位的存储器管理方式。在PC机中共设置了四个段寄存器: 代码段寄存器CS(Code Segment); 数据段寄存器DS(Data Segment); 栈 段寄存器SS(Stack Segment); 附加段寄存器ES(Expanded Segment)。 相应地,在PC机中运行的作业也可分成四个段:即代码段,数据段,供程序使用的栈段,以及作为用户工作区的附加段。这几个段的地址空间可以邻接;也可部分或全部重叠。因此,一个作业的最大地址空间可为256KB,每一个段可以存放在内存用户区的任何位置,如图5-15所示。 5.2.5 IBM-PC微机中的存储管理方式Memory Management in IBM-PC 二、形成访问内存物理地址 Intel 8086芯片具有访问20位地址总线,能直接访问1MB的内存空间;而8086中所有的寄存器都是16位的,其寻址能力只达64KB。为了利用16位的寄存器来形成访问内存所需的20位物理地址,可用下述方法:每当需要产生一个20位的物理地址时,会自动地选择一有关段寄存器,先将它的内容左
文档评论(0)