/cpu-schedular

cpu schedular dislay console on linux

Primary LanguageC++

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.