19 research outputs found

    A Survey of Operating Systems Infrastructure for Embedded Systems

    Get PDF
    Since early applications in the 1960s, embedded systems have come down in price and there has been a dramatic rise in processing power and functionality. In addition, embedded systems are becoming increasingly complex. High-end devices, such as mobile phones, PDAs, entertainment devices, and set-top boxes, feature millions of lines of code with varying degrees of assurance of correctness. Nowadays, more and more embedded systems are implemented in a distributed way, a wide range of high-performance distributed embedded systems have been designed and deployed. As a lot of aspects of embedded system design become increasingly dependent on the effective interaction of distributed processors, it is clear that as much effort needs to be focused on software infrastructure, such as operating systems, with respect to how to provide functionality in order to fulfill these requirements. This technical report presents some of the approaches associated to operating systems that have been used in order to fulfill these needs.CAPES/MEC - Brasil, Project BEX3342/08-

    Reservation-based mechanisms for Mixed-Criticality Two-Wheeler Instrumentation Clusters

    Get PDF
    Electronics completely transformed the automotive industry as early vehicles were purely composed by mechanical components but the current reality is quite different. The growing acceptance for embedded electronics devices led to a significant increase in the number of microcontroller-based functions embedded in vehicles. With this increase, customer’s safety concerns raised. To ensure customers safety from the use of Electrical and Electronic (E/E) automotive equipment and systematic failures, Original Equipment Manufacturers (OEMs) and their suppliers must comply with standards such as ISO 26262, the road vehicles functional safety standard. ISO 26262 provides regulations and recommendations for the product development process. When the critical road functionalities are regarded as hard real-time, that shall complete within the defined time boundaries, coexist in an environment with soft and non real-time tasks (e.g., multimedia and connectivity activities) the system designer must use an approach to ensure that no critical activity is jeopardized in order to avoid hazardous events. To cope with the coexistence of activities with different time boundaries and criticality within the same system, this work proposes the implementation of uniprocessor reservation-based mechanisms, namely the Constant Bandwidth Server (CBS) and the Capacity Sharing and Stealing (CSS), in a real-time operating system for scheduling non-critical activities without jeopardizing the apriori guarantee of critical activities. Both schedulers use the concept of server, a task holder where a fraction of the processor bandwidth is reserved for tasks, thus relaxing the need for knowing certain properties of the tasks such as the WCET. Both implementations are detailed and compared through the implementation of task sets where both types of tasks coexist.A eletrónica transformou por completo a indústria automotiva, os primeiros veículos eram puramente compostos por componentes mecânicos, mas atualmente a realidade é significativamente diferente. O aumento da aceitação de dispositivos eletrónicos levou a um crescimento exponencial do número de funções baseadas em microcontroladores embutidos em veículos. E com este aumento, as preocupações relativas à segurança por parte dos clientes aumentaram. Para garantir a segurança de falhas sistemáticas e de falhas provenientes do uso excessivo de componentes Elétricos e Eletrónicos (E/E) de um veículo, tanto os Original Equipment Manufacturers (OEMs) como os seus fornecedores tem que cumprir com standards como por exemplo o ISO 26262, standard referente à segurança funcional de veículos rodoviários. O ISO 26262 apresenta os regulamentos e recomendações presentes em todo o processo de desenvolvimento do produto. Quando as funcionalidades críticas tambem são consideradas como hard real-time, que tem que dar resposta a estimulos externos dentro dos limites temporaris definidos, coexistem no mesmo ambiente com tarefas soft e non real-time (por exemplo, atividades de multimídia e conectividade), o system designer tem que usar abordagens especificas para continuar a garantir que nenhuma atividade hard seja comprometida, evitando assim possiveis consequencias catastróficas. Para fazer face à coexistência de atividades com difrentes niveis de criticalidade e limitações temporais dentro do mesmo sistema, este trabalho propõe a implementação de mecanismos baseados em reservas de partes de utilização do processador, nomeadamente o Constant Bandwidth Server (CBS) e o Capacity Sharing and Stealing (CSS), num sistema operativo de tempo-real para escalonar atividades não críticas sem comprometer a garantia apriori de tarefas criticas. Ambos os escalonadores usam o conceito de servidores dedicados, onde uma fração da largura de banda do processador é reservada para tarefas, relaxando assim a necessidade de conhecer certas propriedades das tarefas, como o WCET. Ambas as implementações são detalhadas e comparadas através da implementação de um conjunto de testes onde os dois tipos de tarefas coexistem

    lLTZVisor: a lightweight TrustZone-assisted hypervisor for low-end ARM devices

    Get PDF
    Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresVirtualization is a well-established technology in the server and desktop space and has recently been spreading across different embedded industries. Facing multiple challenges derived by the advent of the Internet of Things (IoT) era, these industries are driven by an upgrowing interest in consolidating and isolating multiple environments with mixed-criticality features, to address the complex IoT application landscape. Even though this is true for majority mid- to high-end embedded applications, low-end systems still present little to no solutions proposed so far. TrustZone technology, designed by ARM to improve security on its processors, was adopted really well in the embedded market. As such, the research community became active in exploring other TrustZone’s capacities for isolation, like an alternative form of system virtualization. The lightweight TrustZone-assisted hypervisor (LTZVisor), that mainly targets the consolidation of mixed-criticality systems on the same hardware platform, is one design example that takes advantage of TrustZone technology for ARM application processors. With the recent introduction of this technology to the new generation of ARM microcontrollers, an opportunity to expand this breakthrough form of virtualization to low-end devices arose. This work proposes the development of the lLTZVisor hypervisor, a refactored LTZVisor version that aims to provide strong isolation on resource-constrained devices, while achieving a low-memory footprint, determinism and high efficiency. The key for this is to implement a minimal, reliable, secure and predictable virtualization layer, supported by the TrustZone technology present on the newest generation of ARM microcontrollers (Cortex-M23/33).Virtualização é uma tecnologia já bem estabelecida no âmbito de servidores e computadores pessoais que recentemente tem vindo a espalhar-se através de várias indústrias de sistemas embebidos. Face aos desafios provenientes do surgimento da era Internet of Things (IoT), estas indústrias são guiadas pelo crescimento do interesse em consolidar e isolar múltiplos sistemas com diferentes níveis de criticidade, para atender ao atual e complexo cenário aplicativo IoT. Apesar de isto se aplicar à maioria de aplicações embebidas de média e alta gama, sistemas de baixa gama apresentam-se ainda com poucas soluções propostas. A tecnologia TrustZone, desenvolvida pela ARM de forma a melhorar a segurança nos seus processadores, foi adoptada muito bem pelo mercado dos sistemas embebidos. Como tal, a comunidade científica começou a explorar outras aplicações da tecnologia TrustZone para isolamento, como uma forma alternativa de virtualização de sistemas. O "lightweight TrustZone-assisted hypervisor (LTZVisor)", que tem sobretudo como fim a consolidação de sistemas de criticidade mista na mesma plataforma de hardware, é um exemplo que tira vantagem da tecnologia TrustZone para os processadores ARM de alta gama. Com a recente introdução desta tecnologia para a nova geração de microcontroladores ARM, surgiu uma oportunidade para expandir esta forma inovadora de virtualização para dispositivos de baixa gama. Este trabalho propõe o desenvolvimento do hipervisor lLTZVisor, uma versão reestruturada do LTZVisor que visa em proporcionar um forte isolamento em dispositivos com recursos restritos, simultâneamente atingindo um baixo footprint de memória, determinismo e alta eficiência. A chave para isto está na implementação de uma camada de virtualização mínima, fiável, segura e previsível, potencializada pela tecnologia TrustZone presente na mais recente geração de microcontroladores ARM (Cortex-M23/33)

    Early and Accurate Modeling of Streaming Embedded Applications

    Get PDF
    This thesis presents automatic generation of fast and accurate timed models of streaming embedded applications, before the complete software-hardware platform is available. We focus on streaming applications, because they tend to be the most compute-intensive applications on mobile devices. Therefore, it is critical to optimize the hardware-software platform for streaming applications, as early as possible in the design process. As such, fast, accurate and early models are essential for hardware-software optimization. Our design methodology is as follows. First, a measurement model is generated and executed, on the target processor, to predict the computation delays in an application. Next, the delays are annotated in the application code to generate a host-compiled model of the application. Our experiments show that such models can be generated and simulated at very high speed and accurately predict the computation load offered by the application. Our results with large streaming media applications, such as music and voice codecs, show that the estimation errors are less than 3.3%, while providing very high simulation speed. Therefore, using our models, embedded system designers can perform early optimizations to the system architecture with high confidence

    Embedded System Design

    Get PDF
    A unique feature of this open access textbook is to provide a comprehensive introduction to the fundamental knowledge in embedded systems, with applications in cyber-physical systems and the Internet of things. It starts with an introduction to the field and a survey of specification models and languages for embedded and cyber-physical systems. It provides a brief overview of hardware devices used for such systems and presents the essentials of system software for embedded systems, including real-time operating systems. The author also discusses evaluation and validation techniques for embedded systems and provides an overview of techniques for mapping applications to execution platforms, including multi-core platforms. Embedded systems have to operate under tight constraints and, hence, the book also contains a selected set of optimization techniques, including software optimization techniques. The book closes with a brief survey on testing. This fourth edition has been updated and revised to reflect new trends and technologies, such as the importance of cyber-physical systems (CPS) and the Internet of things (IoT), the evolution of single-core processors to multi-core processors, and the increased importance of energy efficiency and thermal issues

    Modeling of Preemptive RTOS Scheduler with Priority Inheritance

    Get PDF
    This work describes an approach to generate accurate system-level model of embedded software on a targeted Real-Time Operating System (RTOS). We design a RTOS emulation layer, called RTOS_SC, on top of the SystemC kernel. The system level model can be used for software optimization in the early stage of a processor design. The model precision is obtained by integrating key features which are provided in typical RTOS schedulers. We first discuss a case study which shows the impact of the implemented features on a priority-driven scheduler. We then present the abstraction of tasks scheduling and communication mechanisms. To validate the accuracy of our model we use the tasks response time metric with industrial-size examples such as MP3, Vocoder and Jpeg encoder. The experimental results show a significant improvement compared to existing RTOS models

    Embedded System Design

    Get PDF
    A unique feature of this open access textbook is to provide a comprehensive introduction to the fundamental knowledge in embedded systems, with applications in cyber-physical systems and the Internet of things. It starts with an introduction to the field and a survey of specification models and languages for embedded and cyber-physical systems. It provides a brief overview of hardware devices used for such systems and presents the essentials of system software for embedded systems, including real-time operating systems. The author also discusses evaluation and validation techniques for embedded systems and provides an overview of techniques for mapping applications to execution platforms, including multi-core platforms. Embedded systems have to operate under tight constraints and, hence, the book also contains a selected set of optimization techniques, including software optimization techniques. The book closes with a brief survey on testing. This fourth edition has been updated and revised to reflect new trends and technologies, such as the importance of cyber-physical systems (CPS) and the Internet of things (IoT), the evolution of single-core processors to multi-core processors, and the increased importance of energy efficiency and thermal issues

    Support for real-time applications on mobile devices

    Get PDF
    RESUMEN: Los dispositivos móviles como teléfonos o tabletas inteligentes han experimentado en los últimos años mejoras muy significativas tanto a nivel de hardware como de software. En la actualidad esta clase de dispositivos ofrecen potentes sistemas operativos enfocados principalmente a las necesidades del gran público. Entre los distintos sistemas operativos disponibles el más extendido es Android. Sin embargo, a diferencia de lo que ha ocurrido con los sistemas embebidos tradicionales, no se han llevado a cabo grandes desarrollos que permitan usar sistemas como Android en entornos donde las aplicaciones utilizadas necesiten cumplir requisitos temporales. Por este motivo, en esta tesis se ha propuesto una solución portable que se aprovecha de las arquitecturas multinúcleo de los dispositivos móviles actuales para aislar núcleos del procesador, y así ejecutar en dichos núcleos aplicaciones de tiempo real con pocas interferencias que puedan afectar a su respuesta temporal. Además, en la solución presentada las aplicaciones de tiempo real pueden coexistir y compartir datos con otras aplicaciones del sistema sin requisitos temporales gracias a los protocolos de sincronización no bloqueantes desarrollados en esta tesis.ABSTRACT: In recent years, mobile devices such as smartphones or tablets have experienced very significant improvements, both in terms of hardware and software. Nowadays, this class of devices offers powerful operating systems mainly focused on the needs of the general public. Among the different operating systems available, Android is the most widespread. However, unlike what has happened with traditional embedded systems, no major developments have been made to allow the use of systems such as Android in environments where applications normally need to meet a series of timing requirements. For this reason, in this thesis a novel solution has been proposed that takes advantage of the multicore architectures of current mobile devices to isolate processor cores. By applying this solution, it is possible to run real-time applications on the isolated cores with little interference on their response times. Furthermore, in the solution presented, real-time applications can coexist and share data with other system applications without timing requirements thanks to the non-blocking synchronization protocols developed in this thesis

    Scheduling and locking in multiprocessor real-time operating systems

    Get PDF
    With the widespread adoption of multicore architectures, multiprocessors are now a standard deployment platform for (soft) real-time applications. This dissertation addresses two questions fundamental to the design of multicore-ready real-time operating systems: (1) Which scheduling policies offer the greatest flexibility in satisfying temporal constraints; and (2) which locking algorithms should be used to avoid unpredictable delays? With regard to Question 1, LITMUSRT, a real-time extension of the Linux kernel, is presented and its design is discussed in detail. Notably, LITMUSRT implements link-based scheduling, a novel approach to controlling blocking due to non-preemptive sections. Each implemented scheduler (22 configurations in total) is evaluated under consideration of overheads on a 24-core Intel Xeon platform. The experiments show that partitioned earliest-deadline first (EDF) scheduling is generally preferable in a hard real-time setting, whereas global and clustered EDF scheduling are effective in a soft real-time setting. With regard to Question 2, real-time locking protocols are required to ensure that the maximum delay due to priority inversion can be bounded a priori. Several spinlock- and semaphore-based multiprocessor real-time locking protocols for mutual exclusion (mutex), reader-writer (RW) exclusion, and k-exclusion are proposed and analyzed. A new category of RW locks suited to worst-case analysis, termed phase-fair locks, is proposed and three efficient phase-fair spinlock implementations are provided (one with few atomic operations, one with low space requirements, and one with constant RMR complexity). Maximum priority-inversion blocking is proposed as a natural complexity measure for semaphore protocols. It is shown that there are two classes of schedulability analysis, namely suspension-oblivious and suspension-aware analysis, that yield two different lower bounds on blocking. Five asymptotically optimal locking protocols are designed and analyzed: a family of mutex, RW, and k-exclusion protocols for global, partitioned, and clustered scheduling that are asymptotically optimal in the suspension-oblivious case, and a mutex protocol for partitioned scheduling that is asymptotically optimal in the suspension-aware case. A LITMUSRT-based empirical evaluation is presented that shows these protocols to be practical
    corecore