Professional Documents
Culture Documents
VxWorks vs. LynxOS Real-Time Operating Systems For Embedded Systems
VxWorks vs. LynxOS Real-Time Operating Systems For Embedded Systems
105-108
TI Journals
ISSN:
2222-2510
Copyright 2015. All rights reserved for TI Journals.
Negin Mahani
Faculty of computer enginiering, Zarand High Education Center, Zarand, Kerman, Iran
*
Keywords
Abstract
Embedded Systems
Real-Time Operating SystemsVxWorks
LynxOS
Recently there is a growing interest to design real time embedded systems which have the shortest delay.
Operating systems (OSes) play a significant role in real time systems. In this paper some features of the realtime operating systems (RTOSes) VxWorks and LynxOS, like scheduling, memory management, error
handling and etc. are compared. The concept of embedded systems and RTOSes is mentioned and this is
followed by explaining features of these two RTOSes in detail.
The authors conclusion is that both VxWorks and LynxOS have their positive and negative points and
deciding which is better to use, depends on your embedded system. For example if your embedded system
needs to have an optimized size, its better to use VxWorks.
1.
Introduction
There are many operating systems that are not real-time and try to have real-time behavior, but none or a few of them complete their work and
deliver their services on time, which is required for a hard real-time system. A hard real time system is a system that because of its need to quick
and guaranteed response doesnt use virtual memory and time-sharing. In soft real-time system, there is a critical real-time task that has priority
over other tasks. VxWorks and LynxOS are two of the most successful hard RTOSes on the market today.
The aim of this paper is to compare some features of the real-time operating systems (RTOSes) VxWorks and LynxOS, like scheduling, memory
management, error handling and other issues. The concept of embedded systems is included in the next section. Section 2 is also includes some
detailed explanations about RTOSes, VxWorks, LynxOS and comparison of these two RTOSes. Finally the conclusion is the last section.
2.
Embedded Systems
The first question that is needed to be answered is that what is an embedded system? The following systems can be called an embedded system:
Which performs its duty completely or partially, without humans intervention?
Which interacts with physical environment, like driving a motor?
Which is built to perform only specific tasks but with high efficiency?
There are different definitions for embedded systems but in summary, an embedded system is a microprocessor that is used as a component to do
a specific task in another system like cell phones, household appliance and even a keypad for entering a password.
The other main question is that, Are embedded systems common? To answer this question briefly, its enough to say according to[3]:
150 million microprocessors used in traditional computers
8 billion microprocessors used in embedded applications!!
Embedded systems, as is shown in Figure 1, generally include a control loop where a microcontroller reads signals from sensors that are attached
to some equipment out in the real world (IRL). Based on those sensor readings, the microcontroller calculates some changes which it wants to
make IRL to control the equipment. The equipment responds to these changing signals, which changes the sensor readings.
106
General Computing: In this type of embedded systems, applications are similar to desktop computing but are in an embedded package.
Some examples of this type are Video games, automatic tellers, wearable computers, set-top boxes and etc.
Communications: These types of embedded systems are used for switching and also information transition, so cell phone system and
internet are some examples of this type of embedded systems. They can be found in every where now a days and are very common.
Signal processing: Embedded systems which are in signal processing category are used when computations involve large data streams.
Some examples of these systems are radar, sonar, video and audio compressions and etc. these types of embedded systems have more
special usage and cannot be seen everywhere.
Control: Embedded systems which are used for real-time feedback control, place in control category. In this type having a proper
RTOS can be very useful to improve the systems performance. Nuclear power, medical processes and flight control are some cases
that use this type of embedded systems.
Real time systems are used in time- critical applications such as fight control system, medical equipment, etc. .Therefore a real-time system must
complete its work and deliver its service in a specific deadline. A RTOS helps a lot in creation of a real-time system, but doesnt guarantee that
the final product is real-time[12] .
2.3.1.1 VxWorks
VxWorks introduced in 1987 and it is one of the most successful RTOSes for embedded systems around the world. The following diagram
displays this secure RTOSes architecture:
107
It includes a multitasking kernel with pre-emptive scheduling that guarantees fast interrupt handling. Previous VxWorks memory allocations
was based on first fit policy but new versions are based on best fit policy because the best fit method is nearly constant in every number of free
blocks but the first fit method increases. It is not a self hosting OS that means you need to use a development system across it, like Sun.
VxWorks focus is on making a small memory footprint.
In scheduling, it uses a priority that is based on pre-emptive round-robin algorithm, in which each task has a priority between 0 and 255, where 0
is the highest priority and if one task is running and the task with higher priority is called, the first task becomes suspended and CPU will run the
second task. The important case about scheduling is using an algorithm that is based on priority, so it can use first-come-first-service algorithm.
Finally, its scheduling is flexible and can easily support costumers needs[2] .
2.3.1.2 LynxOS
The first LynxOS was introduced in 1986 and its purpose was controlling the first Motorola-processor. In the year 2000, Lynxs name changed to
LynuxWorks, the main reason was supporting Linux programs which recently added to the kernel. It is mostly used in real-time embedded
systems. Figure 4 illustrates its architecture.
It is a pre-emptive OS, so it can be used in reasonable situations and also it guarantees that processes which are time-critical will terminate
instantly that is a good property for real-time embedded systems. This OS can be formed to be multi-threaded, that is a positive point in
networked systems.
The use of memory management unit (MMU) is required for LynxOS and this matter is good because of safety but is not a positive point for
flexibility. It uses the MMU to address virtual memory although it makes the system slower. LynxOS is self-hosting, which means that the user
program can develop by using the OS as a platform. This OS uses multiple address spaces, which makes it slower because of doing a lot of
context switching, but it is done to be safety[1] .
108
3.
Conclusion
The Conclusion is obvious. It is clear that both of these RTOSes can be suitable for different embedded systems. This means both of them have
some special properties that the other doesnt have. The most important point is to choose the proper RTOS according to your embedded system
needs. For example, LynxOS is suitable in embedded systems which contacts with human life like air craft embedded control system while
VxWorks is suitable in embedded systems which their size should be optimized like some medical embedded systems.
It can be understandable from this paper that both of these RTOSes are powerful for a big range of applications and it depends on your
knowledge to choose the proper RTOS for your system. So the user should be very familiar with the characteristics of the system.
References
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
Maechtel, M., & Rzehak, H. (1994). On realtime operating systems: How to compare performance?. Annual Review in Automatic Programming, 18, 139144.
Luchetta, A., Barbalace, A., Manduchi, G., Soppelsa, A., & Taliercio, C. (2008). Real-time communication for distributed plasma control systems. Fusion
Engineering and Design, 83(2), 520-524.
Tennenhouse, D. (2000). Proactive computing. Communications of the ACM, 43(5), 43-50.
Koopman, P. (1999). Embedded systems in the real world. Course Slides, Carnegie Mellon University.
Hampus Kensing , Andreas Vralstad, (2006) A comparison between VxWorks and LynxOS regarding memory . The Pennsylvania State University
CiteSeerX Archives.
Henrik Carlgren,Ranjdar Ferej, (2006). Comparison of CPU scheduling in VxWorks and LynxOS The Pennsylvania State University CiteSeerX Archives.
Silberschatz, A., Galvin, P. B., & Gagne, G. (2013). Operating system concepts (Vol. 8). Wiley.
The VxWorks Cookbook. (2014). [Online] http://www.bluedonkey.org/cgi-bin/twiki/bin/view/Books/VxWorksCookBook
Embedded Systems/ Embedded Systems Introduction, 2014, [online] Available:
http://en.wikibooks.org/wiki/Embedded_Systems/Embedded_Systems_Introduction
Embedded system, 2014, [online] Available: http://en.wikipedia.org/wiki/Embedded_system
Embedded system architecture. (2014). [online] Available: http://www.cgmasieyeontechnology.com/computer-architecture/
Types of operating systems (2014) [online] Available: http://ecce3.lsbu.ac.uk/units/b3embsys/WebSlides/week%202%20%20ComputerOS.htm