吃水果问题的模拟程序

该博客通过编程实现了一个模拟程序,用信号量机制解决父亲、儿子和女儿吃水果的进程同步问题。利用链表作为缓冲区,指针表示各角色的位置,当盘子为空或满时进行相应的阻塞和唤醒操作。程序运行示例展示了盘子状态和进程调度情况。
摘要由CSDN通过智能技术生成

题目:

有一个盘子,可以放5个水果(苹果or桔子)。父亲每次向盘子随机放入一个水果(苹果or桔子),父亲放入水果的次数不少于11次。儿子只吃桔子,女儿只吃苹果。请编程使用信号量机制模拟解决此进程同步问题。打印信息包括盘子的情况、调度的情况以及父亲、儿子或者女儿执行的操作。



思路描述:

构造一个循环链表来模拟缓冲区的队列,两个移动的指针,一个代表儿子和女儿,一个代表父亲。当出现空盘时阻塞儿子和女儿,当盘子里出现了儿子和女儿要吃的的东西的时候唤醒他们,当盘子满了的时候,阻塞父亲,因为量比较小就没有构造阻塞队列了,直接用了个标志数组。


<span style="font-size:18px;">#include<stdio.h>
#include<time.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值