A process scheduler schedules processes for the CPU based on scheduling algorithms. There are five main algorithms: first-come, first-served; shortest job next; priority; round robin; and multiple-level queues. These algorithms are either preemptive, where a process can be interrupted, or non-preemptive. Preemptive algorithms prioritize higher priority processes, while non-preemptive ones do not interrupt running processes.