-1
我试图围绕信号量和他们如何工作,但无济于事。我对一个任务有一个疑问信号量算法的可能输出
考虑下面显示的信号量算法。
semaphore S <- 1, T <- 0
p q
p1: wait (S) q1: wait (T)
p2: write (“p”) q2: write (“q”)
p3: signal (T) q3: signal (S)
a. What are the possible outputs for this algorithm?
有人能带我正确的方向找出如何解决这个问题吗?
由于值递减不会输出为“ppq”,因为它先用p,那么S将被设置为0,再次运行p,然后解除q和q的运行? – ryandonohue
我明白在伪代码中没有循环。如果你的意思是p和q都在(真)永久循环中运行,那么你总是会得到“pqpqpq ...”。这是因为p线程将在第二次调用中阻塞以等待(S),直到线程q在写入“q”之后调用信号(S)。 –