Your task is to develop a simulation of a dispatcher/scheduler that assigns processes (or jobs) to a set of available processors or processing nodes.
Assume that your computing infrastructure has 6 processors available. Processors are identified as PA, PB, …, PF. Now consider the system contains n = 250 processes with different runtime requirements. Specifically, each process has associated with it a burst time (processing time) and a memory requirement. Burst‐times are assigned at random (10 * 106 – 10 *1012 cycles). Memory requirements are assigned at random (1 MB – 16GB).
For questions 1 – 3, you may assume that the set of 250 processes is known a‐priori; Hence, your algorithms will have full knowledge of all the processes in the system at the start of the simulation.
1. Suppose that all 6 processors are identical (i.e., same speed and memory), benchmark each of the following scheduling algorithms that we talked about in class. Compute the average wait time and average turnaround time for each scheduling algorithm.
2. Modern CPU design is moving towards the heterogenous computing architecture. Made famous by ARM and their big.LITTLE design, newer CPUs have been designed with two types of processor cores. A set of power‐saving efficiency cores paired with high‐performance cores. Assume that our system has been upgraded to use a heterogenous CPU with half of the cores are efficiency cores. Specifically: PA = PB = PC = 2 GHz, and PD = PE = PF = 4GHz. Develop an algorithm that minimizes the turnaround time of the set of processes.
3. In order to execute a process on a specific processor, sufficient memory has to be available. Assume that the processing nodes are identical in speed to Part 2 but have the following memory availability: PA = PB = PC = 8 GB, and PD = PE = PF = 16GB. Modify your algorithm from Q2 to assign processes to the previously described processors. Show how well your algorithm minimizes the turnaround time of the set of 200 processes. Compare the results of your solution to the results from Part 2.
4. Finally, modify your scheduling algorithm so that it can deal with the sequential arrival of the 250 processes. The scheduler cannot inspect the entire set of processes but must schedule them one by one in the order that they arrive. What is the best turnaround time you can achieve?
NOTE: You do not need to generate actual processes. You only work with the set of “synthetic” processes.
Deliverables: Write an approximately 5‐page report that highlights the problem and describes your scheduling algorithm. You must discuss all the limitations and assumptions. In detail, show how you analyzed the performance (i.e., turnaround time and/or average waiting time) and present your results. You must submit your programs (i.e. algorithms) with your report