在某个十字路口,每个车道只允许一辆汽车通过,且允许直行、左拐和右拐,如图1所示。如果把各个方向的车看成进程,则需要对这些进程进行同步,那么这里临界资源个数至少应该有( )个。

admin2019-05-10  39

问题 在某个十字路口,每个车道只允许一辆汽车通过,且允许直行、左拐和右拐,如图1所示。如果把各个方向的车看成进程,则需要对这些进程进行同步,那么这里临界资源个数至少应该有(  )个。

选项 A、1
B、2
C、4
D、不确定

答案C

解析
    不妨如上图所示,把十字路口车道的公共区域分为4块,分别为图上的1、2、3、4,直行的车辆需要获得该方向上的两个邻近的临界资源,如北方开来的车辆需要获得1、2两个临界资源。南方开来的车需要获得3、4两个临界资源。而往右转的车辆则只需要获得一个临界资源,比如北方来车右转的情况需要获得1这个临界资源。左转的情况需要获得3个临界资源,比如北方来车左转组需要l、2、3号临界资源。综上所述,4个临界资源便可以很好地保证车子不相撞(即互斥的效果)。当然只用4个信号量还是很容易造成死锁的,不过这并不是本题要考虑的问题,题目中问到的是至少用几个信号量。
    也可以用排除法来做该题,该路口可以有南北方向车同时直行,所以临界资源个数大于或等于2,排除A。该路口可以4个方向车都左转,所以临界资源个数大于或等于4,排除B。D选项通常不会选,所以选C。
转载请注明原文地址:https://jikaoti.com/ti/DbGjFFFM
0

最新回复(0)