The round-robin (RR) CPU scheduling algorithm has advantages and disadvantages. An advantage of RR is that starvation is never a problem. RR ensures that all processes in the job (process) queue share a time slice on the processor. Time slicing is defined as the allocation of limited intervals of time (quanta) to programs in contention for use of the CPU. A time slice is simply an amount of time that each job (process) will spend on the processor per iteration of the RR algorithm. All jobs are done in a FCFS algorithm fashion but are preempted after a time slice. The job will either finish in the time slice given or the job will be returned to the tail of the job queue and return to the processor at a later time. This is a disadvantage since all jobs are basically given the same priority. RR also favors short virtual processes and penalizes long ones.