Assignment title: Information


Here is the next assignment which will be a continuation of the scheduling algorithms and context switching emulator as follows: Specification: - Extend PCBlock class/struct to add the following members: a) one that takes two possible values: CPU-Bound or IO-Bound b) the other that is an integer to capture how much Burst Time it needs in units - Instead of having just one queue , we implemented before as a ArrayList in Java or Array of Struct in C, have multiple queues: One for ready processes, one for waiting processes, and one for new processes. - Implement two different types of schedulers: a short-term scheduler for the CPU-bound processes, and another long-term scheduler for the IO-Bound processes. - Your system should accept processes data from the command line or from a file then reads from it. The end user of your system should also specify which algorithm to run against processes data entered. Once all data and scheduler are entered, your system must emulate the creation of processes, moving them to new queue, and then scheduling them for long-term or short-term based on the Burst-Time value you specified for the process. The system should also demonstrate the moving of processes from one queue to another based on its state. If a process if transitioning from the new state to the ready, it must be moved to the ready queue. Similarly, if a process is transitioning from the ready state to the waiting state, it must also be moved to the appropriate queue. Your system must show at least 15 processes, 10 for the short-term scheduling and 5 for the long term scheduling. Your system must also alternate between the two types of scheduling. Show how your system is dealing with the process starvation problem implementing one of the following techniques proposed by our classmate Tom Leonard: 1- https://twitter.com/TomTheLeonard/status/849727892116426753 2- https://twitter.com/TomTheLeonard/status/849728020457943040 Your system must run until all processes are terminated. Output for Submission: Your output should be formatted neatly and printed to the console. It must show the following transitions: 1- when processes are created 2- when processes are moved into queues and which queue 3- when processes are transitions from a state to another and the corresponding queue 4- what type of scheduling is taking place 5- what scheduling algorithm is used. I am giving you the flexibility to design output based on your own preference and your own creative thinking. However, any unconvincing output that is hard to read, will be immediately considered incorrect. In doubt, you always check out the "ps aux" Linux command and see its output for the processes running on your own linux based laptop. You can be inspired by that and develop something as simple yet powerfully demonstrating. You should provide your output as a screenshot along with your code, zipped and sent to the TAs. Here is the screenshot for running ps aux command on my own terminal: Please read the instructions very carefully, and multiple times, before you ask questions. This work is a continuation of what we developed last time along with a few new features. Make sure you state your assumptions.