Skip to content

Use TDMA to increase stability and predictability

philippemilletresearch edited this page Jan 30, 2019 · 4 revisions

Guideline Information

Item Value
Guideline Number 43
Guideline Responsible (Name, Affiliation) Philippe Millet, Thales
Guideline Reviewer (Name, Affiliation) Magnus Peterson, Synective
Guideline Audience (Category) Application developers
Guideline Expertise (Category) Application developers
Guideline Keywords (Category) Real-time execution, critical applications

Guideline advice

For these applications (real-time and critical), use segregation of the tasks over time to share the resources.

Insights that led to the guideline

Critical applications require to ensure that the execution time of a given task will never be compromise whatever event arise and whatever other task is concurrently executed on the processing unit.

Real-time application require almost the same capabilities as the execution of the tasks must be as stable as possible, limiting the execution time jitter as much as possible to avoid a wrong scheduling of the tasks that will lead to the necessity, in image processing, to drop some frames in order to come back to a stable situation.

Recommended implementation method of the guideline along with a solid motivation for the recommendation

TDMA stands for Time Division Multiple Access. It schedules access from software tasks to a hardware resource during slots of time. The utilization time of a hardware resource is thus divided into slots. Each task is given a set of slots through a sequence that repeats periodically.

The time slots allows time isolation between tasks. Each task can get the feeling it is executing alone on the system while when it executes, there is no other concurrent task running.

This way of building system simplifies the integration while the system is then turned into a composable architecture. Since each task is isolated from the others, the properties of that task (in particular execution time) will not change when other tasks are added and integrated.

This way of scheduling is largely used in real-time operating systems as it allows the implementation of hard real-time constraints. The task is only allowed to execute on its time-slots and is preempted when its time is out.

One drawback of this method is the potential to lose CPU time with empty slots. This comes when a task does not have anything to process during its time-slot. Since the time-slot allocation is static (for real-time reasons) and defined at design-time, there is no possibility to use that empty slot to execute another task.

Instantiation of the recommended implementation method in the reference platform

The operating system of the Tulipp project allows TDMA scheduling.

Evaluation of the guideline in reference applications

It is already used in demo applications that come with the operating system of Hipperos.

This methods is to be implemented on the medical use case while since pictures are captures using x-ray radiations we have to certify that we never loose any frame, since each photons that went through the patient to produce an image must be served to the doctors.

It must also be used in the UAV use case as the drone might crash if it drops too many frames.

References

Review

Related guidelines

none

Clone this wiki locally