作者qazws3483 (oldguy)
看板Grad-ProbAsk
标题[理工] OS semaphore
时间Thu Sep 13 15:05:22 2018
https://i.imgur.com/r8Xppxm.jpg
https://i.imgur.com/PRkEZJ6.jpg
假设c<0
这样程式不是就会卡在wait (s2)
无法执行其他程式
这样要怎麽 如何用signal (s2)解开?
谢谢各位
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.217.169.88
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1536822324.A.075.html
2F:→ qazws3483: 成deadlock 呢 09/13 15:13
3F:推 wilson50101: wait(mutex) 09/13 16:08
4F:→ wilson50101: c.s 09/13 16:08
5F:→ wilson50101: wait(mutex) 09/13 16:08
6F:→ wilson50101: 这样一来没有signal救人把mutex+1 09/13 16:08
7F:→ wilson50101: 後面想进来c.s的process全部都会卡住形成deadlock 09/13 16:08
8F:→ wilson50101: code写两遍 pi pj来trace比较好懂 09/13 16:08
9F:→ qazws3483: 谢谢wilson大 下面的懂了 09/14 00:02
10F:推 alen0303: 被卡在wait(s2)前会先执行signal(s1) 09/14 18:44
11F:→ alen0303: 所以signal不会卡在wait(s1) 能通过条件式执行signal(s2 09/14 18:47