Lably
Skip to content

Scheduling (computing)

Method by which work is assigned

  • 20 min read
  • 4 chapters

Related on Lably

Through Computing, Task (computing) and Process (computing)

The scheduling activity is carried out by a mechanism called a scheduler. Schedulers are often designed so as to keep all computer resources busy (as in load balancing), allow multiple users to share system resources effectively, or to achieve a target quality-of-service.

Scheduling is fundamental to computation itself, and an intrinsic part of the execution model of a computer system; the concept of scheduling makes it possible to have computer multitasking with a single central processing unit (CPU).

Goals

A scheduler may aim at one or more goals, for example:

  • maximizing throughput (the total amount of work completed per time unit);
  • minimizing wait time (time from work becoming ready until the first point it begins execution);
  • minimizing latency or response time (time from work becoming ready until it is finished in case of batch activity, or until the system responds and hands the first output to the user in case of interactive activity);
  • maximizing fairness (equal CPU time to each process, or more generally appropriate times according to the priority and workload of each process).

In practice, these goals often conflict (e.g., throughput versus latency), thus a scheduler will implement a suitable compromise. Preference is measured by any one of the concerns mentioned above, 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 can also be distributed to remote devices across a network and managed through an administrative back end.

Sign in to keep reading

3 more chapters are free with a Lably account.

More in Computing and communication