看板 Grad-ProbAsk 關於我們 聯絡資訊
作者: ai305428d (可愛小小羅) 看板: Grad-ProbAsk 標題: [理工] [os] 關於priority inversion 時間: Mon Feb 7 00:19:46 2011 Can priority inversion problems occur with user-level threads? Can priority inversion problems occur with kernel-level threads? For each question, explain why or why not. ---------------------------------------------------------------------- 另外想請問一下,如果說在 preemptive 機制下是不是就不會發生 priority inversion 的問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.255.11.6 ※ 編輯: ai305428d 來自: 111.255.11.6 (02/07 00:21)
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