计算机操作系统”课程设计大作业.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机操作系统”课程设计大作业.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统”课程设计大作业.pdf(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、华南理工大学华南理工大学“计算机操作系统”课程设计大作业“计算机操作系统”课程设计大作业1 1)给出数据定义和详细说明;给出数据定义和详细说明;struct block_s/*该块的实际长度,不包括 block_s 的大小。*/int length;/*申请该块的作业,为 0 表示该块空闲。*/int owner;/*当该块是空闲块时,offset 表示下一空闲块的偏移,offset 为 TOTAL_BYTE 表示该块是最后一个空闲块。当该块非空闲块时,offset 表示作业实际申请的大小。*/int offset;2 2)给出实现思想和设计流程;给出实现思想和设计流程;该算法遍历空闲链表,找
2、第一个大小能满足要求的块。然后,若找到的块足够大,再把该块切成两块,返回第一块给调用者;把第二块加到空闲区链表中。把该块分成两块返回第一块把第二块插入空闲链表YN找到满足条件的块YN该块的长度大于申请的内存返回找到的块返回 NULL遍历空闲链表,找第一个满足条件的块该算法遍历整个空闲链表,找一个大小能满足要求的块。并且该块是所有能满足要求的空闲块中,大小最小的块。然后,若找到的块足够大,再把该块切成两块,返回第一块给调用者;把第二块加到空闲区链表中。遍历整个空闲块,找一个长度比要求的大小长,且是所有主要的块中最小的块N找到满足条件的块YN该块的长度大于申请的内存返回 NULL返回找到的块Y把该
3、块分成两块返回第一块把第二块插入空闲链表3 3)调试完成源程序;调试完成源程序;#include stdio.h#include#include#define n 10/*假定系统允许的最大作业为 n,假定模拟实验中 n 值为 10*/#define m 10/*假定系统允许的空闲区表最大为 m,假定模拟实验中 m 值为 10*/#define minisize 100structfloat address;/*已分分区起始地址*/float length;/*已分分区长度,单位为字节*/int flag;/*已分配区表登记栏标志,用0表示空栏目*/used_tablen;/*已分配区表*/s
4、tructfloat address;/*空闲区起始地址*/float length;/*空闲区长度,单位为字节*/int flag;/*空闲区表登记栏标志,用0表示空栏目,用1表示未分配*/free_tablem;/*空闲区表*/allocate(char J,float xk)/*采用最优分配算法分配 xk 大小的空间*/int i,k;float ad;k=-1;for(i=0;i=xk&free_tablei.flag=1)if(k=-1|free_tablei.lengthfree_tablek.length)k=i;if(k=-1)/*未找到可用空闲区,返回*/printf(无可用
5、空闲区n);return 0;/*找到可用空闲区,开始分配:若空闲区大小与要求分配的空间差小于 msize 大小,则空闲区全部分配;若空闲区大小与要求分配的空间差大于 minisize 大小,则从空闲区划出一部分分配*/if(free_tablek.length-xk=minisize)free_tablek.flag=0;ad=free_tablek.address;xk=free_tablek.length;elsefree_tablek.length=free_tablek.length-xk;ad=free_tablek.address+free_tablek.length;/*修改已
6、分配区表*/i=0;while(used_tablei.flag!=0&i=n)/*无表目填写已分分区*/printf(无表目填写已分分区,错误n);/*修正空闲区表*/if(free_tablek.flag=0)/*前面找到的是整个空闲分区*/free_tablek.flag=1;else/*前面找到的是某个空闲分区的一部分*/free_tablek.length=free_tablek.length+xk;return 1;else/*修改已分配表*/used_tablei.address=ad;used_tablei.length=xk;used_tablei.flag=J;return
7、 1;/*主存分配函数结束*/reclaim(char J)/*回收作业名为 J 的作业所占主存空间*/int i,k,j,s,t;float S,L;/*寻找已分配表中对应登记项*/s=0;while(used_tables.flag!=J|used_tables.flag=0)&s=n)/*在已分配表中找不到名字为 J 的作业*/printf(找不到该作业n);return 0;/*修改已分配表*/used_tables.flag=0;/*取得归还分区的起始地址 S 和长度 L*/S=used_tables.address;L=used_tables.length;j=-1;k=-1;i=
8、0;/*寻找回收分区的空闲上下邻,上邻表目 k,下邻表目 j*/while(im&(j=-1|k=-1)if(free_tablei.flag=1)if(free_tablei.address+free_tablei.length=S)k=i;/*找到上邻*/if(free_tablei.address=S+L)j=i;/*找到下邻*/i+;if(k!=-1)if(j!=-1)/*上邻空闲区,下邻空闲区,三项合并*/free_tablek.length=free_tablej.length+free_tablek.length+L;free_tablej.flag=0;else/*上邻空闲区,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 课程设计 作业
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内