Scheduling Criteria in Operating Systems | OS Tutorials YASH PAL, June 8, 2026June 8, 2026 In an operating system, Scheduling criteria can be categorized into two categories:User – OrientedSystem – OrientedUser-oriented criteria related to the behavior of the system as perceived by the individual user or process.System-oriented criteria focus on effective and efficient utilization of the processor. It focuses on system performance rather than service provided to the user.Table of Contents Scheduling CriteriaPreemptive and Non-Preemptive SchedulingGoals of Scheduling AlgorithmsStatic and Dynamic PriorityDifference between Static Priority and Dynamic PriorityScheduling CriteriaThe design of a scheduling policy involves compromising among competing requirements; the relative weights given to the various requirements will depend on the nature and intended use of the system.Preemptive and Non-Preemptive SchedulingCPU scheduling decisions may take place under the following four circumstances:When a process switches from the running state to the waiting state.When a process switches from the running state to the ready state.When a process switches from the waiting state to the ready state.When a process terminates.Among these circumstances, for situations 1 and 4, there is no choice in terms of scheduling. A new process (if one exists in the ready queue) must be selected for execution.When scheduling takes place only under circumstances 1 and 4, we say that the scheduling scheme is Non-Preemptive or Cooperative Scheduling.When scheduling takes place under circumstances 2 and 3, then it is Preemptive scheduling or Non-cooperative scheduling.Under non-preemptive scheduling, once the CPU has been allocated to a process, the process keeps the CPU busy until it releases the CPU either by terminating or by switching to the waiting state.Goals of Scheduling AlgorithmsWhenever a scheduling algorithm is designed, it is necessary to have some idea of what a good algorithm should do. Some goals depend on the environment and are discussed below:All System:Fairness – giving each process a fair share of the CPU.Policy Enforcement – ensuring that stated policy is carried out.Balance – keeping all parts of the system busy.Batch System:Throughput – maximizing jobs per hour.Turn-around time – minimizing the time between submission and termination.CPU Utilization – keep the CPU busy all the time.Interactive System:Response time – respond to requests quickly.Proportionality – meet the user’s expectations.Real-Time System:Meeting Deadlines – avoid losing data.Predictability – avoid quality degradation in multimedia systems.Among all, fairness is important. Comparable processes should get comparable service. Giving one process much more CPU time than an equivalent one is not fair. Another general goal is keeping all parts of the system busy when possible. If the CPU and all the I/O devices can be kept running all the time, more work gets done per second than if some of the components are idle.Microsoft Windows 3.1 and Apple Macintosh Operating System use this scheduling method.Preemptive scheduling is useful in a system in which high-priority processes require rapid attention. In real-time systems, for example, consequences of missing an interrupt could be very devastating.In interactive time-sharing systems, preemptive scheduling is important in guaranteeing acceptable response time.Preemptive incurs cost. Context switching involves overhead; keeping non-running programs in main storage also involves overhead.Static and Dynamic PriorityPriority is a tie-breaking rule that is employed by a scheduler when many requests wait for the attention of the server.The Priority of a request can be a function of several parameters, each parameter reflecting either an inherent attribute of the request or an aspect concerning its service.We also call it a dynamic priority if some of its parameters change during the operation of th request; otherwise, it is called a static priority.Some process reordering could be obtained through priorities as well.For example, short processes would be serviced before long processes; if priority is inversely proportional to the service time of a process, then processes that have received less CPU time would be processed first.To avoid/restrict overhead, schedulers like to avoid using complex priority functions or dynamic priorities; they employ algorithms that determine the order in which requests should be serviced.Difference between Static Priority and Dynamic PriorityThe difference between the two is that the priority of a process will remain unchanged if the scheduler assigns it a static Priority.Scheduling algorithms that assign dynamic priorities allow priorities to change over time.Most operating systems use dynamic priorities when scheduling non-real-time tasks, with the intention of giving higher priority to interactive processes.However, when scheduling real-time tasks, most systems assign static priorities, as the design of the scheduler is less complex. engineering subjects Operating System Operating System