实验题目:进程管理及进程通信.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验题目:进程管理及进程通信 姓名 学号 实验日期 2016/10/12 实验环境: VMware Workstation 中的 Ubuntu 64 位操作系统。 实验目的: 利用 Linux 提供的系统调用设计程序, 加深对进程概念的理解。 体会系统进程调度的方 法和效果。 了解进程之间的通信方式以及各种通信方式的使用。 实验内容: 用 vi 编写使用系统调用的 C 语言程序。 操作过程及结果: 实验 1: 编写程序。显示进程的有关标识(进程标识、组标识、用户标识等) 。经过 5 秒钟后, 执行另一个程序,最后按用户指示(如: Y/N )结束操作。 结果: 实验 2: 编写程序。 实现父进程创建一个子进程。 体会子进程与父进程分别获得不同返回值, 进 而执行不同的程序段的方法。 结果: 思考:子进程是如何产生的?又是如何结束的?子进程被创建后它的运行环境是怎样建立 的? 答 : 是由父进程用 fork() 函数创建形成的, 通过 exit() 函数自我结束, 子进程被创建后核心 将其分配一个进程表项和进程标识符, 检查同时运行的进程数目, 并且拷贝进程表项的数据, 由子进程继承父进程所有文件。 实验 3: 编写程序。 父进程通过循环语句创建若干子进程。 探讨进程的家族树以及子进程继承父 进程的资源的关系。 结果: 思考:① 画出进程的家族树。子进程的运行环境是怎样建立的?反复运行此程序看会有什 么情况?解释一下。 ② 修改程序,使运行结果呈单分支结构,即每个父进程只产生一个子进程。画出进程树, 解释该程序。 答 1: 反复运行, 子进程的编号在不断变化,但是初始的父进程的编号不会变,因为:父进程始终 是该程序在虚拟机操作系统下的进程号, 但是子进程是该父进程创建的子进程不断增加而得 的,子进程的编号应该是顺序递增的。 答 2: #include stdio.h #include sys/types.h 〉 #include unistd.h main() { int i, pid; for (i=1; i4; i++) if (pid=fork()) break; } 实验 4: 编写程序。使用 fork( ) 和 exec( ) 等系统调用创建三个子进程。子进程分别启动不同 程序,并结束。反复执行该程序,观察运行结果,结束的先后,看是否有不同次序。 结果: 思考:子进程运行其它程序后, 进程运行环境怎样变化的?反复运行此程序看会有什么情况? 解释一下。 答:子进程运行其他程序后, 这个进程就完全被新程序代替。 由于并没有产生新进程所以进 程标识号不改变,除此之外的旧进程的其他信息, 代码段,数据段,栈段等均被新程序的信 息所代替。新程序从自己的 main() 函数开始进行。反复运行此程序发现结束的先后次序是 不可预知的, 每次运行结果不一样。 原因是当每个子进程运行其他程序时, 他们的结束随着 其他程序的结束而结束,所以结束的先后次序在改变。 实验 5: 编写程序。 验证子进程继承父进程的程序、数据等资源。 如用父、 子进程修改公共变量 和私有变量的处理结果;父、子进程的程序区和数据区的位置。 结果: 思考:子进程被创建后,对父进程的运行环境有影响吗?解释一下。 答:子进程被创建后,对父进程的运行环境无影响,因为当子进程在运行时,他有自己的代 码段和数据段, 这些都可以作修改, 但是父进程的代码段和数据段是不会随着子进程数据段 和代码段的改变而改变。 实验 6: 复习管道通信概念,

文档评论(0)

zhang152 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档