20 research outputs found
Atomic Basic Blocks - Eine Abstraktion für die gezielte Manipulation der Echtzeitsystemarchitektur
The internal composition of a real-time system is significantly affected by the structural elements of the underlying real-time systems architecture. These elements control how tasks are attached to external events and how cooperating tasks interact with each other. Research and industry have brought up two fundamentally different manifestations of such real-time systems architectures: On the hand, there are event-triggered systems and on the other hand, there are time-triggered systems. Event-triggered systems perform tasks directly in response to external events. As a consequence, it depends on the occurrence of these events at which time certain computations are carried out. Time-triggered systems, in contrast, use a static, pre-computed schedule table that is executed cyclically. Thus, at any given time, the task that is currently executed is known. It is easy to figure out that the event-triggered paradigm can deal much better with events whose precise temporal specification is not known beforehand than its time-triggered counterpart. Such systems, on the other hand, are to be preferred if cyclic tasks are predominant. In that case, time-triggered systems offer a fully predictable behaviour. Thus, application scenarios that have different temporal characteristics are not supported equally well by these paradigms. Hence, it is logical to go for that paradigm that suits the current application scenario best. Provided a real-time system is built from scratch, this is not a problem, as one can easily choose the ideal real-time paradigm. This is different if some parts of this system already exist; either because some components of other systems should be reused, or because the requirements of the real-time system currently being developed have changed. In that case, changing the real-time paradigm is a challenging undertaking, since the real-time systems architecture heavily influences the internal structure of a real-time system. Thus, you can find its structural elements spread all over the application. This normally demands for a manual and labour-intensive porting in most cases. This thesis presents a tool to purposefully manipulate the real-time systems architecture and to replace that manual porting process by an automated transformation. This tool is called the Real-Time Systems Compiler (RTSC). The RTSC uses Atomic Basic Blocks (ABBs) to abstract from the real-time systems architecture's structural elements and notes down the internal structure of a real-time system by a global dependency graph made up by ABBs. Finally, it maps that dependency graph to the desired real-time systems architecture. Furthermore, this transformation takes into account the temporal requirements of the real-time system taken down in a system model connecting them to the internal structure of the real-time system. Therefore, the core contributions of this thesis are the abstraction Atomic Basic Block, the system model and the Real-Time Systems Compiler enabling the directed and automated manipulation of the real-time systems architecture as sketched above.Der interne Aufbau eines Echtzeitsystems wird maßgeblich von den Strukturelementen der verwendeten Echtzeitsystemarchitektur beeinflusst. Sie bestimmen, wie Aufgaben an externe Ereignisse gekoppelt werden, und wie Aufgaben interagieren, die Berechnungsergebnisse gemeinschaftlich erbringen. In Forschung und Industrie haben sich zwei grundsätzlich verschiedene Echtzeitsystemarchitekturen herausgebildet. Dies sind einerseits ereignisgesteuerte Systeme und andererseits zeitgesteuerte Systeme. Ereignisgesteuerte Systeme führen Berechnungen direkt als Reaktion auf externe Ereignisse aus. Zu welchen Zeitpunkten welche Berechnungen durchgeführt werden, hängt also auch davon ab, wann diese Ereignisse eintreten, und kann kaum vorausgesagt werden. Zeitgesteuerte Systeme folgen hingegen einem statischen, vorab berechneten Ablaufplan, der zyklisch abgearbeitet wird. Zu jedem Zeitpunkt ist somit genau bestimmt, welche Berechnung gerade abläuft. Es ist somit leicht nachvollziehbar, dass ereignisgesteuerte Systeme im Gegensatz zu zeitgesteuerten Systemen besser auf Ereignisse vorbereitet sind, deren zeitliches Verhalten nicht genau bekannt ist. Zeitgesteuerte Systeme sind indessen für die Ausführung strikt zyklischer Berechnungsaufgaben prädestiniert und führen in solchen Anwendungen zu einem vollkommen vorhersagbaren Verhalten. Diese beiden Paradigmen können daher mit unterschiedlichen Anwendungsprofilen unterschiedlich gut umgehen. Es ist naheliegend, jeweils das Paradigma auszuwählen, das den vorliegenden Anwendungsfall möglichst gut unterstützt. Entwickelt man ein Echtzeitsystem von Grund auf neu, ist diese Auswahl problemlos möglich. Existieren aber bereits gewisse Teile eines Echtzeitsystems, beispielsweise weil Fragmente eines bestehenden Systems wiederverwendet werden sollen, oder weil sich Anforderungen während der Entwicklung geändert haben, ist dieser Paradigmenwechsel sehr aufwändig. Die Echtzeitsystemarchitektur beeinflusst schließlich die interne Struktur der Implementierung eines Echtzeitsystems. Ihre Strukturelemente finden sich daher an vielen Stellen innerhalb einer Echtzeitanwendung und machen eine arbeitsintensive, meist manuelle Portierung erforderlich. In dieser Dissertation wird mit dem Real-Time Systems Compiler (RTSC) ein Werkzeug vorgestellt, um die Echtzeitsystemarchitektur gezielt zu manipulieren und diese händische Portierung durch eine automatisierte Transformation zu ersetzen. Dieses Werkzeug extrahiert die Strukturelemente der Echtzeitsystemarchitektur aus der Implementierung des Echtzeitsystems und stellt dessen internen Aufbau mithilfe der Abstraktion Atomic Basic Block in einem globalen Abhängigkeitsgraphen architekturneutral dar. Der RTSC bildet diesen Abhängigkeitsgraphen schließlich auf die gewünschte Echtzeitsystemarchitektur ab und berücksichtigt dabei auch die zeitlichen Anforderungen an das Echtzeitsystem, die über ein Systemmodell mit seinen internen Zusammenhängen verknüpft werden. Die zentralen Beiträge dieser Dissertation sind daher die Abstraktion Atomic Basic Block, das Systemmodell und der Real-Time Systems Compiler, die in der oben skizzierten Weise eine gezielte und automatisierte Manipulation der Echtzeitsystemarchitektur ermöglichen
Mobility in a Globalised World 2017
The term mobility has different meanings in the following science disciplines. In economics, mobility is the ability of an individual or a group to improve their eco-nomic status in relation to income and wealth within their lifetime or between gen-erations. In information systems and computer science, mobility is used for the concept of mobile computing, in which a computer is transported by a person dur-ing normal use. Logistics creates by the design of logistics networks the infrastruc-ture for the mobility of people and goods. Electric mobility is one of today’s solu-tions from an engineering perspective to reduce the need of energy resources and environmental impact. Moreover, for urban planning, mobility is the crunch ques-tion about how to optimise the different needs for mobility and how to link differ-ent transportation systems.
In this publication we collected the ideas of practitioners, researchers, and gov-ernment officials regarding the different modes of mobility in a globalised world, focusing on both domestic and international issues
Atomic Basic Blocks - An abstraction to systematically manipulate the real-time systems architecture
Der interne Aufbau eines Echtzeitsystems wird maßgeblich von den Strukturelementen der verwendeten "Echtzeitsystemarchitektur" beeinflusst. Sie bestimmen, wie Aufgaben an externe Ereignisse gekoppelt werden, und wie Aufgaben interagieren, die Berechnungsergebnisse gemeinschaftlich erbringen. In Forschung und Industrie haben sich zwei grundsätzlich verschiedene Echtzeitsystemarchitekturen herausgebildet. Dies sind einerseits ereignisgesteuerte Systeme und andererseits zeitgesteuerte Systeme. Ereignisgesteuerte Systeme führen Berechnungen direkt als Reaktion auf externe Ereignisse aus. Zu welchen Zeitpunkten welche Berechnungen durchgeführt werden, hängt also auch davon ab, wann diese Ereignisse eintreten, und kann kaum vorausgesagt werden. Zeitgesteuerte Systeme folgen hingegen einem statischen, vorab berechneten Ablaufplan, der zyklisch abgearbeitet wird. Zu jedem Zeitpunkt ist somit genau bestimmt, welche Berechnung gerade abläuft. Es ist somit leicht nachvollziehbar, dass ereignisgesteuerte Systeme im Gegensatz zu zeitgesteuerten Systemen besser auf Ereignisse vorbereitet sind, deren zeitliches Verhalten nicht genau bekannt ist. Zeitgesteuerte Systeme sind indessen für die Ausführung strikt zyklischer Berechnungsaufgaben prädestiniert und führen in solchen Anwendungen zu einem vollkommen vorhersagbaren Verhalten. Diese beiden Paradigmen können daher mit unterschiedlichen Anwendungsprofilen unterschiedlich gut umgehen. Es ist naheliegend, jeweils das Paradigma auszuwählen, das den vorliegenden Anwendungsfall möglichst gut unterstützt. Entwickelt man ein Echtzeitsystem von Grund auf neu, ist diese Auswahl problemlos möglich. Existieren aber bereits gewisse Teile eines Echtzeitsystems, beispielsweise weil Fragmente eines bestehenden Systems wiederverwendet werden sollen, oder weil sich Anforderungen während der Entwicklung geändert haben, ist dieser Paradigmenwechsel sehr aufwändig. Die Echtzeitsystemarchitektur beeinflusst schließlich die interne Struktur der Implementierung eines Echtzeitsystems. Ihre Strukturelemente finden sich daher an vielen Stellen innerhalb einer Echtzeitanwendung und machen eine arbeitsintensive, meist manuelle Portierung erforderlich. In dieser Dissertation wird mit dem Real-Time Systems Compiler (RTSC) ein Werkzeug vorgestellt, um die Echtzeitsystemarchitektur gezielt zu manipulieren und diese händische Portierung durch eine automatisierte Transformation zu ersetzen. Dieses Werkzeug extrahiert die Strukturelemente der Echtzeitsystemarchitektur aus der Implementierung des Echtzeitsystems und stellt dessen internen Aufbau mithilfe der Abstraktion Atomic Basic Block in einem globalen Abhängigkeitsgraphen architekturneutral dar. Der RTSC bildet diesen Abhängigkeitsgraphen schließlich auf die gewünschte Echtzeitsystemarchitektur ab und berücksichtigt dabei auch die zeitlichen Anforderungen an das Echtzeitsystem, die über ein Systemmodell mit seinen internen Zusammenhängen verknüpft werden. Die zentralen Beiträge dieser Dissertation sind daher die Abstraktion Atomic Basic Block, das Systemmodell und der Real-Time Systems Compiler, die in der oben skizzierten Weise eine gezielte und automatisierte Manipulation der Echtzeitsystemarchitektur ermöglichen.The internal composition of a real-time system is significantly affected by the structural elements of the underlying real-time systems architecture. These elements control how tasks are attached to external events and how cooperating tasks interact with each other. Research and industry have brought up two fundamentally different manifestations of such real-time systems architectures: On the hand, there are event-triggered systems and on the other hand, there are time-triggered systems. Event-triggered systems perform tasks directly in response to external events. As a consequence, it depends on the occurrence of these events at which time certain computations are carried out. Time-triggered systems, in contrast, use a static, pre-computed schedule table that is executed cyclically. Thus, at any given time, the task that is currently executed is known. It is easy to figure out that the event-triggered paradigm can deal much better with events whose precise temporal specification is not known beforehand than its time-triggered counterpart. Such systems, on the other hand, are to be preferred if cyclic tasks are predominant. In that case, time-triggered systems offer a fully predictable behaviour. Thus, application scenarios that have different temporal characteristics are not supported equally well by these paradigms. Hence, it is logical to go for that paradigm that suits the current application scenario best. Provided a real-time system is built from scratch, this is not a problem, as one can easily choose the ideal real-time paradigm. This is different if some parts of this system already exist; either because some components of other systems should be reused, or because the requirements of the real-time system currently being developed have changed. In that case, changing the real-time paradigm is a challenging undertaking, since the real-time systems architecture heavily influences the internal structure of a real-time system. Thus, you can find its structural elements spread all over the application. This normally demands for a manual and labour-intensive porting in most cases. This thesis presents a tool to purposefully manipulate the real-time systems architecture and to replace that manual porting process by an automated transformation. This tool is called the Real-Time Systems Compiler (RTSC). The RTSC uses Atomic Basic Blocks (ABBs) to abstract from the real-time systems architecture's structural elements and notes down the internal structure of a real-time system by a global dependency graph made up by ABBs. Finally, it maps that dependency graph to the desired real-time systems architecture. Furthermore, this transformation takes into account the temporal requirements of the real-time system taken down in a system model connecting them to the internal structure of the real-time system. Therefore, the core contributions of this thesis are the abstraction Atomic Basic Block, the system model and the Real-Time Systems Compiler enabling the directed and automated manipulation of the real-time systems architecture as sketched above
Time-triggered vs. event-triggered: A matter of configuration?
During the development of real-time systems one has either to plump for a time-triggered or an event-triggered architecture. Actually this decision deals with a non-functional property of a real-time system and should therefore be postponed as far as possible. Unfortunately, this property also exhibits functional qualities during the development of real-time systems making this postponement impossible and a subsequent transition very expensive. This paper sketches an approach to specify a real-time system independent of its architecture (timetriggered or event-triggered), thus facilitating to switch between a time-triggered and an event-triggered architecture easily
AspectC++: An integrated approach for static and dynamic adaptation of system software. Knowledge-Based Systems, 2010(in press
doi:10.1016/j.knosys.2010.03.00
Towards a Real-Time Systems Compiler
Model driven development gains more and more relevance for the development of hard real-time systems as it eases subsequent certification. Whereas generating the application source code from such models no longer is uncommon thanks to the research of the last years, targeting a specific operating system with an application still is done by hand. This significantly restrains flexibility and reuse within the development of real-time systems, as often assumptions on the underlying operating system are hard-coded within the application. Consequently we come up with a compiler-based approach to automatically map real-time applications coded for a specific operating system to other operating systems offering different abstractions (e.g. time-triggered vs. event-triggered execution). This compiler-based approach is enabled by an operating system independent intermediate representation, which allows to flexibly combine different operating system specific front- and backends
Static and dynamic weaving in system software with AspectC++
System software strongly relies on the availability of static as well as dynamic adaptation techniques. With Aspect-Oriented Programming (AOP) it is now possible to adapt even policy-like crosscutting concerns in the implementation of system software. While this is straightforward in the static case, dynamic adaptation of crosscutting concerns requires an expensive dynamic aspect weaving infrastructure. Furthermore, the relation between static and dynamic aspects is widely unexplored. In this paper we present our experiences with static and dynamic adaptation of crosscutting concerns in the embedded operating system eCos. The work is based on the novel “single language approach”, which allows us to configure the binding time of aspects, and a “family-based dynamic weaver infrastructure”, which reduces the resource consumption needed for dynamic AOP by tailoring the run time system. In our prototype implementation all this has been integrated into an environment, which allows us to “play” with the binding time of aspects and supported dynamic weaver features. Thus, we can now answer questions about the resource consumption of these adaptation techniques and the relationship of static and dynamic aspects in general