

Uniprocessor scheduling refers to how a single CPU (uniprocessor) manages the execution of multiple processes. Since only one process can run at a time, the system needs to decide the order in which processes are executed. The goal is to optimize CPU usage and improve system performance. There are several types of uniprocessor scheduling algorithms:
1. First-Come, First-Served (FCFS): Processes are executed in the order they arrive. Simple but can lead to long wait times if a process with a long execution time arrives first.
2. Shortest Job Next (SJN): The process with the shortest execution time is selected first. It minimizes waiting time but requires knowledge of job length in advance.
3. Priority Scheduling: Each process is assigned a priority, and the CPU executes the highest-priority process first. Lower-priority processes may starve if higher-priority processes keep arriving.
4. Round Robin (RR): Each process gets a fixed time slice (or quantum). After its time slice expires, the process goes to the back of the queue. This ensures fairness but may increase context switching overhead.
5. Multilevel Queue Scheduling: Processes are divided into multiple queues based on priority or type, and each queue has its own scheduling algorithm.
6. Multilevel Feedback Queue: A dynamic version of multilevel queue scheduling where processes can move between queues based on their behavior (e.g., CPU-bound vs. I/O-bound processes).
Uniprocessor scheduling ensures that resources are used efficiently and processes run smoothly on single-core systems.