Vx Works What is Vx Works Vx Works


























- Slides: 26
Vx. Works
What is Vx. Works? Vx. Works, 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 Sun 3, Sun 4…. Is the run-time component of the Tornado 3 embedded development platform.
What is Vx. Works? The Vx. Works 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.
What is Vx. Works? 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 Vx. Works 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.
What is Vx. Works? Vx. Works 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 Vx. Works (and Vx. Works itself).
Brief History of Vx. Works 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.
Brief History of Vx. Works was the name given the collection of software which ran on top of various realtime kernels including VRTX and p. SOS as well an earlier slower version of WIND kernel. Vx. Works 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.
Wind microkernel Efficient task management n n multitasking, unlimited number of tasks Preemptive and round-robin scheduling Fast, deterministic context switching 256 priority levels
Wind microkernel Fast, flexible intertask communications n n n n 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 Vx. Fusion
Wind semaphores binary n The fastest, most general purpose semaphore. Optimized for synchronization and can also be used for mutual exclusion n A special binary semaphore optimized for problems inherent in mutual exclusion: priority inheritance, deletion safety and recursion. Counting n Like the binary semaphore, but keeps track of the number of times the semaphore is given. Optimized for guarding multiple instances of a resource.
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
Networking support BSD 4. 4 TCP/IP networking IP, IGMP, CIDR, TCP, UDP, ARP PPP, SLIP/CSLIP Standard Berkeley sockets Berkeley packet filter RIPv 1/v 2 and routing sockets TFTP, rlogin, telnet, rsh NFS dient and server, ONC RPC SNTP SNMPv 1/v 2 c/v 3 Network Protocol Toolkit BGP-4 Ipsec/IKE NAT L 2 TP MPLS ATM Frame relay ISDN SS 7
Fast, flexible I/O and local file system POSIX asynchronous I/O and directory handling SCSI support MS-DOS-compatible file system True. FFS flash file system (optional) ISO 9660 CD-ROM file system PCMCIA support
Other Features Protection domain management Resource tracking and management System overrun protection Powerful loader facilities
Protection domain management
Overlapped memory model
Multasking ready – n the task is waiting only for CPU time pending – n the task is blocked because some resource is unavailable delayed – n the task is inactive for a pre-determined time interval suspended – n the task is prevented from becoming active
Multasking The highest-priority ready task is executing. pending ready suspended task. Init() delayed
Priority Preemption
Round-Robin Scheduling
traditional UNIX and Vx. Works 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, Vx. Works can achieve minimal overhead on a given piece of hardware than UNIX. Programming on Vx. Works can be more tricky than UNIX for the same reason. UNIX provides resource reclamation; by default, Vx. Works does not have full "process"; it only has tasks, or "threads".
traditional UNIX and Vx. Works: 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). Vx. Works: priority interrupt-driven preemption, optional round-robin time-slicing. Traditional UNIX: prioritized round-robin preemptive timeslicing. Since Vx. Works is just a glorified "program" it can be changed and customized pretty easily. Task scheduling can be customized as desired. Vx. Works networking code, however, is very UNIX compatible. It is essentially "ported" version of BSD UNIX TCP/IP code -- tahoe release.
Example: Porting Vx. Works to Gmicro/200 Portable kernel modifications Establishing the Vx. Works shell environment Adding Gmicro-specific debug functions Adding board-specific functions Adding networking support Building Boot. ROM Optimizing and tuning testing
Impl. Architecture
development Tornado in Mobile Internet Wind River rolls out safety-critical software