Design Patterns of Parallel Control Systems

Language
en
Document Type
Doctoral Thesis
Issue Date
2011-09-07
Issue Year
2011
Authors
Stellwag, Philippe
Editor
Abstract

Decreasing feature sizes and the desire to continue with large-scale integration of semiconductor components let processor manufacturers adjoin to physical restrictions of single processor architectures. Hence, they started for a while to reduce the clock frequencies of their CPUs and put more than one execution core on silicon die. These multi-core processors have, for some time, become more interesting to the embedded and real-time software sector. This is due to the price for (ultra-)low voltage multi-core processors is on the decrease while the clock frequencies for uni-processors tends to stagnate. Continuing innovation in the sector of data and computationally intensive industrial real-time systems, however, are driven by, and need, raw processing power. To accommodate the requirements of processing power intensive systems, developers have to parallelize their software. This requires concurrency control mechanisms that satisfy the semantic shift from pseudo to real parallelism. These mechanisms, however, induce a whole host of side effects, in particular concerning logical correctness, time awareness, and timing quality (e.g., low jitter), to such real-time systems. Additionally, state of the art approaches to tackle concurrency within shared-memory control systems jeopardize their labor efficiency, and resource contention might easily offset the computing benefits of multiple execution cores. To overcome these side effects, researchers have started to investigate coordination and synchronization mechanisms that avoid the drawbacks of traditional blocking mechanisms and resolve concurrent situations by appropriate nonblocking algorithms. Existing nonblocking algorithms, however, are highly use-case specific, rather complex, and thus, exhibit a lack of changeability and expandability. This is a serious problem within a changing operational environment, which is typical within innovation-driven software development. This thesis considers an industrial control system similar to a robotic control, and investigates shared-memory communication within such data and computationally intensive systems. The results of this dissertation have two core contributions. First, it presents novel design patterns that allow every moderate-skilled developer to build nonblocking communication mechanisms that widely avoid the drawbacks of their blocking counterparts. And second, it investigates the impacts of a changing operational environment to nonblocking shared objects, and presents very promising results to by-pass their typical use-case specific embedding and complexity, for which they are usually blamed for.

Abstract

Immer kleiner werdende Strukturgrößen und der stetige Wunsch einer immer höheren Integrationsdichte von Halbleiter-Bauelementen, lassen Prozessor-Hersteller auf physikalischen Restriktionen bei der Entwicklung von Einzelprozessor-Architekturen stoßen. Deshalb sind diese vor einiger Zeit dazu übergegangen, die Taktfrequenzen ihrer CPUs zu reduzieren und mehr als eine Ausführungseinheit auf ein Stück Silizium zu integrieren. Seit Kurzem werden Multicore-Prozessoren auch zunehmend interessanter und wichtiger für den Bereich eingebetteter Echtzeit-Software, da die Preise für (sehr) stromsparende Prozessoren mit mehreren Ausführungseinheiten sinken und die Taktfrequenzen für Einzelprozessoren stagnieren. Fortwährende Innovationen im Bereich von daten- und rechenintensiven Echtzeitsystemen sind allerdings abhängig von einer stetig steigenden Rechenleistung. Um den Anforderungen dieser Systeme Rechnung zu tragen, müssen Entwickler ihre Software parallelisieren. Dies erfordert Mechanismen zur Nebenläufigkeitssteuerung, welche der semantischen Veränderung von Pseudo- zu realer Parallelität gerecht werden. Diese Mechanismen induzieren jedoch eine ganze Reihe von Seiteneffekten, insbesondere im Hinblick auf die logische und zeitliche Korrektheit sowie die Zeitqualität (z. B. wenig Ausführungsschwankungen) solcher Echtzeitsysteme. Der aktuelle Stand der Kunst, in Bezug auf die Koordination konkurrierender Zugriffe auf gemeinsamen Speicher, gefährdet zudem die Arbeitseffizienz solcher Systeme und Wettstreitigkeiten können den Vorteil mehrerer Ausführungseinheiten leicht aufheben. Um diese Seiteneffekte zu bewältigen, haben Forscher damit begonnen, Mechanismen zur Koordination und Synchronisation zu eruieren, welche die Nachteile traditioneller Verfahren umgehen und Konkurrenz-Situationen über geeignete nicht-blockierende Algorithmen auflösen. Bestehende nicht-blockierende Algorithmen sind allerdings anwendungsspezifische, hoch-komplexe Speziallösungen, welche starke Einschränkungen in Bezug auf ihre Veränderbar- und Erweiterbarkeit in sich birgen. Dies ist ein ernstes Problem in einer sich ständig weiterentwickelnden Einsatz- und Betriebsumgebung, was für innovationsgetriebene Softwareentwicklung ein typisches Umfeld definiert. Diese Dissertation betrachtet eine industrielle Steuerung, welche einer Roboter-Steuerung ähnelt, und untersucht auf gemeinsamen Speicher agierende Kommunikationsmechanismen für daten- und rechenintensive Echtzeitsysteme. Die Arbeit weist dabei zwei wissenschaftliche Hauptbeiträge auf. Zum einen präsentiert sie neue Entwurfsmuster, welche es jedem Entwickler auf einfache Art und Weise ermöglichen, nicht-blockierende Kommunikationsmechanismen zu entwerfen und die typischen Nachteile ihrer blockierenden Vertreter zu vermeiden. Und zum anderen untersucht die Arbeit die Auswirkungen auf nicht-blockierende Kommunikationsobjekte in einer sich ständig weiterentwickelnden Einsatz- und Betriebsumgebung. Dazu präsentiert sie einige vielversprechende Ergebnisse, um die typisch anwendungsspezifische Einbettung und enorme Komplexität nicht-blockierender Objekte aufzulösen, für die sie normalerweise verantwortlich gemacht werden.

DOI
Document's Licence
Faculties & Collections
Zugehörige ORCIDs