當前位置:首頁 » 操作系統 » 電梯調度演算法

電梯調度演算法

發布時間: 2022-01-26 09:52:14

⑴ 如何將各種演算法應用到實際的電梯調度中

說明 假設大廈有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,即可以得出如下結論:

電梯的停靠次數越少,最後一層的時間也就越少,同樣最佳時間也就越少。

假設我們有一個方法可以根據當前的停靠次數來計算最佳的停靠方案,那麼我們該如何得到實際最佳方案呢?下面的一段代碼很好的可以達到我們的目標。

⑵ 急!!!用C或C++編寫操作系統中的電梯調度演算法的程序。麻煩加QQ353594736,備注百度知道,非常感謝!

我有一個,但是沒有計算尋道時間的,你要不要?

⑶ 最短尋找時間優先 電梯調度 相同點不同點

  1. 設定系統中有五個進程,每一個進程用一個進程式控制制塊表示。

  2. 2.輸入每個進程的「優先數」和「要求運行時間」,

  3. 3.為了調度方便,將五個進程按給定的優先數從大到小連成就緒隊列。用一單元指出隊列首進程,用指針指出隊列的連接情況。

  4. 4.處理機調度總是選隊首進程運行。採用動態優先數演算法,進程每運行一次優先數就減「1」,同時將運行時間減「1」。

  5. 5.若要求運行時間為零,則將其狀態置為「結束」,且退出隊列。

  6. 6.運行所設計程序,顯示或列印逐次被選中進程的進程名以及進程式控制制塊的動態變化過程。

⑷ 高手給解釋下,操作系統中的,電梯調度演算法和掃描調度演算法的區別到底是什麼最好舉例圖

操作系統概念那本書上有圖,電梯就是磁頭一直向左然後一直向右這么來來回回。CSCAN就是磁頭一直向左,然後再回到右邊開始一直向左,類似於示波器的逐行掃描。

⑸ 電梯調度演算法

(1)電梯調度演算法的處理次序為:
5
8
1
4
3
6
2
7
(2)最短尋找時間優先演算法的處理次序為:
5
8
6
2
7
1
4
3

⑹ 有沒有大神會做這道採用電梯調度演算法執行磁碟調度的題

最短尋找樓層時間優先(SSTF-Shortest Seek Time First) [14]演算法,它注重電梯尋找樓層的優化。最短尋找樓層時間優先演算法選擇下一個服務對象的原則是最短尋找樓層的時間。這樣請求隊列中距當前能夠最先到達的樓層的請求信號就是下一個服務對象。在重載荷的情況下,最短尋找樓層時間優先演算法的平均響應時間較短,但響應時間的方差較大,原因是隊列中的某些請求可能長時間得不到響應,出現所謂的「餓死」現象。

⑺ 磁碟調度演算法中的電梯調度演算法可以應用於實際電梯中嗎

磁碟調度演算法中的電梯調度演算法可以應用於實際電梯中。
1.電梯的基本需求功能
每一架電梯都有一個編號,以方便監控與維修。每一架電梯都有一實時監控器,負責監控電梯上下,向電梯升降盒發送啟動、制動、加速、減速、開關電梯門的信號。若電梯發生故障,還應向相應的電梯負責人發送求救信號。
2.電梯按鈕功能分析
電梯(升降盒)上下來回地運動,電梯內部有一些按鈕,每一個按鈕代表一層樓,當按下按鈕時,按鈕的燈亮。電梯沿某一方向運動,在將要到達某一層樓時,實時監控器判斷電梯內是否有乘客要在此層樓下電梯,若有,則發送信號給電梯升降架,讓其減速,同時讓電梯在此層樓的電梯入口處平穩地停下,電梯停下後,實時監控器讓電梯內相應的按鈕燈滅,讓乘客出電梯,然後關閉電梯門,而且繼續朝原方向運動,直至到達當前運動方向上,有乘客要求到達的最後一層樓為止(即如:若該建築物有50層,電梯當前正向上運動,若有乘客要求到達的最高樓層為30層,則電梯運動到30層之後,若30層以上沒有乘客發出請求,則電梯可根據電梯內是否「有人」而向下運動或停止)。
除底層和頂層只有一個按鈕外,每個樓層有兩個按鈕,分別指示上樓和下樓請求,當按下後,按鈕燈亮,並向實時監控器發送請求,實時監控程序負責判斷乘客的上下樓請求是否與電梯的當前運動方向一致,若不一致,則暫不受理此請求,此時按鈕燈繼續亮;若一致,則實時監控器將相應的上下請求按鈕燈熄滅,並讓電梯平穩地停在此層樓的電梯入口處,讓相應的乘客入電梯,而後繼續朝原方向運動。若同時有兩層或兩層以上的樓發出請求,產生了沖突,則實時監控器調用沖突處理器進行抉擇,受理其中的一個請求,並負責將各請求上下樓的按鈕燈熄滅。
3.當電梯發生異常現象時的功能需求
若電梯發生故障時,則實時監控器立即將電梯置為「不可用」狀態,並且忽略任何請求,同時向相應的電梯管理人員發送求救信號。待電梯修復後管理員可將電梯置為「工作」狀態,然後恢復正常工作。
希望我能幫助你解疑釋惑。

⑻ 求關於 多部電梯調度演算法研究

這里是我 一些 想法 LZ可以看看 在這里 主要告訴你的是 C程序設計裡面很重要的一個思想那就是 增量開發
首先設計 一個MAIN函數 確定要調用的函數 在函數裡面 盡量使用指針變數,這是第一塊
第二快: 電梯的初始化
第三快: RUNNING電梯的運行
第四快: 電梯的移動
第五快: 上和下
第六快: 用戶的要求 也就是說 電梯到底是上 還是下的設計
第七快 延遲程序 也就說 等待的時間
第八塊:STOP
按照這個思路的話,代碼加起來有100多行的樣子吧
還有就是 LZ在採用這個思路的時候 一定要對函數的運用 很上手啊
要不在調試的時候很容易出BUG的!
希望能幫到你!

⑼ 操作系統模擬電梯調度演算法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
這樣的話磁頭的總移動距離會相對減少

熱點內容
ios應用上傳 發布:2024-09-08 09:39:41 瀏覽:438
ios儲存密碼哪裡看 發布:2024-09-08 09:30:02 瀏覽:870
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:653
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:744
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:173
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:780
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995