Programming Memory-Constrained Networked Embedded Systems

Total Page:16

File Type:pdf, Size:1020Kb

Programming Memory-Constrained Networked Embedded Systems Swedish Institute of Computer Science Doctoral Thesis SICS Dissertation Series 47 Programming Memory-Constrained Networked Embedded Systems Adam Dunkels February 2007 Swedish Institute of Computer Science Stockholm, Sweden Copyright c Adam Dunkels, 2007 ISRN SICS-D–47–SE SICS Dissertation Series 47 ISSN 1101-1335 Printed by Arkitektkopia, V¨aster˚as, Sweden 3 Abstract Ten years after the Internet revolution are we standing on the brink of another revolution: networked embedded systems that connect the physical world with the computers, enabling new applications ranging from environmental moni- toring and wildlife tracking to improvements in health care and medicine. Only 2% of all microprocessors that are sold today are used in PCs; the re- maining 98% of all microprocessorsare used in embeddedsystems. The micro- processors used in embedded systems have much smaller amounts of memory than PC computers. An embedded system may have as little has a few hundred bytes of memory, which is thousands of millions times less than the memory in a modern PC. The memory constraints make programming embedded systems a challenge. This thesis focus on three topics pertaining to programming memory- constrained networked embedded systems: the use of the TCP/IP protocol suite even in memory-constrained networked embedded systems; simplifying event- driven programming of memory-constrained systems; and dynamic loading of program modules in an operating system for memory-constrained devices. I show that the TCP/IP protocol stack can, contrary to previous belief, be used in memory-constrainedembedded systems but that a small implementation has a lower network throughput. I present a novel programming mechanism called protothreads that is intended to replace state machine-based event-driven pro- grams. Protothreads provide a conditional blocked wait mechanism on top of event-driven systems with a much smaller memory overhead than full multi- threading; each protothread requires only two bytes of memory. I show that protothreads significantly reduce the complexity of event-driven programming for memory-constrained systems. Of seven state machine-based programs rewritten with protothreads, almost all explicit states and state transitions could be removed. Protothreads also reduced the number of lines of code with 31% on the average. The execution time overhead of protothreads is on the order i ii of a few processor cycles which is small enough to make protothreads usable even in time-critical programs. Finally, I show that dynamic linking of native code in standard ELF object code format is doable and feasible for wireless sensor networks by implementing a dynamic loading and linking mechanism for my Contiki operating system. I measure and quantify the energy consump- tion of the dynamic linker and compare the energy consumption of native code with that of virtual machine code for two virtual machines, including the Java virtual machine. The results show that the energy overhead of dynamic linking of ELF files mainly is due to the ELF file format and not due to the dynamic linking mechanism as such. The results also suggest that combinations of na- tive code and virtual machine code are more energy efficient than pure native code or pure virtual machine code. The impact of the research in this thesis has been and continues to be large. The software I have developedas part of this thesis, lwIP,uIP,protothreads, and Contiki, is currently used by hundreds of companies in embedded devices in such diverse systems as car engines, oil boring equipment, satellites, and con- tainer security systems. The software is also used both in academic research projects and in university project courses on embedded systems throughout the world. Articles have been written, by others, in professional embedded soft- ware developer magazines about the software developed as part of this thesis. The papers in this thesis are used as required reading in advanced university courses on networked embedded systems and wireless sensor networks. Sammanfattning Tio ˚ar efter Internet-revolutionen st˚ar vi nu inf¨or n¨asta revolution: kommu- nicerande inbyggda system som kopplas ihop med varandra och d¨arigenom m¨ojligg¨or helt nya till¨ampningar inom ett stort antal omr˚aden, bland annat sjukv˚ard, milj¨o¨overvakning och energim¨atning. Endast 2% av alla mikroprocessorer som s¨aljs idag anv¨ands f¨or att bygga PC-datorer; resterande 98% g˚ar till inbyggda system. Det stora flertalet av dessa system har avsev¨art mycket mindre minne ¨an en modern PC. Inbygga system har ofta endast ett par hundra bytes minne, att j¨amf¨ora med de tusen- tals miljoner bytes minne en modern PC har. Minnesbegr¨ansningarna hos de inbyggda systemen g¨or dem till en utmaning att programmera. Avhandlingen behandlar programmering av minnesbegr¨ansade kommu- nicerande inbyggda system ur tre synvinklar: m¨ojligheten f¨or mycket sm˚a minnesbegr¨ansade inbyggda system att kommunicera med hj¨alp av Internet-protokollen; f¨orenkling av h¨andelsestyrd programmering f¨or minnes- begr¨ansade system; och dynamisk programladdning i ett operativsystem f¨or kommunicerande inbyggda system. F¨or att ett inbyggt system ska kunna kommnunicera i ett n¨atverk kr¨avs att systemet kan prata n¨atverkets spr˚ak, n¨atverksprotokollet. Avhandlingen visar att det ¨ar m¨ojligt ¨aven f¨or mycket sm˚asystem att anv¨anda Internet-protokollen, TCP/IP, utan att beh¨ova g¨ora avsteg fr˚an g¨allande Internet-standarder. Dock inneb¨ar minnesbegr¨ansningarna en avsev¨ard prestandaminskning. Min pro- gramvara lwIP och uIP visar att det ¨ar m¨ojligt att koppla ihop mycket enkla inbyggda system, v¨asentligt mycket mindre ¨an man tidigare trott, med n¨atverk som anv¨ander TCP/IP-protokollen. M˚anga program f¨or minnesbegr¨ansade inbyggda system bygger p˚aen programmeringsmetod som kallas h¨andelsestyrd programmering. Med h¨andelsestyrd programmering kan man skriva program som kr¨aver mycket lite minne, men programmen blir ofta sv˚ara att b˚ade utveckla och underh˚alla. F¨or iii iv att underl¨atta programmeringen av s˚adana system har jag utvecklat en pro- grammeringsteknik som jag kallar protothreads, prototr˚adar. Protothreads g¨or h¨andelsestyrda program mindre komplexa utan att n¨amnv¨art ¨oka minnesutnyt- tjandet och med mycket sm˚aprestandaf¨orluster. Operativsystemet Contiki, som jag har utvecklat under avhandlingsarbetet, kan under drift ladda nya programmoduler,n˚agot som inte st¨ods av andra oper- ativsystem f¨or sm˚ainbyggda system. Att kunna ladda programvara under drift underl¨attar b˚ade utveckling av ny programvara och korrigering av felaktig pro- gramvara. Contiki visar att det trots resursbegr¨ansningarna ¨ar m¨ojligt att ladda programmoduler i standardformatet ELF. Jag kvantifierar energi˚atg˚angen b˚ade f¨or att ladda program med dynamisk l¨ankning och f¨or att exekvera de laddade programmen, samt j¨amf¨or energi˚atg˚angen med den f¨or motsvarande program skrivet f¨or tv˚avirtuell maskiner, bland annat en Java-maskin. Programvaran har f˚att mycket stor spridning och anv¨ands idag av hun- dratals f¨oretag i ett stort antal produkter s˚asom bilmotorer, satellitsystem, olje- borrar, TV-utrustning och l˚assystem fr˚an f¨oretag s˚asom BMW, NASA och HP. Programvaran anv¨ands i projektkurser p˚auniversitetsniv˚av¨arlden ¨over. Ar- tiklar i branchtidskrifter har skrivits, av utomst˚aende, om hur man anpassar programvaran f¨or nya mikroprocessorer. Ledande experter inom programvaru- utveckling f¨or inbyggda system har ett flertal g˚anger rekommenderat program- varan i nyhetsbrev. B˚ade forskningsartiklarna i avhandlingen och program- varan anv¨ands i undervisningen vid universitet v¨arldenover. ¨ To Castor, Morgan, Maria, and the little one we have not yet met Preface I have always loved programming. When I was a kid, my father sometimes brought home a computer that he used in teaching computer programming to mathematic teacher students at the university. The computer was an ABC80, a Swedish Z80-based computer with a BASIC interpreter and 16 kilobytes of RAM. I learned programming BASIC from modifying my father’s programs and by typing in BASIC programs from the manual. The programs were very small and I was never limited by the small amount of memory. A few years later I got my first own computer, a Commodore 64 with 64 kilobytes of RAM. I was so eager to start programming that I had already learned programming the assembly language of its 6510 processor by reading books on the subject before I got the actual computer. Over the years, I wrote a large number of assembly language programs for it and frequently felt that its memory was a limitation. Some six or seven years later I bought my first PC, with a 486 microprocessor and 16 megabytes of RAM. I quickly learned x86 assembly language but never came anywhere near writing a program that used the entire memory of the machine. In 2000 I did my master’s thesis at the Swedish Institute of Computer Sci- ence in Kista, Sweden. As part of my thesis I developed a TCP/IP stack, which I named lwIP, for transmitting vital statistics from wireless sensors on ice hockey-playersto people in the audience with laptop computers. The wire- less sensors were equipped with Mitsubishi M16c CPUs with 20 kilobytes of RAM and 100 kilobytes of ROM. I was almost back where I started! While this thesis officially was done over the past four years at the Swedish Institute of Computer Science, the real work started almost 20 years earlier. Adam Dunkels Stockholm, January 8 2007 vii Acknowledgements I first and foremost thank my colleague Thiemo Voigt, who has also been the co-adviser for this thesis, for all the moral support over the past few years, for being the committed person that he is, and for being genuinely fun to work with.
Recommended publications
  • Transactional Concurrency Control for Intermittent, Energy-Harvesting Computing Systems
    PLDI ’19, June 22ś26, 2019, Phoenix, AZ, USA Emily Ruppel and Brandon Lucia 52, 55, 82] and preserving progress [6, 7, 53]. Recent work sequences of multiple tasks to execute atomically with re- addressed input/output (I/O), ensuring that computations spect to events. Coati’s support for events and transactions were timely in their consumption of data collected from sen- is the main contribution of this work. Coati provides the sors [15, 31, 86]. However, no prior work on intermittent critical ability to ensure correct synchronization across re- computing provides clear semantics for programs that use gions of code that are too large to complete in a single power event-driven concurrency, handling asynchronous I/O events cycle. Figure 1 shows a Coati program with three tasks con- in interrupts that share state with transactional computa- tained in a transaction manipulating related variables x, y, tions that execute in a main control loop. The idiomatic use of and z, while an asynchronous event updates x and y. Coati interrupts to collect, process, and store sensor results is very ensures atomicity of all tasks in the figure, even if any task common in embedded systems. The absence of this event- individually is forced to restart by a power failure. driven I/O support in intermittent systems is an impediment This work explores the design space of transaction, task, to developing batteryless, energy-harvesting applications. and event implementations by examining two models that Combining interrupts and transactional computations in make different trade-offs between complexity and latency. an intermittent system creates a number of unique problems Coati employs a split-phase model that handles time-critical that we address in this work using new system support.
    [Show full text]
  • Beyond Interoperability – Pushing the Performance of Sensor Network IP Stacks
    Industry: Beyond Interoperability – Pushing the Performance of Sensor Network IP Stacks JeongGil Ko Joakim Eriksson Nicolas Tsiftes Department of Computer Science Swedish Institute of Computer Swedish Institute of Computer Johns Hopkins University Science (SICS) Science (SICS) Baltimore, MD 21218, USA Box 1263, SE-16429 Kista, Box 1263, SE-16429 Kista, [email protected] Sweden Sweden [email protected] [email protected] Stephen Dawson-Haggerty Jean-Philippe Vasseur Mathilde Durvy Computer Science Division Cisco Systems Cisco Systems University of California, Berkeley 11, Rue Camille Desmoulins, Issy 11, Rue Camille Desmoulins, Issy Berkeley, CA 94720, USA Les Moulineaux, 92782, France Les Moulineaux, 92782, France [email protected] [email protected] [email protected] Abstract General Terms Interoperability is essential for the commercial adoption Experimentation, Performance, Standardization of wireless sensor networks. However, existing sensor net- Keywords work architectures have been developed in isolation and thus IPv6, 6LoWPAN, RPL, IETF, Interoperability, Sensor interoperability has not been a concern. Recently, IP has Network, TinyOS, Contiki been proposed as a solution to the interoperability problem of low-power and lossy networks (LLNs), considering its open 1 Introduction and standards-based architecture at the network, transport, For wireless sensor networks to be widely adopted by and application layers. We present two complete and in- the industry, hardware and software implementations from teroperable implementations of the IPv6 protocol stack for different vendors need to interoperate and perform well to- LLNs, one for Contiki and one for TinyOS, and show that gether. While IEEE 802.15.4 has emerged as a common the cost of interoperability is low: their performance and physical layer that is used both in commercial sensor net- overhead is on par with state-of-the-art protocol stacks cus- works and in academic research, interoperability at the phys- tom built for the two platforms.
    [Show full text]
  • An Event-Driven Embedded Operating System for Miniature Robots
    This is a repository copy of OpenSwarm: an event-driven embedded operating system for miniature robots. White Rose Research Online URL for this paper: http://eprints.whiterose.ac.uk/110437/ Version: Accepted Version Proceedings Paper: Trenkwalder, S.M., Lopes, Y.K., Kolling, A. et al. (3 more authors) (2016) OpenSwarm: an event-driven embedded operating system for miniature robots. In: Proceedings of IROS 2016. 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems, 09-14 Oct 2016, Daejeon, Korea. IEEE . ISBN 978-1-5090-3762-9 https://doi.org/10.1109/IROS.2016.7759660 © 2016 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other users, including reprinting/ republishing this material for advertising or promotional purposes, creating new collective works for resale or redistribution to servers or lists, or reuse of any copyrighted components of this work in other works. Reuse Items deposited in White Rose Research Online are protected by copyright, with all rights reserved unless indicated otherwise. They may be downloaded and/or printed for private study, or other acts as permitted by national copyright laws. The publisher or other rights holders may allow further reproduction and re-use of the full text version. This is indicated by the licence information on the White Rose Research Online record for the item. Takedown If you consider content in White Rose Research Online to be in breach of UK law, please notify us by emailing [email protected] including the URL of the record and the reason for the withdrawal request.
    [Show full text]
  • What Are the Problems with Embedded Linux?
    What Are the Problems with Embedded Linux? Every Operating System Has Benefits and Drawbacks Linux is ubiquitous. It runs most internet servers, is inside Android* smartphones, and is used on millions of embedded systems that, in the past, ran Real-Time Operating Systems (RTOSes). Linux can (and should) be used were possible for embedded projects, but while it gives you extreme choice, it also presents the risk of extreme complexity. What, then, are the trade-offs between embedded Linux and an RTOS? In this article, we cover some key considerations when evaluating Linux for a new development: ■ Design your system architecture first ■ What is Linux? ■ Linux vs. RTOSes ■ Free software is about liberty—not price ■ How much does Embedded Linux cost? ■ Why pay for Embedded Linux? ■ Should you buy Embedded Linux or roll-your-own (RYO)? ■ To fork or not to fork? ■ Software patching ■ Open source licensing ■ Making an informed decision The important thing is not whether Linux or an RTOS is “the best,” but whether either operating system—or both together—makes the most technical and financial sense for your project. We hope this article helps you make an informed decision. Design Your System Architecture First It is important to design your system architecture first—before choosing either Linux or an RTOS—because both choices can limit architectural freedom. You may discover that aspects of your design require neither Linux nor an RTOS, making your design a strong candidate for a heterogeneous approach that includes one or more bare-metal environments (with possibly a Linux and/or RTOS environment as well).
    [Show full text]
  • Co-Optimizing Performance and Memory Footprint Via Integrated CPU/GPU Memory Management, an Implementation on Autonomous Driving Platform
    2020 IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS) Co-Optimizing Performance and Memory Footprint Via Integrated CPU/GPU Memory Management, an Implementation on Autonomous Driving Platform Soroush Bateni*, Zhendong Wang*, Yuankun Zhu, Yang Hu, and Cong Liu The University of Texas at Dallas Abstract—Cutting-edge embedded system applications, such as launches the OpenVINO toolkit for the edge-based deep self-driving cars and unmanned drone software, are reliant on learning inference on its integrated HD GPUs [4]. integrated CPU/GPU platforms for their DNNs-driven workload, Despite the advantages in SWaP features presented by the such as perception and other highly parallel components. In this work, we set out to explore the hidden performance im- integrated CPU/GPU architecture, our community still lacks plication of GPU memory management methods of integrated an in-depth understanding of the architectural and system CPU/GPU architecture. Through a series of experiments on behaviors of integrated GPU when emerging autonomous and micro-benchmarks and real-world workloads, we find that the edge intelligence workloads are executed, particularly in multi- performance under different memory management methods may tasking fashion. Specifically, in this paper we set out to explore vary according to application characteristics. Based on this observation, we develop a performance model that can predict the performance implications exposed by various GPU memory system overhead for each memory management method based management (MM) methods of the integrated CPU/GPU on application characteristics. Guided by the performance model, architecture. The reason we focus on the performance impacts we further propose a runtime scheduler.
    [Show full text]
  • AMNESIA 33: How TCP/IP Stacks Breed Critical Vulnerabilities in Iot
    AMNESIA:33 | RESEARCH REPORT How TCP/IP Stacks Breed Critical Vulnerabilities in IoT, OT and IT Devices Published by Forescout Research Labs Written by Daniel dos Santos, Stanislav Dashevskyi, Jos Wetzels and Amine Amri RESEARCH REPORT | AMNESIA:33 Contents 1. Executive summary 4 2. About Project Memoria 5 3. AMNESIA:33 – a security analysis of open source TCP/IP stacks 7 3.1. Why focus on open source TCP/IP stacks? 7 3.2. Which open source stacks, exactly? 7 3.3. 33 new findings 9 4. A comparison with similar studies 14 4.1. Which components are typically flawed? 16 4.2. What are the most common vulnerability types? 17 4.3. Common anti-patterns 22 4.4. What about exploitability? 29 4.5. What is the actual danger? 32 5. Estimating the reach of AMNESIA:33 34 5.1. Where you can see AMNESIA:33 – the modern supply chain 34 5.2. The challenge – identifying and patching affected devices 36 5.3. Facing the challenge – estimating numbers 37 5.3.1. How many vendors 39 5.3.2. What device types 39 5.3.3. How many device units 40 6. An attack scenario 41 6.1. Other possible attack scenarios 44 7. Effective IoT risk mitigation 45 8. Conclusion 46 FORESCOUT RESEARCH LABS RESEARCH REPORT | AMNESIA:33 A note on vulnerability disclosure We would like to thank the CERT Coordination Center, the ICS-CERT, the German Federal Office for Information Security (BSI) and the JPCERT Coordination Center for their help in coordinating the disclosure of the AMNESIA:33 vulnerabilities.
    [Show full text]
  • OS and Libraries Document Collection
    R OS and Libraries Document Collection This PDF collection describes the software packages that are provided by the Embedded Development Kit. EDK supplies libraries, board support packages, and complete operating systems, in addition to the drivers for the peripherals, to help the user develop a software platform. The following is the distribution of the software packages available for the user to include in his platform: • Xilinx Micro-Kernel (XMK) - XMK is the entity representing the collective software system formed by the following components, ♦ Standard C Libraries (libc, libm) ♦ Xilkernel - An embedded kernel ♦ Standalone Board Support Package (BSP) ♦ LibXil Net - A networking library ♦ LibXil MFS - A Memory File System ♦ LibXil File - A file I/O library ♦ LibXil FATfs - A FAT file system ♦ LibXil Profile - A Profiling library ♦ LibXil Drivers - Device drivers for supported peripherals • lwIP Libary - A third-party network library ported to Xilinx Embedded processors • VxWorks Operating System - Development of Board Support Package for the VxWorks Operating System These documents describe the Xilinx Micro-kernel, its constituent libraries and the Standalone board-support package. Documentation for the other operating systems can be found in their respective reference guides. Device drivers are documented along with the corresponding peripheral’s documentation. Getting Started The following documents are included in this collection. To view a document, click its name in the following table. Document Name Summary Xilinx Microkernel (XMK) Describes the organization of Xilinx Microkernel, its constituent component libraries, and the interactions between them and your application. LibXil Standard C Libraries Describes the software libraries available for the embedded processors. EDK 7.1i July 5, 2005 www.xilinx.com EDK OS and Libraries Document Collection 1-800-255-7778 R Document Name Summary Standalone Board Support Describes the Board Support Package (BSP), the Package lowest layer of software modules used to access processor-specific functions.
    [Show full text]
  • Coap Based Acute Parking Lot Monitoring System Using Sensor Networks
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by Directory of Open Access Journals ISSN: 2229-6948(ONLINE) ICTACT JOURNAL ON COMMUNICATION TECHNOLOGY: SPECIAL ISSUE ON ADVANCES IN WIRELESS SENSOR NETWORKS, JUNE 2014, VOLUME: 05, ISSUE: 02 COAP BASED ACUTE PARKING LOT MONITORING SYSTEM USING SENSOR NETWORKS R. Aarthi1 and A. Pravin Renold2 TIFAC-CORE in Pervasive Computing Technologies, Velammal Engineering College, India E-mail: [email protected], [email protected] Abstract it to aid in overall management and planning. Sensor networks Vehicle parking is the act of temporarily maneuvering a vehicle in to are a natural candidate for car-park management systems [6], a certain location. To deal with parking monitoring system issue such because they allow status to be monitored very accurately - for as traffic, this paper proposes a vision of improvements in monitoring each parking space, if desired. the vehicles in parking lots based on sensor networks. Most of the existing paper deals with that of the automated parking which is of cluster based and each has its own overheads like high power, less energy efficiency, incompatible size of lots, space. The novel idea in this work is usage of CoAP (Constrained Application Protocol) which is recently created by IETF (draft-ietf-core-coap-18, June 28, 2013), CoRE group to develop RESTful application layer protocol for communications within embedded wireless networks. This paper deals with the enhanced CoAP protocol using multi hop flat topology, which makes the acuters feel soothe towards parking vehicles. We aim to minimize the time consumed for finding free parking lot as well as increase the energy efficiency.
    [Show full text]
  • Tecnologías De Fuentes Abiertas Para Ciudades Inteligentes
    Open Smart Cities Tecnologías de fuentes abiertas para ciudades inteligentes www.cenatic.es Abril 2013 Open Smart Cities Tecnologías de fuentes abiertas para ciudades inteligentes Título: Open Smart Cities: Tecnologías de fuentes abiertas para ciudades inteligentes Autora: Ana Trejo Pulido Abril 2012 Edita: CENATIC. Avda. Clara Campoamor s/n. 06200 Almendralejo (Badajoz). Primera Edición. ISBN-13: 978-84-15927-13-6 Los contenidos de esta obra está bajo una licencia Reconocimiento 3.0 España de Creative Commons. Para ver una copia de la licencia visite http://creativecommons.org/licenses/by/3.0/es/ www.cenatic.es Pág. 2 de 59 Open Smart Cities Tecnologías de fuentes abiertas para ciudades inteligentes Índice 1 Introducción...............................................................................................................6 2 La Internet de las Cosas: hacia la ciudad conectada.................................................7 3 Tecnologías de código abierto para la Internet de las Cosas.....................................9 3.1 Waspmote.................................................................................................................10 3.2 Arduino......................................................................................................................10 3.3 Dash7........................................................................................................................11 3.4 Rasberry Pi................................................................................................................11
    [Show full text]
  • A Fog Storage Software Architecture for the Internet of Things Bastien Confais, Adrien Lebre, Benoît Parrein
    A Fog storage software architecture for the Internet of Things Bastien Confais, Adrien Lebre, Benoît Parrein To cite this version: Bastien Confais, Adrien Lebre, Benoît Parrein. A Fog storage software architecture for the Internet of Things. Advances in Edge Computing: Massive Parallel Processing and Applications, IOS Press, pp.61-105, 2020, Advances in Parallel Computing, 978-1-64368-062-0. 10.3233/APC200004. hal- 02496105 HAL Id: hal-02496105 https://hal.archives-ouvertes.fr/hal-02496105 Submitted on 2 Mar 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. November 2019 A Fog storage software architecture for the Internet of Things Bastien CONFAIS a Adrien LEBRE b and Benoˆıt PARREIN c;1 a CNRS, LS2N, Polytech Nantes, rue Christian Pauc, Nantes, France b Institut Mines Telecom Atlantique, LS2N/Inria, 4 Rue Alfred Kastler, Nantes, France c Universite´ de Nantes, LS2N, Polytech Nantes, Nantes, France Abstract. The last prevision of the european Think Tank IDATE Digiworld esti- mates to 35 billion of connected devices in 2030 over the world just for the con- sumer market. This deep wave will be accompanied by a deluge of data, applica- tions and services.
    [Show full text]
  • Tutorials Point, Simply Easy Learning
    Tutorials Point, Simply Easy Learning UML Tutorial Tutorialspoint.com UNIX is a computer Operating System which is capable of handling activities from multiple users at the same time. Unix was originated around in 1969 at AT&T Bell Labs by Ken Thompson and Dennis Ritchie. This tutorial gives an initial push to start you with UNIX. For more detail kindly check tutorialspoint.com/unix What is Unix ? The UNIX operating system is a set of programs that act as a link between the computer and the user. The computer programs that allocate the system resources and coordinate all the details of the computer's internals is called the operating system or kernel. Users communicate with the kernel through a program known as the shell. The shell is a command line interpreter; it translates commands entered by the user and converts them into a language that is understood by the kernel. Unix was originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Douglas McIlroy, and Joe Ossanna. There are various Unix variants available in the market. Solaris Unix, AIX, UP Unix and BSD are few examples. Linux is also a flavour of Unix which is freely available. Several people can use a UNIX computer at the same time; hence UNIX is called a multiuser system. A user can also run multiple programs at the same time; hence UNIX is called multitasking. Unix Architecture: Here is a basic block diagram of a UNIX system: 1 | P a g e Tutorials Point, Simply Easy Learning The main concept that unites all versions of UNIX is the following four basics: Kernel: The kernel is the heart of the operating system.
    [Show full text]
  • Performance Study of Real-Time Operating Systems for Internet Of
    IET Software Research Article ISSN 1751-8806 Performance study of real-time operating Received on 11th April 2017 Revised 13th December 2017 systems for internet of things devices Accepted on 13th January 2018 E-First on 16th February 2018 doi: 10.1049/iet-sen.2017.0048 www.ietdl.org Rafael Raymundo Belleza1 , Edison Pignaton de Freitas1 1Institute of Informatics, Federal University of Rio Grande do Sul, Av. Bento Gonçalves, 9500, CP 15064, Porto Alegre CEP: 91501-970, Brazil E-mail: [email protected] Abstract: The development of constrained devices for the internet of things (IoT) presents lots of challenges to software developers who build applications on top of these devices. Many applications in this domain have severe non-functional requirements related to timing properties, which are important concerns that have to be handled. By using real-time operating systems (RTOSs), developers have greater productivity, as they provide native support for real-time properties handling. Some of the key points in the software development for IoT in these constrained devices, like task synchronisation and network communications, are already solved by this provided real-time support. However, different RTOSs offer different degrees of support to the different demanded real-time properties. Observing this aspect, this study presents a set of benchmark tests on the selected open source and proprietary RTOSs focused on the IoT. The benchmark results show that there is no clear winner, as each RTOS performs well at least on some criteria, but general conclusions can be drawn on the suitability of each of them according to their performance evaluation in the obtained results.
    [Show full text]