什麼是srtf?
srtf=shortest remaining time first
實現思想:當新程序進入就緒佇列時,如果它需要處理的時間比當前程序處理時間短,則將當前程序掛起,把cpu分配給新程序。
srtf就是sjf的搶占式版本。
#include
#include
typedef
struct pcb
*task, pcb;
pcb*
creattask
(int x,
int y,
int z)
void
deltask
(pcb* n,
int x)
d = n->next;
n->next = d->next;
free
(d);}}
void
count
(pcb* n,
int t)
p = p->next;
} p = n->next;
while
(p !=
null
) q->counttime--;if
(qp==
0||qp!=q->id)
printf
("當前執行的任務序號為 %d \n"
, q->id)
; qp = q->id;
if(time < q->arrivetime)
//防止時間暫停
time = q->arrivetime;
time++;if
(q->counttime==0)
}printf
("\n");
printf
("平均周轉時間為 %.2f \n"
, zt / temp)
;printf
("平均帶權周轉時間為 %.2f \n"
, dt / temp);}
intmain()
count
(head, n)
;}
srtf的特點:
優點:保證新的短作業一進入系統就能很快的到服務,平均等待時間短。
缺點:為保證程序斷點現場,統計程序剩餘時間增加了系統開銷,不利於長作業。
作業排程用得少,程序排程用得多。
用C語言寫的乙個最短作業優先排程演算法
include 定義乙個結構體 struct sjf 定義乙個結構體陣列 sjf a 100 定義乙個輸入函式 void input sjf p,int n 定義乙個輸出函式 void print sjf p,float arrivetime,float servicetime,float star...
c語言模擬短作業優先排程演算法和時間片轉輪排程演算法
陣列模擬短作業,隊咧模擬時間片轉輪,注釋很清楚,就不贅述 include include include include include include define r run 執行中 define f finish 已完成 define w waite 等待中 define t taken 未提...
程序的優先排程演算法的c語言實現
在程序中實現優先順序演算法可以使用最小堆排列來實現。一般在優先順序排程演算法中要實現的操作 1.從後備作業佇列中選擇乙個優先順序最高的作業將他們調入記憶體,分配必要的資源。此處的優先順序越高關鍵字越小 2.建立程序並且放入到後備作業佇列中 3,改變乙個程序的優先順序重新排列後備作業佇列的順序 此處的...