Least slack time scheduling
Encyclopedia
Least Slack Time scheduling is a scheduling algorithm. It assigns priority based on the slack time of a process. Slack time is the amount of time left after a job if the job was started now. This algorithm is also known as Least Laxity First. 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.
More formally, the slack time for a process is defined as:
where is the process deadline, is the real time since the cycle start, and is the remaining computation time.
, and unlike rate monotonic scheduling
, this algorithm can be used for processor utilization up to 100%.
Slack time
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 for a process is defined as:
where is the process deadline, is the real time since the cycle start, and is the remaining computation time.
Suitability
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 sub-optimal. It will also be suboptimal when used with uninterruptible processes. However, like earliest deadline firstEarliest deadline first scheduling
Earliest deadline first or least time to go is a dynamic scheduling algorithm used in real-time operating systems. It places processes in a priority queue. Whenever a scheduling event occurs the queue will be searched for the process closest to its deadline...
, and unlike rate monotonic scheduling
Rate-monotonic scheduling
In computer science, rate-monotonic scheduling is a scheduling algorithm used in real-time operating systems with a static-priority scheduling class...
, this algorithm can be used for processor utilization up to 100%.