欢迎来到天天文库
浏览记录
ID:44673234
大小:105.82 KB
页数:9页
时间:2019-10-24
《进程管理和存储管理算法》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、#include#include#include#include#defineN100//共有100个内存块intprocess[N][N+l];//存放每个进程的页表intblock[N];//内存块状态标志数组,0:空闲,1:使用intblockCount;//记录当前内存剩余空间intprocessCount;〃记录当前进程数boolflag=true;intM;typedefstructnode{intpid;intround;intneedtime;intcputime;intcount;intst
2、ate;structnode*next;}PCB;PCB*finish,*ready,*tail,*run;//voidinit();voidoutput();//boolcreateProcess();//boolendProcess();voidinit(){inti,j;//初始化内存状态标志数组for(i=0;i3、i4、N;k++){if(block[kj==1)printf("%2d",k,++count);if(count==10){putchar('');count=0;}}putchar('');}//输出各进程占丿IJ内存详细情况讦(processCount>0){intid;printf(”请输入要查看的进程号:”);scanf(”%d”,&id);printf(”内存详细使用情况如T:u);//for(inti=0;i0)printf("进程号:%d占用内存块(%2d):",id,process[id][0]);pri5、ntfCI6、u);printf(H7、页号8、块号9、“);printf("10、11、u);for(intj=1,count二0;jv二processed][0];j++)printf("12、%2d13、%2d14、'count,process[id][j],count++);printf(n15、16、u);//printf("%2d”,process[i]17、jJ,count++);/*if(count==15){putchar('');printf(n”);count=0;}*/}printfC****输出结束***");//putchar('');}//}}elseprintf18、(”当前内存无进程!");putchar('');voidfirstin(){run=ready;run->statc='R';ready=ready->next;}voidprtl(PCB*q){printfC'*%-10d%-10d%-10d%-10d%-10d%-10c*H,q->pid,q->cputime,q->needtime,q->count,q・>「ound,q->state);voidprt(){PCB*q;吋间片状printf("*进程号cpu吋间所需吋间记数态*H);if(run!=NULL)prtl(run);q=rcady;while(q!=NU19、LL&&q!=nin){prtl(q);if(q->next==run)break;elseq=q->next;}q=finish;while(q!=NULL){prtl(q);q二q->next;}getchar();voidinsert(PCB*q){tail->ncxt=q;tail=tail->next;boolcreateProcess(){intna;intpages,k=0;PCB*p;inttime;//charna
3、i4、N;k++){if(block[kj==1)printf("%2d",k,++count);if(count==10){putchar('');count=0;}}putchar('');}//输出各进程占丿IJ内存详细情况讦(processCount>0){intid;printf(”请输入要查看的进程号:”);scanf(”%d”,&id);printf(”内存详细使用情况如T:u);//for(inti=0;i0)printf("进程号:%d占用内存块(%2d):",id,process[id][0]);pri5、ntfCI6、u);printf(H7、页号8、块号9、“);printf("10、11、u);for(intj=1,count二0;jv二processed][0];j++)printf("12、%2d13、%2d14、'count,process[id][j],count++);printf(n15、16、u);//printf("%2d”,process[i]17、jJ,count++);/*if(count==15){putchar('');printf(n”);count=0;}*/}printfC****输出结束***");//putchar('');}//}}elseprintf18、(”当前内存无进程!");putchar('');voidfirstin(){run=ready;run->statc='R';ready=ready->next;}voidprtl(PCB*q){printfC'*%-10d%-10d%-10d%-10d%-10d%-10c*H,q->pid,q->cputime,q->needtime,q->count,q・>「ound,q->state);voidprt(){PCB*q;吋间片状printf("*进程号cpu吋间所需吋间记数态*H);if(run!=NULL)prtl(run);q=rcady;while(q!=NU19、LL&&q!=nin){prtl(q);if(q->next==run)break;elseq=q->next;}q=finish;while(q!=NULL){prtl(q);q二q->next;}getchar();voidinsert(PCB*q){tail->ncxt=q;tail=tail->next;boolcreateProcess(){intna;intpages,k=0;PCB*p;inttime;//charna
4、N;k++){if(block[kj==1)printf("%2d",k,++count);if(count==10){putchar('');count=0;}}putchar('');}//输出各进程占丿IJ内存详细情况讦(processCount>0){intid;printf(”请输入要查看的进程号:”);scanf(”%d”,&id);printf(”内存详细使用情况如T:u);//for(inti=0;i0)printf("进程号:%d占用内存块(%2d):",id,process[id][0]);pri
5、ntfCI
6、u);printf(H
7、页号
8、块号
9、“);printf("
10、
11、u);for(intj=1,count二0;jv二processed][0];j++)printf("
12、%2d
13、%2d
14、'count,process[id][j],count++);printf(n
15、
16、u);//printf("%2d”,process[i]
17、jJ,count++);/*if(count==15){putchar('');printf(n”);count=0;}*/}printfC****输出结束***");//putchar('');}//}}elseprintf
18、(”当前内存无进程!");putchar('');voidfirstin(){run=ready;run->statc='R';ready=ready->next;}voidprtl(PCB*q){printfC'*%-10d%-10d%-10d%-10d%-10d%-10c*H,q->pid,q->cputime,q->needtime,q->count,q・>「ound,q->state);voidprt(){PCB*q;吋间片状printf("*进程号cpu吋间所需吋间记数态*H);if(run!=NULL)prtl(run);q=rcady;while(q!=NU
19、LL&&q!=nin){prtl(q);if(q->next==run)break;elseq=q->next;}q=finish;while(q!=NULL){prtl(q);q二q->next;}getchar();voidinsert(PCB*q){tail->ncxt=q;tail=tail->next;boolcreateProcess(){intna;intpages,k=0;PCB*p;inttime;//charna
此文档下载收益归作者所有