Forschung > Projekte > MultiViRT

Virtualisierung von Mehrprozessorsystemen mit Echtzeitanwendungen

Beteiligte an der Hochschule

  • Dipl.-Ing. Robert Kaiser

Kooperationspartner

  • Universität Koblenz-Landau, Koblenz

Laufzeit

Beginn: November 2007
Ende: Oktober 2008

Finanzierung

  • Hochschulmittel

Veröffentlichungen

  • R. Kaiser: "Alternatives for Scheduling Virtual Machines in Real-Time Embedded Systems", ACM, New York, NY, USA, IIES '08: Proceedings of the 1st workshop on Isolation and integration in embedded systems, Seite 5--10, ISBN: 978-1-60558-126-2, April 2008 (BibTeX)
  • Kaiser, Robert: "Applying Virtualisation to Real Time Embedded Systems", 1. GI/ITG KuVS Fachgespräch "Virtualisierung", Paderborn, Februar 2008 (BibTeX)
  • Kaiser, Robert: "Empirische Ermittlung Cache-bedingter Umschaltverluste", GI/ITG Fachgruppentreffen Betriebssysteme, Frühjahr 2008, Wiesbaden, März 2008 (BibTeX)
  • Kaiser, Robert: "Virtualisierung von Mehrprozessorsystemen mit Echtzeitanwendungen", Dissertation, Juni 2009 (Link) (BibTeX)
  • R. Kaiser: "Bringing together real-time and Virtualization", Embedded World Conference 2009, Nuremberg, Februar 2009 (BibTeX)
  • R. Kaiser: "Complex Embedded Systems -- A Case for Virtualization", WISES 2009 -- Workshop on Intelligent Solutions in Embedded Systems, Ancona, Italy, Juni 2009 (BibTeX)
  • R. Kaiser; D. Zöbel: "Quantitative Analysis and Systematic Parametrization of a Two-Level Real-Time Scheduler", ETFA 2009 -- 14th IEEE International Conference on Emerging Technologies and Factory Automation, Mallorca, Spain, September 2009 (BibTeX)
  • Kaiser, Robert: "Virtualisierung von Mehrprozessorsystemen mit Echtzeitanwendungen", Dissertation, Juni 2009 (Link) (BibTeX)

Kurzbeschreibung

Die Leistungsfähigkeit eingebetter Rechensysteme hat in den letzten Jahren einen stetigen Zuwachs erfahren. Sie verfügen heute oft über Rechenleistungen und Speicherkapazitäten, die vor nicht allzu langer Zeit noch Workstations vorbehalten waren. Auch der bisher nur im Server- und Workstation-Bereich übliche Einsatz von Mehrprozessorsystemen ist seit der Einführung der MultiCore-Prozessoren nun auch für eingebette Systeme realistisch, was einen weiteren Leistungsschub erwarten läßt.
Um dieses neue Potenzial auszuschöpfen, muss jedes dieser neuen, leistungsfähigeren Geräte die Funktionen gleich mehrerer seiner Vorgänger übernehmen, d.h. die Anzahl der Einzelgeräte muss bei gleichbleibender bzw. steigender Gesamtfunktionalität reduziert werden. Dazu müssen Funktionen, die früher von vielen getrennten Rechnern bearbeitet wurden, nun auf wenigen gemeinsamen Rechnern zusammengeführt werden. Dabei steigt die Komplexität der Software des einzelnen Rechners an, wodurch sich Problemstellungen ergeben, die im Umfeld eingebetteter Systeme neu sind: Die Anwendungsprogramme, die nun in einem Rechner koexistieren, arbeiten auf der Grundlage unterschiedlicher Betriebssysteme, sodass die neue Plattform in der Lage sein muss, mehrere Betriebssystemschnittstellen gleichzeitig anbieten zu können. Gleichzeitig ist ein umfassender Schutz der Anwendungsprogramme gegenüber Fehlfunktionen oder gezielten Angriffen anderer Programme, die nun auf dem selben Rechner existieren, unerlässlich.
Diese Probleme sind im Bereich der Server seit langem bekannt. Hier wird bereits seit Jahren die Serverkonsolidierung vorangetrieben, bei der es ebenfalls darum geht, bestehende und neu hinzukommende Funktionalitäten in eine einheitliche Hardware-Architektur zu integrieren. Eine solche Konsolidierung steht nun auch für eingebettete Systeme an!
Virtualisierung wird im Serverbereich als elegante Lösung der genannten Probleme eingesetzt. Die Implementierung virtueller Maschinen geschieht dabei mit Hilfe eines Virtual Machine Monitors, der die Prozessoren der realen Maschine zwischen den Kontexten virtueller Maschinen umschaltet. Auch für die Konsolidierung eingebetteter Systeme bietet sich die Virtualisierung als Basistechnologie an. Allerdings gibt es hinsichtlich der Anforderungen einige wesentliche Unterschiede zu Servern und Workstations, weshalb das Konzept nicht einfach unverändert übernommen werden darf. Insbesondere die Anforderung der Echtzeitfähigkeit lässt sich in einer Virtuellen Maschine nicht ohne weiteres erfüllen, da ein Virtual Machine Monitor unter Anderem auch als Scheduler arbeitet und somit das Zeitverhalten der Anwendungen beeinflusst.
Um das Leistungspotenzial eines Systems mit mehreren Prozessoren auszuschöpfen, müssen die anstehenden Aufgaben auf die zur Verfügung stehenden Prozessorkerne verteilt und von diesen parallel abgearbeitet werden. Auch hierbei sind besondere Anforderungen zu erfüllen: Während im Serverbereich die typische Rechenlast aus einer großen Zahl voneinander unabhängig agierender Prozesse besteht, so ist bei eingebetteten Systemen von einer eher kleineren Anzahl rechenintensiver Prozesse auszugehen. Deshalb genügt es hier vielfach nicht, die Prozessorzuteilung allein auf der Ebene von Prozessen vorzunehmen, sondern zumindest einige Prozesse müssen in sich parallelisiert werden, d.h. ihre Rechenlast muss in mehrere, dann eng miteinander interagierende Teilprozesse aufgeteilt werden. Solche parallelen Prozesse stellen gegenüber dem unterlagerten Betriebssystem, insbesondere wenn sie Zeitanforderungen unterliegen, eine neue Art der Rechenlast dar, die von Server- und Desktopsystemen bisher nicht ausreichend berücksichtigt wurde. Das Betriebssystem und die ihm unterlagerte Virtualisierungsschicht müssen geeignete Mechanismen zum effizienten Umgang mit parallelen Prozessen bieten.
Das Ziel dieser Arbeit ist die Erforschung der Anwendbarkeit und die Anwendung von Virtualisierung auf eingebettete Systeme mit mehreren Prozessoren. Bestehende Schnittstellen zur Virtualisierung werden im Hinblick auf ihre Echtzeitfähigkeit untersucht, und es werden neue Schnittstellen zur Virtualisierung auf Mehrprozessormaschinen geschaffen und erprobt, die die genannten, spezifischen Anforderungen eingebetteter Systeme berücksichtigen. Dabei soll es insbesondere ermöglicht werden, dass Programme mit unterschiedlich harten Zeitanforderungen effizient und sicher in getrennten virtuellen Maschinen auf einem gemeinsamen Rechner koexistieren können.
Mit Virtualisierung, Echtzeitverarbeitung und Mehrprozessorsystemen berührt diese Themenstellung drei Gebiete der Informationstechnologie, die, jedes für sich genommen, keineswegs neu sind. Allerdings ergeben sich aus ihrer gemeinsamen Betrachtung zahlreiche neue Fragestellungen, die es im Rahmen dieser Arbeit zu untersuchen gilt.
Mit diesem Projekt werden die Arbeiten aus dem Projekt SEMPEX fortgeführt, wobei als Ziel die Veröffentlichung der Ergebnisse in Form einer Dissertation angestrebt wird.