- Scheduling algorithm
In computer science, a scheduling algorithm is the method by which threads, processes or data flows are given access to system resources (e.g. processor time, communications bandwidth). This is usually done to load balance a system effectively or achieve a target quality of service. The need for a scheduling algorithm arises from the requirement for most modern systems to perform multitasking (execute more than one process at a time) and multiplexing (transmit multiple flows simultaneously).
In computing and multitasking
The algorithm used may be as simple as round-robin in which each process is given equal time (for instance 1 ms, usually between 1 ms and 100 ms) in a cycling list. So, process A executes for 1 ms, then process B, then process C, then back to process A.
More advanced algorithms take into account process priority, or the importance of the process. This allows some processes to use more time than other processes. The kernel always uses whatever resources it needs to ensure proper functioning of the system, and so can be said to have infinite priority. In SMP(symmetric multiprocessing) systems, processor affinity is considered to increase overall system performance, even if it may cause a process itself to run more slowly. This generally improves performance by reducing cache thrashing.
In computer networks and multiplexing
In packet-switched computer networks and other statistical multiplexing, the notion of a scheduling algorithm is used as an alternative to first-come first-served queuing of data packets.
The simplest best-effort scheduling algorithms are round-robin, fair queuing (a max-min fair scheduling algorithm), proportionally fair scheduling and maximum throughput. If differentiated or guaranteed quality of service is offered, as opposed to best-effort communication, weighted fair queuing may be utilized.
In advanced packet radio wireless networks such as HSDPA (High-Speed Downlink Packet Access ) 3.5G cellular system, channel-dependent scheduling may be used to take advantage of channel state information. If the channel conditions are favourable, the throughput and system spectral efficiency may be increased. In even more advanced systems such as LTE, the scheduling is combined by channel-dependent packet-by-packet dynamic channel allocation, or by assigning OFDMA multi-carriers or other frequency-domain equalization components to the users that best can utilize them.
In computer I/O
Determines the order in which disk I/O requests are pushed to the disk device.
- Activity selection problem
- Atropos scheduler
- Completely Fair Scheduler
- Dynamic priority scheduling
- Earliest deadline first scheduling
- I/O scheduling
- Job Shop Scheduling
- Least slack time scheduling
- Lottery scheduling
- Multilevel feedback queue
- O(1) scheduler
- Rate-monotonic scheduling
- Round-robin scheduling
- Scheduling (communications)
- Scheduling (computing)
- Josh Aas' introduction to the Linux 126.96.36.199 CPU scheduler implementation
- Peter Brucker, Sigrid Knust. Complexity results for scheduling problems 
- TORSCHE Scheduling Toolbox for Matlab is a toolbox of scheduling and graph algorithms.
Wikimedia Foundation. 2010.
Look at other dictionaries:
Scheduling algorithm — Алгоритм планирования, алгоритм распределения … Краткий толковый словарь по полиграфии
Scheduling Algorithm — Zeitgliederungsalgorithmus, siehe RR, SJF und SRTF … Acronyms
Scheduling Algorithm — Zeitgliederungsalgorithmus, siehe RR, SJF und SRTF … Acronyms von A bis Z
Scheduling — is the process of deciding how to commit resources between a variety of possible tasks. Time can be specified (scheduling a flight to leave at 8:00) or floating as part of a sequence of events.Scheduling may refer to: * I/O scheduling, the order… … Wikipedia
Scheduling (computing) — This article is about processes assignment in operating systems. For other uses, see Scheduling (disambiguation). Scheduling is a key concept in computer multitasking, multiprocessing operating system and real time operating system designs.… … Wikipedia
Scheduling (production processes) — Scheduling is an important tool for manufacturing and engineering, where it can have a major impact on the productivity of a process. In manufacturing, the purpose of scheduling is to minimize the production time and costs, by telling a… … Wikipedia
Job shop scheduling — For other uses, see Scheduling. Job shop scheduling (or Job shop problem) is an optimization problem in computer science in which ideal jobs are assigned to resources at particular times. The most basic version is as follows: We are given n jobs… … Wikipedia
Rate-monotonic scheduling — In computer science, rate monotonic scheduling [citation|first1=C. L.|last1=Liu|authorlink1=Chung Laung Liu|first2=J.|last2=Layland|title=Scheduling algorithms for multiprogramming in a hard real time environment|journal=Journal of the ACM|volume … Wikipedia
Round-robin scheduling — Round robin (RR) is one of the simplest scheduling algorithms for processes in an operating system, which assigns time slices to each process in equal portions and in order, handling all processes without priority. Round robin scheduling is both… … Wikipedia
Dynamic priority scheduling — is a type of scheduling algorithm in which the priorities are calculated during the execution of the system. The goal of dynamic priority scheduling is to adapt to dynamically changing progress and form an optimal configuration in self sustained… … Wikipedia