Glossary · Automation software engineering and architecture
Fixed-priority scheduling
Also known as: Static priority scheduling, Fixed-priority preemptive scheduling
German: Ablaufplanung mit fester Priorität
In real-time systems, fixed-priority scheduling is a scheduling approach in which each task is assigned a priority at design time that does not change at runtime, and the scheduler always runs the highest-priority ready task, usually preempting lower-priority ones.
- Software engineering
In one sentence
In fixed-priority scheduling, each task has a priority set at design time and the scheduler always runs the highest-priority ready task.
Example
In the controller configuration, the 2 ms axis task has priority 1, the 10 ms logic task priority 5 and the 100 ms communication task priority 10.
How it applies
- Engineering: Most PLC runtimes and real-time operating systems use fixed-priority preemptive scheduling. A common rule assigns higher priority to tasks with shorter periods (rate-monotonic assignment). Response-time analysis can show whether all tasks meet their deadlines.
- Risks: Priority inversion occurs when a high-priority task waits for a resource held by a low-priority task. Protocols such as priority inheritance limit it. Lower-priority tasks can starve if higher-priority tasks use too much processor time.
- Documentation: Document the task configuration with priorities, periods, watchdog times and measured load. This configuration is part of the software design and should be under version control and Change control.
Fixed-priority vs. EDF scheduling
Earliest-deadline-first (EDF) assigns priorities dynamically by deadline and can use the processor more fully. Fixed-priority scheduling is simpler to analyze, widely supported and degrades more predictably under overload: the lowest-priority tasks suffer first.