



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《操作系统实验》报告实验四:运用信号量实现进程控制指导教师:________班级:_________学号:_______姓名:_________实验四运用信号量实现进程控制一、实验目的学习UNIX类操作系统信号量机制,编写Linux环境下运用信号量实现进程控制的办法,掌握有关系统调用的使用办法。二、实验内容创立四个线程,其中两个线程负责从文献读取数据到公共的缓冲区,另两个线程从缓冲区读取数据作不同的解决(加和乘运算)。使用信号量控制这些线程的执行。三、实验代码#include<stdio.h>#include<pthread.h>#include<semaphore.h>intstack[8];intsize1=0;intsize2=4;intsize=0;sem_tsem;intflag1=0;//definetheexclusivenumberintflag2=0;intflag3=0;intflag4=0;voidReadData1(void){FILE*fp=fopen("1.txt","r");while(size1<4&&flag3!=4){stack[size1]=(int)fgetc(fp)-48;//changethechardatatointegerflag3++;printf("%dfrom1.txt!\n",stack[size1]);//thedatafrom1.txtis1357if(size%2==0)sem_post(&sem);++size;++size1;}fclose(fp); }voidReadData2(void){FILE*fp=fopen("2.txt","r");//thedatafrom2.txtis2468while(size2<8&&flag4!=4){stack[size2]=(int)fgetc(fp)-48;flag4++;printf("%dfrom2.txt!\n",stack[size2]);if(size%2==0)sem_post(&sem);++size;//whenthepublicsourceisincrease,signalnumberplus1++size2;}fclose(fp);}voidHandleData1(void){while(flag1!=2){flag1++;sem_wait(&sem);/*wewilproceedtodotheplusoperation*/printf("Plus:%d+%d=%d\n",stack[size1],stack[size2],stack[size1]+stack[size2]);--size1;--size2;size=size-2;//wehandletwodata,sosignalnumberwillminus2}}voidHandleData2(void){while(flag2!=2){flag2++;sem_wait(&sem);/*wewillproceedtodothemultiplyoperation*/printf("Mutiply:%d*%d=%d\n",stack[size1],stack[size2],stack[size1]*stack[size2]);--size2;--size1;size=size-2;}}intmain(void){pthread_tt1,t2,t3,t4;sem_init(&sem,0,0);pthread_create(&t1,NULL,(void*)HandleData1,NULL);pthread_create(&t2,NULL,(void*)HandleData2,NULL);pthread_create(&t3,NULL,(void*)ReadData1,NULL);pthread_create(&t4,NULL,(void*)ReadData2,NULL);pthread_join(t1,NULL);pthread_join(t2,NULL);pthread_join(t3,NULL);pthread_join(t4,NULL);return0;}四、执行成果1.txt文献里面的数据是1357,2.txt文献里面的数据是2468。信号量表达空闲资源总数(又称为“资源信号量”):若为非负值:表达现在的空闲资源数(可用的资源数)若为负值:其绝对值表达现在等待临界区的进程数,每个信号量除一种整数值外,尚有一种进程等待队列,其中是阻塞在该信号量的各个进程的标记普通将信号量的值初始化为非负整数,P操作(wait操作)使信号量的值减1(申请一种单位的资源),如果使信号量的值变成负数,则执行P操作的进程被阻塞,此时资源已分派完毕,进程自己阻塞在等待队列上。V操作(signal操作)使信号量的值加1(释放一种单位资源)如果信号量的值不是正数,则使一种因执行v操作被阻塞的进程解除阻塞(唤醒一种等待进程)。五、实验心得:做完这七
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年人工智能物联网合作协议书
- 山东省惠州市惠东县梁化中学九年级化学下册 12.3 有机合成材料教学实录 新人教版
- 上海市理工大学附属中学2024年-学年高二体育上学期第1周教学实录3
- 26 我的“长生果”(教学设计)-2024-2025学年统编版语文五年级上册
- ntc读取温度电路
- 2025年大量程固体物位仪表项目建议书
- Unit 2 Topic 3 Section D 教学设计 2024-2025学年仁爱科普版八年级英语上册
- 利用网络平台创新教学方式计划
- 对话与交流中的艺术教育方法计划
- 学校教学工作规划计划
- 统编版(2024)道德与法治七年级下册第一单元 珍惜青春时光 单元测试卷(含答案)
- 儿童各年龄期保健儿童保健学课件
- 苏教版数学一年级下册(2024)第七单元观察物体(一)综合素养测评 A 卷(含答案)
- 2025年中考英语第一次模拟试卷01(广州专用)(原卷版)
- 2025年甘肃省张掖市民乐县招聘专业技术人员9人(第二期)历年高频重点模拟试卷提升(共500题附带答案详解)
- 2025年湖北武汉理工大学学生辅导员招聘18人历年高频重点模拟试卷提升(共500题附带答案详解)
- 《石油工程事故案例分析》课件
- 金融科技概论-课件 第十五章 金融科技监管与监管科技
- 初级咖啡师资格理论考试题及答案
- 2025年中国废旧轮胎循环利用行业市场发展监测及投资战略规划研究报告
- 2025年北京电子科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
评论
0/150
提交评论