作者leekevinming (chunk)
看板Grad-ProbAsk
标题[理工] OS test-and-set问题
时间Wed Dec 12 21:50:08 2018
先附上 test-and-set 用来改善 bounded-waiting 的 code
https://imgur.com/a/H4YkMyf
而这是恐龙书上面写的某段话
https://imgur.com/a/pFIuods
上面那里我用蓝笔画起来的那段话我一直不能理解
为什麽只有一个 waiting[i] 的值能被设成 false?
不是很多 process 的 waiting[i] 都可以是 false 吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.113.136.218
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1544622610.A.E68.html
1F:→ springleaf1: 如果多个Process Waiting[i]为False,则唯一性就没了 12/12 22:13
2F:→ springleaf1: 这种情况会让互斥不成立 12/12 22:14
3F:→ springleaf1: 那些被设定成False的,通通可以进入Critical Section 12/12 22:38
4F:→ springleaf1: 设定False的唯一办法就是抢到Lock 12/12 22:47
5F:推 skyHuan: 借版问一下test and set到底是不是特权指令XD 洪逸好像 12/13 03:02
6F:→ skyHuan: 说不是但网路查到的资料几乎都说是 12/13 03:02
7F:推 Dora5566: 笔记好像没提到是不是,刚查到106中央有讨论说是特权 12/13 07:14
8F:→ DLHZ: 我认为必须是 12/13 09:42
9F:推 kobebset105: 修正一下b1讲的 12/14 09:43
10F:→ kobebset105: 可以多个waiting[i]为false 12/14 09:44
11F:→ kobebset105: 只是只能同时有一个waiting[i]被刚做完critical sess 12/14 09:45
12F:→ kobebset105: ion的process 设为false 12/14 09:45
13F:→ springleaf1: 照这Code的设计,不可能有多个False出现才对 12/14 10:54
14F:→ springleaf1: 到底要怎样的执行情形才会出现多个False的状况? 12/14 10:55
15F:→ springleaf1: 是前面几个Process执行完後没从Waiting Queue退出来? 12/14 11:00
16F:→ leekevinming: 我是想说假如已经有一些process执行完CS之後出来了 12/15 23:32
17F:→ leekevinming: 然後他们已经进入Remainder section 但是他们各自的 12/15 23:33
18F:→ leekevinming: 的waiting值自从进入CS之前被设成false之後就没有被 12/15 23:34
19F:→ leekevinming: 更动过了 所以这些在RS的process他们的waiting值应 12/15 23:36
20F:→ leekevinming: 该都会是false才对 12/15 23:36