在我的理解中,當時間片(例如1毫秒時間片)使調度程序(OS的)傳遞給CPU時,搶先式多任務就是這種情況)將一個線程連接到CPU一段特定的時間(本例中爲1毫秒),然後切換到另一個線程(執行它1毫秒,然後切換回第一個線程,依此類推 - 假設只有兩個線程爲簡單起見)。 參考:https://www.youtube.com/watch?v=hsERPf9k54U線程 - 優先級突發事件與優先級
與先發制人的多任務處理不同的是優先級的概念 - 操作系統設置數字的應用程序的優先級,例如, 1至39等,無論如何 - 這不是現在的問題。
而這樣做的好處是,如果一個應用程序掛起,時間切片器會簡單地返回到另一個線程(假設該線程屬於不同的應用程序,並且第一個應用程序已被掛起)並繼續正常工作。然後你可以關閉掛起的應用程序。 參考:https://www.youtube.com/watch?v=hsERPf9k54U
現在我不認爲這是這種多任務處理的優勢。它在搶先式多任務中應該是同樣的事情,不是嗎?
預先感謝您。
搶先式多任務處理是一種將線程與其需要的資源進行匹配的方法,例如, CPU,磁盤,網卡,KB,鼠標。大多數這樣的系統都有一個定時器驅動程序,如果機器過載了只等CPU的線程,可能會導致搶佔。比內核更容易準備的線程。先發制人的設計並不是爲了準備就緒的線程之間的「時間片」而開發的,它們被設計爲提供良好的I/O性能。如果這種盒子在就緒線程之間經常「時間分割」,則它過載並且操作效率低下。 –
基於線程優先級對日程進行操作也會動態調整線程的優先級,這取決於他們沒有機會執行的時間。這解決了優先級反轉問題並提供了一種實現循環調度的方法。 –
@HansPassant - 我們之間,應該包括它,我希望。看來,OP一直在閱讀/查看錯誤的網站。毫不奇怪,有這麼多人:( –