→ aoqq12:1.false 2.true 3.與preemptive無關 02/07 00:22
→ ai305428d:可是發生的原因不是因為高優先權所需要的resource 02/07 00:29
→ ai305428d:被低優先權的所把持造成高優先要等低優先完成嗎? 02/07 00:29
→ ai305428d:那如果允許preemptive 是不是高優先可以不等低優先做完 02/07 00:30
→ ai305428d:就把resource搶過來? 02/07 00:30
→ YankSC:我記得的是必須允許preemptive才是 02/07 00:30
→ aoqq12:preemptive是指cpu 02/07 00:32
→ YankSC:因為priority等待低優先權存取的是「資源」而不是順序 02/07 00:32
→ YankSC:若是需要的資源剛好在CS內存取 當然不能隨便搶 02/07 00:33
→ ai305428d:喔喔\= = 02/07 00:33
→ YankSC:若不允許Preemptive,則scheduler會排在後面,應該不會久等 02/07 00:34
→ YankSC:就是因為允許Preemptive所以才會發生inversion... 個人想法 02/07 00:35
→ ai305428d:恩恩 = = 我之前徹底弄混了 02/07 00:36
→ aoqq12:樓上正解 02/07 00:36
→ aoqq12:不過 priority inversion會發生的原因主要是因為 02/07 00:37
→ aoqq12:允許preemptive 需要提供完整的mutual execlusion 02/07 00:38
→ aoqq12:也就是synchronization 機制 才會出現這問題 02/07 00:38
→ aoqq12:英文打錯 exclusion 02/07 00:39
→ ai305428d:謝謝兩位大大~^^ 02/07 00:42
→ dy957:請問那個false,true要怎麼判斷呀!? 02/07 00:58
→ ai305428d:應該是因為在user-level層面,thread不具preemptive吧 02/07 01:22