欢迎来到天天文库
浏览记录
ID:41693385
大小:112.46 KB
页数:7页
时间:2019-08-30
《实验1进程创建》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验报告班级:软本111学号:2011417104姓名:吴月芬日期:1.实验题目实现进程的创建控制过程。2.实验要求以linux操作系统为例,说明进程控制的实现,学习如何利用系统调用命令进行编程。3・实验目的通过模拟进程调度算法,了解进程调度的过程并比较不同的调度算法的区别。4・实验原理分析1.Linux系统中,除初始化进程外,其它进程都是通过fork()系统调用建立的。使用fork()的进程为父进程,通过fork()创建的新进程为子进程。使用fork()系统调用厉,对父进程返冋子进程的进程号,对子进程返冋零。利用fork(
2、)M统调用创建进程的程序如-F:voidmain(){inti;if(fork()==0)printfC'thisisthechildprocess!M);elseprintfC'thisistheparentprocess!^);}2.系统中的进程可以用进程控制块PCB來表示,要求创建5个进程,并入就绪队列,其PCB的结构定义如表1所示:(注:该队列要在实验二进程调度中使用)表1PCB结构进程标识符charname进程占用CPU时间intcputime进程优先数intprio完成进程还需要的时间intneedtim
3、e链指针structpcb*next5•实验代码清单2.c**D:Progra>FilesMicrosoftVisualStudioMyProjects...吴月芬的作业55SS现在建立就绪队列请输入进程的个数:3麵入第一个进程的名称汀常要阳运行时I可詔捉先级汐麵入第2进程的名称:2需要药运行时间:2尤先级汽3-簣功•tf曲行仓键37a运:3一意甬级一任入要先一按灌提一请51间0中B-2要:5尔B-一丁总叭名辦运优间0^-1小要:J口
4、x
5、c*D:Progra>FilesMicrosoftVisualStudio
6、ByProject...井程名称:3PU占anykeytocontinue#include#include#include#includetypedefstructpcb{charname[20];intcputime;intprio;intneedtime;structpcb*next;}PCB;PCB*RUN,*READY,*RTAIL,*FINSH,*FTAIL;PCB*p,*q,*head;intn;PCB*PCBgreat(){print
7、fC*现在建立就绪队列“);inti,nt,pr;n=0;while(l){pnntfC*请输入进程的个数:“);scanf(”%d”,&n);printf(Hn);if(n>=1&&nv=100)break;elseprintf(“输入有谋。请重新输入!r);getchar();head=(structpcb*)malloc(sizeof(structpcb));printf("输入第一个进程的名称:”);scanf(n%su,head->name);while(l){printf(H需要的运行时间:”);s
8、canf(H%dH,&nt);if(nt>0)break;else{printf(“输入有课,重新输入!“);}}head->needtime=nl;printf(n优先级:”);scanf(”%d”,&pr);head->prio=pr;head->cputime=O;//进程已获得的运彳亍时间head->next=NULL;q=head;for(i=l;i9、i+1);scanf(M%su,p->name);printfC,需要的运行时间:”);scanf(n%dH,&nt);p->needtime=nt;printfC*优先级:”);scanf("%dH,&pr);p->prio=pr;p->cputinie=O;//进程C.获得的运彳亍时间p->next=NULL;q->next=p;q=p;)RTAIL=q;returnhead;}intmain(){RUN=(structpcb*)malloc(sizeof(structpcb));RUN=NULL;READY=NULL;10、RTA1L=NULL;FINSH=NULL;FTAIL二NULL;printf(ntn);printf(nt吴月芬的作业");printf(Ht-H);printf(H进程创建“);printf(ntn);PCBgreat();printf(H-——创建成功-—
9、i+1);scanf(M%su,p->name);printfC,需要的运行时间:”);scanf(n%dH,&nt);p->needtime=nt;printfC*优先级:”);scanf("%dH,&pr);p->prio=pr;p->cputinie=O;//进程C.获得的运彳亍时间p->next=NULL;q->next=p;q=p;)RTAIL=q;returnhead;}intmain(){RUN=(structpcb*)malloc(sizeof(structpcb));RUN=NULL;READY=NULL;
10、RTA1L=NULL;FINSH=NULL;FTAIL二NULL;printf(ntn);printf(nt吴月芬的作业");printf(Ht-H);printf(H进程创建“);printf(ntn);PCBgreat();printf(H-——创建成功-—
此文档下载收益归作者所有