Time slice
A time slice is numerical value that represents how long a task can run until it is preempted. If the time slice is too long, there would be poor interactive performance. If the time slice is too short, there would be a large overhead incurred in switching processes.
The default time slice is low ~10 milliseconds.
The Linux CFS scheduler does not directly assign time slices to a process. Instead, it assigns to the process a proportion of the processor. (A process receives time slice that is a function of the load on the system, weighted by the niceness value)
When a process enters a runnable state, it become eligible to run. Under the Linux CFS scheduler, the decision to run the process is a function of how much of a proportion of the processor the newly runnable process has consumed.
If it has consumed a smaller proportion of the processor than the currently executing process, then it preempts the current process and run immediately.
As the number of processes increases infinitely, the amount of time slice will tend towards zero. This is prevented by implementing a minimum granularity, which is the minimum time slice that is defaulted to 1 millisecond.