回覆列表
  • 1 # 小飛飛的小朋友

    如果多個程序同時到達系統,則平均週轉時間最短的程序排程演算法是短程序優先排程演算法。

      短程序優先排程演算法SJ(P)F,是指對短作業或短程序優先排程的演算法。它們可以分別用於作業排程和程序排程。短作業優先(SJF)的排程演算法是從後備佇列中選擇一個或若干個估計執行時間最短的作業,將它們調入記憶體執行。而短程序(SPF)排程演算法則是從就緒佇列中選出一個估計執行時間最短的程序,將處理機分配給它,使它立即執行並一直執行到完成,或發生某事件而被阻塞放棄處理機再重新排程。

      優點是SJ(P)F排程演算法能有效地降低作業(程序)的平均等待時間,提高系統吞吐量。

      缺點是該演算法對長作業不利;完全未考慮作業的緊迫程度,因而不能保證緊迫性作業(程序)長期不被排程;由於作業(程序)的長短只是根據使用者所提供的估計執行時間而定的,而使用者又可能會有意或無意地縮短其作業的估計執行時間,致使該演算法不一定能真正做到短作業遊戲那排程。

      該程式定義了一個程序資料塊(structspf),該資料塊有程序名(name)、到達時間(arrivetime)、服務時間(servicetime)、開始執行時間(starttime)、完成時間(finishtime)、週轉時間(zztime)、平均週轉時間(averzztime)。用到的公式有:完成時間=到達時間+服務時間;週轉時間=完成時間-到達時間;(第一次執行的程序的完成時間=該程序的到達時間;下一個程序的開始執行時間=上一個程序的完成時間)。執行程序的順序需要對程序的到達時間和服務時間進行比較。如果某一程序是從0時刻到達的,那麼首先執行該程序;之後就比較程序的服務時間,誰的服務時間短就先執行誰(如果服務時間相同則看它們的到達時間,到達時間短的先執行);如果到達時間和服務時間相同,則按先來先服務演算法執行。

  • 中秋節和大豐收的關聯?
  • 賽爾號聖女貞德為什麼被捧的那麼高,實力很強嗎?