什麼是作業系統中的程序排程程式?
程序排程程式是作業系統的一部分,負責排程程序。如果程序處於就緒、等待和執行狀態,它會正確地排程它,並且還負責在一段時間內將 CPU 處理器分配給特定任務。
此外,當任務或程序完成後,它不會讓 CPU 處於空閒狀態。它將根據其當前狀態分配其他任務。如果程序處於就緒狀態,它將將其分配給 CPU,這樣它始終保持 CPU 繁忙。
良好程序排程程式的特徵
良好程序排程程式的特徵如下:
它透過始終分配就緒狀態的程序來提高 CPU 的利用率。
它具有靈活性,您可以輕鬆更改您的計劃。
它允許您重新訪問或審查您的專案。
透過使用它,您可以嚴格遵守截止日期。**例如**,如果您有一個專案的截止日期為 9 月 10 日,那麼您可以將截止日期設定為 9 月 10 日下午 6 點或任何時間。
此外,任務不是孤立的;您可以清楚地看到它們之間的關係或它們如何相互關聯。
排程類別
排程有兩個主要類別。如下所示:
搶佔式排程
這意味著 CPU 在另一個低優先順序任務之前執行一個具有更高優先順序的任務,而不管低優先順序任務是否正在執行。此時,低優先順序任務會暫停一段時間,並在高優先順序任務完成執行後恢復。
非搶佔式排程
在這種型別的排程技術中,CPU 已分配給特定程序。使 CPU 保持繁忙的程序將透過切換上下文或終止來釋放 CPU。
這是可以用於各種硬體平臺的主要策略。這是因為它不需要像搶佔式排程那樣需要特殊的硬體(例如時鐘)。
當程序完全進入等待狀態或終止時,就會發生非搶佔式排程。
主要區別
搶佔式和非搶佔式排程之間的主要區別如下:
在搶佔式排程中,處理器分配給程序的時間是固定的,而在非搶佔式排程中,處理器分配給程序直到其完成。
在搶佔式排程中,任務是根據優先順序切換的,而在非搶佔式排程中,不會發生切換。
搶佔式演算法有將程序從就緒狀態移動到執行狀態的開銷,而非搶佔式排程則沒有這種開銷。
雖然非搶佔式排程是靜態的,但搶佔式排程是靈活的。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP