Jump to content

Scheduling (computing): Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Line 39: Line 39:
*[[Shortest seek first]]
*[[Shortest seek first]]
*[[Elevator algorithm]]
*[[Elevator algorithm]]


[[Category:Operations research]]
[[Category:Scheduling (computing)]]

Revision as of 00:17, 7 March 2005


Scheduling (from schema) is the process of assigning tasks to a set of resources. It is an important concept in many areas such as computing and production processes.

In mathematical terms, a scheduling problem is often solved as an optimization problem, with the objective of maximizing a measure of schedule quality. For example, an airline might wish to minimize the number of airport gates required for its aircraft in order to reduce its operating costs.

Scheduling is important in modern production and chemical industries, where it can have a major impact in the productivity of a process. Common objectives in this type of scheduling are to minimize the makespan (duration) of production or to maximize total profit for a given set of customer demands. Modern computerised scheduling tools greatly outperform the manual (heuristic) scheduling methods commonly employed in the industry.

It is a key concept in multitasking and multiprocessing operating system design, and in real-time operating system design. It refers to the way processes are assigned priorities in a priority queue. This assignment is carried out by software known as a scheduler.

In general-purpose operating systems, the goal of the scheduler is to balance processor loads, and prevent any one process from either monopolizing the processor or being starved for resources. In real-time environments, such as devices 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.

Many scheduling problems are NP-hard and finding efficient ways of solving larger scheduling problems is an active research area. Common mathematical techniques used to solve scheduling problems are Mixed Integer Linear Programming, Logical programming and Constraint programming.

Common scheduling practices

Disk arm scheduling