22
Real-Time Operating Real-Time Operating Systems Systems Suzanne Rivoire November 20, 2002 http://www.stanford.edu/ ~skrufi/rtospres.ppt

suzannerivoire-rtos. ppt

Embed Size (px)

Citation preview

Page 1: suzannerivoire-rtos. ppt

Real-Time Operating SystemsReal-Time Operating Systems

Suzanne RivoireNovember 20, 2002

http://www.stanford.edu/~skrufi/rtospres.ppt

Page 2: suzannerivoire-rtos. ppt

Motivating ExampleMotivating Examplevoid main() {do forever{ check keypad; measure temperature; control oven power; decrement timer; update display; wait for clock tick;

}}

Page 3: suzannerivoire-rtos. ppt

Motivating Example - 2Motivating Example - 2

void main() {do forever{ check keypad; measure temperature; check keypad;

control oven; check keypad;

}}

Page 4: suzannerivoire-rtos. ppt

Presentation OutlinePresentation OutlineDefinition of real-timeCharacteristics of RTOS’sExamples

c-OS– AvrX– RTLinux– QNX Neutrino

Page 5: suzannerivoire-rtos. ppt

What What isis real-time? real-time?

Correctness of output depends on timing as well as result

Hard vs. soft real-time

Are Windows and Linux real-time?

Page 6: suzannerivoire-rtos. ppt

In a Hard RTOS…In a Hard RTOS…

Thread priorities can be set by the client

Threads always run according to priority

Kernel must be preemptible or bounded

Interrupts must be bounded

No virtual memory

Page 7: suzannerivoire-rtos. ppt

In a Soft RTOS…In a Soft RTOS…

Like a hard RTOS:– Priority scheduling, with no degradation– Low dispatch latency– Preemptible system calls– No virtual memory (or allow pages to be locked)

Linux: guarantees about relative timing of tasks, no guarantees about syscalls

Page 8: suzannerivoire-rtos. ppt

Basic RTOS ReferencesBasic RTOS References

http://www.dedicated-systems.com/encyc/publications/faq/rtfaq.htm

http://www.steroidmicros.com/mtkernel.html

http://www.qnx.com/developer/articles/dec1200b/

Silberschatz and Galvin, Operating System Concepts.

Page 9: suzannerivoire-rtos. ppt

Example RTOS’sExample RTOS’sMicrium c-OS II http://www.ucos-ii.com/AvrX http://www.barello.net/avrx/RTLinux

http://fsmlabs.com/developers/man_pages/QNX Neutrino http://www.qnx.com/

Page 10: suzannerivoire-rtos. ppt

c-OS IIc-OS II

Features

Sample main() function

Calling OSTaskCreate()

Creating a task

Page 11: suzannerivoire-rtos. ppt

C-OS IIC-OS II Ports to the AVR, ATmega103 Comes with book: Micro-C OS: The Real-Time

Kernel by Jean Labrosse ($52) Features

– Semaphores and mutexes

– Event flags

– Message mailboxes and queues

– Task management (priority settings)

Page 12: suzannerivoire-rtos. ppt

void main (void) { /* Perform Initializations */ ... OSInit(); ... /* Create at least one task by calling OSTaskCreate() */

OSStart();}

C-OS Sample CodeC-OS Sample Code

Page 13: suzannerivoire-rtos. ppt

INT8U OSTaskCreate (void (*task)(void *pd),void *pdata,OS_STK *ptos,INT8U prio);

C-OS Sample CodeC-OS Sample Code

Page 14: suzannerivoire-rtos. ppt

void UserTask (void *pdata) {pdata = pdata;/* User task initialization */while (1) {/* User code goes here *//* You MUST invoke a service provided by µC/OS-II to: *//* ... a) Delay the task for ‘n’ ticks *//* ... b) Wait on a semaphore *//* ... c) Wait for a message from a task or an ISR *//* ... d) Suspend execution of this task */ }}

C-OS Sample CodeC-OS Sample Code

Page 15: suzannerivoire-rtos. ppt

AvrXAvrX

Specs

Internal structures

Sample code: task creation

Page 16: suzannerivoire-rtos. ppt

AvrX SpecsAvrX Specs

Code size: 500-700 words (2x bigger with debug monitor)

16 priority levels

Overhead: 20% of CPU

Version 2.3 for assembly code, 2.6 for C interface

Page 17: suzannerivoire-rtos. ppt

AvrX InternalsAvrX Internals

Routine _Prolog saves state, _Epilog restores it

Task info stored in a PID block and a task control block

Modules for timers, semaphores, etc.

Page 18: suzannerivoire-rtos. ppt

An AvrX TaskAn AvrX Task

AVRX_TASKDEF(myTask, 10, 3){    TimerControlBlock MyTimer;    while (1)    {        AvrXDelay(&MyTimer, 10); // 10ms delay        AvrXSetSemaphore(&Timeout);    }}

Arguments: task name, additional stack bytes, priority

Page 19: suzannerivoire-rtos. ppt

RTLinuxRTLinux

Additional layer between Linux kernel and hardware

Worst-case dispatch latency on x86: 15 s

Page 20: suzannerivoire-rtos. ppt

RTLinux: Basic IdeaRTLinux: Basic Idea

Page 21: suzannerivoire-rtos. ppt

QNX NeutrinoQNX Neutrino

Powerful hard RTOS

Includes GUI

Memory protection and fault tolerance

Page 22: suzannerivoire-rtos. ppt

SummarySummary

Hard real-time, soft real-time

Characteristics of an RTOS

Example RTOS’s

– Specs

– Internal structure/ideas

– Sample code