An Electron desktop application for simulating major operating system scheduling algorithms.
The app uses EJS templates, and Express. The core app (scheduling algorithms) is written in JavaScript.
An old version of the app uses HTML instead of EJS and Express, but there was a separate HTML page for each algorithm page which were identical for the most part except the titles and some minor changes in the tables so I thought having a new version using EJS and Express would be more convenient.
- Simulate the execution of the most well known OS scheduling algorithms, the app contains the following algorithms:
- First Come First Serve
- Shortest Job First - Preemptive
- Shortest Job First - Non Preemptive
- Priority - Preemptive
- Priority - Non Preemptive
- Round Robin
- Real time simulation. No need to refill the process table to add a process like other scheduling simulation applications
- Remove a process and re-simulate with one click
- Input validation
Make sure you have Node.js installed then follow the steps below:
-
Fork the repo or download the current branch as zip
-
cd
into the project directory and runnpm install
-
To package the app, run :
npm run package:linux
for Linuxnpm run package:win
for Windowsnpm run package:mac
for Mac
This assumes you're on a x64 architecture, modify the
package.json
file to package for x32
Here's the full list of used libraries and frameworks:
Tool | Use |
---|---|
Electron | Packaging as a desktop application |
Express | Rendering EJS views and handling URL query parameters |
EJS | Templating HTLM |
ApexCharts.js | Charting library |
Materialize | CSS Framework |
webpack | Bundling helpers, views and the core algorithms into a single JavaScript for each algorithm |