Mobile and Embedded Device

Total Page:16

File Type:pdf, Size:1020Kb

Mobile and Embedded Device Mobile and Embedded Device Selecting an Operating System Why use an OS? ● In our previous work we have seen how to execute a number of tasks on our system ● Some of these tasks can run asynchronously – For example interrupt driven tasks ● So if we want to exploit the resources of our system efficiently we require some software support to do this – Namely an operating system Which Operating System? ● There are a number of choices when selecting an OS – Size, cost, features ● Free – FreeRTOS: http://www.freertos.org – TinyOS: http://www.tinyos.net – Chibios: http://www.chibios.org/ – eCos, uKOS, EROS, Nut/OS – Various Linux flavours ● Commercial – VxWorks: http://www.windriver.com – QNX: http://www.qnx.com – SafeRTOS: http://www.highintegritysystems.com/safertos.html – uC/OSII: http://www.micrium.com – Salvo: http://www.pumpkininc.com – INTEGRITY, VelOSity, THEOS, RMX Why FreeRTOS ● Free (Both “Speech” and “Beer”) – No Royalties, Open Source – Although documentation costs ● Lightweight – Low overhead, simple code ● Portable – ~8 major architectures officially supported, more unofficially ● Cooperative or Preemptive – We're going to be using preemptive ● Good Documentation – http://www.freertos.org – Look under FreeRTOS API – Functional docs plus code examples ● Developed by an Ex-Student! – Richard Barry, BSc CRTS What required from an OS? ● For small embedded systems they are required to be – Small memory footprint – Efficient use of resources – Fast ● We require what is normally called an 'executive' rather than an operating system – Lots of features can be missing or excluded ● No file system ● No/limited user protection ● Limited system accounting Tasks ● At a minimum the RTOS should offer the ability to run a series of tasks ● These are separate programs ● They should be able to be scheduled ● Co-ordinated ● Prioritised ● Protected Task life cycle Task states ● Running: – currently executing task ● ready: – candidate for scheduling – running task has higher or equal priority – scheduler must choose next ready task with maximum priority ● Blocked: – task waiting on an event – temporal delay or external user interaction ● Suspended: – neither running, ready, nor blocked – cannot be executed until it becomes ready again ● Idle task: – systematically created in every application – lowest priority – may have idle-task hook – e.g., to put device in low power mode FreeRTOS tasks portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode, const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters, unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask ); pvTaskCode the actual function/program to run pcName the name – only sued for debugging usStackDepth the size of the stack in words uvParameters pointers to the parameters – can be NULL UxPriority the task priority – must be greater than 0 (Idle task) pxCreatedTask a handle to the task – like a file handle, used by other functions Scheduling ● Requires tick interrupt – Time slicing ● Uses priorities ● Can be cooperative or preemptive ● Requires an idle task ● Priorities 12 10 8 Column 1 6 Column 2 Column 3 4 2 0 Row 1 Row 2 Row 3 Row 4 Semaphores ● As tasks will frequently have access to data that may be difficult to share the system will require semaphores ● These will allow certain resources to be available yet protected ● There are – Binary, mutexs and counting semaphores Queues ● As many tasks will be waiting on some of the scheduler's queues or waiting for resources or events, FreeRTOS needs to be able to provide safe and reliable access to queues ● There are a whole series of primitives that are provided for queue management which allow queues to interact with semaphores and interrupts Porting ● The ARM architecture is well supported ● There are ports to some Cortex M3 devices ● There is little in the way of devices – These must be written by the developer ● Although there are a number around ● The file FreeRTOSConfig.h is used for all the main configuration information .
Recommended publications
  • Polycom Realpresence Collaboration Server (RMX) Deployment Guide for Maximum Security Environments
    [Type the document title] Military Unique Deployment Guide Version 8.3.0.J May 2014 | DOC2714B Polycom® RealPresence® Collaboration Server (RMX) 1500/2000/4000 Deployment Guide for Maximum Security Environments Polycom Document Title 1 Trademark Information POLYCOM® and the names and marks associated with Polycom's products are trademarks and/or service marks of Polycom, Inc., and are registered and/or common law marks in the United States and various other countries. All other trademarks are the property of their respective owners. Patent Information The accompanying product may be protected by one or more U.S. and foreign patents and/or pending patent applications held by Polycom, Inc. This software has achieved UC APL certification. This document provides the latest information for security-conscious users running Version 8.3.0.J software. The information in this document is not intended to imply that DoD or DISA certifies Polycom RMX systems. Support Information For support on your Polycom systems, contact Polycom Global Services at 1-888-248-4143 or go to the Polycom Support Contact page (http://support.polycom.com/PolycomService/support/us/support/ Contact_Us.html). Documentation Feedback Polycom appreciates your help as we work to improve its product documentation. Send your comment to [email protected]. © 2014 Polycom, Inc. All rights reserved. Polycom, Inc. 6001 America Center Drive San Jose CA 95002 USA No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Polycom, Inc. Under the law, reproducing includes translating into another language or format.
    [Show full text]
  • Access Control and Operating System
    Outline (may not finish in one lecture) Access Control and Operating Access Control Concepts Secure OS System Security • Matrix, ACL, Capabilities • Methods for resisting • Multi-level security (MLS) stronger attacks OS Mechanisms Assurance • Multics • Orange Book, TCSEC John Mitchell – Ring structure • Common Criteria • Amoeba • Windows 2000 – Distributed, capabilities certification • Unix Some Limitations – File system, Setuid • Information flow • Windows • Covert channels – File system, Tokens, EFS • SE Linux – Role-based, Domain type enforcement Access control Access control matrix [Lampson] Common Assumption Objects • System knows who the user is File 1 File 2 File 3 … File n – User has entered a name and password, or other info • Access requests pass through gatekeeper User 1 read write - - read – OS must be designed monitor cannot be bypassed User 2 write write write - - Reference Subjects monitor User 3 - - - read read User process ? Resource … User m read write read write read Decide whether user can apply operation to resource Two implementation concepts Capabilities Access control list (ACL) File 1 File 2 … Operating system concept • “… of the future and always will be …” • Store column of matrix User 1 read write - Examples with the resource User 2 write write - • Dennis and van Horn, MIT PDP-1 Timesharing Capability User 3 - - read • Hydra, StarOS, Intel iAPX 432, Eros, … • User holds a “ticket” for … • Amoeba: distributed, unforgeable tickets each resource User m read write write • Two variations References – store
    [Show full text]
  • Research Purpose Operating Systems – a Wide Survey
    GESJ: Computer Science and Telecommunications 2010|No.3(26) ISSN 1512-1232 RESEARCH PURPOSE OPERATING SYSTEMS – A WIDE SURVEY Pinaki Chakraborty School of Computer and Systems Sciences, Jawaharlal Nehru University, New Delhi – 110067, India. E-mail: [email protected] Abstract Operating systems constitute a class of vital software. A plethora of operating systems, of different types and developed by different manufacturers over the years, are available now. This paper concentrates on research purpose operating systems because many of them have high technological significance and they have been vividly documented in the research literature. Thirty-four academic and research purpose operating systems have been briefly reviewed in this paper. It was observed that the microkernel based architecture is being used widely to design research purpose operating systems. It was also noticed that object oriented operating systems are emerging as a promising option. Hence, the paper concludes by suggesting a study of the scope of microkernel based object oriented operating systems. Keywords: Operating system, research purpose operating system, object oriented operating system, microkernel 1. Introduction An operating system is a software that manages all the resources of a computer, both hardware and software, and provides an environment in which a user can execute programs in a convenient and efficient manner [1]. However, the principles and concepts used in the operating systems were not standardized in a day. In fact, operating systems have been evolving through the years [2]. There were no operating systems in the early computers. In those systems, every program required full hardware specification to execute correctly and perform each trivial task, and its own drivers for peripheral devices like card readers and line printers.
    [Show full text]
  • Polycom RMX™ 2000/4000 Administrator's Guide
    Polycom RMX™ 2000/4000 Administrator’s Guide Version 5.0 | December 2009 | DOC2518B Trademark Information Polycom®, the Polycom “Triangles” logo, and the names and marks associated with Polycom’s products are trademarks and/or service marks of Polycom, Inc., and are registered and/or common-law marks in the United States and various other countries. All other trademarks are the property of their respective owners. Patent Information The accompanying product is protected by one or more U.S. and foreign patents and/or pending patent applications held by Polycom, Inc. Portions, aspects and/or features of this product are protected under United States Patent Law in accordance with the claims of United States Patent No: US 6,300,973; US 6,492,216; US 6,496,216; US 6,757,005; US 6,760,750; US 7,054,620; US 7,085,243; US 7,113,200; US 7,269,252; US 7,310,320. PATENT PENDING © 2009 Polycom, Inc. All rights reserved. Polycom, Inc. 4750 Willow Road Pleasanton, CA 94588-2708 USA No part of this document may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express written permission of Polycom, Inc. Under the law, reproducing includes translating into another language or format. As between the parties, Polycom, Inc., retains title to and ownership of all proprietary rights with respect to the software contained within its products. The software is protected by United States copyright laws and international treaty provision. Therefore, you must treat the software like any other copyrighted material (e.g., a book or sound recording).
    [Show full text]
  • Irmx Installation and Startup
    iRMX® Installation and Startup RadiSys Corporation 5445 NE Dawson Creek Drive Hillsboro, OR 97124 (503) 615-1100 FAX: (503) 615-1150 www.radisys.com 07-0683-01 December 1999 EPC, iRMX, INtime, Inside Advantage, and RadiSys are registered trademarks of RadiSys Corporation. Spirit, DAI, DAQ, ASM, Brahma, and SAIB are trademarks of RadiSys Corporation. Microsoft and MS-DOS are registered trademarks of Microsoft Corporation and Windows 95 is a trademark of Microsoft Corporation. IBM and PC/AT are registered trademarks of International Business Machines Corporation. Microsoft Windows and MS-DOS are registered trademarks of Microsoft Corporation. Intel is a registered trademark of Intel Corporation. All other trademarks, registered trademarks, service marks, and trade names are property of their respective owners. December 1999 Copyright 1999 by RadiSys Corporation All rights reserved. ii Quick Contents Section I. Choosing Your Installation Chapter 1. Introduction Section II. iRMX Installation Procedures Chapter 2. Installing on iRMX development/target systems that are PC-compatible Platforms with no DOS Chapter 3. Installing on iRMX development/target systems that are PC-compatible Platforms with DOS Chapter 4. Installing on iRMX Development/Target Systems that are Multibus II Platforms Chapter 5. Installing the iRMX III OS on Multibus I Systems Chapter 6. Installing on Windows NT systems used as iRMX development systems Section III. iRMX Getting Started Chapters Chapter 7. DOSRMX Specifics Chapter 8. iRMX for PCs Specifics Chapter 9. Getting Acquainted with the Operating System Chapter 10. Where To Go From Here Section IV. Appendices Appendix A. Installed Directories Appendix B. Limitations Appendix C. Configuration Requirements for PC Platforms Appendix D.
    [Show full text]
  • Mixed-Criticality Scheduling and Resource Sharing for High-Assurance Operating Systems
    Mixed-Criticality Scheduling and Resource Sharing for High-Assurance Operating Systems Anna Lyons Submitted in fulfilment of the requirements for the degree of Doctor of Philosophy School of Computer Science and Engineering University of New South Wales Sydney, Australia September 2018 Abstract Criticality of a software system refers to the severity of the impact of a failure. In a high-criticality system, failure risks significant loss of life or damage to the environ- ment. In a low-criticality system, failure may risk a downgrade in user-experience. As criticality of a software system increases, so too does the cost and time to develop that software: raising the criticality also raises the assurance level, with the highest levels requiring extensive, expensive, independent certification. For modern cyber-physical systems, including autonomous aircraft and other vehicles, the traditional approach of isolating systems of different criticality by using completely separate physical hardware, is no longer practical, being both restrictive and inefficient. The result is mixed-criticality systems, where software applications with different criticalities execute on the same hardware. Sufficient mechanisms are required to ascertain that software in mixed-criticality systems is sufficiently isolated, otherwise, all software on that hardware is promoted to the highest criticality level, driving up costs to impractical levels. For mixed-criticality systems to be viable, both spatial and temporal isolation are required. Current aviation standards allow for mixed-criticality systems where temporal and spatial resources are strictly and statically partitioned in time and space, allowing some improvement over fully isolated hardware. However, further improvements are not only possible, but required for future innovation in cyber-physical systems.
    [Show full text]
  • Inspector D4000™ Auto Optic Operator's Guide
    ™ Inspector D4000 Auto Optic ’s Guide Operator Manual P/N 002-7856 Revision: D September 2014 THIS MANUAL APPLIES ONLY TO FIRMWARE A.10 OR LATER Use Inspector D4000 Auto Optic Manual (Rev C) for firmware versions A.06 - A.09 Use Inspector 4000 Manual (Revision H) for earlier firmware versions A.05 and earlier RJS Technologies 701 Decatur Ave North, Suite 107 Minneapolis, MN 55427 U.S.A. +1 (763) 746-8034 www.rjs1.com Copyrights The copyrights in this manual are owned by RJS. All rights are reserved. Unauthorized reproduction of this manual or unauthorized use of the Inspector D4000 software may result in imprisonment of up to one year and fines of up to $10,000.00 (17 U.S.C. 506). Copyright violations may be subject to civil liability. Reference RJS P/N 002-7856 Revision D All Rights Reserved. ’s Guide ™ Auto Optic Operator Inspector D4000 TABLE OF CONTENTS 1.0 PREFACE 1 1.1 PROPRIETARY STATEMENT 1 1.2 STATEMENT OF FCC COMPLIANCE: USA 1 1.3 STATEMENT OF FCC COMPLIANCE: CANADA 1 1.4 CE: 1 1.5 DOCUMENTATION UPDATES 1 1.6 COPYRIGHTS 1 1.7 UNPACKING AND INSPECTION 1 1.8 INSTALLING BATTERIES 2 1.9 TECHNICAL SUPPORT 3 1.10 TRADEMARKS 3 2.0 WARRANTY 4 2.1 GENERAL WARRANTY 4 2.2 WARRANTY LIMITATIONS 4 2.3 SERVICE DURING THE WARRANTY PERIOD 4 3.0 INTRODUCTION 5 3.1 RJS INSPECTOR D4000 DESCRIPTION AND FEATURES 5 3.2 MAINTENANCE 5 3.3 TEMPERATURE SPECS 5 4.0 THE RJS INSPECTOR D4000 AUTO OPTIC 6 5.0 MAIN MENU SELECTIONS 7 5.1 CALIBRATION 7 POWER ON 7 VERIFYING THAT UNIT IS CALIBRATED 7 CALIBRATING THE UNIT 7 5.2 SCAN 8 5.3 SETUP 10 5.4 STORAGE 15
    [Show full text]
  • Operating System Verification—An Overview
    Sadhan¯ a¯ Vol. 34, Part 1, February 2009, pp. 27–69. © Printed in India Operating system verification—An overview GERWIN KLEIN Sydney Research Laboratory, NICTA,∗ Australia, School of Computer Science and Engineering, University of New South Wales, Sydney, Australia e-mail: [email protected] Abstract. This paper gives a high-level introduction to the topic of formal, interactive, machine-checked software verification in general, and the verification of operating systems code in particular. We survey the state of the art, the advantages and limitations of machine-checked code proofs, and describe two specific ongoing larger-scale verification projects in more detail. Keywords. Formal software verification; operating systems; theorem proving. 1. Introduction The fastest, cheapest and easiest way to build something is properly the first time (Parker 2007). This engineer’s credo has made it into popular literature, but it seems to be largely ignored in the world of software development. In the late 1960s a software crisis was diagnosed on a summit in the Bavarian Alps (Naur & Randell 1969): Software was getting more and more complex, and we had no structured way of building it. We ended up with projects that took significantly longer than planned, were more expensive than planned, delivered results that did not fully address customer needs, or at worst were useless. This summit in the late 1960s is widely seen as the birth of the discipline of software engineering. Now, almost 40 years later, we have come a long way. There are numerous books on software engineering, a plenitude of methodologies, programming languages, and processes to choose from.
    [Show full text]
  • Embedded Systems - ECE)​​ I -M.TECH I -Semester (AUTONOMOUS-R18
    Presentation on Principles of Distributed Embedded Systems (Embedded Systems - ECE)​​ I -M.TECH I -Semester (AUTONOMOUS-R18) Prepared by, Dr. S. Vinoth Associate Professor UNIT - I REAL TIME ENVIRONMENT 2 UNIT - I REAL-TIME ENVIRONMENT .Real-time computer system requirements .classification of real time systems .simplicity, global time .internal and external clock synchronization .real time model. Real time communication .temporal relations, dependability .power and energy awareness .real time communication .event triggered .rate constrained .time triggered. 3 What is an Embedded system? 4 What is a real-time system? . A real-time system is any information processing system which has to respond to externally generated input stimuli within a finite and specified period –the correctness depends not only on the logical result but also the time it was delivered –failure to respond is as bad as the wrong response! . The computer is a component in a larger engineering system => EMBEDDED COMPUTER SYSTEM 99% of all processors are for the embedded systems market 5 Terminology • Hard real-time — systems where it is absolutely imperative that responses occur within the required deadline. E.g. Flight control systems. • Soft real-time — systems where deadlines are important but which will still function correctly if deadlines are occasionally missed. E.g. Data acquisition system. • Real real-time — systems which are hard real-time and which the response times are very short. E.g. Missile guidance system. • Firm real-time — systems which are soft real-time but in which there is no benefit from late delivery of service. A single system may have all hard, soft and real real-time subsystems In reality many systems will have a cost function associated with missing each deadline.
    [Show full text]
  • Scalability of Microkernel-Based Systems
    Scalability of Microkernel-Based Systems Zur Erlangung des akademischen Grades eines DOKTORS DER INGENIERWISSENSCHAFTEN von der Fakultat¨ fur¨ Informatik der Universitat¨ Fridericiana zu Karlsruhe (TH) genehmigte DISSERTATION von Volkmar Uhlig aus Dresden Tag der mundlichen¨ Prufung:¨ 30.05.2005 Hauptreferent: Prof. Dr. rer. nat. Gerhard Goos Universitat¨ Fridericiana zu Karlsruhe (TH) Korreferent: Prof. Dr. sc. tech. (ETH) Gernot Heiser University of New South Wales, Sydney, Australia Karlsruhe: 15.06.2005 i Abstract Microkernel-based systems divide the operating system functionality into individ- ual and isolated components. The system components are subject to application- class protection and isolation. This structuring method has a number of benefits, such as fault isolation between system components, safe extensibility, co-existence of different policies, and isolation between mutually distrusting components. How- ever, such strict isolation limits the information flow between subsystems including information that is essential for performance and scalability in multiprocessor sys- tems. Semantically richer kernel abstractions scale at the cost of generality and mini- mality–two desired properties of a microkernel. I propose an architecture that al- lows for dynamic adjustment of scalability-relevant parameters in a general, flex- ible, and safe manner. I introduce isolation boundaries for microkernel resources and the system processors. The boundaries are controlled at user-level. Operating system components and applications can transform their semantic information into three basic parameters relevant for scalability: the involved processors (depending on their relation and interconnect), degree of concurrency, and groups of resources. I developed a set of mechanisms that allow a kernel to: 1. efficiently track processors on a per-resource basis with support for very large number of processors, 2.
    [Show full text]
  • Introduction Course Outline Why Does This Fail? Lectures Tutorials
    Course Outline • Prerequisites – COMP2011 Data Organisation • Stacks, queues, hash tables, lists, trees, heaps,…. Introduction – COMP2021 Digital Systems Structure • Assembly programming • Mapping of high-level procedural language to assembly COMP3231/9201/3891/9283 language – or the postgraduate equivalent (Extended) Operating Systems – You are expected to be competent Kevin Elphinstone programmers!!!! • We will be using the C programming language – The dominant language for OS implementation. – Need to understand pointers, pointer arithmetic, explicit 2 memory allocation. Why does this fail? Lectures • Common for all courses (3231/3891/9201/9283) void func(int *x, int *y) • Wednesday, 2-4pm { • Thursday, 5-6pm *x = 1; *y = 2; – All lectures are here (EE LG03) – The lecture notes will be available on the course web site } • Available prior to lectures, when possible. void main() – The lecture notes and textbook are NOT a substitute for { attending lectures. int *a, *b; func(a,b); } 3 4 Tutorials Assignments • Assignments form a substantial component of • Start in week 2 your assessment. • A tutorial participation mark will • They are challenging!!!! – Because operating systems are challenging contribute to your final assessment. • We will be using OS/161, – Participation means participation, NOT – an educational operating system attendance. – developed by the Systems Group At Harvard – Comp9201/3891/9283 students excluded – It contains roughly 20,000 lines of code and comments • You will only get participation marks in your enrolled tutorial. 5 6 1 Assignments Assignments • Assignments are in pairs • Don’t under estimate the time needed to do the – Info on how to pair up available soon assignments. • We usually offer advanced versions of the – ProfQuotes: [About the midterm] "We can't keep you working assignments on it all night, it's not OS.“ Ragde, CS341 – Available bonus marks are small compared to amount of • If you start a couple days before they are due, you will be late.
    [Show full text]
  • A Look at the EROS Operating System Jonathan S
    A Look at the EROS Operating System Jonathan S. Shapiro Johns Hopkins University Abstract EROS is a capability-based, secure operating system originally designed to address the needs of shared computing utilities involving mutually suspicious users. The deploy­ ment plan for the original design was to provide leased compute service to competing business entities, potentially running on a single machine. As a result, the system was structured to preserve security in the face of both hostile dynamic content and hostile users. While the EROS platform can support the efficient deployment of multilevel se­ cure environments, it is primarily focused on business security requirements. These re­ quirements often address integrity as well as security concerns. An EROS-based deploy­ ment can ensure that business-critical data is manipulated exclusively by authorized ap­ plication software, which in turn is guarded against user tampering. Simultaneously, EROS enables users to run untrusted utility software, hand private or proprietary data to that software, and be assured (within reason) that the data cannot be disclosed to the out­ side world. This paper gives a general overview of the EROS system and what it can do. The EROS research project has now ended. Further work based on the EROS system is being pursued under the CapROS project (www.capros.org). The EROS team has moved on to a successor system: Coyotos (www.coyotos.org). 1 Introduction in other publications. Others result from chains of reasoning that are omitted for reasons of space. A This paper accompanies a talk for the 2005 Libre few are opinions derived from years of in-depth Software Meeting in Dijon, France.
    [Show full text]