题目
【填空题】应用记录型信号量解决实际问题:桌子上有一只盘子,每次只能放入或取出一个水果。爸爸专向盘子里放苹果,妈妈专向盘子里放桔子。儿子专等吃盘子中的苹果,女儿专等吃盘子中的桔子。请用wait、signal操作来实现爸爸、妈妈、儿子、女儿之间进程同步。互斥 mutex =1爸爸和儿子的合作信号a=0妈妈和女儿的合作信号o=0爸爸 妈妈 儿子 女儿剥苹果 剥桔子 wait(a) wait(o) wait(填空1) wait(mutex) 取苹果 取桔子放苹果 放桔子signal(填空4) signal(mutex)signal(填空2) signal(填空3) 吃 吃请注意 ,这里有多个填空,请按照顺序填写答案,中间用/隔开,比如:S/M/mutex
【填空题】应用记录型信号量解决实际问题:桌子上有一只盘子,每次只能放入或取出一个水果。爸爸专向盘子里放苹果,妈妈专向盘子里放桔子。儿子专等吃盘子中的苹果,女儿专等吃盘子中的桔子。请用wait、signal操作来实现爸爸、妈妈、儿子、女儿之间进程同步。互斥 mutex =1爸爸和儿子的合作信号a=0妈妈和女儿的合作信号o=0爸爸 妈妈 儿子 女儿剥苹果 剥桔子 wait(a) wait(o) wait(填空1) wait(mutex) 取苹果 取桔子放苹果 放桔子signal(填空4) signal(mutex)signal(填空2) signal(填空3) 吃 吃请注意 ,这里有多个填空,请按照顺序填写答案,中间用/隔开,比如:S/M/mutex
题目解答
答案
mutex/a/o/mutex
解析
步骤 1:确定互斥信号量
互斥信号量 mutex = 1,用于确保爸爸和妈妈在放水果时互斥地访问盘子,儿子和女儿在取水果时互斥地访问盘子。
步骤 2:确定合作信号量
爸爸和儿子的合作信号 a = 0,用于确保儿子在吃苹果前等待爸爸放苹果。
妈妈和女儿的合作信号 o = 0,用于确保女儿在吃桔子前等待妈妈放桔子。
步骤 3:确定进程操作
爸爸放苹果时,需要先等待合作信号 a,然后等待互斥信号量 mutex,放苹果后,释放互斥信号量 mutex,然后释放合作信号 a。
妈妈放桔子时,需要先等待合作信号 o,然后等待互斥信号量 mutex,放桔子后,释放互斥信号量 mutex,然后释放合作信号 o。
儿子取苹果时,需要先等待合作信号 a,然后等待互斥信号量 mutex,取苹果后,释放互斥信号量 mutex,然后释放合作信号 a。
女儿取桔子时,需要先等待合作信号 o,然后等待互斥信号量 mutex,取桔子后,释放互斥信号量 mutex,然后释放合作信号 o。
互斥信号量 mutex = 1,用于确保爸爸和妈妈在放水果时互斥地访问盘子,儿子和女儿在取水果时互斥地访问盘子。
步骤 2:确定合作信号量
爸爸和儿子的合作信号 a = 0,用于确保儿子在吃苹果前等待爸爸放苹果。
妈妈和女儿的合作信号 o = 0,用于确保女儿在吃桔子前等待妈妈放桔子。
步骤 3:确定进程操作
爸爸放苹果时,需要先等待合作信号 a,然后等待互斥信号量 mutex,放苹果后,释放互斥信号量 mutex,然后释放合作信号 a。
妈妈放桔子时,需要先等待合作信号 o,然后等待互斥信号量 mutex,放桔子后,释放互斥信号量 mutex,然后释放合作信号 o。
儿子取苹果时,需要先等待合作信号 a,然后等待互斥信号量 mutex,取苹果后,释放互斥信号量 mutex,然后释放合作信号 a。
女儿取桔子时,需要先等待合作信号 o,然后等待互斥信号量 mutex,取桔子后,释放互斥信号量 mutex,然后释放合作信号 o。