In this project you will write a short-term scheduler and observe its properties. It will
work as follows:
1. The scheduler will run in a single process, with simulated jobs.
2. You will implement a scheduler of SRT.
3. Time slice is defined as QUANTUM (100 milliseconds).
4. The program will take three arguments, a random seed, the name of the algorithm to
use, and the length of time to run (in milliseconds).
5. You will simulate the clock interrupt with an alarm signal handler and setitimer(). See
the example in the code (see below).
6. All I/O requests will be handled in 40 milliseconds. That is, when a job is blocked and
removed from the ready queue, it can be added back at the next opportunity if 40
milliseconds have expired. You do not need to schedule a timer to simulate the
I/O interrupt, just handle it when you do the clock interrupt. This way, all events
happen in the alarm handler and you can deal with them in one place.
7. New jobs are created at chance of 10%. Namely, every 100 time slices should have 10
jobs RANDOMLY created.
8. When a job completes, you will print out the following information:
a) Arrival time
b) Completion time
c) Service time
d) Turnaround time ( = Completion time - Arrival time)