作者kaidi620 (万能史哥)
看板Grad-ProbAsk
标题交大OS 95成大OS
时间Tue Jan 29 20:01:52 2019
想请问一下,各位大神,可以清楚的说明的越详细越好吗,因为这个问题困扰小弟很久了QA
Q
https://i.imgur.com/hUpOlEb.jpg
(1)小弟的想法是设i已经进去了,但因为lock被i的1替换掉,所以j卡在while里面。
当i执行到lock为0时,j立马可以跑出去while, 这样不就满足bounded waiting了吗?(答
案是不满足bounded waiting)
https://i.imgur.com/rO30pfs.jpg
https://i.imgur.com/RwkFkk9.jpg
(2)接下来是成大这题的 algorithm(1) algorithm(3)的其中progress不懂写的是什麽意
思。可以请大神讲的越详细越好吗谢谢。
(3)我知道progress可以以是否为回圈为判断,但不一个会不会阻碍另外一个这个要怎麽
判断呢?请大神指教感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 110.28.227.242
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1548763315.A.6B2.html
1F:→ rockieloser: Algo1中 一个要进去只能靠另一个帮忙 01/29 21:08
2F:→ rockieloser: 我不帮你改=我没要进去C.S. 但另一个就进不去了 01/29 21:10
3F:→ rockieloser: 这样就是阻碍到了别人了 01/29 21:10
4F:→ rockieloser: Algo3是哪边不懂? 因为概念差不多 01/29 21:12
5F:→ kaidi620: 所以是那一个 turn=j 是帮别人改的意思吗 大神 01/30 19:32
6F:→ kaidi620: 没有拉 因为我不太懂QAQ 01/30 19:33
7F:→ kaidi620: 可以问一下那第一题为甚麽不满足 bounded waiting吗大 01/30 19:43
8F:→ Leaving: 就试试看同一支process有没有办法连续进去CS两次 01/30 22:58
9F:→ Leaving: (在另一支process想要进去的前提下) 01/30 22:58
10F:→ Leaving: 如果可以就违反 01/30 22:59
11F:推 Leaving: 这种题目通常同时只会有一个process在running state 01/30 23:02
12F:→ Leaving: 所以释出lock後另一个process不一定会抢到 可能还在ready 01/30 23:04
13F:→ Leaving: 上面在说bounded waiting 01/30 23:11
14F:→ Leaving: progress就看 若里面没人 是不是可以进去 01/30 23:12
15F:→ Leaving: 这时要讨论两种case 01/30 23:13
16F:→ Leaving: 1 另一个人没有要进去 2另一个人也要进去 01/30 23:13
17F:→ Leaving: 若都一定有人可以进得去就满足 01/30 23:14
18F:→ Leaving: turn想像成门的钥匙 turn=j就是i把钥匙丢给j了 01/30 23:23
19F:→ Leaving: 假设现在CS是空的 i想要进去 就开始讨论上面两种情况看会 01/30 23:26
20F:→ Leaving: 不会有进不去的状况 01/30 23:26
21F:→ Leaving: (啊现在在说成大的algo 1) 01/30 23:27
22F:→ Leaving: 1.j没有要进去 可是turn可能在j那里 所以i进不去 就违反 01/30 23:28
23F:→ Leaving: 了 01/30 23:28
24F:→ Leaving: algo3也是差不多的讨论法 01/30 23:30
25F:→ kaidi620: 好的谢谢大神 02/07 20:24