互動式系統中的排程

2021-10-10 21:23:48 字數 1020 閱讀 5589

1.輪轉排程

每個程序被分配乙個時間段,稱為時間片(quantum),即允許該程序在該時間段中執行。如果在時間片結束時該程序還在執行,則將剝奪cpu並分配給另乙個程序。如果該程序在時間片結束前阻塞或結束,則cpu立即進行切換。

時間片輪轉排程很容易實現,排程程式所要做的就是維護一張可執行程序列表,如圖2-4la所示。當乙個程序用完它的時間片後,就被移到佇列的末尾,如圖2-41b所示。

2.優先順序排程

輪轉排程做了乙個隱含的假設,即所有的程序同等重要,而優先順序排程中要求每個程序被賦予乙個優先順序,允許優先順序最高的可執行程序先執行。

可以很方便地將一組程序按優先順序分成若干類,並且在各類之間採用優先順序排程,而在各類程序的內部採用輪轉排程。圖2-42給出了乙個有4類優先順序的系統,其排程演算法如下:只要存在優先順序為第4類的可執行程序,就按照輪轉法為每個程序執行乙個時間片,此時不理會較低優先順序的程序。若第4類程序為空,則按照輪轉法執行第3類程序。若第4類和第3類均為空,則按輪轉法執行第2類程序。如果不偶爾對優先順序進行調整,則低優先順序圖2-42有4個優先順序類的排程演算法程序很可能會產生飢餓現象。

3.多級佇列

對於低優先順序程序飢餓問題,解決辦法是設立優先順序類。屬於最高優先順序類的程序執行乙個時間片,屬於次高優先順序類的程序執行2個時間片,再次一級執行4個時間片,以此類推。當乙個程序用完分配的時間片後,它被移到下一類。

作為乙個例子,考慮有乙個程序需要連續計算100個時間片。它最初被分配1個時間片,然後被換出,下次它將獲得2個時間片,接下來分別是4、8、16、32和64。當然最後一次它只使用64個時間片中的37個便可以結束工作,該程序需要7次交換(包括最初的裝入),而如果採用純粹的輪轉演算法則需要100次交換。而且,隨著程序優先順序的不斷降低,它的執行頻度逐漸放慢,從而為短的互動程序讓出cpu,

互動式作業系統的排程演算法

1.先進先出 先就緒的程序先執行,也就是批處理的系統的先來先服務演算法 2.時間片輪轉排程 將處理器的時間分成slice分配給每個程序,週期性切換。注 slice太大將會退化成,先進先出演算法 silce太小,處理的時間全部浪費在排程上,資源浪費大 缺點 對i o程序不太公平,總是用不完時間片,就放...

互動式系統(MVC模式)

控制器在其事件處理過程中接受使用者輸入 對事件進行解讀並啟用模型的服務過程。模型執行請求的服務,導致其內部資料發生變化。模型通知所有向變更傳播機制註冊了的檢視和控制器,即呼叫他們的更新過程。每個檢視都向模型請求修改後的資料,並在螢幕上重新顯示自己。每個已註冊的控制器都從模型 獲取資料,以啟用或禁用某...

互動式介面

互動式介面 啟動終端後,在終端裝置附加乙個互動式應用程式 runlevel 顯示當前執行的模式 root vm 163 113 centos runlevel n 3init 3 切換至命令列 init 0 停機 千萬不能把initdefault 設定為0 init 1 單使用者模式 init 2 ...