NOTE: even though both C and Python code are used in this implementation, the Scheduling algo rithum is ran and the output files are created from Scheduler.c, toGraph.py is only used to take the output files generated by Scheduler.c and convert to .png graphs. Python was used only for graphing as the C graphing libraries I found did not support the broken-bar-graphs that plotting the schedinging algorithum requires. The Scheduler.c function makeGraph() calls the main function of toGraph.py. PYTHON IS NOT USED FOR SCHEDULING!
DEPENDENCIES
linux ubuntu distribution+
Linux Ubuntu distribution+
Python 3.9.1 *
gcc (Debian 10.2.0-9) 10.2.0 *
python3-matplotlib 3.3.2-2+b1 *
*The thing I used but earlier versions of the software may also work, but this is not tested and not guarenteed
*Used in development and for video. Earlier versions of the software may also work, but this is not tested and not guarenteed
+ No garentees provided for working on other platforms (e.g. windows)
RUNNING
check installed dependancies,
clone repo from https://git.soton.ac.uk/os4g18/comp3215-realtimescheduling.git,
run command 'make' in cloned directory ,
check input file is in right format and this directory,
run command './Scheduling filename.txt'
this generates RMSoutputfilename.txt, EDFoutputfilename.txt, RMSoutputfilenameGraph.png, EDFoutputfilenameGraph.png
Check installed dependancies,
Clone repo from https://git.soton.ac.uk/os4g18/comp3215-realtimescheduling.git,
Move to new created directory,
Run command 'make',
Check input file is in right format and this directory,
Run command './Scheduler filename.txt' to run your own file or 'make run' (see MAKE COMMANDS) to run './Scheduler Testcase1.txt' from git,
@@ -61,12 +64,19 @@ make full, wipes generated files, remakes executable, runs testcases 1 to 4
EXTRA FEATURES:
Ability to take multiple files as input, './Scheduler Testcase1.txt Testcas2.txt'
Run graph program directly with valid Scheduler.c output file, 'python3 toGraph.py EDFoutputTestcase1.txt '
Ability to take multiple files as input, './Scheduler Testcase1.txt Testcas2.txt', and generate all output files at once.
Run graph program directly/independantly with valid Scheduler.c output file, i.e. 'python3 toGraph.py EDFoutputTestcase1.txt '
Ability to take multiple files as input, 'python3 toGraph.py EDFoutputTestcase1.txt RMSoutputTestcase1.txt '
scheduability tests
Output in stdin of scheduability tests of RMS and EDF. Check terminal or the functions 'void sucheduleableRMS(Task *list);' and 'void sucheduleableEDF(Task *list);' in Scheduler.c
TO IMPLEMENT:
for both, take one or multiple folders as input, outputs to specific folder
I have partially implemented these features but due to lack of time/not being directly called for by the specification, they have either not been implemented or commented out.
For both scheduler.c and toGraph.py, take one or multiple folders as input and proccess them as a batch.
For both scheduler.c and toGraph.py, take a folder location to save the output files in a specific folder to avoid clutter in main directory and for organisation.