假定系统中有这样一个任务在执行:
FOREVER { semTake (semId, WAIT_FOREVER); printf (“Got the semaphore\n”); }
其优先级为100。由于它无法获取信号量,因此被阻塞。此时,在shell命令行下输入以下命令:
-> repeat(1, semGive, semId)
可以得到几次打印输出?
如果输入以下命令:
-> repeat(2, semGive, semId)
又能得到几次打印输出?
可以得到几次打印输出?
如果输入以下命令:
-> repeat(3, semGive, semId)
又能得到几次打印输出?
答案不是“一次,一次,一次”,也不是“一次,两次,三次”。
各位高手来看看!