Skip to content

Latest commit

 

History

History
54 lines (34 loc) · 2.87 KB

README.md

File metadata and controls

54 lines (34 loc) · 2.87 KB

Task Scheduling Simulator

This project contains a task scheduling simulator that reads environment and workflow settings from configuration files and applies various scheduling algorithms to the tasks defined in the workflows. The scheduling results can then be exported in a convenient format for further analysis.

Main Class Description

The Main class represents the entry point of the task scheduling simulator. The main method of this class:

  1. Reads the configuration file to set up the environment and workflow settings.
  2. Initializes the list of scheduling algorithms to be used in the simulation.
  3. Runs the simulation for each combination of workflow and scheduling algorithm.
  4. Optionally, prints the final schedule of tasks for each workflow to the console.
  5. Optionally, exports the final results in a json format.

The simulate method of the Main class runs a simulation of task scheduling using the provided workflow settings, environment settings, and scheduling algorithm names. The method returns a list of SchedulingResult objects, each representing the outcome of a scheduling simulation for a given workflow and algorithm.

Usage

Before running the simulator, ensure that the configuration file is correctly set up with the paths to the workflow files and environment settings. The simulator currently supports the following scheduling algorithms (The details of this algorithm can be found in following DOI):

To run the simulator, execute the Main class in your Java environment. The results of the simulation can then be viewed in the console or exported in a JSON format for further analysis.

Building & Running

Make sure you have a compatible version of Java installed on your system. Then, compile and run the project with the following commands:

javac Main.java
java Main

Please replace the paths and filenames as per your system settings.

Contributing

We welcome contributions! Please submit a pull request with your improvements.

License

This project is licensed under the terms of the MIT license.

Contact

If you have any questions, feel free to reach out or open an issue.