This document discusses CPU scheduling algorithms in operating systems. It begins with basic concepts of CPU scheduling and outlines scheduling criteria like throughput, turnaround time, waiting time and response time. It then explains common scheduling algorithms like first-come first-served (FCFS), shortest job first (SJF), priority scheduling, round robin (RR) and describes examples of each. It also covers multilevel queue scheduling, thread scheduling, and real-time scheduling algorithms.