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. SRT will use burst time.
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. When a job completes, you will print out the following information:
a) Arrival time
b) Completion time
c) Service time
d) Turnaround time
e) Normalized turnaround time