html5-img
1 / 26

VxWorks

VxWorks. What is VxWorks? .

larissa
Download Presentation

VxWorks

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

  2. What is VxWorks? • VxWorks, from Wind River Systems, is a networked real-time operating system designed to be used in a distributed environment. It runs on a wide variety of hardware. It requires a host workstation for program development; supported host platforms include Sun3, Sun4…. • Is the run-time component of the Tornado 3 embedded development platform.

  3. What is VxWorks? • The VxWorks RTOS comprises the core capabilities of the wind microkernel (not monolithic) along with advanced networking support, powerful file system and I/O management, and C++ and other standard run-time support.

  4. What is VxWorks? • The development environment is based on cross-development or remote-development method. You will need a UNIX machine of some sort (e.g. SUN's) to run the compilers and debuggers. The compiled application code can be downloaded to the target and runs as part of the VxWorks image. During the development phase or thereafter, individual object code (.o files) can be downloaded dynamically to running target system. Finished applications can be ROM'ed or whatever.

  5. What is VxWorks? • VxWorks most definitely is not a "realtime UNIX", or a varient of UNIX as often misunderstood by some people. The confusion perhaps is due to the fact that UNIX hosts are used most widely to develop applications for VxWorks (and VxWorks itself).

  6. Brief History of VxWorks • WRS was started by Jerry Fiddler and David Wilner in Jerry's garage as a contract/consultant shop for realtime, embedded systems and other fun things. They wrote a bunch of neat programs for their work and eventually adding some things unheard of in embedded/realtime market in those days such TCP/IP networking. And continued to pioneer in this area by adding NFS, etc.

  7. Brief History of VxWorks • VxWorks was the name given the collection of software which ran on top of various realtime kernels including VRTX and pSOS as well an earlier slower version of WIND kernel. VxWorks now no longer runs on other kernels; it now runs exclusively on its own WIND kernel since the 5.0 release, for which the WIND was rewritten by John Fogelin.

  8. Wind microkernel • Efficient task management • multitasking, unlimited number of tasks • Preemptive and round-robin scheduling • Fast, deterministic context switching • 256 priority levels

  9. Wind microkernel • Fast, flexible intertask communications • Binary, counting, and mutual exclusion semaphores with priority inheritance • Message queues – local and locale-transparent distributed messaging • POSIX pipes, counting semaphores, message queues, signals and scheduling • Control sockets • Shared memory • Standard COM • VxFusion

  10. Wind semaphores • binary • The fastest, most general purpose semaphore. Optimized for synchronization and can also be used for mutual exclusion. • mutual exclusion • A special binary semaphore optimized for problems inherent in mutual exclusion: priority inheritance, deletion safety and recursion. • Counting • Like the binary semaphore, but keeps track of the number of times the semaphore is given. Optimized for guarding multiple instances of a resource.

  11. Wind microkernel • High scalability • Incremental linking and loading of components • Fast, efficient interrupt and exception handling • Optimized floating-point support • Dynamic memory management • System clock and timing facilities

  12. Networking support • BSD 4.4 TCP/IP networking • IP, IGMP, CIDR, TCP, UDP, ARP • PPP, SLIP/CSLIP • Standard Berkeley sockets • Berkeley packet filter • RIPv1/v2 and routing sockets • TFTP, rlogin, telnet, rsh • NFS dient and server, ONC RPC • SNTP SNMPv1/v2c/v3 Network Protocol Toolkit BGP-4 Ipsec/IKE NAT L2TP MPLS ATM Frame relay ISDN SS7

  13. Fast, flexible I/O and local file system • POSIX asynchronous I/O and directory handling • SCSI support • MS-DOS-compatible file system • TrueFFS flash file system (optional) • ISO 9660 CD-ROM file system • PCMCIA support

  14. Other Features • Protection domain management • Resource tracking and management • System overrun protection • Powerful loader facilities

  15. Protection domain management

  16. Overlapped memory model

  17. Multasking • ready – • the task is waiting only for CPU time • pending – • the task is blocked because some resource is unavailable • delayed – • the task is inactive for a pre-determined time interval • suspended – • the task is prevented from becoming active

  18. Multasking The highest-priority ready task is executing. delayed pending ready suspended taskInit()

  19. Priority Preemption

  20. Round-Robin Scheduling

  21. differences between traditional UNIX and VxWorks • VxWorks runs in one mode. No protected vs. user mode switching is done. Running in supervisor mode on most processors, and not using traps for system calls, VxWorks can achieve minimal overhead on a given piece of hardware than UNIX. Programming on VxWorks can be more tricky than UNIX for the same reason. • UNIX provides resource reclamation; by default, VxWorks does not. • VxWorks does not have full "process"; it only has tasks, or "threads".

  22. differences between traditional UNIX and VxWorks • VxWorks: minimal interrupt latency (e.g. spl's are quasi-implemented as semaphores). Traditional UNIX: high interrupt latency (e.g. spl's are implemented as interrupt lock and unlock calls). • VxWorks: priority interrupt-driven preemption, optional round-robin time-slicing. Traditional UNIX: prioritized round-robin preemptive time-slicing. Since VxWorks is just a glorified "program" it can be changed and customized pretty easily. Task scheduling can be customized as desired. • VxWorks networking code, however, is very UNIX compatible. It is essentially "ported" version of BSD UNIX TCP/IP code -- tahoe release .

  23. Example:Porting VxWorks to Gmicro/200 • Portable kernel modifications • Establishing the VxWorks shell environment • Adding Gmicro-specific debug functions • Adding board-specific functions • Adding networking support • Building BootROM • Optimizing and tuning • testing

  24. Impl. Architecture

  25. development • Tornado in Mobile Internet • Wind River rolls out safety-critical software

More Related