# Category: Processor scheduling algorithms

Proportional share scheduling
Proportional Share Scheduling is a type of scheduling that preallocates certain amount of CPU time to each of the processes. In a proportional share algorithm every job has a weight, and jobs receive
Generalized foreground-background
Generalized Foreground-Background (FB), also known as Least Attained Service (LAS) is a scheduling policy. It consists in scheduling the process that has received the least service so far. Similarly t
YDS algorithm
YDS is a scheduling algorithm for dynamic speed scaling processors which minimizes the total energy consumption. It was named after and developed by Yao et al. There is both an online and an offline v
Earliest deadline first scheduling
Earliest deadline first (EDF) or least time to go is a dynamic priority scheduling algorithm used in real-time operating systems to place processes in a priority queue. Whenever a scheduling event occ
Rate-monotonic scheduling
In computer science, rate-monotonic scheduling (RMS) is a priority assignment algorithm used in real-time operating systems (RTOS) with a static-priority scheduling class. The static priorities are as
Multilevel feedback queue
In computer science, a multilevel feedback queue is a scheduling algorithm. Scheduling algorithms are designed to have some process running at all times to keep the central processing unit (CPU) busy.
Pinwheel scheduling
In mathematics and computer science, the pinwheel scheduling problem is a problem in real-time scheduling with repeating tasks of unit length and hard constraints on the time between repetitions.
Gang scheduling
In computer science, gang scheduling is a scheduling algorithm for parallel systems that schedules related threads or processes to run simultaneously on different processors. Usually these will be thr
Stride scheduling
The stride scheduling is a type of scheduling mechanism that has been introduced as a simple concept to achieve proportional CPU capacity reservation among concurrent processes. Stride scheduling aims
Foreground-background
Foreground-background is a scheduling algorithm that is used to control an execution of multiple processes on a single processor. It is based on two waiting lists, the first one is called foreground b
Highest response ratio next
Highest response ratio next (HRRN) scheduling is a . It was developed by Brinch Hansen as modification of shortest job next or shortest job first (SJN or SJF) to mitigate the problem of process starva
Coffman–Graham algorithm
In job shop scheduling and graph drawing, the Coffman–Graham algorithm is an algorithm, named after Edward G. Coffman, Jr. and Ronald Graham, for arranging the elements of a partially ordered set into
Adaptive partition scheduler
Adaptive partition schedulers are a relatively new type of partition scheduler, which in turn is a kind of scheduling algorithm, pioneered with the most recent version of the QNX operating system. Ada
Round-robin scheduling
Round-robin (RR) is one of the algorithms employed by process and network schedulers in computing.As the term is generally used, time slices (also known as time quanta) are assigned to each process in
Processor affinity
Processor affinity, or CPU pinning or "cache affinity", enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread
Process Contention Scope
Process Contention Scope is one of the two basic ways of scheduling threads. Both of them being: processlocal scheduling (known as Process Contention Scope, or Unbound Threads—theMany-to-Many model) a
Modified due-date scheduling heuristic
The modified due-date (MDD) scheduling heuristic is a greedy heuristic used to solve the single machine total weighted tardiness problem (SMTWTP).
Coscheduling
Coscheduling is the principle for concurrent systems of scheduling related processes to run on different processors at the same time (in parallel). There are various specific implementations to realiz
Two-level scheduling
Two-level scheduling is a computer science term to describe a method to more efficiently perform process scheduling that involves processes. Consider this problem: A system contains 50 running process
Lottery scheduling
Lottery scheduling is a probabilistic scheduling algorithm for processes in an operating system. Processes are each assigned some number of lottery tickets, and the scheduler draws a random ticket to
Shortest job next
Shortest job next (SJN), also known as shortest job first (SJF) or shortest process next (SPN), is a scheduling policy that selects for execution the waiting process with the smallest execution time.
Deadline-monotonic scheduling
Deadline-monotonic priority assignment is a priority assignment policy used with fixed-priority pre-emptive scheduling. With deadline-monotonic priority assignment, tasks are assigned priorities accor
Aging (scheduling)
In computer science for Operating systems, aging (US English) or ageing is a scheduling technique used to avoid starvation. Fixed priority scheduling is a scheduling discipline, in which tasks queued
Random boosting
Random boosting is a strategy used by the scheduler in Microsoft Windows to avoid deadlock due to priority inversion. Ready threads holding locks are randomly boosted in priority and allowed to run lo
Starvation (computer science)
In computer science, resource starvation is a problem encountered in concurrent computing where a process is perpetually denied necessary resources to process its work. Starvation may be caused by err
Shortest remaining time
Shortest remaining time, also known as shortest remaining time first (SRTF), is a scheduling method that is a preemptive version of shortest job next scheduling. In this scheduling algorithm, the proc
Fixed-priority pre-emptive scheduling
Fixed-priority preemptive scheduling is a scheduling system commonly used in real-time systems. With fixed priority preemptive scheduling, the scheduler ensures that at any given time, the processor e
Windows NT processor scheduling
Windows NT processor scheduling refers to the process by which Windows NT determines which job (task) should be run on the computer processor at which time. Without scheduling, the processor would giv
Least slack time scheduling
Least slack time (LST) scheduling is an algorithm for dynamic priority scheduling. It assigns priorities to processes based on their slack time. Slack time is the amount of time left after a job if th
System Contention Scope
In computer science, The System Contention Scope is one of two thread-scheduling schemes used in operating systems. This scheme is used by the kernel to decide which kernel-level thread to schedule on
ULE scheduler
ULE is the default scheduler for the FreeBSD operating system (versions 7.1 and forward) for the i386 and AMD64 architectures. It was introduced in FreeBSD version 5, but it was disabled by default fo
Fair-share scheduling
Fair-share scheduling is a scheduling algorithm for computer operating systems in which the CPU usage is equally distributed among system users or groups, as opposed to equal distribution of resources
Work stealing
In parallel computing, work stealing is a scheduling strategy for multithreaded computer programs. It solves the problem of executing a dynamically multithreaded computation, one that can "spawn" new