交大OS 95成大OS

楼主: kaidi620 (万能屎哥)   2019-01-29 20:01:52
想请问一下,各位大神,可以清楚的说明的越详细越好吗,因为这个问题困扰小弟很久了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可以以是否为循环为判断,但不一个会不会阻碍另外一个这个要怎么
判断呢?请大神指教感谢。
作者: rockieloser (友善大队长)   2019-01-29 21:08:00
Algo1中 一个要进去只能靠另一个帮忙我不帮你改=我没要进去C.S. 但另一个就进不去了这样就是阻碍到了别人了Algo3是哪边不懂? 因为概念差不多
楼主: kaidi620 (万能屎哥)   2019-01-30 19:32:00
所以是那一个 turn=j 是帮别人改的意思吗 大神没有拉 因为我不太懂QAQ可以问一下那第一题为什么不满足 bounded waiting吗大
作者: Leaving   2019-01-30 22:58:00
就试试看同一支process有没有办法连续进去CS两次(在另一支process想要进去的前提下)如果可以就违反这种题目通常同时只会有一个process在running state所以释出lock后另一个process不一定会抢到 可能还在ready上面在说bounded waitingprogress就看 若里面没人 是不是可以进去这时要讨论两种case1 另一个人没有要进去 2另一个人也要进去若都一定有人可以进得去就满足turn想像成门的钥匙 turn=j就是i把钥匙丢给j了假设现在CS是空的 i想要进去 就开始讨论上面两种情况看会不会有进不去的状况(啊现在在说成大的algo 1)1.j没有要进去 可是turn可能在j那里 所以i进不去 就违反了algo3也是差不多的讨论法

Links booklink

Contact Us: admin [ a t ] ucptt.com