November 3November 3rdrd
, Boston, Boston
Linux Plumbers 2010Linux Plumbers 2010
Real-Time APIReal-Time API
Tommaso Cucino...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
© 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTomm...
Upcoming SlideShare
Loading in...5
×

Real-Time API

633

Published on

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).

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
633
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Real-Time API"

  1. 1. November 3November 3rdrd , Boston, Boston Linux Plumbers 2010Linux Plumbers 2010 Real-Time APIReal-Time API Tommaso CucinottaTommaso Cucinotta, Dhaval Giani, Dario Faggioli, Fabio Checconi, Dhaval Giani, Dario Faggioli, Fabio Checconi Real-Time Systems Lab (RETIS)Real-Time Systems Lab (RETIS) Center for Excellence in Information, Communication and Perception EngineeringCenter for Excellence in Information, Communication and Perception Engineering (CEIICP)(CEIICP) Scuola Superiore Sant'Anna, Pisa (Italy)Scuola Superiore Sant'Anna, Pisa (Italy)
  2. 2. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 2 Recently ProposedRecently Proposed Real-Time Scheduler(s)Real-Time Scheduler(s) FeaturesFeatures 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 ProblemsProblems I) Suitable kernel-space / user-space interface II) Suitable application-level interface
  3. 3. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 3 Recently proposed schedulersRecently proposed schedulers and their APIsand their APIs EDF RT Throttling (a.k.a., The IRMOS Scheduler)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_SPORADICSCHED_SPORADIC Parameters: runtime, period, low-priority POSIX standard system call: sched_setscheduler() • Breaks binary interface & compatibility Alternative system call: sched_setscheduler_ex() SCHED_DEADLINESCHED_DEADLINE Parameters: runtime, period, flags system call: sched_setscheduler_ex()
  4. 4. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 4 Hierarchical SchedulingHierarchical Scheduling Needed operationsNeeded operations create & destroy reservations attach & detach tasks reservations↔ list tasks attached to reservations (and list reservations) Standard operations: get & set parameters Max RT Prio Min RT Prio … EDFEDF FPFP FPFP T1T1 T2T2 T3T3 T4T4
  5. 5. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 5 Other FeaturesOther Features Warning: features & parameters may easily growWarning: 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
  6. 6. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 6 What US/KS mechanism(s) ?What US/KS mechanism(s) ? cgroup-based interface ?cgroup-based interface ? multi-valued cgroup entries (for atomic changes) system-call interface ?system-call interface ? Only sched_setscheduler[_ex]() A set of system calls ? Special-device & ioctl() ?Special-device & ioctl() ? proc-based interface ? (e.g., for monitoring)proc-based interface ? (e.g., for monitoring) Integration with capabilities ?Integration with capabilities ? setrlimit() / getrlimit()
  7. 7. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 7 Proposed APIProposed API for applicationsfor applications
  8. 8. © 2007 Scuola Superiore Sant’AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'AnnaTommaso Cucinotta – Real Time Systems Laboratory (ReTiS) – Scuola Superiore Sant'Anna 8 Thanks for your attentionThanks for your attention Help!!!Help!!! http://retis.sssup.it/people/tommasohttp://retis.sssup.it/people/tommaso

×