Ⅰ 操作系統的調度演算法
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運行結束。
Ⅱ 操作系統模擬電梯調度演算法C語言程序
多級反饋隊列調度演算法 多級反饋隊列調度演算法是一種CPU處理機調度演算法,UNIX操作系統採取的便是這種調度演算法。 多級反饋隊列調度演算法即能使高優先順序的作業得到響應又能使短作業(進程)迅速完成。(對比一下FCFS與高優先響應比調度演算法的缺陷)。 多級(假設為N級)反饋隊列調度演算法可以如下原理: 1、設有N個隊列(Q1,Q2....QN),其中各個隊列對於處理機的優先順序是不一樣的,也就是說位於各個隊列中的作業(進程)的優先順序也是不一樣的。一般來說,優先順序Priority(Q1) > Priority(Q2) > ... > Priority(QN)。怎麼講,位於Q1中的任何一個作業(進程)都要比Q2中的任何一個作業(進程)相對於CPU的優先順序要高(也就是說,Q1中的作業一定要比Q2中的作業先被處理機調度),依次類推其它的隊列。 2、對於某個特定的隊列來說,裡面是遵循時間片輪轉法。也就是說,位於隊列Q2中有N個作業,它們的運行時間是通過Q2這個隊列所設定的時間片來確定的(為了便於理解,我們也可以認為特定隊列中的作業的優先順序是按照FCFS來調度的)。 3、各個隊列的時間片是一樣的嗎?不一樣,這就是該演算法設計的精妙之處。各個隊列的時間片是隨著優先順序的增加而減少的,也就是說,優先順序越高的隊列中它的時間片就越短。同時,為了便於那些超大作業的完成,最後一個隊列QN(優先順序最高的隊列)的時間片一般很大(不需要考慮這個問題)。 多級反饋隊列調度演算法描述: 1、進程在進入待調度的隊列等待時,首先進入優先順序最高的Q1等待。 2、首先調度優先順序高的隊列中的進程。若高優先順序中隊列中已沒有調度的進程,則調度次優先順序隊列中的進程。例如:Q1,Q2,Q3三個隊列,只有在Q1中沒有進程等待時才去調度Q2,同理,只有Q1,Q2都為空時才會去調度Q3。 3、對於同一個隊列中的各個進程,按照時間片輪轉法調度。比如Q1隊列的時間片為N,那麼Q1中的作業在經歷了N個時間片後若還沒有完成,則進入Q2隊列等待,若Q2的時間片用完後作業還不能完成,一直進入下一級隊列,直至完成。 4、在低優先順序的隊列中的進程在運行時,又有新到達的作業,那麼在運行完這個時間片後,CPU馬上分配給新到達的作業(搶占式)。 我們來看一下該演算法是如何運作的: 假設系統中有3個反饋隊列Q1,Q2,Q3,時間片分別為2,4,8。 現在有3個作業J1,J2,J3分別在時間 0 ,1,3時刻到達。而它們所需要的CPU時間分別是3,2,1個時間片。 1、時刻0 J1到達。於是進入到隊列1 , 運行1個時間片 , 時間片還未到,此時J2到達。 2、時刻1 J2到達。 由於時間片仍然由J1掌控,於是等待。 J1在運行了1個時間片後,已經完成了在Q1中的 2個時間片的限制,於是J1置於Q2等待被調度。現在處理機分配給J2。 3、時刻2 J1進入Q2等待調度,J2獲得CPU開始運行。 4、時刻3 J3到達,由於J2的時間片未到,故J3在Q1等待調度,J1也在Q2等待調度。 5、時刻4 J2處理完成,由於J3,J1都在等待調度,但是J3所在的隊列比J1所在的隊列的優先順序要高,於是J3被調度,J1繼續在Q2等待。 6、時刻5 J3經過1個時間片,完成。 7、時刻6 由於Q1已經空閑,於是開始調度Q2中的作業,則J1得到處理器開始運行。 8、時刻7 J1再經過一個時間片,完成了任務。於是整個調度過程結束。
Ⅲ 操作系統磁碟調度的電梯演算法是怎麼回事阿思想是什麼比如磁軌號從41開始,磁碟請求序列為:20
就是讀取時按找當前的移動方向讀取下一個,到頂後再反著讀,就跟坐電梯一樣,要不先上,要不先下。
下:41 20 12 4 上: 44 76 80
合起來就是: 41 20 12 4 44 76 80
這樣的話磁頭的總移動距離會相對減少
Ⅳ 操作系統磁碟調度演算法wenti
SCAN調度演算法就是電梯調度演算法,顧名思義就是如果開始時磁頭往外就一直要到最外面,然後再返迴向里(磁頭編號一般是最外面為0號往裡增加),就像電梯若往下則一直要下到最底層才會再上升一樣。這里的從左端開始是什麼意思呢?一般是題目中會給出此時磁頭指向里或是指向外的。向外則向比它小的方向掃描,向里則向比它大的方向掃描,而若求尋道時間還要知道每移動一個磁軌所需的時間t,尋道時間T1={(53-37)+(37-14)+(14-0)+(65-0)+(67-65)+(98-67)+(122-98)+(124-122)+(183-124)+(199-183)}*t=(53+199)*t=252t.
CSCAN循環掃描調度演算法是先找出最靠近磁頭位置的下一個,或是按題中規定的方向,反正就是只能是單向掃描。例如題中65距53最近,於是最先到65然後繼續朝增加的方向,直到最大,然後又立即回到最小的0號開始,計算時返回的那段距離也必需計算在內。T2={(199-53)+(199-0)+(37-0)}*t=382t.
顯然此時SCAN演算法更省時。
Ⅳ 電梯調度演算法
(1)電梯調度演算法的處理次序為:
5
8
1
4
3
6
2
7
(2)最短尋找時間優先演算法的處理次序為:
5
8
6
2
7
1
4
3
Ⅵ 高手給解釋下,操作系統中的,電梯調度演算法和掃描調度演算法的區別到底是什麼最好舉例圖
操作系統概念那本書上有圖,電梯就是磁頭一直向左然後一直向右這么來來回回。CSCAN就是磁頭一直向左,然後再回到右邊開始一直向左,類似於示波器的逐行掃描。
Ⅶ 什麼是電梯調度
LOOK(查找)調度(電梯)電梯演算法。磁臂僅移動到請求的最外道就回轉。反方向查找服務。磁頭從53號磁軌開始移動,按照65, 67, 98, 122, 124, 183, 14, 37的順序依次查找,並將數據輸入內存。
Ⅷ 在操作系統中,常見的調度演算法有哪些
你要問哪一部分的?磁碟管理,存儲管理還是處理機管理,設備管理,每種管理都有自己的調度演算法。你給個具體的,常見調度台籠統了
Ⅸ 如何將各種演算法應用到實際的電梯調度中
說明 假設大廈有31層樓.電梯每經過1層(不論上下行)的時間是4秒.也就是說,電梯從1樓到31樓且中間不停則需要(31-1)*4=120秒.電梯每次需要停10秒,因此,如果電梯每層都停一次,就需要30*4+29*10=410秒.與此同時,員工步行一層樓(不論上下行)需要20秒,從1樓到31樓就需要30*20=600秒.明顯,這個主意不好.因此,很多員工依賴電梯前往他們的辦公室.現在我們需要設計一個方案,這個方案的設計目標是讓最後一個到達辦公室的員工花費最短的時間(也就是說,他並不保證每一位員工都能最快到達自己辦公室).比如,如果員工想到達4,5和10層,則電梯的運行方案是在4和10層停止.因為電梯在第12秒到達4層,停止10秒,則電梯到達10層需要3*4+10+6*4=46秒.按此計劃,住在4層的員工需要12秒,5層的員工需要12+20=32秒,10層的員工需要46秒.因此,最後到達辦公室的員工需要46秒.對於大家來說,這是個不錯的方案.
實現 下面就詳細說一說我實現的具體方式,雖然花了我近2天的時間,但是其實並不是很復雜,這里我本著拋磚引玉的原則,下面就一起來看看吧:
我們將定義一個名叫Case的class用來存儲一些要測試的數據,然後再定義一個叫CaseUtil的class用來實現我們的方案。
首先我說一下具體得思路:這里我只考慮從下到上的方案(從上到下其實是一樣的,具體自己想吧)。舉個例子,假設當前的樓層是【29 30 31】.3個。那麼我們該如何做呢?
首先,不管怎麼說,假設最後一層即31的到達時間為 (31-1)* 4 + (stopNums-1)*10 說明一下,這里為了簡單起見我們就按照案例的數據進行分析,實際上4表示電梯經過每層所需時間,而10表示電梯每層停靠的時間。上面的stopNums是什麼呢?就是電梯到達31層時所有的停靠次數,減去1是除去31層得停靠。而最後一層到達的人則很可能為最後一位到達的人,為什麼不是一定呢,按照本例,上面舉得例子就可以很簡單的看出,在28、31停2次即可,此時最後一個到達的就是地30層的人了。當然在僅僅是在本例中,實際上會由於具體數值不一樣而有不同。所以這里我用了可能,而它也和我們的最優解很接近了,而這給了我想法。雖然最後一層不一定是最後一位,但已經很接近了,而它所花費的時間,僅僅只和一個變數有關,即stopNums,即可以得出如下結論:
電梯的停靠次數越少,最後一層的時間也就越少,同樣最佳時間也就越少。
假設我們有一個方法可以根據當前的停靠次數來計算最佳的停靠方案,那麼我們該如何得到實際最佳方案呢?下面的一段代碼很好的可以達到我們的目標。