Answer 1 ) FIFO
Round robin and FIFO are related like this
FIFO: First task in, First task out...
Means that as you insert task to the queue, they are in the order processed (the time a task will run is INFINITE, or the task itself can give up CPU time).
Every task is defaultly inserted in FIFO queue.
+ Order of completion is preserved
- long running processes can stall the system.
- less context switch overhead.
Round-Robin:
The same as FIFO, but the time is NOT INFINITE:
time slices are assigned to each process in equal portions and in circular order.
+ Use round robin if it is desirable to allow long running processes to execute while not interfering with shorter ones
+ starvation free
- Order of completion is not guaranteed.
- Round Robin can suffer if there are many processes in the system, since it will take longer for each process to complete since the round trip is longer.
- No prioritization occurs, and waiting time is high. So deadlines are rarely met in a pure Round Robin system.
This link is kinda helpful https://en.wikipedia.org/wiki/Scheduling_%28computing%29#First_in.2C_first_out