RrScheduling
1.0.0
https://demo.kale-ryan.top/rr/
可使用預設的佇列進行測試,也可上傳文字文件,該文字檔案需依照一定的格式,請參考預設佇列。
製作一個圖形介面應用程序,可以打開一個本地文字文件,讀取其中資訊轉換成進程列表,並對進程進行調度,把調度的情況展現在圖形介面。圖形介面的製作要考慮跨平台,使其能在Linux、Windows 平台都能運作。
整個專案應盡量做到低耦合、高內聚,確保系統的彈性、可維護性、可拓展性,增強程式碼的重用性。
C# 作為主要開發語言,使用了ASP.NET CORE 框架,整體是前後端分離的架構,使用多執行緒並發模擬CPU 調度與I/O 的並行,解決方案的結構如下。
RrScheduling
├── RobinRound
└── WebApp
RobinRound 專案為調度演算法的類別庫,主要項目結構如下。
RobinRound
├── Instruction.cs
├── InstructionType.cs
├── Pcb.cs
└── Scheduling.cs
WebApp 是圖形介面的實現,基於ASP.NET CORE 框架,為了程式方便,把前端檔案和後端服務都放在一個專案裡了,主要專案結構如下。
WebApp
├── Middlewares
├── Models
├── Pages
├── Program.cs
└── Services
前後端透過WebSocket 連接交換調度訊息,Middlewares 資料夾中放置處理WebSocket請求的中間件,Models 放置各種處理資料的類,Pages 放置前端網頁文件,Services 放置注入框架中的服務(呼叫進程調度方法的服務)。