FIT2100 Process Scheduling Simulation
Simulating scheduling algorithms is an excellent way to test and compare different algorithms in various scenarios. It helps in choosing an appropriate algorithm both for an OS or large scale systems. On such systems, the access patterns of resources (e.g, CPU, memory) by users/processes, and the necessary system metrics (e.g., process turnaround time, CPU/memory usage) can be recorded for later analysis. Also, data from a real system can be used
as an input to simulate the processes/applications from a real system, and to test how the system would perform with different scheduling algorithms. In this assignment, you will create three different scheduler programs that each implement a different process scheduling algorithm to simulate the scheduling of processes in a system.
You will not be doing scheduling of real processes, however your programs will determine the sequence in which a certain number of ‘imaginary’ processes are to be executed.
This document constitutes the requirement specification for this assignment. You will be assessed on your ability to both comprehend and comply with the requirements as specified herein.
Late submissions: A late submission penalty of 10% of the total assignment marks per day will apply. except in exceptional circumstances.
This assignment is worth 15% of the total marks for this unit 2 If you require extra help If you are stuck and/or not knowing where to begin, refer to the helpful hints in section 6.
This assignment is an independent learning and assessment exercise. You may utilise the Ed Discussion Forum to ask questions and obtain clarification, however you may not share details or code in your implementation with other students, nor may you show your code to the teaching team prior to submission. This is an assessment task: tutors and lecturers should not be helping you debug your assignment code directly
3 About the ‘processes’
In this assignment, we will use a simplified model of a process, where each process:
1. has a pre-defined total service time, and
2. does not use I/O and can never be in a blocked state, and
3. will eventually run to completion and does not encounter any errors (e.g. segmentation faults).
3.1 Important notes
PCBs should be used to hold the information about the current processes of the system only. You MUST NOT: • store the information of a process which has not yet arrived (i.e. has an arrival time in the future), or has been terminated