操作系统实验一程与线程—Linux进程与线程通讯实验报告.docVIP

操作系统实验一程与线程—Linux进程与线程通讯实验报告.doc

  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文档。上传文档
查看更多
操作系统实验一程与线程—Linux进程与线程通讯实验报告

操作系统 课程设计任务书 实验题目: 实验一:进程与线程—Linux进程与线程通讯 实验目的: 深刻理解线程与进程的概念,掌握进程与线程在组成成分上的差别以及与其相适应的通讯方式和应用目标。 实验内容: 以Linux系统进程和线程机制为背景,掌握fork()和clone()系统调用的形式和功能以及与其相适应的高级通讯方式。有fork派生的子进程之间通过pipe通讯,由clone创建的线程之间通过共享内存通讯,对于后者需要考虑互斥问题。 以生产者 – 消费者问题为例,通过实验理解fork()和clone()两个系统调用的区别。程序要求能够创建4个进程或线程,其中包括两个生产者和两个消费者,生产者和消费者之间能够传递数据。 设计准备: (理论技术) 什么是进程?进程是具有一定独立功能的程序关于一个数据集合的一次运行活动。 什么是线程?线程是进程内的一个相对独立的执行流。 线程是与其父进程具有相同地址空间的进程。 进程与线程的差别通过与fork不同的另一个系统调用clone体现出来。fork为子进程创建一个具有全新上下文的独立的地址空间,而clone并不产生新的地址空间,子进程共享父进程的地址空间。Clone 为应用程序提供了细粒度的共享成分控制。 Linux中的进程包含3个段,数据段,代码段,堆栈段。 fork()函数用于从已存在的进程中创建一个新进程,新进程称为子程,而原进程称为父进程。使用fork()函数,子进程从父进程处继承了整个进程的地址空间。而子进程独有的只有它的进程号,资源使用和计时器等。 Fork()函数语法要点: 所需头文件:#includesys/types.h//提供类型pid_t的定义;#includeunistd.h 函数原型:pid_t fork(void) 函数返回值:0:子程序; 子进程ID(大于0的整数):父进程; -1:出错。 8. 实验步骤: 安装虚拟机,并安装虚拟Linux系统,实现Linux联网 在上下载OS文件夹,保存在终端 打开终端,运行一下代码 Cd os gcc test_fork.c –o fork ls ./fork (运行fork()) gcc –lpthread test_clone.c –o clone ./clone (运行clone()) 分析实验代码,与实验代码对比,弄懂其中的原理 实验结束,保存系统,退出Linux系统 实验结果: ./fork输出结果: ./clone输出结果: 实验讨论: 由程序1结果可知,使用?fork()语句创建的子进程与其父进程具有相对独立的地址空间,在此解决生产者-消费者问题里,可以采用pipe()进行通讯。子进程复制了父进程的打开文件表,所以pipe()所建立的通信管道可被子进程继承,生产和消费进程可以通过对同一通信管道文件的读书进行通讯。 由程序2结果可知:clone()语句在创建进程时,可通过参数设定子进程与父进程是否共享存储空间,从而可以创建真正意义上的程序。生产者和消费者进程共享内在,从而可以通过共享交换数据。但多个进程共享共存需要互斥机制。 三.实验流程图 程序二流程图: 基于clone()系统调用 父进程: 生产者子进程(Producer): 消费者子进程(Consumer): 基于fork()系统调用的流程图: 主程序: 生产者进程:(producer) 消费者进程:(consumer) geographic location Yibin city is located in beautiful rich of abundance--Sichuan basin South margin, is located in n 103 ° 39 -105 ° 20 , latitude 27 ° 49 -29 ° 16 Zhijian; Yibin East and, Luzhou city, adjacent; North and zigong city development 12th a five years planning platform for into Yu city inter track network planning ( 2011-2030) national and place of related planning, and policy Yibin City tourism development planning Yibin city ease city hold blocking special planning Yibin city related tab

文档评论(0)

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

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

1亿VIP精品文档

相关文档