25. Requirements for MCS
• Certifiable spatial isolation
• Certifiable temporal isolation:
• Ability to guarantee deadlines without trusting low-criticality, high-priority processes
• Ability to share resources (servers) safely, even across criticalities
• Ability to re-use all slack for low-criticality processes
• Desirable for seL4: capabilities for time control
Flying autonomous aircraft: Mixed-criticality support in seL4 | LCA'18 25 |
26. Scheduling Contexts: Caps for Time
Classical thread attributes
• Priority
• Time slice
New thread attributes
• Priority
• Scheduling context capability
Flying autonomous aircraft: Mixed-criticality support in seL4 | LCA'18 26 |
Not
runnable
if null
Not
runnable
if null
Scheduling context object
• T: period
• C: budget (≤ T)
Limits CPU
access!
SchedControl capability
conveys right to assign
budgets (i.e. perform
admission control)
C = 2
T = 3
C = 250
T = 1000
Capability
for time
29. Budget Expiry Options
• Multi-threaded servers (COMPOSITE [Parmer ‘10])
• Model allows this
• Forcing all servers to be thread-safe is policy !
• Bandwidth inheritance with “helping” (Fiasco [Steinberg ‘10])
• Ugly dependency chains !
• Wrong thread charged for recovery cost !
• Use timeout exceptions to trigger one of several possible actions:
• Provide emergency budget
• Cancel operation & roll-back server
• Change criticality
• Implement priority inheritance (if you must…)
Flying autonomous aircraft: Mixed-criticality support in seL4 | LCA'18 29 |
Mechanism for
implementing other
models, e.g. earliest-
deadline first (EDF)
30. Cost of Isolation
Operation Mainline MCS Overhead
IPC Call (client) 307 307 0%
IPC ReplyRecv (server) 320 333 4%
IRQ latency 1597 1776 11%
Signal semaphore 138 144 4%
schedule 878 1048 19%
Flying autonomous aircraft: Mixed-criticality support in seL4 | LCA'18 30 |
Microbenchmark latencies in cycles on 1 GHZ ARM A9