2014-03-19 77 views
0

在我的理解中,當時間片(例如1毫秒時間片)使調度程序(OS的)傳遞給CPU時,搶先式多任務就是這種情況)將一個線程連接到CPU一段特定的時間(本例中爲1毫秒),然後切換到另一個線程(執行它1毫秒,然後切換回第一個線程,依此類推 - 假設只有兩個線程爲簡單起見)。 參考:https://www.youtube.com/watch?v=hsERPf9k54U線程 - 優先級突發事件與優先級

與先發制人的多任務處理不同的是優先級的概念 - 操作系統設置數字的應用程序的優先級,例如, 1至39等,無論如何 - 這不是現在的問題。

而這樣做的好處是,如果一個應用程序掛起,時間切片器會簡單地返回到另一個線程(假設該線程屬於不同的應用程序,並且第一個應用程序已被掛起)並繼續正常工作。然後你可以關閉掛起的應用程序。 參考:https://www.youtube.com/watch?v=hsERPf9k54U

現在我不認爲這是這種多任務處理的優勢。它在搶先式多任務中應該是同樣的事情,不是嗎?

預先感謝您。

+0

搶先式多任務處理是一種將線程與其需要的資源進行匹配的方法,例如, CPU,磁盤,網卡,KB,鼠標。大多數這樣的系統都有一個定時器驅動程序,如果機器過載了只等CPU的線程,可能會導致搶佔。比內核更容易準備的線程。先發制人的設計並不是爲了準備就緒的線程之間的「時間片」而開發的,它們被設計爲提供良好的I/O性能。如果這種盒子在就緒線程之間經常「時間分割」,則它過載並且操作效率低下。 –

+1

基於線程優先級對日程進行操作也會動態調整線程的優先級,這取決於他們沒有機會執行的時間。這解決了優先級反轉問題並提供了一種實現循環調度的方法。 –

+1

@HansPassant - 我們之間,應該包括它,我希望。看來,OP一直在閱讀/查看錯誤的網站。毫不奇怪,有這麼多人:( –

回答

1

先佔式,多任務和優先級(調度)是操作系統概念的不同方面。

在進程調度的情況下,搶先式是一種策略,即操作系統無論何時(操作系統)需要時都可以搶佔分配給進程的資源。相比之下,非搶先式調度策略不能搶佔(收回)資源,直到過程完成使用並釋放它們。

優先級調度算法可以用搶先式或非搶先式策略來實現。