Skip to content

Rate-monotonic scheduling

Category: Real-time systems · Status: stub

One line: Fixed priorities by period: the task that runs most often gets the highest priority, which is optimal among fixed-priority policies for periodic tasks.

Also called: RMS.

How it connects

flowchart LR
  n_earliest_deadline_first["Earliest deadline first"]
  n_preemptive_scheduling["Preemptive scheduling"]
  n_rate_monotonic_scheduling["Rate-monotonic scheduling"]
  n_wcet["Worst-case execution time"]
  n_earliest_deadline_first ---|vs| n_rate_monotonic_scheduling
  n_rate_monotonic_scheduling -->|is a| n_preemptive_scheduling
  n_rate_monotonic_scheduling -->|uses| n_wcet
  classDef center stroke-width:3px
  class n_rate_monotonic_scheduling center
  classDef outside stroke-dasharray: 4 3
  class n_earliest_deadline_first,n_preemptive_scheduling,n_wcet outside

In each language

The operating system Assign SCHED_FIFO priorities by period; the kernel then always runs the highest-priority ready thread
Elsewhere Ada's FIFO_Within_Priorities dispatching policy

Where to read more