https://demo.kale-ryan.top/rr/
You can use the default queue for testing, or you can upload a text file. The text file must follow a certain format. Please refer to the default queue.
Make a graphical interface application that can open a local text file, read the information and convert it into a process list, schedule the processes, and display the scheduling situation on the graphical interface. The production of the graphical interface should consider cross-platform so that it can run on both Linux and Windows platforms.
The entire project should be as low-coupling and high-cohesion as possible to ensure system flexibility, maintainability, and scalability, and enhance code reusability.
As the main development language, C# uses the ASP.NET CORE framework. The overall architecture is a front-end and back-end separation. Multi-thread concurrency is used to simulate CPU scheduling and I/O parallelism. The structure of the solution is as follows.
RrScheduling
├── RobinRound
└── WebApp
The RobinRound project is a class library for scheduling algorithms. The main project structure is as follows.
RobinRound
├── Instruction.cs
├── InstructionType.cs
├── Pcb.cs
└── Scheduling.cs
WebApp is the implementation of a graphical interface, based on the ASP.NET CORE framework. For the convenience of programming, the front-end files and back-end services are put into one project. The main project structure is as follows.
WebApp
├── Middlewares
├── Models
├── Pages
├── Program.cs
└── Services
The front-end and back-end exchange scheduling information through WebSocket connections. The Middlewares folder contains middleware for processing WebSocket requests. Models contains various classes for processing data. Pages contains front-end web page files. Services contains services injected into the framework (services that call process scheduling methods. ).