实验四线程同步.doc

实验四线程同步.doc

ID:59205834

大小:269.00 KB

页数:4页

时间:2020-09-10

实验四线程同步.doc_第1页
实验四线程同步.doc_第2页
实验四线程同步.doc_第3页
实验四线程同步.doc_第4页
资源描述:

《实验四线程同步.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、集美大学诚毅学院信息工程系实验报告课程名称计算机操作系统序号名称实验四线程同步姓名孙幸杰学号专业计算1191日期13.11.30成绩教师洪联系评语:1.实验目的:掌握在Linux环境下的线程创建:clone();线程同步:信号灯sem_t实现线程同步与互斥;实现经典同步问题读者-写者问题;2.实验环境Win7系统虚拟机安装的linux系统。3.实验内容用信号灯+PV操作实现读者—写者问题;用clone()函数4个读者线程和4个写者线程;每次读者在共享数据区(缓冲区)读操作,或者写者在共享数据区写操作时,要显示当前正在操作的线程;按读者优先

2、或者写者优先编写程序,但要明确是那个优先;4.实验程序(有详细注释)#include#include#include#include#include//定义信号灯变量sem_tr_w_w;sem_tmutex;intreadCount=0;charinfo[20];//共享数据区intReader(intr_n){charrc[20];while(1){sem_wait(&mutex);readCount++;if(readCount=

3、=1){sem_wait(&r_w_w);printf(“FirstreaderinterCR!”);}sem_post(&mutex);printf(“%dthreaderisreading:”,r_n);strcpy(rc,info);printf(“%s”,rc);sem_wait(&mutex);readCount--;if(readCount==0)sem_post(&r_w_w);printf(“%dthreaderexit.”,r_n);sem_post(&mutex);}}intWriter(intw_n){c

4、harws[20];sprintf(ws,”%dthwriter”,w_n);while(1){sem_wait(&r_w_w);strcpy(info,ws);sem_post(&r_w_w);}}main(){inti,arg;intclone_flag;char*stack;sem_init(&r_w_w,0,1);sem_init(&mutex,0,1);clone_flag=CLONE_VM

5、CLONE_SIGHAND

6、CLONE_FS

7、CLONE_FILES;for(i=0;i<4;i++){arg=i+1;stack=(ch

8、ar*)malloc(4096);clone((void*)Reader,&(stack[4096]),clone_flag,(void*)&arg);stack=(char*)malloc(4096);clone((void*)Writer,&(stack[4096]),clone_flag,(void*)&arg);}exit(1);}5.实验结果及其分析6.实验小结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。