[理工] 作业系统

楼主: poyao (嘎呗)   2014-07-21 00:05:25
今天上洪逸的课时
讲到Hardware Instruction Support的第二个算法时
他说如果把算法中waiting[i]=False;删掉会如何?
在笔记里有说违反Progress<i><ii>
但是他说违反<i>是因为Pj离开C.S时会侦测到Pi想进入C.S
所以Pj会把改变waiting[i]为false而lock仍维持true
然而Pi不想进入C.S
已违背Progress<i>
但是我发现等Pj出了C.S后侦测到Pi时
不是有个判断if(j==i)lock=false;
所以这个地方应该是先把lock改为false
而不是把waiting[i]改为false
请问是老师讲错了?
还是有其他解释为何违反progress的方法?

Links booklink

Contact Us: admin [ a t ] ucptt.com