实验2进程控制.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验2进程控制

操作系统实验报告 实验题目:Linux进程的创建 专 业 信息与计算科学 学 生 姓 名 彭颖涵 班 级 学 号 B130801081 指 导 教 师 叶宁 指 导 单 位 计算机学院 软件教研室 日 期 教师评语 教师签名: 年 月 日 成绩评定 备 注 实验目的 了解进程与程序的区别,加深对进程概念的理解。 掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行。 了解fork()系统调用的返回值,掌握用fork()创建进程的方法。 熟悉wait,exit等系统调用。 实验内容 编写一C语言程序,实现在程序运行时通过系统调用fork()创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“parent”,儿子进程执行时屏幕执行“son”,女儿进程执行时屏幕显示”daughter”。 多次连续反复运行这个程序,观察屏幕显示结果的顺序,直至出现不一样的情况为止。记下这种情况,试简单分析其原因。 修改程序,在父、子进程中分别使用wait,exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。 三、实验指导 Linux中与进程控制相关的几个主要系统调用 名/格式/参数 功??能 返回值的解释 fork( )、vfork( ) 创建一个字进程 对父进程:返回子进程号 对子进程:返回0 错误:返回-1 #include unistd.h execve(char *file,char **argv,char **envp) 用指定程序覆盖当前程序代码 正确:0 错误:-1 #include sys/types.h #include sys/wait.h pid_t wait(int *statloc) 等待进程终止 正确:子进程的ID 错误:-1 getpid( )、getppid( ) 获得进程号 #include stdio.h void exit(int status) 进程正常结束 四、实验步骤(附程序原码) parent.c #includestdio.h main() { int p1,p2,i; while((p1=fork())==-1); /*创建子进程p1*/ if(p1==0) for(i=0;i4;i++) printf(daughter %d\n,i); else { while((p2=fork())==-1); /*创建子进程p2*/ if(p2==0) for(i=0;i4;i++) printf(son %d\n,i); else for(i=0;i4;i++) printf(parent %d\n,i); } } son.c #includestdio.h #includestdlib.h main() { int pid; pid=fork();/*创建子进程*/ switch(pid) { case -1: printf(fork fail!\n); /*创建失败*/ exit(1); case 0: /*子进程*/ printf(subprocess!\n); exit(0); default: /*父进程*/ wait(0); /*同步*/ printf(completed !\n); exit(0); } } 五、运行结果及其结果分析 c@ubuntu:~$ gcc -o abc parent.c c@ubuntu:~$ ./abc parent 0 parent 1 parent 2 parent 3 c@ubuntu:~$ son 0 son 1 son 2 son 3 daughter 0 daughter 1 daughter 2 daughter 3 c@ubuntu:~$ gcc -o abcd son.c c@ubuntu:~$ ./abcd subprocess! completed ! fork()返回值意义如

文档评论(0)

docindpp + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档