Linux多进程并发执行实验_第1页
Linux多进程并发执行实验_第2页
Linux多进程并发执行实验_第3页
Linux多进程并发执行实验_第4页
Linux多进程并发执行实验_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、实验目的1、对理论课中学习的进程、程序等的概念作进一步的理解,明确进程和程序的区别;2、加深理解进程并发执行的概念,认识多进程并发执行的实质;3、观察进程争夺资源的现象,分析其过程和原因,学习解决进程互斥的方法;4、对经典的多用户、多任务的优先级轮转调度系统Linux有一定的了解;5、了解Linux系统中多进程之间通过管道通信的基本原理和应用方法。二、实验内容1、用virtual虚拟机运行linux虚拟系统;2、分析并理解源程序;3、在linux中输入相应程序并观察运行结果。三、实验原理(一)多进程并发执行是使用后台任务来实现任务的“多进程化”。在不加控制的模式下,不管有多少任务,全部都后台执行。也就是说,在这种情况下,有多少任务就有多少“进程”在同时执行。(二)实验中要用到的函数1、fork()函数——进程创建函数。2、getpid()函数——取得目前进程的进程标识码。3、exit()函数——用来正常终结目前进程的执行。4、sleep()函数——用来延时,它会被挂起,把处理器让给其他的进程。5、printf()函数一一是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。(三)实验中要用的命令1、cd命令:功能:改变工作目录。语法:cd[directory]说明:该命令将当前目录改变至directory所指定的目录。若没有指定directory,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和读权限。该命令可以使用通配符。2、mkdir命令:功能:创建一个目录(类似MSDOS下的md命令)。语法:mkdir[选项]dir-name说明:该命令创建由dir-name命名的目录。要求创建目录的用户在当前目录中(dir-name的父目录中)具有写权限,并且dirname不能是当前目录中已有的目录或文件名称。3、ls命令:功能:ls是英文单词list的简写,其功能为列出目录的内容。这是用户最常用的一个命令之一,因为用户需要不时地查看某个目录的内容。该命令类似于DOS下的dir命令。语法:ls[选项][目录或是文件]说明:对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输出其文件名以及所要求的其他信息。默认情况下,输出条目按字母顺序排序。当未给出目录名或是文件名时,就显示当前目录的信息。4、vim、clear命令在这里就不做介绍了。(四)实验源程序如下:#include<stdio.h>#include<unistd.h>#include<sys/types.h>#include<sys/wait.h>#include<stdlib.h>main(){intpid1,pid2,i=1;while((pid1=fork())==-1);if(pid1==0){printf("Thisischildprocess1,pid=%d\n",getpid());sleep(1);for(i='A';i<='Z';i++){printf("Childprocess1print:%c\n",i);sleep(1);}exit(0);}else{while((pid2=fork())==-1);if(pid2==0){printf("Thisischildprocess2,pid=%d\n",getpid());sleep(1);for(i='a';i<='z';i++){printf("Childprocess1print:%c\n",i);sleep(1);}exit(0);}else{printf("Thisisaparentprocess,pid=%d\n",getpid());sleep(1);for(i=1;i<=26;i++){printf("Parentprocessprint:%d\n",i);sleep(1);exit(0);}}}}四、实验步骤1、打开VirtualBox虚拟机,并运行linux操作系统;2、在linux操作系统中输入相关指令如下:cd/(进入根目录下);ls(查询根目录下的文件);mkdirmylinux(在根目录下新建一个文件夹mylinux);vimjinchengbingfa.c(新建一个c文件);3、进入vim编辑器,输入源程序,保存并退出;4、输入gccjinchengbingfa.c-ojinchengbingfa对文件进行编译;5、./jinchengbingfa进行调试;6、调试无误后截图,然后关闭系统,实验毕。五、实验截图1、调试过程(截图):2、部分程序(截图):1144r但部邢pijcmsystem8卷&烟售 篇■12;22PM。,roqt应Selh。式HmyMux -°xEJeEditViewTerminalTa^Help^includecatdin.h*fincludecinistd.h>Uncludo<sys/types.h>fincludBcsysAMit.h^flncluda-tniib.g巾乳n(){in:wtineUpldl-fQrk(n--l);n(pidl=-0>{prlntf{KThkischildprocessLpi(Md\n"tgEtpid(H:日邺(I);for(i=rA';U='Z';i++){pnirttglldprocesslprint^\nrl);sieep(l)jexit");else{while((pid2-fork{]>->1);if(pid2-0)(printflllThisischildprocess2Jpii-^d\n,.getplaH^5leep(l|;ror(i«Ja';i'S-,zl;1++)(prlntffCtiildproce^slprlnt:\c\ri'4);m叩⑴;exlt(e);}eLse(printf("Thi5isaparentprocessFpid=%d\n'Hgetpid());口cep口);far(i=l;i<=26;i-t){orintf("Parentprocessprint:^d\n",i);sleepd);exi:(Q);39J Got二=====[root@localhost:-]口root@localhost:Anylinux3、调试结果(截图):sP;,ApplicationsHace5System。镇Q巡泊 :—一i之加啊ro&t(^lccalhost:/myllnux .匕其FileEditViewTermnallabsHelp[root^localhastniylinuix]#-/jinchengbingfaAThisischildprocessL.pid-2006Thisischildprocess2,picl-28©7Ttiisismparentproce&&(.pid-2&@5Childprocess;!print:aParentprocessprint:1Childprocess!print:凡Childprocess;!print:b[rootglocalhastmylinuxj#Child!processlprint:BChildprocess!print:匚Childprocess;!print:CChildprocesslprint:diChildprocess!print”cmidprocesslprint:ecmidprocessiprint:EChildprocess:!print:1cmidprocessiprint:Fcmidprocesslprint:giChildprocess:!print:Gcmidprocessiprint:ftcmidprocessiprint:hChildprDces-51print:1ChildprocesElprint:lcmidproces5lprint:]Childpracesslprint'J=ChildprocesElprint:kcmidproces5lprint:KChildprocesElprint■1cmidprocess!print:LChildprocessiprintschildproctssipri*t:IChildprncMElprint:LChildprDce55Lprint:m一Childproic€5.slprint:HChildpracfi5filpriint:nChildpracessiprint:MChildpro匚怛islprintCmldpracess1print:0Childprncesslprint:pChildproc电gelprintipChildprac«gslprinti()Ctilldprocess!print~QChildprnuslprint:rChlltiproc«slprintsChildpro«sslprint」Childprot^5>51prlpt;5ChildpracesSipririt:tChildprocess!priint:TChildprocess!print:uChildproccsslprimt;UChildprac^sslpririt:vChildpracessiprint:VChildprocesslprint:wChildproc^sslprint:WChildlpracessLprintixChiinprocfisslprintChildp「o£g£互1print:y■ChildpFDcesslprintjYChild printiiChildprocess.1print:Z金\[root@bcalhflst:-J ,rodc@Iocalhost:/mylinui六、实验心得完成这这次实验,实话实说,花了不少心思,当然一份耕耘一分收获,到最后我学到不少知识。通过这次实验,首先,我学会了怎么装virtual虚拟机和怎么装linux系统,以前,装系统对我来说,永远是渴望而不可及的事情,总觉得能装系统的人的都是超人,现在也让我幻想

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论