OS实验指导三——存储器管理

OS实验指导三——存储器管理

ID:47432282

大小:106.00 KB

页数:14页

时间:2020-01-11

OS实验指导三——存储器管理_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《OS实验指导三——存储器管理》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、OS实验指导三《操作系统》实验指导三实验项目(三)基本存储器管理实验实验类型设计实验学时4一、实验目的理解分区式存储管理的基本原理,熟悉分区分配和回收算法。即理解在不同的存储管理方式下,如何实现主存空间的分配与回收;并掌握动态分区分配方式中的数据结构和分配算法及动态分区存储管理方式及其实现过程。二、设备与环境1.硬件设备:PC机一台2.软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发环境,如VCVC++Java等编程语言环境。三、实验原理实验要求使用可变分区存储管理方式,

2、分区分配中所用的数据结构采用空闲分区表和空闲分区链来进行,分区分配中所用的算法采用首次适应算法、最佳适应算法、最差适应算法三种算法来实现主存的分配与回收。同时,要求设计一个实用友好的用户界面,并显示分配与回收的过程。同时要求设计一个实用友好的用户界面,并显示分配与回收的过程。A、主存空间分配(1)首次适应算法算法要求空闲分区表以地址递增的次序排列。在分配内存时,从表首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止;然后按照作业的大小,从该分区中划出一块内存空间分配给请求者,余下的空闲分区仍留在空闲分

3、区表中。若从头到尾不存在满足要求的分区,则分配失败。(2)最佳适应算法所谓“最佳”是指每次为作业分配内存时,总是把能满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。要求将所有的空闲分区按其容量以从小到大的顺序形成一空闲分区链。(3)最坏适应算法最坏适应分配算法要扫描整个空闲分区表或链表,总是挑选一个最大的空闲区分割给作业使用。该算法要求将所有的空闲分区按其容量以从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。B、主存空间回收当一个作业执行完成撤离时,作业所占的分区应该归还给

4、系统。归还的分区如果与其它空闲区相邻,则应合成一个较大的空闲区,登记在空闲区说明链中,此时,相邻空闲区的合并问题,要求考虑四种情况:a)释放区下邻空闲区(低地址邻接)b)释放区上邻空闲区(高地址邻接)c)释放区上下都与空闲区邻接d)释放区上下邻都与空闲区不邻接四、实验要求1.模拟操作系统的主存分配,运用可变分区的存储管理算法设计主存分配和回收程序,并不实际启动装入作业。第14页OS实验指导三2.采用首次适应法、最佳适应法、最坏适应法分配主存空间。3.当一个新作业要求装入主存时,必须查空闲区表,从中找出一个足

5、够大的空闲区。若找到的空闲区大于作业需要量,这是应把它分成二部分,一部分为占用区,加一部分又成为一个空闲区。4.当一个作业撤离时,归还的区域如果与其他空闲区相邻,则应合并成一个较大的空闲区,登在空闲区表中。5.运行所设计的程序,输出有关数据结构表项的变化和内存的当前状态。五、实验设计参考1.算法流图lmain函数的流程图初始化first和end整理分区序号显示空闲分区链选择算法aa=1,首次适应算法a=2,最佳适应算法a=3,最坏适应算法选择操作ii=1,分配空间函数ai=0,退出程序i=2,回收空间函数结

6、束l分配空间的流程图第14页OS实验指导三分配空间函数a=1a=2a=3输入申请内存大小按顺序找空闲块初始化q,使它指向空闲块中长度小的一块输入申请内存大小初始化q,使它指向空闲块中长度大的一块p->data.length=requestp的状态为已分配剩下p->data.length-=request输入申请内存大小YYNN返回到整理分区序号p->data.length>request分配不成功第14页OS实验指导三l回收空间的流程图p的状态改为空闲回收p,p的前一个为firstp的后一个是endp的后一

7、个状态空与后面空闲块相连将p的状态改为空闲将p的状态改为空闲回收空间函数p的后一个是endYNYNYNp的前一个状态空p的前一个状态空p的后一个状态空p的后一个状态空p的后一个状态空p的后一个状态空YYYNNN与前面空闲块相连p的状态改为空闲与前面空闲块相连与后面空闲块相连YN返回到整理分区序号2.相关数据结构及关键函数说明第14页OS实验指导三²使用了structfree_table数据结构用来说明分区。包含:分区序号(num)、起始地址(address)、分区长度(length)和分区状态(state)

8、。²使用了线性表的双向链表存储结构(structNode),里面包含前驱指针(prior)和后继指针(next)。一开始定义一条(含有first和end)的链,用开始指针和尾指针开创空间链表。然后分别按三种算法进行分配和回收。²在该程序中关键函数有,sort()、allocation()、recovery()、和First_fit()、Best_fit()、Worst_fit()。其中:²sort()函数用来整理

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。