Jump to content
Wikipedia The Free Encyclopedia

Dynamic priority scheduling

From Wikipedia, the free encyclopedia
This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Dynamic priority scheduling" – news · newspapers · books · scholar · JSTOR
(May 2016) (Learn how and when to remove this message)

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 to form an optimal configuration in a self-sustained manner. It can be very hard to produce well-defined policies to achieve the goal depending on the difficulty of a given problem.

Earliest deadline first scheduling and Least slack time scheduling are examples of Dynamic priority scheduling algorithms.

Optimal schedulable utilization

[edit ]

The idea of real-time scheduling is to confine processor utilization under schedulable utilization of a certain scheduling algorithm, which is scaled from 0 to 1. Higher schedulable utilization means higher utilization of resource and the better the algorithm. In preemptible scheduling, dynamic priority scheduling such as earliest deadline first (EDF) provides the optimal schedulable utilization of 1 in contrast to less than 0.69 with fixed priority scheduling such as rate-monotonic (RM).[1]

In periodic real-time task model, a task's processor utilization is defined as execution time over period. Every set of periodic tasks with total processor utilization less or equal to the schedulable utilization of an algorithm can be feasibly scheduled by that algorithm. Unlike fixed priority, dynamic priority scheduling could dynamically prioritize task deadlines achieving optimal schedulable utilization in the preemptible case.

Least slack time scheduling

[edit ]

Least slack time (LST) scheduling or least laxity first is an algorithm for dynamic priority scheduling. The algorithm assigns priorities to processes based on their slack time. Slack time is the amount of time left after a job if the job was started now. Its most common use is in embedded systems, especially those with multiple processors. It imposes the simple constraint that each process on each available processor possesses the same run time, and that individual processes do not have an affinity to a certain processor. This is what lends it a suitability to embedded systems.

This scheduling algorithm first selects those processes that have the smallest "slack time". Slack time is defined as the temporal difference between the deadline, the ready time and the run time.

More formally, the slack time s {\displaystyle s} {\displaystyle s} for a process is defined as:

s = ( d t ) c {\displaystyle s=(d-t)-c'} {\displaystyle s=(d-t)-c'}

where d {\displaystyle d} {\displaystyle d} is the process deadline, t {\displaystyle t} {\displaystyle t} is the real time since the cycle start, and c {\displaystyle c'} {\displaystyle c'} is the remaining computation time.

In realtime scheduling algorithms for periodic jobs, an acceptance test is needed before accepting a sporadic job with a hard deadline. One of the simplest acceptance tests for a sporadic job is calculating the amount of slack time between the release time and deadline of the job.

LST scheduling is most useful in systems comprising mainly aperiodic tasks, because no prior assumptions are made on the events' rate of occurrence. The main weakness of LST is that it does not look ahead, and works only on the current system state. Thus, during a brief overload of system resources, LST can be suboptimal. It will also be suboptimal when used with uninterruptible processes. However, like the earliest deadline first, and unlike rate monotonic scheduling, this algorithm can be used for processor utilization up to 100%.

See also

[edit ]

References

[edit ]
  1. ^ Krishna, C.M. and Shin, K.G. Real-time Systems, ISBN 9780070570436, 1997


Stub icon

This computer science article is a stub. You can help Wikipedia by expanding it.

AltStyle によって変換されたページ (->オリジナル) /