2013-03-24 28 views
0

我正在嘗試編寫代碼來模擬下一個最短的工作或下一個使用bash的最短工作,並且我在處理它背後的邏輯時遇到了一些麻煩。我從一個具有程序名稱,到達時間和爆發時間的文件中讀取數據。所以說吧最短的工作下一個計劃代碼邏輯幫助BASH

A | 1 | 5

B | 2 | 3

C | 3 | 2

D | 4 | 4

E | 6 | 3

繼承人我的思想過程到目前爲止。我使用bash腳本,因此我將數據分解爲3個獨立的數組。過程,到達和爆發。我創建了一個名爲totaltime的第四個數組。實際上,我知道這就是日程表應該看起來像

| 1 |過程A | 5 |過程C | 7 |過程B | 10 |過程D | 14 |過程E | 17 |

我的代碼邏輯首先檢查到達數組並找到最小值,並且該行對應於要調度的第一個進程。下一步檢查哪些進程的到達時間少於第一個進程的突發時間。在這一套流程中找到最聰明的突發時間。現在,這是我堅持的地方。我是否使用if語句來檢查哪些進程小於第一個突發時間,然後使用for循環來查找該集合的最小突發時間?之後,我將如何安排第三個過程?

+0

你爲什麼在'bash'中做這個?不管實現語言如何,該算法都是相同的,但是'bash'的數據結構支持選擇最短的剩餘工作是......想要的。 – chepner 2013-03-24 15:32:22

+0

bash的任務調用:( – user1633176 2013-03-24 17:40:27

回答

0

您可以做的是創建一個小於第一個突發時間的進程數組,然後對該數組進行排序。第一個結果將是最小的突發時間。

+0

我該如何安排不適合該類別的進程? – user1633176 2013-03-24 17:41:26