版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验四同步与互斥【实验目的和要求】1、掌握进程(线程)的同步与互斥。2、掌握生产者消费者问题的实现方法。3、掌握多线程编程方法。【实验内容】实现生产者消费者问题1、有一个仓库,生产者负责生产产品,并放入仓库,消费者会从仓库中拿走产品(消费)。2、仓库中每次只能入一个(生产者或消费者)。3、仓库中可存放产品的数量最多10个,当仓库放满时,生产者不能再放入产品。4、当仓库空时,消费者不能从中取出产品。5、生产、消费速度不同。【实验原理】信号量mutex提供对缓冲池访问的互斥要求并初始化为1,信号量empty和full分别用来表示空缓冲项和满缓冲项的个数,信号量empty初始化为n,信号量full初始化为0。2、定义如下结构及数据:
定义缓冲区内的数据类型:typedef
int
buffer_item;
缓冲区
:buffer_item
buffer[BUFFER_SIZE];对缓冲区操作的变量:int
in,out;
信号量mutex提供了对缓冲池访问的互斥要求:pthread_mutex_t
mutex;
信号量empty和full分别表示空缓冲顶和满缓冲顶的个数:sem_t
empty,full;
可以设定生产者的生产速度及消费者的消费速度
:int
pro_speed,con_speed;对缓冲区操作的自增函数:#define
inc(k)
if(k
<
BUFFER_SIZE)
k
=
k+1;else
k=03、并定义了如下实现问题的函数模块:
将生产的产品放入缓冲区:
int
insert_item(buffer_item
item)
从缓冲区内移走一个产品:
int
remove_item(buffer_item
*item)
生产者进程
:void
*producer(void
*param)
消费者进程:void
*consumer(void
*param)
生产者结构进程消费者结构进程【程序代码】//sx.c#include<stdio.h>【实验体会】1、Linux中生成线程方法:第一种方式是用pthread库来实现的,是在用户程序本身中实现线程,这实际上是对线程的一种模拟,线程之间的切换和调度是在用户的进程内部进行的,这种方式就被称为用户空间的线程。这种线程的好处是实现非常简单,性能也非常好,因为线程之间的切换都在用户进程内部进行,切换开销比较小。缺点也非常明显,首先就是不能充分利用高端系统的SMP多处理器的优点,因为一个进程只能由一个处理器处理,第二点由于用户空间是在用户空间切换,某个线程遇到一个需要阻塞的系统调用进而就会造成这个进程被阻塞,因而所有线程被阻塞。第二种方式是通过修改进程的实现方式来完成,可以使用不完全的进程创建方式创建共享数据空间的进程,在Linux下这种系统调用为clone()。2、Ptrtead生成线程:POSIXthread简称为pthread,Posix线程是POSIX标准线程该标准定义内部API创建和操纵线程。数据类型pthread_t:线程句柄pthread_attr_t:线程属性线程操纵函数(省略参数):pthread_create():创建一个线程pthread_exit():终止当前线程pthread_cancel():中断另外一个线程的运行pthread_join():阻塞当前的线程,直到另外一个线程运行结束pthread_attr_init():初始化线程的属性pthread_attr_setdetachstate():设置脱离状态的属性(决定这个线程在终止时是否可以被结合)pthread_att
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课题1 燃料的燃烧 第2课时 燃烧的调控与能量变化(教学课件)化学人教版2024九年级上册-中考备考真题
- 曹冲称象的故事 第03课时 称重大挑战(教学课件)数学人教版三年级上册(新教材)-中考备考真题
- 桥梁隧道工地常识考试题及答案
- 法官员额考试试题及答案
- 新课改体育复试题及答案
- 地理蔬菜试题解析及答案
- 第1课时 移民国家 农业地区专门化
- 公文写作格式规范全解:15种法定公文与常用事务文书
- 历史手写试题模板及答案
- 2026年合肥产投资本创业投资管理有限公司社会招聘3名模拟试卷及完整答案详解(典优)
- 护理管理学试题200题
- 药典培训课件
- 小学教师业务考试语文案例分析题(附答案)
- 《狱内侦查学》教学大纲
- 膀胱肠道瘘课件
- 雨课堂在线学堂《马克思与当代欧陆思想》单元考核测试答案
- 公园场地租赁合同协议
- 2024年特种设备检验人员资格考试(气瓶检验员QPY)练习题及答案
- 2026年全球美容与个人护理趋势预测报告-
- 安全工伤培训总结课件
- GJB3206B-2022技术状态管理
评论
0/150
提交评论