Reference no: EM132248785
Lab
We have discussed the default Xinu scheduling algorithm - priority based round robin.
In this lab assignment, you are required to apply the modifications necessary to implement a FCFS scheduler in Xinu instead of the priority based round robin.
FCFS, unlike the priority based round robin, is a non-preemptive algorithm. Meaning that, once started a process runs to completion without any context switching or it yields the processor willingly, i.e. wait, sleep etc.
So you need to identify what changes you need to make to disable preemptive rescheduling.
Also you need to identify where a process goes into the ready list.
You need to write a new main.c file as well to show the differences between running three processes (Process 2, process 3, and process 4 "assuming the main is process 1") with priorities 5, 10, 20, respectively in the priority based round robin scheduling vs the FCFS scheduling. It is required to show:
1. At the very beginning, each created process prints its ID only once and then sleeps for 15 seconds.
2. If the priority based round robin scheduling is enabled, you should see something like this
"Process 4 is running
Process 3 is running
Process 2 is running
Process 4 is running
Process 4 is running ............ Process 4 will run forever since it is the highest priority. "
3. If the FCFS is enabled, you should see something like this
"Process 2 is running
Process 3 is running
Process 4 is running
Process 2 is running
Process 2 is running ............ Process 2 will run forever since it is the first created process."
Submission
To submit, create a ZIP file of the following items and submit on the course website:
• A pdf file with all the codes of any file you edited or modified.
[Highlighting modifications, showing the full path of each file, and fully commented code]
• A compiled and tested (xinu) folder that includes all the subdirectories even files you did not change. You can "tar" this folder if you want.
• A video demo. You should start with a short introduction of your modified codes followed by the backend open and finally, showing the results. If the video is too long, kindly, divide it into two or three videos.