I have searched high and low across google, even throughout my textbook...
I have this project where you have to design the different types of CPU schedulers and write them in C. If there are three processes (arriving in this order), P1, P2, P3, and each process has a CPU Burst, then an I/O Burst, followed by another CPU Burst, etc, etc...
My question is in the scenario of a FCFS scheduler:
So if P1 arrives first, and uses the CPU for 10 seconds during its CPU Burst cycle, and then it has an I/O Burst for 5 seconds, and then it will have another CPU Burst of 15 seconds lets say, I am confused to exactly what occurs.
As soon as P1 finishes its first CPU Burst, and then has its I/O Burst, the CPU is now free. So would the fcfs scheduler chose the next process, P2 to use the CPU? Or does P1 get to execute until it terminates?
If P2 uses the CPU while P1 is doing its I/O burst, what happens to P1 when it finishes its I/O Burst? Does it go back to the ready queue, and wait in line all over?
This is of course assumming that each process is composed of many many many CPU Bursts, and I/O bursts.
I cannot find any reference to this. Every text and wiki page I read just talks about the "burst". I have kind of got the impression, although extremely indirectly, that when a process is doing an I/O burst, after it finishes this it goes back to the ready queue.