59
RT OS and RT Linux Daniel Bristot de Oliveira

2013 ufsc rt_grad_class

Embed Size (px)

Citation preview

Page 1: 2013 ufsc rt_grad_class

RT OS and

RT LinuxDaniel Bristot de Oliveira

Page 2: 2013 ufsc rt_grad_class

Who I'm and what we will

talk about?

Page 3: 2013 ufsc rt_grad_class

an Operating System overview

Page 4: 2013 ufsc rt_grad_class

Operating System

Application

Hardware

Page 5: 2013 ufsc rt_grad_class

Tasks of an OS

Page 6: 2013 ufsc rt_grad_class

Hardware...

Page 7: 2013 ufsc rt_grad_class

Embedded system without OS

Page 8: 2013 ufsc rt_grad_class

OS as a library

Page 9: 2013 ufsc rt_grad_class

OS as a library

Page 10: 2013 ufsc rt_grad_class

OS as a library

Page 11: 2013 ufsc rt_grad_class

Memory Protection - MMU

Page 12: 2013 ufsc rt_grad_class

OS with a Micro-Kernel

Page 13: 2013 ufsc rt_grad_class

OS as we know

Page 14: 2013 ufsc rt_grad_class

What does Real-Time means?

Page 15: 2013 ufsc rt_grad_class

Event -> Response, latency,

response time,

deadline...

Page 16: 2013 ufsc rt_grad_class

Real-Time means

fast?

Page 17: 2013 ufsc rt_grad_class

Real Time != FAST!

Page 18: 2013 ufsc rt_grad_class

RT means

Determinism, WCET,

Response Time.

Page 19: 2013 ufsc rt_grad_class

What is a Real-Time

Operating System?

Page 20: 2013 ufsc rt_grad_class

Deterministic hardware+

Deterministic hardware abstraction+

Services with WCET+

Deterministic Resource Management=?

Page 21: 2013 ufsc rt_grad_class

Real-Time Operating System Examples

Page 22: 2013 ufsc rt_grad_class

?

Page 23: 2013 ufsc rt_grad_class

FreeRTOS

Page 24: 2013 ufsc rt_grad_class

Neutrino (QNX)

Page 25: 2013 ufsc rt_grad_class

Linux ?

Page 26: 2013 ufsc rt_grad_class

Why is Linux not a RTOS?

Page 27: 2013 ufsc rt_grad_class

Linux is too much flexible

Page 28: 2013 ufsc rt_grad_class

General Purpose OS

● Linux not is a RTOS by conception● Higher throughput rather than higher

determinism.● High latency.

● But has:● Static priority sched: FIFO and RR

Page 29: 2013 ufsc rt_grad_class

Linux as a RTOS?

● Why?● Hardware support

● ARM, MIPS, POWERPC, intel, TILE 64, ADBF...● Services

● FS, Network Stack...● Money

● Rich company X needs a low latency Oracle database.

Page 30: 2013 ufsc rt_grad_class

How Red Hat shows your Real-Time Linux

Page 31: 2013 ufsc rt_grad_class

Real-Time Linux: Past, Present, Possible

Futures...

Page 32: 2013 ufsc rt_grad_class

RTAI and Xenomai

Page 33: 2013 ufsc rt_grad_class
Page 34: 2013 ufsc rt_grad_class

RT Task on Xenomai +

Non-RT on Linux... =

):) <- this is a bipolar emoticon

Page 35: 2013 ufsc rt_grad_class

PREEMPT-RT

Page 36: 2013 ufsc rt_grad_class

- latency+ control over OS tasks

Page 37: 2013 ufsc rt_grad_class

Sources of latency

● IRQ Handling● Softirq

● Preempt off● spinlocks

● IRQ off

Page 38: 2013 ufsc rt_grad_class

Preemptive lock

Page 39: 2013 ufsc rt_grad_class

Priority inversion problems...

Page 40: 2013 ufsc rt_grad_class
Page 41: 2013 ufsc rt_grad_class

IRQ Handling

Page 42: 2013 ufsc rt_grad_class
Page 43: 2013 ufsc rt_grad_class
Page 44: 2013 ufsc rt_grad_class
Page 45: 2013 ufsc rt_grad_class

How good is PREEMPT_RT Today?

Page 46: 2013 ufsc rt_grad_class
Page 47: 2013 ufsc rt_grad_class

PREMPT-RT is WONDERFULL! Let's use everywhere!!!

Page 48: 2013 ufsc rt_grad_class

):)

This is another bipolar emoticon, but more happy than another...

Page 49: 2013 ufsc rt_grad_class

How expensive is PREEMP-RT?

Page 50: 2013 ufsc rt_grad_class

12 24 36 600

5

10

15

20

25

30

35

40

45

50

PREEMPT-RT

Vanilla

Concurrent channels

CP

U L

oa

d (

%)

Page 51: 2013 ufsc rt_grad_class

LITMUSRT

Page 52: 2013 ufsc rt_grad_class

A testbed for multiprocessor scheduling

in Real-Time Systems

Page 53: 2013 ufsc rt_grad_class

(Partitioned|Global|Clustered) EDF

Partitioned Fixed-Priority

PD2 (PFAIR)

Page 54: 2013 ufsc rt_grad_class

Mutual Exclusion

Interrupt Handling

Real-Time GPU Management

Tracing Tools

Page 55: 2013 ufsc rt_grad_class

How good is Litmus RT?

Page 56: 2013 ufsc rt_grad_class
Page 57: 2013 ufsc rt_grad_class

Litmus RT=

a way to pick next taskwith a RT API.

Page 58: 2013 ufsc rt_grad_class

A little bit of my MS Degree dissertation...

Page 59: 2013 ufsc rt_grad_class

Questions?