Rate-monotonic Scheduling

In computer science, rate-monotonic scheduling Liu73 is an optimal preemptive static-priority scheduling algorithm used in real-time operating systems. The inputs to the algorithm are processes (tasks, threads) with :
  • No resource sharing (processes x and y do not share resource, e.g. a hardware resource, a queue, or a semaphore)
  • Deterministic deadlines exactly equal to periods
  • Static priorities (whenever a processor is free or a new task period begins, the task with the highest static priority is selected to preempt all other tasks)
  • Static priorities assigned according to the rate monotonic principle (tasks with shorter periods/deadlines are given higher priorities)
Then the set of tasks will always meet deadlines if the CPU utilization is:
U \leq m(\sqrtm{2} - 1)
Which will be for example 0.8284 for m = 2. When the number of processes tends towards infinity this expression will tend towards:
\lim_{m \rightarrow \infty} m(\sqrtm{2} - 1) = \ln 2 \approx 0.693147\ldots
So a rough estimate is that RMS in the general case can meet all the deadlines if CPU utilization is 69.3\%. The other 30.7\% of the CPU can be dedicated to lower-priority non real-time tasks. It is known that a randomly generated periodic task system will meet all deadlines when the utilization is 85\% or less Lehoczky89, however this fact depends on knowing the exact task statistics (periods, deadlines) and cannot be guaranteed for all task sets. The rate monotonic priority assignment is optimal meaning that if any static priority scheduling algorithm can meet all the deadlines, then the rate monotonic algorithm can too. The deadline monotonic algorithm is also optimal in the situation where periods and deadlines are identical, in the fact the algorithms are identical, and in addition, deadline monotonic scheduling is optimal when deadlines are less than periods Leung80. An optimal static-priority scheduling algorithm when deadlines are greater than periods is an open problem.

Resource preemption, priority inheritance

In many practical applications, resources are shared and the unmodified RMS will be subject to priority inversion and deadlock hazards. In practice, this is solved by introducing priority inheritance. Examples of priority inheritance algorithms include (from simplest to most complex):
  • The OSIntEnter() and OSIntExit() primitives that lock CPU interrupts in a real-time kernel (uC-OS II kernel),
  • The splx() family of primitives which nest the locking of device interrupts (UNIX/Linux kernel),
  • The Highest Locker protocol which requires off-line analysis of all task conflicts to find a "ceiling priority" (see below),
  • The Basic Priority Inheritance Protocol Lampson80 which waits until a high priority task requests a lock held by a low-priority task, and then boosts the low priority task priority up to the high priority level until the lock is released, and
  • The Priority Ceiling Protocol Sha90 which is an enhancement of Basic Priority Inheritance which assigns a "ceiling priority" to each semaphore, which is the priority of the highest job that will ever access that semaphore. A job then cannot preempt a lower priority critical section if its priority is lower than the ceiling priority for that section.
Priority inheritance algorithms can be characterized by two parameters. First, is the inheritance lazy (only when essential) or immediate (boost priority before there is a conflict). Second is the inheritance optimistic (boost a minimum amount) or pessimistic (boost by more than the minimum amount) ? style="text-align: left; ">
     
       

pessimistic optimistic
immediate
OSIntEnter/Exit()
       
splx(), Highest Locker
lazy

       
Priority Ceiling Protocol
Basic Priority Inheritance Protocol
       
In practice there is no mathematical difference (in terms of the Liu-Layland system utilization bound) between the lazy and immediate algorithms, and the immediate algorithms are more efficient to implement, and so they are the ones used by most practical systems. The "Basic Priority Inheritance" protocol is not useful because it can produce "chained blocking", i.e. an almost arbitrarily long delay from the time a high priority task requests a critical section, until it is served. The other protocols guarantee that at most one lower priority critical section must finish before the high priority task gets its critical section. The "Priority Ceiling Protocol" is available in the VxWorks real-time kernel but is seldom enabled. A notable exception is "The Mars Pathfinder Bug" which was fixed on the way to Mars by enabling Priority Ceiling Protocol Semaphores in the Mars Pathfinder Spacecraft vehicle. See The Mars Pathfinder Bug at Microsoft Research for details.

Example

style="text-align: left; ">
Process Execution Time Period
P1 1 8
P2 2 5
P3 2 10
The utilization will be:
\frac{1}{8} + \frac{2}{5} + \frac{2}{10} = 0.725
The theoretical limit for 3 processes will be:
U = 3(2^\frac{1}{3} - 1) = 0.77976\ldots
Since 0.725 < 0.77976... the system is schedulable!

See also

References

  • C. L. Liu and J. Layland. Scheduling algorithms for multiprogramming in a hard real-time environment, Journal of the ACM, 10(1), 1973.
  • J. Lehoczky, L. Sha and Y. Ding, The Rate monotonic scheduling algorithm: exact characterization and average case behavior, IEEE Real-Time Systems Symposium, pp. 166-171, December 1989.
  • J. Y. Leung and J. Whitehead. On the complexity of fixed-priority scheduling of periodic, real-time tasks. Performance Evaluation, 2(4):237--250, December 1982.
  • B.W. Lampson, and D. D. Redell. Experience with Processes and Monitors in Mesa. Communications of the ACM, Vol. 23, No. 2 (Feb 1980), pp. 105-117.
  • L. Sha, R. Rajkumar and J. P. Lehoczky, Priority inheritance protocols: an approach to real-time synchronization, IEEE Transactions on Computers, vol. 39 no. 9, September 1990, pp. 1175-1185.

 

<< PreviousWord BrowserNext >>
prestige (sociology)
shallow
chai wan
christopher locke
st. paul's college, hong kong
reputation
optimistic concurrency control
absurdism
pga
mozilla browser
renal sinus
pin grid array
zip
zig zag in line package
dob
jean baptiste klber
energie cottbus
eugenio corini
cubic foot
wood warbler
cubic yard
vasile miriuta
hong tianguifu
french revolutionary wars
blight
hms plym (k271)
chiefs of state and cabinet members of foreign governments
river plym
liang fa
round robin
pulse detonation engine
round robin scheduling
monte bello islands, western australia
bruno akrapovic
burn
leslie wexner
trainspotting (novel)
sablecc
pva
polyvinyl acetate
radio control
the eustace diamonds
anna of the five towns
the old wives' tale