Giter Club home page Giter Club logo

task-scheduling-simulator's Introduction

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.


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.