• Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Real-Time API

on

  • 822 views

There are a set of new real-time scheduling algorithms being developed for the Linux kernel, which provide temporal isolation among tasks. ...

There are a set of new real-time scheduling algorithms being developed for the Linux kernel, which provide temporal isolation among tasks.
These include an implementation of the POSIX sporadic server (SS) and a deadline-based scheduler. These are based on the specification of
the scheduling guarantees needed by the kernel in terms of a budget and a period.
This presentation aims to tackle the issues related to how to design a proper kernel-space / user-space interface for accessing such new
functionality. For the SS, a POSIX compliant implementation would break binary compatibility. However, the currently implemented API seems to be lacking some important features, like a sufficient level of extensibility. This would be required for example for adding further parameters in the future, e.g., deadlines different from periods, or soft (i.e., work-conserving) reservations, or how to mix power management in the looop (if ever).

Statistics

Views

Total Views
822
Views on SlideShare
822
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Real-Time API Real-Time API Presentation Transcript

  • Linux Plumbers 2010 November 3rd, Boston Real-Time API Tommaso Cucinotta, Dhaval Giani, Dario Faggioli, Fabio Checconi Cucinotta, Real-Time Systems Lab (RETIS) Center for Excellence in Information, Communication and Perception Engineering (CEIICP) Scuola Superiore Sant'Anna, Pisa (Italy)
  • Recently Proposed Real-Time Scheduler(s) Features  Temporal isolation among processes  Applications have to provide reservation parameters (sporadic real-time task model) • runtime every period  Deadline-based scheduling  Hierarchical scheduling • Attach more tasks as a whole to a single reservation Problems I) Suitable kernel-space / user-space interface II) Suitable application-level interface Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 2
  • Recently proposed schedulers and their APIs EDF RT Throttling (a.k.a., The IRMOS Scheduler)  Parameters: runtime, period, cpu mask, tasks • RT priorities of real-time tasks  cgroup-based interface • Problem of atomic changes to scheduling parameters SCHED_SPORADIC  Parameters: runtime, period, low-priority  POSIX standard system call: sched_setscheduler() • Breaks binary interface & compatibility  Alternative system call: sched_setscheduler_ex() SCHED_DEADLINE  Parameters: runtime, period, flags  system call: sched_setscheduler_ex() Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 3
  • Hierarchical Scheduling EDF EDF Max RT Prio … FP FP FP FP Min RT Prio T1 T1 T2 T2 T3 T3 T4 T4 Needed operations  create & destroy reservations  attach & detach tasks ↔ reservations  list tasks attached to reservations (and list reservations)  Standard operations: get & set parameters Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 4
  • Other Features Warning: features & parameters may easily grow  Addition of parameters, such as • deadline • desired vs guaranteed runtime (for adaptive reservations)  Set of flags for controlling variations on behaviour • work conserving vs non-conserving reservations • what happens at fork() time • what happens on tasks death (automatic reclamation) • notifications from kernel (e.g., runtime exhaustion)  Controlled access to RT scheduling by unprivileged applications (e.g., per-user “quotas”)  Monitoring (e.g., residual runtime, available bandwidth)  Integration/interaction with power management Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 5
  • What US/KS mechanism(s) ? cgroup-based interface ?  multi-valued cgroup entries (for atomic changes) system-call interface ?  Only sched_setscheduler[_ex]()  A set of system calls ? Special-device & ioctl() ? proc-based interface ? (e.g., for monitoring) Integration with capabilities ?  setrlimit() / getrlimit() Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 6
  • Proposed API for applications Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 7
  • Thanks for your attention Help!!! http://retis.sssup.it/people/tommaso Tommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna Sant’Anna © 2007 Scuola Superiore 8