1 / 19

Topics Covered

Topics Covered. What is Real Time Operating System (RTOS) Standard for RTOS VxWorks Features as RTOS Layer Structure Microkernal Functions: Multitasking Scheduling Interrupt Service Code Shared Code and Reentrancy Intertask Communications Applications for VxWorks.

dlynn
Télécharger la présentation

Topics Covered

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Topics Covered • What is Real Time Operating System (RTOS) • Standard for RTOS • VxWorks Features as RTOS • Layer Structure • Microkernal Functions: • Multitasking • Scheduling • Interrupt Service Code • Shared Code and Reentrancy • Intertask Communications • Applications for VxWorks

  2. What is Real Time OS (RTOS) • RTOS Characteristics • Processing must be done within a time constraint or the system will fail. • All delays in the system will be bounded; from the retrieval of stored data to the time RTOS finishes the request. • Types of RTOS • Hard RTOS • Soft RTOS

  3. Standard for RTOS • Standard requirement for RTOS • POSIX 1003.1b by ISO/IEEE chapter. POSIX interfaces: • Queued signals • Scheduling • Clocks and timers • Asynchronous I/O • Semaphore • Message queues • Memory management

  4. VxWorks OS as RTOS

  5. Layer Structure Real-Time Embedded Application Internet Graphics Multiprocessing Java Support POSIX Library File System WindNet Networking Core OS: Wind Microkernal

  6. Multitasking P R D S • Suspended – used primarily for debugging • Ready – wait for CPU, • a single primitive=create+activate • Pended – blocked, wait t time for recourses. After t - Error. • Delay – asleep for t time, after t goes to ready state. • On a context switch, a task’s context is saved in TCB. All code executes in a single common space. Memory isn’t saved.

  7. Scheduling, One CPU • Priority-based preemptive scheduling • Each task has priority (from 0 - highest to 255 - lowest). Each priority has its own queue. • If two tasks are in the ready state, a lower priority task would be pre-empted by one of a higher priority. • Round-robin scheduling • After time slice for a task expires, another task with the same priority will execute during the given time slice. • Preemption locks • These locks prevent task context switching, but do not prevent interrupt handling.

  8. Interrupt Service Code Via interrupts, the system is informed of external events. • Interrupt Service Routines (ISRs) run outside any task context. • Interrupt handling involves no task context switch. • Limitations of ISR: • All ISRs share the same stack • ISR has no context that can be suspended • Cannot take the semaphore, but can give the semaphores, releasing any task waiting on them. • Cannot perform I/O through drivers except pipe.

  9. Shared Code and Reentrancy • Shared Code - a single copy of code executed by multiple tasks. • Shared Code must be reentrant. A subroutine is reentrant if a single copy of the routine can be called simultaneously from several task contexts without conflict. • Reentrancy Techniques: • Dynamic Stack Variables • Global and Static Variables Guarded by Semaphores • Task Variables

  10. Shared Code and Reentrancy, Continued Dynamic Stack Variables Task Stacks Common Function Tasks Task1( ){ ….. comFun(myData1) } myData1 comFun(yourData){ } Task2( ){ ….. comFun(myData2) } myData2

  11. Shard Code and Reentrancy, Continued • Guarded Global and Static Variables • Mutual-exclusion mechanism - only one task at a time can be in a critical section of the code. • Task Variables • Four byte variables are added to the task context block (TCB).

  12. Intertask Communications, One CPU Types of Intertask Communications: • Shared Data • Message Queue • Pipes - Virtual I/0 • Network Intertask Communication • Sockets • Remote Procedure Call

  13. Intertask Communication, Shared Data Tasks Memory Access SharData 1. Access SharData SharData 2. Access SharData 3.

  14. Semaphores Semaphore - mechanism for mutual exclusion and intertask communication. • Binary Semaphore Semaphore available TimeOut= No_Wait NO Task is pended for timeOut NO NO YES YES Task cont. Semaphore taken Task cont. Semaphore not taken

  15. Semaphores, Continued • Counting Semaphore • Every time is semaphore is given count ++ • Every time is semaphore is taken count -- • If count=0, task that tried to take semaphore is blocked • If semaphore is given and task is blocked, task is unblocked • Is semaphore is given and no tasks are blocked, count ++ • Special Semaphore Option (Not in POSIX) • Timeout • Time the task is willing to wait (time in ticks) in pended state. If time > timeout, ERROR occurs.

  16. Intertask Communication, Message Queue • Allows a variable number of messages to be queued • Any task or ISR can send a message to a queue. • Multiple tasks can send and receive from the same message queue. • Timeout Parameter: • Send message: how long to wait for buffer space to place message. • Receive message: how long to wait to obtain message.

  17. Applications for VxWorks Some usage of RTOS • Flight simulators • Radio and optical telescopes • Navigation systems • Deep sea instrumentation • Traffic control systems • Modems • Printers • Digital cameras • Hand-held computing devices • Routers, switches, and other network devices … any systems where rigid time requirement have been placed on the operation of a processor or the flow of the data.

  18. Thank You Any Questions ?

  19. Bibliography VxWorks 5.4 Programmer Guide

More Related