在生產者和消費者問題中,如果將P操作位置互換,會產生什么結果
2、首先生產者有資格進行生產(即緩沖池中不滿時)他才能放入。假設你讓P(matnet)在前面的話,可能緩沖池是無進程修改的,可是后面P(empty)時若緩沖池是滿的,就沒法再放,它就在等待消費者消費V(empty),進入阻塞態(tài)。
3、)signal可逆原因:對生產者,因為已經(jīng)生產完了,所以先退出mutex臨界區(qū)或者或者對full的數(shù)目加一,都不會產生影響。
4、此時進程不能正常結束,生產者也不能釋放自己現(xiàn)在占用的臨界區(qū)。同時消費者不能獲取訪問臨界區(qū)的權限,這樣就造成了兩個進程出現(xiàn)死鎖的情況。同理:消費者進程中的 wait(full); wait(matex); 也不能互換。
5、生產者缺少signal(full),則全部消費者可能在緩沖區(qū)非空的時候阻塞 當緩沖區(qū)變空時,某個消費者鎖上mutex然后等待full,此時生產者毀在down(mutex)時阻塞,無法填充緩沖區(qū)。
6、p原語對資源進行占有,V原語對資源進行釋放 缺少empty資源信號量,那么只有互斥信號量。