Scheduling Algorithms

Scheduling Algorithms

In computer science, scheduling 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).

The scheduler is concerned mainly with:

  • Throughput - The total number of processes that complete their execution per time unit.
  • Latency, specifically:
    • Turnaround time - total time between submission of a process and its completion.
    • Response time - amount of time it takes from when a request was submitted until the first response is produced.
  • Fairness / Waiting Time - Equal CPU time to each process (or more generally appropriate times according to each process' priority). It is the time for which the process remains in the ready queue.

In practice, these goals often conflict (e.g. throughput versus latency), thus a scheduler will implement a suitable compromise. Preference is given to any one of the above mentioned concerns depending upon the user's needs and objectives.

In real-time environments, such as embedded systems for automatic control in industry (for example robotics), the scheduler also must ensure that processes can meet deadlines; this is crucial for keeping the system stable. Scheduled tasks are sent to mobile devices and managed through an administrative back end.

Read more about Scheduling Algorithms:  Types of Operating System Schedulers, Scheduling Disciplines, Operating System Process Scheduler Implementations, See Also

Other articles related to "scheduling algorithms, scheduling, algorithms":

Scheduling (production Processes) - Scheduling Algorithms - Heuristic Algorithms
... Modified due date scheduling heuristic Shifting bottleneck heuristic. ...
Scheduling (computing) - Scheduling Disciplines
... Scheduling disciplines are algorithms used for distributing resources among parties which simultaneously and asynchronously request them ... Scheduling disciplines are used in routers (to handle packet traffic) as well as in operating systems (to share CPU time among both threads and processes), disk drives (I/O scheduling), printers (print spooler ... The main purposes of scheduling algorithms are to minimize resource starvation and to ensure fairness amongst the parties utilizing the resources ...
Scheduling Algorithms - See Also
... Activity selection problem Aging (scheduling) Atropos scheduler Automated planning and scheduling Brain Fuck Scheduler Completely Fair Scheduler Computer multitasking ...