Let's take a quick look at the essential background information we require to understand CPU scheduling on Linux.
Note that in this book, we do not intend to cover material that competent system programmers on Linux should already be well aware of; this includes basics such as process (or thread) states, the state machine and transitions on it, and more information on what real time is, the POSIX scheduling policies, and so on. This (and more) has been covered in some detail in my earlier book: Hands-On System Programming with Linux, published by Packt in October 2018.