OS HW3 scheduler

1. This question involves implementing several different process scheduling algorithms. The scheduler will be assigned a predefined set of tasks and will schedule the tasks based on the selected scheduling algorithm. Each task is assigned a priority and CPU burst.

The following scheduling algorithms will be implemented:

1. First-come, first-served (FCFS), which schedules tasks in the order in which they request the CPU.
1. Shortest-job-first (SJF), which schedules tasks in order of the length of the tasks’ next CPU burst.
1. Priority scheduling, which schedules tasks based on priority.
1. Round-robin (RR) scheduling, where each task is run for a time quantum (or for the remainder of its CPU burst).
1. Priority with round-robin, which schedules tasks in order of priority and uses round-robin scheduling for tasks with equal priority.

Note: Please see Page P-29 for a complete description of this Homework. There are supporting Java files for this assignment that will be provided in Files. You may choose any programming language that you would like for this homework, but it would be easier to implement in Java since the supporting files are all Java code.

1. Consider a variation of round robin scheduling, say NRR scheduling. In NRR scheduling, each process can have its own time quantum, q. The value of q starts out at 40 ms and decreases by 10 ms each time it goes through the round robin queue, until it reaches a minimum of 10 ms. Thus, long jobs get decreasingly shorter time slices.
Analyze this scheduling algorithm for three jobs A, B, and C that arrive in the system having estimated burst times of 100 ms, 120 ms, and 60 ms respectively. Also identify some advantages and disadvantages that are associated with this algorithm.