


Uniprocessor Scheduling
Uniprocessor scheduling is one of the prime aspects when dealing with operating systems. It tries to allocate the CPU time of one processor among various competing processes or tasks. Its main objective is the optimization of system performance, fairness, and responsiveness by effective allocation of the CPU time to competing processes.
Scheduling Criteria
Several criteria are used to evaluate the efficiency of a uniprocessor scheduling algorithm. These are:
CPU Utilization: It is the time for which the CPU remains busy in executing the processes. Throughput: It is the number of processes executed in a unit of time. Turnaround Time: This is the complete time taken to finish a process. Waiting Time: The time spent by a process in the ready queue waiting. Response Time: The time that takes to respond to any process request. Scheduling Algorithms Various uniprocessor scheduling algorithms have been developed to optimize these criteria. A number of well-known algorithms are as follows:
First-Come-First-Served FCFS Scheduling: This is simple to implement, but may result in poor performance and starvation. SJF Scheduling: This is optimal with respect to average waiting time but may lead to starvation. Priority Scheduling: In this strategy, each process is assigned a priority based on its priority number or some other factors. Round Robin RR Scheduling: In this strategy, each process is granted a fixed time slice, also referred to as a time quantum.
Multilevel Feedback Queue Scheduling (MFQ): This is a variant of the round-robin scheduling strategy with more than one queue, each with a different time quanta. Every algorithm has its high and low points, and the choice between them depends upon the real needs of a system.