搶占式多任務

在以前的作業系統中,如windows 3.1,多任務方式是“協作式多任務”,意思是說一個任務得到了 CPU 時間,除非它自己放棄使用 CPU ,否則將完全霸占 CPU ,所以任務之間需要協作——使用一段時間的 CPU ,放棄使用,其它的任務也如此,才能保證系統的正常運行;而在現行使用的作業系統中,如Window 95及之後的Windows版本,使用的就是“非搶占式多任務”了,它的總控制權在作業系統手中,作業系統會輪流詢問每一個任務是否需要使用 CPU ,需要使用的話就讓它用,不過在一定時間後,作業系統會剝奪當前任務的 CPU 使用權,把它排在詢問佇列的最後,再去詢問下一個任務……。這種方式上的不同造成 95 和 3.1 性能上的不同:3.1 中如果有一個任務死鎖,則系統也同樣死鎖;95 中有一個任務死鎖,系統仍能正常運行。
具有最高優先權的執行緒就是當前正在運行的那個執行緒。駐留在CPU內正在運行的執行緒會在什麼時候中止呢?一是屬於它的時間片已經到期,二是加入了另一個優先權更高的執行緒。通過不斷從一個執行緒到另一個執行緒的切換,給人的感覺是執行緒的執行是同時進行的。執行緒並非隨時需要運行,經常發生的情況是某個執行緒需要等待用戶的輸入,另一個執行緒的信息或等待I/O請求,否則便無法執行下去。有些執行緒也許本來就處於掛起狀態
----在搶占式多任務系統中,作業系統必須具有從任何一個運行的程式上取走控制權和使另一個程式獲得控制權的能力。一個搶占式系統下運行的應用程式不用擔心獨占系統,因為系統會合理地給每個運行的任務分配時間塊。將這種系統稱做搶占式系統是因為它不管在所給時間塊內會發生什麼事,都搶占運行程式的控制權。OS/2和UNIX都是搶占式系統。

相關詞條

相關搜尋

熱門詞條

聯絡我們