操作系统实验(3)-存储管理实验

操作系统实验(3)-存储管理实验

ID:6809908

大小:450.00 KB

页数:38页

时间:2018-01-26

操作系统实验(3)-存储管理实验_第1页
操作系统实验(3)-存储管理实验_第2页
操作系统实验(3)-存储管理实验_第3页
操作系统实验(3)-存储管理实验_第4页
操作系统实验(3)-存储管理实验_第5页
资源描述:

《操作系统实验(3)-存储管理实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统实验(3)实验题目:存储管理实验课程名称:操作系统学院:管理学院专业班级:学号(1):姓名(1):学号(2):姓名(2):任课教师:2010年05月06日学院:管理学院班级:组员:组员:评定:实验题目:存储管理实验(1)实验目的:通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。(2)实验内容:设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。对分区的管理法可以是下面三种算法之一:首次适应算法循环首次适应算法最佳适应算法(3)源代码(含注释):首次适应算法(

2、FF):#include#include#include#includestructnc{intn;/*内存号*/intrl;/*内存容量*/intsdz;/*首地址*/structnc*next;}*head;structPCB{intnum;/*进程号*/charname[10];/*进程名*/intnv;/*进程大小*/intitime;/*进程进入内存时间*/intncn;/*装入的内存号*/intsdzv;/*

3、存入内存的首地址*/intntime;/*进程运行总时间*/intrtime;/*进程运行时间*/charstate;/*进程状态*/structPCB*link;}*tou;intall;/*进程总数变量*/inttim=0;/*当前时间变量*/voidinnc()/*将进程装入内存*/{structnc*md;structPCB*xx;xx=tou;while(xx!=NULL){if(xx->ncn==0&&(xx->itime<=tim

4、

5、xx->itime<=tim-1)){md=he

6、ad;while(md!=NULL){if(md->rl>=xx->nv){xx->ncn=md->n;xx->sdzv=md->sdz;md->sdz=md->sdz+xx->nv;md->rl=md->rl-xx->nv;gotoleep;}md=md->next;}leep:if(md==NULL)printf("theprocess%scan'tintonc",xx->name);}xx=xx->link;}}voidsort(){structPCB*p1,*p2;p1=p2=tou

7、;while(p1->link!=NULL){if((p1->link)->itime<=tim&&(p1->link)->ncn!=0){tou=p2=p1;while(p1->link!=NULL){p1=p1->link;}p1->link=tou;tou=tou->link;p2->link=NULL;}elsep1=p1->link;}}voidcreatnc()/*创建内存链表*/{structnc*p1,*p2;intncx,ncy;printf("inputthenumebero

8、fnc(input0toend):");scanf("%d",&ncx);p2=(structnc*)malloc(sizeof(structnc));p1->next=NULL;head=p2=p1;while(ncx>0){p1->n=ncx;printf("inputthelargeofnc:");scanf("%d",&p1->rl);printf("inputthesdzofnc:");scanf("%d",&ncy);p1->sdz=ncy;p2->next=p1;p2=p1;pri

9、ntf("inputthenumeberofnc(input0toend):");scanf("%d",&ncx);if(ncx<=0)break;p1=(structnc*)malloc(sizeof(structnc));p1->next=NULL;}}voidcreatPCB()/*创建进程链表*/{structPCB*p1,*p2;charch;inti;printf("howmanyPCByouwanttocreat:");scanf("%d",&all);for(i=0;i

10、i++){p1=(structPCB*)malloc(sizeof(structPCB));p1->link=NULL;if(i==0)tou=p2=p1;printf("inputthenameoftheNO.%dPCB:",i);scanf("%s",p1->name);printf("inputthelargeofthePCB:");scanf("%d",&p1->nv);printf("inputthetimeofthePCBintothenc:");scanf("%d",&p1->it

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

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

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