Compilation: ------------ There are two commands available to compile the code. 1- Debug mode Use the "make.debug" script to compile the code using debug mode. Command "# ./make.debug" 2- Release mode Use the "make.rel" script to compile the code using release mode. Command "# ./make.rel" User can use the commands listed in the script files to compile with more options as well, such as --enable-warnings Enable the warnings during compilation process, see the "configure.ac" for list of warning flags The compilation script will look for required header files to confirm code compilation Required files to run the compilation script properly NEWS, ChangeLog, AUTHORS, README, Makefile.am, src/*, include/* project options Once the code is compiled and a binary "src/sched" is created we can provide the following input parameters to binary Usage: sched [options] Schedualing policy sched [-v] -[R <k>|S|F] [-f <filename> |-r n] -v, --verbose More output -R, --roundrobin NUMBER Set policy as round robin with time quntam -S, --shortest Set policy as shortest remaining job first -F, --firstcome Set policy as first come first serve -f, --filename FILENAME Use file for input processes -r, --random NUMBER Use random number of jobs For debugging mode only, additional flag -d, --debug Show debugging information NOTE: the command "sched -R NUMBER", the number is provided after a space e.g. commands: ./sched -R 8 -f input.txt ./sched -v -F -f input.txt ./sched -vSf input.txt ./sched -vR 2 -f input.txt ./sched -vFr NOTE: The round robin algorithm uses the current process in RUNNING state as a proirity process, if the time quantum expires for a processes and another process has not yet been added to READY state, current process will keep the RUNNING state. If a process is in RUNNING state, and it's quantum is expired, and there is another process in READY state. So the process in RUNNING state will be ahead of any other process coming to the READY queue.