This document discusses various CPU scheduling algorithms. It describes non-preemptive and preemptive scheduling and covers scheduling algorithms like first-come first-served (FCFS), shortest job first (SJF), priority scheduling, round robin, multi-level queue scheduling, and multi-processor scheduling. It provides details on how each algorithm works and its advantages and disadvantages.