欢迎来到天天文库
浏览记录
ID:33436331
大小:70.17 KB
页数:8页
时间:2019-02-26
《操作系统内存分配实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include#includc#defineNum128#defineLink_Size10typedefstruct{intbc_addr;//作为一块的起始标记intaddr_lcngth;intstate;//state为1表示有作业,为0表示空闲}stor;typedefstruct)stor*elem;//intIcn;intsize;JstorList;typedefstructsList{ints_addrcss;〃初始值为-1intmjength;〃初始值为
2、1intstate;//为0表示空表目,为1表示未分配JcList;intinitpLink(cList*p){inti=2;p[0J.s_address=14;p[0].mjength=12;p[()].state=1;p[l].s_addrcss=32;p[l].mjength=96;p[lJ.state=1;for(i=2;i<10;i++){p[i].s_addrcss=-1;p[i].mjength=0;p[ij.state=0;}}intinitEmpty(storList&L){inti=0;L.e
3、lem=(stor*)malloc(Num*sizeof(stor));if(!L.elem)cxit(-l);//L.len=0;L.size=Num;for(i=();i4、{L.elem[i].state=i;L.elemfil.addr_length=4;L.clcm[i].bc_addr=3;}for(i=26;i<32;i++){L.elemfi].state=1;L.clcm[i].addr_lcngth=6;L.elem[i].be_addr=2;}return1;intinsert(storList&L,cList*p){intworkLen;intworkNum;//cListq=p;intch=0;inti=0;intj=0;while(1){printfC-为作业5、分配空间-”);printf("请输入作业编号:");fflush(stdin);scanf(”%d",&workNum);printfC*请输入作业长度:”);田ush(stdin);scanf(”%d",&workLen);for(i=();i<10;i++)if(workLen<=p[i].m_length){break;}}if(i==10){printfC'B前没有足够空I、可分配给该作业!”);break;}for(j=p[ij.s_address;j6、en;j++){L.elemfjl.be_addr=workNum;L.clcm[j].addr_lcngth=workLcn;L.elem[j].state=1;}if(workLens_address=-1;p[ij.state=0;}//q->s_address=q->s_addre7、ss+workLen;//q->m_lcngth=q->m_lcngth-workLcn;//if(q->m_length==0)//!//q->state=0;//q->s_address=・1;//)//q=p;printfC*是否继续分配作业?“);printiVl.是2.否”);printf('7>u);fflush(stdin);scanf("%d",&ch);if(ch==I)continue;else{break;}}}intdeleteList(storList&L,cList*p){in8、tworkLcn;intworkNum;inti=0;intj=0;//cListq=p;printfC'请输入要释放的作业编号:”);fflush(stdin);scanf(M%dn,&workNum);for(i=0;i
4、{L.elem[i].state=i;L.elemfil.addr_length=4;L.clcm[i].bc_addr=3;}for(i=26;i<32;i++){L.elemfi].state=1;L.clcm[i].addr_lcngth=6;L.elem[i].be_addr=2;}return1;intinsert(storList&L,cList*p){intworkLen;intworkNum;//cListq=p;intch=0;inti=0;intj=0;while(1){printfC-为作业
5、分配空间-”);printf("请输入作业编号:");fflush(stdin);scanf(”%d",&workNum);printfC*请输入作业长度:”);田ush(stdin);scanf(”%d",&workLen);for(i=();i<10;i++)if(workLen<=p[i].m_length){break;}}if(i==10){printfC'B前没有足够空I、可分配给该作业!”);break;}for(j=p[ij.s_address;j6、en;j++){L.elemfjl.be_addr=workNum;L.clcm[j].addr_lcngth=workLcn;L.elem[j].state=1;}if(workLens_address=-1;p[ij.state=0;}//q->s_address=q->s_addre7、ss+workLen;//q->m_lcngth=q->m_lcngth-workLcn;//if(q->m_length==0)//!//q->state=0;//q->s_address=・1;//)//q=p;printfC*是否继续分配作业?“);printiVl.是2.否”);printf('7>u);fflush(stdin);scanf("%d",&ch);if(ch==I)continue;else{break;}}}intdeleteList(storList&L,cList*p){in8、tworkLcn;intworkNum;inti=0;intj=0;//cListq=p;printfC'请输入要释放的作业编号:”);fflush(stdin);scanf(M%dn,&workNum);for(i=0;i
6、en;j++){L.elemfjl.be_addr=workNum;L.clcm[j].addr_lcngth=workLcn;L.elem[j].state=1;}if(workLen
s_address=-1;p[ij.state=0;}//q->s_address=q->s_addre
7、ss+workLen;//q->m_lcngth=q->m_lcngth-workLcn;//if(q->m_length==0)//!//q->state=0;//q->s_address=・1;//)//q=p;printfC*是否继续分配作业?“);printiVl.是2.否”);printf('7>u);fflush(stdin);scanf("%d",&ch);if(ch==I)continue;else{break;}}}intdeleteList(storList&L,cList*p){in
8、tworkLcn;intworkNum;inti=0;intj=0;//cListq=p;printfC'请输入要释放的作业编号:”);fflush(stdin);scanf(M%dn,&workNum);for(i=0;i
此文档下载收益归作者所有