Upload
ksrajkumardr
View
218
Download
0
Embed Size (px)
Citation preview
7/27/2019 Abstract(Raj Kumar)
1/21
Abstract
Catastrophes that lead to the loss of human life can be a result of software
failure in cars, planes, house appliances etc. Therefore, to reduce such
catastrophes, there is need for safety critical scheduling algorithms for real
time operating systems. This project investigates operating systems
scheduling. We evaluatehow scheduling algorithms have been implemented in
some of the existing operating systems with ECos, LynxOS, RTLinux and
VxWorks as our case studies. Using POSIX, we install ECOS on Windows XP
platform. We use Virtualization to patch Red Hat 7.1 Kernel with RTLinux
Kernel that implements Earliest Deadline First and Rate Monotonic Analysis
algorithms. The algorithms arecommonly utilised for schedulingin safetycritical real time systems.
7/27/2019 Abstract(Raj Kumar)
2/21
Contents
1. Introduction.................................................................................................................7
1.1. Overview of Operating Systems (OS)..................................................................7
1.1.1. Operating System Definition.................................................................7
1.1.2. Operating System as Resource manager...............................................8
1.1.3. Operating system as control program...................................................9
1.2. Types of Operating systems................................................................................9
1.3. General Purpose Systems VS Embedded Systems............................................11
1.3.1. General Purpose Systems....................................................................11
1.3.2. Embedded Systems (EMS)...................................................................11
1.4. Real-Time EMS..................................................................................................12
1.5. Hard Real Time VS Soft Real Time Operating Systems.....................................13
2. Scheduling..................................................................................................................15
2.1. Overview of Scheduling....................................................................................15
2.2. Types of Operating System Schedulers............................................................16
2.2.1. Long-term Scheduler...........................................................................16
2.2.2. Mid-term Scheduler.............................................................................16
2.2.3. Short-term Scheduler..........................................................................16
2.3. How Scheduling Works.....................................................................................17
2.4. Scheduling Algorithms......................................................................................17
2.4.1. Scheduling Algorithms for Real Time OS.............................................18
2.5. Safety Critical Scheduling Algorithms...............................................................18
2.5.1. Rate Monotonic Algorithm (RMA).......................................................19
2.
5.2. Earliest Deadline First (EDF)................................................................19
3. Case Study AECOS...............................................................................................21
3.1. Overview of ECos..............................................................................................21
7/27/2019 Abstract(Raj Kumar)
3/21
3.2. ECos Implementation of CPU scheduling.........................................................21
3.2.1. Bitmap scheduling...............................................................................22
3.2.2. MLQ scheduling...................................................................................22
3.3. IS ECos a Safety Critical OS................................................................................23 3.4. Ecos
Installation using POSIX on Window XP...................................................23
3.4.1. POSIX....................................................................................................23
3.4.2. Cygwin .................................................................................................24
3.4.3. eCos on Windows XP Platform............................................................24
3.4.4. eCos Configuration Tool......................................................................25
3.4.5. Selecting the Kernel Scheduler............................................................28
3.5. Industry deployment of ECos............................................................................29
4. Case Study B-RTLinux and VxWorks..................................................................30
4.1. Scheduling Reviewed........................................................................................30 4.2.
RTLinux..............................................................................................................30
5
4.2.1. Scheduling in RTLinux..........................................................................30 4.3.
VxWorks............................................................................................................31
4.3.1. Scheduling in VxWorks........................................................................31
4.3.2. Industry deployment of VxWorks........................................................32
4.4. RTLinux Kernel Using virtualisation..................................................................32
4.4.1. Red Hat 7.1 under VMware.................................................................33
4.4.2. Installing VMware Tools......................................................................37
4.4.3. RTLinux Kernel.....................................................................................39
5. Case Study CLynxOS...........................................................................................41
5.1. Overview of LynxOS..........................................................................................41
5.2. LynxOS implementation of CPU scheduling.....................................................41
5.3. Industry deployment of LynxOS........................................................................42
6. Conclusion..................................................................................................................43
Appendix A: References.................................................................................................44
7/27/2019 Abstract(Raj Kumar)
4/21
1. Introduction
1.1. Overview of Operating Systems (OS)
With the growing technological advancement, nearly everything we work with has a computing
element. From baby toys to bank ATMs, we witness the continued deployment of technologies inour everyday life. Most of these technologies contain some sort of operating system to ensure that
they operate as expected though this fact is not always known to users of these systems. For
example, most people are unaware that cellular phones contain operating systems such as the Nokia
Symbian OS and Java- based embedded operating systems. However, avionic systems that help
control aircraft, artificial satellites and spacecraft contain more complex operating systems such as
LynxOS. The operating systems ensure that communication and navigation management features of
avionic systems work as expected to avoid potentially calamitous consequences. The first aim of this
mini project is to understand how operating systems work. Thereafter, we shall focus on gaining a
detailed understanding of CPU scheduling algorithms for safety critical systems such as those for
used in avionics. We shall install eCos on windows XP platform and using virtualisation , we shall
patch red hat 7.1 kernel with RTLinux.
1.1.1. Operating System Definition
Different people provide varying definitions of the concept of an operating system. Silberschatz
Galvin (2004) defines an operating system as a program that is running at all time on the computer
(usually called the kernel). According to Wikipedia, an Operating system is a software component of
a computer system responsible for the management and coordination of activities and the sharing of
the limited resources of the computer. The basic definition above cites keywords such as software
and computer system. Computer systems divide software systems into three major classes:
8
system software, programming software and application software. Although the distinction is
arbitrary, and is often blurred, operating systems fall in the category of system software. Having
considered OS definitionsabove, next we focus on their functionality.
1.1.2. Operating SystemasResource manager
A computer system is made of different components and resources. The OS lies between the
hardware resources and the application program resources in a four layer structure.
Figure 1: Layer Structure of computersystem
Given its position in the layered structure, the OS serves as the resource manager. According to
Tanenbaum (2007), the operating system provides for an orderly and controlled allocation of
processors, memories, and I/O devices among the various programs competing for system
resources. Thus, its primary tasks include keeping track of resource usage, granting resource
requests, accounting for usage and mediating conflicting requests from different programs and
users.
7/27/2019 Abstract(Raj Kumar)
5/21
1.1.3. Operating system as control program
As a control program, the OS ensures that programs execute without errors and prevents improper
use of the computer. It so happens that the CPU can handle only one task at a time yet largely in
general purpose computer systems, users may want to perform several tasks in the same duration of
time. Concurrent user tasks could include sending email, playing music and software downloads. For
multitasking to be achieved, an OS controls which tasks, process and threads would be executed by
the CPU at a given time. This is scheduling that we shall look at in more detail in the following
sections.
1.2. Types of Operating systems
HowStuffworks (2007 )classifies operating systems based on the types of computers they control
and the sort of applications they support.
Single-user, single task This OS is designed to manage the computer so that one user can effectivelydo one thing at a time. The Palm OS for Palm handheld computers is a good example of a modern
single-user, single-task operating system. The Palm OS has a simple, single- tasking environment to
allow launching of full screen applications with a basic, common GUI set.
Single-user, multi-tasking This is the type of OS most people use on their
desktop and laptop computers today. Microsoft's Windows and Apple's MacOS
plat fo rm s ar e examples of operati ng sy st ems th at wi ll le t a si ngl e use r ha ve
several programs in operation at the same time. For example, a Windows user
may be writing a note in a word processor, downloading an internet file
andprintinga document.
Multi-user
10
A multi-user OS allows many different users to take advantage of the computer's resources
simultaneously. The OS must ensure that various user requirements are balanced, and that each of
the programs utilised has sufficient and separate resources to avoid a problem with one user
affecting the entire community. Unix, VMS and mainframe operating systems, such as MVS, are
examples of multi-user operating systems.
Real Time OperatingSystem (RTOS) A real-time OS is a multitasking operating system intended for
real-time applications. Such applications include embedded systems (programmable thermostats,
household appliance controllers, mobile telephones), industrial robots, spacecraft, and scientific
research equipment. We shallexplorereal-time operating systems indetail later.
Other classifications: GUI VS CLI
There are several Internet resources which classify operating system into Graphical User Interface
(GUI) OS such as Windows and Command Line Interface (CLI) OS such as typical UNIX. Wikipedia
states, that while technically a graphical user interface is not an operating system service,incorporating support for one into the operating system kernel can allow the GUI to be more
7/27/2019 Abstract(Raj Kumar)
6/21
responsive by reducing the number of context switches required for the GUI to perform its output
functions.
Many computer operating systems allow users to install or create any interface they desire. The X
Window System in conjunction with GNOME or KDE is a commonly-found setup on most Unix and
Unix-like (BSD, GNU/Linux, Minix) systems. A number of Windows shell replacements have been
released for Microsoft Windows, which offer alternatives to the included Windows shell, but the
shell itself cannot be separated from Windows.
11
As stated above, an Os can allow a user to install or create any interface they desire. However, if a
million users created their interfaces, it will be hard to classify Operating Systems based on
Interfaces. In addition, if we are to follow the definition of an operating system as a program that is
running at all time on the computer (kernel), then a GUI is not a kernel and thus not an operating
system.
1.3. General Purpose Systems VS Embedded Systems
1.3.1. General Purpose Systems
Timmerman (2007) states that general purpose computers contain a central processing unit and
memory (be it volatile, fixed, on chips, on a disk, or a diskette), and run a stored program (software).
General purpose computer peripherals include equipment such as monitors, keyboards, mouse,
docking stations, printers, scanners, disk drives, tape drives, modems, wireless cards and web
cameras. The computers can be programmed to do different kinds of tasks, rather than special
purpose computers that are limited by design to a specific task. General purpose computers consist
of mainframes, servers and microcomputers (desktops and laptops).
1.3.2. Embedded Systems (EMS)
Timmerman (2007) quotes Javids definition of an EMS: "embedded systems is a computer that does
not look like a computer." This is a pretty simple and interesting definition of an embedded system.
It does not look like a computer so what does it look like? To give this more scientific light the
following definition of EMS is adapted in the same publication.
An Embedded system (EMS) is an electronic system with dedicated functionality built into its
hardware and software. The hardware is microprocessor based and uses some memory to keep the
software and data and provides an interface to the world or system it is part of.
12
EMS differ from general purpose systems because (for cost and size reasons) they mostly have less
processing capability, use limited memory resources and are much more power aware. Some
examples are aircraft flight control systems, car cruise control, traffic light control, and car
entertainment systems, factory automation systems, cell Phones, iPod, tablets and kiosks.
1.4. Real-Time EMS
7/27/2019 Abstract(Raj Kumar)
7/21
A real-time system responds in a (timely) predictable way to all individual (unpredictable) external
stimuli arrivals. The most important word is predictability. The system should respond to each
individual external event in a predictable way, this means before the deadline defined in the system
requirement. It is important to note that average performance is notthe issue! (Timmerman 2007)
Real-time system types An embedded system does not necessarily need to have a predictable
behaviour, and in that case it is not a real-time system. In a well-designed RT system, each individual
deadline should be met. Deadlines are the maximum time limit for any event.There are different
types of real-time systems:
-
Hard real-ti -
time:deadlines may be missed and can be recovered from.
General purpose computers do not have to meet specific deadlines. Instead, the systems
requirements are expressed in terms ofaverage performance.
13
1.5. Hard Real Time VS Soft Real Time Operating Systems
Silberschatz, Galvin (2004) states that a soft real-time system provides priority of real- time tasks
over non real-time tasks. A hard real-time system guarantees that real-time tasks be completed
within their required deadlines.
For hard real-time systems one can say that the deadline mustbe met. For soft real-time systems
one will then say that the deadline should be met.( Timmerman 2007).
A safety-critical system is a real-time system with catastrophic results in case of failure. Figure 2:
Task Usefulness after Deadline represents the usefulness of a task after a deadline is missed. The
curve clearly indicates that the task usefulness automatically drops to 0 if a hard real time deadline is
not met.
Figure2:TaskUsefulnessafterDeadline
14
The achievement of safety and high quality of service in hard real time systems is a result of acombination of many hardware and software design factors. In the following section we look at
scheduling with an emphasis on Safety Critical Scheduling Algorithms for Hard Real TimeOperating
Systems.
15
2. Scheduling
2.1. Overview of Scheduling
CPU scheduling is a way of determining which processes run when there are multiple processes insome cases with priorities. Scheduling is a key concept in computer multitasking and multiprocessing
7/27/2019 Abstract(Raj Kumar)
8/21
and real-time operating system design. Scheduling is handled by the kernel scheduler. In section 1.3
we looked at multi tasking and multi processing Operating Systems that are increasingly on demand.
Computer systems are increasing changing from one processor to multi processors given the power
advantage multiple processors have over single processors. Multitasking and multiprocessing
demand effective CPUtask scheduling.
As stated above, scheduling is carried out by the Operating System Scheduler. The scheduleris
concerned mainly with:
-
Turnaround - -Time a process has
bee time -Time it takes from when a request was
submitted until the first response is produced.
In real-time environments, such as mobile devices, for automatic control in industry (for example
robotics), the scheduler must also ensure that processes can meet deadlines. This is crucial forkeeping the system stable and safe.
16
2.2. Types of Operating System Schedulers
Stallings (2004) identifies different types of schedulers. These include long-term, mid- term or
medium-term and short-termschedulers.
2.2.1. Long-term Scheduler
The long-term, or admission scheduler, decides which jobs or processes are to be admitted to the
ready queue. Typically for a desktop computer, there is no long-term scheduler as such, and
processes are admitted to the system automatically. However, this type of scheduling is crucial for a
real-time operating system, as the system's ability to meet process deadlines may be compromised
by the slowdowns and contention resulting from the admission of more processes than the system
can safely handle.
2.2.2. Mid-term Scheduler
The mid-term scheduler is present in all systems with virtual memory. It temporarily removes
processes from main memory and places them on secondary memory (such as a disk drive) or viceversa. This is commonly referred to as "swapping out" or "swapping in" (also incorrectly as "paging
out" or "paging in").
2.2.3. Short-term Scheduler
The short-term scheduler (dispatcher) decides which of the ready, in-memory processes are to be
executed next following a clock interrupt, an IO interrupt, an operating system call or another form
of signal. This scheduler can be preemptive, implying that it is capable of forcibly removing processes
from a CPU when it decides to allocate that CPU to another process, or non-preemptive, in which
case the scheduler is unable to "force" processes off the CPU.
7/27/2019 Abstract(Raj Kumar)
9/21
17
2.3. How SchedulingWorks
A task can have three states: running, ready, blocked. Only one task per CPU is running at a time.
Most tasks are blocked, most of the time and other are in ready state. Schedulers use list datastructures. The choice of data structure depends on the maximum number of tasks that can be on
the tasks ready list
The data structure of the ready list in the scheduler is designed to minimise the worst- case length of
time spent in the scheduler's critical section, during which pre-emption is inhibited, and, in some
cases, all interrupts are disabled.
The critical response time, sometimes called the fly back time, is the time it takes to queue a new
ready task and restore the state of the highest priority task.
2.4. Scheduling Algorithms
A scheduling algorithm is the method by which threads, processes or data flows are given access to
system resources (e.g. processor time, communications bandwidth). The need for a scheduling
algorithm arises from the requirement for most modern systems to perform multitasking (execute
more than one process at a time) and Multiplexing (transmit multiple flows simultaneously). The
main purposes of scheduling algorithms are to minimise resource starvation and to ensure fairness
amongst the parties utilising the resources. In safety critical systems, scheduling algorithms should
ensure that tight deadlines are met.
2.4.1. SchedulingAlgorithmsforReal Time OS
The algorithms discussed in the following section have been deployed by real-time systems like
VxWorks and LynxOS. Sections 3 to 5 will cover case studies of real time operating systems that have
implemented these and other algorithms.
Round-robinscheduling
Round-robin (RR) is one of the simplest scheduling algorithms for processes in an operating system.
It assigns time slices to each process in equal portions and in order, handling all processes withoutpriority. Round-robin scheduling is both simple and easy to implement, and starvation-free.
First-in-first-out (FIFO) scheduling The scheduler runs the task with the highest priority first. If there
are two or more tasks that share the same priority level, they get scheduled in order of their arrival
completing the first arrived task first before continuing with the next one. Each task is occupying the
CPU until it finishes or another task with higher priority arrives.
2.5. Safety Critical Scheduling Algorithms
A hard real-time system guarantees that real-time tasks be completed within their required
deadlines. A safety-critical system is a real-time system with catastrophic results in case of failure.
7/27/2019 Abstract(Raj Kumar)
10/21
Most of hard real time systems are safety critical. Safety critical scheduling algorithms are
implemented in apre-emptivescheduler.
Pre-emptive scheduling: Pre-emption is the act of temporarily interrupting a task being carried out
by a computer system, without requiring its cooperation, and with the intention of resuming the
task at a later time. Such a change is known as a context switch.
Pre-emptive time slicing: The period of time for which a process is allowed to run in a pre-emptive
multitasking system is generally called the "time slice". The scheduler is run
once every time slice to choose the next process to run. If the time slice is too short then the
scheduler will consume too much processing time.
Below we look at the different algorithms that address the hard deadline requirements of hard
realtime systems Safety Critical systems
2.5.1. Rate MonotonicAlgorithm(RMA)
RMA is a procedure for assigning fixed (static) priorities to tasks to maximize their schedulability. A
task set is considered schedulable and deterministic if all tasks meet all deadlines all the time.
How it works Assign the priority of each task according to its period, so that the shorter the period
the higher the priority. If Task 1 period is shorter than the period of Task 2, the higher priority is
assigned to Task 1. RMA is an optimal static-priority algorithm. If a task set cannot be scheduled
using the RMA algorithm, it manynot bescheduled using other static-priority algorithm. One major
limitation of fixed-priority scheduling such as RMA is that it is not always possible to fully utilise the
CPU. Even though RMA is the optimal fixed-priority scheme, it has a worst-case schedulable bound
of: Wn = n * (21/n - 1) where n is the number of tasks in a system. As you would expect, the worst-
case schedulable bound for one task is 100%. But as the number of tasks increases, the schedulable
bound decreases, eventually approaching its limit of about 69.3%.
2.5.2. Earliest Deadline First(EDF)
EDF is a dynamic scheduling algorithm used in real-time operating systems. It places processes in a
priority queue such that when an event occurs (task finishes, new task
20
released, etc.) the queue will be searched for the process closest to its deadline so that process is
executed next.
On preemptive uniprocessors, EDF is an optimal scheduling algorithm. If a collection of independent
jobs, each characterised by an arrival time, an execution requirement, and a deadline, can be
scheduled such that all the jobs complete by their deadlines, the EDF will schedule this collection of
jobs such that they all complete by their deadlines.
7/27/2019 Abstract(Raj Kumar)
11/21
When periodic processes have deadlines that are equal to their periods, EDF has a utilisation bound
of 100% thus guaranteeing that all deadlines are met provided that the total CPU utilisation is not
more than 100%.
However, when the system is overloaded, the set of processes that will miss deadlines is largely
unpredictable (it will be a function of the exact deadlines and time at which the overload occurs.)
Instead, most real-time computer systems use fixed priority scheduling (usually rate- monotonic
scheduling). With fixed priorities, it is easy to predict that overload conditions will cause the low-
priority processes to miss deadlines, while the highest- priority process will still meet its deadline.
21
3. Case Study A ECOS
3.1. Overview of ECos
eCos (embedded configurable operating system) is as an open source, royalty-free, real- time
operating system. ( ecos.sourceware 2008) eCos is designed to be customisable to application
requirements of run-time performance and hardware needs. It is programmed in the C programming
language, and has compatibility layers and APIs for POSIX.
eCos was designed for devices with memory size in the tens to hundreds of kilobytes, or with real-
time requirements. It can be used on hardware with too little RAM to support embedded Linux,
which currently needs a minimum of about 2 MB of RAM, not including application and service
needs.
3.2. ECos Implementation of CPU scheduling
ECos has two kinds of schedulers implemented; bitmap and MLQ (Multi Level Queue) scheduling.
Both of them support preemption. It is possible to extend the eCos kernel to handle other
schedulers as well. Both schedulers use numerical priority levels that range from 0 to 31 where 0 is
the highest priority. According to Salenby and Lundgren (2006), MLQ scheduling also supports SMP
(Symmetric Multiprocessing). Symmetric multiprocessing involves a multiprocessor computer-
architecture where two or more identical processors can connect to a single shared main memory.
22
3.2.1. Bitmap scheduling
Bitmap scheduling consists of a queue with threads that are loaded into memory. Each thread in the
queue has an associated priority. There are 32 different priority levels available and each priority
level can only be associated with one thread. This limits the amounts of total of queued threads in
the systems to 31 (one being the idle thread). The scheduler always runs the thread with the highest
current priority. The scheduler can be configured with or without preemption. If preemption is
enabled and a thread with a higher priority than the current running thread enters the queue, the
scheduler will thenpreemptand run the thread with the highest priority.
7/27/2019 Abstract(Raj Kumar)
12/21
Analysis of bitmap scheduling Because of the simplistic design of the scheduler (consisting only of a
simple priority queue) finding the highest prioritised thread and switching to that will be fast and
thus the dispatch latency will be low. The simplistic design also makes it easy to predict system
behaviour, spawning the possibility for a deterministic system overall. As noted above, the schedule
is constrained to 31 threads in the system.
3.2.2. MLQ scheduling
The MLQ scheduling is a bit more complicated than bitmap scheduling. Instead of just having one
queue for all threads and all priorities, this scheduler uses a set of queues where every queue
contains a number of threads all with the same priority. Each queue has its own scheduling
algorithm that by default is a time slicing algorithm that shares the CPU among the threads in the
queue equally. The different priority levels may have different schedulers. These queues are
scheduled by a normal priority queue where higher priority queues are scheduled first. The threads
are divided into the different priorities based on some property of the thread. This scheduler also
supports preemption. MLQ also has support for multiple processors with SMP (Symmetric
Multiprocessing) whereeach processorusing its own scheduler.
23
Analysis of MLQ scheduling A more complicated scheduling algorithm makes the dispatch latency
slightly higher than with bitmap scheduling. The MLQ scheduler contains more advanced features
than the bitmap scheduler. This allows the developer to build systems with a distinct separation of
background and foreground tasks, where tasks have different time requirements. Since this
scheduler uses a more advanced algorithm it is harder to predict system behaviour, which makes
this scheduler hard to use when trying to create a deterministic system. In contrast to the bitmapscheduler, the MLQ scheduling can handle asmany threads as can fit into the memory.
3.3. ISECos aSafetyCritical OS
With a limited number of tasks, eCos should be configured with the bitmap scheduler. With this
choice the systems can be made deterministic and, therefore, be suitable for hard real time systems.
It, thus,would qualify to be safety critical.
With a large number of tasks with different time requirements eCos MLQ is good in handling large
amounts of diverse tasks. Systems handling large amounts of diverse tasks are most times not
considered to be hard real time system but in event that such as system is hard real time, then eCos
may not guarantee predictability. Thus, it would not be safety critical.
3.4. Ecos Installation usingPOSIX on Window XP
3.4.1. POSIX
Portable Operating System Interface (POSIX) is the collective name of a family of related standards
specified by the IEEE to define the application programming interface (API), along with shell and
utilities interfaces for software compatible with variants of the Unix
24
7/27/2019 Abstract(Raj Kumar)
13/21
7/27/2019 Abstract(Raj Kumar)
14/21
27
Figure6: Building the Ecos Template for Kernel
Pentiumprocessors
Using i386 architecture, you can chooseto enable featuresforPentiumCPU. TheeCos installation was
done onPentiumdual core thus it was important to specify featuresfor Pentiumprocessors.
SeeFigure7: SpecifyingPentium CPU features
28
Figure7: Specifying Pentium CPU features
3.4.5. Selecting the Kernel Scheduler
As discussed earlier, eCos implementsBitmap scheduler and Multi Level Queue Scheduler. You can
select which scheduler to work with. SeeFigure8: Ecos Kernel
29
Figure8: Ecos Kernel
3.5. Industrydeployment ofECos
Numerous companies are using eCos, and many successful products have been launched running
eCos, including the Brother HL-2400 CeN network color laser printer, Delphi Communiport, and the
Iomega Hip Zip Digital Audio Player.
30
4. Case StudyB-RTLinux and VxWorks
4.1. SchedulingReviewed
In section 2, we discussed scheduling and different scheduling algorithms for hard real time system
which included Earliest Deadline First and Rate-Monotonic scheduling. Our case study for Ecos does
not have a direct implementation of these algorithms but it is possible to modify Ecos to use EDF
scheduling. RTLinux and VxWorks are some of the successful hard real-time operating systems on
the market today. Therefore, they offer good examples of how efficient scheduling can be
implemented using these algorithms.
4.2. RTLinux
RTLinux (or Real-Time Linux) is an extension of Linux to a real-time operating system. RTLinux
supports hard real-time (deterministic) operation through interrupt control between the hardware
and the operating system. Interrupts needed for deterministic processing are processed by the real-
time core, while other interrupts are forwarded to the non-real time operating system. The
operating system (Linux) runs as a low priority thread. First-In-First-Out (FIFOs) pipes or shared
memory can be used to share data between the operating system and the real-time core.
7/27/2019 Abstract(Raj Kumar)
15/21
4.2.1. Scheduling in RTLinux
RTLinux allows users to write their own scheduler to be used at runtime but give the user a choice of
three different standard algorithms.
1. Simplepriority driven scheduler; 2. Rate monotonic (RM) scheduler; and 3. Earliest Deadline First(EDF) scheduler.
31
4.3. VxWorks
VxWorks is designed for use in embedded systems. Unlike "native" systems such as Unix, VxWorks
development is done on a "host" machine running Unix or Windows, cross-compiling target software
to run on various "target" CPU architectures. The key features of the current VxWorks OS are a
multitasking kernel with preemptive and round-robin scheduling and fast interrupt response.
4.3.1. Scheduling in VxWorks
All work carried out in VxWorks is in the form of tasks. Each task can be in one of four different
states; ready, delay, pending and suspend state. Ready tasks are available for running. Delayed
tasks are sleeping for a set amount of time. Pending tasks are waiting for a resource to be
available. The suspended state is what newly created tasks are set to until they get activated. Since
this is usually done when the task is created, this state is primarily used for debugging purposes.
VxWorks uses a priority based preemptive round-robin scheduling algorithm. Each task has a priority
level between 0 and 255 where 0 is the highest priority and 255 the lowest priority. If a task with
higher priority than the task currently running in the CPU is called, the scheduler suspends the firsttask and sets the CPU to running the second task. If the second task has the very same priority level
as the first task, round-robin scheduling is provided. As mentioned earlier, a task can also turn into a
pending state, for example if a resource for that task is not available. The scheduler then swaps back
to a task with lower priority until the resource becomes available again. VxWorks also supports the
POSIX API for real time threads, which makes available both the above described round robin as well
as FIFO scheduling. VxWorks scheduling is thus flexible and adapts easily to the needs of the
customer.
32
4.3.2. Industry deployment of VxWorks
VxWorks has been deployed in a number of products including the Honda Robot ASIMO, the Airbus
A400M Airlifter, the Boeing 787 airliner, the Mars Reconnaissance Orbiter, thePhoenix Mars Lander.
Figure 9:NASA MarsReconnaissanceOrbiter
Figure9:NASA MarsReconnaissanceOrbiter Wikipedia Photo
4.4. RTLinux Kernel Using virtualisation
7/27/2019 Abstract(Raj Kumar)
16/21
As discussed in section 4.2, RTLinux is a hard real-time Operating system that implements Earliest
Deadline First and Rate Monotonic Scheduling. In this section we shall use virtualization VMware
Server 2.0 to install Red Hat Linux 7.1 and configure RTLinux Kernel.
Virtualization refers to the abstraction of computer resources: Platform virtualization separates an
operating system from the underlying platform resources.
VMware is a virtualization tool. VMware 2.0 provides a web interface using tomcat web server.
33
Vmare was installed under Windows XP Professional base operating system. See Figure 10:
WMWare 2.0 with web Access . A new virtual server for Red Hat 7.1 was created using ISO images
that were placed in the virtual CD/DVD drive. It is also possible to install Red Hat Linux 7.1 in a
virtual machine using the standard Red Hat distribution CDS. As you go through the steps to create a
Red Hat virtual Machine you specify memory and Processors,hard disc, CD, Network Properties as
Bridged.
4.4.1. Red Hat 7.1under VMware
1. A Red Hat Virtual machine was created using VMware management interface. Detailed Steps from
the link below can be of great help
http://www.virtuatopia.com/index.php/Creating_VMware_Server_2.0_Virtual_Mac hines
Figure10: WMWare2.0 with web Access
Note At the stage of configuring CD/DVD, ISO images was chosen and added to the virtual CD
Drive. Figure 11: Using ISO image for Red Hat Virtual Machine, demonstrates the different item that
would have to be specified while setting up the virtual machine.
34
Figure11: UsingISO image for Red Hat Virtual Machine
2. After creating the Red Hat virtual machine, a browser plug-in was added to Firefox to be able to
access the Remote control panel of the machine otherwise VMware gives this message below when
you try to use the control panel in a browser that lacks the plugin. (See Figure 13 : Notice to
installplug-in for remote Console)
Figure12: Notice to install plugin for remote Console
3. The VMware Management Interface was used to verify that the virtual machine's devices are set
up as expected before starting the installation. If you install the guest operating system from a
physical CD-ROM disc, the CD-ROM drive is connected to the virtual machine. Otherwise in this
project, the First ISO image was inserted in the virtual CD. The virtual machine should start booting
from the Virtual CD or Physical CD and the installation process will begin.
35
7/27/2019 Abstract(Raj Kumar)
17/21
While going through this installation there are a couple of error message got due to compatibility
issues with the infrastructure on which this was running. The challenge was to figure out a solution
to the several errors. Many errors were related to the virtual server database inventory.
Red Hat Linux 7.1 was installed using the graphical mode installer ( See Figure 13: Graphical
Installation of Red Hat with VMWare Remote Console) which you may choose when you first boot
the installer. There is also an option of text mode installer. At the Red Hat Linux 7.1 boot prompt,
you are offered the following choices:
To install or upgrade a system in graphical mode
To install or upgrade a system in text mode, type: text .
To choose the text mode installer, type text followed by Enter.
Note: In going through this installation of Red Hat under virtualization the X-Window system should
be skipped until when VMware tools are installed in the guest operating system. When X-Window
system was installed without VMware tools, the remote console was flickering to the screen and
disappearing every two seconds making it impossible to do anything.
36
Figure13: Graphical Installation of Red Hat with VMWare Remote Console
4. After the first steps, the installation steps were followed as could be for installation on a physical
machine. Some important choicesmade included --
It is Very important that when installing Red Hat you perform a Custom install andselect Development, Kernel Development, Utilities, and Select Individual Packages. At the Individual
Package Selection screen, go to Development --> Languages and select compat-egcs. Next go to
Development --> Libraries and select compat-glibc. Select any other packages you wish to install and
continue the installation. To be sure of the selection in this project all development packages were
selected. Note: selection of ALL comes with need for more storage requirements.
Selection Generic VGA compatible was chosen, Generic VGA is recommended if you not sure of the
VGA of your machine. This installation was done on a laptop machine.
close of the configuration, Generic Standard VGA, was chosen.
37
-Window installation was skipped. As mentioned earlier, VMware guest tools will be needed
if the XWindow is to be used.
After the completion of installation of the Red Hat Linux 7.1 the guest operating system, the virtual
machine was started using the remote console. (See Figure 14: Starting Red Hat in Remote
consoleusing textmode.)
Figure14: Starting Red Hat in Remote consoleusing textmode.
4.4.2. Installing VMware Tools
7/27/2019 Abstract(Raj Kumar)
18/21
Though the configuration of the RTLinux Kernel does not require a graphical interface for a typical
Unix user, a graphical interface is handy for none Unix users. To have the graphical interface, you
need to install VMware tools. As noted earlier, while going through tests in this project, whenever
Red Hat was started in graphical mode, it could not load the Graphical interface but instead it could
load the Command Line which flickered on the screen every few seconds. This was a result of
missing VMware tools that enable the X-Window system on UNIXplatforms.
38
Note: With a Red Hat Linux 7.1 guest, VMware Tools are installed from the Linux console.
The following steps were found close to achieving the graphical interface but may need to be
adjusted from one platform to another. 1. Download the VMware tools for Linux guest operating
systems. The file for the VMware tools was an ISO image. Which was added to the virtual CD and
loaded mounted Note that the VMware tools ISO may by default have been placed in (C:/Program
Files /Wmare) . In this case no freshdownload is required.
2. Use these commands under root account on red hat 7.1 ( See Figure 15 : Installing VMware tool
under Red Hat Guest)
mount /dev/cdrom /mnt cd /tmp tar zxf /mnt/VMware-linux-tools.tar.gz umount /mnt
Figure15: Installing VMware tool under Red Hat Guest
3. Procceed tothe VMware web interface andused VMware Tools installer. Thenproceed to the
console panel and used the commands
cd VMware-tools-distrib ./VMware-install.pl
39
On running ./VMware-install.pl the installer asked a few questions about directory paths where to
place files such as binary files. The default paths where used in this project. Though there was a
challenge of the installation aborting at some stage in the process. After successful installation of the
VMware tools you can StartX and your graphical environment is expected to work though not
guaranteed to work!
4.4.3. RTLinux Kernel
After successful installation of Red Hat 7.1 guest OS under VMware server, the RTLinux Kernel was
configured. 1. DownloadingRTLinux 3.1and Linux 2.4.4 Using wget -- Wget is apackage for retrieving
files using HTTP, HTTPS and FTP. It is a non-interactivecommand line tool, so it may easily be called
from scripts, cron jobs, terminals without X- Windows support (See Figure 16: Using Wget for
RTlinux for Red Hat Virtual Machine) Download RTLinux 3.1:rtlinux-3.1.tar.gz
http://seg.ee.upatras.gr/ootcp/RTLinux%203.1/rtlinux-3.1.tar.gz Download the Linux 2.4.4 kernel:
linux-2.4.4.tar.gz http://seg.ee.upatras.gr/ootcp/RTLinux%203.1/linux-2.4.4.tar.gz
Figure16: Using Wget for RTlinux for Red Hat Virtual Machine
40
7/27/2019 Abstract(Raj Kumar)
19/21
2. Unpack the files Unzip/ unTar the downloaded files (See Figure 17 : Unpacking File for Rtlinux and
Linux Kennel 2.4)
Use the command
rm -rf /usr/src/rtlinux
mkdir /usr/src/rtlinux
cd /usr/src/rtlinux
tar - xzf /var/tmp/linux-2.4.4.tar.gz
tar -xzf /var/tmp/rtlinux-3.1.tar.gz
Figure17: Unpacking File for Rtlinux and Linux Kennel 2.4
3. Patch the kernel (See Figure 18 : Patching LinuxKernelwith RTLinux)
cd linux
patch-p1 < /usr/src/rtlinux/rtlinux-3.1/kernel_patch-2.4.4
Figure18: Patching Linux Kernelwith RTLinux
41
5. Case StudyC LynxOS
5.1. Overview of LynxOS
LynxOS RTOS is a Unix-like real-time operating system from LynuxWorks (formerly "Lynx Real-Time
Systems"). Sometimes known as the Lynx Operating System, LynxOS features full Portable Operating
System Interface (POSIX )conformance and, more recently, Linux compatibility. LynxOS is mostly
used in real-time embedded systems, in applications for avionics, aerospace, the military, industrial
process control and telecommunications (Wikipedia 2007).
LynxOS components are designed for absolute determinism (hard real-time performance), which
means that they respond within a known period of time. Predictable response times are ensured
even in the presence of heavy I/O due to the kernel's unique threading model, which enablesinterrupt routines to be extremely short and fast.
Lynuxworks the developers of LynxOS holds a patent on the technology that LynxOS uses to maintain
hard real-time performance. Patent #5,469,571 was granted to LynuxWorks November 21, 1995:
"Operating System Architecture using Multiple Priority Light Weight kernel Task-based Interrupt
Handling."
5.2. LynxOS implementation of CPU scheduling
Meeting hard real time performance requirement is a difficult challenge faced by designers of
embedded systems. Many multiple input-output (I/O) devices and system processes gives rise to
complexities in timing and can degrade system performance. As
7/27/2019 Abstract(Raj Kumar)
20/21
42
we discussed above, the ECos bitmap scheduler works well as hard real-time OS with deterministic
behaviour when handling few tasks. However, as tasks increase, the deterministic behaviour will be
lost with MLQ scheduler in ECos.
LynuxWorks developed "Priority based quantum"a new way of managingkernel threads and priority
processing, and was awarded a patent (US Patent 5469571) for its technology, which is part of the
LynxOS real-time operating system.
Scheduling policies used by LynxOS are:
1. FIFO (First-In, First-Out); 2. Standard POSIX FIFO policy. A preemptible fixed priority scheduler; 3.
Round robin; and 4. Proprietary Lynx scheduling policy named "Priority based quantum"
"Priority based quantum" is similar to round robin policy, except that a configurable time quantum is
defined for each level of priority. Put differently, the length of the time- slice is not fixed but is a
variable for each priority level.
The scheduler works with a total of 512 priority levels, 256 for user tasks and 256 for kernel threads.
5.3. Industry deployment ofLynxOS
LynxOS is mostly used in real-time embedded systems, in applications for avionics, aerospace, the
military, industrial process control and telecommunications. Below is one of the recent deployments
of LynxOS for Airbus A380 Superjumbo Flight Test and Simulation . The Airbus A380 Superjumbo jet
is a double-deck, wide-body, four-engine airlinerthe largest Airbus yet, seating 555 passengers.
43
6. Conclusion
The importance of software in every aspect of life is growing. As discussed in this mini project report,
some of the systems we interface with are safety-critical. Failure of software could cause
catastrophic consequences for human life in such systems. It is hard to imagine the Airbus 380
crushing with full board! Imagine the antilock brake system (ABS) in your car failing at the time you
need it most. We reemphasize the quote In, Embedded Systems: Definitions Taxonomies, where
Prof. Dr. Martin Timmerman , quotes Javids definition of an EmS: "embedded systems is acomputer that does not look like a computer." In addition, we reemphasize that For hard real-time
systems the deadline mustbe met. For soft real-time systems the deadline should be met.
How the deadlines are met is a result of my design factor among which is the scheduler. Rate
monotonic and Earliest deadline First are two scheduling algorithm popular with Hard Real time
systems. Using our cases studies we discovered that ECos could meet hard real-time requirements
with its Bitmap Scheduler but would not be able to be deterministic with MLQ scheduling.
Rtlinux is a typical demonstration of deployment of EDF and Rate Monotonic. RTLinux supports hard
real-time (deterministic) operation through interrupt control between the hardware and the
operating system. VxWorks deploys a multitasking kernel with pre- emptive and round-robin
7/27/2019 Abstract(Raj Kumar)
21/21
scheduling and fast interrupt response. LynxOS a safety critical (hard real time ) has largely been
defined as hard deterministic. Thus, it meets hard real-time requirements with its patented
approach to scheduling.
44
Appendix A: References
1. Andrew Tanenbaum (2001)Modern Operating Systems 2nd Edition 2. Silberschatz Galvin
(2004)Operating systems concepts 7th edition 3. Wikipedia 4. HowStuffworks
(2007)(www.computer.howstuffworks.com/operating-system3.htm) 5. Prof. Dr. Martin
Timmerman(2007)Embedded Systems: DefinitionsTaxonomies 6. Anthony J. Massa (2002
)Embedded Software Development with eCos http://www.phptr.com --By Anthony J. Massa2002 7.
http://www.cotsjournalonline.com/home/article.php?id=100164&pg=1 8. Gustav Salenby and
Daniel Lundgren(2006 ) ,Comparison of scheduling in FreeRTOS and 9. eCos Glossary : Cheap56.com
10. Cygwin-http://www.cygwin.com/ 11. Ecocentric --http://www.ecoscentric.com/ 12. Free Ecos--http://www.ecos.sourceware.org/ 13. Daniel Forsberg Magnus Nilsson (2006)Comparison between
scheduling algorithms in RTLinux and VxWorks 14. Rtlinux -http://www.rtlinuxfree.com/ 15.
Virtualization
http://www.virtuatopia.com/index.php/Creating_VMware_Server_2.0_Virtual_Machine s 16.
Benjamin Ip COMS (2006)Performance Analysis of VxWorks and RTLinux , Benjamin Ip COMS W4995-
2, Languages of Embedded Systems Department of Computer Science, Columbia University, NY 17.
http://www.lynxworks.com 18. Stallings, William (2004).Operating Systems Internals and Design
Principles (fifth