This document provides an overview of CPU scheduling concepts and algorithms. It discusses key scheduling concepts like processes, ready queues, context switching and dispatch latency. It then covers common scheduling algorithms like first-come first-served (FCFS), shortest job first (SJF), priority scheduling, and round robin (RR). The document also discusses more advanced scheduling techniques such as multilevel queue scheduling, multilevel feedback queues, multiple processor scheduling, real-time scheduling and thread scheduling. Finally, it provides examples of scheduling in specific operating systems like Solaris, Windows and Linux.