Fork us on GitHub Follow us on Facebook Follow us on Twitter

Opened 6 years ago

Last modified 3 years ago

#541 new enhancement

Hard real-time features

Reported by: Martin Decky Owned by:
Priority: major Milestone:
Component: helenos/unspecified Version: mainline
Keywords: socis13, socis15 Cc:
Blocker for: Depends on:
See also:

Description

Implement one or more features that are needed to support hard real-time workloads.

Details
This ticket summarizes the features that should be implemented in HelenOS in order to support hard real-time workloads, i.e. strict predictability in the time domain for specific tasks or threads. As is the case of other general-purpose operating systems with real-time extensions, the hard real-time features should not render the system unusable for common non-real-time workloads, both types of tasks should be able to run in the system at the same time (the non-real-time workloads would naturally occupy the idle time of the real-time workloads).

The primary goal is to define classes of tasks or threads with their own real-time scheduling (either FIFO or round-robin) that can preempt non-real-time threads (including kernel threads). Next comes the API to actually run the real-time scheduled entities, either via a static off-line schedule for FIFO tasks or via a dynamic on-line scheduling for periodic and aperiodic tasks (rate monotonic, deadline monotonic, earliest deadline first algorithms).

In order for the hard real-time tasks to be more than standalone isolated tasks, various features of the system need to be modified or adapted to be predictable in the time domain. This includes the synchronization primitives (priority inheritance, priority ceiling, immediate priority ceiling protocols), IPC (usually synchronous due to the predictability), memory management (predictable page fault handling), multicore scheduling (pinning of real-time tasks to specific CPUs), etc.

Due to the specific nature of this ticket, the implementation should be accompanied by a reasonable body of text advocating the desired real-time guarantees of the implementation.

What Gains and Benefits will this bring?
Even a limited support for hard real-time workloads will allow HelenOS to be usable for many embedded use cases where time predictability (not necessarily for all system components) is a requirement.
Difficutly
Medium to High
Required skills
A successful applicant will need to have very good skills in programming in the C language and also a good knowledge of the real-time concepts and algorithms.
Documentation
  • Real-time computing
  • Giorgio C. Buttazo: Hard Real-time Computing Systems – Predictable Scheduling Algorithms and Applications, 2nd edition, ISBN: 978-0-387-23137-2, Springer Verlag, 2005
Possible mentors
HelenOS Core Team, Martin Decky

Change History (2)

comment:1 Changed 4 years ago by Martin Decky

Keywords: socis15 added

comment:2 Changed 3 years ago by Jakub Jermář

Milestone: 0.6.1
Note: See TracTickets for help on using tickets.