操作系统实验二存储管理动态分区分配及回收算法(1).doc
![资源得分’ 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)
《操作系统实验二存储管理动态分区分配及回收算法(1).doc》由会员分享,可在线阅读,更多相关《操作系统实验二存储管理动态分区分配及回收算法(1).doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date操作系统实验二存储管理动态分区分配及回收算法(1)操作系统实验二存储管理动态分区分配及回收算法(1)课程名称 操作系统 计算机科学与技术 分院 信10012 班 组 学号 实验者姓名 实验日期 2013 年 4 月 11 日评分 教师签名 实验二 存储管理动态分区分配及回收算法一、 实验目的通过分区管理实验,了解操作系统的基本概念,理解计算机系统的资源如何组织,操作系
2、统如何有效地管理这些系统资源,用户如何通过操作系统与计算机系统打交道。通过课程设计,我们可以进一步理解在计算机系统上运行的其它各类操作系统,并懂得在操作系统的支持下建立自己的应用系统。二、 实验要求本实验要求用一种结构化高级语言构造分区描述器,编制动态分区分配算法和回收算法模拟程序,并掌握分配算法的特点,提高编程技巧和对算法的理解和掌握。三、 实验过程1 准备 (一)主程序 1、定义分区描述器node,包括 3个元素: (1)adr分区首地址 (2)size分区大小 (3)next指向下一个分区的指针 2、定义 3个指向node结构的指针变量: (1)head1空闲区队列首指针 (2)back
3、1指向释放区node结构的指针 (3)assign指向申请的内存分区node结构的指针 3、定义 1个整形变量: free用户申请存储区的大小(由用户键入) (二)过程 1、定义check过程,用于检查指定的释放块(由用户键入)的合法性 2、定义assignment1过程,实现First Fit Algorithm 3、定义assignment2过程,实现Best Fit Algorithm 4、定义acceptment1过程,实现First Fit Algorithm的回收算法 5、定义acceptment2过程,实现Best Fit Algorithm的回收算法 6、定义print过程,打
4、印空闲区队列 (三)执行 程序首先申请一整块空闲区,其首址为0,大小为32767;然后,提示用户使用哪种分配算法,再提示是分配还是回收;分配时要求输入申请区的大小,回收时要求输入释放区的首址和大小。 (四)输出 要求每执行一次,输出一次空闲区队列情况,内容包括: 编号 首址 终址 大小 2.主要流程和源代码实验二源代码#include#include#include#define MAX_SIZE 32767typedef struct node int id; int adr; int size; struct node *next; Node;Node *head1,*head2,*bac
5、k1,*back2,*assign;int request; int check(int add,int siz,char c) Node *p,*head;int check=1;if(add0|siznext;while(p!=NULL)&check) if(addadr)&(add+sizp-adr)|(add=p-adr)&(addadr+p-size) check=0; else p=p-next;if(check=0) printf(t输入释放区地址或大小有错误!n); return check; void init() Node *p;head1=(Node*)malloc(si
6、zeof(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(int num,int req) Node *before,*after,*ass;ass=(Node*)malloc(sizeof(Node);before=head1;after=head1-next;ass-id=num;ass-size=req;while(after-s
7、izenext;after=after-next;if(after=NULL)ass-adr=-1; elseif(after-size=req) before-next=after-next;ass-adr=after-adr;else after-size-=req;ass-adr=after-adr;after-adr+=req;return ass;void acceptment1(int address,int siz,int rd) Node *before,*after;int insert=0;back1=(Node*)malloc(sizeof(Node);before=he
8、ad1;after=head1-next;back1-adr=address;back1-size=siz;back1-id=rd;back1-next=NULL;while(!insert&after)/将要被回收的分区插入空闲区(按首址大小从小到大插入)if(after=NULL)|(back1-adradr)&(back1-adr=before-adr)before-next=back1;back1-next=after;insert=1;elsebefore=before-next;after=after-next;if(insert)if(back1-adr=before-adr+b
9、efore-size)/和前边分区合并before-size+=back1-size;before-next=back1-next;free(back1);else if(after&back1-adr+back1-size=after-adr)/和后边分区合并back1-size+=after-size;back1-next=after-next;back1-id=after-id;free(after);after=back1;printf(t首先分配算法回收内存成功!n);elseprintf(t首先分配算法回收内存失败!n);Node* assignment2(int num,int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 存储 管理 动态 分区 分配 回收 算法
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内