-
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 Rechneranlage, 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. Softwarekomponenten 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 Softwarekomponenten 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 nicht-funktionale Anforderung, die gewünscht und
notwendig ist. Andererseits 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 erheblich 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 mindestes 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 genau 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 Markovketten oder
gewichtete Petri-Netze zur Bestimmung von Anforderungsparametern,
erfordert aufwendigen Experteneinsatz, kann fehlerbehaftet und/oder
ungenau sein, was sich als besonders 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 Betriebsparametern
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ährleisten.
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 Festplatte 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 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. Ein
Programmablauf kann beispielsweise 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 eine 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
Ruckeln, 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 verwendeten 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 Anforderungsparameter 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 physischen 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 ckelnden 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 virtuellen Hardwareeinheit keine
entsprechende physische Hardwareeinheit.
-
Virtuelle
Hardwareeinheiten können
beispielsweise als emulierte Hardwareeinheiten oder als virtualisierte
Hardwareeinheiten 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 Leistungskenngröß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 Hardwareeinheit,
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 Betriebsparameterprofilen 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 Hypervisor ü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 Erfassens 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 Leistungskenngröß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ührungseinrichtung,
eine Variierungseinrichtung und/oder eine Anforderungsparameterbestimmungseinrichtung verfügen. Die
Nachbildeinrichtung, die Zuordnungseinrichtung, die Ausführungseinrichtung,
die Variierungseinrichtung und/oder die Anforderungsparameterbestimmungseinrichtung
können
auch in der Steuereinrichtung umfasst sein.
-
Die
Nachbildeeinrichtung kann die physische Hardwareeinheit als virtuelle
Hardwareeinheit nachbilden und Funktionalität der physischen Hardwareeinheit
durch die virtuelle Hardwareeinheit bereitstellen. Die Zuordnungseinrichtung
kann virtuellen Hardwareeinheiten entsprechende Betriebsparameterprofile
zuordnen.
-
Die
Ausführungseinrichtung
kann den vorgegebenen Programmablauf 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 Prozessor, 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
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
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 Anforderungsparameterbestimmungseinrichtung, die Anforderungsparameter
des Programmablaufs an die Hardwareeinheit bestimmen.
-
Die
Nachbildeeinrichtung, die Zuordnungseinrichtung, die Ausführungseinrichtung,
die Variierungseinrichtung, die Überwachungseinrichtung
und die Anforderungsparameterbestimmungseinrichtung können in
physischer Form vorliegen, sie können aber
auch als nachgebildete Hardwareeinheiten virtuell vorliegen, 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 physische 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 beschriebenen Ausführungsbeispiele.
Im Weiteren wird die Erfindung anhand beispielhafter Implementierungen
unter Bezugnahme auf die beigelegten Figuren näher erläutert. Es zeigt dabei:
-
1 ein
Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen von
Anforderungsparametern;
-
2 eine
schematische Darstellung einer Rechneranlage zur Bestimmung von
Anforderungsparametern;
-
3 ein
Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen von
Anforderungsparametern; und
-
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.
-
1 zeigt
ein Ablaufdiagramm einer Variante eines Verfahrens zum Bestimmen
von Anforderungsparametern. Hierbei wird in einem ersten Verfahrensschritt 100 ein
vorgegebener Programmablauf 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 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 vorgegebenen 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 eine 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 Verfahrensschritt 102 Anforderungsparameter des
Programmablaufs an die physische Hardwareeinheit bestimmt.
-
2 zeigt
eine schematische Darstellung einer Rechneranlage 1 zur
Bestimmung von Anforderungsparametern eines vorgegebenen Programmablaufs
an mindestens eine physische Hardwareeinheit. Die Rechneranlage 1 verfügt über eine
Steuereinrichtung 11, welche über eine Schnittstelleneinrichtung 11a 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 Recheneinheit
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.
Beispielsweise 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 2 beschriebene Rechneranlage 1 eine
Ausgabeeinheit 10, welche die durch die Steuereinrichtung 11 erfassten
Anforderungsparameter ausgibt. Eine Ausgabeeinheit 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 1 beschriebenen Verfahrensschritte kann die Steuereinrichtung 11 folgende
Einrichtungen umfassen: eine Zuordnungseinrichtung 11b zum
Zuordnen des Betriebsparameterprofils an die virtuelle Hardwareeinheit,
eine Ausführungseinrichtung 11c zum
Ausführen
des vorgegebenen Programmablaufs unter Verwendung der virtuellen
Hardwareeinheit, eine Variierungseinrichtung 11d zum Variieren
des Betriebsparameterprofils der virtuellen Hardwareeinheit während des
Programmablaufs, eine Überwachungseinrichtung 11e zum Überwachen
der Leistungskenngröße und eine Anforderungsparameterbestimmungseinrichtung 11f zum
Bestimmen der Anforderungsparameter.
-
Durch
die Zuordnungseinheit 11b wird einer virtuellen Hardwareeinheit,
welche von einer der Nachbildeeinrichtungen 12, 13 oder 14 bereitgestellt wird,
ein Betriebsparameterprofil zugeordnet. Geeignete Betriebsparameterprofile
werden durch die Zuordnungseinheit 11b 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 Definitionsbereichs 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 Hardwareeinheiten 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 11d 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 11d ferner über die
Steuereinrichtung 11 aus einem Datenspeicher 9 auslesen.
-
Die Überwachung
der Leistungskenngrößen geschieht
durch eine Überwachungseinrichtung 11e. Die Überwachungseinrichtung 11e überwacht
Leistungskenngrößen einer
Hardwareeinheit, einer Auswahl von Hardwareeinheiten oder des gesamten
virtuellen Rechnersystems. Aus den überwachten Leistungskenngrößen bestimmt
die Anforderungsparameterbestimmungseinrichtung 11f die
Anforderungsparameter des Programmablaufs an die physische Hardwareeinheit.
Die Anforderungsparameter sind diejenigen Betriebsparameter, die
einen wohldefinierten Programmablauf gewährleisten. Hierbei können sich
Anforderungsparameter auf eine physische Hardwareeinheit, eine Auswahl
von physischen Hardwareeinheiten oder ein physisches Rechnersystem
beziehen.
-
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 Verfahrensschritten 201, 202, 203 und 204,
was in 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 beispielsweise
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 2 beschriebene
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 physischen 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 vorhandenen physischen
Speicherkapazität
anbieten zu können.
-
In
einem virtuellen Rechnersystem kann die Anzahl der umfassten 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 Hardwareeinheit.
-
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
serverseitig oder clientseitig und/oder verteilt ausgeführt werden.
-
Beispielsweise
stellt ein Office-Programm Anforderungsparameter an den Betriebsparameter Speicherkapazität einer
physische 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
wohldefiniert, 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 virtuellen 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 vermindert 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 variieren sind,
kann aus einem Datenspeicher ausgelesen werden, berechnet, geschätzt oder
auch durch Benutzereingabe bestimmt werden.
-
Im
Verfahrensschritt 204 werden die sich aus dem Betriebsparameterprofil
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 2 beschriebene Überwachungseinrichtung 11e,
Leistungskenngrößen, wie
beispielsweise Ausführungszeiten
von Programmabläufen
mitprotokollieren, während
eine Taktung eines nachgebildeten, virtuellen Prozessors 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 3 entsprechend
durch Pfeile gekennzeichnet.
-
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 Hardwareeinheiten 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 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 Wechselspeicherlaufwerk, als
Festplatte, als Speicherbaustein, als Prozessor oder Mikroprozessor
vorliegen.
-
Die
Betriebsparameterprofile der virtuellen Hardwareeinheiten können durch
das Testprogramm 302 über
eine Schnittstelleneinrichtung 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. Leistungskenngröß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 Nachbildeeinrichtungen 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 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 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,
unter 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 ersetzt 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 Lesen 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 Hardwareeinheiten 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 physischen Rechnersystem (308)
bestimmt werden können.