操作系统实验二存储管理动态分区分配及回收算法

操作系统实验二存储管理动态分区分配及回收算法

ID:38628325

大小:260.50 KB

页数:10页

时间:2019-06-16

操作系统实验二存储管理动态分区分配及回收算法_第1页
操作系统实验二存储管理动态分区分配及回收算法_第2页
操作系统实验二存储管理动态分区分配及回收算法_第3页
操作系统实验二存储管理动态分区分配及回收算法_第4页
操作系统实验二存储管理动态分区分配及回收算法_第5页
资源描述:

《操作系统实验二存储管理动态分区分配及回收算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程名称操作系统计算机科学与技术分院信1001—2班组学号实验者姓名实验日期2013年4月11日评分教师签名实验二存储管理动态分区分配及回收算法一、实验目的通过分区管理实验,了解操作系统的基本概念,理解计算机系统的资源如何组织,操作系统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。通过课程设计,我们可以进一步理解在计算机系统上运行的其它各类操作系统,并懂得在操作系统的支持下建立自己的应用系统。二、实验要求本实验要求用一种结构化高级语言构造分区描述器,编制动态分区分配算法和回收算法模拟程序,并掌握分配算法的特点,提高编

2、程技巧和对算法的理解和掌握。三、实验过程1.准备(一)主程序1、定义分区描述器node,包括3个元素:(1)adr——分区首地址(2)size——分区大小(3)next——指向下一个分区的指针2、定义3个指向node结构的指针变量:(1)head1——空闲区队列首指针(2)back1——指向释放区node结构的指针(3)assign——指向申请的内存分区node结构的指针3、定义1个整形变量:free——用户申请存储区的大小(由用户键入)(二)过程1、定义check过程,用于检查指定的释放块(由用户键入)的合法性2、定义assignmen

3、t1过程,实现FirstFitAlgorithm3、定义assignment2过程,实现BestFitAlgorithm4、定义acceptment1过程,实现FirstFitAlgorithm的回收算法5、定义acceptment2过程,实现BestFitAlgorithm的回收算法6、定义print过程,打印空闲区队列(三)执行程序首先申请一整块空闲区,其首址为0,大小为32767;然后,提示用户使用哪种分配算法,再提示是分配还是回收;分配时要求输入申请区的大小,回收时要求输入释放区的首址和大小。(四)输出要求每执行一次,输出一次空闲

4、区队列情况,内容包括:编号首址终址大小2.主要流程和源代码实验二源代码#include#include#include#defineMAX_SIZE32767typedefstructnode{intid;intadr;intsize;structnode*next;}Node;Node*head1,*head2,*back1,*back2,*assign;intrequest;intcheck(intadd,intsiz,charc){Node*p,*head;intcheck=

5、1;if(add<0

6、

7、siz<0)check=0;/*地址和大小不能为负*/if(c=='f'

8、

9、c=='F')head=head1;elsehead=head2;p=head->next;while((p!=NULL)&&check)if(((addadr)&&(add+siz>p->adr))

10、

11、((add>=p->adr)&&(addadr+p->size)))check=0;elsep=p->next;if(check==0)printf("t输入释放区地址或大小有错误!!!");returncheck;}

12、voidinit(){Node*p;head1=(Node*)malloc(sizeof(Node));head2=(Node*)malloc(sizeof(Node));p=(Node*)malloc(sizeof(Node));head1->next=p;head2->next=p;p->size=MAX_SIZE;p->adr=0;p->next=NULL;p->id=0;}Node*assignment1(intnum,intreq){Node*before,*after,*ass;ass=(Node*)malloc(sizeof

13、(Node));before=head1;after=head1->next;ass->id=num;ass->size=req;while(after->sizenext;after=after->next;}if(after==NULL){ass->adr=-1;}else{if(after->size==req){before->next=after->next;ass->adr=after->adr;}else{after->size-=req;ass->adr=after->adr;af

14、ter->adr+=req;}}returnass;}voidacceptment1(intaddress,intsiz,intrd){Node*before,*after;intinsert

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

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

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