SlideShare a Scribd company logo
1 of 34
Download to read offline
EMBEDDED PROCESSORS AND
MICRO CONTROLLERS
Module Code
Module Name
Course
Department

ESD 531
Embedded RTOS
M.Sc in Real-Time Embedded Systems
Computer Engineering

Name of the Student

Bhargav Shah

Reg. No

CHB0911001

Batch

Full-Time 2011

Module Leader

Deepak V.

M.S.Ramaiah School of Advanced Studies
Postgraduate Engineering and Management Programmes(PEMP)
#470-P Peenya Industrial Area, 4th Phase, Peenya, Bengaluru-560 058
Tel; 080 4906 5555, website: www.msrsas.org

Embedded RTOS

POSTGRADUATE ENGINEERING AND MANAGEMENT PROGRAMME – (PEMP)

MSRSAS - Postgraduate Engineering and Management Programme - PEMP

i
Declaration Sheet
Student Name

Bhargav Shah

Reg. No

CHB0911001

Course

Real Time Embedded System

Batch

FT-11

Module Code

ESD531

Module Title

Embedded RTOS
to

Module Date
Module Leader

Batch Full-Time 2011

Deepak V.

Extension requests:
Extensions can only be granted by the Head of the Department in consultation with the module leader.
Extensions granted by any other person will not be accepted and hence the assignment will incur a penalty.
Extensions MUST be requested by using the ‘Extension Request Form’, which is available with the ARO.
A copy of the extension approval must be attached to the assignment submitted.

Penalty for late submission
Unless you have submitted proof of mitigating circumstances or have been granted an extension, the
penalties for a late submission of an assignment shall be as follows:
• Up to one week late:
Penalty of 5 marks
• One-Two weeks late:
Penalty of 10 marks
• More than Two weeks late:
Fail - 0% recorded (F)
All late assignments: must be submitted to Academic Records Office (ARO). It is your responsibility to
ensure that the receipt of a late assignment is recorded in the ARO. If an extension was agreed, the
authorization should be submitted to ARO during the submission of assignment.
To ensure assignment reports are written concisely, the length should be restricted to a limit
indicated in the assignment problem statement. Assignment reports greater than this length may
incur a penalty of one grade (5 marks). Each delegate is required to retain a copy of the
assignment report.

Declaration
The assignment submitted herewith is a result of my own investigations and that I have conformed to the
guidelines against plagiarism as laid out in the PEMP Student Handbook. All sections of the text and
results, which have been obtained from other sources, are fully referenced. I understand that cheating and
plagiarism constitute a breach of University regulations and will be dealt with accordingly.

Signature of the student

Bhargav Shah

Date

Submission date stamp
(by ARO)

Signature of the Module Leader and date

Signature of Head of the Department and date

ii
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Abstract
____________________________________________________________________________
A real-time operating system (RTOS) is an operating system (OS) supposed to serve
real-time application requests. RTOSes are designed to control an embedded system, and to
deliver the real-time responsiveness and determinism required by the controlled device.
RTOS is a multitasking operating system intended for real-time applications and
designed to be very compact and efficient, forsaking many functions that non-embedded
computer operating systems provide. In part A of assignment differences between linux and
RTOS, and different approaches to made linux as an RTOS is explained and specially the use
of Linux kernel workqueues to make it an RTOS.
RTOS provides facilities which, if used properly, guarantee deadlines can be met
generally (soft real-time) or deterministically (hard real-time). It is valued more for how
quickly or predictably it can respond to a particular event than for the amount of work it can
perform over a given period of time.
Distributed Common Ground System (DCGS), weapon system is the service's premier
globally networked intelligence, surveillance and reconnaissance weapon system. In part B of
the assignment literature survey and functionalities of the DCGS consisting of the selected
entities with the required communication system is done.
Design and development of DCGS which can help to take important decision in the war
condition is done with VxWorks Operating System. The DCGS system designed with priorities
and synchronized according to the course of event occurred. The design is made The SSD
system is designed and implemented in C code in tornado IDE in VxWorks RTOS.

Embedded RTOS

iii
Contents
____________________________________________________________________________

Declaration Sheet ......................................................................................................................... ii
Abstract ....................................................................................................................................... iii
Contents ........................................................................................................................................iv
List of Tables ................................................................................................................................. v
List of Figures ..............................................................................................................................vi
List of Symbols .......................................................................................................................... vii
PART-A......................................................................................................................................... 8
CHAPTER 1: Suitability of Linux work queues as RTOS ........................................................... 8
1.1 Introduction to Linux File System....................................................................................... 8
1.2 Correctness faced by the developers for the performance of the system [1] ...................... 8
1.3 Differences .......................................................................................................................... 8
1.3.1 OS and RTOS Scheduling[2] ....................................................................................... 8
1.3.2 RTOS and Linux system [3] ......................................................................................... 9
1.4 Approaches for making Linux as an RTOS[4] .................................................................... 9
1.4.1 Pre-empt kernel approach ........................................................................................... 10
1.4.2 Real-time executive approach .................................................................................... 10
1.5 Use of Linux kernel work queues for making it an RTOS[5] ........................................... 10
1.6 Conclusion ......................................................................................................................... 11
PART-B ....................................................................................................................................... 12
CHAPTER 2 Design of DCGS ................................................................................................... 12
2.1 Introduction ....................................................................................................................... 12
2.2 literature survey ................................................................................................................. 12
2.2.1 Sensors system[7] ....................................................................................................... 14
2.3 Identification of functionalities ......................................................................................... 15
2.4 Requirement specifications for the DCGS ........................................................................ 17
2.5 Different tasks associated with DCGS .............................................................................. 18
2.8 Conclusion ......................................................................................................................... 20
PART-C ....................................................................................................................................... 21
CHAPTER 3: Implementation of DCGS .................................................................................... 21
3.1 Introduction ....................................................................................................................... 21
3.2 Program flow graph ........................................................................................................... 21
3.3 Implementation of the DCGS ............................................................................................ 23
3.4 Test cases ........................................................................................................................... 27
3.5 Disscution of obtained result ............................................................................................. 28
3.6 Conclusion ......................................................................................................................... 29
CHAPTER 4 ................................................................................................................................ 30
4.1 Module Learning Outcomes .............................................................................................. 30
4.2 summary ............................................................................................................................ 30
References ................................................................................................................................... 31
Appendix ..................................................................................................................................... 32

iv
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

List of Tables
Table 1. 1 RTOS vs Linux............................................................................................................. 9
Table 2. 1 Hard ware requirements for DCGS ............................................................................ 17
Table 2. 2 Required processes for DCGS.................................................................................... 18
Table 3. 1 Test cases.................................................................................................................... 27

Embedded RTOS

v
List of Figures
Figure 2. 1 Conceptual diagram of DCGS (generalized)[6] ....................................................... 13
Figure 2. 2 Conceptual diagram of DCGS(designed) ................................................................. 16
Figure 3. 1 Software flow diagram for solders node ................................................................... 21
Figure 3. 2 Software flow diagram for commander node ........................................................... 22
Figure 3. 3 Software flow diagram for air force node ................................................................. 22
Figure 3. 4 Data structures for DCGS ......................................................................................... 23
Figure 3. 5 First task on target board........................................................................................... 24
Figure 3. 6 First true functional task ........................................................................................... 24
Figure 3. 7 fn_task1 ..................................................................................................................... 25
Figure 3. 8 Service from .............................................................................................................. 25
Figure 3. 9 Temperature .............................................................................................................. 26
Figure 3. 10 Air force .................................................................................................................. 26
Figure 3. 11 Command ................................................................................................................ 27
Figure 3. 12 Asking for authentication ........................................................................................ 28
Figure 3. 13 Synchronizing location of soldier ........................................................................... 28
Figure 3. 14 Asking for service ................................................................................................... 28
Figure 3. 15 Showing request number......................................................................................... 28
Figure 3. 16 Air force task........................................................................................................... 29
Figure 3. 17 commanded node .................................................................................................... 29

vi
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

List of Symbols
RTOS
OS
RAM
FIFO
SJF
EDF
DCGS
ISR
BCT
IWF
GRCS
COMINT
ELINT
SBCT
ACR
SIGINT
EW
BFSB
NCES
DIB
IPC
RPC

Embedded RTOS

Real Time Operating System
Operating System
Random Access Memory
First in, First out
Shortest Job First
Earliest Dead line First
Distributed Common Ground System
Intelligence, Surveillance, and Reconnaissance
Brigade Combat Team
Intelligence War fighting Function
Guardrail Common Sensor
Communication Intelligence
Electronic Intelligence
Stryker Brigade Combat Team
Armored Cavalry Regiment
Signals Intelligence
Electronic Warefare
Battlefield Surveillance Brigade
Network-Centric Enterprise Services
DCGS Integration Backbone
Inter Process Communication
Remote Procedural Call

vii
PART-A
CHAPTER 1: Suitability of Linux work queues as RTOS
1.1 Introduction to Linux File System
A real-time operating system (RTOS) is an operating system (OS) supposed to serve realtime application requests. RTOSes are designed to control an embedded system, and to deliver the
real-time responsiveness and determinism required by the controlled device. Linux is an open
source operating system which is not a real time operating system, In this part of assignment a
debate on Suitability of Linux for RTOS type applications by using kernel work queue’s is done.

1.2 Correctness faced by the developers for the performance of the system [1]
A real-time system should be able to perform computations deterministically - an important
concept in real-time systems. A system is said to be deterministic if it's possible to predict the
timings of its computation precisely, and computations are logically correct. An example for real
time system is an automobile airbag system, one of the most critical systems in a modern car. An
airbag should be deployed within a particular time interval (for example, within 1 second1) after the
sensors in the car detect a collision. Latency: In computing, latency is "the time that elapses
between a stimulus and the response to it" is the important parameter required to quantify real-time
systems.
Real-time systems can be categorized in two major groups, “hard” real-time systems and
“soft” real-time systems. Hard real-time:A system that can meet the desired deadlines at all times
(100 percent), even under a worst-case system load. In hard real-time systems, missing a deadline,
even a single time, can have fatal consequences. Some examples are airbag systems Soft real-time:
A system that can meet the desired deadlines on average. Some examples are online audio/video
broadcasts.
A real-time system does not mean faster performance. In fact, a real-time system may or
may not lead to deterioration in performance. Application developers who think they need a realtime system for better performance of their application can actually get the performance they
require by simply upgrading their hardware with faster processors, RAM, high speed buses, etc.

1.3 Differences
1.3.1 OS and RTOS Scheduling [2]
Scheduling is the method by which threads, processes or data flows are given access to
system resources such as processor time, communications bandwidth. Goals for Scheduling in OS
are Utilization/Efficiency: keep the CPU busy 100% of the time with useful work Throughput:
maximize the number of jobs processed per hour. Turnaround time: from the time of submission to
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

the time of completion, minimize the time batch users must wait for output waiting time: Sum of
times spent in ready queue - Minimize this. Commonly used OS scheduler disciplines are Preemptive Scheduling, FIFO,SJF and round robin scheduling. OS is time driven scheduling.
RTOS is an operating system that guarantees a certain capability within a specified time
constraint, hence an RTOS uses advanced scheduling algorithms. Commonly used RTOS
scheduling algorithms are Long-term scheduling, Medium-term scheduling, Short-term scheduling
and commonly used RTOS scheduler disciplines are Pre-emptive Scheduling and Earliest Deadline
First (EDF). In RTOS scheduling is triggered by events.
1.3.2 RTOS and Linux system [3]
Table 1. 1 RTOS vs Linux
RTOS

Linux

RTOS is a specially designed TYPE of Linux is the name given to a specific operating
Operating System

system

Best suited for embedded systems

Linux isn’t always the best OS to use in
embedded systems
Linux is that it is slower than RTOS solutions on

RTOS is faster

the same hardware
RTOS

world

where

developers

might Linux has the same skill separation

specialise in Board Support Packages (BSPs),
device drivers or applications
RTOS application developers work best with RTOS BSP and device driver developers are
userspace applications

well suited to working in the Linux kernel

RTOS developers are used to working on Embedded Linux tools are Open Source and run
Windows development hosts

on UNIX/Linux development hosts

Its not scalable

It has scalability property

It is time deterministic

It may or may not be time deterministic

1.4 Approaches for making Linux as an RTOS [4]
There have been many attempts over the past several years to improve the real-time
performance of Linux so that the benefits, such as open source software availability, can be used for
real-time applications. There are two basic approaches to this: a preempt kernel and the real-time
core.

Embedded RTOS

9
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

1.4.1 Pre-empt kernel approach
In the preempt kernel approach, the Linux kernel is modified to reduce the amount of time
the kernel spends in nonpreemptible sections of code. Because this approach requires the
modification of the Linux kernel (via a patch) to achieve minimized nonpreemptive paths, it is an
ongoing effort and potentially requires time-consuming revalidation whenever a patch is made.
Many open source projects have been formed to create a low-latency kernel using a variety of
preemption approaches. The most significant project was started by Ingo Molnar, and is being
included in the standard Linux kernel over time. But there are certainly benefits to this approach.
The most notable is the PREEMPT_RT project that is widely considered to be "mainstream Linux"
and the quality and maturity is improving over time. Many code paths in the kernel (such as device
drivers) are being modified in the mainstream code to support preemption.
1.4.2 Real-time executive approach
With the real-time executive approach, a small real-time kernel coexists with the Linux
kernel. This real-time core uses a simple real-time executive that runs the non-real-time Linux
kernel as its lowest priority task and routes interrupts to the Linux kernel through a virtual interrupt
layer. All interrupts are initially handled by the core and are passed to standard Linux only when
there are no real-time tasks to run. Real-time applications are loaded in kernel space and receive
interrupts immediately, giving near hardware speeds for interrupt processing.
On the other hand, a real-time core is not a part of the standard Linux operating system and
is not licensed by the General Public License. It is immediately capable of providing a guaranteed
hard real-time environment for appropriately written applications within a Linux environment.

1.5 Use of Linux kernel work queues for making it an RTOS [5]
Interrupt latency is a key factor in the performance of a system. Work queues are one of
several tools available to the driver writer to avoid doing time-consuming work when interrupts are
disabled.
Linux included, device drivers typically divide the work of processing interrupts into two
parts or halves. The first part, the top half, is the familiar interrupt handler, which the kernel
invokes in response to an interrupt signal from the hardware device.
To facilitate small and fast interrupt handlers, the second part or bottom half of interrupt
handling is used to defer as much of the work as possible away from the top half and until a later
time. The bottom half runs with all interrupts enabled hence, the real work takes place in the bottom
half. Linux offers many mechanisms for implementing bottom halves. Currently, the 2.6 kernel
provides softirqs, tasklets and work queues as available types of bottom halves.

Embedded RTOS

10
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Work queues are interesting for two main reasons. First, they are the simplest to use of all
the bottom-half mechanisms. Second, they are the only bottom-half mechanism that runs in process
context; thus, work queues often are the only option device driver writers have when their bottom
half must sleep. In addition, the work queue mechanism is brand new, and new is cool.
The Work Queue Interface is given in the appendix A

1.6 Conclusion
A debate on determining whether to use an RTOS or Linux to meet real-time requirements
is done. Moving to Linux has some key advantages in cost and scale and can provide significant
advantages in many situations. In this part difference between Linux and RTOS, and different
approaches to made Linux as an RTOS is explained.

Embedded RTOS

11
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

PART-B
CHAPTER 2 Design of DCGS
2.1 Introduction
Distributed Common Ground System (DCGS) is considered the backbone of the networkcentric battlefield, providing access to time-sensitive, actionable intelligence, surveillance, and
reconnaissance (ISR) data. In an environment in which information can be the difference between
life and death, cloud computing and the rapid access to critical data and tools it offers might never
have been more important. The DCGS program establishes the core framework for a worldwide
distributed, network centric, system-of-systems architecture that conducts collaborative intelligence
operations and production. The first tactical cloud operating in Afghanistan, the Army’s Distributed
Common Ground System (DCGS-A) pools intelligence collected from the beginning of the war in
Iraq , aggregated from various databases for wider, faster and easier access and decision-making.

2.2 literature survey
Defence Department's effort to establish an Internet like, global intelligence sharing network
across the military services and defence intelligence agencies is the Distributed Common Ground
System (DCGS). DCGS continues to progress rapidly and has gained greater support across the
department. DCGS is being used by different wings of army with appropriate extensions of A army,
N navy etc.
As the Intelligence Surveillance and Reconnaissance (ISR) component of Battle Command,
DCGS provides the Commander, faster and more complete situational awareness enabling better
understanding of the operational environment. This increased situational awareness allows the
Commander to fight in ways that exceed the historical limitations through the following three
interrelated main ideas:
1. Increased situational awareness reduces risk for the Commander when executing missions.
2. A flattened network enables Commanders greater access to information historically only
available to Corps and above echelons.
3. Providing Commanders with unprecedented access to the Intelligence Enterprise affords the
greatest impact at the lowest level.
The capabilities of DCGS align the centre of gravity shift from the division to the brigade
combat team (BCT) with increased accessibility to critical information to fulfil the mission

requirements. The accessibility to previously restricted information provides the Commander at the
lowest level the capability to leverage the vast intelligence enterprise to better assess the current
operational environment and to receive actionable intelligence in a timely manner. Previously,

Embedded RTOS

12
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

collection, processing, and analysis from a stove-piped process restricted critical information from
most Commanders, particularly at brigade and below. Consequently, their decisions, often made
without the critical information, came with high risk. DCGS reduces that high risk and enables the
Commanders to better drive combat operations.
The system comprises information gleaned from various types of reports including patrol
and incident debriefings, improvised explosive device operations, civil military, and handheld
reports from the field that have been filed in databases such as the Combined Information Data
Network Exchange and Tactical Ground Reporting system.
In conjunction with the three main ideas, DCGS, through system configuration and
application, enables the Commander to meet seven of his Army Tasks. A primary function is the
intelligence war fighting function (IWF). The IWF is the flexible and adjustable activity to generate
knowledge of and products portraying the enemy and the environmental features required to plan,
prepare, execute, and assess operations. The personnel and organizations within the IWF conduct
four primary tasks that facilitate the Commander’s visualization and understanding of the threat and
the environment. These tasks are interactive and often take place simultaneously throughout the
intelligence process. DCGS-A supports the following Army tasks and mission areas
a.) Support to situational understanding (and all sub-tasks).
b.) Support to strategic responsiveness (and all sub-tasks).
c.) Conduct Intelligence, Surveillance and Reconnaissance (and all sub-tasks).
d.) Provide Intelligence Support to Effects (and all sub-tasks).
Figure2.1 graphically illustrates the process in with DCGS-A facilitates.

Figure 2. 1 Conceptual diagram of DCGS (generalized)[6]

Embedded RTOS

13
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

The DCGS-A fielding of various configurations extends across BCT, fires, maneuver
enhancement, Battlefield Surveillance Brigade (BFSB), aviation and sustainment organizations.
The fixed, mobile, and embedded configurations allow Commanders to have a better awareness and
enable understanding of the operational environments.
FIXED: The fixed configuration leverages the power and stability of sanctuary for the most
complex processing and analytic tasks. Additionally, it provides the greatest historical data
repository. The fixed DCGS-A configurations facilitate reach and split-based operations by
providing the “heavy lifting” intelligence analysis and strategic planning from stationary locations.
MOBILE: The mobile configuration of DCGS-A provides a tactical, deployable capability
to deliver responsive, forward support to Commanders from BN through operational headquarters.
Analytical tools, sensor inject, data storage, and integration with other BCS are the highlights of the
Mobile configuration. The configuration is the “access” point or intelligence service provider for
ISR data and information in theater. Mobile DCGS-A provides a wide range of ISR capabilities
including direct downlink of select DCGS baseline sensors, robust tasking, posting, processing,
using (TPPU) tools, and advance ISR analysis capabilities directly support tactical and force
protection operations. DCGS-A Mobile has the capability of receiving “plug” augmentation for
increased capability while remaining connected to various networks through provided
communications.
EMBEDDED: The embedded DCGS-A software on BCS enables the connection of the
intelligence enterprise with the battle command network. Embedded software provides battalion
and company intelligence efforts unprecedented access to data never before available. Surveillance
and reconnaissance collected from non military intelligence sources was not available to the
intelligence enterprise. The embedded software provides the shared access to both battle command
and the intelligence enterprise. This ability enables a more complete picture of the operational
environment to the commander.
2.2.1 Sensors system [7]
The ability to integrate data from sensors with different characteristics offers the potential
of significant performance improvements over what could be achieved from each sensor separately.
Here list of sensors associated with the exacting DCGS system.
The Guardrail Common Sensor (GRCS) system is the Army’s corps-level airborne signal
intelligence (SIGINT) collection, location and dissemination system providing tactical commanders
near-real-time targeting information. The GRCS systems consist of seven to 12 aircraft, depending
on the system, that normally fly operational missions in sets of two or three aircraft providing near-

Embedded RTOS

14
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

realtime SIGINT and targeting to tactical commanders with emphasis on deep battle and follow-on
forces attack support. Key features include integrated communications intelligence (COMINT) and
electronic intelligence (ELINT) reporting, enhanced signal classification and recognition, near-realtime direction finding, precision emitter location and an advanced integrated cockpit. Primary
capabilities include integrated signals exploitation, enhanced signal classification and recognition,
fast direction finding, precision emitter location and advanced integrated avionics. Interoperable
data links provide microwave connectivity between the aircraft and the integrated processing
facility (IPF).
The Prophet system (three-block acquisition approach: Blocks I, II and III) is the
division, brigade combat team (BCT), Stryker brigade combat team (SBCT) and armored cavalry
regiment (ACR) principal ground tactical signals intelligence (SIGINT) and electronic warfare
(EW) system that has been designed to support the Army vision, transformation and unit of action
battlespace. Prophet detects, identifies and locates enemy electronic emitters and provides enhanced
situational awareness and actionable 24-hour information for the warfighter throughout the
division, ACR and BCT areas of operations. Prophet is made up of a vehicular SIGINT receiver
mounted on a Humvee on the battlefield, plus a dismounted manpack SIGINT version for airborne
insertion or early entry into the battlespace to support rapid reaction contingency and antiterrorist
operations.
Army night-vision and sensor programs and activities include day/night, allweather
mobility and engagement sensors; all-weather imagery; passive and radar target acquisition sensors;
artillery and mortar- locating radars; and advanced sensors for the Army’s Future Force. These
systems provide critical, on-the-ground, direct support to base station. One key area is thermal
sensors, which dramatically increase the lethality and survivability of Army soldiers. These sensors
read the heat signature from distant objects, such as personnel or vehicles, day or night, penetrating
smoke, fog and obscurants.

2.3 Identification of functionalities
DCGS is the ISR component of the modular and future force BCS and the Army’s primary
system for ISR tasking of sensors, processing of data, exploitation of data, and dissemination of
intelligence information. DCGS provides critical battle information about the threat, weather, and
terrain at all echelons. DCGS will provide the capabilities necessary for Commanders to access
information, task organic sensors, and synchronize non-organic sensor assets with their organic
assets. These services will be shared by Commanders across an enterprise (provided by the

Embedded RTOS

15
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Network-Centric Enterprise Services (NCES)) using the DCGS Integration Backbone (DIB) to
enhance interoperability of ISR information
DCGS will provide continuous acquisition and synthesis of data and information from Joint,
Interagency, Intergovernmental, and Multi-national sources that will permit Commanders to have
an updated and accurate picture of the operational environment. This will allow Commanders to
maximize their combat power and enhance their ability to operate in an unpredictable and changing
environment throughout the operational spectrum. Here communication between soldier,
commander (head quarters) and air force plane is highlighted.
Cloud

soilder's node

Army
commander's
office node

Airforce node

Figure 2. 2 Conceptual diagram of DCGS(designed)
The whole system is divided in to three nodes. One node is operated by the soldier from
Warfield. After pressing start button on the soldier’s node, it prompts to authenticate by thumb
impression. Thumb impression will authenticate the person and associated data gives a signal to
start. In the battle field to know the location of the each soldier is essential. To fulfil this
requirements one GPS module is assigned in the device. Basically this device can be a device like a
tablet which includes the GPS, 3G, Touch screen, temperature sensor. For reading the temperature
of the battlefield a temperature sensor is embedded with device. To be updated with the live
situation one camera is also embedded in device which can pick snaps and send this information to
the main unit. After getting all the information from the various sensors, device uploads the data to
the cloud by using the GSM modem.
The other node is at the head quarter which is capable of retrieving all the data. At the
receiver side all real time data will be retrieved by the accessing the cloud. To access this cloud
authentication is required.
In some scenarios, army which is on ground need the services from the air force. To handle
this situation one facility is added in the designed system is the “service from”. By using this
facility army can check the current location of air force & generate a service request for air force.

Embedded RTOS

16
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

This reinforce task asks the location of the service and the time of service from the army. Figure 2.2
shows the functional block diagram of the designed system.

2.4 Requirement specifications for the DCGS
To achieve full-fledged functionality of the DCGS requirements of the system are mention
here. At the initial stage for storing and retrieving the data on the cloud fast wireless network
connectivity is essential. The speed of this wireless is network is enough capable to handle live
videos. As the best option of this requirement any of 3G network is recommended, which has good
connectivity under the area of surveillance. Table 2.1 shows the Hardware specification and
arrangement of the hardware for the DCGS.
Table 2. 1 Hard ware requirements for DCGS
Requirement No.

Sensor Detail

Place for Sensor

Propose

Requirements for soldier node
HWR_1

GPS module

Should be embedded Basic idea behind this
in tablet

sensor

is

to

send

location of the soldier
to the cloud.
HWR_2

Temperature sensor

Should embedded in This sensor is used to
tablet

sense the temperature
of the present location

HWR_3

Camera

Should embedded in This is user to transmit
tablet

live Video/images to
the cloud

HDR_4

One tablet

Should

be

with This Plays major roll

soldiers on the battle in communicating with
field

the commander and
soldier.

This

programmed

like

is
it

will retrieve all the
data and send it on the
cloud
HRD_5

Thumb
detector

impression Should embedded in This is responsible to
tablet

authentication of the
solider

Embedded RTOS

17
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Requirements for commander’s node
HRD_6

Computer with internet

Any ware

To retrieve all the data

connection
Requirements for Air force node
HRD_7

One tablet

Any ware

This device is used to
receive

the

service

request

from

cloud

which is sent by the
army

2.5 Different tasks associated with DCGS
Inter process communication (IPC) is a set of programming interfaces that allow to
coordinate activities among different program/processes that can run concurrently. This allows a
program/process to talk with each other by using some set of rules. Here nine process has been
identified which are running on the DCGS are described by the table 2.3.There are couple of ways
to achieve IPC/RPC. Here, internet cloud based shared data structure has been used to pass data
from one node to another.
Table 2. 2 Required processes for DCGS
Process ID

Process node

Process

Process Ignited

Process description

iteration time
Processes at the solders’ node
PID_1

soldiers node

Single

time

Auto

This process is providing

when time of

security to the device by

start-up.

checking

for

thumb

impression of the user
PID_2

soldier node

Infinite

time

Auto

At every time this process

until life spam

reads location data which

of device

is sent by the GPS receiver
and update it on cloud

PID_3

Soldier’s node

Infinite

time

Auto

This process is responsible

until life spam
of device

Embedded RTOS

for reading and updating
the current temperature of

18
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

battle field on the cloud
PID_4

Soldier’s node

Infinite

time

Auto

This process is responsible

until life spam
of device

cloud.
time

Initiated by user

This task asks about the

until life spam

when service is

service is required for other

needed from

entity. if it is required it

other entity

PID_5

Soldier’s node

for sending photos/video to

Infinite

make a service request and

of device

returns the request number
to army
PID_6

Soldier’s node

Infinite

time

Auto

This

task

will

until life spam

show/retrieve location data

of device

of air force and show to
army.

Processes at the commanders’ node
Commander’s

Infinite time

This process reads all the

commander on

node

Initiated by the

data from the cloud and

the requirement

PID_7

displays it.

of the data
Processes at the Air force node
PID_8

Air force node Infinite time

Auto

This

is

basically

background process. This
process checks the for the
service request for Air
force. If any of service
requests is available then it
will

inform

by

giving

popup.
PID_9

Air force node Infinite time

Auto

The main purpose of this
task is to take location of
the air force/aircraft and
send it on a cloud.

Embedded RTOS

19
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Figure 2.3 represent whole IPC/RPC scenario (data flow diagram) with appropriate data
which is being communicate. In figure, inner arrows shows that process is sending the data and the
outer arrow shows that process is the receiving the data. Labels associated with the arrows shows
the type of the data exchange.

Figure2. 3 Data flow diagram
A: Location Data structure of solider troops
B: Location Data structure of air force
C: Tempeature data
D, E: All Data structure
F: Photos/video information
G, H: Request data structure

2.8 Conclusion
Detailed survey on distributed common ground system is done and a system with
Commander, solider and air force/plane is designed as a part of this chapter. Functionalities,
requirement specifications and different task for implementing DCGS with their full-fledged
operations are documented.

Note: This is not a real DCGS system. To Develop DCGS, it is essential to use remote procedure
call which is out of scope of this document. In place of the RPC here, common data structure has
been used to analyze the functionality. By the other side, data which should come from sensor is
entered by the user.

Embedded RTOS

20
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

PART-C
CHAPTER 3: Implementation of DCGS
3.1 Introduction
Device which is working at the battle field should be well scheduled. In above designed if
the pulse is not detected for a minute that can stop device. To implement above designed real time
functionality, operating system is essential. In view of this, Vxworks is good option for time critical
tasks between commander and soldier.

3.2 Program flow graph
A figure 3.1 shows the programme flow graph for soldier node. At the solders node, after
starting the device is will ask for the authentication by using the thumb impression. Is the
impression is matched with the desired information then only this device will be activate otherwise
it will again go to read the thumb.

Figure 3. 1 Software flow diagram for solders node

Embedded RTOS

21
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

After successful completion of the thumb identification phase, device reads the current
location and current temperature and image/video update; send this data to the cloud. After
successful completion of these tasks it displays the current location of the air force to the screen.
After this process firm ware asks the user/army man if service from the air force is required or not.
If the service is required then it will asks the location of the service and time from the army person.
It generates the service request on the cloud.

Figure 3. 2 Software flow diagram for commander node

Figure 3. 3 Software flow diagram for air force node

Embedded RTOS

22
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Figure 3.2 shows the program flow graph for the commander node. At the initial stage after
starting of the device/node, user/commander has to give the thumb impression for security of the
data and device. At the successful identification of the device will start reading the data from the
cloud and display it into appropriate format. This is shown in figure.
Figure 3.3 shows the program flow graph for the air force node. At the initial stage after
starting of the device/node, air force fallow has to give the thumb impression for security of the
data and device. After this stage it will search for the pending service request. If new service
request is available then it pop up the user with appropriate data (location and time to be served).In
the case of the no request it sync the location of the particular device (aero plane) to the cloud.

3.3 Implementation of the DCGS
Here, programming language c is chosen for programming of the above designed system.
Data structure associated with the cloud is used by the global deceleration. Image 3.3 shows the
peace of code (Data structure) which is defined globally. There are three structures defined here.
Data structure named database is used to keep record of the location of the army/solider and air
force and the temperature of the battle field. Structure instance named data is created for this
structure.

Figure 3. 4 Data structures for DCGS
The other data structure named request is used to keep track of the data related to the
serving request. It will store the request number, location to be served and time (delay from current
time).sev is structure instance created to access this structure.
Thumb sensor sends a unique 10 bit string for each thumb impression. Structure password is
used to store this thumb impression string for user. At the starting of the device each user will enter
Embedded RTOS

23
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

thumb to protect the device from the misuse. This thumb pattern is stored in the 1st instance of the
structure named pas[1]. This is the procedure for only 1st time log in to device. Structure instance
pas[2] is used to store the user entered thumb impression by the time of login. By comparing the
two instances authentication of the device is achieved.

Figure 3. 5 First task on target board
Figure 3.5 shows the first task running of the target board. First task asks about to decide
administer of the device by thumb impression. This stored the all thumb impression to 1st instance
of the structure password. After accessing the thumb impression it asks user to confirm administer
for device and starts/spawns first true functional task of DCGS with the priority of the 100.At this
stage only one task is available for processor so priority doesn’t affect at this stage.

Figure 3. 6 First true functional task
The first true functional task is responsible for spawning all the tasks of the DCGS. By the
starting of the task service request number is assigned to zero because by the starting no service
request can possible. All the tasks with the different priority spawn from this task. This
functionality runs for infinite time by using the go to statement.
The first task, named tstart is created with the priority of the 1.This is the highest priority
task which stores the location of the army man in the data structure. At the starting of this task it
asks to authenticate the device by users thumb impression. After successfully authenticating the
user, location data is stored in data structure. This is function should be permitted. To fulfil this

Embedded RTOS

24
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

requirement reading and storing of the data is being done by locking the task. Here in the
simulation process user should enter data manually. At the scanf statement control of the
programme goes to the second task due to the wait in entering of the user parameter. To achieve
synchronization and avoid unwanted context switching taskSuspend () is used at the starting of all
tasks. By the ending of the one task will resume the other task. So at some instance of the time only
one task is in the ready queue of the Vxworks. Figure 3.7 shows the code with the above discussed
mechanism.

Figure 3. 7 fn_task1
Before the ending of the tfn_task1, task service is in the suspend state. By the end of
fn_taks1, it will resume task named service. After executing the resume instruction for this task,
context switches at this piece of code. At the initial stage it asks the user if want to generate the
service or not. If the service is enabled then it asks the user to enter the location (longitude and
latitude) and time (delay from current time) from the user. It stores this data to the request structure.

Figure 3. 8 Service from

Embedded RTOS

25
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

At the end, this task will resume the temperature task which is having priority of the
15(lowest priority among all tasks in this node).This will reads the current temperature of location
and send it to the data structure. Figure 3.9 shows this mechanism.

Figure 3. 9 Temperature
Above three tasks runs on the solider node. At the end of temperature task resumes the
fn_task2.This task runs on the air force node. Initially is checks the data structure wither any
service request is available or not. On the arrival of the service request it shows the location and the
time of the service to the screen. If no service request is available/after serving the service request
function it stores the location of the airplane to the global structure. Figure 3.20 shows the above
mechanism.

Figure 3. 10 Air force
At the end of above task it resumes the task command. This is investigation task. Command
task dose not writes anything to the global data structure. It only reads and display whole operation
and service request with the location on the screen. As the back ground process, this task updates
the photo library with the new arrival of the photos from the cloud. So, by the end of this process
the commander’s node is updated with the all photos/videos which is recently sent by the army
node. Figure 3.11 shows this mechanism.

Embedded RTOS

26
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Figure 3. 11 Command

3.4 Test cases
Table 3.1 shows the test case and the description for above designed DCGS. Here all the test
cases are tested and obtained result is documented along with this table.
Table 3. 1 Test cases
Test case

Testing

number

Type

Tc_1

Unit

Pass/Fail

Tested Nodes

Description of the Test case

Y

All

By the entering of the wrong password

testing

system should not allow the user to
read/write information

Tc_2

Integration

Y

All

testing
Tc_3

Unit

or race condition
Depends

All

testing
Tc_4

Integration

Unit

Y

All

Unit
testing

Embedded RTOS

Any of task should not be permitted while
reading sensor and write the data to cloud

Y

All

testing
Tc_6

Check wither speed of 3g network is enough
capable to handle live data

testing
Tc_5

While running, Should not cause dead lock

By generating the service request it should
update the location to be served.

Y

Solider and
air force

GPS receiver should send location with the
good accuracy of 10 m

27
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

3.5 Disscution of obtained result
At the first starting of the device it asks about the node admin. This phenomena shown by
the figure 3.12. After setting the admin for login, it asks to re enter the particular node’s login
identity. This both output is pointed by the calloutsin figure 3.12.

Figure 3. 12 Asking for authentication

Asking to make
node admin by
thumb ID

By the time of login in
soldiers node, asking
for authentication

After entering the authentication ID it enter(log in) to the node and synchronize current location of the
soldier to the cloud. This phenomena is pointed by the callout in the figure 3.13.

After entering the
ID(thumb) its taking
location of soldier
Figure 3. 13 Synchronizing location of soldier
After synchronization of location it asks for the service from the other entity (in this case air
force) is required or not. This mechanism is shown by the figure 3.14.

It is asking to enable the
service from air force

Figure 3. 14 Asking for service

After entering the time of
service program shows the
service request number
Figure 3. 15 Showing request number

Embedded RTOS

28
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

After receiving of the all the data related to the service program shows the service request
number .This is pointed by the callout in figure 3.15.
Reading location of air force
vehical(plane).

Figure 3. 16 Air force task
Figure 3.16 shows the task running at the air force node. In this task, after authentication
task will read the location of the plane(air force vehicle) and synchronize this data to the cloud.
Retrives all collected data at
commander to take decision

Figure 3. 17 commanded node
Figure 3.17 shows the output generated by the commanders’ task. This task will regenerate
all the information and display it to take decision. Commander will forward service request to the
air force department.

3.6 Conclusion
DCGS system is implemented by using Vxworks RTOS which can develop in tornado
IDE/Cross compiler. Software flow diagram, test cases and results are documented.

Embedded RTOS

29
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

CHAPTER 4
4.1 Module Learning Outcomes
Basic RTOS concepts
Concepts of Vxworks, ucos and osec
Scheduling associated with different RTOS
Creating , managing and deleting of the task under tornado IDE
Synchronization mechanism and inter process communication
Interrupts signals and timer under Vxworks

4.2 summary
As part a of this assignment, essay is prepared on “Suitability of the Linux kernel work
queues as RTOS” is created. In part b DCGS system is designed which can communicate between
solider, commander and air force/air plane. This designed system is developed using Vxworks and
documented as part c.

Embedded RTOS

30
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

References
[1] Myths & Realities of Real-Time Linux Software Systems
[2] http://www.edaboard.com/thread144931.html
[3] Embedded Linux Best Practices, 2 December 2006
[4] Electronics Weekly's Focus on Mobile Linux
[5] RTOS vs. Linux kernel workqueue - Embedded Systems and Real-Time OS
[6]https://publicintelligence.net/army-distributed-common-ground-system-dcgs-acommander%E2%80%99s-handbook/
[7]http://www3.ausa.org/webpub/DeptGreenBook.nsf/byid/WEBP7GMWZ/$File/C4I%20Systems.
pdf?OpenElement

Embedded RTOS

31
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

Appendix
The first step in using work queues is creating a work queue structure. The work queue structure is
represented by struct work_struct and defined in linux/workqueue.h. if want to create work queue
structure statically, declare it directly with:
DECLARE_WORK(name, function, data)
This macro creates a struct work_struct and initializes it with the given work queue handler,
function. The work queue handler must match the following prototype:
void my_workqueue_handler(void *arg)
The arg parameter is a pointer passed to work queue handler by the kernel each time it is invoked. It
is specified by the data parameter in the DECLARE_WORKQUEUE() macro. By using a
parameter, device drivers can use a single work queue handler for multiple work queues. The data
parameter can be used to distinguish between work queues.
If you do not want to create your work queue structure directly but instead dynamically, you can do
that too. If you have only indirect reference to the work queue structure, say, because you created it
with kmalloc(), you can initialize it using:
INIT_WORK(p, function, data)
In this case, p is a pointer to a work_struct structure, function is the work queue handler and data is
the lone argument the kernel passes to it on invocation.
Creating the work queue structure normally is done once—for example, in your driver's
initialization routine. The kernel uses the work queue structure to keep track of the various work
queues on the system. You need to keep track of the structure, because you will need it later.
Your Work Queue Handler
Basically, your work queue handler can do whatever you want. It is your bottom half, after all. The
only stipulation is that the handler's function fits the correct prototype. Because your work queue
handler runs in process context, it can sleep if needed.
So you have a work queue data structure and a work queue handler—how do you schedule it to
run? To queue a given work queue handler to run at the kernel's earliest possible convenience,
invoke the following function, passing it your work queue structure:

int schedule_work(struct work_struct *work)
This function returns nonzero if the work was successfully queued; on error, it returns zero. The
function can be called from either process or interrupt context.
Sometimes, you may not want the scheduled work to run immediately, but only after a specified
period has elapsed. In those situations, use:

Embedded RTOS

32
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

int schedule_delayed_work(struct work_struct *work,
unsigned long delay)
In this case, the work queue handler associated with the given work queue structure will not run for
at least delay jiffies. For example, if you have a work queue structure named my_work and you
wish to delay its execution for five seconds, call:

schedule_delayed_work(&my_work, 5*HZ)

Normally, you would schedule your work queue handler from your interrupt handler, but nothing
stops you from scheduling it from anywhere you want. In normal practice, the interrupt handler and
the bottom half work together as a team. They each perform a specific share of the duties involved
in processing a device's interrupt. The interrupt handler, as the top half of the solution, usually
prepares the remaining work for the bottom half and then schedules the bottom half to run. You
conceivably can use work queues for jobs other than bottom-half processing, however.
Work Queue Management
When you queue work, it is executed when the worker thread next wakes up. Sometimes, you need
to guarantee in your kernel code that your queued work has completed before continuing. This is
especially important for modules, which need to ensure any pending bottom halves have executed
before unloading. For these needs, the kernel provides a function to wait on all work pending for
the worker thread:
void flush_scheduled_work(void)
Because this function waits on all pending work for the worker thread, it might take a relatively
long time to complete. While waiting for the worker threads to finish executing all pending work,
the call sleeps. Therefore, you must call this function only from process context. Do not call it
unless you truly need to ensure that your scheduled work is executed and no longer pending.
This function does not flush any pending delayed work. If you scheduled the work with a delay, and
the delay is not yet up, you need to cancel the delay before flushing the work queue:
int cancel_delayed_work(struct work_struct *work)
In addition, this function cancels the timer associated with the given work queue structure—other
work queues are not affected. You can call cancel_delayed_work() only from process context
because it may sleep. It returns nonzero if any outstanding work was canceled; otherwise, it returns
zero.
Creating New Worker Threads
In rare cases, the default worker threads may be insufficient. Thankfully, the work queue interface
allows you to create your own worker threads and use those to schedule your bottom-half work. To
create new worker threads, invoke the function:
struct workqueue_struct *
create_workqueue(const char *name)

Embedded RTOS

33
MSRSAS - Postgraduate Engineering and Management Programme - PEMP

For example, on system initialization, the kernel creates the default queues with:
keventd_wq = create_workqueue("events");
This function creates all of the per-processor worker threads. It returns a pointer to a struct
workqueue_struct, which is used to identify this work queue from other work queues (such as the
default one). Once you create the worker thread, you can queue work in a fashion similar to how
work is queued with the default worker thread:
int queue_work(struct workqueue_struct *wq,
struct work_struct *work)
Here, wq is a pointer to the specific work queue that you created using the call to
create_workqueue(), and work is a pointer to your work queue structure. Alternatively, you can
schedule work with a delay:
int
queue_delayed_work(struct workqueue_struct *wq,
struct work_struct *work,
unsigned long delay)
This function works the same as queue_work(), except it delays the queuing of the work for delay
jiffies. These two functions are analogous to schedule_work() and schedule_delayed_work(),
except they queue the given work into the given work queue instead of the default one. Both
functions return nonzero on success and zero on failure. Both functions may be called from both
interrupt and process context.
Finally, you may flush a specific work queue with the function:
void flush_workqueue(struct workqueue_struct *wq)
This function waits until all queued work on the wq work queue has completed before returning.

Embedded RTOS

34

More Related Content

Viewers also liked

Viewers also liked (11)

Posix threads(asha)
Posix threads(asha)Posix threads(asha)
Posix threads(asha)
 
Posix Threads
Posix ThreadsPosix Threads
Posix Threads
 
Rtos
RtosRtos
Rtos
 
Rtos slides
Rtos slidesRtos slides
Rtos slides
 
Real Time Operating System
Real Time Operating SystemReal Time Operating System
Real Time Operating System
 
Unit 4 Real Time Operating System
Unit 4 Real Time Operating SystemUnit 4 Real Time Operating System
Unit 4 Real Time Operating System
 
Real Time Operating System Concepts
Real Time Operating System ConceptsReal Time Operating System Concepts
Real Time Operating System Concepts
 
RTOS - Real Time Operating Systems
RTOS - Real Time Operating SystemsRTOS - Real Time Operating Systems
RTOS - Real Time Operating Systems
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded Systems
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 
Rtos Concepts
Rtos ConceptsRtos Concepts
Rtos Concepts
 

Similar to Linux Work Queues for Real-Time Systems

Design Documents (4)
Design Documents (4)Design Documents (4)
Design Documents (4)Isidro Garcia
 
GenRays Project Scope Document
GenRays Project Scope DocumentGenRays Project Scope Document
GenRays Project Scope DocumentApril Drake
 
Airline ticket reservation system
Airline ticket reservation systemAirline ticket reservation system
Airline ticket reservation systemSH Rajøn
 
Leave management System
Leave management SystemLeave management System
Leave management Systempratikmahorey
 
Embedded Systems Scope in the Future and Embedded systems course importance
Embedded Systems Scope in the Future and Embedded systems course importanceEmbedded Systems Scope in the Future and Embedded systems course importance
Embedded Systems Scope in the Future and Embedded systems course importanceEmbedded Hash
 
University_Management_System.pdf
University_Management_System.pdfUniversity_Management_System.pdf
University_Management_System.pdfMennIndia
 
Blockchain Technology using System Requirement Specification and IoT Devices
Blockchain Technology using System Requirement Specification and IoT DevicesBlockchain Technology using System Requirement Specification and IoT Devices
Blockchain Technology using System Requirement Specification and IoT DevicesIRJET Journal
 
Deployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V CoreDeployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V CoreIRJET Journal
 
Project NameYour Full NameCourse Number and Name (As i.docx
Project NameYour Full NameCourse Number and Name (As i.docxProject NameYour Full NameCourse Number and Name (As i.docx
Project NameYour Full NameCourse Number and Name (As i.docxwkyra78
 
University of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPUniversity of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPrashidalyasuog
 
Automated Placement System
Automated Placement SystemAutomated Placement System
Automated Placement SystemIRJET Journal
 
Block-Chain Oriented Software Testing Approach
Block-Chain Oriented Software Testing ApproachBlock-Chain Oriented Software Testing Approach
Block-Chain Oriented Software Testing ApproachIRJET Journal
 
DYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEM
DYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEMDYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEM
DYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEMijesajournal
 
Dynamic HW Priority Queue Based Schedulers for Embedded System[
Dynamic HW Priority Queue Based Schedulers for Embedded System[Dynamic HW Priority Queue Based Schedulers for Embedded System[
Dynamic HW Priority Queue Based Schedulers for Embedded System[ijesajournal
 

Similar to Linux Work Queues for Real-Time Systems (20)

Assignment 4
Assignment 4Assignment 4
Assignment 4
 
Assignment 9
Assignment 9Assignment 9
Assignment 9
 
Design Documents (4)
Design Documents (4)Design Documents (4)
Design Documents (4)
 
GenRays Project Scope Document
GenRays Project Scope DocumentGenRays Project Scope Document
GenRays Project Scope Document
 
Airline ticket reservation system
Airline ticket reservation systemAirline ticket reservation system
Airline ticket reservation system
 
Leave management System
Leave management SystemLeave management System
Leave management System
 
Embedded Systems Scope in the Future and Embedded systems course importance
Embedded Systems Scope in the Future and Embedded systems course importanceEmbedded Systems Scope in the Future and Embedded systems course importance
Embedded Systems Scope in the Future and Embedded systems course importance
 
University_Management_System.pdf
University_Management_System.pdfUniversity_Management_System.pdf
University_Management_System.pdf
 
Blockchain Technology using System Requirement Specification and IoT Devices
Blockchain Technology using System Requirement Specification and IoT DevicesBlockchain Technology using System Requirement Specification and IoT Devices
Blockchain Technology using System Requirement Specification and IoT Devices
 
Deployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V CoreDeployment of Debug and Trace for features in RISC-V Core
Deployment of Debug and Trace for features in RISC-V Core
 
Project NameYour Full NameCourse Number and Name (As i.docx
Project NameYour Full NameCourse Number and Name (As i.docxProject NameYour Full NameCourse Number and Name (As i.docx
Project NameYour Full NameCourse Number and Name (As i.docx
 
University of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYPUniversity of Gujrat Lahore sub Campus Documentation FYP
University of Gujrat Lahore sub Campus Documentation FYP
 
Automated Placement System
Automated Placement SystemAutomated Placement System
Automated Placement System
 
Block-Chain Oriented Software Testing Approach
Block-Chain Oriented Software Testing ApproachBlock-Chain Oriented Software Testing Approach
Block-Chain Oriented Software Testing Approach
 
Print report
Print reportPrint report
Print report
 
CG-LIMS CONOP
CG-LIMS CONOPCG-LIMS CONOP
CG-LIMS CONOP
 
Technoscope Dissertation
Technoscope DissertationTechnoscope Dissertation
Technoscope Dissertation
 
DYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEM
DYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEMDYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEM
DYNAMIC HW PRIORITY QUEUE BASED SCHEDULERS FOR EMBEDDED SYSTEM
 
Dynamic HW Priority Queue Based Schedulers for Embedded System[
Dynamic HW Priority Queue Based Schedulers for Embedded System[Dynamic HW Priority Queue Based Schedulers for Embedded System[
Dynamic HW Priority Queue Based Schedulers for Embedded System[
 
Proposal with sdlc
Proposal with sdlcProposal with sdlc
Proposal with sdlc
 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Linux Work Queues for Real-Time Systems

  • 1. EMBEDDED PROCESSORS AND MICRO CONTROLLERS Module Code Module Name Course Department ESD 531 Embedded RTOS M.Sc in Real-Time Embedded Systems Computer Engineering Name of the Student Bhargav Shah Reg. No CHB0911001 Batch Full-Time 2011 Module Leader Deepak V. M.S.Ramaiah School of Advanced Studies Postgraduate Engineering and Management Programmes(PEMP) #470-P Peenya Industrial Area, 4th Phase, Peenya, Bengaluru-560 058 Tel; 080 4906 5555, website: www.msrsas.org Embedded RTOS POSTGRADUATE ENGINEERING AND MANAGEMENT PROGRAMME – (PEMP) MSRSAS - Postgraduate Engineering and Management Programme - PEMP i
  • 2. Declaration Sheet Student Name Bhargav Shah Reg. No CHB0911001 Course Real Time Embedded System Batch FT-11 Module Code ESD531 Module Title Embedded RTOS to Module Date Module Leader Batch Full-Time 2011 Deepak V. Extension requests: Extensions can only be granted by the Head of the Department in consultation with the module leader. Extensions granted by any other person will not be accepted and hence the assignment will incur a penalty. Extensions MUST be requested by using the ‘Extension Request Form’, which is available with the ARO. A copy of the extension approval must be attached to the assignment submitted. Penalty for late submission Unless you have submitted proof of mitigating circumstances or have been granted an extension, the penalties for a late submission of an assignment shall be as follows: • Up to one week late: Penalty of 5 marks • One-Two weeks late: Penalty of 10 marks • More than Two weeks late: Fail - 0% recorded (F) All late assignments: must be submitted to Academic Records Office (ARO). It is your responsibility to ensure that the receipt of a late assignment is recorded in the ARO. If an extension was agreed, the authorization should be submitted to ARO during the submission of assignment. To ensure assignment reports are written concisely, the length should be restricted to a limit indicated in the assignment problem statement. Assignment reports greater than this length may incur a penalty of one grade (5 marks). Each delegate is required to retain a copy of the assignment report. Declaration The assignment submitted herewith is a result of my own investigations and that I have conformed to the guidelines against plagiarism as laid out in the PEMP Student Handbook. All sections of the text and results, which have been obtained from other sources, are fully referenced. I understand that cheating and plagiarism constitute a breach of University regulations and will be dealt with accordingly. Signature of the student Bhargav Shah Date Submission date stamp (by ARO) Signature of the Module Leader and date Signature of Head of the Department and date ii
  • 3. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Abstract ____________________________________________________________________________ A real-time operating system (RTOS) is an operating system (OS) supposed to serve real-time application requests. RTOSes are designed to control an embedded system, and to deliver the real-time responsiveness and determinism required by the controlled device. RTOS is a multitasking operating system intended for real-time applications and designed to be very compact and efficient, forsaking many functions that non-embedded computer operating systems provide. In part A of assignment differences between linux and RTOS, and different approaches to made linux as an RTOS is explained and specially the use of Linux kernel workqueues to make it an RTOS. RTOS provides facilities which, if used properly, guarantee deadlines can be met generally (soft real-time) or deterministically (hard real-time). It is valued more for how quickly or predictably it can respond to a particular event than for the amount of work it can perform over a given period of time. Distributed Common Ground System (DCGS), weapon system is the service's premier globally networked intelligence, surveillance and reconnaissance weapon system. In part B of the assignment literature survey and functionalities of the DCGS consisting of the selected entities with the required communication system is done. Design and development of DCGS which can help to take important decision in the war condition is done with VxWorks Operating System. The DCGS system designed with priorities and synchronized according to the course of event occurred. The design is made The SSD system is designed and implemented in C code in tornado IDE in VxWorks RTOS. Embedded RTOS iii
  • 4. Contents ____________________________________________________________________________ Declaration Sheet ......................................................................................................................... ii Abstract ....................................................................................................................................... iii Contents ........................................................................................................................................iv List of Tables ................................................................................................................................. v List of Figures ..............................................................................................................................vi List of Symbols .......................................................................................................................... vii PART-A......................................................................................................................................... 8 CHAPTER 1: Suitability of Linux work queues as RTOS ........................................................... 8 1.1 Introduction to Linux File System....................................................................................... 8 1.2 Correctness faced by the developers for the performance of the system [1] ...................... 8 1.3 Differences .......................................................................................................................... 8 1.3.1 OS and RTOS Scheduling[2] ....................................................................................... 8 1.3.2 RTOS and Linux system [3] ......................................................................................... 9 1.4 Approaches for making Linux as an RTOS[4] .................................................................... 9 1.4.1 Pre-empt kernel approach ........................................................................................... 10 1.4.2 Real-time executive approach .................................................................................... 10 1.5 Use of Linux kernel work queues for making it an RTOS[5] ........................................... 10 1.6 Conclusion ......................................................................................................................... 11 PART-B ....................................................................................................................................... 12 CHAPTER 2 Design of DCGS ................................................................................................... 12 2.1 Introduction ....................................................................................................................... 12 2.2 literature survey ................................................................................................................. 12 2.2.1 Sensors system[7] ....................................................................................................... 14 2.3 Identification of functionalities ......................................................................................... 15 2.4 Requirement specifications for the DCGS ........................................................................ 17 2.5 Different tasks associated with DCGS .............................................................................. 18 2.8 Conclusion ......................................................................................................................... 20 PART-C ....................................................................................................................................... 21 CHAPTER 3: Implementation of DCGS .................................................................................... 21 3.1 Introduction ....................................................................................................................... 21 3.2 Program flow graph ........................................................................................................... 21 3.3 Implementation of the DCGS ............................................................................................ 23 3.4 Test cases ........................................................................................................................... 27 3.5 Disscution of obtained result ............................................................................................. 28 3.6 Conclusion ......................................................................................................................... 29 CHAPTER 4 ................................................................................................................................ 30 4.1 Module Learning Outcomes .............................................................................................. 30 4.2 summary ............................................................................................................................ 30 References ................................................................................................................................... 31 Appendix ..................................................................................................................................... 32 iv
  • 5. MSRSAS - Postgraduate Engineering and Management Programme - PEMP List of Tables Table 1. 1 RTOS vs Linux............................................................................................................. 9 Table 2. 1 Hard ware requirements for DCGS ............................................................................ 17 Table 2. 2 Required processes for DCGS.................................................................................... 18 Table 3. 1 Test cases.................................................................................................................... 27 Embedded RTOS v
  • 6. List of Figures Figure 2. 1 Conceptual diagram of DCGS (generalized)[6] ....................................................... 13 Figure 2. 2 Conceptual diagram of DCGS(designed) ................................................................. 16 Figure 3. 1 Software flow diagram for solders node ................................................................... 21 Figure 3. 2 Software flow diagram for commander node ........................................................... 22 Figure 3. 3 Software flow diagram for air force node ................................................................. 22 Figure 3. 4 Data structures for DCGS ......................................................................................... 23 Figure 3. 5 First task on target board........................................................................................... 24 Figure 3. 6 First true functional task ........................................................................................... 24 Figure 3. 7 fn_task1 ..................................................................................................................... 25 Figure 3. 8 Service from .............................................................................................................. 25 Figure 3. 9 Temperature .............................................................................................................. 26 Figure 3. 10 Air force .................................................................................................................. 26 Figure 3. 11 Command ................................................................................................................ 27 Figure 3. 12 Asking for authentication ........................................................................................ 28 Figure 3. 13 Synchronizing location of soldier ........................................................................... 28 Figure 3. 14 Asking for service ................................................................................................... 28 Figure 3. 15 Showing request number......................................................................................... 28 Figure 3. 16 Air force task........................................................................................................... 29 Figure 3. 17 commanded node .................................................................................................... 29 vi
  • 7. MSRSAS - Postgraduate Engineering and Management Programme - PEMP List of Symbols RTOS OS RAM FIFO SJF EDF DCGS ISR BCT IWF GRCS COMINT ELINT SBCT ACR SIGINT EW BFSB NCES DIB IPC RPC Embedded RTOS Real Time Operating System Operating System Random Access Memory First in, First out Shortest Job First Earliest Dead line First Distributed Common Ground System Intelligence, Surveillance, and Reconnaissance Brigade Combat Team Intelligence War fighting Function Guardrail Common Sensor Communication Intelligence Electronic Intelligence Stryker Brigade Combat Team Armored Cavalry Regiment Signals Intelligence Electronic Warefare Battlefield Surveillance Brigade Network-Centric Enterprise Services DCGS Integration Backbone Inter Process Communication Remote Procedural Call vii
  • 8. PART-A CHAPTER 1: Suitability of Linux work queues as RTOS 1.1 Introduction to Linux File System A real-time operating system (RTOS) is an operating system (OS) supposed to serve realtime application requests. RTOSes are designed to control an embedded system, and to deliver the real-time responsiveness and determinism required by the controlled device. Linux is an open source operating system which is not a real time operating system, In this part of assignment a debate on Suitability of Linux for RTOS type applications by using kernel work queue’s is done. 1.2 Correctness faced by the developers for the performance of the system [1] A real-time system should be able to perform computations deterministically - an important concept in real-time systems. A system is said to be deterministic if it's possible to predict the timings of its computation precisely, and computations are logically correct. An example for real time system is an automobile airbag system, one of the most critical systems in a modern car. An airbag should be deployed within a particular time interval (for example, within 1 second1) after the sensors in the car detect a collision. Latency: In computing, latency is "the time that elapses between a stimulus and the response to it" is the important parameter required to quantify real-time systems. Real-time systems can be categorized in two major groups, “hard” real-time systems and “soft” real-time systems. Hard real-time:A system that can meet the desired deadlines at all times (100 percent), even under a worst-case system load. In hard real-time systems, missing a deadline, even a single time, can have fatal consequences. Some examples are airbag systems Soft real-time: A system that can meet the desired deadlines on average. Some examples are online audio/video broadcasts. A real-time system does not mean faster performance. In fact, a real-time system may or may not lead to deterioration in performance. Application developers who think they need a realtime system for better performance of their application can actually get the performance they require by simply upgrading their hardware with faster processors, RAM, high speed buses, etc. 1.3 Differences 1.3.1 OS and RTOS Scheduling [2] Scheduling is the method by which threads, processes or data flows are given access to system resources such as processor time, communications bandwidth. Goals for Scheduling in OS are Utilization/Efficiency: keep the CPU busy 100% of the time with useful work Throughput: maximize the number of jobs processed per hour. Turnaround time: from the time of submission to
  • 9. MSRSAS - Postgraduate Engineering and Management Programme - PEMP the time of completion, minimize the time batch users must wait for output waiting time: Sum of times spent in ready queue - Minimize this. Commonly used OS scheduler disciplines are Preemptive Scheduling, FIFO,SJF and round robin scheduling. OS is time driven scheduling. RTOS is an operating system that guarantees a certain capability within a specified time constraint, hence an RTOS uses advanced scheduling algorithms. Commonly used RTOS scheduling algorithms are Long-term scheduling, Medium-term scheduling, Short-term scheduling and commonly used RTOS scheduler disciplines are Pre-emptive Scheduling and Earliest Deadline First (EDF). In RTOS scheduling is triggered by events. 1.3.2 RTOS and Linux system [3] Table 1. 1 RTOS vs Linux RTOS Linux RTOS is a specially designed TYPE of Linux is the name given to a specific operating Operating System system Best suited for embedded systems Linux isn’t always the best OS to use in embedded systems Linux is that it is slower than RTOS solutions on RTOS is faster the same hardware RTOS world where developers might Linux has the same skill separation specialise in Board Support Packages (BSPs), device drivers or applications RTOS application developers work best with RTOS BSP and device driver developers are userspace applications well suited to working in the Linux kernel RTOS developers are used to working on Embedded Linux tools are Open Source and run Windows development hosts on UNIX/Linux development hosts Its not scalable It has scalability property It is time deterministic It may or may not be time deterministic 1.4 Approaches for making Linux as an RTOS [4] There have been many attempts over the past several years to improve the real-time performance of Linux so that the benefits, such as open source software availability, can be used for real-time applications. There are two basic approaches to this: a preempt kernel and the real-time core. Embedded RTOS 9
  • 10. MSRSAS - Postgraduate Engineering and Management Programme - PEMP 1.4.1 Pre-empt kernel approach In the preempt kernel approach, the Linux kernel is modified to reduce the amount of time the kernel spends in nonpreemptible sections of code. Because this approach requires the modification of the Linux kernel (via a patch) to achieve minimized nonpreemptive paths, it is an ongoing effort and potentially requires time-consuming revalidation whenever a patch is made. Many open source projects have been formed to create a low-latency kernel using a variety of preemption approaches. The most significant project was started by Ingo Molnar, and is being included in the standard Linux kernel over time. But there are certainly benefits to this approach. The most notable is the PREEMPT_RT project that is widely considered to be "mainstream Linux" and the quality and maturity is improving over time. Many code paths in the kernel (such as device drivers) are being modified in the mainstream code to support preemption. 1.4.2 Real-time executive approach With the real-time executive approach, a small real-time kernel coexists with the Linux kernel. This real-time core uses a simple real-time executive that runs the non-real-time Linux kernel as its lowest priority task and routes interrupts to the Linux kernel through a virtual interrupt layer. All interrupts are initially handled by the core and are passed to standard Linux only when there are no real-time tasks to run. Real-time applications are loaded in kernel space and receive interrupts immediately, giving near hardware speeds for interrupt processing. On the other hand, a real-time core is not a part of the standard Linux operating system and is not licensed by the General Public License. It is immediately capable of providing a guaranteed hard real-time environment for appropriately written applications within a Linux environment. 1.5 Use of Linux kernel work queues for making it an RTOS [5] Interrupt latency is a key factor in the performance of a system. Work queues are one of several tools available to the driver writer to avoid doing time-consuming work when interrupts are disabled. Linux included, device drivers typically divide the work of processing interrupts into two parts or halves. The first part, the top half, is the familiar interrupt handler, which the kernel invokes in response to an interrupt signal from the hardware device. To facilitate small and fast interrupt handlers, the second part or bottom half of interrupt handling is used to defer as much of the work as possible away from the top half and until a later time. The bottom half runs with all interrupts enabled hence, the real work takes place in the bottom half. Linux offers many mechanisms for implementing bottom halves. Currently, the 2.6 kernel provides softirqs, tasklets and work queues as available types of bottom halves. Embedded RTOS 10
  • 11. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Work queues are interesting for two main reasons. First, they are the simplest to use of all the bottom-half mechanisms. Second, they are the only bottom-half mechanism that runs in process context; thus, work queues often are the only option device driver writers have when their bottom half must sleep. In addition, the work queue mechanism is brand new, and new is cool. The Work Queue Interface is given in the appendix A 1.6 Conclusion A debate on determining whether to use an RTOS or Linux to meet real-time requirements is done. Moving to Linux has some key advantages in cost and scale and can provide significant advantages in many situations. In this part difference between Linux and RTOS, and different approaches to made Linux as an RTOS is explained. Embedded RTOS 11
  • 12. MSRSAS - Postgraduate Engineering and Management Programme - PEMP PART-B CHAPTER 2 Design of DCGS 2.1 Introduction Distributed Common Ground System (DCGS) is considered the backbone of the networkcentric battlefield, providing access to time-sensitive, actionable intelligence, surveillance, and reconnaissance (ISR) data. In an environment in which information can be the difference between life and death, cloud computing and the rapid access to critical data and tools it offers might never have been more important. The DCGS program establishes the core framework for a worldwide distributed, network centric, system-of-systems architecture that conducts collaborative intelligence operations and production. The first tactical cloud operating in Afghanistan, the Army’s Distributed Common Ground System (DCGS-A) pools intelligence collected from the beginning of the war in Iraq , aggregated from various databases for wider, faster and easier access and decision-making. 2.2 literature survey Defence Department's effort to establish an Internet like, global intelligence sharing network across the military services and defence intelligence agencies is the Distributed Common Ground System (DCGS). DCGS continues to progress rapidly and has gained greater support across the department. DCGS is being used by different wings of army with appropriate extensions of A army, N navy etc. As the Intelligence Surveillance and Reconnaissance (ISR) component of Battle Command, DCGS provides the Commander, faster and more complete situational awareness enabling better understanding of the operational environment. This increased situational awareness allows the Commander to fight in ways that exceed the historical limitations through the following three interrelated main ideas: 1. Increased situational awareness reduces risk for the Commander when executing missions. 2. A flattened network enables Commanders greater access to information historically only available to Corps and above echelons. 3. Providing Commanders with unprecedented access to the Intelligence Enterprise affords the greatest impact at the lowest level. The capabilities of DCGS align the centre of gravity shift from the division to the brigade combat team (BCT) with increased accessibility to critical information to fulfil the mission requirements. The accessibility to previously restricted information provides the Commander at the lowest level the capability to leverage the vast intelligence enterprise to better assess the current operational environment and to receive actionable intelligence in a timely manner. Previously, Embedded RTOS 12
  • 13. MSRSAS - Postgraduate Engineering and Management Programme - PEMP collection, processing, and analysis from a stove-piped process restricted critical information from most Commanders, particularly at brigade and below. Consequently, their decisions, often made without the critical information, came with high risk. DCGS reduces that high risk and enables the Commanders to better drive combat operations. The system comprises information gleaned from various types of reports including patrol and incident debriefings, improvised explosive device operations, civil military, and handheld reports from the field that have been filed in databases such as the Combined Information Data Network Exchange and Tactical Ground Reporting system. In conjunction with the three main ideas, DCGS, through system configuration and application, enables the Commander to meet seven of his Army Tasks. A primary function is the intelligence war fighting function (IWF). The IWF is the flexible and adjustable activity to generate knowledge of and products portraying the enemy and the environmental features required to plan, prepare, execute, and assess operations. The personnel and organizations within the IWF conduct four primary tasks that facilitate the Commander’s visualization and understanding of the threat and the environment. These tasks are interactive and often take place simultaneously throughout the intelligence process. DCGS-A supports the following Army tasks and mission areas a.) Support to situational understanding (and all sub-tasks). b.) Support to strategic responsiveness (and all sub-tasks). c.) Conduct Intelligence, Surveillance and Reconnaissance (and all sub-tasks). d.) Provide Intelligence Support to Effects (and all sub-tasks). Figure2.1 graphically illustrates the process in with DCGS-A facilitates. Figure 2. 1 Conceptual diagram of DCGS (generalized)[6] Embedded RTOS 13
  • 14. MSRSAS - Postgraduate Engineering and Management Programme - PEMP The DCGS-A fielding of various configurations extends across BCT, fires, maneuver enhancement, Battlefield Surveillance Brigade (BFSB), aviation and sustainment organizations. The fixed, mobile, and embedded configurations allow Commanders to have a better awareness and enable understanding of the operational environments. FIXED: The fixed configuration leverages the power and stability of sanctuary for the most complex processing and analytic tasks. Additionally, it provides the greatest historical data repository. The fixed DCGS-A configurations facilitate reach and split-based operations by providing the “heavy lifting” intelligence analysis and strategic planning from stationary locations. MOBILE: The mobile configuration of DCGS-A provides a tactical, deployable capability to deliver responsive, forward support to Commanders from BN through operational headquarters. Analytical tools, sensor inject, data storage, and integration with other BCS are the highlights of the Mobile configuration. The configuration is the “access” point or intelligence service provider for ISR data and information in theater. Mobile DCGS-A provides a wide range of ISR capabilities including direct downlink of select DCGS baseline sensors, robust tasking, posting, processing, using (TPPU) tools, and advance ISR analysis capabilities directly support tactical and force protection operations. DCGS-A Mobile has the capability of receiving “plug” augmentation for increased capability while remaining connected to various networks through provided communications. EMBEDDED: The embedded DCGS-A software on BCS enables the connection of the intelligence enterprise with the battle command network. Embedded software provides battalion and company intelligence efforts unprecedented access to data never before available. Surveillance and reconnaissance collected from non military intelligence sources was not available to the intelligence enterprise. The embedded software provides the shared access to both battle command and the intelligence enterprise. This ability enables a more complete picture of the operational environment to the commander. 2.2.1 Sensors system [7] The ability to integrate data from sensors with different characteristics offers the potential of significant performance improvements over what could be achieved from each sensor separately. Here list of sensors associated with the exacting DCGS system. The Guardrail Common Sensor (GRCS) system is the Army’s corps-level airborne signal intelligence (SIGINT) collection, location and dissemination system providing tactical commanders near-real-time targeting information. The GRCS systems consist of seven to 12 aircraft, depending on the system, that normally fly operational missions in sets of two or three aircraft providing near- Embedded RTOS 14
  • 15. MSRSAS - Postgraduate Engineering and Management Programme - PEMP realtime SIGINT and targeting to tactical commanders with emphasis on deep battle and follow-on forces attack support. Key features include integrated communications intelligence (COMINT) and electronic intelligence (ELINT) reporting, enhanced signal classification and recognition, near-realtime direction finding, precision emitter location and an advanced integrated cockpit. Primary capabilities include integrated signals exploitation, enhanced signal classification and recognition, fast direction finding, precision emitter location and advanced integrated avionics. Interoperable data links provide microwave connectivity between the aircraft and the integrated processing facility (IPF). The Prophet system (three-block acquisition approach: Blocks I, II and III) is the division, brigade combat team (BCT), Stryker brigade combat team (SBCT) and armored cavalry regiment (ACR) principal ground tactical signals intelligence (SIGINT) and electronic warfare (EW) system that has been designed to support the Army vision, transformation and unit of action battlespace. Prophet detects, identifies and locates enemy electronic emitters and provides enhanced situational awareness and actionable 24-hour information for the warfighter throughout the division, ACR and BCT areas of operations. Prophet is made up of a vehicular SIGINT receiver mounted on a Humvee on the battlefield, plus a dismounted manpack SIGINT version for airborne insertion or early entry into the battlespace to support rapid reaction contingency and antiterrorist operations. Army night-vision and sensor programs and activities include day/night, allweather mobility and engagement sensors; all-weather imagery; passive and radar target acquisition sensors; artillery and mortar- locating radars; and advanced sensors for the Army’s Future Force. These systems provide critical, on-the-ground, direct support to base station. One key area is thermal sensors, which dramatically increase the lethality and survivability of Army soldiers. These sensors read the heat signature from distant objects, such as personnel or vehicles, day or night, penetrating smoke, fog and obscurants. 2.3 Identification of functionalities DCGS is the ISR component of the modular and future force BCS and the Army’s primary system for ISR tasking of sensors, processing of data, exploitation of data, and dissemination of intelligence information. DCGS provides critical battle information about the threat, weather, and terrain at all echelons. DCGS will provide the capabilities necessary for Commanders to access information, task organic sensors, and synchronize non-organic sensor assets with their organic assets. These services will be shared by Commanders across an enterprise (provided by the Embedded RTOS 15
  • 16. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Network-Centric Enterprise Services (NCES)) using the DCGS Integration Backbone (DIB) to enhance interoperability of ISR information DCGS will provide continuous acquisition and synthesis of data and information from Joint, Interagency, Intergovernmental, and Multi-national sources that will permit Commanders to have an updated and accurate picture of the operational environment. This will allow Commanders to maximize their combat power and enhance their ability to operate in an unpredictable and changing environment throughout the operational spectrum. Here communication between soldier, commander (head quarters) and air force plane is highlighted. Cloud soilder's node Army commander's office node Airforce node Figure 2. 2 Conceptual diagram of DCGS(designed) The whole system is divided in to three nodes. One node is operated by the soldier from Warfield. After pressing start button on the soldier’s node, it prompts to authenticate by thumb impression. Thumb impression will authenticate the person and associated data gives a signal to start. In the battle field to know the location of the each soldier is essential. To fulfil this requirements one GPS module is assigned in the device. Basically this device can be a device like a tablet which includes the GPS, 3G, Touch screen, temperature sensor. For reading the temperature of the battlefield a temperature sensor is embedded with device. To be updated with the live situation one camera is also embedded in device which can pick snaps and send this information to the main unit. After getting all the information from the various sensors, device uploads the data to the cloud by using the GSM modem. The other node is at the head quarter which is capable of retrieving all the data. At the receiver side all real time data will be retrieved by the accessing the cloud. To access this cloud authentication is required. In some scenarios, army which is on ground need the services from the air force. To handle this situation one facility is added in the designed system is the “service from”. By using this facility army can check the current location of air force & generate a service request for air force. Embedded RTOS 16
  • 17. MSRSAS - Postgraduate Engineering and Management Programme - PEMP This reinforce task asks the location of the service and the time of service from the army. Figure 2.2 shows the functional block diagram of the designed system. 2.4 Requirement specifications for the DCGS To achieve full-fledged functionality of the DCGS requirements of the system are mention here. At the initial stage for storing and retrieving the data on the cloud fast wireless network connectivity is essential. The speed of this wireless is network is enough capable to handle live videos. As the best option of this requirement any of 3G network is recommended, which has good connectivity under the area of surveillance. Table 2.1 shows the Hardware specification and arrangement of the hardware for the DCGS. Table 2. 1 Hard ware requirements for DCGS Requirement No. Sensor Detail Place for Sensor Propose Requirements for soldier node HWR_1 GPS module Should be embedded Basic idea behind this in tablet sensor is to send location of the soldier to the cloud. HWR_2 Temperature sensor Should embedded in This sensor is used to tablet sense the temperature of the present location HWR_3 Camera Should embedded in This is user to transmit tablet live Video/images to the cloud HDR_4 One tablet Should be with This Plays major roll soldiers on the battle in communicating with field the commander and soldier. This programmed like is it will retrieve all the data and send it on the cloud HRD_5 Thumb detector impression Should embedded in This is responsible to tablet authentication of the solider Embedded RTOS 17
  • 18. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Requirements for commander’s node HRD_6 Computer with internet Any ware To retrieve all the data connection Requirements for Air force node HRD_7 One tablet Any ware This device is used to receive the service request from cloud which is sent by the army 2.5 Different tasks associated with DCGS Inter process communication (IPC) is a set of programming interfaces that allow to coordinate activities among different program/processes that can run concurrently. This allows a program/process to talk with each other by using some set of rules. Here nine process has been identified which are running on the DCGS are described by the table 2.3.There are couple of ways to achieve IPC/RPC. Here, internet cloud based shared data structure has been used to pass data from one node to another. Table 2. 2 Required processes for DCGS Process ID Process node Process Process Ignited Process description iteration time Processes at the solders’ node PID_1 soldiers node Single time Auto This process is providing when time of security to the device by start-up. checking for thumb impression of the user PID_2 soldier node Infinite time Auto At every time this process until life spam reads location data which of device is sent by the GPS receiver and update it on cloud PID_3 Soldier’s node Infinite time Auto This process is responsible until life spam of device Embedded RTOS for reading and updating the current temperature of 18
  • 19. MSRSAS - Postgraduate Engineering and Management Programme - PEMP battle field on the cloud PID_4 Soldier’s node Infinite time Auto This process is responsible until life spam of device cloud. time Initiated by user This task asks about the until life spam when service is service is required for other needed from entity. if it is required it other entity PID_5 Soldier’s node for sending photos/video to Infinite make a service request and of device returns the request number to army PID_6 Soldier’s node Infinite time Auto This task will until life spam show/retrieve location data of device of air force and show to army. Processes at the commanders’ node Commander’s Infinite time This process reads all the commander on node Initiated by the data from the cloud and the requirement PID_7 displays it. of the data Processes at the Air force node PID_8 Air force node Infinite time Auto This is basically background process. This process checks the for the service request for Air force. If any of service requests is available then it will inform by giving popup. PID_9 Air force node Infinite time Auto The main purpose of this task is to take location of the air force/aircraft and send it on a cloud. Embedded RTOS 19
  • 20. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Figure 2.3 represent whole IPC/RPC scenario (data flow diagram) with appropriate data which is being communicate. In figure, inner arrows shows that process is sending the data and the outer arrow shows that process is the receiving the data. Labels associated with the arrows shows the type of the data exchange. Figure2. 3 Data flow diagram A: Location Data structure of solider troops B: Location Data structure of air force C: Tempeature data D, E: All Data structure F: Photos/video information G, H: Request data structure 2.8 Conclusion Detailed survey on distributed common ground system is done and a system with Commander, solider and air force/plane is designed as a part of this chapter. Functionalities, requirement specifications and different task for implementing DCGS with their full-fledged operations are documented. Note: This is not a real DCGS system. To Develop DCGS, it is essential to use remote procedure call which is out of scope of this document. In place of the RPC here, common data structure has been used to analyze the functionality. By the other side, data which should come from sensor is entered by the user. Embedded RTOS 20
  • 21. MSRSAS - Postgraduate Engineering and Management Programme - PEMP PART-C CHAPTER 3: Implementation of DCGS 3.1 Introduction Device which is working at the battle field should be well scheduled. In above designed if the pulse is not detected for a minute that can stop device. To implement above designed real time functionality, operating system is essential. In view of this, Vxworks is good option for time critical tasks between commander and soldier. 3.2 Program flow graph A figure 3.1 shows the programme flow graph for soldier node. At the solders node, after starting the device is will ask for the authentication by using the thumb impression. Is the impression is matched with the desired information then only this device will be activate otherwise it will again go to read the thumb. Figure 3. 1 Software flow diagram for solders node Embedded RTOS 21
  • 22. MSRSAS - Postgraduate Engineering and Management Programme - PEMP After successful completion of the thumb identification phase, device reads the current location and current temperature and image/video update; send this data to the cloud. After successful completion of these tasks it displays the current location of the air force to the screen. After this process firm ware asks the user/army man if service from the air force is required or not. If the service is required then it will asks the location of the service and time from the army person. It generates the service request on the cloud. Figure 3. 2 Software flow diagram for commander node Figure 3. 3 Software flow diagram for air force node Embedded RTOS 22
  • 23. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Figure 3.2 shows the program flow graph for the commander node. At the initial stage after starting of the device/node, user/commander has to give the thumb impression for security of the data and device. At the successful identification of the device will start reading the data from the cloud and display it into appropriate format. This is shown in figure. Figure 3.3 shows the program flow graph for the air force node. At the initial stage after starting of the device/node, air force fallow has to give the thumb impression for security of the data and device. After this stage it will search for the pending service request. If new service request is available then it pop up the user with appropriate data (location and time to be served).In the case of the no request it sync the location of the particular device (aero plane) to the cloud. 3.3 Implementation of the DCGS Here, programming language c is chosen for programming of the above designed system. Data structure associated with the cloud is used by the global deceleration. Image 3.3 shows the peace of code (Data structure) which is defined globally. There are three structures defined here. Data structure named database is used to keep record of the location of the army/solider and air force and the temperature of the battle field. Structure instance named data is created for this structure. Figure 3. 4 Data structures for DCGS The other data structure named request is used to keep track of the data related to the serving request. It will store the request number, location to be served and time (delay from current time).sev is structure instance created to access this structure. Thumb sensor sends a unique 10 bit string for each thumb impression. Structure password is used to store this thumb impression string for user. At the starting of the device each user will enter Embedded RTOS 23
  • 24. MSRSAS - Postgraduate Engineering and Management Programme - PEMP thumb to protect the device from the misuse. This thumb pattern is stored in the 1st instance of the structure named pas[1]. This is the procedure for only 1st time log in to device. Structure instance pas[2] is used to store the user entered thumb impression by the time of login. By comparing the two instances authentication of the device is achieved. Figure 3. 5 First task on target board Figure 3.5 shows the first task running of the target board. First task asks about to decide administer of the device by thumb impression. This stored the all thumb impression to 1st instance of the structure password. After accessing the thumb impression it asks user to confirm administer for device and starts/spawns first true functional task of DCGS with the priority of the 100.At this stage only one task is available for processor so priority doesn’t affect at this stage. Figure 3. 6 First true functional task The first true functional task is responsible for spawning all the tasks of the DCGS. By the starting of the task service request number is assigned to zero because by the starting no service request can possible. All the tasks with the different priority spawn from this task. This functionality runs for infinite time by using the go to statement. The first task, named tstart is created with the priority of the 1.This is the highest priority task which stores the location of the army man in the data structure. At the starting of this task it asks to authenticate the device by users thumb impression. After successfully authenticating the user, location data is stored in data structure. This is function should be permitted. To fulfil this Embedded RTOS 24
  • 25. MSRSAS - Postgraduate Engineering and Management Programme - PEMP requirement reading and storing of the data is being done by locking the task. Here in the simulation process user should enter data manually. At the scanf statement control of the programme goes to the second task due to the wait in entering of the user parameter. To achieve synchronization and avoid unwanted context switching taskSuspend () is used at the starting of all tasks. By the ending of the one task will resume the other task. So at some instance of the time only one task is in the ready queue of the Vxworks. Figure 3.7 shows the code with the above discussed mechanism. Figure 3. 7 fn_task1 Before the ending of the tfn_task1, task service is in the suspend state. By the end of fn_taks1, it will resume task named service. After executing the resume instruction for this task, context switches at this piece of code. At the initial stage it asks the user if want to generate the service or not. If the service is enabled then it asks the user to enter the location (longitude and latitude) and time (delay from current time) from the user. It stores this data to the request structure. Figure 3. 8 Service from Embedded RTOS 25
  • 26. MSRSAS - Postgraduate Engineering and Management Programme - PEMP At the end, this task will resume the temperature task which is having priority of the 15(lowest priority among all tasks in this node).This will reads the current temperature of location and send it to the data structure. Figure 3.9 shows this mechanism. Figure 3. 9 Temperature Above three tasks runs on the solider node. At the end of temperature task resumes the fn_task2.This task runs on the air force node. Initially is checks the data structure wither any service request is available or not. On the arrival of the service request it shows the location and the time of the service to the screen. If no service request is available/after serving the service request function it stores the location of the airplane to the global structure. Figure 3.20 shows the above mechanism. Figure 3. 10 Air force At the end of above task it resumes the task command. This is investigation task. Command task dose not writes anything to the global data structure. It only reads and display whole operation and service request with the location on the screen. As the back ground process, this task updates the photo library with the new arrival of the photos from the cloud. So, by the end of this process the commander’s node is updated with the all photos/videos which is recently sent by the army node. Figure 3.11 shows this mechanism. Embedded RTOS 26
  • 27. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Figure 3. 11 Command 3.4 Test cases Table 3.1 shows the test case and the description for above designed DCGS. Here all the test cases are tested and obtained result is documented along with this table. Table 3. 1 Test cases Test case Testing number Type Tc_1 Unit Pass/Fail Tested Nodes Description of the Test case Y All By the entering of the wrong password testing system should not allow the user to read/write information Tc_2 Integration Y All testing Tc_3 Unit or race condition Depends All testing Tc_4 Integration Unit Y All Unit testing Embedded RTOS Any of task should not be permitted while reading sensor and write the data to cloud Y All testing Tc_6 Check wither speed of 3g network is enough capable to handle live data testing Tc_5 While running, Should not cause dead lock By generating the service request it should update the location to be served. Y Solider and air force GPS receiver should send location with the good accuracy of 10 m 27
  • 28. MSRSAS - Postgraduate Engineering and Management Programme - PEMP 3.5 Disscution of obtained result At the first starting of the device it asks about the node admin. This phenomena shown by the figure 3.12. After setting the admin for login, it asks to re enter the particular node’s login identity. This both output is pointed by the calloutsin figure 3.12. Figure 3. 12 Asking for authentication Asking to make node admin by thumb ID By the time of login in soldiers node, asking for authentication After entering the authentication ID it enter(log in) to the node and synchronize current location of the soldier to the cloud. This phenomena is pointed by the callout in the figure 3.13. After entering the ID(thumb) its taking location of soldier Figure 3. 13 Synchronizing location of soldier After synchronization of location it asks for the service from the other entity (in this case air force) is required or not. This mechanism is shown by the figure 3.14. It is asking to enable the service from air force Figure 3. 14 Asking for service After entering the time of service program shows the service request number Figure 3. 15 Showing request number Embedded RTOS 28
  • 29. MSRSAS - Postgraduate Engineering and Management Programme - PEMP After receiving of the all the data related to the service program shows the service request number .This is pointed by the callout in figure 3.15. Reading location of air force vehical(plane). Figure 3. 16 Air force task Figure 3.16 shows the task running at the air force node. In this task, after authentication task will read the location of the plane(air force vehicle) and synchronize this data to the cloud. Retrives all collected data at commander to take decision Figure 3. 17 commanded node Figure 3.17 shows the output generated by the commanders’ task. This task will regenerate all the information and display it to take decision. Commander will forward service request to the air force department. 3.6 Conclusion DCGS system is implemented by using Vxworks RTOS which can develop in tornado IDE/Cross compiler. Software flow diagram, test cases and results are documented. Embedded RTOS 29
  • 30. MSRSAS - Postgraduate Engineering and Management Programme - PEMP CHAPTER 4 4.1 Module Learning Outcomes Basic RTOS concepts Concepts of Vxworks, ucos and osec Scheduling associated with different RTOS Creating , managing and deleting of the task under tornado IDE Synchronization mechanism and inter process communication Interrupts signals and timer under Vxworks 4.2 summary As part a of this assignment, essay is prepared on “Suitability of the Linux kernel work queues as RTOS” is created. In part b DCGS system is designed which can communicate between solider, commander and air force/air plane. This designed system is developed using Vxworks and documented as part c. Embedded RTOS 30
  • 31. MSRSAS - Postgraduate Engineering and Management Programme - PEMP References [1] Myths & Realities of Real-Time Linux Software Systems [2] http://www.edaboard.com/thread144931.html [3] Embedded Linux Best Practices, 2 December 2006 [4] Electronics Weekly's Focus on Mobile Linux [5] RTOS vs. Linux kernel workqueue - Embedded Systems and Real-Time OS [6]https://publicintelligence.net/army-distributed-common-ground-system-dcgs-acommander%E2%80%99s-handbook/ [7]http://www3.ausa.org/webpub/DeptGreenBook.nsf/byid/WEBP7GMWZ/$File/C4I%20Systems. pdf?OpenElement Embedded RTOS 31
  • 32. MSRSAS - Postgraduate Engineering and Management Programme - PEMP Appendix The first step in using work queues is creating a work queue structure. The work queue structure is represented by struct work_struct and defined in linux/workqueue.h. if want to create work queue structure statically, declare it directly with: DECLARE_WORK(name, function, data) This macro creates a struct work_struct and initializes it with the given work queue handler, function. The work queue handler must match the following prototype: void my_workqueue_handler(void *arg) The arg parameter is a pointer passed to work queue handler by the kernel each time it is invoked. It is specified by the data parameter in the DECLARE_WORKQUEUE() macro. By using a parameter, device drivers can use a single work queue handler for multiple work queues. The data parameter can be used to distinguish between work queues. If you do not want to create your work queue structure directly but instead dynamically, you can do that too. If you have only indirect reference to the work queue structure, say, because you created it with kmalloc(), you can initialize it using: INIT_WORK(p, function, data) In this case, p is a pointer to a work_struct structure, function is the work queue handler and data is the lone argument the kernel passes to it on invocation. Creating the work queue structure normally is done once—for example, in your driver's initialization routine. The kernel uses the work queue structure to keep track of the various work queues on the system. You need to keep track of the structure, because you will need it later. Your Work Queue Handler Basically, your work queue handler can do whatever you want. It is your bottom half, after all. The only stipulation is that the handler's function fits the correct prototype. Because your work queue handler runs in process context, it can sleep if needed. So you have a work queue data structure and a work queue handler—how do you schedule it to run? To queue a given work queue handler to run at the kernel's earliest possible convenience, invoke the following function, passing it your work queue structure: int schedule_work(struct work_struct *work) This function returns nonzero if the work was successfully queued; on error, it returns zero. The function can be called from either process or interrupt context. Sometimes, you may not want the scheduled work to run immediately, but only after a specified period has elapsed. In those situations, use: Embedded RTOS 32
  • 33. MSRSAS - Postgraduate Engineering and Management Programme - PEMP int schedule_delayed_work(struct work_struct *work, unsigned long delay) In this case, the work queue handler associated with the given work queue structure will not run for at least delay jiffies. For example, if you have a work queue structure named my_work and you wish to delay its execution for five seconds, call: schedule_delayed_work(&my_work, 5*HZ) Normally, you would schedule your work queue handler from your interrupt handler, but nothing stops you from scheduling it from anywhere you want. In normal practice, the interrupt handler and the bottom half work together as a team. They each perform a specific share of the duties involved in processing a device's interrupt. The interrupt handler, as the top half of the solution, usually prepares the remaining work for the bottom half and then schedules the bottom half to run. You conceivably can use work queues for jobs other than bottom-half processing, however. Work Queue Management When you queue work, it is executed when the worker thread next wakes up. Sometimes, you need to guarantee in your kernel code that your queued work has completed before continuing. This is especially important for modules, which need to ensure any pending bottom halves have executed before unloading. For these needs, the kernel provides a function to wait on all work pending for the worker thread: void flush_scheduled_work(void) Because this function waits on all pending work for the worker thread, it might take a relatively long time to complete. While waiting for the worker threads to finish executing all pending work, the call sleeps. Therefore, you must call this function only from process context. Do not call it unless you truly need to ensure that your scheduled work is executed and no longer pending. This function does not flush any pending delayed work. If you scheduled the work with a delay, and the delay is not yet up, you need to cancel the delay before flushing the work queue: int cancel_delayed_work(struct work_struct *work) In addition, this function cancels the timer associated with the given work queue structure—other work queues are not affected. You can call cancel_delayed_work() only from process context because it may sleep. It returns nonzero if any outstanding work was canceled; otherwise, it returns zero. Creating New Worker Threads In rare cases, the default worker threads may be insufficient. Thankfully, the work queue interface allows you to create your own worker threads and use those to schedule your bottom-half work. To create new worker threads, invoke the function: struct workqueue_struct * create_workqueue(const char *name) Embedded RTOS 33
  • 34. MSRSAS - Postgraduate Engineering and Management Programme - PEMP For example, on system initialization, the kernel creates the default queues with: keventd_wq = create_workqueue("events"); This function creates all of the per-processor worker threads. It returns a pointer to a struct workqueue_struct, which is used to identify this work queue from other work queues (such as the default one). Once you create the worker thread, you can queue work in a fashion similar to how work is queued with the default worker thread: int queue_work(struct workqueue_struct *wq, struct work_struct *work) Here, wq is a pointer to the specific work queue that you created using the call to create_workqueue(), and work is a pointer to your work queue structure. Alternatively, you can schedule work with a delay: int queue_delayed_work(struct workqueue_struct *wq, struct work_struct *work, unsigned long delay) This function works the same as queue_work(), except it delays the queuing of the work for delay jiffies. These two functions are analogous to schedule_work() and schedule_delayed_work(), except they queue the given work into the given work queue instead of the default one. Both functions return nonzero on success and zero on failure. Both functions may be called from both interrupt and process context. Finally, you may flush a specific work queue with the function: void flush_workqueue(struct workqueue_struct *wq) This function waits until all queued work on the wq work queue has completed before returning. Embedded RTOS 34