This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
realtime:documentation:technical_basics:start [2017/12/05 08:23] anna-maria adapt link to new page |
realtime:documentation:technical_basics:start [2023/10/03 08:27] (current) costa.shul Dynticks |
||
---|---|---|---|
Line 1: | Line 1: | ||
======Technical basics: Important aspects for real time====== | ======Technical basics: Important aspects for real time====== | ||
- | In oder to understand the functionality of an RTOS, you need to know | + | In order to understand the functionality of a real-time operating system (RTOS), you need to know |
about both general and Linux specific mechanisms. | about both general and Linux specific mechanisms. | ||
Line 7: | Line 7: | ||
<WRAP half column> | <WRAP half column> | ||
+ | ===== Real-time system ===== | ||
+ | |||
+ | A real-time system is a platform that is running an RTOS and at least one real-time task. An RT task is a task that must be completed before a certain deadline. These tasks can be periodic or aperiodic have a priority to make sure that they are scheduled according to their frequency of execution and the strictness of their deadline. There can also be non real-time tasks running on the system as well. | ||
+ | |||
===== Linux specific preemption models ===== | ===== Linux specific preemption models ===== | ||
Line 16: | Line 20: | ||
<WRAP rightalign>[[realtime:documentation:technical_basics:preemption_models|Read more about preemption models]]</WRAP> | <WRAP rightalign>[[realtime:documentation:technical_basics:preemption_models|Read more about preemption models]]</WRAP> | ||
+ | |||
+ | ===== Priority inversion - Priority inheritance ===== | ||
+ | |||
+ | When a task with high priority is blocked by one with low priority | ||
+ | because of a mutually exclusive resource, a third task with priority | ||
+ | in between the others can run and finish before the task with the | ||
+ | highest priority resumes. This phenomenon is known as priority | ||
+ | inversion. It can be solved by priority inheritance. | ||
+ | |||
+ | <WRAP rightalign>[[realtime:documentation:technical_basics:pi|Read more about priority inversion and inheritance]]</WRAP> | ||
</WRAP> | </WRAP> | ||
Line 28: | Line 42: | ||
<WRAP rightalign>[[realtime:documentation:technical_basics:sched_policy_prio:start|Read more about policy and priority]]</WRAP> | <WRAP rightalign>[[realtime:documentation:technical_basics:sched_policy_prio:start|Read more about policy and priority]]</WRAP> | ||
- | </WRAP> | ||
- | <WRAP half column> | ||
===== Scheduling - RT throttling ===== | ===== Scheduling - RT throttling ===== | ||
Line 39: | Line 51: | ||
<WRAP rightalign>[[realtime:documentation:technical_basics:sched_rt_throttling|Read more about RT throttling]]</WRAP> | <WRAP rightalign>[[realtime:documentation:technical_basics:sched_rt_throttling|Read more about RT throttling]]</WRAP> | ||
- | </WRAP> | ||
- | <WRAP half column> | + | ===== Latency ===== |
- | ===== Priority inversion - Priority inheritance ===== | + | |
- | When a task with high priority is blocked by one with low priority | + | Low latency is a critical requirement in real-time computing environments because it ensures that tasks or processes can respond quickly and predictably to external events or inputs. |
- | because of a mutually exclusive resource, a third task with priority | + | |
- | in between the others can run and finish before the task with the | + | <WRAP rightalign>[[realtime:documentation:technical_basics:latency|Read more about the term latency]]</WRAP> |
- | highest priority resumes. This phenomenon is known as priority | + | |
- | inversion. It can be solved by priority inheritance. | + | ===== Dynticks ===== |
+ | |||
+ | Dynticks or Dynamic ticks or **no HZ** mode reduces timer interrupts overhead. | ||
+ | |||
+ | <WRAP rightalign>[[realtime:documentation:howto:tools:ticklesskernel|Read more about the dynamic ticks]]</WRAP> | ||
- | <WRAP rightalign>[[realtime:documentation:technical_basics:pi|Read more about priority inversion and inheritance]]</WRAP> | ||
</WRAP> | </WRAP> | ||