Upload
sudharsan2020
View
252
Download
0
Embed Size (px)
Citation preview
8/14/2019 Utf-8 Iit Documentation
1/44
A COMPARATIVE
STUDY
OFOPERATING SYSTEMS
FOR
WIRELESS SENSOR NETWORKS
8/14/2019 Utf-8 Iit Documentation
2/44
WIRELESS SENSOR NETWORKS:
A wireless sensor network (WSN) is a wireless network
consisting of distributed autonomous devices (say motes) which contains
sensors to monitor environmental changes and these changes are
communicated to a remote computer at regular intervals.
MOTES:
Mote is a tiny hardware device which consists of Sensors,
Micro controller, Transceiver, Analog to Digital Converter and power
supply. It is capable of gathering information and send/receive data from
nodes in the wireless sensor network.
CHARACTERISTICS OF MOTES:
Smaller in size
Highly memory constrained devices
Low power consumption
Limited processing capacity
8/14/2019 Utf-8 Iit Documentation
3/44
OPERATING SYSTEM FOR MOTES:
Motes are simple hardware devices and they need to
communicate with each other. For this we need an Operating System to
establish communication with other motes.
Operating Systems are used in Motes to achieve the following
features
Efficient multi-tasking
Networking
Memory managementPower management
Process scheduling
Available operating system for motes is as follows:
8/14/2019 Utf-8 Iit Documentation
4/44
TINY
OPERATING
SYSTEM
8/14/2019 Utf-8 Iit Documentation
5/44
TINY OS:
Tiny OS is a free open and open source operating system for
Wireless Sensor Networks. It started as a collaboration between the
University of California and Intel Research. Tiny OS is completely
written using nesC programming language.
FEATURES OF TINY OS:
Component-Based operating system.
Event driven Operating System.Tasks are non-preemptive and run in First In First Out(FIFO) order.
Codes are linked statically.
Application and Libraries are written using nesC, a programming
language .
COMPONENT-BASED OS:
COMPONENTS:
Components can be defined as a functional part of a program that
has a predefined service. The main advantage of using component based
system is its enhanced reusability.
Eg.Linux OS is an example of a component-based operating
system .If you need an OS with only pdf viewer and media player, you can
simply chop off unnecessary components resulting in a simple OS with only
pdf viewer and media player.
8/14/2019 Utf-8 Iit Documentation
6/44
EVENT DRIVEN OS:
In Event driven OS,the flow of a program is determined by the
sequence of events.Whenever an event occours,an interrupt signal is sent to
processor and yhe interrupt is served with the corresponding Interrupt
Service Routine.
The main reason for using event driven model is to minimize
power consumption.Tiny OS sleeps most of the time and only when the
event occours it moves into active state.This ensures that Tiny OS doesn't
consume most of the battery power.
NON PREEMPTIVE SCHEDULING:
Scheduling determines the order of process execution.In
NonPreemptive scheduling,the process which comes first,gets executed
first.The processes are executed in First In First Out(FIFO) order.
The main disadvantage of Non preemptive scheduling is process
starvation.Even high priority processes must weight in queue to be
executed.If a larger process is currently executing,all other smaller process
in queue has to wait until the previous process has executed.
NOTE:
The use of non preemptive scheduling does not affect the
performance of Tiny OS significantly ,since the processes are
Light weight.
Processs starvation doesn't occur.No High priority process.
http://en.wikipedia.org/wiki/Event_(computing)http://en.wikipedia.org/wiki/Event_(computing)http://en.wikipedia.org/wiki/Event_(computing)8/14/2019 Utf-8 Iit Documentation
7/44
STATIC LINKING:
In Static linking, all the library files are included in compile
time and they are combined to form a single executable file. The main
advantage of static linking is that they require less time for execution and
the target platform need not contain the library files, since the library files
are linked to form a single executable file.
However Static Linking results in waste of memory, since the
entire library is loaded into the memory during execution .Here is a
comparison of dynamic and static linking stating the differences between
them.
STATIC LINKING DYNAMIC LINKING
Same code will be availableboth on Main memory and
system.
Single copy of code is available inthe system.
Memory space gets wasted. Programs use limited memory.Programs are executed much
faster when compared to
Dynamic linking
Program execution is slower whencompared to Static linking.
Program size is larger than adynamically linked program
Program size is smaller whencompared to Static linking.
NOTE :
Eventhough Dynamic linking is preferred to Static linking,in
Tiny OS ,program size is very small and hence using Static linking does
not have any adverse effect on Tiny OS performance.
8/14/2019 Utf-8 Iit Documentation
8/44
nesC PROGRAMMING LANGUAGE :
nesC is a programming language for developing Tiny OSapplications.
Tiny OS libraries are written using nesC programming languagenesC language is considered as an extension of C Programming
language and its syntax are similar to C.
The building blocks of Tiny OS are Components, Configurationsand Interfaces.
Let us discuss about them and how they are implemented using nesC.
COMPONENTS:
Components are discrete units with a specified function. Component can reference variables only from its local namespace. Component must not only declare the function it implements but also
declare the function it calls.
Every component has a specification.COMPONENT SPECIFICATION:
Every component must declare not only the functions it provides
(implements) but also the functions that it uses (calls).
module SmoothingFilterC {
provides command uint8_t topRead(uint8_t* array, uint8_t len);
uses command uint8_t bottomRead(uint8_t* array, uint8_t len);
}
8/14/2019 Utf-8 Iit Documentation
9/44
Here the component SmoothingFilterCdeclares both the functions
topRead(which it implements) and bottomRead(which it calls) from
another component. The components are wired together using
Configurations.
CONFIGURATION:
Configurations are used for wiring (linking) the components toform a complete program.
Configuration must specify the components (to be wired) and has apredefined format.
Configuration can provide and use interfaces.CONFIGURATION SPECIFICATION:
Here the configuration LedsC specifies the components LedsP
and PlatformLedsC, which needs to be wired. The o perator -> is used
for wiring the components. The operator arrow -> points from user to
provider.
configuration LedsC {
provides interface Leds;
}
implementation {
components LedsP, PlatformLedsC;
Init = LedsP;Leds = LedsP;
LedsP.Led0 -> PlatformLedsC.Led0;
LedsP.Led1 -> PlatformLedsC.Led1;
}
8/14/2019 Utf-8 Iit Documentation
10/44
INTERFACE:
Interface provides a set of functions that can be implemented byComponents and Configurations.
Interfaces are bidirectional in nature. They provide a set offunctions to be implemented by the inter-faces provider
(commands) and a set to be implemented by the interfaces user
(events).
Interfaces decide the functionality of the component that itimplements.
INTERFACE SPECIFICATION:
Here the interface Send provides the commands and events
which needs to be specified by the interface-provider and interface-user
respectively.
Thus we have discussed the building blocks of Tiny OS programs
like Components, Configuration and Interfaces.
interface Send {
command error_t send(message_t* msg, uint8_t len);
event void sendDone(message_t* msg, error_t error);
command error_t cancel(message_t* msg);
command void* getPayload(message_t* msg);
}
8/14/2019 Utf-8 Iit Documentation
11/44
CONTIKI
OPERATING
SYSTEM
8/14/2019 Utf-8 Iit Documentation
12/44
CONTIKI OS:
Contiki OS is a open source and highy portable operatingSystem for Wireless Sensor Networks.
Contiki OS was developed by Dr. Adam Dunkels at theSwedish Institute of Computer Science.
Contiki OS is developed for highly memory constrainedsystems.
FEATURES OF CONTIKI OS:
Contiki OS provides a multitasking kernel. Contiki OS comes with a Managed Memory Allocator to
guard against memory fragmentation.
Contiki OS uses a preemptive scheduling technique forscheduling the processes.
Contiki OS processes uses extremely light weight threadscalled Protothreads.
Typical Contiki OS program requires minimum memory of2KB RAM.
MULTITASKING KERNEL:
Multitasking is a method in which several CPU processesshare same processing resources like Central Processing Unit.
Multitasking resolves concurrency problems by scheduling the
processes.
Multitasking enhances the performance of the OS by reducingthe execution time of a process.
8/14/2019 Utf-8 Iit Documentation
13/44
MANAGED MEMORY ALLOCATOR:
Managed Memory Allocator helps to guard against memoryfragmentation.
Fragmentation refers to situation in which storage space getswasted due to improper memory allocation.
Fragmentation can be classified into three types as follows1. Internal fragmentation2. External fragmentation3. Data fragmentation
INTERNAL FRAGMENTATION:
In internal fragmentation, storage space is allocated but it isnever used.
Space remains unused inside the allocated region leading toinefficient memory management.
EXTERNAL FRAGMENTATION:
In external fragmentation, memory space becomes unusablesince its get divided into several small pieces over a period of
time.
Reasons for external fragmentation can be attributed to poormemory management algorithms.
For example, in dynamic memory allocation, a block of 1000bytes might be requested, but the largest contiguous block of
free space has only 300 bytes. The memory allocation fails in
this case.
8/14/2019 Utf-8 Iit Documentation
14/44
DATA FRAGMENTATION:
In data fragmentation, the piece of data in the memory isscattered into different pieces.
Data gets fragmented into many pieces in case of datafragmentation.
PREEMPTIVE SCHEDULING:
In preemptive scheduling, the processes are scheduled on thebasis of priority.
Whenever a high priority process comes in,the low priorityprocess is temporarily preempted(interrupted) and the high
priority process get executed.
The main advantage of preemptive scheduling is that highpriority processes gets maximum attention and they need not
wait.
However preemptive scheduling also leads to processstarvation,since the low priority process needs to wait
indefinitely until the high priority processes are executed.
PROTOTHREADS:
Protothreads are lightweight, stackless threads used by ContikiOS processes.
Protothreads don't require their own stack rather allprotothreads run on the same stack.
Protothreads are lightweight because they use very limitedmemory ( 2KB/protothread).
Protothreads do not make operating system call. Protothreads provides a linear code of execution.
8/14/2019 Utf-8 Iit Documentation
15/44
NOTE:
Sharing a stack between the processes is impossible in order toavoid concurrency problems.
In general, every thread requires it's own stack for execution. Protothreads provides linear execution and hence it becomes
difficult to use conditional statements like if() and while()
statements.
Thus we have discussed the features of Contiki OS like Managed
Memory Allocator, Preemptive Scheduling and Protothreads.
8/14/2019 Utf-8 Iit Documentation
16/44
SIMPLE
OPERARTING
SYSTEM (SOS)
8/14/2019 Utf-8 Iit Documentation
17/44
8/14/2019 Utf-8 Iit Documentation
18/44
APPLICATIONS OF DYNAMIC RECONFIGURABILITY:
Applying patches and updates while OS is running. Alter the software module, whenever it is needed. Any 3rd party modules can be installed and reconfigured
remotely.
COMPACT KERNEL INTERFACE:
SOS provides a multitasking kernel that provides1. Dynamic Memory Management2. Garbage collection3. Priority Scheduling
DYNAMIC MEMORY MANAGEMENT:
Dynamic memory management refers to allocating anddeallocating memory during run-time.
Garbage collection is a part of Dynamic memory management. Garbage collection refers to removing the objects, which are no
longer needed in a program and reclaim the memory.
Dynamic memory management increases the efficiency ofprograms and uses the memory efficiently.
8/14/2019 Utf-8 Iit Documentation
19/44
PRIORITY SCHEDULING:
Priority scheduling is a technique in which the processes arescheduled on the basis of priority.
Whenever a high priority process comes for execution, lowpriority process is preempted (interrupted).
A context switch is said to have occurred (ie) current state of thelow priority process is saved in a Process Control Block (PCB).
Once the high priority process has finished executing, the state ofthe low priority process is restored from the Process Control
Block (PCB) and the process starts executing from the state
where it was originally preempted.
The main advantage of Priority scheduling is that high priorityprocess doesn't starve and executed immediately.
CONCLUSION:
Thus Simple Operating System(SOS) provides the following
features
Dynamic Reconfiguration Multitasking kernel Dynamic Memory Management Garbage collection Priority schedulingFrom this we can infer that SOS offers exciting features for
programming memory constrained, mote class Wireless Sensor Networks.
8/14/2019 Utf-8 Iit Documentation
20/44
NANO-RK
OPERATING
SYSTEM
8/14/2019 Utf-8 Iit Documentation
21/44
NANO-RK:
Nano-RK is an operating system for mote class Wireless Sensor
Networks developed by Carnegie Mellon University. Nano-RK currently
runs on the FireFly Sensor Networking Platform as well as the MicaZ
motes.
FEATURES OF NANO-RK:
Nano-RK is a reservation based operating system. Nano-RK has a multitasking kernel. Nano-RK supports priority based preemptive scheduling. Nano-RK enforces resource usage limitations.
RESERVATION BASED OS:
Nano-RK enforces strict reservation policy. In order to ensure that the process starvation doesn't happen,
all the process must inform the Nano-RK Resource Kernel, in
advance, regarding their memory and resource
requirements.
Nano-RK kernel carefully monitors the resource usage foreach process.
Only the process that haven't depleted their resource limits areeligible for scheduling.
8/14/2019 Utf-8 Iit Documentation
22/44
PRIORITY BASED PREEMPTIVE SCHEDULING:
In Preemptive scheduling, the process in a running state can
be preempted by a process having a higher priority than the
current process.
In Nano-RK we use priority based preemptive scheduling
where the higher priority process, can preempt (interrupt) the
lower priority process and obtain access to the CPU.
The main advantage of using priority based preemptive
scheduling is to ensure that critical (high priority) processesdoesnt wait in a queue for execution.
POWER CONSUMPTION:
Nano-RK enforces power savings in order to maximize
battery life.
Nano-RK ensures that all the sensors are turned off (by
default) to reduce power consumption.
The power consumption of a typical FireFly Sensor node in
active state is around 24mW.
Thus Nano-RK is a reservation-based, energy-efficient
operating system for highly resource-constrained sensor network
environments. Nano-RK also supports multitasking and provides API for
enhancing the ease of application development.
8/14/2019 Utf-8 Iit Documentation
23/44
MANTIS
OPERATING
SYSTEM
8/14/2019 Utf-8 Iit Documentation
24/44
MANTIS OS:
Mantis is the acronym of MultimodAl system for
NeTworks of In-Situ wireless Sensors.
Mantis OS originated as a WSN project at the University of
Colarado.
Mantis OS is purely written using C Programming
language.
It is energy efficient OS for mote class Wireless Sensor
Networks.
FEATURES OF MANTIS OS:
Mantis OS supports Dynamic Reprogramming.
Mantis OS uses priority based round robin scheduling.
Mantis OS consists of a multithreaded kernel.
Mantis OS has a very small memory footprint. A simple
Mantis OS program requires only about 500 Bytes ofRAM.
Mantis OS is a highly energy efficient OS and consumes
about 20 mA current in active state.
MULTITHREADED KERNEL:
Multithreading ensures that several threads of processes can
share the same CPU resource.
Multithreading does not mean that several threads run at
the same time because CPU executes only one thread at a
time.
Since the processor can execute multiple threads within a
given time period, is referred to as Multithreading.
8/14/2019 Utf-8 Iit Documentation
25/44
Consider a process having a clock speed of3.33GHz, then
the time of execution of a thread is approximately 300s.
Multithreading implies that a processor can execute several
processes within a given time slice.
PRIORITY BASED ROUND ROBIN SCHEDULING:
Round Robin Scheduling algorithm specifies a time
quantum for each process.
All the processes are expected to complete their execution
within the given time quantum.
If the process doesnt complete its execution within the
specified time quantum, the process gets preempted and it
is sent to the tail of the queue.
Each process must repeat this, until it is completely
executed.
However, in Mantis OS we use a prioritybased round robin
scheduling.
Round Robin Scheduling is considered as one of the best
scheduling algorithms, since it ensures fairness in process
scheduling and all the process gets access to their resources.
However, there is a memory overhead in Round Robin
Scheduling Algorithm is considered as undesirable.
Memory overhead occurs in Round Robin Scheduling
Algorithm due to the following reasons
8/14/2019 Utf-8 Iit Documentation
26/44
Once the time quantum of a process is over,the process is preempted (interrupted) and
sent to the tail of the queue.
As a result, the current state of the runningprocess (context) must be saved in a Process
ControlBlock (PCB), in order to restore the
state of the process after some period of time.
As a result of frequent context switching,the states of the preempted process must be
saved frequently in the Process Control
Block.
This results in a memory overhead involvingsaving and restoring the context of the
threads.
The only difference in priority based Round Robin
scheduling than that ofnormal Round Robin scheduling is
that the processes are served on the basisoftheir priority.
ILLUSTRATION:
Consider the following table stating the processes, their
priority along with their Service Time.
8/14/2019 Utf-8 Iit Documentation
27/44
TIME QUANTUM=2s
The process of Round Robin scheduling can be illustrated
with the help of Gantt chart.
P1 P1 P2 P2 P2 P3 P4 P4
0 2 4 6 8 10 12 14 16
Here the process is P1 preempted after the given time
quantum and sent to the tail of the queue.
But how process P1immediately comes to the execution?
It should have been actually executed only after P4!
The answer for the abovequestion is priority (because
process P1 has highest priority).
Similarly other processes namely P2, P3 and P4 are
executed on the basis of priority.
PROCESSES PRIORITY SERVICE TIME
P1 1 4
P2 2 6
P3 3 2
P4 4 4
P1 P1 P2 P2 P2 P3 P4 P4
8/14/2019 Utf-8 Iit Documentation
28/44
DYNAMIC REPROGRAMMING:
Mantis OS provides remote management feature through
dynamic reprogramming.
Dynamic Reprogramming is an feature for Wireless Sensor
Network OS for the following reasons
Mote devices used in Wireless Sensor Network aredeployed in remote areas, which may remain
inaccessible to humans.
Whenever we need to modify a software module, itbecomes impossible to locate the mote and thenmodifying its software components.
There we need dynamic reprogramming, inorder toensure remote management of Wireless Sensor
Network nodes.
Mantis OS offers two modes of programming for the purpose of
dynamic reprogramming.
SIMPLER PROGRAMMINGIn simpler programming, the user simply
connects the PC directly to the Mantis node
used in the Wireless Sensor Network.
The user simply connects the node to a PC
and opens the MANTIS shell.
MOS enters a boot loader that checks for
communication from the shell.
The OS gets directly downloaded to the
MOS mode and the node is updated.
8/14/2019 Utf-8 Iit Documentation
29/44
ADVANCED PROGRAMMING:In this mode, the node doesnt require a
direct connection with the computer.
Dynamic Reconfigurability capability is
actually implemented as a system call
library, which is built into the MOS
kernel
After the call, the code is downloaded and
stored in a flash memory.
The software is completely reset and the
reprogramming is done.
Dynamic Reconfigurability is usually
performed by establishing a remote
connection with the node in the Wireless
Sensor Network.
The support for Dynamic Reconfiguration is in progress and yet to
attain a stable state.
Thus Mantis OS provides a support for Dynamic Reconfiguration
providing a remote management facility to the user and uses an
efficient Round Robin Scheduling algorithm.
8/14/2019 Utf-8 Iit Documentation
30/44
SUN SMALL
PROGRAMMABLE
OBJECT
TECHNOLOGY
8/14/2019 Utf-8 Iit Documentation
31/44
SUN SPOT:
SUN Small Programmable Object Technology is an Operating
System for Wireless Sensor Network developed by Sun
Microsystems.
SUN Small Programmable Object Technology is deployed in a
device called as Sun SPOT device.
Sun SPOT device is a small and wireless device developed by
Sun labs.
Sun SPOT device is Java platform wireless device and they are
programmed purely in Java.
8/14/2019 Utf-8 Iit Documentation
32/44
SUN SPOT DEVICE:
Sun SPOT devices are the target platform for Sun SPOT
Technology.
Sun SPOT devices are programmed in Java and any java program
needs a virtual machine for execution.
Squawk Virtual Machine is an open source Java virtual machine
for highly resource constrained Wireless Sensor Networks.
The main advantage that Sun SPOT is that, it is programmer
friendly. The programmer can use the native Java tools for
developing applications for Sun SPOT device.Sun SPOT provides a Software Development Kit, providing the
API and hence programming the Sun SPOT device becomes easy.
8/14/2019 Utf-8 Iit Documentation
33/44
SUN SPOT FEATURES:
Sun SPOT uses a compact Squawk Virtual Machine.
Sun SPOT is the only operating system for Wireless Sensor
Networks that comes with inbuilt security feature.
Sun SPOT uses Elliptic Curve Cryptography(ECC) for ensuring
the security of the data packets shared across the nodes in the
Wireless Sensor Network
Sun SPOT has a Garbage Collector and it ensures automatic
memory management.
Sun SPOT is easy to program, since it is facilitates the user to code
the programs using the familiar Java Programming Language.
SQUAWK VIRTUAL MACHINE:
Squawk Virtual Machine is an open source Java Virtual Machine
developed by Sun Microsystems.
The specialty about the Squawk Virtual Machine is that it is
majorly (not fully) written using Java Programming Language.
Squawk Virtual Machine outputs a very compact byte code. The
original output byte code is only about 35-40% ofstandard J2ME
class file.
Squawk Virtual Machine uses a Garbage Collector for managing
memory.
Squawk Virtual Machine uses a green threading model, in which
the processes are scheduled purely by the Virtual Machine and
not by the Operating System.
8/14/2019 Utf-8 Iit Documentation
34/44
GREEN THREADING MODULE:
In green threading module, the green threads (threads) are
scheduled by the Virtual Machine and not by the underlying
Operating System.
Generally the virtual memory can be differentiated into User
Space and Kernel Space.
Green threads are managed in the User Space and they do not rely
on the underlying OS.
In fact, Operating System does not know about the Green
threads.
Green Threading model uses priority scheduling to schedule the
green threads.
The main advantage of using green threaded model is due to the
following reason
Reduces the overhead on OS, since the Virtual Machinetakes care ofscheduling the green threads.
Enhances the portability of a program ,since the greenthreads doesnt depend on the Operating System and they
purely rely on Virtual Machine
8/14/2019 Utf-8 Iit Documentation
35/44
GARBAGE COLLECTOR:
Garbage collection is a memory management feature present in
Squawk Java Virtual Machine.
The term garbage refers to the unused objects (or they are no
longer needed) in the Java program.
Whenever the object is no longer referenced by the program, then
the heap space it occupies must be freed.
Garbage Collector must determine the unusedobject and reclaim
the free space.
Hence the Garbage Collector is not only responsible for automatic
memory management but also guard against memory
fragmentation (inefficient usage of memory space).
Thus we have discussed the features of Sun SPOT like
Green Threaded Model, Squawk Virtual Machine, Garbage Collection
and Preemptive Scheduling.
8/14/2019 Utf-8 Iit Documentation
36/44
COMPARATIVE STUDY OF
OPERATING SYSTEMS
FOR
WIRELESS
SENSOR NETWORKS
8/14/2019 Utf-8 Iit Documentation
37/44
POINTS OF COMPARISON:
Supported Hardware Platforms
Nature of Operating System
Nature of Scheduling
Nature of Programming Language
Dynamic Reconfigurability
Garbage collection
8/14/2019 Utf-8 Iit Documentation
38/44
SUPPORTED HARWARE PLATFORMS:
TelOS Mica2
Mote
ESB TMote
Sky
Atmel-
Atmeg
a
Oki
Arm
Fire
Fly
Sun
Spots
TINY
OS
CONTIKI
OS
SOS
NANO-RK
MANTIS
SUN
SPOT
8/14/2019 Utf-8 Iit Documentation
39/44
NATURE OF OPERATING SYSTEM:
EVENT-
DRIVEN
OS
MULTITASKING
OS
TINY OS
CONTIKI OS
SOS
NANO-RK
MANTIS
SUN SPOTS
8/14/2019 Utf-8 Iit Documentation
40/44
NATURE OF SCHEDULING:
NON
PREEMPTIVE
SCHEDULING
PRIORITY
SCHEDULING
ROUND
ROBIN
SCHEDULING
TINY OS
CONTIKI
OS
SOS
NANO-
RK
MANTIS
SUNSPOTS
8/14/2019 Utf-8 Iit Documentation
41/44
PROGRAMMING LANGUAGE:
nesC C JAVA
TINY OS
CONTIKI OS
SOS
NANO-RK
MANTIS
SUN SPOTS
8/14/2019 Utf-8 Iit Documentation
42/44
DYNAMIC RECONFIGURABILITY:
DYNAMIC
RECONGIGURANILITY
TINY OS
CONTIKI OS
SOS
NANO-RK
MANTIS
SUN SPOTS
8/14/2019 Utf-8 Iit Documentation
43/44
GARBAGE COLLECTION:
GARBAGE COLLECTION
TINY OS
CONTIKI OS
SOS
NANO-RK
MANTIS
SUN SPOTS
8/14/2019 Utf-8 Iit Documentation
44/44
CONCLUSION:
Thus we have discussed following operating systems for Wireless
Sensor Networks
We have also discussed the salient features of these operating
systems like
Nature of operating System
Nature of Linking
Nature of Process Scheduling
Nature of Programming language.
Each Operating System has its unique feature and they have their
own merits and demerits.
However the operating systems for Wireless Sensor Networks are
gradually evolving to attain stability and security.