I have an exam and there is a huge confusion which I need to fix.
I know that the difference between SCHED_FIFO and SCHED_RR is that among tasks with the same priority, SCHED_RR performs a round-robin with a certain timeslice; SCHED_FIFO, instead, needs the task to explicitly yield the processor.
Plus, I know that if there is a real-time process in the system no "regular" process will run.
But what I can't understand how RR and FIFO will run together?
Let's say I have the following processes all with same priority, while (f) means it's FIFO and (r) means RR ordered from the one which came first to the latest:
A(r), B(f), C(f), D(r), E(r)
In which order will they run?
What if I change A to (f)?
Now what if I have two processes A and B where A came before B and A is RR while B is FIFO what's the order?
What if A is FIFO not and B is RR?
I other words, I don't know what's more important when we have RR and FIFO together, is it who came first, is it who has more priority or is it always FIFO?