導航:首頁 > 源碼編譯 > 湖南調度演算法

湖南調度演算法

發布時間:2022-11-26 20:20:37

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

一、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隊列的隊尾。

2. 第三章 進程調度的幾種方式

進程調度概念:操作系統必須為多個,嗎進程可能有競爭的請求分配計算機資源。對處理器而言,可分配的資源是在處理器上的執行時間,分配途徑是調度。調度功能必須設計成可以滿足多個目標,包括公平、任何進程都不會餓死、有效地使用處理器時間和低開銷。此外,調度功能可能需要為某些進程的啟動或結束考慮不同的優先順序和實時最後期限。

這些年以來,調度已經成為深入研究的焦點,並且已經實現了許多不同的演算法。如今,調度研究的重點是開發多處理系統,特別是用於多線程的。

下面簡介幾種調度演算法。

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

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

先來先服務(FCFS)調度演算法是一種最簡單的調度演算法,該演算法既可用於作業調度,也可用於進程調度。當在作業調度中採用該演算法時,每次調度都是從後備作業隊列中選擇一個或多個最先進入該隊列的作業,將它們調入內存,為它們分配資源、創建進程,然後放入就緒隊列。在進程調度中採用FCFS演算法時,則每次調度是從就緒隊列中選擇一個最先進入該隊列的進程,為之分配處理機,使之投入運行。該進程一直運行到完成或發生某事件而阻塞後才放棄處理機。

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

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

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

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

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

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

在這種方式下,系統一旦把處理機分配給就緒隊列中優先權最高的進程後,該進程便一直執行下去,直至完成;或因發生某事件使該進程放棄處理機時,系統方可再將處理機重新分配給另一優先權最高的進程。這種調度演算法主要用於批處理系統中;也可用於某些對實時性要求不嚴的實時系統中。

2) 搶占式優先權調度演算法

在這種方式下,系統同樣是把處理機分配給優先權最高的進程,使之執行。但在其執行期間,只要又出現了另一個其優先權更高的進程,進程調度程序就立即停止當前進程(原優先權最高的進程)的執行,重新將處理機分配給新到的優先權最高的進程。因此,在採用這種調度演算法時,是每當系統中出現一個新的就緒進程i 時,就將其優先權Pi與正在執行的進程j 的優先權Pj進行比較。如果Pi≤Pj,原進程Pj便繼續執行;但如果是Pi>Pj,則立即停止Pj的執行,做進程切換,使i 進程投入執行。顯然,這種搶占式的優先權調度演算法能更好地滿足緊迫作業的要求,故而常用於要求比較嚴格的實時系統中,以及對性能要求較高的批處理和分時系統中。

2.高響應比優先調度演算法

在批處理系統中,短作業優先演算法是一種比較好的演算法,其主要的不足之處是長作業的運行得不到保證。如果我們能為每個作業引入前面所述的動態優先權,並使作業的優先順序隨著等待時間的增加而以速率a 提高,則長作業在等待一定的時間後,必然有機會分配到處理機。該優先權的變化規律可描述為:

由於等待時間與服務時間之和就是系統對該作業的響應時間,故該優先權又相當於響應比RP。據此,又可表示為:

由上式可以看出:

(1) 如果作業的等待時間相同,則要求服務的時間愈短,其優先權愈高,因而該演算法有利於短作業。

(2) 當要求服務的時間相同時,作業的優先權決定於其等待時間,等待時間愈長,其優先權愈高,因而它實現的是先來先服務。

(3) 對於長作業,作業的優先順序可以隨等待時間的增加而提高,當其等待時間足夠長時,其優先順序便可升到很高,從而也可獲得處理機。簡言之,該演算法既照顧了短作業,又考慮了作業到達的先後次序,不會使長作業長期得不到服務。因此,該演算法實現了一種較好的折衷。當然,在利用該演算法時,每要進行調度之前,都須先做響應比的計算,這會增加系統開銷。

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

1.時間片輪轉法

1) 基本原理

在早期的時間片輪轉法中,系統將所有的就緒進程按先來先服務的原則排成一個隊列,每次調度時,把CPU 分配給隊首進程,並令其執行一個時間片。時間片的大小從幾ms 到幾百ms。當執行的時間片用完時,由一個計時器發出時鍾中斷請求,調度程序便據此信號來停止該進程的執行,並將它送往就緒隊列的末尾;然後,再把處理機分配給就緒隊列中新的隊首進程,同時也讓它執行一個時間片。這樣就可以保證就緒隊列中的所有進程在一給定的時間內均能獲得一時間片的處理機執行時間。換言之,系統能在給定的時間內響應所有用戶的請求。

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

前面介紹的各種用作進程調度的演算法都有一定的局限性。如短進程優先的調度演算法,僅照顧了短進程而忽略了長進程,而且如果並未指明進程的長度,則短進程優先和基於進程長度的搶占式調度演算法都將無法使用。而多級反饋隊列調度演算法則不必事先知道各種進程所需的執行時間,而且還可以滿足各種類型進程的需要,因而它是目前被公認的一種較好的進程調度演算法。在採用多級反饋隊列調度演算法的系統中,調度演算法的實施過程如下所述。

(1) 應設置多個就緒隊列,並為各個隊列賦予不同的優先順序。第一個隊列的優先順序最高,第二個隊列次之,其餘各隊列的優先權逐個降低。該演算法賦予各個隊列中進程執行時間片的大小也各不相同,在優先權愈高的隊列中,為每個進程所規定的執行時間片就愈小。例如,第二個隊列的時間片要比第一個隊列的時間片長一倍,……,第i+1個隊列的時間片要比第i個隊列的時間片長一倍。

(2) 當一個新進程進入內存後,首先將它放入第一隊列的末尾,按FCFS原則排隊等待調度。當輪到該進程執行時,如它能在該時間片內完成,便可准備撤離系統;如果它在一個時間片結束時尚未完成,調度程序便將該進程轉入第二隊列的末尾,再同樣地按FCFS原則等待調度執行;如果它在第二隊列中運行一個時間片後仍未完成,再依次將它放入第三隊列,……,如此下去,當一個長作業(進程)從第一隊列依次降到第n隊列後,在第n 隊列便採取按時間片輪轉的方式運行。

(3) 僅當第一隊列空閑時,調度程序才調度第二隊列中的進程運行;僅當第1~(i-1)隊列均空時,才會調度第i隊列中的進程運行。如果處理機正在第i隊列中為某進程服務時,又有新進程進入優先權較高的隊列(第1~(i-1)中的任何一個隊列),則此時新進程將搶占正在運行進程的處理機,即由調度程序把正在運行的進程放回到第i隊列的末尾,把處理機分配給新到的高優先權進程。

3. 關於作業調度的演算法怎麼寫

網路上搜一下就有了,我做這個就是找的

4. 作業調度的演算法都有哪些

作業調度的演算法有:演算法有先來先服務、最短作業優先演算法、最高響應比優先演算法、基於優先數調度演算法。

1、演算法有先來先服務

最簡單的調度演算法,按作業的先後順序進行調度,只考慮每個作業的等待時間而未考慮執行時間的長短。

2、最短作業優先演算法

最短作業優先演算法是對先來先服務演算法的改進,其目標是減少平均周轉時間。對預計執行時間短的作業優先分派處理機。通常後來的短作業不搶先正在執行的作業。 只考慮執行時間而未考慮等待時間的長短。

3、最高響應比優先演算法

最高響應比優先演算法是對先來先服務方式和最短作業優先演算法方式的一種綜合平衡。最高響應比優先法調度策略同時考慮每個作業的等待時間的長短和估計需要的執行時間長短,從中選出相應比最高的作業投入執行。

4、基於優先數調度演算法

優先數調度演算法常用於批處理系統中。在進程調度中,每次調度時,系統把處理機分配給就緒隊列中優先數最高的進程。它又分為兩種:非搶占式優先數演算法和搶占式優先數演算法。

(4)湖南調度演算法擴展閱讀:

作業調度是指按照時間周期(年、月、日、時、分、秒等)對作業進行分割,並根據業務需求、作業長度、存儲管理及依賴性關系對作業的執行方式加以調度。主要任務是從作業後備隊列中選擇作業進入主存運行。作業調度的功能主要有以下幾方面:

1、記錄各作業在系統中的狀態;

2、從後備隊列中挑選一部分作業投入運行;

3、從被選中的作業做好執行前的准備工作;

4、在作業執行結束時,做善後處理工作。

進行作業調度有很多作業調度演算法,這些作業調度演算法要實現的目標是:

1、調度對所有作業都是公平合理的;

2、應使設備有較高的利用率(提供系統利用率);

3、每次運行盡可能多的作業(提高系統吞吐量);

4、較快的相應時間。

5. 進程常用的調度方式有哪三種

進程調度有以下兩種基本方式:
非剝奪方式
分派程序一旦把處理機分配給某進程後便讓它一直運行下去,直到進程完成或發生某事件而阻塞時,才把處理機分配給另一個進程。
剝奪方式
當一個進程正在運行時,系統可以基於某種原則,剝奪已分配給它的處理機,將之分配給其它進程。剝奪原則有:優先權原則、短進程、優先原則、時間片原則。
例如,有三個進程P1、P2、P3先後到達,它們分別需要20、4和2個單位時間運行完畢。
假如它們就按P1、P2、P3的順序執行,且不可剝奪,則三進程各自的周轉時間分別為20、24、
26個單位時間,平均周轉時間是23.33個時間單位。
假如用時間片原則的剝奪調度方式,可得到:
可見:P1、P2、P3的周轉時間分別為26、10、6個單位時間,平均周轉時間為14個單位時間。
衡量進程調度性能的指標有:周轉時間、響應時間、CPU-I/O執行期。

6. 操作系統的調度演算法

1)10:00Job1到達並投入運行。此時內存中有作業:Job1
2)10:05 Job2到達並進入內存。此時,Job1運行時間剩餘是25min, Job2運行剩餘時間是20min,根據SRTF,Job2開始運行。
3)10:25 Job2運行結束。Job3、Job4在後備隊列中,據SJF,Job3進入內存,據SRTF,Job3開始運行。內存:Job1、Job3
4)10:30 Job3運行結束。Job4在後備隊列中,Job4進入內存,據SRTF,Job4開始運行。內存:Job1、Job4
5)10:40 Job4運行結束。Job1重新繼續運行。
6)11:05 Job1運行結束。

7. 什麼是調度演算法

調度演算法

通常將作業或進程歸入各種就緒或阻塞隊列。有的演算法適用於作業調度,有的演算法適用於進程調度,有的兩者都適應。

1.先來先服務(FCFS, First Come First Serve)

先來先服務(FCFS, First Come First Serve)是最簡單的調度演算法,按先後順序進行調度。

1. FCFS演算法

按照作業提交或進程變為就緒狀態的先後次序,分派CPU;

當前作業或進程佔用CPU,直到執行完或阻塞,才出讓CPU(非搶占方式)。

在作業或進程喚醒後(如I/O完成),並不立即恢復執行,通常等到當前作業或進程出讓CPU。最簡單的演算法。

2. FCFS的特點

比較有利於長作業,而不利於短作業。

有利於CPU繁忙的作業,而不利於I/O繁忙的作業。

2. 輪轉法(Round Robin)

輪轉法(Round Robin)是讓每個進程在就緒隊列中的等待時間與享受服務的時間成正比例。

1. 輪轉法

Ø 將系統中所有的就緒進程按照FCFS原則,排成一個隊列。

Ø 每次調度時將CPU分派給隊首進程,讓其執行一個時間片。時間片的長度從幾個ms到幾百ms。

Ø 在一個時間片結束時,發生時鍾中斷。

Ø 調度程序據此暫停當前進程的執行,將其送到就緒隊列的末尾,並通過上下文切換執行當前的隊首進程。

Ø 進程可以未使用完一個時間片,就出讓CPU(如阻塞)。

Ø

2. 時間片長度的確定

Ø 時間片長度變化的影響

² 過長->退化為FCFS演算法,進程在一個時間片內都執行完,響應時間長。

² 過短->用戶的一次請求需要多個時間片才能處理完,上下文切換次數增加,響應時間長。

Ø 對響應時間的要求:T(響應時間)=N(進程數目)*q(時間片)

Ø 就緒進程的數目:數目越多,時間片越小

Ø 系統的處理能力:應當使用戶輸入通常在一個時間片內能處理完,否則使響應時間,平均周轉時間和平均帶權周轉時間延長。

3. 多級反饋隊列演算法(Round Robin with Multiple Feedback)

多級反饋隊列演算法時間片輪轉演算法和優先順序演算法的綜合和發展。

優點:

² 為提高系統吞吐量和縮短平均周轉時間而照顧短進程。

² 為獲得較好的I/O設備利用率和縮短響應時間而照顧I/O型進程。

² 不必估計進程的執行時間,動態調節。

1. 多級反饋隊列演算法

² 設置多個就緒隊列,分別賦予不同的優先順序,如逐級降低,隊列1的優先順序最高。每個隊列執行時間片的長度也不同,規定優先順序越低則時間片越長,如逐級加倍。

² 新進程進入內存後,先投入隊列1的末尾,按FCFS演算法調度;若按隊列1一個時間片未能執行完,則降低投入到隊列2的末尾,同樣按FCFS演算法調度;如此下去,降低到最後的隊列,則按「時間片輪轉」演算法調度直到完成。

² 僅當較高優先順序的隊列為空,才調度較低優先順序的隊列中的進程執行。如果進程執行時有新進程進入較高優先順序的隊列,則搶先執行新進程,並把被搶先的進程投入原隊列的末尾。

²

2. 幾點說明

² I/O型進程:讓其進入最高優先順序隊列,以及時響應I/O交互。通常執行一個小時間片,要求可處理完一次I/O請求的數據,然後轉入到阻塞隊列。

² 計算型進程:每次都執行完時間片,進入更低級隊列。最終採用最大時間片來執行,減少調度次數。

² I/O次數不多,而主要是CPU處理的進程。在I/O完成後,放回優先I/O請求時離開的隊列,以免每次都回到最高優先順序隊列後再逐次下降。

² 為適應一個進程在不同時間段的運行特點,I/O完成時,提高優先順序;時間片用完時,降低優先順序。

8. 求一個關於作業調度的演算法問題的解!!

n個任務的總執行時間:total=t1+t2+...+tn;
分配到每個CPU的執行時間:avarage=total/k;
顯然最佳情況是每個CPU的執行時間相等,如果要求作業只能在一次調度,一個CPU上完成,那麼這種最佳情形是未必能夠滿足的。
____________________________
所以我在下面提供幾個盡可能提高資源利用的演算法
1.把所有的輸入的任務按照執行時間的長短從小到大進行內部排序,得到新的有序序列s1,s2...sn;
2.在任務的執行時間有序後,按照首尾順序選擇作業,為每個CPU選擇(n/k)個作業左右(必不小於n/k);
還有:
1.把所有的輸入的任務按照執行時間的長短從小到大進行內部排序,得到新的有序序列s1,s2...sn;
2.按照S形為每個CPU分配作業,即第一個作業交付給c1,第二個作業交付給c2,...第k個作業交付給ck,第k+1個作業交付給ck,第k+2個作業交付給c(k-1)...直到所有作業全部交付。

9. 作業調度演算法思想是什麼

作業調度演算法:1、先來先服務演算法;2、短作業優先演算法;3、最高響應比作業優先演算法;4、資源搭配演算法;5、多隊列循環演算法

對演算法的選擇要考慮三個目標:
1、盡量提高系統的作業吞吐量,即每天處理盡可能多的作業;
2、盡量使CPU和外部設備保持忙碌狀態,以提高資源利用率;
3、對各種作業公平合理,使用有用戶都滿意。

10. 在操作系統中,常見的調度演算法有哪些

你要問哪一部分的?磁碟管理,存儲管理還是處理機管理,設備管理,每種管理都有自己的調度演算法。你給個具體的,常見調度台籠統了

閱讀全文

與湖南調度演算法相關的資料

熱點內容
cnc手動編程銑圓 瀏覽:720
cad中幾種命令的意思 瀏覽:324
oraclelinux安裝目錄 瀏覽:133
安卓系統可以安裝編譯器嗎 瀏覽:570
javajson實體類 瀏覽:690
板加密鋼筋是否取代原鋼筋 瀏覽:66
學習編程的思路 瀏覽:230
app易語言post怎麼學 瀏覽:965
地梁的箍筋加密區位置 瀏覽:302
二分法排序程序及編譯結果 瀏覽:679
日語命令形和禁止型 瀏覽:285
安裝軟體用管理員解壓 瀏覽:505
編譯原理代碼塊 瀏覽:400
小孩可以用壓縮面膜嗎 瀏覽:14
錐形倒角怎麼計演算法 瀏覽:883
java合並鏈表 瀏覽:508
pic單片機編譯器 瀏覽:807
麗水四軸加工中心編程 瀏覽:692
國產系統怎麼解壓 瀏覽:554
戰雙程序員 瀏覽:485