如果是互斥信号量的话,应该设置信号量S=1,但是当有5个进程都访问的话,最后在该信号量的的链表里会有4个在等待,也就是说S=-4,那么第一个进程执行了V操作是S加1,释放了资源,下一个应该能够执行,但唤醒的这个进程在执行P操作时以为S<0,也还是执行不了,这是怎么回事?
是不是分析错了?
问题来自:百度百科名片:PV操作
解答没看懂!
信号量是对资源的计数,你这里S=1,说明只有一个资源。同时有5个进程访问。你不需要把S=-4,这不是在计数资源。
s=1表示互斥信号量,当s=-4时,含义就变了,表示有四个在等待的进程。