




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验三 进程的同步,1. 预习操作系统进程同步的概念及实现方法 2. 编写一段源程序,用系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。程序的输出是什么?分析原因。 3. 阅读模拟火车站售票系统和实现进程的管道通信源代码,查阅有关进程创建、进程互斥、进程同步的系统功能调用或API,简要解释例程中用到的系统功能或API的用法,并编辑、编译、运行程序,记录程序的运行结果,尝试给出合理的解释。 4. (选做)修改问题2的代码,使得父子按顺序显示字符“a”;“b”,“
2、c”编辑、编译、运行。记录程序运行结果。 5.写实验报告,模拟火车站售票系统,模拟火车站售票系统: 在实际生活中,多人可以同时买票,也就是说火车站的售票系统是采用多线程技术实现的,主线程创建两个线程(线程1和线程2)负责销售火车票。 #include #include DWORD WINAPI Fun1proc(LPVOID lpPartameter); DWORD WINAPI Fun2proc(LPVOID lpPartameter); int tickets=100;,#include #include DWORD WINAPI Fun1proc( LPVOID lpPartameter
3、 / thread data ); DWORD WINAPI Fun2proc( LPVOID lpPartameter / thread data ); int tickets=100; Handle hMutex; Void main() HANDLE hThread1; HANDLE hThread2; /创建线程 hThread1=CreateThread(null,0,Fun1Proc,null,0,null); hThread2=CreateThread(null,0,Fun2Proc,null,0,null); CloseHandle(hThread1); CloseHandle
4、(hThread2); /创建互斥对象 hMutex= HANDLE CreateMutex(NULL,FALSE,NULL); sleep(4000) ,/线程1的入口函数 DWORD WINAPI Fun1Proc( LPVOID lpParameter /thread data ) while(TRUE) /请求共享对象的使用权 WaitForSingleObject(hMutex,INFINITE); if (tickets0) cout“thread1 sell ticket:”tickets-endl; else break; /释放对象的所有权 ReleaseMutex( hMu
5、tex); return 0; ,/线程2的入口函数 DWORD WINAPI Fun1Proc( LPVOID lpParameter /thread data ) while(TRUE) /请求共享对象的使用权 WaitForSingleObject(hMutex,INFINITE); if (tickets0) cout“thread2 sell ticket:”tickets-endl; else break; /释放对象的所有权 ReleaseMutex( hMutex); return 0; ,进程间的管道通信 编制一个程序:实现进程的管道通信,使用系统调用pipe( )建立一条管
6、道。两个子进程p1和p2分别向管道各写一句话。 Child 1 is sending message! Child 2 is sending message! 父进程则从管道中读出来自于两个进程的信息,显示在屏幕上。,#include main() int i,r,p1,p2,fd2; char buf50,s50; pipe(fd); while (p1=fork()=-1);/创建子进程 if (p1=0)/子进程P1的代码 lockf(fd1,1,0);/文件加锁 sprintf(buf, child process P1 is sending message!n); printf(ch
7、ild processP1!n); write(fd1,fuf,50); sleep(5); lockf(fd1,0,0); );/文件解锁 exit(0); ,else while (p2=fork()=-1);创建子进程 if (p2=0) )/子进程P2的代码 lockf(fd1,1,0); sprintf(buf, child process P2 is sending message!n); printf(child processP2!n); write(fd1,fuf,50); sleep(5); lockf(fd1,0,0); exit(0); wait(0);/父进程代码 if (r=read(fd0,s,50)=-1/从管道中读信息,存入字符数组S printf(catt read pipen); else printf(%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高等教育自学考试当代中国政治制度试题(附答案)
- 2025年反诈知识竞赛考试题库及参考答案
- 第三单元含硅矿物与信息材料
- 知道智慧树锻炼心理学满分测试答案
- 2025年证券登记、结算机构服务项目发展计划
- 发动机曲轴箱通风系统的设计与性能分析考核试卷
- 保健品企业品牌声誉风险管理考核试卷
- 糖业教育与人才培养模式研究考核试卷
- 艺术家参与赛事活动的后勤保障考核试卷
- 纺织品耐磨损等级评定方法考核试卷
- GB/T 30099-2025实验室离心机
- 实验室留样管理制度
- 2025-2030中国阻焊油墨行业运行现状与场竞争格局分析报告
- 建筑桩基技术规范 JGJ 94-2008知识培训
- 公司电商财务管理制度
- 2025年中国铷铯及其化合物行业市场前景预测及投资价值评估分析报告
- 医院口腔科管理制度
- T/CIIA 014-2022智慧工地总体规范
- T/CATCM 001.1-2017保健类眼贴第1部分:通用要求
- 温泉游泳馆免责协议书
- 移交模具协议书
评论
0/150
提交评论