A Survey Report on Operating Systems for Tiny Networked Sensors <s> B. MANTIS <s> Event-based programming has been highly touted in recent years as the best way to write highly concurrent applications. Having worked on several of these systems, we now believe this approach to be a mistake. Specifically, we believe that threads can achieve all of the strengths of events, including support for high concurrency, low overhead, and a simple concurrency model. Moreover, we argue that threads allow a simpler and more natural programming style. ::: ::: We examine the claimed strengths of events over threads and show that the weaknesses of threads are artifacts of specific threading implementations and not inherent to the threading paradigm. As evidence, we present a user-level thread package that scales to 100,000 threads and achieves excellent performance in a web server. We also refine the duality argument of Lauer and Needham, which implies that good implementations of thread systems and event systems will have similar performance. Finally, we argue that compiler support for thread systems is a fruitful area for future research. It is a mistake to attempt high concurrency without help from the compiler, and we discuss several enhancements that are enabled by relatively simple compiler changes. <s> BIB001 </s> A Survey Report on Operating Systems for Tiny Networked Sensors <s> B. MANTIS <s> This paper presents a survey on the current state-of-the-art in Wireless Sensor Network (WSN) Operating Systems (OSs). In recent years, WSNs have received tremendous attention in the research community, with applications in battlefields, industrial process monitoring, home automation, and environmental monitoring, to name but a few. A WSN is a highly dynamic network because nodes die due to severe environmental conditions and battery power depletion. Furthermore, a WSN is composed of miniaturized motes equipped with scarce resources e.g., limited memory and computational abilities. WSNs invariably operate in an unattended mode and in many scenarios it is impossible to replace sensor motes after deployment, therefore a fundamental objective is to optimize the sensor motes’ life time. These characteristics of WSNs impose additional challenges on OS design for WSN, and consequently, OS design for WSN deviates from traditional OS design. The purpose of this survey is to highlight major concerns pertaining to OS design in WSNs and to point out strengths and weaknesses of contemporary OSs for WSNs, keeping in mind the requirements of emerging WSN applications. The state-of-the-art in operating systems for WSNs has been examined in terms of the OS Architecture, Programming Model, Scheduling, Memory Management and Protection, Communication Protocols, Resource Sharing, Support for Real-Time Applications, and additional features. These features are surveyed for both real-time and non-real-time WSN operating systems. <s> BIB002
It is a multithreaded operating system used for WSNs. MultimodAl System for NeTworks of InSitu (MANTIS), is a light weight and energy efficient operating system. The key feature of MANTIS OS is that we can port it across multiple platforms . It is written in C and supports application developed in C. It follows a layered architecture design which is shown in figure 5 . The layered architecture of MANTIS OS provides service to the layers above. MANTIS OS supports a multitasking programming model which is pre-emptive BIB001 . To achieve a better memory management the designer of MANTIS OS logically divided the RAM in two sections BIB002 , memory for global variables which is allocated at compile time and the rest of the RAM is controlled as a heap. A stack space is allocated when a thread is created from the heap and this stack memory is free when the thread exits. MANTIS keeps the information of threads in a table managed by the kernel. The memory allocation is static for threads so it only supports a limited no of threads. The table contains the information regarding the stack boundary, the current stack pointer, size, priority level of threads, pointer to thread starting function and address of the current point to the next The scheduler in MANTIS uses a Round-Robin scheduling algorithm. The default time slice is set to 10 milliseconds however, it is configurable. Timer interrupts are used by the scheduler for context switching mechanism. The scheduler used in MANTIS is also manages energy efficiency by switching the microcontroller into sleep mode when the threads are idle and not in running state. In this OS, dynamic memory management scheme is followed at the cost of overheads. However, it does not have any memory protection mechanism. The communication protocols supported by the MANTIS OS make it flexible and provide the facility to implement customized routing protocol and transport layer protocols above the MAC layer. Hence, it allows implementing real time transport and routing protocols for WSN which can also be used in multimedia wireless sensor networks BIB002 .