## 2 Virtualization in Wireless Sensor Networks
### Operating Systems
However, it is found that SenSmart uses more CPU cycles for same applications than the TinyOS. 3. RIOT: RIOT is an Internet of Things (IoT) specialized OS designed to support the use of diverse hardware resources in the IoT [30]. Its main aim is to provide real-time multithreading support, ensure a friendly programming model, while providing support for resource-constrained devices using low power consumption transmission technologies. RIOT is still a work in progress with no technical performance comparisons with existing Oss [30]. However, regarding VWSN, RIOT uses a realtime thread-based programming model in which different services are encoded in standard ANSI C/C++ languages to run in parallel. Thus, application tasks are encoded independently of the hardware and software in order to run them on different devices. This is a key feature required for VWSN. 4. SenSpire: SenSpire is an event-driven and thread-based programming model [39]. SenSpire adopts a multilayer abstraction approach in order to develop networked applications. Regarding VWSN, SenSpire ensures that tasks can be programmed as events or as threads. In this case, event tasks typically have higher priority than thread tasks [39]. This ensures that the OS reactsmore to external requests for system resources, thus facilitating broader use of the same system resource. It has less interrupt latency than the TinyOS, although with more overhead scheduling delay than the MANTI OS. 4. PAVENET: This is a thread-based OS for handling issues regarding preemption of multithreaded application tasks [35]. Its use is highly limited to the PIC18 microchip and cannot be deployed on other hardware platforms such as MICAZ. In order to support VWSN, the PAVENET OS supports thread-based programming and the use of C language. It is possible to ensure varying priority levels via the use of programmed multithreaded applications [35]. The main limitation of PAVENET is its lack of portability across diverse hardware platform. 5. MANTIS: MANTIS is also a thread-based embedded OS that supports concurrent execution on sensor nodes [36]. It is considered for VWSN because it is completely thread-based and typically easy to program without the need to manage low-level details of the stack/memory. The time-sliced multithreading approach ensures that several application tasks can run concurrently without using a run-to-completion model [36]. 6. LiteOS: It is a Unix-like OS particularly considered for sensor nodes [33]. It adopts a hierarchical file system with a command shell that works wirelessly. LiteOS is highly flexible for VWSN because it uses a hybrid programming model that combines both simultaneous execution of application threads and events through a call-back mechanism. Application tasks can be programmed in C language [33]. Installation and the execution of application tasks is very simple and can be accomplished by dynamically copying user applications. It is highly viable for deployment in VWSN. 7. Contiki: It is one of the most popular OSs for WSN. It provides the concept of protothreads, which combines the concepts of event-driven and thread-based approaches [29]. This allows applications and services to be dynamically uploaded/unloaded wirelessly on sensor nodes. For VWSN, Contiki is highly applicable because it supports multiple applications that are typically independent of the OS and can invariably run on top of it. Applications can be programmed in C language and updated/installed without reinstalling the entire OS. 8. TinyOS: It is an application-specific, component-based OS that is event-driven and offers a flexible platform for innovation [31]. It is written in a variant of C-language called neS. It may not necessarily be the most viable for VWSN because it is mainly event-driven. However, efforts are currently underway to create variants that may be suitable for VWSN.