you are required to simulate the starving problem that a process may suffer if all other processes in the system have higher priority than its priority.
It is required to create at least two processes (P1 and P2) with priorities 40 and 35 for example. You should create a third process (Pstav) with less priority such as 25.
You may need to put P1 and P2 in the sleep state every couple of seconds to simulate a context switch between P1 and P2. When P1 sleeps, P2 will run and when P2 sleeps, P1 will run. Until now, Pstarv will not be able to run since its priority is the lowest priority. You need to fix that. You are required to change/update/increase the priority of Pstarv each time a context switch occurs.
So, after a number of context switches, Pstarv will finally be able to run to print its ID and print a celebration message.
Feel free to assume any missing information such as should you have a flag or an argument to decide which process you are interested to avoid starvation, should you use shell commands or not, should you increase the Pstarv priority by 1 or by 5…..… etc. P1 and P2 should not know anything about the Pstarv process. Do not hardcode it inside P1 or P2. So, you should not include the code of increasing the Pstarv priority in P1 nor P2.
1. A video file for Question 1 explaining the code and showing the results. Do not include the make clean, make, ./upload.sh, sudo minicom, and opening the back end in your video to reduce the video file size.
3. A single pdf file that includes the following:
3.1 Codes of every file you edited highlighting in yellow for question
4. The files that you changed/edited (such as .c and .h files)
5. A tar file of xinu includes all files (changed or not changed)