- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
对于生产者一消费者问题,假设缓冲区是无界的,试用信号灯与PV操作给出解法。
答:由于是无界缓冲区,所以生产者不会因得不到缓冲区而被阻塞,不需要对空缓冲区进行管理,可以去掉在有界缓冲区中用来管理空缓冲区的信号量及其PV操作。
semaphoremutex_in=1;semaphoremutex_out=1;semaphoreempty=0;intin=0,out=0;生产者活动:while(1){
生产者活动:
while(1){
producenextproduct;
P(mutex_in);
addtheproducttobuffer[in];
in++;
v(mutex_in);
V(empty);
}
消费者活动:
while(1){
P(empty);
P(mutex_out);
taketheproductfrombuffer[out]out++;
V(mutex_out);
}
设有一个可以装A、B两种物品的仓库,其容量无限大,但要求仓库中A、B两种物品的数量满足下述不等式:-MWA物品数量一B物品数量WN其中M和N为正整数。试用信号灯和PV操作描述A、B两种物品的入库过程。
答:已知条件-MWA物品数量一B物品数量WN可以拆成两个不等式,即A物品数量一B物品数量WN,B物品数量一A物品数量WM。
这两个不等式的含义是:仓库中A物品可以比B物品多,但不能超过N个;B物品可以比A物品多,但不能超过M个。
semaphorea=n;semaphoreb=m;voidmain(){createprocess(A,…);createprocess(B,…);}A物品入库:B物品入库:
voidA(){voidB(){while(1){while(1){P(a);A
P(a);
A物品入库;
V(b);
}
P(b);
B物品入库;
V(a);
}
试用信号灯与PV操作实现司机与售票员之间的同步问题。设公共汽车上有一个司机和一个售票员,其活动如下图所示。
为了安全起见,显然要求:(1)关车门后方能启动车辆;(2)到站停车后方能开车门。亦即“启动车辆”这一活动应当在“关车门”这一活动之后,“开车门”这一活动应当在“到站停车”这一活动之后。
解:如果进程P2尚未推进到②处时,进程P1已经推进到①处,则P1应等待直到P2推进到②处为止;同样,如果进程P1尚未推进到③处时,进程P2已经推进到④处,则P2应等待直到P1推进到③处为止。如果进程P1在①处发生了等待,则当进程P2执行到②处时应将P1唤醒;同样,如果进程P2在④处发生了等待,则当进程P2执行到③处时应将P1唤醒。用信号量和P、V操作解决这一问题,需要定义两个信号量,一个信号量start表示是否允许司机启动车辆,另一个信号量open表示是否允许售票员开车门。初始状态是车停在始发站,车门开着,等待乘客上车。因此,两个信号量的初值都是0。
semaphorestart=0;
semaphoreopen=0;
司机的活动:
售票员的活动:
P1:do{
P2:do{
P(start);
关车门;
启动车辆;
V(start);
正常行车;
售票
;
到站停车;
P(open);
V(open);
开车门;
}while(1);
}while(1);
设有A、B、C三组进程,它们互斥地使用某一独占型资源R,使用前申请,使用后释放。资源分配原则如下:
当只有一组申请进程时,该组申请进程依次获得R;当有两组申请进程时,各组申请进程交替获得R,组内申请进程依次获得R;当有三组申请进程时,各组申请进程轮流获得R,组内申请进程依次获得R。
试用信号灯和PV操作分别给出各组进程的申请活动程序段和释放活动程序段。
解:
intfree=1;
设自行车生产线上有一只箱子,其中有N个位置(NN3),每个位置可存放一个车架或一个车轮;又设有三个工人,其活动分别为:
工人1活动:
工人2活动:
工人3活动:
do{
do{
do{
加工一个车架;
加工一个车轮;
箱中取一车架;
车架放入箱中;
车轮放入箱中;
箱中取二车轮;
}while(1)
}while(1)
组装为一台车;}while(1)
试分别用信号灯与PV操作、管程、会合实现三个工人的合作,要求解中不含死锁。
解:用信号灯与PV操作实现三个工人的合作,管程与会合解法可仿照给出。
首先不考虑死锁问题,工人1与工人3、工人2与工人3构成生产者与消费者关系,这两对生产/消费关系通过共同的缓冲区相联系。从资源的角度来看,箱子中的空位置相当于工人1和工人2的资源,而车架和车轮相当于工人3的资源。定义三个信号灯如下:
semaphoreempty=N;一座小桥(最多只能承重两个人)横跨南北两岸,任意时刻同一方向只允许一人过桥,南侧桥段和北侧桥段较窄只
您可能关注的文档
- 推进渭北工业园区建设的财税政策建议.docx
- 推进科技企业孵化器发展40模式的思考.docx
- 推销人员从业素质分析.docx
- 掼蛋比赛分组表.docx
- 描写夏天的雨的好段.docx
- 描写心情开心的成语.docx
- 描写暴雨的好词好句.docx
- 描写植物的好词好句好段.docx
- 提升供应商质量管理方案.docx
- 提升基层治理能力的四个关键.docx
- 2023年防滑垫行业分析报告及未来五至十年行业发展报告.docx
- 2023年汽车防锈行业分析报告及未来五至十年行业发展报告.docx
- 2023年电视转播车行业市场需求分析报告及未来五至十年行业预测报告.docx
- 2023年汽车空调器产品行业洞察报告及未来五至十年预测分析报告.docx
- 2023年脉冲电磁阀行业市场突围建议及需求分析报告.docx
- 2023年铸铁及相关金属制卫生、厨房器具、餐具行业洞察报告及未来五至十年预测分析报告.docx
- 2023年社会养老保障服务行业分析报告及未来五至十年行业发展报告.docx
- 2023年酒精测试仪行业市场需求分析报告及未来五至十年行业预测报告.docx
- 2023年钻机行业市场突围建议及需求分析报告.docx
- 2023年特殊功能的微生物制剂缓释新型肥料行业分析报告及未来五至十年行业发展报告.docx
文档评论(0)