欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1451225       资源大小:229KB        全文页数:10页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、然后,提示用户使用哪种分配算法,再提示是分配还是回收;分配时要求输入申请区的大小,回收时要求输入释放区的首址和大小。 (四)输出 要求每执行一次,输出一次空闲区队列情况,内容包括: 编号 首址 终址 大小 2.主要流程和源代码实验二源代码#includestdlib.hstring.h#define MAX_SIZE 32767typedef struct node int id; int adr;int size; struct node *next; Node;Node *head1,*head2,*back1,*back2,*assign;int request;int check(in

    2、t add,int siz,char c) Node *p,*head;int check=1;if(add0|siznext;while(p!=NULL)&check) if(addadr)&(add+sizadr)|(add=p-(addsize) check=0; else p=p-if(check=0) printf(t输入释放区地址或大小有错误!n); return check; void init() Node *p;head1=(Node*)malloc(sizeof(Node);head2=(Node*)malloc(sizeof(Node);p=(Node*)malloc(s

    3、izeof(Node);head1-next=p;head2-size=MAX_SIZE;adr=0;next=NULL;id=0;Node* assignment1(int num,int req) Node *before,*after,*ass;ass=(Node*)malloc(sizeof(Node);before=head1;after=head1-ass-id=num;size=req;while(after-sizeafter=after-if(after=NULL)adr=-1; if(after-size=req) before-next=after-adr=after-a

    4、dr;after-size-=req;adr+=req;return ass;void acceptment1(int address,int siz,int rd) Node *before,*after;int insert=0;back1=(Node*)malloc(sizeof(Node);back1-adr=address;size=siz;id=rd;while(!insert&after)/将要被回收的分区插入空闲区(按首址大小从小到大插入)if(after=NULL)|(back1-adr(back1-adr=before-adr)next=back1;next=after;i

    5、nsert=1;if(insert)if(back1-adr=before-adr+before-size)/和前边分区合并size+=back1-size;next=back1-free(back1);else if(after&adr+back1-size=after-adr)/和后边分区合并size+=after-id=after-id;free(after);after=back1;printf(t首先分配算法回收内存成功!t首先分配算法回收内存失败!Node* assignment2(int num,int req) Node *before,*after,*ass,*q;q=(No

    6、de*)malloc(sizeof(Node);before=head2;after=head2-q=after;adr=q-q-next=q;while(after-size)size)return (ass);void acceptment2(int address,int siz,int rd) back2=(Node*)malloc(sizeof(Node);back2-if(head2-next=NULL)/空闲队列为空next=back2;size=back2-/空闲队列不为空while(after)if(back2-adr=after-adr+after-/和前边空闲分区合并si

    7、ze+=back2-back2=after;adr=back2-adr+back2-/和后边空闲区合并insert)/将被回收的块插入到恰当的位置(按分区大小从小到大)if(after=NULL|(after-sizesize)&(before- before- back2- insert=1;break; else before=before- after=after-t最佳适应算法回收内存成功!t最佳适应算法回收内存失败!void print(char choice)/输出空闲区队列信息if(choice=|choice=p=head1-p=head2-if(p)n空闲区队列的情况为:t编

    8、号t首址t终址t大小nwhile(p)t%dt%dt%dt%dn,p-id,p-adr,p-size-1,p-size);p=p- void menu()/菜单及主要过程char chose;int ch,num,r,add,rd; while(1)system(cls选择最先适应算法请输入F,选择最佳适应算法请输入B,退出程序请输入Enn请输入你的选择:scanf(%c,&chose);if(chose=e|chose=Eexit(0);while(1)最先适应算法(First-Fit)模拟:bB最佳适应算法(Best-Fit)模拟:1.分配内存,2.回收内存,3.查看内存,4.返回nn%d

    9、ch);fflush(stdin);switch(ch)case 1:输入申请的分区大小:r);assign=assignment1(num,r);assign=assignment2(num,r);if(assign-adr=-1)分配内存失败!else 分配成功!分配的内存的首址为:%dn,assign-adr);case 2:输入释放的内存的首址:add);输入释放的内存的大小:输入释放的内存的编号:rd);if(check(add,r,chose)acceptment1(add,r,rd);acceptment2(add,r,rd);case 3:print(chose);case 4:menu(); void main()/主函数 init();四、 实验结果五、 实验总结通过这次课程设计我练习了用C语言写系统软件,对操作系统中可变分区存储管理有了更深刻的了解。在写程序的时候也遇到了一些困难。比如在设计数据结构时特别犹豫,总想找一个很合适的。但是,后来才知道,关键要多尝试,而空想是没有用的。最后我证实了自己的设计的合理性。还有为了使程序更健壮,在网上下载了几个代码,进行调试,运行、查看结果。看懂代码和结果后,这次实验也算是成功的一大半了。总之这次实验还是让我收获很大,让我在书本上的知识能够运用到实际当中。这种学以致用的感觉才是最好的。


    注意事项

    本文(操作系统实验二存储管理动态分区分配及回收算法Word下载.doc)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开