进程通信与进程同步机制实践

进程通信与进程同步机制实践

ID:9799762

大小:77.50 KB

页数:9页

时间:2018-05-10

进程通信与进程同步机制实践_第1页
进程通信与进程同步机制实践_第2页
进程通信与进程同步机制实践_第3页
进程通信与进程同步机制实践_第4页
进程通信与进程同步机制实践_第5页
资源描述:

《进程通信与进程同步机制实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统课程设计题目:进程通信与进程同步机制实践一、题目某银行提供5个服务窗口(4个对私服务窗口,1个对公服务窗口)和10个供顾客等待的座位。顾客到达银行时,若有空座位,则到取号机上领取一个号,等待叫号;若没有空座位,则在门外等待或离开。取号机每次仅允许一位顾客使用,有对公和对私两类号,每位顾客只能选取其中一个。当营业员空闲时,通过叫号选取一位顾客,并为其服务。一、目的1、掌握基本的同步与互斥算法。2、Linux或Windows或Unix环境下,采用系统调用中的信号量、P、V操作解决问题二、要求1、当有顾客取号的时候,不允许其他顾客取号。2、当服务窗口满的情况下,其他人等待或离开。3、当等待者

2、没有的情况下,服务窗口必须等待。4、每位顾客只能选取对公对私其中之一5、打印:A、初始状态B、中间变化的状态信息C、以及最终状态信息。四、原理及算法顾客来了看是否有空位,自行选择等待还是离开。有空位则随机选取对私或对公服务后取号等待被服务。服务员空闲时开始叫号,每个窗口只能服务一个顾客。服务完成后顾客离开,继续叫下一位顾客,同时座位号减一,等待顾客进来取号等待。五、主要数据结构和流程1、主要数据结构定义一个全局变量统计顾客的号码,定义四个线程句柄数组,定义一个座位信号量来通知可分配的座位资源,生成随机数判断对私对公服务通知等待营业员对私信号量通知可分配的等待对私资源,通知等待营业员对公信号量等

3、待对公资源,通知对私叫号信号量通知可分配的等待通知对私服务资源,通知对公叫号信号量通知等待对公服务资源。在设置一个互斥信号量用于取号。2、流程创建服务员窗口线程(对私和对公服务)P(&cs1)对私窗口叫号V(&s1)P(&cs2)对公窗口叫号V(&s2)来了顾客产生随机数确定是对公对私服务后,空闲服务员叫号服务。P(&seat)P(&mutex)顾客已取号V(&mutex)V(&cs2)顾客等待对公服务P(&s2)顾客正在被服务V(seat)顾客已经被对公服务,离开P(&seat)P(&mutex)顾客已取号V(&mutex)V(&cs1)顾客等待对私服务P(&s1)顾客正在被服务V(seat

4、)顾客已经被对私服务,离开等待所有线程完成,程序结束六、源程序清单#include"windows.h"#include"time.h"#includeusingnamespacestd;#definePRIVATESERVER4//私有服务#definePUBLICSERVER1//公有服务#defineCUSTOMER10//等待座位量#defineSERVE_TIME5000//服务时间#defineCUSTOMER_COME_ADAY200//一天来的顾客量#defineCUSTOMER_COMING_TIME1000//相邻顾客最大间隔时间intnumber=0;

5、//取号号码intseat_num=10;HANDLEseat,s1,s2,cs1,cs2;//seat等待座位量cs1,cs2等待叫号量s1,s2通知顾客量HANDLEmutex;//互斥量CRITICAL_SECTIONc_seat;DWORDWINAPIserver1(PVOIDs1pv)//营业员(对私)线程代码{while(true){WaitForSingleObject(cs1,INFINITE);//p(&cs1)Sleep(SERVE_TIME);cout<<"对私窗口叫号!"<

6、iticalSection(&c_seat);seat_num++;LeaveCriticalSection(&c_seat);}return0;}DWORDWINAPIserver2(PVOIDs2pv)//营业员(对公)线程代码{while(true){WaitForSingleObject(cs2,INFINITE);//p(&cs2)Sleep(SERVE_TIME);cout<<"对公窗口叫号!"<

7、alSection(&c_seat);}return0;}DWORDWINAPIconsumer1(PVOIDc1pv)//顾客对私线程代码{srand((unsigned)time(0));if((seat_num<=0)&&(rand()%2==1))//顾客去留{cout<<"顾客未等待,离开"<

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

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

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