導航:首頁 > 源碼編譯 > 先服務fcfs調度演算法

先服務fcfs調度演算法

發布時間:2022-09-08 17:51:49

1. 進程調度演算法1——FCFS、SJF、HNNR

  進程的調度方式有兩種: 非剝奪調度方式(非搶占式)和剝奪調度方式(搶占方式)。
  非搶占式:只允許進程主動放棄處理機。如進程運行結束、異常結束或主動請求I/O阻塞。在運行的過程中即使有更緊迫的任務到達,當前進程依然會繼續使用處理機,直到該進程終止或主動要求進入阻塞態。
  搶占式:當一個進程正在處理機上執行時,如果有一個更重要更緊迫的進程需要處理機,則立即暫停正在執行的進程,將處理機分配給更重要更緊迫的那個進程。
  下面介紹適用於早期操作系統幾種進程調度的演算法

  先來先服務(FCFS):按照到達的先後順序調度,事實上就是等待時間越久的越優先得到服務。
  下面表示按照先來先服務演算法的執行順序

  計算進程的幾個衡量指標:

  短作業優先演算法是非搶占式的演算法,但是也有搶占式的版本—— 最短剩餘時間優先演算法(STRN,Shortest Remaining Time Next)
  用於進程的調度演算法稱為短進程優先調度演算法(SPF,Shortest Process First)。

  短作業/進程優先調度演算法:每次調度時選擇當前已到達且運行時間最短的作業/進程.。

  因為進程1最先達到,此時沒有其他線程,所以進程1先被服務。當進程1運行完後,進程2和3已經到達,此時進程3需要的運行時間比進程2少,所以進程3先被服務…
  計算進程的幾個衡量指標:

  最短剩餘時間優先演算法:每當有進程 加入就緒隊列改變時就需要調度 ,如果新到達的進程的所需的運行時間比當前運行的進程剩餘時間更短,則由新進程搶占處理機,當前運行進程重新回到就緒隊列。此外,當一個 進程完成時也需要調度

通過比較上面三組的平均周轉時間、平均帶權周轉時間和平均等待時間可以看出,短作業優先演算法可以減少進程的等待時間,對短作業有利。

  高響應比優先演算法: 非搶占式的調度演算法 ,只有當前運行的進程主動放棄CPU時(正常/異常完成、或主動阻塞),才需要進行調度,調度時計算所有就緒進程的相應比,選響應比最高的進程上處理機。

   響應比 = (等待時間 + 運行時間)/ 運行時間

  上面的三種調度演算法一般適用於 早期的批處理系統 ,沒有考慮響應時間也不區分任務的緊急程度。因此對用戶來說交互性差。

  如發現錯誤,請指正!!!

2. 如何理解先來先服務fcfs和短作業優先sjf進程調度演算法

先來先服務FCFS和短作業優先 和短作業優先SJF進程調度演算法 先來先服務 和短作業優先 進程調度演算法 1、實驗目的 通過這次實驗,加深對進程概念的理解,進一步掌握進程狀態的 轉變、進程調度的策略及對系統性能的評價方法。 2、需求分析 (1) 輸入的形式和輸入值的范圍 輸入值:進程個數Num 依次輸入Num個進程的到達時間 依次輸入Num個進程的服務時間 范圍:0<Num<=100 范圍: 范圍: 輸入要使用的演算法(1-FCFS,2-SJF) 范圍:1或者2 輸出的形式( 表示變數) (2) 輸出的形式(X表示變數) 時刻X:進程X開始運行。 其完成時間:X 周轉時間:X 帶權周轉時 間:X …(省略(Num-1)個) 平均周轉時間:X 平均帶權周轉時間:X (3) 程序所能達到的功能 輸入進程個數Num,每個進程到達時間ArrivalTime[i],服務時間 ServiceTime[i]。採用先來先服務FCFS或者短作業優先SJF進程調度算 法進行調度,計算每個進程的完成時間、周轉時間和帶權周轉時間, 並且統計Num個進程的平均周轉時間和平均帶權周轉時間。 3、概要設計 說明本程序中用到的所有抽象數據類型的定義、 主程序的流程以 及各程序模塊之間的層次(調用)關系。 4、詳細設計 5、調試分析 (1)調試過程中遇到的問題以及解決方法, (1)調試過程中遇到的問題以及解決方法,設計與實現的回顧討 調試過程中遇到的問題以及解決方法 論和分析 1 ○ 開始的時候沒有判斷進程是否到達, 導致短進程優先演算法運 開始的時候沒有判斷進程是否到達, 行結果錯誤,後來加上了判斷語句後就解決了改問題。 行結果錯誤,後來加上了判斷語句後就解決了改問題。 2 ○ 基本完成的設計所要實現的功能, 總的來說, FCFS編寫容易, 基本完成的設計所要實現的功能, 總的來說, FCFS編寫容易, 編寫容易 SJF 需要先找到已經到達的進程, 需要先找到已經到達的進程, 再從已經到達的進程里找到進程服務時 間最短的進程,再進行計算。 間最短的進程,再進行計算。 (2)算 (2)演算法的改進設想 改進: 改進:即使用戶輸入的進程到達時間沒有先後順序也能准確 的計算出結果。(就是再加個循環,判斷各個進程的到達時間先後, 的計算出結果。(就是再加個循環,判斷各個進程的到達時間先後, 。(就是再加個循環 組成一個有序的序列) 組成一個有序的序列) (3)經驗和體會 (3)經驗和體會 通過本次實驗, 通過本次實驗,深入理解了先來先服務和短進程優先進程調 度演算法的思想,培養了自己的動手能力,通過實踐加深了記憶。 度演算法的思想,培養了自己的動手能力,通過實踐加深了記憶。

3. 作業調度演算法一道題的解析——FCFS演算法

10.1時,①裝入主存,主存:15k,85k空閑,計算:①,等待隊列:空
10.3時,②裝入主存,主存:15k,60k,25k空閑,計算:①,等待隊列:②
10.4時,①完成計算,主存:15k空閑,60k,25k空閑,計算:②,等待隊列:空
10.5時,③要裝入主存,但由於內存不足,等待
10.6時,④裝入主存,主存:10k,5k空閑,60k,25k空閑,計算:②,等待隊列:④
10.7時,⑤裝入主存,主存:10k,5k空閑,60k,20k,5k空閑,計算:②,等待隊列:④,⑤
10.9時,②完成計算,主存:10k,65k空閑,20k,5k空閑,計算:④,等待隊列:⑤
10.9時,③由於存在超過50k的空間,裝入主存,主存:10k,50k,15k空閑,20k,5k空閑
計算:④,等待:⑤,③(此時按照先來先服務調度,⑤為先來的作業)
10.13時,④完成計算,主存:10k空閑,50k,15k空閑,20k,5k空閑,計算:⑤,等待隊列:③
10.15時,⑤完成計算,主存:15k空閑,60k,25k空閑,計算:②,等待隊列:空
10.19時,③完成計算,主存:100k空閑,計算:空,等待隊列:空
因此,順序為①②④⑤③

4. 進程調度演算法

調度算指:根據系統資源配策略所規定資源配算
、先先服務短作業(進程)優先調度算
1.
先先服務調度算先先服務(FCFS)調度算種簡單調度算該算既用於作業調度
用於進程調度FCFS算比較利於作業(進程)利於短作業(進程)由知本算適合於CPU繁忙型作業
利於I/O繁忙型作業(進程)
2.
短作業(進程)優先調度算短作業(進程)優先調度算(SJ/PF)指短作業或短進程優先調度算該算既用於作業調度
用於進程調度其作業利;能保證緊迫性作業(進程)及處理;作業短估算
二、高優先權優先調度算
1.
優先權調度算類型照顧緊迫性作業使進入系統便獲優先處理引入高優先權優先(FPF)調度算
算用批處理系統作作業調度算作種操作系統進程調度用於實系統其用於作業調度
備隊列若干優先權高作業裝入內存其用於進程調度處理機配給緒隊列優先權高進程
進步該算兩種:
1)非搶占式優先權算
2)搶占式優先權調度算(高性能計算機操作系統)
2.
優先權類型
於高優先權優先調度算其核於:使用靜態優先權態優先權
及何確定進程優先權
3.
高響應比優先調度算
彌補短作業優先算足我引入態優先權使作業優先等級隨著等待間增加速率a提高
該優先權變化規律描述:優先權=(等待間+要求服務間)/要求服務間;即
=(響應間)/要求服務間
三、基於間片輪轉調度算
1.
間片輪轉間片輪轉般用於進程調度每調度CPU配隊首進程並令其執行間片
執行間片用完由記器發鍾斷請求該進程停止並送往緒隊列末尾;依循環
2.
級反饋隊列調度算
級反饋隊列調度算級反饋隊列調度算必事先知道各種進程所需要執行間目前公認種較進程調度算
其實施程:
1)
設置緒隊列並各隊列賦予同優先順序優先權越高隊列
每進程所規定執行間片越
2)
新進程進入內存首先放入第隊列末尾按FCFS原則排隊等候調度
能間片完便撤離;未完轉入第二隊列末尾同等待調度……
作業(進程)第隊列依第n隊列(隊列)便按第n隊列間片輪轉運行
3)
僅第隊列空閑調度程序才調度第二隊列進程運行;僅第1第(i-1)隊列空
才調度第i隊列進程運行並執行相應間片輪轉
4)
處理機處理第i隊列某進程新進程進入優先權較高隊列
則新隊列搶占運行處理機並運行進程放第i隊列隊尾

5. 常見的調度演算法總結

一、FCFS——先來先服務和短作業(進程)優先調度演算法

1. 先來先服務調度演算法。

先來先服務(FCFS)調度演算法是一種最簡單的調度演算法,該演算法既可用於作業調度, 也可用於進程調度。FCFS演算法比較有利於長作業(進程),而不利於短作業(進程)。由此可知,本演算法適合於CPU繁忙型作業, 而不利於I/O繁忙型的作業(進程)。

2. 短作業(進程)優先調度演算法。

短作業(進程)優先調度演算法(SJ/PF)是指對短作業或短進程優先調度的演算法,該演算法既可用於作業調度, 也可用於進程調度。但其對長作業不利;不能保證緊迫性作業(進程)被及時處理;作業的長短只是被估算出來的。

二、FPF高優先權優先調度演算法

1. 優先權調度演算法的類型。

為了照顧緊迫性作業,使之進入系統後便獲得優先處理,引入了最高優先權優先(FPF)調度演算法。 此演算法常被用在批處理系統中,作為作業調度演算法,也作為多種操作系統中的進程調度,還可以用於實時系統中。當其用於作業調度, 將後備隊列中若干個優先權最高的作業裝入內存。當其用於進程調度時,把處理機分配給就緒隊列中優先權最高的進程,此時, 又可以進一步把該演算法分成以下兩種:

1)非搶占式優先權演算法

2)搶占式優先權調度演算法(高性能計算機操作系統)

2. 優先權類型 。

對於最高優先權優先調度演算法,其核心在於:它是使用靜態優先權還是動態優先權, 以及如何確定進程的優先權。

3.動態優先權

高響應比優先調度演算法為了彌補短作業優先演算法的不足,我們引入動態優先權,使作業的優先等級隨著等待時間的增加而以速率a提高。 該優先權變化規律可描述為:優先權=(等待時間+要求服務時間)/要求服務時間;即 =(響應時間)/要求服務時間

三、基於時間片的輪轉調度演算法

1.時間片輪轉法。

時間片輪轉法一般用於進程調度,每次調度,把CPU分配隊首進程,並令其執行一個時間片。 當執行的時間片用完時,由一個記時器發出一個時鍾中斷請求,該進程被停止,並被送往就緒隊列末尾;依次循環。

2. 多級反饋隊列調度演算法

多級反饋隊列調度演算法多級反饋隊列調度演算法,不必事先知道各種進程所需要執行的時間,它是目前被公認的一種較好的進程調度演算法。 其實施過程如下:

1) 設置多個就緒隊列,並為各個隊列賦予不同的優先順序。在優先權越高的隊列中, 為每個進程所規定的執行時間片就越小。

2) 當一個新進程進入內存後,首先放入第一隊列的末尾,按FCFS原則排隊等候調度。 如果他能在一個時間片中完成,便可撤離;如果未完成,就轉入第二隊列的末尾,在同樣等待調度…… 如此下去,當一個長作業(進程)從第一隊列依次將到第n隊列(最後隊列)後,便按第n隊列時間片輪轉運行。

3) 僅當第一隊列空閑時,調度程序才調度第二隊列中的進程運行;

僅當第1到第( i-1 )隊列空時, 才會調度第i隊列中的進程運行,並執行相應的時間片輪轉。

4) 如果處理機正在處理第i隊列中某進程,又有新進程進入優先權較高的隊列, 則此新隊列搶占正在運行的處理機,並把正在運行的進程放在第i隊列的隊尾。

6. 電梯調度演算法...

不管你是在北上廣還是在港澳台,甚至三四線城市,凡是有規模的地區,高樓比比皆是。不管是寫字樓,還是大型商城,讓你最頭痛的就是乘電梯,尤其是在趕時間的時候。

每天早上,那些差5分鍾就遲到的程序員,在等電梯時,一般會做兩件事:

前者可能是寫字樓里上班族慣有的精神類疾病,但後者肯定是程序員的職業病。本文對「罵電梯」不給予任何指導性建議。

但說起電梯調度演算法,我覺得還是可以給大家科普一下,好為大家在等電梯之餘,打發時間而做出一點貢獻。

(電梯調度演算法可以參考各種硬碟換道演算法,下面內容整理自網路)

先來先服務(FCFS-First Come First Serve)演算法,是一種隨即服務演算法,它不僅僅沒有對尋找樓層進行優化,也沒有實時性的特徵,它是一種最簡單的電梯調度演算法。

它根據乘客請求乘坐電梯的先後次序進行調度。此演算法的 優點是公平、簡單,且每個乘客的請求都能依次地得到處理,不會出現某一乘客的請求長期得不到滿足的情況

這種方法在載荷較輕松的環境下,性能尚可接受,但是在載荷較大的情況下,這種演算法的性能就會嚴重下降,甚至惡化。

人們之所以研究這種在載荷較大的情況下幾乎不可用的演算法,有兩個原因:

最短尋找樓層時間優先(SSTF-Shortest Seek Time First)演算法,它注重電梯尋找樓層的優化。最短尋找樓層時間優先演算法選擇下一個服務對象的原則是 最短尋找樓層的時間。

這樣請求隊列中距當前能夠最先到達的樓層的請求信號就是下一個服務對象。

在重載荷的情況下,最短尋找樓層時間優先演算法的平均響應時間較短,但響應時間的方差較大 ,原因是隊列中的某些請求可能長時間得不到響應,出現所謂的「 餓死」現象

掃描演算法(SCAN) 是一種按照樓層順序依次服務請求,它讓電梯在最底層和最頂層之間連續往返運行,在運行過程中響應處在於電梯運行方向相同的各樓層上的請求。

它進行尋找樓層的優化,效率比較高,但它是一個 非實時演算法 。掃描演算法較好地解決了電梯移動的問題,在這個演算法中,每個電梯響應乘客請求使乘客獲得服務的次序是由其發出請求的乘客的位置與當前電梯位置之間的距離來決定的。

所有的與電梯運行方向相同的乘客的請求在一次電向上運行或向下運行的過程中完成, 免去了電梯頻繁的來回移動

掃描演算法的平均響應時間比最短尋找樓層時間優先演算法長,但是響應時間方差比最短尋找樓層時間優先演算法小, 從統計學角度來講,掃描演算法要比最短尋找樓層時間優先演算法穩定

LOOK 演算法是掃描演算法(SCAN)的一種改進。對LOOK演算法而言,電梯同樣在最底層和最頂層之間運行。

當 LOOK 演算法發現電梯所移動的方向上不再有請求時立即改變運行方向 ,而掃描演算法則需要移動到最底層或者最頂層時才改變運行方向。

SATF(Shortest Access Time First)演算法與 SSTF 演算法的思想類似,唯一的區別就是 SATF 演算法將 SSTF 演算法中的尋找樓層時間改成了訪問時間。

這是因為電梯技術發展到今天,尋找樓層的時間已經有了很大地改進, 但是電梯的運行當中等待乘客上梯時間卻不是人為可以控制

SATF 演算法考慮到了電梯運行過程中乘客上梯時間的影響

最早截止期優先(EDF-Earliest Deadline First)調度演算法是最簡單的實時電梯調度演算法,它的 缺點就是造成電梯任意地尋找樓層,導致極低的電梯吞吐率。

它與 FCFS 調度演算法類似,EDF 演算法是電梯實時調度演算法中最簡單的調度演算法。 它響應請求隊列中時限最早的請求,是其它實時電梯調度演算法性能衡量的基準和特例。

SCAN-EDF 演算法是 SCAN 演算法和 EDF 演算法相結合的產物。SCAN-EDF 演算法先按照 EDF 演算法選擇請求列隊中哪一個是下一個服務對象,而對於具有相同時限的請求,則按照 SCAN 演算法服務每一個請求。它的效率取決於有相同 deadline 的數目,因而效率是有限的。

PI(Priority Inversion)演算法將請求隊列中的請求分成兩個優先順序,它首先保證高優先順序隊列中的請求得到及時響應,再搞優先順序隊列為空的情況下在相應地優先順序隊列中的請求。

FD-SCAN(Feasible Deadline SCAN)演算法首先從請求隊列中找出時限最早、從當前位置開始移動又可以買足其時限要求的請求,作為下一次 SCAN 的方向。

並在電梯所在樓層向該請求信號運行的過程中響應處在與電梯運行方向相同且電梯可以經過的請求信號。

這種演算法忽略了用 SCAN 演算法相應其它請求的開銷,因此並不能確保服務對象時限最終得到滿足。

以上兩結介紹了幾種簡單的電梯調度演算法。

但是並不是說目前電梯調度只發展到這個層次。目前電梯的控制技術已經進入了電梯群控的時代。

隨著微機在電梯系統中的應用和人工智慧技術的發展,智能群控技術得以迅速發展起來。

由此,電梯的群控方面陸續發展出了一批新方法,包括:基於專家系統的電梯群控方法、基於模糊邏輯的電梯群控方法、基於遺產演算法的電梯群控方法、基於勝景網路的電梯群控方法和基於模糊神經網路的電梯群控方法。

本人設置的電梯的初始狀態,是對住宅樓的電梯的設置。

(1)建築共有21層,其中含有地下一層(地下一層為停車場)。
(2)建築內部設有兩部電梯,編號分別為A梯、B梯。
(3)電梯內部有23個按鈕,其中包括開門按鈕、關門按鈕和樓層按鈕,編號為-1,1,2,3,4……20。
(4)電梯外部含有兩個按鈕,即向上運行按鈕和向下運行按鈕。建築頂層與地下一層例外,建築頂層只設置有向下運行按鈕,地下一層只設置有向上運行按鈕。
(5)電梯開關門完成時間設定為1秒。電梯到達每層後上下人的時間設定為8秒。電梯從靜止開始運行到下一層的時間設置為2秒,而運行中通過一層的時間為1秒。
(6)在凌晨2:00——4:30之間,如若沒有請求信號,A梯自動停在14層,B梯自動停在6層。
(7)當電梯下到-1層後,如果沒有請求信號,電梯自動回到1層。

每一架電梯都有一個編號,以方便監控與維修。每一架電梯都有一實時監控器,負責監控電梯上下,向電梯升降盒發送啟動、制動、加速、減速、開關電梯門的信號。若電梯發生故障,還應向相應的電梯負責人發送求救信號。

電梯內部的樓層按鈕:

這樣就表示乘客將要去往此層,電梯將開往相應層。當電梯到達該層後,按鈕恢復可以使用狀態。

電梯內部開門按鈕:

如若電梯到了乘客曾經按下的樓層,但是無乘客按開門按鈕,電梯將自動在停穩後1秒後自動開門。

電梯內部關門按鈕:

電梯外部向上按鈕:

電梯外部向下按鈕:

你肯能意識到 哪個演算法都不是一個最佳方案,只是它確實解決了一定情況的問題 。但是對一個優秀的程序員而言,研究各種演算法是無比快樂的。也許你下一次面試,就有關於調度演算法的問題。

7. 先來先服務調度演算法的思想是什麼

先來先服務(FCFS: first come first service)總是把當前處於就緒隊列之首的那個進程調度到運行狀態。也就說,它只考慮進程進入就緒隊列的先後,而不考慮它的下一個CPU周期的長短及其他因素。FCFS演算法簡單易行,但性能卻不大好。

8. 作業調度演算法的先來先服務

先來先服務(FCFS,
First
Come
First
Serve)是最簡單的調度演算法,按先後順序進行調度。
按照作業提交或進程變為就緒狀態的先後次序,分派CPU;
當前作業或進程佔用CPU,直到執行完或阻塞,才出讓CPU(非搶占方式)。
在作業或進程喚醒後(如I/O完成),並不立即恢復執行,通常等到當前作業或進程出讓CPU。
比較有利於長作業,而不利於短作業。
有利於CPU繁忙的作業,而不利於I/O繁忙的作業。

9. 先來先服務(FCFS)調度演算法 工作原理 優缺點

進程按到來的時間先後順序依次被CPU處理。
優點:就是俗話說的「先來後到」。
缺點:如果先來的進程需要很長的處理時間,而後來的進程卻很重要的。需要搶佔CUP的時候,此調度演算法就適用了。

10. 什麼是短作業優先的作業調度演算法

1.先來先服務調度演算法(FCFS):就是按照各個作業進入系統的自然次序來調度作業。這種調度演算法的優點是實現簡單,公平。其缺點是沒有考慮到系統中各種資源的綜合使用情況,往往使短作業的用戶不滿意,因為短作業等待處理的時間可能比實際運行時間長得多。
2.短作業優先調度演算法(SPF): 就是優先調度並處理短作業,所謂短是指作業的運行時間短。而在作業未投入運行時,並不能知道它實際的運行時間的長短,因此需要用戶在提交作業時同時提交作業運行時間的估計值。
3.最高響應比優先演算法(HRN):FCFS可能造成短作業用戶不滿,SPF可能使得長作業用戶不滿,於是提出HRN,選擇響應比最高的作業運行。響應比=1+作業等待時間/作業處理時間。
4. 基於優先數調度演算法(HPF):每一個作業規定一個表示該作業優先順序別的整數,當需要將新的作業由輸入井調入內存處理時,優先選擇優先數最高的作業。
5.均衡調度演算法,即多級隊列調度演算法
基本概念:
作業周轉時間(Ti)=完成時間(Tei)-提交時間(Tsi)
作業平均周轉時間(T)=周轉時間/作業個數
作業帶權周轉時間(Wi)=周轉時間/運行時間
響應比=(等待時間+運行時間)/運行時間

閱讀全文

與先服務fcfs調度演算法相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:235
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:387
pdftoeps 瀏覽:492
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:974
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600