9 research outputs found

    Modular software architecture for flexible reservation mechanisms on heterogeneous resources

    Get PDF
    Management, allocation and scheduling of heterogeneous resources for complex distributed real-time applications is a chal- lenging problem. Timing constraints of applications may be fulfilled by a proper use of real-time scheduling policies, admission control and enforcement of timing constraints. However, it is not easy to design basic infrastructure services that allow for an easy access to the allocation of multiple heterogeneous resources in a distributed environment. In this paper, we present a middleware for providing distributed soft real-time applications with a uniform API for reserving heterogeneous resources with real-time scheduling capabilities in a distributed environment. The architecture relies on standard POSIX OS facilities, such as time management and standard TCP/IP networking services, and it is designed around CORBA, in order to facilitate modularity, flexibility and portability of the applications using it. However, real-time scheduling is supported by proper extensions at the kernel-level, plugged within the framework by means of dedicated resource managers. Our current implementation on Linux supports reservation of CPU, disk and network bandwidth. However, additional resource managers supporting alternative real-time schedulers for these resources, as well as additional types of resources, may be easily added. We present experimental results gathered on both synthetic applications and a real multimedia video streaming case study, showing advantages deriving from the use of the proposed middleware. Finally, overhead figures are reported, showing sustainability of the approach for a wide class of complex, distributed, soft real-time applications

    Contributions to the safe execution of dynamic component-based real-time systems

    Get PDF
    Traditionally, real-time systems have based their design and execution on barely dynamic models to ensure, since design time, the temporal guarantees in the execution of their functionality. Great effort is being applied nowadays to progressively develop more dynamic systems, with the target of changing during their execution and to adapt themselves to their environment. The capability to change and to reconfigure themselves represents remarkable advantages as the capability to fix errors and to add new functionality with on-line updates. This means to be able to be updated without needing to stop the service, that may imply monetary losses in many cases. Design and development techniques based on components have become popular due to the use of components, which allows simplifying the system design, code reusability and updates through the substitution of components. The target of this thesis work is to provide certain degree of dynamism to real-time systems allowing them to replace components, incorporating new functionality of fixing existing bugs. On that purpose, a component-based framework is proposed, as well as the corresponding task in charge of providing dynamism to the system. The main contribution is to provide a framework to allow safe component replacements. Safe meaning that incorrect executions of tasks are avoided even y multiple tasks are executing concurrently and making use of the same data. Also that temporal guarantees are provided for every task. This framework incorporates a generic component model with real-time threads, a components replacement model with execution times that are known and bounded, and different strategies to apply such component replacement model. Some mechanisms to maintain a seamless and safe execution, regarding concurrency, before, during, and after applying the processes in charge of replacing running components are also described. Seamless execution means that components themselves do not perform the replacements, and safe means that temporal guarantees are provided and components are not affected in their execution. Part of these mechanisms are the system schedulability analysis and the framework tasks as well as reserving the needed resources for such scheduling to be correct. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Los sistemas de tiempo real han basado tradicionalmente su desarrollo en modelos altamente predecibles ya que estos requieren garantías temporales en su ejecución. A lo largo de los años, la technología de tiempo real ha ido penetrando en diferentes campos de aplicación y ajustándose a paradigmas de desarrollo software más novedosos. Esto ha presentado y presenta en la actualidad un tremendo reto ya que estas aplicaciones suelen tener un alto grado de dinamismo, lo que entra en conflicto con la predictibilidad temporal y, en general la ejecución segura de los mismos. Hoy en dia se esta realizando un gran esfuerzo en el desarrollo de sistemas cada vez más dinamicos que permitan adaptar su estructura en tiempo de ejecución para adaptarse a entornos que presentan condiciones cambiantes. La capacidad de soportar este tipo de dinamismo presenta ventajas descatables como permitir corregir fallos y anadir funcionalidad mediante actualizaciones en caliente, es decir, poder actualizarse sin necesidad de realizar paradas en su servicio, lo que podria implicar costes monetarios en muchos casos o perdidas temporales de servicio. Por otro lado, las técnicas de diseño y desarrollo basadas en componentes se han hecho muy populares y su aplicación a los sistemas de tiempo real gana terreno día a día. Uno de los principales motivos de ellos es que el uso de componentes permite simplificar el diseño del sistema, la reutilizacion de codigo e incluso la actualizacion del mismo mediante la substitucion de componentes. En esta tesis se aborda el objetivo de proveer a los sistemas de tiempo real de cierto grado de dinamismo para poder reemplazar componentes de forma segura, que permita incorporar nuevas funcionalidades o corregir errores existentes. Para ello, en esta tesis se ha elaborado de un marco de trabajo para dar soporte a reemplazos de componentes de forma segura, entendiendo como tal que el hecho de que no se produzcan ejecuciones incorrectas debido a la ejecución concurrente de multiples tareas, asi como el garantizar los tiempos de ejecucion de cada tarea y acotar la duración temporal de los reemplazos. El marco de trabajo propuesto está basado, pues, en componentes de tiempo real, que tiene en cuenta los requisitos temporales en la ejecución de los componentes del sistema y de las tareas propias del marco que dan soporte a estos mecanismos de reemplazo. Este marco de trabajo incorpora un modelo generico de componente con tareas de tiempo real, un modelo de reemplazo de componentes cuyos tiempos de ejecucion son conocidos y limitados en tiempo y diferentes estrategias de aplicacion de dicho modelo de reemplazo de componente. Las contribuciones propuestas integran el analisis de la planificabilidad de los componentes del sistema y de las tareas del marco de componentes para permitir establecer los parámetros de reserva de los recursos necesarios para las tareas del marco. Por último, se realiza una validación empírica en la que se comprueba experimentalmente la validez del modelo tanto de forma genérica como en un escenario específico y determinando también los recursos necesarios para su implementación

    Java in eingebetteten Systemen

    Get PDF
    Moderne, objektorientierte Sprachen spielen bei der Entwicklung von Software für eingebettete Systeme bislang kaum eine Rolle. Die Gründe hierfür sind vielfältig, meist wird jedoch die mangelnde Effizienz und der größere Speicherbedarf hervorgehoben. Obwohl Java viele Eigenschaften hat, die sehr für einen Einsatz in eingebetteten Systemen sprechen, so hängt doch gerade Java vielfach immer noch das Vorurteil an, in Systemen mit beschränkter Rechenleistung und Speicher zu viele Ressourcen zu benötigen. Diese Arbeit soll dazu beitragen, diese Vorurteile abzutragen. Sie stellt insbesondere Techniken vor, die den Speicherbedarf einer JVM so gering wie möglich halten und diese effizient mit der zur Verfügung stehenden Rechenleistung umgehen lassen. Viele der dargestellten Verfahren und Algorithmen wurden in der Kertasarie VM implementiert, einer virtuellen Maschine, die speziell für den Einsatz in eingebetteten Systemen konzipiert wurde. Durch die weit verbreitete Vernetzung eingebetteter Systeme über das Internet stellt sich in vielen Fällen zudem das Problem einer modernen, abstrakten und effizienten Form der Kommunikation. Aus diesem Grund liegt der zweite Schwerpunkt dieser Arbeit auf dem Vergleich von objektorientierten Middleware-Architekturen, insbesondere von Java-RMI. Auch auf diesem Gebiet wird eine eigene, speziell an eingebettete Systeme angepasste RMI-Variante vorgestellt.Modern, object oriented languages do not play an important role when developing software for embedded systems. There are many reasons for it, most often an inadequate performance and a greater memory demand are mentioned. In spite of the fact that Java has many features suitable for embedded systems, Java often faces the prejudice to consume too much resources in systems with limited processing power and memory. This work is a contribution to diminish this prejudices. It presents techniques to limit the memory demands of a Java Virtual Machine and to effectively cope with limited computing power. Many of the presented methods and algorithms are implemented in the Kertasarie VM, a JVM designed to run in embedded systems.Due to the fact of increasing network capabilities embedded systems often face the problem of a modern, abstract and efficient communication. Therefore the second emphasis of this work is put on the comparison of object oriented middleware architectures, especially Java-RMI. An own implementation for embedded systems is also presented

    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

    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

    Communication Infrastructure for high-dynamic Parallel Kinematic Machines

    Get PDF
    Ziel dieser Arbeit ist die Konzipierung, Realisierung und Erprobung einer zentral organisierten Kommunikations-Infrastruktur zur Unterstützung von Steuerungssystemen aus dem Bereich hochdynamischer Roboteranwendungen. Dabei erfolgt die Integration aller an der Steuerung beteiligten Softwaremodule über eine einheitliche, modulare und echtzeitfähige C-Programmierschnittstelle unter dem Betriebssystem QNX Neutrino. Hintergrund dieser Arbeit ist der Sonderforschungsbereich (SFB) 562, in dem methoden- und komponentenbezogene Grundlagen zum Entwurf von Parallelrobotern erarbeitet werden. Der Einsatz von Parallelrobotern stellt dabei hohe Anforderungen an die Leistungsfähigkeit der verwendeten Robotersteuerung: Kinematisch gekoppelte Strukturen und die bei ihrer Bewegung zu berücksichtigenden Bewegungs- und Orientierungs-Singularitäten führen zu einer Steigerung des Umfangs und der Komplexität notwendiger Steuerungsfunktionalitäten; struktur- und gelenkintegrierte Sensoren erhöhen das notwendige Datenaufkommen bei dem Versuch, die kinematische Komplexität zu reduzieren; Synchronisationsanforderungen der gekoppelten Achsantriebe erfordern reaktionsschnelle Kommunikationsmechanismen; zusätzliche Anforderungen an Platziergenauigkeit, Beschleunigung und Geschwindigkeit der Arbeitsplattform liegen weit oberhalb derer serieller Roboteranwendungen. Kommerziell verfügbare Lösung für eine derartige Steuerung existieren derzeit noch nicht oder nur mit Einschränkungen Gegenstand dieser Arbeit ist zunächst die Untersuchung grundlegender Mechanismen aus den Bereichen Softwaretechnologie und Kommunikationstechnik, um eine Auswahl zur Realisierung geeigneter Funktionalitäten für Prozessorganisation, Kommunikation, Synchronisation, Konfiguration und Darstellung hinsichtlich eines passenden Steuerungssystems zu treffen. Im Hauptteil der Arbeit erfolgt die detaillierte Konzipierung sowie die Erläuterung der vollständig in Hard- und Software umgesetzten Realisierung dieser Kommunikations-Infrastruktur. Sie besteht aus drei Hauptkomponenten: Middleware MiRPA-X, Kommunikationsprotokoll IAP und Kommunikationssystem FireWire (Standard IEEE 1394). Die Verbindung bildet eine leistungsfähige Plattform, um allen in der Steuerung verwendeten Funktionsmodulen zu jeder Zeit transparente, modulare, einheitliche und echtzeitfähige Kommunikations- und Synchronisationsmechanismen zur Verfügung stellen. Die Integration erfolgte dabei soweit möglich unter Verwendung von Standardkomponenten (PC-Hardware, Betriebssystem, Programmiersprache). Innerhalb des SFB hat sich der praktische Einsatz der hier erarbeiteten Lösung als essenzieller, unverzichtbarer Bestandteil der Steuerung gezeigt, so dass ein breiterer Einsatz dieser Infrastruktur innerhalb anderer PC-basierter Robotersteuerungen außerhalb des SFB denkbar und sinnvoll erscheint.The goal of this thesis is the concept development, implementation and testing of a centrally organized communication infrastructure. It aims to support the development of control systems for high-dynamic robot applications, and thus provides a uniform, modular and real-time capable application programming interface (API) for all software modules involved. The development and application is performed using the operating system QNX Neutrino together with C/C++ programming language. The background of this thesis is the Collaborative Research Center (CRS) 562. Here, foundations for the development of parallel kinematic machines (PKMs) are worked out regarding necessary methods and components. The application of PKMs make high demands on the performance of robot control: coupled kinematic structures together with resulting special singularities require more and efficient control functions for motion control; additional sensors (integrated within the robot structure) increase the necessary data traffic while aiming to reduce calculational complexity; requirements for the synchronisation of drives necessitate high-speed communication mechanisms. Additional requirements regard the performance of the overall robot system: positioning accuracy, acceleration and velocity of the robot end-effector, which are expected to outsell those realised with conventional (serial) robot structures. Commercially available solutions for control systems do not suit all of these demands which calls for a unique control system design from standard components (computer hardware, operating system, communication system and programming language). The object of this thesis is, at first, the examination of fundamental mechanisms from the domain of software and communication technology in order to select suitable mechanisms for process organisation, inter process communication, synchronisation, configuration and presentation of data flow. These are to be provided for the control function modules in a uniform way. In the main part of this thesis the concept of the communication infrastructure is introduced in detail as well as the overall description of its implementation in hardware and software. The infrastructure consists of three main components which work together as a functional unit: the middleware MiRPA-X, the communication protocol IAP and the FireWire communication system (IEEE 1394). They form an efficient framework in order to provide transparent, modular and uniform communication and synchronisation mechanisms for the development of powerful and real-time control functionality. Within the project work in the Collaborative Research Center this novel communication infrastructure proved of indispensable value. For other robot control systems outside the CRS, it should thus be considered when using standard components

    Network-Integrated Multimedia Middleware, Services, and Applications

    Get PDF
    Today, there is a strong trend towards networked multimedia devices. However, common multimedia software architectures are restricted to perform all processing on a single system. Available software infrastructures for distributed computing — commonly referred to as middleware — only partly provide the facilities needed for supporting multimedia in distributed and dynamic environments. Approaches from the research community only focus on specific aspects and do not achieve the coverage needed for a full-featured multimedia middleware solution. The Network-Integrated Multimedia Middleware (NMM) presented in this thesis considers the network as an integral part. Despite the inherent heterogeneity of present networking and device technologies, the architecture allows to extend control and cooperation to the network and enables the development of distributed multimedia applications that transparently use local and remote components in combination. The base architecture of this middleware is augmented by several middleware services that especially aim at providing additional support for developing complex applications that involve mobile users and devices. To this end, previously not available services and corresponding abstractions are proposed, realized, and evaluated. The performance and applicability of the developed middleware and its additional services are demonstrated by describing different realized application scenarios.Eine wachsende Anzahl von Multimedia-Geraeten verfuegt heute bereits ueber Netzwerkschnittstellen. Verfueugbare Multimedia Software-Architekturen beschraeanken jedoch die gesamte Datenverarbeitung auf ein einzelnes System. Verbreitete Software-Infrastrukturen fuer Verteilte Systeme — ueblicherweise Middleware genannt — bieten nur teilweise die Eigenschaften, die fuer die Multimedia-Datenverarbeitung in vernetzten und dynamischen Umgebungen benoetigt werden. Ansaetze aus der Forschung behandeln nur spezielle Teilaspekte und erreichen deshalb nicht den Funktionsumfang einer vollwertigen Middleware fuer Multimedia. Die in dieser Arbeit beschriebene Netzwerk-Integrierte Multimedia Middleware (NMM) betrachtet das Netzwerk als integralen Bestandteil. Die Architektur erlaubt trotz der inhaerenten Heterogenitaet der vorhandenen Netzwerk- und Geraetetechnologie die Kontrolle und das Zusammenspiel von Systemen auf das Netzwerk auszuweiten. Dies ermoeglicht die Entwicklung verteilter Multimedia-Anwendungen, die transparent lokale und entfernte Komponenten zusammen einsetzen. Die Kernarchitektur dieser Middleware wird durch verschiedene Dienste erweitert, die speziell die Realisierung komplexer Anwendungsszenarien mitmobilen Geraeten und Benutzern unterstuetzt. Insbesondere werden neue, bisher nicht vorhandene Middleware-Dienste und zugehoerige Abstraktionen vorgeschlagen, realisiert und evaluiert. Anhand verschiedener Anwendungsszenarien wird die Leistungfaehigkeit, die Effizienz und die praktische Relevanz der entwickelten Middleware und der ergaenzenden Dienste demonstriert

    Myriad : a distributed machine vision application framework

    Get PDF
    This thesis examines the potential for the application of distributed computing frameworks to industrial and also lightweight consumer-level Machine Vision (MV) applications. Traditional, stand-alone MV systems have many benefits in well-defined, tightly- controlled industrial settings, but expose limitations in interactive, de-localised and small-task applications that seek to utilise vision techniques. In these situations, single-computer solutions fail to suffice and greater flexibility in terms of system construction, interactivity and localisation are required. Network-connected and distributed vision systems are proposed as a remedy to these problems, providing dynamic, componentised systems that may optionally be independent of location, or take advantage of networked computing tools and techniques, such as web servers, databases, proxies, wireless networking, secure connectivity, distributed computing clusters, web services and load balancing. The thesis discusses a system named Myriad, a distributed computing framework for Machine Vision applications. Myriad is composed components, such as image processing engines and equipment controllers, which behave as enhanced web servers and communicate using simple HTTP requests. The roles of HTTP-based distributed computing servers in simplifying rapid development of networked applications and integrating those applications with existing networked tools and business processes are explored. Prototypes of Myriad components, written in Java, along with supporting PHP, Perl and Prolog scripts and user interfaces in C , Java, VB and C++/Qt are examined. Each component includes a scripting language named MCS, enabling remote clients (or other Myriad components) to issue single commands or execute sequences of commands locally to the component in a sustained session. The advantages of server- side scripting in this manner for distributed computing tasks are outlined with emphasis on Machine Vision applications, as a means to overcome network connection issues and address problems where consistent processing is required. Furthermore, the opportunities to utilise scripting to form complex distributed computing network topologies and fully-autonomous federated networked applications are described, and examples given on how to achieve functionality such as clusters of image processing nodes. Through the medium of experimentation involving the remote control of a model train set, cameras and lights, the ability of Myriad to perform traditional roles of fixed, stand-alone Machine Vision systems is supported, along with discussion of opportunities to incorporate these elements into network-based dynamic collaborative inspection applications. In an example of 2D packing of remotely-acquired shapes, distributed computing extensions to Machine Vision tasks are explored, along with integration into larger business processes. Finally, the thesis examines the use of Machine Vision techniques and Myriad components to construct distributed computing applications with the addition of vision capabilities, leading to a new class of image-data-driven applications that exploit mobile computing and Pervasive Computing trends
    corecore