不同到達時間的迴圈輪詢排程
作業系統的排程演算法用於將輸入程序排程到相應的處理器。程序排程程式具有分配許可權,可以根據任何一種排程演算法來決定啟動哪個程序的執行。任何使用CPU資源的執行狀態程序都可以被搶佔,並且根據優先順序(在基於優先順序的演算法中)選擇就緒佇列中的其他程序進行執行。
搶佔式演算法為具有更高優先順序的程序提供對CPU的訪問,如果任何其他正在以較低優先順序執行的程序,則會搶佔它。但在非搶佔式排程的情況下,當初始程序進入執行狀態時,即使更高優先順序的程序處於就緒狀態,它也不能被搶佔。
迴圈輪詢演算法
該演算法也是搶佔式的,其中每個程序使用固定數量的時間片或量子進行執行。對於每個程序,在給定的時間片之後,如果它有剩餘的突發時間需要執行,則處理器將啟動程序傳送到佇列的末尾,並且就緒狀態的其餘程序將按照先到先服務 (FCFS) 模式進行服務。
以下是RR演算法的關鍵功能:
它被認為是一種有效的演算法,因為它不會進入飢餓模式,因為所有程序都會獲得其CPU時間。
在執行狀態期間被搶佔並且具有剩餘執行時間的程序被移動到佇列的末尾。
時間片或量子應定義為最小值,並且對於使用者的各種作業系統可能有所不同。
RR演算法的工作方式是時鐘驅動模型,在搶佔階段之後使用FCFS時採用混合方法。
上下文切換技術用於儲存其執行過程中被搶佔的程序狀態。
它主要由傳統作業系統因其快速簡單的使用方法而使用。
它是一種流行的程序,它以指定的時間片響應給定事件,因此被稱為即時演算法。
迴圈輪詢排程演算法的工作原理
所有給定的程序根據到達時間進入就緒佇列。
當第一個程序進入執行狀態時,其他程序都在就緒佇列中等待第一個程序完成其執行。
第一個程序執行到量子時間(搶佔),如果它有剩餘的突發時間,則將其傳送到佇列的末尾。
如果第一個程序在指定量子時間內用突發時間完成了執行,則排程程式將終止該程序。
此過程持續到所有程序都在時間段內完成執行並且就緒佇列為空。
我們將討論三個具有不同到達時間的示例。
示例 1 - 給定三個程序 P1、P2 和 P3,它們具有不同的到達時間和突發時間。
量子時間 = 2。
程序列表 |
到達時間 |
突發時間 |
|---|---|---|
P1 |
0 |
4 |
P2 |
1 |
3 |
P3 |
2 |
7 |
甘特圖
程序列表 |
到達時間 |
突發時間 |
完成時間或結束時間 (CT) |
週轉時間 (CT-AT) |
等待時間 (TAT-BT) |
|---|---|---|---|---|---|
P1 |
0 |
4 |
8 |
8-0=8 |
8-4=4 |
P2 |
2 |
3 |
9 |
9-2=7 |
7-3=4 |
P3 |
4 |
7 |
14 |
14-4=10 |
10-7=3 |
完成時間是每個程序成功完成執行並從佇列中取出時的時間段,可以使用上面提供的甘特圖進行跟蹤。
平均等待時間 = (4+4+3) / 3 = 3.66 個單位
平均週轉時間 = (8+7+10) / 3 = 8.33 個單位
示例 2 - 給定程序 P1、P2 和 P3,它們具有不同的到達時間和突發時間。
量子時間 = 4。
甘特圖

程序列表 |
到達時間 |
突發時間 |
|---|---|---|
P1 |
2 |
8 |
P2 |
0 |
7 |
P3 |
1 |
9 |
程序列表 |
到達時間 |
突發時間 |
完成時間 (CT) |
週轉時間 (TAT) |
等待時間 (WT) |
|---|---|---|---|---|---|
P1 |
2 |
8 |
23 |
23-2=21 |
21-8=13 |
P2 |
0 |
7 |
15 |
15-0=15 |
15-7=8 |
P3 |
1 |
9 |
24 |
24-1=23 |
23-9=14 |
平均等待時間 = (13+8+14) / 3 = 11.66 個單位
平均週轉時間 = (21+15+23) / 3 = 19.66 個單位
結論
迴圈輪詢演算法被稱為搶佔式演算法,因為處於執行狀態的程序會在達到給定量子時間時被處理器搶佔,然後根據先到先服務的基礎進行後續服務。上下文切換方法用於儲存每個已被搶佔的程序的當前狀態。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP