Anda di halaman 1dari 4

World appl. programming, Vol(5), No (6), June, 2015. pp.

105-108

TI Journals

World Applied Programming


www.tijournals.com

ISSN:
2222-2510
Copyright 2015. All rights reserved for TI Journals.

VxWorks vs. LynxOS Real-Time Operating Systems for Embedded Systems


Reihaneh Torkzadeh Mahani
Faculty of computer enginiering, Shahid Bahonar University of Kerman, Kerman, Iran

Negin Mahani

Faculty of computer enginiering, Zarand High Education Center, Zarand, Kerman, Iran
*

Corresponding author: Negin.Mahani@uk.ac.ir

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.

Figure 1. Embedded System Architecture

Reihaneh Torkzadeh Mahani, Negin Mahani *

106

World Applied Programming Vol(5), No (6), June, 2015.

2.1. Embedded System History


One of the first embedded modern systems was Apollo Guidance Computer, developed by Charles Stark Draper at the MIT Instrumentation
Laboratory. The automatics D-17 embedded system guidance computer for the Minuteman missile system was, released in 1961. When the
Minuteman II produced in 1966, the D-17 was replaced with a new system that was the first high-volume use of integrated circuits. In the 1960s,
embedded systems price has come down and processing power and functionality have been raised. For example, Intel4004, the first
microprocessor, was designed for calculators and other small systems but still needed many external memory and support chips.
In 1978, a "standard" released for programmable microcontrollers by National Engineering Manufacturers Association which included almost
any computer-based controllers, such as single board computers, event-based, and numerical controllers. In the middle of 1980s, most of the
common previously external system components had been integrated into the same chip as the processor. The integration of microcontrollers has
further increased the applications for which embedded systems are used into areas where traditionally a computer would not have been
considered.
2.2. Embedded System Categories
According to [4], embedded systems can be divided into 4 general categories: general computing, communication and networking, signal
processing and control system. These types are explained in the following.

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.

2.3 Embedded Systems Factors


Embedded systems are distinguished from many factors like cost, safety, real time critical, reliability, weight, size and some other factors.
Embedded systems should have maximum performance with minimum weight and size. They also should be efficient, to explain more, they are
designed to do repeated functions for a long time, so they shouldnt require to be serviced. Embedded systems should really be real time[11] .
Some embedded systems are used in equipments which are in contact with humans life so they should answer right without any delay. In
summary, they must be efficient from every opinion, run-time efficient, energy efficient, weight efficient, size efficient, cost efficient, code-size
efficient, . The focus of this paper is on real time issue. Operating systems play a significant role in real time systems[10].
2.3.1 RTOS
A real-time operating system (RTOS) schedules tasks in a way to be performed according to priorities, so the execution can be reliable. Figure 2
illustrates its kernel functions. The distinctive feature of a RTOS from other types of operating systems is that, it is typically implemented as a
kernel. In RTOS the kernel is a layer of abstraction between the hardware layer and the applications layer where the tasks are running.

Figure 2. RTOS Kernel functions

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

VxWorks vs. LynxOS Real-Time Operating Systems for Embedded Systems


World Applied Programming Vol(5), No (6), June, 2015.

Figure 3. VxWorks Architecture

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

Figure 4. LynxOS architecture

2.3.1.3 vxworks vs. lynxos


LynxOS is a self hosting OS, so its easy to cross develop but VxWorks is not self hosting. In other hand, LynxOS is an OS which its shell is
UNIX-like and this type of OS needs more RAM. LynxOS gives the programmer more freedom to use tools than VxWorks, but this matter might
not be required for some special devices. VxWorks doesnt require MMU hardware support for running; this makes VxWorks more flexible than
LynxOS. Implementing a system without MMU doesnt guarantee reliability for the RTOS. Because in LynxOS, MMU cant be disabled, the
probability of running the system safer is more than[5] .
Normally, VxWorks runs in a space which is single address so the pointer can be passed between processes while LynxOS uses a space which is
multiple address, so this matter makes is slower because of having a lot of context-switching but safer. The following table summarizes the
differences between VxWorks and LynxOS others[6] .

Reihaneh Torkzadeh Mahani, Negin Mahani *

108

World Applied Programming Vol(5), No (6), June, 2015.

Table 1. Summary of VxWorks and LynxOS comparison

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