51
The Quest OS for Real-Time Computing Richard West [email protected] Computer Science

The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

The Quest OS for Real-Time Computing

Richard West

[email protected]

Computer Science

Page 2: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

2

Emerging “Smart” Devices

Page 3: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

3

Goals

• High-confidence (embedded) systems

• Mixed criticalities – timeliness and safety

• Predictable – real-time support

• Secure – resistant to component failures & malicious attacks

• Fault tolerant – online recovery from soft errors and timing violations

Page 4: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

4

Target Applications

• Healthcare

• Avionics• Automotive

• Factory automation

• Robotics

• Space exploration

• Internet-of-Things (IoT)

• Industry 4.0 “smart factories”

Page 5: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

5

Internet of Things

● Number of Internet-connected devices

> 12.5 billion in 2010● World population > 7 billion (2015)● Cisco predicts 50 billion Internet devices by

2020

Challenges:• Secure management of data• Reliable + predictable data exchange• Device interoperability

Page 6: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

6

In the Beginning...Quest

• Initially a “small” RTOS

• ~30KB ROM image for uniprocessor version

• Page-based address spaces

• Threads

• Dual-mode kernel-user separation

• Real-time Virtual CPU (VCPU) Scheduling

• Later SMP support

• LAPIC timing

FreeRTOS, uC/OS-II,

RTEMS etcQuest

Linux, Windows, Mac OS X etc

Page 7: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

7

From Quest to Quest-V

• Quest-V for multi-/many-core processors

– Distributed system on a chip

– Time as a first-class resource• Cycle-accurate time accountability

– Separate sandbox kernels for system components

– Memory isolation using h/w-assisted memory virtualization

– Also CPU, I/O, cache partitioning

• Focus on safety, efficiency, predictability + security

Page 8: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

8

Related Work

• Existing virtualized solutions for resource partitioning– Wind River Hypervisor, XtratuM, PikeOS,

Mentor Graphics Hypervisor

– Xen, Oracle PDOMs, IBM LPARs

– Muen, (Siemens) Jailhouse

Page 9: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

9

Problem

Traditional Virtual Machine approaches too expensive

– Require traps to VMM (a.k.a. hypervisor) to mux & manage machine resources for multiple guests

– e.g., ~1500 clock cycles VM-Enter/Exit on Xeon E5506

Traditional Virtual Machine approaches too memory intensive for many real-time embedded systems

Page 10: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

10

Traditional Approach(Type 1 VMM)

VMVM VM VM VM...

Type 1 VMM / Hypervisor

Hardware (CPUs, memory, devices)

Page 11: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

11

Quest-V Approach

VMVM VM VM VM...

Hardware (CPUs, memory, devices)

Eliminates hypervisor intervention during normal virtual machine operations

Page 12: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

12

Quest-V Architecture Overview

Sandbox M

Monitor

Sandbox 1

VCPU

. . .

Monitor

Sandbox 2

VCPU VCPU

Monitor

Communication+

Migration

VCPU VCPUSandbox

AddressSpace

ThreadIO Devices IO Devices IO Devices

PCPU(s) PCPU(s) PCPU(s)

Page 13: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

13

Mixed-Criticality Automotive System

Real-timeCommand &

Control

Real-timeCommand &

Control

Real-timeSensor DataProcessing

Real-timeSensor DataProcessing

MemoryMemory

MonitorMonitor

...

...

Core(s)Core(s) Core(s)Core(s) Core(s)Core(s)

Display &ExternalComms

Display &ExternalComms

Comms

MonitorMonitor MonitorMonitor

MemoryMemory MemoryMemory

I/O Devicese.g. Motors,

Servos

I/O Devicese.g. Motors,

Servos

I/O Devicese.g. Cameras,

LIDAR

I/O Devicese.g. Cameras,

LIDAR

I/O Devicese.g. GPU,

NIC

I/O Devicese.g. GPU,

NIC

Har

dwar

eK

erne

l

VCPU(s)VCPU(s) VCPU(s)VCPU(s)

Use

r

More Critical Less Critical

Sandbox 1 Sandbox 2 Sandbox M...

V2V, V2IInfotainment INTERNET

Sandboxes on multicoreplatform replaceCAN bus nodes

Sandboxes on multicoreplatform replaceCAN bus nodes

Page 14: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

14

Memory Partitioning

• Guest kernel page tables for GVA-to-GPA translation

• EPTs (a.k.a. shadow page tables) for GPA-to-HPA translation

– EPTs modifiable only by monitors– Intel VT-x: 1GB address spaces require

12KB EPTs w/ 2MB superpaging

Page 15: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

15

Quest-V Memory PartitioningQuest-V Memory Partitioning

Page 16: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

16

Quest-V Memory PartitioningQuest-V Linux Memory Layout

Page 17: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

17

Quest-V Memory PartitioningMemory Virtualization Costs• Example Data TLB overheads

• Xeon E5506 4-core @ 2.13GHz, 4GB RAM

Page 18: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

18

I/O Partitioning

• Device interrupts directed to each sandbox – Use I/O APIC redirection tables– Eliminates monitor from control path

• EPTs prevent unauthorized updates to I/O APIC memory area by guest kernels

• Port-addressed devices use in/out instructions• VMCS configured to cause monitor trap for specific port

addresses• Monitor maintains device "blacklist" for each sandbox

– DeviceID + VendorID of restricted PCI devices

Page 19: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

19

CPU Partitioning

• Scheduling local to each sandbox– partitioned rather than global– avoids monitor intervention

• Uses real-time VCPU approach for Quest native kernels [RTAS'11]

Page 20: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

20

● VCPUs for budgeted real-time execution of threads and system events (e.g., interrupts)

● Threads mapped to VCPUs

● VCPUs mapped to physical cores

● Sandbox kernels perform local scheduling on assigned cores

● Avoid VM-Exits to Monitor – eliminate cache/TLB flushes

Predictability

Page 21: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

21

VCPUs in Quest(-V)

Main VCPUs

I/O VCPUs

Threads

PCPUs (Cores)

Address Space

Page 22: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

22

SS Scheduling

• Model periodic tasks– Each SS has a pair (C,T) s.t. a server is

guaranteed C CPU cycles every period of T cycles when runnable• Guarantee applied at foreground priority• background priority when budget depleted

– Rate-Monotonic Scheduling theory applies

Page 23: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

23

PIBS Scheduling

• IO VCPUs have utilization factor, UV,IO

• IO VCPUs inherit priorities of tasks (or Main VCPUs) associated with IO events– Currently, priorities are (T) for

corresponding Main VCPU– IO VCPU budget is limited to:

• TV,main* UV,IO for period TV,main

Page 24: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

24

PIBS Scheduling

• IO VCPUs have eligibility times, when they can execute

• te = t + Cactual / UV,IO

– t = start of latest execution– t >= previous eligibility time

Page 25: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

25

Example VCPU ScheduleExample VCPU Schedule

Page 26: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

26

Sporadic Constraint

• Worst-case preemption by a sporadic task for all other tasks is not greater than that caused by an equivalent periodic task

(1) Replenishment, R must be deferred at least t+TV

(2) Can be deferred longer

(3) Can merge two overlapping replenishments• R1.time + R1.amount >= R2.time then

MERGE• Allow replenishment of R1.amount

+R2.amount at R1.time

Page 27: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

27

Example VCPU ScheduleExample SS-Only Schedule

τ1 Main ApplicationSporadic Server

C=8 T=16

0 8 16 24 32

0 8 16 24 32

0 8 16 24 32

τ2 I/O Interrupt BHSporadic Server

C=4 T=16

Execution

I/O EventInitiated Interrupts Occur

MissedDeadline

8,0 8,16

4,0

4,9

3,9 1,25

3,11 1,25

2,11 1,25 1,27

time

2,25 1,27 1,29

2,27 1,29 1,41

Page 28: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

28

Example VCPU ScheduleExample SS+PIBS Schedule

τ1 Main ApplicationSporadic Server

C=8 T=16

0 8 16 24 32

0 8 16 24 32

0 8 16 24 32

τ2 I/O Interrupt BHPIBS

U=0.25

Execution

I/O EventInitiated Interrupts Occur

8,0 8,16

time

8,32

4,04,9

4,134,25

No MissedDeadline

Page 29: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

29

Utilization Bound Test

• Sandbox with 1 PCPU, n Main VCPUs, and m I/O VCPUs– Ci = Budget Capacity of Vi– Ti = Replenishment Period of Vi– Main VCPU, Vi– Uj = Utilization factor for I/O VCPU, Vj

∑i=0

n−1CiTi

+ ∑j=0

m−1

(2−Uj)⋅Uj≤n⋅( n√2−1)

Page 30: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

30

Cache Partitioning

• Shared caches controlled using color-aware memory allocator [COLORIS – PACT'14]

• Cache occupancy prediction based on h/w performance counters

– E' = E + (1-E/C) * ml – E/C * mo

– Enhanced with hits + misses

[Book Chapter, OSR'11, PACT'10]

Page 31: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

31

Linux Front End

• For low criticality legacy services• Based on Puppy Linux 3.8.0• Runs entirely out of RAM including root filesystem• Low-cost paravirtualization

– less than 100 lines– Restrict observable memory– Adjust DMA offsets

• Grant access to VGA framebuffer + GPU• Quest native SBs tunnel terminal I/O to Linux via

shared memory using special drivers

Page 32: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

32

Quest-V Linux Screenshot

No VMX or EPT flags

1 CPU + 512 MB

Page 33: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

33

Quest-V Performance

100 Million Page Faults 1 Million fork-exec-exit Calls

Quest-V Performance

Page 34: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

34

Quest-V Summary

• Separation kernel built from scratch

– Distributed system on a chip

– Uses (optional) h/w virtualization to partition resources into sandboxes

– Protected comms channels b/w sandboxes

• Sandboxes can have different criticalities

– Linux front-end for less critical legacy services

• Sandboxes responsible for local resource management

– avoids monitor involvement

Page 35: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

35

Qduino

• Qduino – Enhanced Arduino API for Quest – Parallel and predictable loop execution– Real-time communication b/w loops– Predictable and efficient interrupt

management– Real-time event delivery– Backward compatible with Arduino API– Simplifies multithreaded real-time

programming

Page 36: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

36

Interleaved Sketches

//Sketch 2: toggle pin 10 every 3sint val10 = 0;

void setup() {pinMode(10, OUTPUT);

}

void loop() {val10 = !val10; //flip the output

valuedigitalWrite(10, val10);delay(3000); //delay 3s

}

// Sketch 1: toggle GPIO pin 9 // every 2sint val9 = 0;

void setup() {pinMode(9, OUTPUT);

}

void loop() {val9 = !val9; //flip the output valuedigitalWrite(9, val9);delay(2000); //delay 2s

}

How do you merge the sketches and keep the correct delays?

Page 37: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

37

Interleaved Sketchesint val9, val10 = 0;int next_flip9, next_flip10 = 0;

void setup() {pinMode(9, OUTPUT);pinMode(10, OUTPUT);

}void loop() {

if (millis() >= next_flip9) {val9 = !val9; //flip the output valuedigitalWrite(9, val9);next_flip9 += 2000;

}if (millis() >= next_flip10) {

val10 = !val10; //flip the output valuedigitalWrite(10, val10);next_flip10 += 3000;

}}

● Do scheduling by hand

● Inefficient

● Hard to scale

Page 38: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

38

Qduino Multi-threaded Sketchint val9, val10 = 0;int C = 500, T = 1000;

void setup() {pinMode(9, OUTPUT);pinMode(10, OUTPUT);

}

void loop(1, C, T) {val9 = !val9; // flip the output valuedigitalWrite(9, val9);delay(2000);

}

void loop(2, C, T) {val10 = !val10; // flip the output valuedigitalWrite(10, val10);delay(3000);

}

Page 39: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

39

Qduino Organization

Sketch

KernelUser

...Quest NativeApp

Quest NativeApp

Galileo

QDuino Libs

loop1 loopN...

x86 SoC

Edison Minnowboard

GPIO Driver

SPI Driver

I2C Driver

Page 40: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

40

Qduino New APIs

Function Signatures Category

● loop(loop_id, C, T) Structure

● interruptsVcpu(C,T) ← I/O VCPU● attachInterruptVcpu(pin,ISR,mode,C,T) ←Main VCPU

Interrupt

● spinlockInit(lock)● spinlockLock(lock)● spinlockUnlock(lock)

Spinlock

● channelWrite(channel,item)● item channelRead(channel)

Four-slot

● ringbufInit(buffer,size)● ringbufWrite(buffer,item)● ringbufRead(buffer,item)

Ring buffer

Page 41: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

41

Qduino Event Handling

Scheduler

MainVCPU

MainVCPU

SketchThread

I/OVCPU

User InterruptHandler

Interrupt Bottom

Half

CPU Core(s) GPIO Expander

Kernel

User

Wakeup

attachInterruptVcpu

interrupt return

GPIO Driver

Hardware Interrupt

Page 42: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

42

Qduino Temporal Isolation

0

10

20

30

40

50

60

100T 200T 300T 400T 500T

Cou

nter

(x1

04 )

Time (Periods)

(50,100),2(50,100),4

(70,100),2(70,100),4

(90,100),2(90,100),4

Linux,2Linux,4 ● Foreground loop increments

counter during loop period

● 2-4 background loops actas potential interference, consuming remainingCPU capacity

● No temporal isolation ortiming guarantees w/Linux

Page 43: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

43

Qduino Rover

● Autonomous Vehicle● Collision avoidance using

ultrasonic sensor

● Two tasks:● A sensing task detects distance to an

obstacle – delay(200)● An actuation task controls the motors -

delay(100)

Page 44: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

44

Rover Performance

● Measure the time interval between two consecutive calls to the motor actuation code

● Clanton Linux single loop● delay from both sensing

and actuation task● Qduino multi-loop

● No delay from sensing loop● No delay from sensor

timeout

● The shorter the worst case time interval, the faster the vehicle can drive

0

100

200

300

400

500

600

700

800

10 20 30 40 50 60 70 80 90 100

Tim

e (m

illis

econ

ds)

Sample #

Clanton Single-loopQduino Multi-loop

Qduino Single-loopClanton Interrupt

Page 45: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

45

RacerX Autonomous Vehicle

Page 46: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

46

Secure Home Automation

Real-timeSensor DataProcessing

Real-timeSensor DataProcessing

LinuxLinux

...

...

Core(s)Core(s) Core(s)Core(s)

Web Server /App “Plugins”

Web Server /App “Plugins”

Comms

MonitorMonitor MonitorMonitor

MemoryMemory MemoryMemory

I/O Devicese.g. Cameras,CO+Fire Alarm

I/O Devicese.g. Cameras,CO+Fire Alarm

I/O Devicese.g. NIC

I/O Devicese.g. NIC

Har

dwar

e

Ker

nel

VCPU(s)VCPU(s)

Use

r

More Secure Less Secure

Sandbox 1 Sandbox M

INTERNET

3rd Party untrustedservices

Page 47: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

47

Edison 3D Printer Controller

Real-timeSensing &

Control

Real-timeSensing &

Control

Real-timeJob

Scheduling

Real-timeJob

Scheduling

LinuxLinux

MemoryMemory

MonitorMonitor

Core(s)Core(s) Core(s)Core(s) Core(s)Core(s)

Web Server /Verification

Web Server /Verification

Comms

MonitorMonitor MonitorMonitor

MemoryMemory MemoryMemory

I/O Devicese.g. Motors,

Extruder,Temp Sensors

I/O Devicese.g. Motors,

Extruder,Temp Sensors

I/O Devicese.g. Flash

Storage

I/O Devicese.g. Flash

Storage

I/O Devicese.g. NIC

I/O Devicese.g. NIC

Har

dwar

eK

erne

l

VCPU(s)VCPU(s) VCPU(s)VCPU(s)

Use

r

Unt

rust

ed

Tru

sted

Sandbox 1 Sandbox 2 Sandbox 3

DU

AL

CO

RE

AT

OM

SIL

VE

RM

ON

T

QU

AR

K M

CU

INT

ER

NE

T

Page 48: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

48

Minnowboard 3D Printer Controller

Page 49: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

49

Demos

● Qduino Rover● Quest-V Triple modular redundancy (TMR) fault recovery for unmanned aerial vehicle (UAV)

http://quest.bu.edu/demo.html

Page 50: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

50

Conclusions

● Quest-V uses one monitor per sandbox● Heightens security & safety● Monitors are small

● Not needed for resource multiplexing

● Possible to refactor legacy apps into separate components mapped to different sandboxes

● Eases transition to a new OS

● Qduino real-time multi-loop programming

Page 51: The Quest OS for Real-Time Computingcs-pub.bu.edu/fac/richwest/slides/robotics_society_2016.pdf · – Intel VT-x: 1GB address spaces require 12KB EPTs w/ 2MB superpaging. 15

51

The Quest Team

• Richard West

• Ye Li

• Eric Missimer

• Matt Danish

• Gary Wong

• Ying Ye

• Zhuoqun Cheng

The Quest Team