mirror of
https://git.rtems.org/rtems-docs/
synced 2025-07-27 17:47:16 +08:00
Update documentation to reflect EDF scheduler overrun handling
Update #2795.
This commit is contained in:
parent
fde6ac6693
commit
69d6622ef9
@ -132,7 +132,7 @@ milliseconds every 100 (10 percent of the CPU). As a general rule of thumb,
|
|||||||
the higher frequency at which a task executes, the more important it is to
|
the higher frequency at which a task executes, the more important it is to
|
||||||
optimize that task.
|
optimize that task.
|
||||||
|
|
||||||
Rate Monotonic Manager Definitions
|
Periodicity Definitions
|
||||||
----------------------------------
|
----------------------------------
|
||||||
.. index:: periodic task, definition
|
.. index:: periodic task, definition
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ Rate Monotonic Scheduling Algorithm
|
|||||||
.. index:: RMS Algorithm, definition
|
.. index:: RMS Algorithm, definition
|
||||||
|
|
||||||
The Rate Monotonic Scheduling Algorithm (RMS) is important to real-time systems
|
The Rate Monotonic Scheduling Algorithm (RMS) is important to real-time systems
|
||||||
designers because it allows one to guarantee that a set of tasks is
|
designers because it allows one to sufficiently guarantee that a set of tasks is
|
||||||
schedulable. A set of tasks is said to be schedulable if all of the tasks can
|
schedulable. A set of tasks is said to be schedulable if all of the tasks can
|
||||||
meet their deadlines. RMS provides a set of rules which can be used to perform
|
meet their deadlines. RMS provides a set of rules which can be used to perform
|
||||||
a guaranteed schedulability analysis for a task set. This analysis determines
|
a guaranteed schedulability analysis for a task set. This analysis determines
|
||||||
@ -179,11 +179,11 @@ the predictability of the system's behavior. It has been proven that:
|
|||||||
|
|
||||||
.. sidebar:: *RMS*
|
.. sidebar:: *RMS*
|
||||||
|
|
||||||
RMS is an optimal static priority algorithm for scheduling independent,
|
RMS is an optimal fixed-priority algorithm for scheduling independent,
|
||||||
preemptible, periodic tasks on a single processor.
|
preemptible, periodic tasks on a single processor.
|
||||||
|
|
||||||
RMS is optimal in the sense that if a set of tasks can be scheduled by any
|
RMS is optimal in the sense that if a set of tasks can be scheduled by any
|
||||||
static priority algorithm, then RMS will be able to schedule that task set.
|
fixed-priority algorithm, then RMS will be able to schedule that task set.
|
||||||
RMS bases it schedulability analysis on the processor utilization level below
|
RMS bases it schedulability analysis on the processor utilization level below
|
||||||
which all deadlines can be met.
|
which all deadlines can be met.
|
||||||
|
|
||||||
@ -230,7 +230,7 @@ Schedulability Analysis
|
|||||||
|
|
||||||
.. index:: RMS schedulability analysis
|
.. index:: RMS schedulability analysis
|
||||||
|
|
||||||
RMS allows application designers to ensure that tasks can meet all deadlines,
|
RMS allows application designers to ensure that tasks can meet all deadlines under fixed-priority assignment,
|
||||||
even under transient overload, without knowing exactly when any given task will
|
even under transient overload, without knowing exactly when any given task will
|
||||||
execute by applying proven schedulability analysis rules.
|
execute by applying proven schedulability analysis rules.
|
||||||
|
|
||||||
@ -468,9 +468,10 @@ monotonic period results in one of the following scenarios:
|
|||||||
immediately.
|
immediately.
|
||||||
|
|
||||||
- If the rate monotonic period has expired before the task invokes the
|
- If the rate monotonic period has expired before the task invokes the
|
||||||
``rtems_rate_monotonic_period`` directive, the period will be initiated with
|
``rtems_rate_monotonic_period`` directive, the postponed job will be released
|
||||||
a length of period ticks and the calling task returns immediately with a
|
until there is no more postponed jobs. The calling task returns immediately
|
||||||
timeout error status.
|
with a timeout error status. In the watchdog routine, the period will still
|
||||||
|
be updated periodically and track the number of the postponed periods.
|
||||||
|
|
||||||
Obtaining the Status of a Period
|
Obtaining the Status of a Period
|
||||||
--------------------------------
|
--------------------------------
|
||||||
@ -560,8 +561,8 @@ Subsequent invocations of the ``rtems_rate_monotonic_period`` directive will
|
|||||||
result in the task blocking for the remainder of the 100 tick period. If, for
|
result in the task blocking for the remainder of the 100 tick period. If, for
|
||||||
any reason, the body of the loop takes more than 100 ticks to execute, the
|
any reason, the body of the loop takes more than 100 ticks to execute, the
|
||||||
``rtems_rate_monotonic_period`` directive will return the ``RTEMS_TIMEOUT``
|
``rtems_rate_monotonic_period`` directive will return the ``RTEMS_TIMEOUT``
|
||||||
status. If the above task misses its deadline, it will delete the rate
|
status and the postponed job will be released. If the above task misses
|
||||||
monotonic period and itself.
|
its deadline, it will delete the rate monotonic period and itself.
|
||||||
|
|
||||||
Task with Multiple Periods
|
Task with Multiple Periods
|
||||||
--------------------------
|
--------------------------
|
||||||
@ -629,8 +630,8 @@ will not block.
|
|||||||
|
|
||||||
If, for any reason, the task misses any deadline, the
|
If, for any reason, the task misses any deadline, the
|
||||||
``rtems_rate_monotonic_period`` directive will return the ``RTEMS_TIMEOUT``
|
``rtems_rate_monotonic_period`` directive will return the ``RTEMS_TIMEOUT``
|
||||||
directive status. If the above task misses its deadline, it will delete the
|
directive status and the postponed job will be released. If the above task misses
|
||||||
rate monotonic periods and itself.
|
its deadline, it will delete the rate monotonic periods and itself.
|
||||||
|
|
||||||
Directives
|
Directives
|
||||||
==========
|
==========
|
||||||
@ -840,6 +841,9 @@ DESCRIPTION:
|
|||||||
remainder of the period before reinitiating the period with the specified
|
remainder of the period before reinitiating the period with the specified
|
||||||
period. If id was not running (either expired or never initiated), the
|
period. If id was not running (either expired or never initiated), the
|
||||||
period is immediately initiated and the directive returns immediately.
|
period is immediately initiated and the directive returns immediately.
|
||||||
|
If id has expired its period, the postponed job will be released immediately
|
||||||
|
and the following calls of this directive will release postponed
|
||||||
|
jobs until there is no more deadline miss.
|
||||||
|
|
||||||
If invoked with a period of ``RTEMS_PERIOD_STATUS`` ticks, the current
|
If invoked with a period of ``RTEMS_PERIOD_STATUS`` ticks, the current
|
||||||
state of id will be returned. The directive status indicates the current
|
state of id will be returned. The directive status indicates the current
|
||||||
|
Loading…
x
Reference in New Issue
Block a user