Download
real time operating systems n.
Skip this Video
Loading SlideShow in 5 Seconds..
Real-Time Operating Systems PowerPoint Presentation
Download Presentation
Real-Time Operating Systems

Real-Time Operating Systems

109 Views Download Presentation
Download Presentation

Real-Time Operating Systems

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

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

  2. Motivating Example void main() { do forever{ check keypad; measure temperature; control oven power; decrement timer; update display; wait for clock tick; } }

  3. Motivating Example - 2 void main() { do forever{ check keypad; measure temperature; check keypad; control oven; check keypad; } }

  4. Presentation Outline • Definition of real-time • Characteristics of RTOS’s • Examples • c-OS • AvrX • RTLinux • QNX Neutrino

  5. What is real-time? • Correctness of output depends on timing as well as result • Hard vs. soft real-time • Are Windows and Linux real-time?

  6. 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

  7. 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

  8. Basic 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.

  9. Example RTOS’s • Micrium 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/

  10. c-OS II • Features • Sample main() function • Calling OSTaskCreate() • Creating a task

  11. C-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)

  12. C-OS Sample Code void main (void) { /* Perform Initializations */ ... OSInit(); ... /* Create at least one task by calling OSTaskCreate() */ OSStart(); }

  13. C-OS Sample Code INT8U OSTaskCreate ( void (*task)(void *pd), void *pdata, OS_STK *ptos, INT8U prio);

  14. C-OS Sample Code 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 */ }}

  15. AvrX • Specs • Internal structures • Sample code: task creation

  16. AvrX 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

  17. AvrX 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.

  18. An 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

  19. RTLinux • Additional layer between Linux kernel and hardware • Worst-case dispatch latency on x86: 15 s

  20. RTLinux: Basic Idea

  21. QNX Neutrino • Powerful hard RTOS • Includes GUI • Memory protection and fault tolerance

  22. Summary • Hard real-time, soft real-time • Characteristics of an RTOS • Example RTOS’s • Specs • Internal structure/ideas • Sample code