PROBLEM STATEMENT:
Assume that $P_A$, $P_B$ and $P_C$ are three distinguished programs. Assume that processes executing $P_A$ have a
priority of 2, processes executing $P_B$ have a priority of 3 and processes executing $P_C$ have a priority of 1. In order
to complete their execution, $P_A$ needs 10 ticks, $P_B$ needs 7 ticks and $P_C$ needs 5 ticks. Assume that processes
running $P_A$ and $P_B$ will fork a new process every 3 ticks of execution. The process running $P_A$ forks new
processes which execute $P_B$ while the process running $P_B$ forks new processes which execute $P_C$. Assume that 2
processes $P_1$ and $P_2$ have arrived at t=0. $P_1$ and $P_2$ are going to execute programs $P_A$ and $P_B$ respectively.
Furthermore, there is some hardware failure in this computer system that generates periodic signals and sends
them to the currently running process every 3 ticks. The first signal arrives at time t=3. Implement this scenario
illustrating the scheduling of these processes if a priority with a round-robin scheduling algorithm is used.
Assume that a time quantum of 4 is used. Also assume that a smaller priority number means a higher priority.
Kindly Note:
If a signal arrives at the end of time stamp expiration of the previous process and start of execution of a new
process, then the signal will be received by the newly executing process.
Your program is expected to:
A. Display the correct Gantt Chart showing appropriate time intervals. (35 points)
B. Display the total number of signals received by each individual process. (15 points)
Submission Rules:
You can only use these programming languages i.e; C, C++, or JAVA to code your project. You can submit files
with any of these extensions i.e; '.c', '.cpp', '.cc' or '.java'.