欢迎来到天天文库
浏览记录
ID:22282413
大小:56.50 KB
页数:5页
时间:2018-10-28
《实验一-进程控制实验》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验一进程控制一、实验目的:加深对进程概念的理解,明确进程和程序的区别;掌握Linux操作系统的进程创建和终止操作,体会父进程和子进程的关系及进程状态的变化;进一步认识并发执行的实质,编写并发程序。二、实验平台:虚拟机:VMWare9以上操作系统:Ubuntu12.04以上编辑器:Gedit
2、Vim编译器:Gcc三、实验内容:(1)编写一段程序,使用系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示“身份信息”:父进程显示“Parentprocess!PID=xxxlPPID=xxx2”;子进程显示“Childxprocess
3、!PID=xxxPPID=xxx”。多运行几次,观察记录屏幕上的显示结果,并分析原因。说明:xxxl为进程号,用getpidO函数可获取进程号;xxx2为父进程号,用getppid()函数可萩取父进程号;Childx中x为1和2,用来区别两个子进程;wait()函数用来避免父进程在子进程终止之前终止。程序源码:#include<$tdio.h>#include#include#defineNUM2intmain(void)pid—tpidl,pid2;if((pid1=fork())<0){printff’创建进程1失败n);}else{if(pid
4、l==O){//子进程1执行printf("Child1process:");printf(MPID=%dPPID=%dM,getpid(),getppid());sleep(2);}else{if((pid2=fork())<0){printf("创建进程2失败");}else{if(pid2==0){//子进程2执行printf("Child2process:");printf("PID=%dPPID=%d",getpid(),getppid());}else{//父进程执行wait();wait();printf(’.Parentprocess:”);printf("PID=
5、%dPPID=%dH,getpid(),getppid());exit(O);}})}执行结果whtcmiss@whtcmiss-VirtualBox:~/Desktop$gcctest1.c-otestwhtcmiss@whtcmiss-VirtualBox:~/Desktop$./testChild2process:PID=2527PPID=2525Child1process:PID=2526PPID=2525Parentprocess:PID=2525PPID=2127whtcmiss@whtcmiss-VirtualBox:~/Desktop$./testChild2proce
6、ss:PID=2530PPID=2528Child1process:PID=2529PPID=2528Parentprocess:PID=2528PPID=2127whtcmiss@whtcmiss-VirtualBox:~/Desktop$./testChild2process:PID=2533PPID=2531Child1process:PID=2532PPID=2531Parentprocess:PID=2531PPID=2127实验结果分析.•第一次程序运行结果,两个子进程的PPID都是2525,是由同一个进程创建。而父进程PID是2525,父进程PPID是2127,说明父进程也是
7、一系统进程的子进程。第二次程序运行结果,父进程PID是2528,PPID是2127,说明父进程是由同一进程创建的,父进程也是以子进程的方式存在,且进程ID是逐渐递增的。(2)fbrk()和exec()系列函数能同时运行多个程序,利用上述函数将下而单进程顺序执行的程序single.c改造成可并发执行3个进程的程序multLpmcess.c;并用time命令获取程序的执行时间,比较单进程和多进程运行时间,并分析原因。//single.c#include#defineNUM5intmain(void){voidprint一msg(char*m);print_msg(’’Good
8、,’);print_msg("Moming");print_msg(n007”);//将007替换为本人学号return0;)voidprint_msg(char*m){inti;for(i=0;i}编译运行方法:#gccsingle.c-osingle#time./single单线程执行结果:whtcmissQwht
此文档下载收益归作者所有