Real-Time and Embedded Operating Systems

What is Real Time?

 Real-time: Systems where the correctness of computation depends on the timing of the results

 Embedded: Systems that tightly interact with the physical world

1 Embedded and Real-Time Computing

Classical Applications

Advanced Embedded Systems The Next Frontier

Trend: • Invisible (embedded) computing, implicit interfaces (users need only 1 mobile device – rest should be non-intrusive) • Context-aware computing (new sensors, new effectors) • Ubiquitous – instrument what we use most (attire, personal effects, …)

Processors Embedded Everywhere - Transparent - Context-aware - Mobile - Miniature - Ubiquitous (Smart attire, smart spaces, …) Today

2 Embedded Networked Systems

RFID Embedded Networks Device Applications Industrial Networks Networks

Remote Sensing Networks

Medical Networks Smart Space Networks

Embedded Computing

 Computing occurs in physical context. It must be aware of physical real-world properties:

 Time

 Energy

 Physical space and context

3 So What Does “Real-Time” Mean Again?

Why Predictability?

Example: Going to the Airport Which route would you choose?

•Route 1: 15 min ($1 Toll) •Route 2: 5 min - 45 min, with 15 min average (Free)

You pay for predictability

4 The Task Model

 Typically, periodic tasks

 Each task invocation must complete before the next one starts (deadlines = periods)

How to Ensure Predictability?

 Real-time operating systems are distinguished by mechanisms they use to ensure predictable task execution

5 Predictability: Mechanism #1:

 Real-time operating systems feature predictable scheduling policies

Utilization Bounds

 Intuitively, for a given scheduling policy:

 The lower the processor utilization, U, the easier it is to meet deadlines.

 The higher the processor utilization, U, the more difficult it is to meet deadlines.

 Question: is there a threshold Ubound such that

 When U < Ubound deadlines are met

6 Main Results

Periodic Task Scheduling

Rate Monotonic EDF

Bound Optimality Bound Optimality 69% 100%

Mixed Periodic and Aperiodic Task Systems

 Idea: aperiodic tasks can be served by periodically invoked servers  The server can be accounted for in periodic task schedulability analysis

 The server has a period Ps and a budget Bs  Server can serve aperiodic tasks until budget expires  Servers have different flavors depending on the details of when they are invoked, what priority they have, and how budgets are replenished

Server

Aperiodic Tasks

7 Example: Polling Server

 Runs as a periodic task (priority set according to RM)  Aperiodic arrivals are queued until the server task is invoked  When the server is invoked it serves the queue until it is empty or until the budget expires then suspends itself

 If the queue is empty when the server is invoked it suspends itself immediately.  Server is treated as a regular periodic task

Other Real-time Servers

 Deferrable server

 Sporadic server

 Priority exchange server

 Slack stealing server

 Constant bandwidth server

 etc...

8 Predictability Mechanism #2: Synchronization

 Real-time operating systems feature predictable locking mechanisms (that guarantee bounded blocking time)

Mutual Exclusion Constraints

 Tasks that /unlock the same are said to have a constraint

Lock S Unlock S

Task 1 Critical sections (Mutually exclusive) Task 2

Lock S Unlock S

9 Remember Unbounded Priority Inversion?

 Consider the case below: a series of intermediate priority tasks is delaying a higher- priority one Attempt to lock S High-priority task results in blocking

Preempt. Unbounded Priority Inversion Intermediate-priority tasks … Lock S Preempt. Low-priority task

Unbounded Priority Inversion

 How to prevent unbounded priority inversion?

Attempt to lock S High-priority task results in blocking

Preempt. Unbounded Priority Inversion Intermediate-priority tasks … Lock S Preempt. Low-priority task

10 Example from Earlier: Priority Inheritance Protocol

 Let a task inherit the priority of any higher- priority task it is blocking Attempt to lock S High-priority task results in blocking

Preempt. Unlock S Lock S Intermediate-priority tasks … Lock S Unlock S Low-priority task

Example from Earlier: Priority Ceiling Protocol

 Definition: The priority ceiling of a semaphore is the highest priority of any task that can lock it

 A task that requests a lock Rk is denied if its priority is not higher than the highest priority ceiling of all currently locked semaphores (say it belongs to

semaphore Rh)

 The task is said to be blocked by the task holding lock Rh  A task inherits the priority of the top higher-priority task it is blocking

11 Multicore: Contention over Memory

 Execution on different processors may not be entirely independent because of contention over main memory bandwidth

Multicore: Contention over Cache

 Execution on different processors may not be entirely independent because of contention over cache (one task might cause content belonging to another to be kicked out of the cache)

 Solutions:

 Allow tasks to have dedicated portions of cache

 Allow cache lines to be locked

12 Predictability Mechanism #3: Communication

 Communication must offer a bounded latency as well.

 This design decisions favors communication protocols that offer dedicated resources to communicating nodes (e.g., their own time slots) over those that offer a shared contention- based medium access.

Predictability Mechanism #4: Real-time Virtual Machines

 Consider the problem of garbage collection in Java

 The garbage collector can run at arbitrary times and consume an arbitrary amount of resources

 Solution:

 Bound the latency of any activities that interrupt the current task (such as the garbage collector)

13 Other Considerations

 General resource efficiency

 Energy efficiency

 Code minimality

 Configurability

 Security

 Verifiability

14