Beschreibung
Verfahren und Vorrichtung zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit
Die vorliegende Erfindung betrifft ein Verfahren zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit, welche einen wohldefinierten Programmablauf gewährleisten. Die Erfindung betrifft ferner eine Rechneran- läge, welche sich zur Durchführung des Verfahrens eignet, sowie ein Computerprogrammprodukt, welches die Durchführung eines entsprechenden Verfahrens zur Bestimmung von Anforderungsparametern veranlasst.
Bei der Entwicklung von hardware- wie auch softwareimplementierten Systemen ist die Kompatibilität von Komponenten, insbesondere deren Wiederverwendbarkeit, nach Möglichkeit zu gewährleisten. Hierzu können Softwaresysteme modular durch wieder verwendbare Softwarekomponenten aufgebaut sein. Software- komponenten sind hierbei beispielsweise Programmmodule, Bibliotheken oder Packages. Rechneranlagen können durch Hardwarekomponenten modular aufgebaut sein, wobei die Kompatibilität der Hardwarekomponenten durch standardisierte Schnittstellen gegeben ist. Beispielsweise sollen mehrere Software- komponenten nicht nur auf einzelnen, sondern auf unterschiedlichen Rechneranlagen ohne signifikanten Mehraufwand ausführbar sein. Durch die Wiederverwendbarkeit von Softwarekomponenten, insbesondere auf unterschiedlichen Rechneranlagen, ergibt sich ein optimiertes Kosten-Nutzen-Verhältnis. Durch die Wiederverwendbarkeit ist die Erstellung von qualitativ hochwertigem Softwarecode motiviert, welcher ausreichend getestet und gut dokumentiert ist. Ein weiterer vorteilhafter Aspekt ist die Möglichkeit qualitativ hochwertigen Softwarecode von externen Entwicklern zuzukaufen.
Der Ansatz Softwarekomponenten nicht zielsystemspezifisch konstruieren zu müssen, hat sich mit der Verbreitung der höheren Programmiersprachen durchgesetzt. Es werden Software-
komponenten erstellt, welche durch Übersetzer beziehungsweise Compiler von der Hochsprache in die Maschinensprache des jeweiligen Zielsystems übersetzt werden. Zuvor wurden Softwarekomponenten direkt in der Maschinensprache für das jeweilige Zielsystem implementiert. Da Maschinensprachen im Gegensatz zu Hochsprachen für den Menschen weniger intuitiv verständlich sind, war dieses Vorgehen mit einem höheren Aufwand und höherer Fehleranfälligkeit verbunden. Insbesondere konnte der Softwarecode zumeist nicht wiederverwendet werden. Die stets neue Implementierung der Softwarekomponenten führte ebenfalls zu einer erhöhten Fehleranfälligkeit. Aufgrund der Kosteneffizienz und des Wiederverwendungsaspekts sollen Softwarekomponenten nicht genau auf ein Zielsystem und dessen genauen technischen Details konstruiert werden. Man geht bewusst eine Abstraktion ein, um schneller, effizienter und fehlerfreier eine Softwarekomponente zu entwickeln.
Die Kompatibilität von Hardwarekomponenten ist eine nichtfunktionale Anforderung, die gewünscht und notwendig ist. An- dererseits zeigt die Hardware durch den Technologiefortschritt eine hohe Diversität. So können unterschiedliche Controller beispielsweise mit spezifischen Leistungsdaten verwendet werden. Analog gibt es unterschiedliche Speichermedien, die sich untereinander bezüglich Preis und Leistung er- heblich unterscheiden. Hardwareeinheiten haben zumeist Standardschnittstellen, die funktional vollständig identisch sind. Ein Softwareentwickler weiß, insbesondere durch spezielle Entwurfs- und Architekturmuster, wie Schichtung oder Proxies, zumeist nicht auf welche genaue Ausprägung einer Hardwareeinheit die Softwarekomponente zugreift.
Aus den vorgenannten Aspekten ergibt sich, dass eine vollständige Testabdeckung einer Softwarekomponente bezüglich der verwendeten Hardwarekomponenten nur mit signifikantem Aufwand möglich ist. So können Hardwarekomponenten, auf der die Softwarekomponente ausgeführt werden soll, kompatibel bezüglich der hardwarebasierten Schnittstellen sein, jedoch können die Leistungskenngrößen der Hardwarekomponenten den Anforderungs-
Parametern der Softwarekomponente nicht genügen. Dies kann in einem besonders nachteiligen Fall zu einem nichtgebrauchsfähigen Softwareprodukt bezüglich der verwendeten Hardwarekomponenten führen. Ein Softwareprodukt umfasst hierbei mindes- tes eine Softwarekomponente.
Beispielsweise werden bei Softwareprodukten Anforderungsparameter an die ausführenden Hardwarekomponenten angegeben, welche einen wohldefinierten Programmablauf gewährleisten. Der Programmablauf umfasst hierbei das Ausführen einer Softwarekomponente. Anforderungsparameter werden zum Beispiel durch Tests des Softwareprodukts auf verschiedenen physischen Rechneranlagen ermittelt. Durch die steigende Diversität der Rechneranlagen können diese Anforderungsparameter jedoch nicht mehr beziehungsweise nur ungenügend empirisch ermittelt werden. Insbesondere können Abhängigkeiten zwischen den Betriebsparametern der verwendeten Hardwareeinheiten nur mit enormem empirischem Aufwand ermittelt werden. Liegen entsprechende Anforderungsparameter vollständig und ausreichend ge- nau vor, sind Aussagen über Betriebsparameter der benötigten Hardwarekomponenten möglich. Insbesondere können bei der Verwendung der entsprechenden Hardwareeinheiten Kosten eingespart werden, indem eine performantere aber teurere Hardwareeinheit durch eine günstigere Hardwareeinheit ausgetauscht wird. Der Einsatz von zu performanten Hardwareeinheiten führt zu erhöhten Betriebsnebenkosten, insbesondere höhere Energieaufnahme beziehungsweise höherer Wärmeabstrahlung, welche durch intensiveren Einsatz von Kühlkomponenten kompensiert werden muss.
Durch den großen Umfang funktional kompatibler Hardwareeinheiten können herkömmliche Techniken zur Bestimmung von Anforderungsparametern nur ausgewählte Betriebsparameterprofile testen. Ein vollständiger Test aller Betriebsparameterprofile für bestehende Hardwarekomponenten ist durch die große Vielfalt der möglichen Kombinationen von Hardwarekomponenten zum Ausbilden einer geeigneten Rechneranlage nahezu unmöglich. Üblicherweise werden genaue Anforderungen an die Hardwarekom-
ponenten nur rudimentär und unsystematisch bestimmt. Es wird daher häufig nicht mit ausreichendem Umfang an Hardwarekomponenten getestet, sondern nur auf wenigen exemplarischen Rechneranlagen .
Der Einsatz mathematischer Modelle, wie beispielweise Markov- ketten oder gewichtete Petri-Netze zur Bestimmung von Anforderungsparametern, erfordert aufwendigen Experteneinsatz, kann fehlerbehaftet und/oder ungenau sein, was sich als be- sonders nachteilig erweisen kann.
Es ist daher eine Aufgabe der vorliegenden Erfindung ein verbessertes Verfahren zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit bereitzustellen.
Diese Aufgabe wird durch ein Verfahren zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit gemäß Patentanspruch 1 gelöst.
Demgemäß ist ein Verfahren zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit eines mehrere Hardwareeinheiten umfassenden physischen Rechnersystems vorgesehen. Es wird mindestens eine physische Hardwareeinheit als virtuelle Hardwareeinheit mit variierenden Be- triebsparametern nachgebildet, wodurch sich unterschiedliche Leistungskenngrößen ergeben. Leistungskenngrößen der physischen Hardwareeinheit sollen dabei vordefinierten Leistungskenngrößen entsprechen. Hierzu wird unter Verwendung einer als virtuelle Hardwareeinheit nachgebildeten Hardwareeinheit ein vorgegebener Programmablauf ausgeführt, wobei Betriebsparameter der virtuellen Hardwareeinheit variiert werden. Hieraus lassen sich Anforderungsparameter bestimmen, welche den Betriebsparametern der physischen Hardwareeinheit entsprechen, welche einen wohldefinierten Programmablauf gewährleis- ten. Die Anforderungsparameter werden in Abhängigkeit einer überwachten Leistungskenngröße der virtuellen Hardwareeinheit bestimmt .
Unter Nachbilden der physischen Hardwareeinheit versteht man das Bereitstellen und Betreiben von virtuellen Hardwareeinheiten gemäß der Funktionalität einer physischen Hardwareeinheit.
Anforderungsparameter sind diejenigen Betriebsparameter einer Hardwarekomponente, welche zum wohldefinierten und fehlerfreien Ausführen einer Softwarekomponente mindestens erforderlich sind.
Betriebsparameter beschreiben nicht-funktionale Eigenschaften einer Hardwarekomponente. Beispiele hierfür können sein: Taktung eines Prozessors, Lese- oder Schreibzugriffszeiten eines Speichers, Kapazität eines Speichers, Umdrehungen einer Fest- platte oder die Bandbreite einer Sende- oder Empfangseinrichtung. Betriebsparameter können in Betriebsparameterprofilen bezüglich einer Hardwarekomponente zusammengefasst werden.
Leistungskenngrößen beschreiben hierbei das sich aus den Be- triebsparametern ergebende nicht-funktionale Verhalten der Hardwareeinheit oder des Rechnersystems in Abhängigkeit des Ausführens des Programmablaufs. Leistungskenngrößen können sich auf physische und/oder auf virtuelle Hardwareeinheiten oder Rechnersysteme beziehen. Ein Programmablauf kann bei- spielsweise eine Testroutine, einen Algorithmus, ein Softwareprogramm, eine Befehlssequenz und/oder eine Programmroutine, zur Berechnung einer Ausgabe oder zum Bereitstellen eines Dienstes umfassen.
Ein wohldefinierter Programmablauf ist dann gewährleistet, wenn beispielsweise vorgegebene Anforderungen, welche als "Constraints" bezeichnet werden können, erfüllt werden. Vorgegebene Anforderungen können nicht-funktionale Anforderungen umfassen, welche sich wiederum auf funktionale Anforderungen auswirken können. Beispielsweise können vordefinierte Antwortzeiten gefordert werden, wobei ein Nichteinhalten der vordefinierten Antwortzeiten zu einem Time-out, zu einem Synchronisationsfehler oder einem allgemeinen Fehlverhalten füh-
ren kann. Die Vermeidung eines Synchronisationsfehlers kann dabei eine funktionale Anforderung sein. Anforderungen können insbesondere bezüglich einem Echtzeitverhalten des vorgegebenen Programmablaufs definiert werden. Wird beispielsweise ei- ne Bildsequenz durch den Programmablauf definiert, so ist beispielsweise eine Echtzeitanforderung ein Einhalten einer Mindestbildanzahl pro Zeiteinheit. Eine weitere Anforderung bezüglich der Mindestbildanzahl ist beispielsweise ein möglichst äquidistantes Einblenden des jeweiligen Bildes, um Verzögerungen beziehungsweise Ruckein, beispielsweise in Videoinformationen, zu verhindern.
Somit wird ein physisches Rechnersystem als ein virtuelles Rechnersystem nachgebildet, wobei das virtuelle Rechnersystem wiederum aus mehreren virtuellen Hardwareeinheiten bestehen kann. Durch die variierbaren Betriebsparameter der virtuellen Hardwareeinheiten können diverse Hardwareeinheiten mit wiederum diversen Betriebsparameterprofilen bezüglich deren Ausführung des vordefinierten Programmablaufs überwacht werden. Vorteilhaft ist hierbei, dass aufgrund der Verwendung der virtuellen Hardwareeinheiten keine physischen Modifikationen an der entsprechenden Rechneranlage durchgeführt werden müssen. Außerdem gestaltet sich vorteilhaft, dass Betriebsparameter beziehungsweise Betriebsparameterprofile der verwende- ten Hardwareeinheiten systematisch, beispielsweise von einem vorgegebenen Testprogramm, getestet werden können. Das Testprogramm kann das Ausführen des Programmablaufs mit variierenden Betriebsparametern und das Bestimmen der Anforderungsparameter veranlassen.
Ein physisches Rechnersystem kann beispielsweise als Computer, PC, EDV-Anlage, elektronische Datenverarbeitungsanlage, Workstation und/oder EDV-System vorliegen.
In einer Variante des Verfahrens wird zumindest eine Auswahl der folgenden Verfahrensschritte ausgeführt: Nachbilden der physischen Hardwareeinheit als virtuelle Hardwareeinheit zum Ausbilden zumindest eines Teils des virtuellen Rechnersys-
tems, welches dem physischen Rechnersystem entspricht; Zuordnen von mindestens einem Betriebsparameterprofil an die virtuelle Hardwareeinheit, welches mindestens einen Betriebsparameter umfasst; Ausführen des vorgegebenen Programmablaufs unter Verwendung der virtuellen Hardwareeinheit; Variieren des Betriebsparameterprofils der virtuellen Hardwareeinheit während des Ausführens des Programmablaufs; Überwachen der Leistungskenngröße des virtuellen Rechnersystems während des Ausführens des Programmablaufs und Bestimmen der Anforde- rungsparameter in Abhängigkeit der überwachten Leistungskenngröße des virtuellen Rechnersystems, wobei die Anforderungsparameter denjenigen Betriebsparametern der physischen Hardwareeinheit entsprechen, welche einen wohldefinierten Programmablauf gewährleisten.
Das Nachbilden kann auch Emulieren oder Virtualisieren umfassen. Hierbei kann Emulieren das teilweise Bereitstellen von Funktionalität durch die virtuelle Hardwareeinheit umfassen, wobei nicht bereitgestellte Funktionalität von einer physi- sehen Hardwareeinheit bereitgestellt werden kann. Virtualisieren kann hierbei das vollständig Bereitstellen von Funktionalität durch die virtuelle Hardwareeinheit umfassen. Die nachgebildete Hardwareeinheit liegt virtuell vor und wird beispielsweise durch eine Softwarekomponente und/oder durch eine Bibliothek beschrieben und/oder nachgebildet. Die physische Hardwareeinheit liegt physisch, also materiell vor.
Zuordnen von Betriebsparameterprofilen kann beispielsweise das Auswählen geeigneter Betriebsparameter und die Zuweisung von geeigneten Definitionsbereichen an die Betriebsparameter umfassen. Hierbei werden Betriebsparameter in geeigneter Weise Betriebsparameterprofilen zugewiesen. Die Eignung der Zuweisung ergibt sich aus den jeweiligen Anwendungsszenarien. Beispielsweise mag es geeignet sein, gemäß einer vorhandenen physischen Hardwareeinheit, der virtuellen Hardwareeinheit möglichst identische Betriebsparameter zuzuordnen. Eine Zuordnung kann gemäß einer zu entwickelnden physischen Hardwareeinheit erfolgen, wobei Betriebsparameter der zu entwi-
ekelnden physischen Hardwareeinheit testweise einem Betriebsparameterprofil einer virtuellen Hardwareeinheit zugeordnet werden .
Beispielsweise kann zu einem Betriebsparameterprofil und/oder zu einer Funktionalität einer virtuellen Hardwareeinheit kein identisches Betriebsparameterprofil und/oder Funktionalität einer physischen Hardwareeinheit vorhanden sein. Die Hardwareeinheit wäre dann rein virtuell. Dann gibt es zur virtu- eilen Hardwareeinheit keine entsprechende physische Hardwareeinheit .
Virtuelle Hardwareeinheiten können beispielsweise als emulierte Hardwareeinheiten oder als virtualisierte Hardwareein- heiten vorliegen. Der Programmablauf wird unter Verwendung zumindest einer virtuellen Hardwareeinheit ausgeführt, wobei das entsprechende Betriebsparameterprofil der virtuellen Hardwareeinheit beispielsweise gemäß eines vorgegebenen Testprogramms variiert werden kann. Hieraus ergeben sich Leis- tungskenngrößen des virtuellen Rechnersystems während des
Ausführens des Programmablaufs. Die Leistungskenngrößen werden dabei überwacht. Ausgehend von den überwachten Leistungskenngrößen des virtuellen Rechnersystems können Anforderungsparameter des Programmablaufs an die physische Hardwareein- heit, beziehungsweise an die physischen Hardwareeinheiten bestimmt werden. Anforderungsparameter sind hierbei diejenigen Betriebsparameter der physischen Hardwareeinheit, welche einen wohldefinierten Programmablauf gewährleisten. Anforderungsparameter können auch in Abhängigkeit von Betriebspara- meterprofilen einer oder mehrerer virtuellen Hardwareeinheiten bestimmt werden. Insbesondere können Abhängigkeiten unterschiedlicher Betriebsparameter der physischen Hardwareeinheiten anhand der resultierenden Leistungskenngrößen systematisch bestimmt werden.
Bei der Durchführung des Verfahrens können zumindest eine Auswahl von Verfahrensschritten iterativ oder zeitlich parallel ausgeführt werden. Ferner können Betriebsparameterprofile
in Programmabläufen in Abhängigkeit anderer Betriebsparameterprofile variiert werden. Beispielsweise kann ein Betriebsparameter, der die Kapazität eines Arbeitspeichers beschreibt, in Abhängigkeit eines Betriebsparameters, der die Kapazität eines Festplattenspeichers beschreibt, variiert werden. Ein vorteilhaftes Resultat wäre hierbei beispielsweise, dass aufgrund der überwachten Leistungskenngrößen teuerer Arbeitsspeicher durch vergleichsweise kostengünstigeren Festplattenspeicher zur Kostenreduktion ersetzt werden kann. Dies ist beispielsweise sinnvoll, wenn zur Gewährleistung des wohldefinierten Programmablaufs die mit dem Arbeitsspeicher verglichen niedrigeren Zugriffszeiten einer Festplatte ausreichend sind. Beispielsweise kann eine überwachte Leistungskenngröße eine Zugriffszeit auf einen Arbeitsspeicher sein.
Ferner können Betriebsparameterprofile derart variiert werden, dass überwachte Leistungskenngrößen sukzessive abgesenkt werden, bis ein wohldefinierter Programmablauf nicht mehr gewährleistet ist. Aus den überwachten Leistungskenngrößen in Abhängigkeit des jeweiligen Betriebsparameterprofils können somit die Anforderungsparameter bestimmt werden.
Das Variieren des Betriebsparameterprofils erfolgt beispielsweise über eine entsprechende Schnittstelleneinrichtung des virtuellen Rechnersystems, beziehungsweise der jeweiligen virtuellen Hardwareeinheit. Beispielsweise kann ein Hypervi- sor über eine geeignete Schnittstelleneinrichtung verfügen. Das Variieren der Betriebsparameterprofile kann ferner in Abhängigkeit der Überwachung der Leistungskenngröße geschehen. Stimmt die gemessene Leistungskenngröße nicht mindestens mit einer vorgegebenen Soll-Leistungskenngröße überein, können auf die Leistungskenngröße Einfluss nehmende Betriebsparameter entsprechend variiert werden.
Das Überwachen der Leistungskenngröße kann ein Erfassen, Messen, Schätzen, Protokollieren und/oder Speichern von Leistungskenngrößen umfassen. Hierzu wird beispielsweise der Programmablauf unter Verwendung einer virtuellen Hardwareeinheit
ausgeführt und sich daraus ergebende Leistungskenngrößen gemessen oder durch beispielsweise statistische Verfahren geschätzt. Das Messen umfasst hierbei jede Art des Beobachtens, des, des Vergleichens, des digitalen oder des analogen Erfas- sens von Leistungskenngrößen. Das Schätzen umfasst hierbei jede Art der Hochrechnung, Interpolation, Extrapolation und/oder Inferenz beziehungsweise Deduktion. Als Voraussetzung zum Schätzen kann beispielsweise eine vorgegebene Menge an Informationen vorliegen, welche Erfahrungswerte von Leis- tungskenngrößen oder bereits überwachte Leistungskenngrößen wiedergegeben .
Die Erfindung betrifft ferner eine Rechneranlage zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit eines mehrere Hardwareeinheiten umfassenden physischen Rechnersystems. Die Rechneranlage kann über eine Steuereinrichtung verfügen, welche ein vorgenanntes Verfahren ausführt. Ferner kann die Rechneranlage über eine Nachbildeinrichtung, eine Zuordnungseinrichtung, eine Ausführungsein- richtung, eine Variierungseinrichtung und/oder eine Anforde- rungsparameterbestimmungseinrichtung verfügen. Die Nachbildeinrichtung, die Zuordnungseinrichtung, die Ausführungseinrichtung, die Variierungseinrichtung und/oder die Anforde- rungsparameterbestimmungseinrichtung können auch in der Steu- ereinrichtung umfasst sein.
Die Nachbildeeinrichtung kann die physische Hardwareeinheit als virtuelle Hardwareeinheit nachbilden und Funktionalität der physischen Hardwareeinheit durch die virtuelle Hardware- einheit bereitstellen. Die Zuordnungseinrichtung kann virtuellen Hardwareeinheiten entsprechende Betriebsparameterprofile zuordnen.
Die Ausführungseinrichtung kann den vorgegebenen Programmab- lauf unter Verwendung der virtuellen Hardwareeinheit ausführen. Die Verwendung der virtuellen Hardwareeinheit kann beispielsweise in passiver oder aktiver Weise durchgeführt werden. Beispielsweise kann eine Hardwareeinheit aktiv Rechen-
schritte ausführen. Rechenschritte sind beispielsweise Grundrechenoperationen oder Wertzuweisungen an Variablen. Eine passive Verwendung umfasst beispielsweise das Protokollieren der Leistungskenngrößen. Eine Recheneinheit kann als Prozes- sor, Mikroprozessor, Computer, Computersystem, CPU (=Central Processing Unit) , arithmetische Recheneinheit oder Schaltkreis ausgeführt sein.
Die Variierungseinrichtung kann das Betriebsparameterprofil der virtuellen Hardwareeinheit während des Programmablaufs variieren. Das Variieren umfasst beispielsweise das Zuweisen eines errechneten, geschätzten, gemessenen oder durch einen Benutzer eingegebenen Werts an den Betriebsparameter. Der Wert kann hierbei in Abhängigkeit von überwachten Leistungs- kenngrößen oder anderen Betriebsparameterprofilen errechnet werden. Beispielsweise können die Betriebsparameter derart variiert werden, dass sich bei jeder aufeinanderfolgenden Ausführung des Programmablaufs die überwachten Leistungskenngrößen verringern. Wie die Betriebsparameter zu variieren sind, kann die Variierungseinrichtung ferner aus einem Datenspeicher auslesen.
Die Überwachungseinrichtung kann Leistungskenngrößen der virtuellen Hardwareeinheit überwachen, welche zum Ausführen des vorgegebenen Programmablaufs verwendet werden. Auf Grundlage der überwachten Leistungskenngrößen kann die Anforderungspa- rameterbestimmungseinrichtung, die Anforderungsparameter des Programmablaufs an die Hardwareeinheit bestimmen.
Die Nachbildeeinrichtung, die Zuordnungseinrichtung, die Ausführungseinrichtung, die Variierungseinrichtung, die Überwachungseinrichtung und die Anforderungsparameterbestimmungs- einrichtung können in physischer Form vorliegen, sie können aber auch als nachgebildete Hardwareeinheiten virtuell vor- liegen, wobei die Funktionalität der physischen Hardwareeinheit zumindest teilweise nachgebildet ist. Beispielsweise können vorgenannte Einrichtungen als Computerprogrammteil implementiert sein.
Die Erfindung betrifft darüber hinaus ein Computerprogrammprodukt, welches die Durchführung eines Verfahrens zum Bestimmen von Anforderungsparametern an mindestens eine phy- sische Hardwareeinheit veranlasst.
Somit werden ein Verfahren und eine Vorrichtung zum Bestimmen von Anforderungsparametern an mindestens eine physische Hardwareeinheit beschrieben, wodurch umfangreiche, präzise und systematische Tests des Ausführens von Programmabläufen auf unterschiedlichen Zielsystemen ermöglicht werden. Ferner können die Anforderungsparameter an mindestens eine physische Hardwareeinheit, beziehungsweise Abhängigkeiten zwischen Betriebsparameterprofilen zwischen mehreren Hardwareeinheiten in Abhängigkeit einer überwachten Leistungskenngröße bestimmt werden .
Weitere vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche sowie der im Folgenden beschrie- benen Ausführungsbeispiele. Im Weiteren wird die Erfindung anhand beispielhafter Implementierungen unter Bezugnahme auf die beigelegten Figuren näher erläutert. Es zeigt dabei:
Figur 1 ein Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen von Anforderungsparametern;
Figur 2 eine schematische Darstellung einer Rechneranlage zur Bestimmung von Anforderungsparametern;
Figur 3 ein Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen von Anforderungsparametern; und
Figur 4 eine schematische Darstellung einer Rechneranlage zur Bestimmung von Anforderungsparametern.
In den Figuren sind gleiche beziehungsweise funktionsgleiche Elemente mit den gleichen Bezugszeichen versehen worden, sofern nichts Anderes angegeben ist.
Figur 1 zeigt ein Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen von Anforderungsparametern. Hierbei wird in einem ersten Verfahrensschritt 100 ein vorgegebener Pro- grammablauf unter Verwendung einer als virtuelle Hardwareeinheit nachgebildeten physischen Hardwareeinheit ausgeführt. In einem nächsten Verfahrensschritt 101 wird ein Betriebsparameterprofil der virtuellen Hardwareeinheit variiert. Um Anforderungsparameter an die physische Hardwareeinheit empirisch zu ermitteln, kann es notwendig sein, die Verfahrensschritte 100 "Ausführen eines Programmablaufs" und 101 "Variieren des Betriebsparameterprofils" nacheinander iterativ auszuführen. Dies wird in Figur 1 durch einen weiteren Pfeil, der die Verfahrensschritte 101 und 100 verbindet, gekennzeichnet. Pfeile zeigen hierbei eine mögliche Ausführungsreihenfolge der Verfahrensschritte an.
Ein Anforderungsparameter sind diejenigen Betriebsparameter einer Hardwarekomponente, welche zum Ausführen eines vorgege- benen Programmablaufs mindestes erforderlich sind. Betriebsparameter beschreiben nicht-funktionale Eigenschaften einer Hardwareeinheit. Beispiele hierfür können sein: Taktung eines Prozessors, Lese- oder Schreibzugriffszeiten eines Speichers, Kapazität eines Speichers, Umdrehungen einer Festplatte, Bandbreite einer Sende- oder Empfangseinrichtung. Betriebsparameter können in Betriebsparameterprofilen bezüglich einer Hardwarekomponente zusammengefasst werden.
Anforderungsparameter eines Datenbankmanagementsystems an ei- ne Festplatte ist beispielsweise eine geforderte Zugriffszeit bei einem Lesevorgang. Liegt die Zugriffszeit über dem Anforderungsparameter kann, beispielsweise durch einen Time-Out, der wohldefinierte Programmablauf des Datenbankmanagementsystems nicht gewährleistet werden. Ein Anforderungsparameter eines Programmablaufs an eine Festplatte kann beispielsweise eine Mindestkapazität von 500 GB sein, da sonst generierte Datenmengen nicht persistent gespeichert werden können.
Die virtuelle Hardwareeinheit weist Leistungskenngrößen auf, welche sich in Abhängigkeit des Betriebsparameterprofils und des auszuführenden Programmablaufs ergeben. Anhand einer überwachten Leistungskenngröße werden in einem Verfahrens- schritt 102 Anforderungsparameter des Programmablaufs an die physische Hardwareeinheit bestimmt.
Figur 2 zeigt eine schematische Darstellung einer Rechneranlage 1 zur Bestimmung von Anforderungsparametern eines vorge- gebenen Programmablaufs an mindestens eine physische Hardwareeinheit. Die Rechneranlage 1 verfügt über eine Steuereinrichtung 11, welche über eine Schnittstelleneinrichtung IIa mit Nachbildeeinrichtungen 12, 13 und 14 kommuniziert. Kommunikation ist durch Doppelpfeile angedeutet. Beispielsweise handelt es sich bei einem Block 12 um eine Nachbildeeinrichtung zum Nachbilden einer Festplatte, bei einem Block 13 um eine Nachbildeeinrichtung zum Nachbilden eines Wechselspeicherlaufwerks und bei einem Block 14 um eine Nachbildeeinrichtung zum Nachbilden einer Netzwerkkarte. Hierbei sind auch Nachbildeeinrichtungen zum Nachbilden anderer physischer Hardwareeinheiten denkbar. Physische Hardwareeinheiten sind hierbei zum Betrieb eines Rechnersystems notwendige Hardwarekomponenten, wobei die Verwendung in passiver oder aktiver Weise erfolgen kann.
Analog kann die Verwendung der virtuellen Hardwareeinheit passive oder aktive Verwendung umfassen. Beispielsweise kann eine Hardwareeinheit aktiv Rechenschritte ausführen, beispielsweise Grundrechenoperationen oder Wertzuweisungen an Variablen. Beispielsweise kann ein Zuordnen der Betriebsparameter an das Betriebsparameterprofil, das Nachbilden der physischen Hardwareeinheiten, das Ausführen des Programmablaufs und/oder das Bestimmen der Anforderungsparameter durch eine virtuelle Hardwareeinheit veranlasst werden, welche als Re- cheneinheit implementiert ist. Eine Recheneinheit kann als Prozessor, Mikroprozessor, Computer, Computersystem, CPU, Central Processing Unit, arithmetische Recheneinheit und/oder Schaltkreis ausgeführt sein. Eine passive Verwendung umfasst
beispielsweise das Protokollieren der Leistungskenngrößen und/oder das Speichern der Betriebsparameter, der Betriebsparameterprofile und/oder der bestimmten Anforderungsparameter.
Leistungskenngrößen beschreiben hierbei das sich aus den Betriebsparametern ergebende nicht-funktionale Verhalten der Hardwareeinheit oder des Rechnersystems in Abhängigkeit des Ausführens des Programmablaufs. Leistungskenngrößen können sich auf physische und/oder auf virtuelle Hardwareeinheiten oder Rechnersysteme beziehen. Beispielsweise ist eine Leistungskenngröße eine sich aus Taktung einer Rechnereinheit und/oder Taktung eines Speichers ergebende Bearbeitungszeit eines Programmablaufs durch ein virtuelles Rechnersystem.
Ein Programmablauf kann eine Testroutine, einen Algorithmus, ein Softwareprogramm, eine Befehlssequenz und/oder eine Programmroutine, zur Berechnung einer Ausgabe oder zum Bereitstellen eines Dienstes umfassen. Beispielsweise kann ein Programmablauf eine zu testende Softwarekomponente sein. Bei- spielsweise soll für ein Datenbankmanagementsystem getestet werden, welche Anforderungen an eine verwendete Festplatte bezüglich Antwortzeiten benötigt werden. Eine Antwortzeit ist hierbei eine Leistungskenngröße, welche durch den Betriebsparameter "Anzahl der Umdrehungen" einer Festplatte beeinflusst werden kann.
Ferner umfasst die in Figur 2 beschriebene Rechneranlage 1 eine Ausgabeeinheit 10, welche die durch die Steuereinrichtung 11 erfassten Anforderungsparameter ausgibt. Eine Ausga- beeinheit kann hierbei ein Drucker, ein Bildschirm oder eine Vorrichtung zur Wiedergabe eines akustischen Signals sein. Alternativ zu der Ausgabeeinheit kann eine Vorrichtung zum Speichern der Anforderungsparameter vorgesehen sein. Die Vorrichtung zum Speichern der Anforderungsparameter kann als jegliche Art von Speicher, beispielsweise als Festplatte, Flash Disk, CD, DVD, Band und/oder als Wechseldatenträger, vorliegen .
Das Nachbilden der physischen Hardwareeinheit ist besonders dann vorteilhaft, wenn die physische Hardwareeinheit in Betrieb ist und der Betrieb nicht unterbrochen werden kann. Bietet die physische Hardwareeinheit beispielsweise einen Dienst an, so kann sie nachgebildet werden und unter Verwendung der nachgebildeten, virtuellen Hardwareeinheit können Anforderungsparameter an die physische Hardwareeinheit bestimmt werden. Der angebotene Dienst kann somit ohne Unterbrechung der physischen Hardwareeinheit angeboten werden. Insbesondere ist es möglich, das Nachbilden von Hardwareeinheiten softwarebasiert durchzuführen. Hierzu können Betriebsparameterprofile ohne Modifikation des physischen Rechnersystems systematisch und reproduzierbar variiert werden. Hierdurch können Anforderungsparameter bestimmt werden, welche diejenigen Betriebsparameter der physischen Hardwareeinheit sind, welche einen wohldefinierten Programmablauf gewährleisten .
Zum Ausführen der in Figur 1 beschriebenen Verfahrensschritte kann die Steuereinrichtung 11 folgende Einrichtungen umfassen: eine Zuordnungseinrichtung IIb zum Zuordnen des Betriebsparameterprofils an die virtuelle Hardwareeinheit, eine Ausführungseinrichtung 11c zum Ausführen des vorgegebenen Programmablaufs unter Verwendung der virtuellen Hardwareein- heit, eine Variierungseinrichtung Hd zum Variieren des Betriebsparameterprofils der virtuellen Hardwareeinheit während des Programmablaufs, eine Überwachungseinrichtung He zum Überwachen der Leistungskenngröße und eine Anforderungspara- meterbestimmungseinrichtung Hf zum Bestimmen der Anforde- rungsparameter .
Durch die Zuordnungseinheit Hb wird einer virtuellen Hardwareeinheit, welche von einer der Nachbildeeinrichtungen 12, 13 oder 14 bereitgestellt wird, ein Betriebsparameterprofil zugeordnet. Geeignete Betriebsparameterprofile werden durch die Zuordnungseinheit Hb beispielsweise über die Steuereinrichtung 11 aus einem Datenspeicher 9 ausgelesen, in Abhängigkeit einer Leistungskenngröße bereitgestellt oder in Ab-
hängigkeit einer Benutzereingabe bereitgestellt. Benutzer kann hierbei eine weitere Einrichtung oder ein menschlicher Benutzer, beispielsweise ein Administrator sein. Zuordnen kann beispielsweise auch das Zuweisen eines Definitionsbe- reichs an einen Betriebsparameter umfassen. Zuordnen kann weiterhin das Zuweisen von Betriebsparametern an Betriebsparameterprofile umfassen. Wird das Verfahren zum ersten Mal durchgeführt kann Zuordnen auch das Belegen der Betriebsparameter mit initialen Werten umfassen. Beispielsweise kann eine Taktrate eines Prozessors, welcher durch eine Nachbildeeinrichtung als virtueller Prozessor nachgebildet wurde, initial mit 2 GHz belegt werden. Analog kann ein nachgebildeter, virtueller Arbeitsspeicher initial mit 2 GB belegt werden.
Die Ausführungseinrichtung 11c führt einen vorgegebenen Programmablauf unter Verwendung der virtuellen Hardwareeinheit aus. Der Programmablauf wird somit durch die virtuelle Hardwareeinheit ausgeführt oder durch die virtuelle Hardwareeinheit im Zusammenwirken mit den anderen virtuellen Hardware- einheiten oder, im Falle eines Emulierens, unter Zusammenwirkung von physischen Hardwareeinheiten mit der virtuellen Hardwareeinheit ausgeführt. Die Verwendung umfasst aktive sowie passive Verwendung.
Die Variierungseinrichtung Hd variiert das Betriebsparameterprofil der jeweiligen virtuellen Hardwareeinheit. Das Variieren umfasst beispielsweise das Zuweisen eines errechneten, geschätzten, gemessenen oder durch einen Benutzer eingegebenen Werts an den Betriebsparameter. Der Wert kann hierbei in Abhängigkeit von überwachten Leistungskenngrößen oder anderen Betriebsparameterprofilen errechnet werden. Beispielsweise können die Betriebsparameter derart variiert werden, dass sich bei jeder aufeinanderfolgenden Ausführung des Programmablaufs die überwachten Leistungskenngrößen verringern. Wie die Betriebsparameter zu variieren sind, kann die Variierungseinrichtung Hd ferner über die Steuereinrichtung 11 aus einem Datenspeicher 9 auslesen.
Die Überwachung der Leistungskenngrößen geschieht durch eine Überwachungseinrichtung He. Die Überwachungseinrichtung He überwacht Leistungskenngrößen einer Hardwareeinheit, einer Auswahl von Hardwareeinheiten oder des gesamten virtuellen Rechnersystems. Aus den überwachten Leistungskenngrößen bestimmt die Anforderungsparameterbestimmungseinrichtung Hf die Anforderungsparameter des Programmablaufs an die physische Hardwareeinheit. Die Anforderungsparameter sind diejenigen Betriebsparameter, die einen wohldefinierten Programmab- lauf gewährleisten. Hierbei können sich Anforderungsparameter auf eine physische Hardwareeinheit, eine Auswahl von physischen Hardwareeinheiten oder ein physisches Rechnersystem beziehen .
Figur 3 zeigt ein Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen von Anforderungsparametern. In einem ersten Verfahrensschritt 200 wird eine physische Hardwareeinheit als virtuelle Hardwareeinheit nachgebildet. Die nachgebildete, virtuelle Hardwareeinheit findet Verwendung in den Ver- fahrensschritten 201, 202, 203 und 204, was in Figur 3 durch einen übergeordneten Verfahrensschritt 200, mittels einem die Verfahrensschritte 201, 202, 203 und 204 umfassenden Block grafisch dargestellt ist. Der Verfahrensschritt 200 umfasst das Bereitstellen einer virtuellen Hardwareeinheit, was bei- spielsweise durch Emulieren oder Virtualisieren geschehen kann. Beispielsweise kann der Verfahrensschritt durch einen Hypervisor durchgeführt werden. Ein Hypervisor kann beispielsweise VMWare sein. Ein Hypervisor kann eine Nachbildeeinrichtung umfassen, beispielsweise die in Figur 2 be- schriebene Nachbildeeinrichtung 12 zum Nachbilden einer Festplatte, die Nachbildeeinrichtung 13 zum Nachbilden eines Wechselspeicherlaufwerks und/oder die Nachbildeeinrichtung 14 zum Nachbilden einer Netzwerkkarte.
Emulieren kann das teilweise Bereitstellen von Funktionalität durch die virtuelle Hardwareeinheit umfassen, wobei nicht bereitgestellte Funktionalität von einer physischen Hardwareeinheit bereitgestellt werden kann. Beispielsweise können bei
einem Emulieren Lesezugriffe auf einen ersten Datensatz einer Festplatte durch eine virtuelle Hardwareeinheit ausgeführt werden und Schreibzugriffe auf einen zweiten Datensatz der Festplatte durch eine physische Hardwareeinheit ausgeführt werden. Virtualisieren kann hierbei das vollständige Bereitstellen von Funktionalität durch die virtuelle Hardwareeinheit beschreiben.
Beispielsweise werden bei einem Virtualisieren einer physi- sehen Festplatte die Funktionalität der physischen Festplatte, wie beispielsweise das Lesen und das Schreiben der Datensätze, durch eine virtuelle Festplatte ausgeführt. Eine virtuelle Festplatte ist hierbei eine virtuelle Hardwareeinheit, welche die Funktionalität einer physischen Festplatte durch Emulieren oder Virtualisieren bereitstellt. Betriebsparameter der virtuellen Hardwareeinheit wie beispielsweise die Speicherkapazität können hierbei unter Verwendung einer physischen Festplatte bereitgestellt werden. Analog kann auch eine physische Festplatte Speicherkapazität für mehrere virtuelle Festplatten bereitstellen. Selbst bei einer vollständigen
Nachbildung der Funktionalität der physischen Festplatte, wie beispielsweise Schreib- oder Leseoperationen, benötigt also eine virtuelle Festplatte einen physischen Speicher, um den Betriebsparameter Speicherkapazität entsprechend der vorhan- denen physischen Speicherkapazität anbieten zu können.
In einem virtuellen Rechnersystem kann die Anzahl der umfass- ten virtuellen Hardwareeinheiten ungleich der Anzahl der physischen Hardwareeinheiten des nachgebildeten, physischen Rechnersystems sein. Beispielsweise können in einem virtuellen Rechnersystem mehrere virtuelle Hardwareeinheiten vorhanden sein, welche durch eine einzige physische Hardwareeinheit betrieben werden. Ein Nachbilden einer physischen Hardwareeinheit stellt nicht zwangsläufig eine Bijektion zwischen physischen Hardwareeinheiten und virtuellen Hardwareeinheiten dar, sondern kann auch eine n:m Abbildung sein. Hierbei sind n und m jeweils natürliche Zahlen, welche die Anzahl der jeweiligen Hardwareeinheiten benennen.
Nachbilden einer physischen Hardwareeinheit umfasst daher das Bereitstellen und Betreiben einer virtuellen Hardwareeinheit gemäß der Funktionalität der jeweiligen physischen Hardware- einheit.
Im Verfahrensschritt 201 wird der virtuellen Hardwareeinheit ein Betriebsparameterprofil zugeordnet. Hierzu werden aus einer Menge von Betriebsparametern geeignete Betriebsparameter ausgewählt und Betriebsparameterprofilen zugewiesen, welche wiederum der virtuellen Hardwareeinheit zugewiesen werden. Ferner umfasst das Zuordnen das Zuweisen von Definitionsbereichen an die Betriebsparameter. Wird das Verfahren ein erstes Mal ausgeführt umfasst das Zuordnen auch die Zuweisung initialer Werte an die Betriebsparameter. In einem Verfahrensschritt 202 wird ein vorgegebener Programmablauf unter Verwendung der virtuellen Hardwareeinheit ausgeführt. An der Ausführung können neben der virtuellen Hardwareeinheit auch andere virtuelle oder physische Hardwareeinheiten beteiligt sein. Ein Programmablauf kann hierbei eine Testroutine, einen Algorithmus, ein Softwareprogramm, eine Befehlssequenz und/oder eine Programmroutine umfassen. Beispielsweise kann ein Programmablauf ein Office-Programm, ein Datenbankmanagementsystem, ein Video-Player, ein Steuerungsprogramm oder Serverdienst sein. Weiterhin können Programmabläufe server- seitig oder clientseitig und/oder verteilt ausgeführt werden.
Beispielsweise stellt ein Office-Programm Anforderungsparameter an den Betriebsparameter Speicherkapazität einer physi- sehe Festplatte, da es lokal auf der Festplatte installiert wird. Ein wohldefinierter Programmablauf kann beispielsweise sein, dass jederzeit die erzeugten Dokumente persistent gespeichert werden können. Zum persistenten Speichern stellt ein Office-Programm ebenfalls Anforderungsparameter an eine physische Festplatte. Bezüglich des Abgleichs von Dokumenten mit einer entfernten Dokumentenablage benötigt das Office- Programm eine Netzwerkanbindung, welche beispielsweise über eine physische Netzwerkkarte bereitgestellt wird. Anforde-
rungsparameter an die physische Netzwerkkarte kann dann beispielsweise eine vorgegebene Bandbreite sein.
Zum Bestimmen von Anforderungsparameter an einen physischen Arbeitsspeicher kann in einem Schritt 200 der Arbeitsspeicher als virtueller Arbeitsspeicher nachgebildet werden. Der Programmablauf des Office-Programms wird dann unter Verwendung des virtuellen Arbeitsspeichers, welchem ein Betriebsparameterprofil in einem Schritt 201 zugeordnet wurde, ausgeführt.
Das Ausführen des Office-Programms erfolgt in einem Schritt 202, wobei ein entsprechendes Betriebsparameterprofil, welches die Speicherkapazität des virtuellen Arbeitsspeichers festlegt, in einem Schritt 203 variiert wird. Beispielsweise wird die Kapazität bei mehreren Ausführungen des Programmablaufs durch ein Testprogramm, das über eine geeignete Schnittstelle die Veränderung der den Betriebsparametern zugewiesenen Werten vornehmen kann, sukzessive verringert. Der Programmablauf gilt beispielsweise als nicht mehr wohldefi- niert, wenn sich durch Auslagerung von Daten auf den Festplattenspeicher, aufgrund der verminderten Speicherkapazität des virtuellen Arbeitsspeichers, erhebliche Zeitverzögerungen ergeben. Die Zeitverzögerung ist eine Leistungskenngröße der verwendeten virtuellen Hardwareeinheit. Überschreitet die Zeitverzögerung eine vorgegebene Soll-Leistungskenngröße, ist der wohldefinierte Programmablauf nicht mehr gewährleistet.
Die Anforderungsparameter beschreiben nun diejenigen Betriebsparameter des Arbeitsspeichers, welche beim Ausführen des Office-Programms unter Verwendung des virtuellen Arbeitsspeichers die Soll-Leistungskenngröße erfüllen. Der Einsatz des erfindungsgemäßen Verfahrens im beschriebenen Beispiel ist vorteilhaft, weil die Anforderungsparameter des Office- Programms an den physischen Arbeitsspeicher systematisch und ohne Modifikationen an einem physischen Rechnersystem bestimmt werden können.
Im Verfahrensschritt 203 werden Betriebsparameterprofile variiert. Das Variieren umfasst hierbei das Zuweisen von veränderten Werten an die Betriebsparameter. Dies kann in Abhängigkeit eines weiteren Betriebsparameterprofils einer virtu- eilen Hardwareeinheit geschehen. Weiterhin können Betriebsparameter derart variiert werden, dass sich in einem Programmablauf gemessene Leistungskenngrößen in einem nächsten Programmablauf vermindern. Beispielsweise kann in jeweils nachfolgenden Programmabläufen die Taktung eines Prozessors ver- mindert werden, so dass die jeweilige Ausführung des Programmablaufs im Vergleich zum jeweils vorherigen Ausführen des Programmablaufs länger dauert. So kann beispielsweise getestet werden, bei welcher Taktung des Prozessors ein time- out auftritt. Wie die entsprechenden Betriebsparameter zu va- riieren sind, kann aus einem Datenspeicher ausgelesen werden, berechnet, geschätzt oder auch durch Benutzereingabe bestimmt werden .
Im Verfahrensschritt 204 werden die sich aus dem Betriebspa- rameterprofil und dem Programmablauf ergebenden Leistungskenngrößen überwacht. Eine Leistungskenngröße ist beispielsweise eine Ausführungszeit, die das Ausführen eines Programmablaufs unter Verwendung der virtuellen Hardwareeinheit benötigt. Anhand der überwachten Leistungskenngrößen werden in Verfahrensschritt 205 Anforderungsparameter an die physische Hardwareeinheit bestimmt.
Zum Bestimmen von Anforderungsparametern an die physische Hardwareeinheit können die Verfahrensschritte 200, 201, 202, 203, 204 und 205 parallel, teilweise parallel oder in der gleichen Reihenfolge iterativ ausgeführt werden. Beispielsweise kann der Verfahrensschritt 203, in welchem die Betriebsparameterprofile variiert werden, parallel zum Verfahrensschritt 202 durchgeführt werden. Hieraus ergibt sich, dass die Betriebsparameter während des Ausführens des Programmablaufs unter Verwendung der virtuellen Hardwareeinheit variiert werden.
Verfahrensschritt 204 "Überwachen der Leistungskenngröße" kann beispielsweise parallel zu Verfahrensschritt 202 "Ausführen des Programmablaufs" und Verfahrensschritt 203 "Variieren der Betriebsparameterprofile" durchgeführt werden, um so die sich ergebenden Leistungskenngrößen zu überwachen. Beispielsweise kann eine in Figur 2 beschriebene Überwachungseinrichtung He, Leistungskenngrößen, wie beispielsweise Ausführungszeiten von Programmabläufen mitprotokollieren, während eine Taktung eines nachgebildeten, virtuellen Prozes- sors während des Ausführens des Programmablaufs sukzessive vermindert wird. Beispielsweise kann auch Verfahrensschritt 201 parallel zum Ausführen des Programmablaufs in Verfahrensschritt 202 durchgeführt werden. Mögliche Ausführungsreihenfolgen der Verfahrensschritte sind in Figur 3 entsprechend durch Pfeile gekennzeichnet.
Figur 4 zeigt eine schematische Darstellung einer Rechneranlage 3 zur Bestimmung von Anforderungsparametern. Hierzu wird ein vorgegebener Programmablauf 300 durch ein Testprogramm 302 in einer Instanz eines Tests 301 bezüglich der Anforderungsparameter des vorgegebenen Programmablaufs an mindestens eine physische Hardwareeinheit getestet. Alternativ kann das Testprogramm 302 auch als "Test Driver" bezeichnet werden. Sowohl der Programmablauf 300, als auch das Testprogramm 302 greifen über ein Gastbetriebssystem 303, alternativ auch
"Guest-Operating-System" genannt, auf ein virtuelles Rechnersystem 304 zu.
Das virtuelle Rechnersystem umfasst die virtuellen Hardware- einheiten 305a, 305b, 305c, 305d und 305e. Die virtuellen
Hardwareeinheiten werden jeweils durch Nachbildeeinrichtungen 306a, 306b, 306c, 306d und 306e, welche in einer Nachbildevorrichtung 306 umfasst sein können, bereitgestellt. Die Nachbildeeinrichtungen 306a, 306b, 306c, 306d und 306e bilden jeweils eine physische Hardwareeinheit als eine virtuelle
Hardwareeinheit nach. Die Nachbildeeinrichtungen 306a, 306b, 306c, 306d und 306e können über eine Performance-Limiter- Einrichtung verfügen, welche das Betriebsparameterprofil der
jeweiligen virtuellen Hardwareeinheit derart variiert, dass sich eine abnehmende Leistungskenngröße bei jeder Wiederholung des Ausführens des Programmablaufs ergibt. Eine Performance-Limiter-Einrichtung kann beispielsweise einer in Figur 2 beschriebenen Variierungseinrichtung entsprechen. Performance-Limiter-Einrichtungen können über eine Performance- Limiting-Control-Einrichtung, über die die Schnittstelleneinrichtung 310 angesteuert wird, verfügen. Physische Hardwareeinheiten können beispielsweise als Netzwerkkarte, als Wech- selspeicherlaufwerk, als Festplatte, als Speicherbaustein, als Prozessor oder Mikroprozessor vorliegen.
Die Betriebsparameterprofile der virtuellen Hardwareeinheiten können durch das Testprogramm 302 über eine Schnittstellen- einrichtung 310 zugeordnet, beziehungsweise variiert werden. Das Testprogramm 302 veranlasst das Ausführen des Programmablaufs 300 für jeden Test 301 und überwacht die sich aus dem Programmablauf 300 und dem Betriebsparameterprofil der virtuellen Hardwareeinheit ergebenden Leistungskenngrößen. Leis- tungskenngrößen werden durch das Testprogramm 302 protokolliert, und in Abhängigkeit der protokollierten Leistungskenngrößen werden durch das Testprogramm 302 Anforderungsparameter des Programmablaufs 300 an die physische Hardwareeinheit bestimmt. Dies kann beispielsweise, wie bereits beschrieben, durch sukzessives Vermindern der Leistungskenngrößen und
Überwachen des Ausführens des Programmablaufs durchgeführt werden .
Die Nachbildevorrichtung 306 mit den ihr zugeordneten Nach- bildeeinrichtungen 306a, 306b, 306c, 306d und 306e greift über das Hostbetriebssystem 307, alternativ auch "Host- Operating-System" genannt, auf das physische Rechnersystem 308 zu, was in Figur 4 durch bidirektionale Pfeile gekennzeichnet ist. "Guest-Operating-System" 303 und "Host- Operating-System" 307 können beispielsweise als eine Version von Windows oder als eine Version von Linux vorliegen. Das physische Rechnersystem 308 verfügt über die physischen Hardwareeinheiten 309a, 309b, 309c, 309d und 309e.
In einer alternativen Ausführungsform können die Nachbildeeinrichtungen 306a, 306b, 306c, 306d und 306e physische Hardwareeinrichtungen nachbilden, welche sich bezüglich der Betriebsparameterprofile und der Definitionsbereiche der Betriebsparameter von den physischen Hardwareeinheiten 309a, 309b, 309c, 309d und 309e unterscheiden und somit ein physisches Rechnersystem nachbilden, welches nicht dem physischen Rechnersystem 308 entspricht.
Ein mögliches Einsatzszenario der in Figur 4 beschriebenen Rechneranlage 3 ist das Testen von virtuellen Hardwareeinheiten (305a, 305b, 305c, 305d, 305e) eines virtuellen Rechnersystems 304 bei einem Ausführen von Programmabläufen 300, un- ter Verwendung einer herkömmlichen Festplatte und/oder unter Verwendung eines Arbeitsspeichers. Ein vorteilhaftes Resultat wäre beispielsweise, dass aufgrund der überwachten Leistungskenngrößen teuerer Arbeitsspeicher durch vergleichsweise kostengünstigeren Festplattenspeicher zur Kostenreduktion er- setzt werden kann. Dies ist beispielsweise sinnvoll, wenn zur Gewährleistung des wohldefinierten Programmablaufs 300 die mit dem Arbeitsspeicher verglichen niedrigeren Zugriffszeiten einer Festplatte ausreichend sind. Somit können beispielsweise Auslagerungsdaten in hohem Umfang auf den, im Vergleich zu Arbeitsspeicher, kostengünstigeren Festplattenspeichern gespeichert werden. Da die Daten somit auf der Festplatte gespeichert sind und nicht auf dem Arbeitsspeicher, kann somit Arbeitsspeicher eingespart werden.
Ein weiteres Beispiel ist die Simulation der Verwendung von Flash Disks. Die Leistungskenngrößen Schreibgeschwindigkeit und Lesegeschwindigkeit sind bei Flash Disks im Gegensatz zu einer herkömmlichen Festplatte asymmetrisch. Beispielsweise benötigt ein Schreiben auf die Flash Disk länger, als ein Le- sen von der Flash Disk. Anhand der vorbeschriebenen Rechneranlage 3 können die physische Hardwareeinheit Festplatte und die physische Hardwareeinheit Flash Disk nachgebildet werden. Der Programmablauf kann nun ein erstes Mal unter Verwendung
einer virtuellen Festplatte und ein zweites mal unter Verwendung einer virtuellen Flash Disk ausgeführt werden. Durch Variieren der Betriebsparameterprofile der virtuellen Hardwareeinheit Festplatte und der virtuellen Hardwareeinheit Flash Disk, können nun systematisch deren Leistungskenngrößen beim Ausführen des Programmablaufs überwacht werden. Anhand des Tests kann beispielsweise das Ersetzen einer herkömmlichen Festplatte durch eine Flash Disk simuliert werden. Gewährleisten verminderte Leistungskenngrößen von physischen Hard- wareeinheiten eines bestehenden physischen Rechnersystems einen wohldefinierten Programmablauf, so können entsprechende physische Hardwareeinheiten durch physische Hardwareeinheiten mit verminderten Leistungskenngrößen eingesetzt werden. Hierdurch lässt sich eine Kostenreduktion erzielen.
Vorteilhaft ist hierbei, dass Anforderungsparameter systematisch, unter Einbeziehung eines Betriebssystems (303) , ohne Verwendung teurer, physischer Hardwarekomponenten (309a, 309b, 309c, 309d, 309e) und ohne Modifikationen an einem phy- sischen Rechnersystem (308) bestimmt werden können.