计算机系统中的进程之间往往需要相互协作以完成一个任务,在某网络系统中缓冲区B用于存放一个数据分组,对B的操作有C1、C2和C3。C1将一个数据分组写入B中,C2从B中读出一个数据分组,C3对B中的数据分组进行修改。要求B为空时才能执行C1,B非空时才能执行C2和C3。请回答下列问题。
(1)假设进程P1和P2均需执行C1,实现C1的代码是否为临界区?为什么?(2分)
(2)假设B初始为空,进程P1执行C1一次,进程P2执行C2一次。请定义尽可能少的信号量,并用wait(),signal()操作描述进程P1、P2之间的同步或互斥关系,说明所用信号量的作用及初值。(3分)
(3)假设B初始不为空,进程P1和P2各执行C3一次,请定义尽可能少的信号量,并用wait()、signal()操作描述进程P1和P2之间的同步或互斥关系,说明所用信号量的作用及初值。(3分)
查看答案和解析【26考研辅导课程推荐】:26考研集训课程,VIP领学计划,26考研VIP全科定制套餐(公共课VIP+专业课1对1) , 这些课程中都会配有内部讲义以及辅导书和资料,同时会有教研教辅双师模式对大家进行教学以及督学,并配有24小时答疑和模拟测试等,可直接咨询在线客服老师领取大额优惠券。
启航教育热门私房课
MORE