操作系统实验一进程与线程—Linux进程与线程通讯实验报告_第1页
操作系统实验一进程与线程—Linux进程与线程通讯实验报告_第2页
操作系统实验一进程与线程—Linux进程与线程通讯实验报告_第3页
操作系统实验一进程与线程—Linux进程与线程通讯实验报告_第4页
操作系统实验一进程与线程—Linux进程与线程通讯实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1 实实 验验 报报 告告 姓名 学号 日期 2011 1 10 实验题目 实验一 进程与线程实验一 进程与线程 LinuxLinux 进程与线程通讯进程与线程通讯 实验目的 深刻理解线程与进程的概念 掌握进程与线程在组成成分上的差别以及 与其相适应的通讯方式和应用目标 实验内容 以 Linux 系统进程和线程机制为背景 掌握 fork 和 clone 系统调用 的形式和功能以及与其相适应的高级通讯方式 有 fork 派生的子进程 之间通过 pipe 通讯 由 clone 创建的线程之间通过共享内存通讯 对 于后者需要考虑互斥问题 以生产者 消费者问题为例 通过实验理解 fork 和 clone 两个系统调用的区别 程序要求能够创建 4 个进程或线程 其中包括两 个生产者和两个消费者 生产者和消费者之间能够传递数据 实验步骤 1 安装虚拟机 并安装虚拟 Linux 系统 实现 Linux 联网 2 在 ftp 202 116 102 7 上下载 OS 文件夹 保存在终端 3 打开终端 运行一下代码 Cd os gcc test fork c o fork ls fork 运行 fork gcc lpthread test clone c o clone clone 运行 clone 4 分析实验代码 与实验代码对比 弄懂其中的原理 5 实验结束 保存系统 退出 Linux 系统 实验结果 fork fork 输出结果输出结果 2 clone 输出结果输出结果 3 实验讨论 由程序 1 结果可知 使用 fork 语句创建的子进程与其父进程 具有相对独立的地址空间 在此解决生产者 消费者问题里 可以采 用 pipe 进行通讯 子进程复制了父进程的打开文件表 所以 pipe 所建立的通信管道可被子进程继承 生产和消费进程可以通 过对同一通信管道文件的读书进行通讯 由程序 2 结果可知 clone 语句在创建进程时 可通过参数设 定子进程与父进程是否共享存储空间 从而可以创建真正意义上的 程序 生产者和消费者进程共享内在 从而可以通过共享交换数据 但多个进程共享共存需要互斥机制 三 实验流程图三 实验流程图 程序二流程图 基于 clone 系统调用 父进程 父进程 4 生产者子进程 生产者子进程 Producer 5 Producer 开始 设置id 进入循环 i 0 i 10 i Sleep i 1 warehouse 0 则进程阻塞 上互斥锁 Id 0 aaa 0 赋给 buffer bp Y bbb 0 赋给 buffer bp N Bp Producer id produceBuffer bp in Bp 1 解锁 解除堵塞进程 循环结束 N Producer id is over Y Producer 结束 消费者子进程 消费者子进程 Consumer 8 Consumer 开始 设置id 进入循环 i 0 9 进程等待 product 1 堵塞进程 上互斥锁 Bp Producer id produce Buffer bp in Bp 1 zzz 0 赋给 buffer bp 解锁 解除堵塞 进程 循环结束 Consumer id is over Consumer 结束 N Y 基于 fork 系统调用的流程图 主程序 主程序 1 开始 I 2 退出 Exit N Arg I I 创建四个线程 Y 生产者1活动生产者2活动消费者1活动消费者2活动 结束 生产者进程 生产者进程 producer producer 消费者进程 消费者进程 consumer consumer 开始 i 0 i i i 10 Sleep i 1 Y id 0 Y 生产者1 aaa 生产者2 bbb N N Printf producer is over 生产者进程结束 Bp Printf producer d Int id int args 1 开始 Int id int args i 10 Y Sleep 10 i Printf consumer is over N 消费者进程结束 pthr

温馨提示

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

评论

0/150

提交评论