欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    实验一 进程控制 报告.docx

    • 资源ID:5655139       资源大小:19.69KB        全文页数:5页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    实验一 进程控制 报告.docx

    实验一进程控制一、实验目的:加深对进程概念的理解,明确进程和程序的区别;掌握LinUX操作系统的进程创建和终止操作,体会父进程和子进程的关系及进程状态的变化;进一步认识并发执行的实质,编写并发程序。二、实验平台:虚拟机:VMWare9以上操作系统:UbUntUI2.04以上编辑器:GeditIVim编译器:Gcc三、实验内容:(1)编写一段程序,使用系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示“身份信息”:父进程显示“Parentprocess!PID=xxxlPPlD=XXX2”:子进程显示wChildxprocess!PID=xxxPPID=Xxx”。多运行几次,观察记录屏幕上的显示结果,并分析原因。说明:XXXl为进程号,用geipid()函数可获取进程号;xxx2为父进程号,用getppid()函数可获取父进程号;Childx中X为1和2,用来区别两个子进程;Wait()函数用来避免父进程在子进程终止之前终止。程序源码:#include<stdio.h>#include<unistd.h>#include<stdlib.h>#defineNUM2intmain(void)pid_tpidl,pid2;if(pidl=fork()<0)PrintfC创建进程1失败");)elseif(pidl=O)/子进程1执行printf("Childlprocess:");printf("PID=%dPPlD=%dn",getpid(),getppid();sleep(2);)else(if(pid2=fork()<0)Primf("创建进程2失败)elseif(pid2=O)子进程2执行printf(',Child2process:");printf("PID=%dPPID=%dn",getpid(),getppid();)else父进程执行wait();wait();printf("Parentprocess:");printf("PID=%dPPID=%dn",getpid(),getppid();exit(0);执行结果WhtCmiSSWhtCmiSS-VirtUalBox:/Desktop$gcctest1.c-otestwhtcmisswhtcmiss-VirtualBox:/Desktop$./testChild2process:PID=2527PPID=2525Childlprocess:P1D=2526PP1D=2525Parentprocess:PID=2525PPID=2127whtcmisswhtcmiss-VirtualBox:/Desktop$./testChild2process:PID=253OPPID=2528Childlprocess:PID=2529PPID=2528Parentprocess:PID=2528PPID=2127WhtCmiSSWhtCmiSS-VirtUaIBOx:/Desklop$./testChild2process:PID=2533PPID=2531Child1process:PID=2532PP1D=2531Parentprocess:PID=2531PPID=2127实验结果分析:第一次程序运行结果,两个子进程的PPlD都是2525,是由同一个进程创建。而父进程PlD是2525,父进程PPlD是2127,说明父进程也是一系统进程的子进程。第二次程序运行结果,父进程PID是2528,PPID是2127,说明父进程是由同一进程创建的,父进程也是以子进程的方式存在,且进程ID是逐渐递增的。(2)fork()和exec()系列函数能同时运行多个程序,利用上述函数将下面单进程顺序执行的程序Single.c改造成可并发执行3个进程的程序mulkprocess.c;并用time命令获取程序的执行时间,比较单进程和多进程运行时间,并分析原因。/single.cinclude<stdio.h>defineNUM5intmain(void)(voidprint_msg(char*m);print-msg(,Good");print_msg("Morning);print_msg(H007nn);将007替换为本人学号return0;voidprint_msg(char*m)inti;for(i=0;i<NUM;i+)printf(',%s,m);fflush(stdout);sleep(l);)编译运行方法:#gccsingle.c-osingle#time./single单线程执行结果:whtcmtss0whtcniss-Vtrtual.Box:/Desktop$gccsingle.c-osinglewhtcmisswhtcniss-VirtualBox:-/Desktopstime./singleGoodGoodGoodGoodGoodMorningMorningMorningMorningMorning213824419213O82441920130824419213824419213O824419realml5.lsuserm.lssys.2sWhtcmisswhtciniss-VirtualBox:-/DesktopS多线程代码:#multi_process.c#include<stdio.h>#include<unistd.h>#include<stdlib.h>#defineNUM5intmain(void)(pid.tpid3;inti;for(i=l;i<=3;i+)pidi-l=fork();if(pidi-l=Opidi-l=-l)break;Iif(pidO=O)execl(',print",print","Good",NULL);elseif(pidl=O)execl("print",print","Hello",NULL);)elseif(pid2=0)execl("print","print","20l300814113",NULL);1wait();wait();wait();exit(O);11return0;whtcmtsswhtcmtss-VirtualBox:-/DesktopStime./single201300824419HelloGood213824419HelloGood2130824419HelloGoodGoodHello2130824419213O0824419HelloGoodreal0n5.O5suserm0.0sISySe11e.eees_实验分析:第二个实验结果,第二个程序的多线程因为是并发执行,而且是有三个线程,所以在时间上几乎是单线程的1/3,而且因为是并发的,所以打印结果是无序的。实验总结本次实验首先要明确进程和程序的区别,我通过在Linux操作系统的进程创建和终止操作,运行父进程和子进程,查看运行结果和进程状态的变化。实验过程中也了解了父进程与子进程的运行过程及其机制。

    注意事项

    本文(实验一 进程控制 报告.docx)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开