Documentation: migrate "Effects of Disabling Interrupts or Pre-Emption on Response Latency" from wiki
link: https://cwiki.apache.org/confluence/display/NUTTX/Effects+of+Disabling+Interrupts+or+Pre-Emption+on+Response+Latency
This commit is contained in:
parent
0b17238714
commit
afa9e29272
@ -23,7 +23,7 @@ When we discuss critical sections here we really refer to one of two mechanisms:
|
|||||||
|
|
||||||
The use of either mechanism will always harm real-time performance.
|
The use of either mechanism will always harm real-time performance.
|
||||||
The effects of critical sections on real-time performance is discussed in
|
The effects of critical sections on real-time performance is discussed in
|
||||||
`Effects of Disabling Interrupts or Pre-Emption on Response Latency <https://cwiki.apache.org/confluence/display/NUTTX/Effects+of+Disabling+Interrupts+or+Pre-Emption+on+Response+Latency>`_ [TODO: move to documentation].
|
:doc:`/implementation/preemption_latency`.
|
||||||
The end result is that a certain amount of **jitter** is added to the real-time response.
|
The end result is that a certain amount of **jitter** is added to the real-time response.
|
||||||
|
|
||||||
Critical sections cannot be avoided within the OS and, as a consequence, a certain
|
Critical sections cannot be avoided within the OS and, as a consequence, a certain
|
||||||
|
BIN
Documentation/implementation/disabling_interrupts.png
Normal file
BIN
Documentation/implementation/disabling_interrupts.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 97 KiB |
BIN
Documentation/implementation/disabling_preemption.png
Normal file
BIN
Documentation/implementation/disabling_preemption.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
@ -9,3 +9,4 @@ Implementation Details
|
|||||||
processes_vs_tasks.rst
|
processes_vs_tasks.rst
|
||||||
critical_sections.rst
|
critical_sections.rst
|
||||||
interrupt_controls.rst
|
interrupt_controls.rst
|
||||||
|
preemption_latency.rst
|
||||||
|
BIN
Documentation/implementation/normal_interrupt.png
Normal file
BIN
Documentation/implementation/normal_interrupt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 62 KiB |
41
Documentation/implementation/preemption_latency.rst
Normal file
41
Documentation/implementation/preemption_latency.rst
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
==================================================================
|
||||||
|
Effects of Disabling Interrupts or Pre-Emption on Response Latency
|
||||||
|
==================================================================
|
||||||
|
|
||||||
|
Rate Monotonic Scheduling
|
||||||
|
=========================
|
||||||
|
|
||||||
|
**Assumption**
|
||||||
|
|
||||||
|
No resource sharing (processes do not share resources, e.g. a hardware
|
||||||
|
resource, a queue, or any kind of semaphore blocking or non-blocking
|
||||||
|
(busy-waits)).
|
||||||
|
|
||||||
|
Wikipedia “Rate Monotonic Scheduling”
|
||||||
|
|
||||||
|
**Real world**
|
||||||
|
|
||||||
|
We must protect shared resources with locks of some kind. The most aggressive:
|
||||||
|
|
||||||
|
#. Disabling interrupts, and
|
||||||
|
#. Disabling pre-emption.
|
||||||
|
|
||||||
|
What are the effects of real-time performance when this assumptions is violated?
|
||||||
|
|
||||||
|
Normal Interrupt Processing
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
.. figure:: normal_interrupt.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Effect of Disabling Interrupts
|
||||||
|
------------------------------
|
||||||
|
|
||||||
|
.. figure:: disabling_interrupts.png
|
||||||
|
:align: center
|
||||||
|
|
||||||
|
Effect of Disabling Pre-emption
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
.. figure:: disabling_preemption.png
|
||||||
|
:align: center
|
Loading…
Reference in New Issue
Block a user