我有結構的載體,具有結構看起來像這樣:我將如何實現FCFS處理器調度模擬器?
struct myData{
int ID;
int arrivalTime;
int burstTime;
};
填充我的矢量與此數據後:
1 5 16
4 7 12
3 12 4
2 7 8
其中每行是一個單獨的結構的ID(任意的,沒有按't表示到達順序),arrivalTime和burstTime,我將如何使用「for」或「while」循環來遍歷矢量的索引並計算數據,以便我可以打印出類似的內容?
Time 0 Processor is Idle
Time 5 Process 1 starts running
Time 21 Process 2 is running
Time 29 Process 4 is running
Time 41 Process 3 is running
我想我能做到這一點是有一個整數跟蹤當前的時間是什麼(當前暫時的那些已經運行過程突發時間的總和)的方式,但我不能似乎找出了一個算法來解釋閒置時間(當處理器沒有做任何事情,新任務尚未到達)以及跟蹤其他數字。爲了簡單起見,我只是決定,當兩個進程在同一時間到達時,我將處理具有較低ID號的進程。我知道我沒有在這裏展示很多代碼來展示我想要做什麼,但我希望我已經相當清楚地解釋了它。我正在尋找一個僞代碼算法解決這個問題,但我不會拒絕那些已被編碼的東西(在C++中?)。
作爲附加的註釋,萬一我無法表達我內心清楚地訪問我的數據,這樣的:
cout << structVector[0].ID << "\n";
cout << structVector[0].arrivalTime << "\n";
cout << structVector[0].burstTime << "\n";
會打印出
1
5
16
在僞代碼任何幫助或實際的代碼將非常感謝!在閱讀了這篇文章幾次之後,我意識到我對這個問題已經很通用了,但是我只想知道如何計算這些數據。
非常感謝!我看到我對這個過程有點過分的想法。我將「while」部分和「if」聲明放下,但我錯過的細節是稍後增加了爆發時間。看起來有足夠的睡眠不知道理解一個簡單的算法! – ahabos