DE112013002995T5 - Real-time measurement of virtualization I / O processing delays - Google Patents

Real-time measurement of virtualization I / O processing delays Download PDF

Info

Publication number
DE112013002995T5
DE112013002995T5 DE201311002995 DE112013002995T DE112013002995T5 DE 112013002995 T5 DE112013002995 T5 DE 112013002995T5 DE 201311002995 DE201311002995 DE 201311002995 DE 112013002995 T DE112013002995 T DE 112013002995T DE 112013002995 T5 DE112013002995 T5 DE 112013002995T5
Authority
DE
Germany
Prior art keywords
instance
signal
processor
computer
service time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE201311002995
Other languages
German (de)
Other versions
DE112013002995B4 (en
Inventor
c/o IBM Corp. Yudenfriend Harry
c/o IBM Corp. Oakes Kenneth James
c/o IBM Corp. Gassert Francis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112013002995T5 publication Critical patent/DE112013002995T5/en
Application granted granted Critical
Publication of DE112013002995B4 publication Critical patent/DE112013002995B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

Ein Computersystem beinhaltet einen Speicher, der in eine Mehrzahl von logischen Partitionen (LPARs) aufgeteilt ist, wobei jede LPAR eine von einer Mehrzahl von Instanzen eines Betriebssystems (O/S) ausführt. Das System beinhaltet außerdem einen Prozessor, der so konfiguriert ist, dass er ein Hypervisor-Programm ausführt, um einen Betrieb der Mehrzahl von LPARs zu verwalten. Der Prozessor ermittelt eine Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server, misst eine tatsächliche E/A-Service-Zeit des Vorgangs und ermittelt eine Verzögerungszeit der Virtualisierung auf dem Server auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit.A computer system includes a memory that is divided into a plurality of logical partitions (LPARs), each LPAR executing one of a plurality of instances of an operating system (O / S). The system also includes a processor configured to execute a hypervisor program to manage operation of the plurality of LPARs. The processor determines a reference I / O service time of an I / O operation on a server, measures an actual I / O service time of the operation, and determines a virtualization delay time on the server based on the reference E / A service time and the actual I / O service time.

Figure DE112013002995T5_0001
Figure DE112013002995T5_0001

Description

TECHNISCHES GEBIETTECHNICAL AREA

Die vorliegende Erfindung bezieht sich auf ein Messen der Verzögerung der Verarbeitung von E/A-Vorgängen, die durch Server-Virtualisierung verursacht wird, und im Besonderen auf ein Messen eines Zeitraums, der von einem Hypervisor in Anspruch genommen wird, um mehrere Instanzen eines Betriebssystems zu verwalten.The present invention relates to measuring the delay in processing I / O operations caused by server virtualization, and more particularly to measuring a period of time taken by a hypervisor for multiple instances of an operating system manage.

HINTERGRUNDBACKGROUND

Bei Computern, die mit virtuellen Maschinen arbeiten, teilt ein Hypervisor-Programm physische Ressourcen, darunter eine Zentraleinheit (central processing unit, CPU), Speicher, Speicherplatz und E/A-Einheiten, eines realen Computers in getrennte virtuelle Maschinen auf. Beispielsweise kann der Hypervisor einen vorgegebenen Zeitrahmen, in dem jede virtuelle Maschine auf die CPU zugreifen kann, und vorgegebene Abschnitte von Speicher oder Speicherplatz zuordnen, auf die durch die jeweiligen virtuellen Maschinen zugegriffen werden kann.In computers that work with virtual machines, a hypervisor program splits physical resources, including a central processing unit (CPU), memory, storage, and I / O units, of a real computer into separate virtual machines. For example, the hypervisor may allocate a predetermined time frame in which each virtual machine can access the CPU, and predetermined portions of memory or storage space that can be accessed by the respective virtual machines.

Wenn ein Interrupt auftritt, der auf eine bestimmte virtuelle Maschine abzielt, empfängt der Hypervisor den Interrupt und ermittelt, an welche virtuelle Maschine der Interrupt gerichtet ist. Wenn eine weitere virtuelle Maschine System-Ressourcen wie zum Beispiel die CPU verwendet, wird eine Verzögerung beim Verarbeiten des Interrupts durch die virtuelle Zielmaschine verursacht, bis der Hypervisor die CPU so steuert, dass sie beginnt, die virtuelle Zielmaschine auszuführen. Die virtuelle Zielmaschine kann dann eine oder mehrere Funktionen auf Grundlage des Empfangs des Interrupts durchführen.When an interrupt occurs that targets a particular virtual machine, the hypervisor receives the interrupt and determines which virtual machine the interrupt is addressed to. When another virtual machine uses system resources, such as the CPU, a delay in processing the interrupt is caused by the destination virtual machine until the hypervisor controls the CPU to start executing the destination virtual machine. The destination virtual machine may then perform one or more functions based on receipt of the interrupt.

Zu sonstigen Verzögerungen, die daraus resultieren, dass der Hypervisor mehrere virtuelle Maschinen verwaltet, zählen ein Emulationsaufwand, in dem Anweisungen und Vorgänge zum Zugreifen auf E/A-Einheiten durch den Hypervisor abgefangen werden, und Planungsverzögerungen aufgrund einer Übertragung und eines Empfangs von Paketen, an denen mehrere Hypervisor-Threads und virtuelle Maschinen beteiligt sind.Other delays that result from the hypervisor managing multiple virtual machines include emulation overhead in which instructions and operations for accessing I / O devices are intercepted by the hypervisor, and scheduling delays due to transmission and reception of packets, involving multiple hypervisor threads and virtual machines.

Daher besteht nach dem Stand der Technik ein Bedarf, das oben genannte Problem zu lösen.Therefore, there is a need in the art to solve the above problem.

KURZDARSTELLUNGSUMMARY

Beispielhafte Ausführungsformen beinhalten ein Verfahren zum Ermitteln einer Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server. Der Server kann einen Prozessor beinhalten, der einen Hypervisor ausführt, der so konfiguriert ist, dass er eine Mehrzahl von logischen Partitionen (LPARs) verwaltet, und jede LPAR kann eine von einer Mehrzahl von Instanzen eines Betriebssystems (operating system, O/S) ausführen. Das Verfahren kann des Weiteren ein Messen einer tatsächlichen E/A-Service-Zeit des E/A-Vorgangs durch den Prozessor und ein Ermitteln einer Verzögerungszeit der Virtualisierung auf dem Server durch den Prozessor auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit beinhalten.Exemplary embodiments include a method for determining a reference I / O service time of an I / O operation on a server. The server may include a processor executing a hypervisor configured to manage a plurality of logical partitions (LPARs), and each LPAR may execute one of a plurality of instances of an operating system (O / S) , The method may further include, by the processor, measuring an actual I / O service time of the I / O operation by the processor and determining a delay time of the virtualization on the server by the processor based on the reference I / O service time and the actual I / O service time.

Von einem ersten Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Verfahren zum Verwalten mehrerer Instanzen eines Betriebssystems bereit, das aufweist: Ermitteln einer Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server; Messen einer tatsächlichen E/A-Service-Zeit des E/A-Vorgangs mit einem Prozessor des Servers, der einen Hypervisor ausführt, der so konfiguriert ist, dass er eine Mehrzahl von logischen Partitionen (LPARs) verwaltet, wobei jede LPAR eine von einer Mehrzahl von Instanzen eines Betriebssystems (O/S) ausführt; und Ermitteln einer Verzögerungszeit einer Virtualisierung auf dem Server durch den Prozessor auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit.Viewed from a first aspect, the present invention provides a method for managing multiple instances of an operating system, comprising: determining a reference I / O service time of an I / O operation on a server; Measuring an actual I / O service time of the I / O operation with a processor of the server executing a hypervisor configured to manage a plurality of logical partitions (LPARs), each LPAR containing one of a Runs a plurality of instances of an operating system (O / S); and determining, by the processor, a delay time of virtualization on the server based on the reference I / O service time and the actual I / O service time.

Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computersystem zum Verwalten mehrerer Instanzen eines Betriebssystems bereit, das aufweist: einen Speicher, der in eine Mehrzahl von logischen Partitionen (LPARs) aufgeteilt ist, wobei jede LPAR so konfiguriert ist, dass sie eine von einer Mehrzahl von Instanzen eines Betriebssystems (O/S) ausführt; einen Prozessor, der so konfiguriert ist, dass er eine Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server ermittelt, eine tatsächliche E/A-Service-Zeit des E/A-Vorgangs misst und eine Verzögerungszeit der Virtualisierung auf dem Server auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit ermittelt.Viewed from a further aspect, the present invention provides a computer system for managing a plurality of instances of an operating system, comprising: a memory partitioned into a plurality of logical partitions (LPARs), each LPAR being configured to have one from a plurality of instances of an operating system (O / S) executes; a processor configured to detect a reference I / O service time of an I / O operation on a server, measure an actual I / O service time of the I / O operation, and a delay time The virtualization on the server is determined based on the reference I / O service time and the actual I / O service time.

Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Verwalten mehrerer Instanzen eines Betriebssystems bereit, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung gelesen werden kann und das Anweisungen zum Ausführen durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens zum Durchführen der Schritte der Erfindung speichert.Viewed from a further aspect, the present invention provides a computer program product for managing multiple instances of an operating system, the computer program product having a computer readable storage medium readable by a processing circuit and instructions for execution by the processing circuitry for performing a method of performing stores the steps of the invention.

Von einem weiteren Aspekt aus betrachtet, stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem computerlesbaren Medium gespeichert ist und in den internen Speicher eines Digitalcomputers geladen werden kann, das Abschnitte eines Software-Codes aufweist, um die Schritte der Erfindung durchzuführen, wenn das Programm auf einem Computer ausgeführt wird.Viewed from another aspect, the present invention provides a computer program stored on a computer-readable medium and capable of being loaded into the internal memory of a digital computer having portions of software code associated therewith Steps of the invention to perform when the program is run on a computer.

Zusätzliche beispielhafte Ausführungsformen beinhalten ein Computerprogrammprodukt, das ein nichttransitorisches Speichermedium beinhaltet, das von einer Verarbeitungsschaltung eines Computers gelesen werden kann und das Anweisungen zur Ausführung durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens speichert. Das Verfahren kann ein Ermitteln einer Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server beinhalten. Der Server kann einen Prozessor beinhalten, der einen Hypervisor ausführt, der so konfiguriert ist, dass er eine Mehrzahl von logischen Partitionen (LPARs) verwaltet, und jede LPAR kann eine von einer Mehrzahl von Instanzen eines Betriebssystems (operating system, O/S) ausführen. Das Verfahren kann des Weiteren ein Messen einer tatsächlichen E/A-Service-Zeit des E/A-Vorgangs durch den Prozessor und ein Ermitteln einer Verzögerungszeit der Virtualisierung auf dem Server durch den Prozessor auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit beinhalten.Additional exemplary embodiments include a computer program product that includes a non-transitory storage medium that may be read by a processing circuitry of a computer and that stores instructions for execution by the processing circuitry to perform a method. The method may include determining a reference I / O service time of an I / O operation on a server. The server may include a processor executing a hypervisor configured to manage a plurality of logical partitions (LPARs), and each LPAR may execute one of a plurality of instances of an operating system (O / S) , The method may further include, by the processor, measuring an actual I / O service time of the I / O operation by the processor and determining a delay time of the virtualization on the server by the processor based on the reference I / O service time and the actual I / O service time.

Weitere beispielhafte Ausführungsformen beinhalten ein Computersystem, das einen Speicher, der in eine Mehrzahl von logischen Partitionen (LPARs) aufgeteilt ist, wobei jede LPAR eine von einer Mehrzahl von Instanzen eines Betriebssystems (O/S) ausführt, und einen Prozessor beinhaltet. Der Prozessor ist so konfiguriert, dass er ein Hypervisor-Programm ausführt, um einen Betrieb der Mehrzahl von LPARs zu verwalten. Der Prozessor kann eine Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server ermitteln und eine tatsächliche E/A-Service-Zeit des E/A-Vorgangs messen. Der Prozessor kann des Weiteren eine Verzögerungszeit einer Virtualisierung auf dem Server auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit ermitteln.Other exemplary embodiments include a computer system that includes a memory that is divided into a plurality of logical partitions (LPARs), each LPAR that executes one of a plurality of instances of an operating system (O / S), and a processor. The processor is configured to execute a hypervisor program to manage operation of the plurality of LPARs. The processor may determine a reference I / O service time of an I / O operation on a server and measure an actual I / O service time of the I / O operation. The processor may further determine a virtualization delay time on the server based on the reference I / O service time and the actual I / O service time.

Zusätzliche Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung umgesetzt. Sonstige Ausführungsformen und Aspekte der Erfindung werden hierin ausführlich beschrieben und werden als Teil der beanspruchten Erfindung betrachtet. Zum besseren Verständnis der Erfindung mit den Vorteilen und Merkmalen sei auf die Beschreibung und auf die Zeichnungen verwiesen.Additional features and advantages are realized by the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered part of the claimed invention. For a better understanding of the invention with the advantages and features, reference is made to the description and to the drawings.

KURZBESCHREIBUNG DER ZEICHNUNGENBRIEF DESCRIPTION OF THE DRAWINGS

Die vorliegende Erfindung wird nun lediglich beispielhaft unter Bezugnahme auf bevorzugte Ausführungsformen beschrieben, wie sie in den folgenden Figuren veranschaulicht werden:The present invention will now be described, by way of example only, with reference to preferred embodiments as illustrated in the following figures:

1 veranschaulicht ein virtuelles Maschinensystem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; 1 illustrates a virtual machine system according to a preferred embodiment of the present invention;

2 veranschaulicht einen Unterkanal-Messblock gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; 2 illustrates a subchannel gauge block according to a preferred embodiment of the present invention;

3 veranschaulicht ein Blockschaubild eines Verfahrens gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; 3 Figure 12 illustrates a block diagram of a method according to a preferred embodiment of the present invention;

4 veranschaulicht ein Computersystem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; und 4 illustrates a computer system according to a preferred embodiment of the present invention; and

5 veranschaulicht ein computerlesbares Medium gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung. 5 illustrates a computer readable medium according to a preferred embodiment of the present invention.

AUSFÜHRLICHE BESCHREIBUNGDETAILED DESCRIPTION

Bei beispielhaften Ausführungsformen wird eine Verzögerung, die durch einen Hypervisor verursacht wird, der mehrere virtuelle Maschinen oder logische Partitionen (LPARs) verwaltet, in Echtzeit berechnet, indem eine verstrichene Zeit von einer Erzeugung eines E/A-Interrupts durch einen Unterkanal und einem Zeitpunkt berechnet wird, an dem das Zielbetriebssystem (O/S) durch den Hypervisor zugeteilt wird, und ein Signal erzeugt wird, dass der E/A-Interrupt empfangen und verarbeitet worden ist.In exemplary embodiments, a delay caused by a hypervisor managing multiple virtual machines or logical partitions (LPARs) is calculated in real-time by calculating an elapsed time from generation of an I / O interrupt by a subchannel and a time at which the target operating system (O / S) is allocated by the hypervisor and a signal is generated that the I / O interrupt has been received and processed.

1 veranschaulicht ein Blockschaubild eines virtuellen Maschinensystems 100 gemäß einer Ausführungsform der vorliegenden Offenbarung. Das System 100 beinhaltet eine oder mehrere reale CPUs 111 und einen realen Host-Speicher 112. Abhängig von den Konstruktionsanforderungen des Systems 100 können die eine oder mehreren realen CPUs 111 jeweils einem getrennten Prozessor entsprechen, oder jede CPU 111 kann einer Mehrzahl von Prozessoren, Verarbeitungseinheiten oder Verarbeitungskernen entsprechen. Das System 100 beinhaltet des Weiteren ein E/A-Teilsystem 120 und eine oder mehrere virtuelle Maschinen 130, 140 und 150. Die virtuellen Maschinen 130, 140 und 150 können auch als logische Partitionen (LPARs) 130, 140 und 150 bezeichnet werden. Das System 100 ist mit einer oder mehreren externen Speichereinheiten 160 verbunden. 1 illustrates a block diagram of a virtual machine system 100 according to an embodiment of the present disclosure. The system 100 includes one or more real CPUs 111 and a real host memory 112 , Depending on the design requirements of the system 100 can one or more real CPUs 111 each correspond to a separate processor, or each CPU 111 may correspond to a plurality of processors, processing units or processing cores. The system 100 also includes an I / O subsystem 120 and one or more virtual machines 130 . 140 and 150 , The virtual machines 130 . 140 and 150 can also be called logical partitions (LPARs) 130 . 140 and 150 be designated. The system 100 is with one or more external storage devices 160 connected.

Jede virtuelle Maschine 130 kann eine Instanz oder ein Abbild eines Betriebssystems (O/S) 131, 141 und 151 (auch als Gast-O/S 131, 141 und 151 bezeichnet) beinhalten. Jede virtuelle Maschine kann des Weiteren eine oder mehrere Anwendungen 132, 142, 152, Zwischenanwendungen 133, 143, 153 und virtuelle private Speicher 134, 144 und 154 beinhalten. Für Beschreibungszwecke wird die virtuelle Maschine 130 als Beispiel beschrieben, wenngleich es sich versteht, dass die Beschreibung der virtuellen Maschine 130 für jede der virtuellen Maschinen 130, 140 und 150 gilt.Every virtual machine 130 can be an instance or an image of an operating system (O / S) 131 . 141 and 151 (also as guest O / S 131 . 141 and 151 referred to) include. Each virtual machine can also have one or more applications 132 . 142 . 152 , Intermediate applications 133 . 143 . 153 and virtual private storage 134 . 144 and 154 include. For descriptive purposes, the virtual machine 130 as an example, although it is understood that the description of the virtual machine 130 for each of the virtual machines 130 . 140 and 150 applies.

Bei dem Gast-O/S 131 kann es sich um eine Instanz oder ein Abbild eines O/S handeln, das in dem realen Host-Speicher 112 gespeichert ist. In ähnlicher Weise kann es sich bei der Anwendung 132 und der Zwischenanwendung 133 um Instanzen oder Abbilder von Anwendungen und Zwischenanwendungen handeln, die in dem realen Host-Speicher 112 gespeichert sind. Bei dem virtuellen privaten Speicher 134 kann es sich um Speicheradressen innerhalb des realen Host-Speichers 112 handeln, die als der virtuellen Maschine 130 entsprechend bezeichnet sind. Im Betrieb arbeitet jede virtuelle Maschine 130, 140 und 150 getrennt von jeder anderen virtuellen Maschine 130, 140 und 150, wobei sie getrennte Instanzen von Betriebssystemen, Anwendungen und Zwischenanwendungen ausführt und Daten in einem getrennten Speicher oder in Abschnitten des realen Host-Speichers 112 speichert, die als den jeweiligen virtuellen Maschinen 130, 140 und 150 entsprechend bezeichnet sind.At the guest O / S 131 it can be an instance or an image of an O / S that resides in the real host memory 112 is stored. Similarly, it may be in the application 132 and the intermediate application 133 to act instances or images of applications and intermediate applications that reside in the real host memory 112 are stored. In the virtual private storage 134 These may be memory addresses within the real host memory 112 act as the virtual machine 130 are designated accordingly. In operation, every virtual machine works 130 . 140 and 150 disconnected from any other virtual machine 130 . 140 and 150 where it runs separate instances of operating systems, applications and intermediate applications, and data in a separate memory or portions of the real host memory 112 saves as the respective virtual machines 130 . 140 and 150 are designated accordingly.

Das E/A-Teilsystem 120 beinhaltet einen Hypervisor 121 oder eine LPAR-Zuteilerroutine 121 zum Steuern des Betriebs der virtuellen Maschinen 130, 140 und 150. Der Hypervisor 121 kann einen virtuellen privaten Speicher 122 aufweisen, der dem Hypervisor 121 zugeordnet ist. Bei dem Hypervisor 121 kann es sich um ein Programm handeln, das in dem realen Host-Speicher 112 gespeichert ist und durch die eine oder mehreren CPUs 111 ausgeführt wird, und der virtuelle private Speicher 122 kann ein Segment des realen Host-Speichers 112 sein, der dem Hypervisor 121 zugeordnet ist.The I / O subsystem 120 includes a hypervisor 121 or an LPAR dispatcher routine 121 for controlling the operation of the virtual machines 130 . 140 and 150 , The hypervisor 121 can be a virtual private storage 122 that is the hypervisor 121 assigned. At the hypervisor 121 it can be a program that resides in the real host memory 112 is stored and by the one or more CPUs 111 is executed, and the virtual private memory 122 can be a segment of the real host memory 112 be the hypervisor 121 assigned.

Der Hypervisor 121 verwaltet die virtuellen Maschinen 130, 140 und 150, indem er steuert, welche virtuelle Maschine 130, 140 und 150 zum jeweiligen Zeitpunkt auf die eine oder mehreren realen CPUs 111 zugreifen darf, und indem er ermittelt, welche übertragenen und empfangenen Signale, Anweisungen oder sonstigen Daten welcher virtuellen Maschine 130, 140 und 150 entsprechen. Wenn zum Beispiel ein Signal aus einem Unterkanal 113 für die virtuelle Maschine 130 empfangen wird, während die virtuelle Maschine 150 die eine oder mehreren CPUs 111 nutzt, speichert der Hypervisor 121 das Signal, bis die virtuelle Maschine 130 ausgeführt wird, und stellt der virtuellen Maschine 130 das Signal bereit.The hypervisor 121 manages the virtual machines 130 . 140 and 150 by controlling which virtual machine 130 . 140 and 150 at the time to the one or more real CPUs 111 and by determining which transmitted and received signals, instructions or other data of which virtual machine 130 . 140 and 150 correspond. If, for example, a signal from a subchannel 113 for the virtual machine 130 is received while the virtual machine 150 the one or more CPUs 111 uses, stores the hypervisor 121 the signal until the virtual machine 130 runs and sets the virtual machine 130 the signal ready.

Das E/A-Teilsystem 120 beinhaltet des Weiteren einen oder mehrere Unterkanäle 113. Die Unterkanäle 113 können Datenübertragungsanschlüssen, die Schaltungen unterstützen, und einem Speicher zum Austauschen von Daten zwischen dem System 100 und externen Einheiten wie zum Beispiel der externen Speichereinheit 160 entsprechen. Wenngleich ein Unterkanal 113 und eine externe Speichereinheit 160 in 1 veranschaulicht werden, versteht es sich, dass Ausführungsformen der vorliegenden Offenbarung eine beliebige Anzahl von Unterkanälen 113 umfassen, die mit einer beliebigen Anzahl von externen Speichereinheiten 160 verbunden sind. Im Besonderen können spezifische Unterkanäle 113 spezifischen externen Speichereinheiten 160 entsprechen, sodass ein Betriebssystem auf bestimmte Unterkanäle 113 zugreifen muss, um auf entsprechende externe Speichereinheiten 160 zuzugreifen.The I / O subsystem 120 further includes one or more subchannels 113 , The subchannels 113 For example, data transfer ports supporting circuits and memory for exchanging data between the system 100 and external devices such as the external storage device 160 correspond. Although a subchannel 113 and an external storage unit 160 in 1 It should be understood that embodiments of the present disclosure include any number of subchannels 113 include with any number of external storage devices 160 are connected. In particular, specific subchannels 113 specific external storage devices 160 correspond to an operating system on specific subchannels 113 must access to appropriate external storage devices 160 access.

Bei Ausführungsformen der vorliegenden Offenbarung verfolgt der Hypervisor 121 in Echtzeit eine Zeit, die erforderlich ist, um die virtuellen Maschinen 130, 140 und 150 zu verwalten. Das Verwalten der virtuellen Maschinen 130, 140 und 150 kann ein Speichern von Signalen, Befehlen, Interrupts oder sonstigen Daten beinhalten, die für eine bestimmte virtuelle Maschine bestimmt sind, bis diese bestimmte virtuelle Maschine ausgeführt wird. Das Verwalten der virtuellen Maschinen kann außerdem ein Ermitteln beinhalten, ob der Betrieb einer virtuellen Maschine beendet werden sollte, um einer weiteren virtuellen Maschine Zugriff zu gewähren. Wenn zum Beispiel die drei virtuellen Maschinen 130, 140 und 150 sämtlich die CPUs 111 nutzen, kann der Hypervisor 121 die virtuellen Maschinen 130, 140 und 150 so steuern, dass jede virtuelle Maschine 130, 140 und 150 während eines Drittels der Zeit auf die CPUs zugreift. Der Hypervisor 121 kann jedoch auf Grundlage eines empfangenen oder verarbeiteten Befehls-, Signal- oder Datentyps, eines Typs eines Vorgangs, der durch eine virtuelle Maschine ausgeführt wird oder einer beliebigen sonstigen Überlegung ermitteln, ob bei der Aufteilung der Zeit unter den virtuellen Maschinen 130, 140 und 150 eine Ausnahme gemacht werden sollte, um einer virtuellen Maschine zu ermöglichen, einen Teil der Zeit der anderen zu nutzen.In embodiments of the present disclosure, the hypervisor keeps track of 121 in real time a time that is required to run the virtual machines 130 . 140 and 150 manage. Managing the virtual machines 130 . 140 and 150 may include storing signals, commands, interrupts, or other data destined for a particular virtual machine until that particular virtual machine is executed. The management of the virtual machines may also include determining whether the operation of a virtual machine should be terminated to grant access to another virtual machine. If, for example, the three virtual machines 130 . 140 and 150 all the CPUs 111 can use the hypervisor 121 the virtual machines 130 . 140 and 150 so control that every virtual machine 130 . 140 and 150 during one third of the time accessing the CPUs. The hypervisor 121 however, can determine whether to allocate time among the virtual machines based on a received or processed command, signal, or data type, type of operation performed by a virtual machine, or any other consideration 130 . 140 and 150 An exception should be made to allow one virtual machine to use one part of the other's time.

Im Betrieb kann eine Anwendung 132 oder eine Zwischenanwendung 133, die auf der einen oder den mehreren CPUs 111 arbeiten, Zugriff zu einer Einheit wie zum Beispiel der externen Speichereinheit 160 anfordern. Der Zugriff kann ein Abrufen von Daten in einem Ladevorgang oder ein Senden von Daten in einem Speichervorgang beinhalten. Wenngleich die externe Speichereinheit 160 als Beispiel für eine Einheit bereitgestellt wird, auf die durch das System 100 zugegriffen werden kann, versteht es sich, dass durch das System 100 auf eine beliebige Einheit wie zum Beispiel eine Medieneinheit, Anzeigeeinheit, Speichereinheit, Netzwerkeinheit oder eine beliebige sonstige Einheit zugegriffen werden kann. Das Gast-O/S 131 erzeugt ein Zugriffsanforderungssignal auf Grundlage der Anforderung von der Anwendung 132 oder der Zwischenanwendung 133. Bei einer Ausführungsform handelt es sich bei dem Zugriffsanforderungssignal um ein Unterkanalstart(Start SubChannel, SSCH)-Signal.In operation, an application 132 or an intermediate application 133 on one or more CPUs 111 work, access to a device such as the external storage device 160 Request. The access may include retrieving data in a load or sending data in a store. Although the external storage unit 160 as an example of a unit being provided by the system 100 can be accessed, it is understood that through the system 100 any unit such as a media unit, display unit, storage unit, network unit or any other unit can be accessed. The guest O / S 131 generates an access request signal based on the request from the application 132 or the intermediate application 133 , At a Embodiment, the access request signal is a subchannel start (Start SubChannel, SSCH) signal.

Das Gast-O/S 131 überträgt das SSCH-Signal an das E/A-Teilsystem 120. Das E/A-Teilsystem 120 kann ermitteln, welcher Unterkanal von einer Mehrzahl von Unterkanälen der Einheit 160 entspricht, bei der es sich um das gewünschte Ziel der SSCH-Anforderung handelt. Das E/A-Teilsystem 120 überträgt das SSCH mit der Adresse der gewünschten Einheit 160 an den Unterkanal 113, der einen oder mehrere Switches oder sonstige Einheiten so steuert, dass eine Datenübertragung zwischen dem Unterkanal 113 und der externen Speichereinheit 160 ermöglicht wird. Bei einem Ladevorgang können Daten von einer spezifizierten Adresse der externen Speichereinheit 160 dem Unterkanal 113 bereitgestellt werden. Bei einem Speichervorgang können Daten aus dem Unterkanal 113 der externen Speichereinheit 160 bereitgestellt werden.The guest O / S 131 transmits the SSCH signal to the I / O subsystem 120 , The I / O subsystem 120 may determine which subchannel of a plurality of subchannels of the unit 160 which is the desired target of the SSCH request. The I / O subsystem 120 transmits the SSCH with the address of the desired unit 160 to the subchannel 113 which controls one or more switches or other units such that a data transfer between the subchannel 113 and the external storage device 160 is possible. In a loading operation, data may be from a specified address of the external storage unit 160 the subchannel 113 to be provided. In a save operation, data from the subchannel 113 the external storage unit 160 to be provided.

Nachdem auf die externe Speichereinheit 160 zugegriffen worden ist und gegebenenfalls Daten in dem realen Host-Speicher 112 gespeichert worden sind, erzeugt der Unterkanal 113 einen E/A-Interrupt und stellt den E/A-Interrupt dem Hypervisor 121 bereit, wodurch angegeben wird, dass ein Vorgang abgeschlossen worden ist. Der Hypervisor 121 kann ein Gast-O/S oder eine Instanz aus den virtuellen Maschinen 130, 140 und 150 ermitteln, für die der E/A-Interrupt bestimmt ist. Beispielsweise kann der Hypervisor 121 ermitteln, dass der E/A-Interrupt dem Gast-O/S 131 bereitgestellt werden soll.After to the external storage unit 160 has been accessed and possibly data in the real host memory 112 have been stored generates the subchannel 113 an I / O interrupt and puts the I / O interrupt to the hypervisor 121 which indicates that an operation has been completed. The hypervisor 121 can be a guest O / S or an instance of the virtual machines 130 . 140 and 150 determine for which the I / O interrupt is intended. For example, the hypervisor 121 determine that the I / O interrupt is the guest O / S 131 should be provided.

Der Hypervisor 121 kann den E/A-Interrupt in einem Cachespeicher oder Puffer speichern. Der Cachespeicher oder Puffer kann eine Mehrzahl von E/A-Interrupts beinhalten, die verschiedenen Gastbetriebssystemen 131, 141 und 151 entsprechen, und der Hypervisor 121 kann die E/A-Interrupts asynchron und unsortiert zuteilen. Der Hypervisor 121 kann ermitteln, ob ein Vorgang eines zurzeit ausgeführten Gast-O/S angehalten werden sollte, um einen E/A-Interrupt für ein weiteres Gast-O/S bereitzustellen, oder ob dem zurzeit ausgeführten Gast-O/S gestattet werden sollte, die Ausführung abzuschließen.The hypervisor 121 can store the I / O interrupt in a cache or buffer. The cache or buffer may include a plurality of I / O interrupts, the various guest operating systems 131 . 141 and 151 correspond, and the hypervisor 121 can allocate the I / O interrupts asynchronously and unsorted. The hypervisor 121 can determine whether a process of a currently running guest O / S should be halted to provide an I / O interrupt for another guest O / S, or whether the currently running guest O / S should be allowed Finish execution.

Wenn das Zielgast-O/S, oder in dem vorliegenden Beispiel das Gast-O/S 131, ausgeführt wird, kann der Hypervisor 121 den E/A-Interrupt für das Gast-O/S 131 bereitstellen. Das Gast-O/S 131 kann dann eine Vorgangsabschlussroutine durchführen, um den Status des Unterkanals 113 zu ermitteln und, ob auf die Einheit zugegriffen worden ist. Bei Ausführungsformen der vorliegenden Offenbarung kann es sich bei der Vorgangsabschlussroutine um einen Unterkanaltest(test subchannel, TSCH)-Befehl handeln. Wenn festgestellt wird, dass erfolgreich auf die Einheit 160 zugegriffen worden ist, beispielsweise durch einen Lade- oder Speichervorgang, kann das Gast-O/S 131 die Anwendung 132 oder die Zwischenanwendung 133 darüber in Kenntnis setzen, dass Daten verfügbar oder gespeichert worden sind.If the destination guest O / S, or in the present example the guest O / S 131 , the hypervisor can run 121 the I / O interrupt for the guest O / S 131 provide. The guest O / S 131 can then perform an operation completion routine to check the status of the subchannel 113 to determine and if the unit has been accessed. In embodiments of the present disclosure, the transaction completion routine may be a test subchannel (TSCH) command. If it is found to be successful on the unit 160 has been accessed, for example by a load or store operation, the guest O / S 131 the application 132 or the intermediate application 133 notify that data has been made available or stored.

Bei Ausführungsformen der vorliegenden Offenbarung verfolgt der Hypervisor 121 eine Zeit zwischen einem Empfang des E/A-Interrupts von dem Unterkanal 113 und einem Zeitpunkt, an dem das Gast-O/S 131 das TSCH-Signal erzeugt, um den Status des Unterkanals 113 abzurufen. Dementsprechend ist das E/A-Teilsystem 120 in der Lage, eine Verzögerung beim Ausführen von Anweisungen von den virtuellen Maschinen 130, 140 und 150 aufgrund des Ausführens des Hypervisors 121 und des Ausführens der mehreren virtuellen Maschinen 130, 140 und 150 anstelle nur eines Betriebssystems zu verfolgen. Die verfolgte Verzögerung entspricht der Zeit, die der Hypervisor 121 benötigt, um einen E/A-Interrupt zu verwalten, der an eines der Gastbetriebssysteme 131, 141 oder 151 gerichtet ist.In embodiments of the present disclosure, the hypervisor keeps track of 121 a time between receipt of the I / O interrupt from the subchannel 113 and a time when the guest O / S 131 the TSCH signal generates the status of the subchannel 113 retrieve. Accordingly, the I / O subsystem 120 able to delay when executing instructions from the virtual machines 130 . 140 and 150 due to the execution of the hypervisor 121 and running the multiple virtual machines 130 . 140 and 150 instead of just one operating system. The tracked delay corresponds to the time that the hypervisor 121 needed to manage an I / O interrupt to one of the guest operating systems 131 . 141 or 151 is directed.

Bei einigen Ausführungsformen können die realen CPUs 111 oder das E/A-Teilsystem 120, nachdem eine Verzögerung aufgrund von Virtualisierung berechnet worden ist, eine Kapazitätsplanung durchführen, um Vorgänge des Hypervisors 121, der Gastbetriebssysteme 131, 141 und 151 oder der externen Speichereinheiten 160 zu verwalten. Darüber hinaus können die realen CPUs oder das E/A-Teilsystem 120 eine Leistungsengpassanalyse bereitstellen, indem sie Vorgänge, die Betriebssysteme 131, 141 oder 151, die Anwendungen 132, 142 oder 152 oder die Zwischenanwendungen 133, 143 oder 153 identifizieren, die am meisten zu einer erkannten Verzögerung beitragen.In some embodiments, the real CPUs 111 or the I / O subsystem 120 After a delay has been calculated due to virtualization, perform a capacity planning to process the hypervisor 121 , the guest operating systems 131 . 141 and 151 or external storage devices 160 manage. In addition, the real CPUs or the I / O subsystem 120 provide a performance bottleneck analysis by performing operations that are operating systems 131 . 141 or 151 , the applications 132 . 142 or 152 or the intermediate applications 133 . 143 or 153 identify the ones that contribute most to a detected delay.

2 veranschaulicht die Speicherung einer gemessenen verstrichenen Zeit gemäß einer Ausführungsform der Offenbarung. Der Unterkanal 213 kann dem Unterkanal 113 von 1 entsprechen, und es kann sich um einen von einer Mehrzahl von Unterkanälen handeln, die jeweils so mit einer oder mehreren externen Einheiten verbunden sind, dass sie eine Datenübertragung zwischen dem System 100 und den externen Einheiten bereitstellen. Die Unterkanäle 213 können einen Messblock 214 beinhalten, der Felder zum Speichern von Vorgangsdaten des Unterkanals 213 beinhaltet. Zu Beispielmesswerten können eine Unterkanalstart-Anzahl, Verbindungs- und Unterbrechungsdauer, eine Erstbefehlsantwort (Initial Command Response, ICR)-Dauer, ein beliebiger sonstiger gewünschter Messwert (als „Messwert X” dargestellt) und eine Interrupt-Verzögerungszeit zählen. Bei Ausführungsformen der vorliegenden Offenbarung entspricht die Interrupt-Verzögerungszeit einem Zeitraum zwischen einem Zeitpunkt, an dem ein E/A-Interrupt durch den Unterkanal 213 erzeugt wird, um anzugeben, dass auf eine externe Einheit zugegriffen worden ist, und einem Zeitpunkt, an dem ein Signal wie zum Beispiel ein Unterkanaltest(TSCH)-Signal von einem O/S in Reaktion auf den E/A-Interrupt empfangen wird. Die Interrupt-Verzögerungszeit kann auf diese Weise einen Messwert einer Zeitverzögerung bereitstellen, die durch den Hypervisor 121 erzeugt wird, der eine Mehrzahl von Instanzen eines O/S 131, 141 und 151 ausführt. 2 illustrates the storage of a measured elapsed time according to an embodiment of the disclosure. The subchannel 213 can the subchannel 113 from 1 and may be one of a plurality of subchannels, each connected to one or more external units such that it transmits data between the system 100 and the external units. The subchannels 213 can make a measuring block 214 include the fields for storing transaction data of the subchannel 213 includes. Example metric values may include a subchannel start count, connection and interrupt duration, an initial command response (ICR) duration, any other desired metric (shown as "metric X"), and an interrupt delay time. In embodiments of the present disclosure, the interrupt delay time corresponds to a period between a time when an I / O interrupt by the subchannel 213 is generated to indicate that an external device has been accessed and a time at which an external device has been accessed Signal such as a subchannel test (CHCH) signal is received from an O / S in response to the I / O interrupt. The interrupt delay time may thus provide a measure of a time delay caused by the hypervisor 121 is generated, which is a plurality of instances of an O / S 131 . 141 and 151 performs.

3 veranschaulicht ein Verfahren gemäß einer Ausführungsform der vorliegenden Offenbarung. In Block 301 kann eine Anwendung oder eine Zwischenanwendung Zugriff auf eine Einheit anfordern. Die Anwendung oder die Zwischenanwendung kann Teil einer virtuellen Maschine sein, die auf einer Instanz eines O/S ausgeführt wird, das der virtuellen Maschine zugehörig ist. Die virtuelle Maschine kann eine von einer Mehrzahl von virtuellen Maschinen sein, die gleichzeitig auf einem Computersystem ausgeführt werden. Die Mehrzahl von virtuellen Maschinen kann eine oder mehrere CPUs gemeinsam nutzen, und ein Hypervisor kann den Zugriff der Mehrzahl von virtuellen Maschinen auf die eine oder mehreren CPUs und den realen Speicher verwalten. Bei der Anforderung zum Zugreifen auf die Einheit kann es sich um einen Ladevorgang, einen Speichervorgang oder einen beliebigen sonstigen gewünschten Vorgang handeln. 3 illustrates a method according to an embodiment of the present disclosure. In block 301 An application or an intermediate application can request access to a device. The application or the intermediate application may be part of a virtual machine running on an instance of an O / S associated with the virtual machine. The virtual machine may be one of a plurality of virtual machines running concurrently on a computer system. The plurality of virtual machines may share one or more CPUs, and a hypervisor may manage the access of the plurality of virtual machines to the one or more CPUs and the real memory. The request to access the device may be a load, save, or any other desired operation.

In Block 302 kann das O/S, das der Anwendung oder der Zwischenanwendung zugehörig ist, eine Anforderung zum Zugreifen auf die Einheit erzeugen. Die Anforderung kann eine Unterkanalstart(SSCH)-Anforderung sein und von dem O/S für ein E/A-Teilsystem bereitgestellt werden, das den Hypervisor beinhaltet. Die SSCH-Anforderung gibt einen Unterkanal an, der der Zieleinheit zugehörig ist.In block 302 For example, the O / S associated with the application or interim application may generate a request to access the device. The request may be a Subchannel Start (SSCH) request and may be provided by the O / S to an I / O subsystem that includes the hypervisor. The SSCH request specifies a subchannel associated with the destination unit.

In Block 303 ermittelt das E/A-Teilsystem die Einheitenposition und wählt die Route zu der spezifischen Einheit aus, die dem Zielunterkanal zugehörig ist. Die Anforderung wird dann aus der entsprechenden Schnittstelle so weitergegeben, dass sie die Zieleinheit erreicht. Diese Route kann einen Pfad durch Switches und ein Netzwerk beinhalten, um die Zieleinheit zu erreichen. In Block 304 ist auf die Einheit zugegriffen worden, und es ist eine Verbindung zu der Einheit hergestellt worden.In block 303 The I / O subsystem determines the unit location and selects the route to the specific unit associated with the destination sub-channel. The request is then passed from the appropriate interface to reach the destination unit. This route may include a path through switches and a network to reach the destination unit. In block 304 the unit has been accessed and a connection has been made to the unit.

In Block 305 wird der angeforderte Vorgang durchgeführt. Wenn es sich bei dem angeforderten Vorgang zum Beispiel um einen Lesevorgang handelt, verwendet das E/A-Teilsystem Zeiger und Steuerelemente in dem Unterkanal, um die Zieldaten von der Zieleinheit abzurufen, und speichert die Daten in dem Host-Speicher. Wenn es sich bei dem angeforderten Vorgang um einen Schreibvorgang handelt, verwendet das E/A-Teilsystem Zeiger und Steuerelemente in dem Unterkanal, um die Zieldaten von dem Host-Speicher für die Zielposition der Einheit bereitzustellen.In block 305 the requested operation is performed. For example, if the requested operation is a read, the I / O subsystem uses pointers and controls in the subchannel to retrieve the target data from the target device and stores the data in the host memory. If the requested operation is a write operation, the I / O subsystem uses pointers and controls in the subchannel to provide the target data from the host memory for the target location of the device.

In Block 306 erzeugt das E/A-Teilsystem einen E/A-Interrupt, nachdem der Vorgang für die Einheit abgeschlossen ist. Der E/A-Interrupt kann beispielsweise dem Hypervisor bereitgestellt werden. Bei einer Ausführungsform wird ein Startzeitstempel in Block 307 aufgezeichnet, wenn der E/A-Interrupt durch das E/A-Teilsystem erzeugt wird. Bei einer weiteren Ausführungsform kann eine Uhr oder ein Zähler gestartet werden.In block 306 The I / O subsystem generates an I / O interrupt after the process for the device is completed. For example, the I / O interrupt may be provided to the hypervisor. In one embodiment, a start time stamp is in block 307 recorded when the I / O interrupt is generated by the I / O subsystem. In another embodiment, a clock or counter may be started.

In Block 308 verwaltet der Hypervisor den E/A-Interrupt wie auch jegliche zusätzliche E/A-Interrupts, Befehle oder Anweisungen von den mehreren Instanzen des O/S, die auf dem Computersystem ausgeführt werden. Der Hypervisor kann ermitteln, welches O/S dem erzeugten E/A-Interrupt entspricht, und kann auf Grundlage eines vorgegebenen Intervalls, in dem jede Instanz des O/S über einen vorgegebenen Zeitraum ausgeführt wird, ermitteln, ob ein Ausführen einer weiteren Instanz des O/S beendet werden sollte, um zu ermöglichen, dass der E/A-Interrupt übermittelt wird, oder ob mit der Übermittlung des E/A-Interrupts gewartet werden sollte, bis die entsprechende Instanz des O/S ausgeführt wird.In block 308 The hypervisor manages the I / O interrupt as well as any additional I / O interrupts, commands or instructions from the multiple instances of the O / S that are running on the computer system. The hypervisor can determine which O / S corresponds to the generated I / O interrupt and can determine whether to execute another instance of the one based on a predetermined interval in which each instance of the O / S executes over a given time period O / S should be terminated to allow the I / O interrupt to be transmitted, or to wait for the I / O interrupt to be delivered until the appropriate instance of the O / S is executed.

In Block 309 kann der Hypervisor den E/A-Interrupt der entsprechenden Instanz des O/S bereitstellen. In Block 310 kann die Instanz des O/S ein Signal (wie zum Beispiel ein Unterkanaltest(TSCH)-Signal) erzeugen, um den Status des Unterkanals zu ermitteln und, ob auf die Einheit zugegriffen worden ist. Bei Ausführungsformen der vorliegenden Offenbarung kann ein Endzeitstempel in Block 311 zu einem Zeitpunkt aufgezeichnet werden, an dem das TSCH-Signal durch das E/A-Teilsystem, den Hypervisor oder den Unterkanal empfangen wird, und eine Differenz zwischen der Endzeit und der Startzeit kann in Block 312 berechnet werden, um die Zuteilungszeit der logischen Partition (LPAR) zu berechnen, die auch als Interrupt-Verzögerungszeit oder Hypervisor-Verzögerungszeit bezeichnet werden kann. Bei einer weiteren Ausführungsform kann eine Zeit angehalten werden, und die verstrichene Zeit auf dem Zeitgeber kann die LPAR-Zuteilungszeit bereitstellen.In block 309 The hypervisor can provide the I / O interrupt of the corresponding instance of the O / S. In block 310 For example, the instance of the O / S may generate a signal (such as a Subchannel Test (TSCH) signal) to determine the status of the subchannel and whether the unit has been accessed. In embodiments of the present disclosure, an end timestamp may be in block 311 may be recorded at a time when the TSCH signal is received by the I / O subsystem, hypervisor or subchannel, and a difference between the end time and the start time may be in block 312 to calculate the logical partition (LPAR) allocation time, which may also be referred to as interrupt delay time or hypervisor delay time. In another embodiment, a time may be stopped and the elapsed time on the timer may provide the LPAR allocation time.

Dementsprechend ist ein System, auf dem mehrere virtuelle Maschinen ausgeführt werden, die jeweils eine Instanz eines O/S aufweisen, in der Lage, auf Grundlage einer Zeit, die ein Hypervisor zum Verwalten von E/A-Interrupts benötigt, die Zeit zu verfolgen, die durch Ausführen der virtuellen Maschinen zu der Ausführung von Anweisungen hinzugefügt werden kann. Das System und das Verfahren stellen Echtzeitdaten bezüglich jeglicher Verzögerungen bereit, die durch den Hypervisor erzeugt werden.Accordingly, a system running multiple virtual machines, each having an instance of O / S, is capable of tracking time based on a time that a hypervisor requires to manage I / O interrupts; which can be added to the execution of instructions by running the virtual machines. The system and method provide real-time data regarding any delays generated by the hypervisor.

3 stellt lediglich ein Beispiel für ein Verfahren gemäß Ausführungsformen der vorliegenden Offenbarung bereit. Es sind viele Änderungen an diesem Schaubild oder den darin beschriebenen Schritten (oder Vorgängen) möglich, ohne vom Gedanken der Erfindung abzuweichen. Die Schritte können beispielsweise in einer abweichenden Reihenfolge durchgeführt werden, oder es können Schritte hinzugefügt, gelöscht oder modifiziert werden. Alle diese Änderungen werden als Teil der beanspruchten Erfindung betrachtet. 3 merely provides an example of a method according to embodiments of the present disclosure. There are many changes to this chart or the one described therein Steps (or operations) possible without departing from the spirit of the invention. For example, the steps may be performed in a different order, or steps added, deleted, or modified. All of these changes are considered part of the claimed invention.

4 veranschaulicht ein Blockschaubild eines virtuellen Maschinensystems 400. Die hierin beschriebenen Verfahren können in Hardware, Software (z. B. Firmware) oder einer Kombination davon implementiert werden. Bei einer beispielhaften Ausführungsform werden die hierin beschriebenen Verfahren in Hardware als Teil des Mikroprozessors eines digitalen Spezial- oder Universalcomputers wie etwa eines Personal-Computers, eines Arbeitsplatzrechners, eines Minicomputers oder eines Großrechners implementiert. Das System 400 kann daher einen Universalrechner oder Großrechner 401 beinhalten, der in der Lage ist, mehrere Instanzen eines O/S gleichzeitig auszuführen. 4 illustrates a block diagram of a virtual machine system 400 , The methods described herein may be implemented in hardware, software (eg, firmware), or a combination thereof. In an exemplary embodiment, the methods described herein are implemented in hardware as part of the microprocessor of a special purpose or general purpose digital computer such as a personal computer, workstation, minicomputer, or mainframe computer. The system 400 can therefore be a universal computer or mainframe 401 which is capable of executing multiple instances of an O / S simultaneously.

Bei einer beispielhaften Ausführungsform beinhaltet der Computer 401 im Hinblick auf die Hardware-Architektur, wie in 4 dargestellt, einen oder mehrere Prozessoren 405, einen Speicher 410, der mit einer Speichersteuereinheit 415 verbunden ist, eine oder mehrere Eingabe- und/oder Ausgabe(E/A)-Einheiten 440, 445 (oder Peripheriegeräte), die zur Datenübertragung über eine lokale Eingabe-/Ausgabe-Steuereinheit 435 verbunden sind. Bei der Eingabe-/Ausgabe-Steuereinheit 435 kann es sich zum Beispiel um einen oder mehrere Busse oder sonstige drahtgebundene oder drahtlose Verbindungen nach dem Stand der Technik handeln, ohne auf diese beschränkt zu sein. Die Eingabe-/Ausgabe-Steuereinheit 435 kann zusätzliche Elemente wie zum Beispiel Steuereinheiten, Puffer (Cachespeicher), Treiber, Zwischenverstärker und Empfänger aufweisen, die der Einfachheit halber weggelassen werden, um Datenübertragungen zu ermöglichen. Des Weiteren kann die lokale Schnittstelle Adress-, Steuer- und/oder Datenverbindungen beinhalten, um entsprechende Datenübertragungen zwischen den oben genannten Komponenten zu ermöglichen. Die Eingabe-/Ausgabe-Steuereinheit 435 kann eine Mehrzahl von Unterkanälen beinhalten, die so gestaltet sind, dass sie auf die Ausgabeeinheiten 440 und 445 zugreifen. Die Unterkanäle können Lichtwellenleiter-Datenübertragungsanschlüsse beinhalten.In an exemplary embodiment, the computer includes 401 in terms of hardware architecture, as in 4 represented one or more processors 405 , a store 410 that with a storage controller 415 one or more input and / or output (I / O) units 440 . 445 (or peripherals) used for data transfer via a local input / output controller 435 are connected. At the input / output control unit 435 For example, it may be one or more buses or other prior art wireless or wireless links, without limitation. The input / output control unit 435 may include additional elements such as controllers, buffers (caches), drivers, repeaters, and receivers, which are omitted for simplicity in order to facilitate data transfers. Furthermore, the local interface may include address, control, and / or data connections to facilitate appropriate data transfers between the above-mentioned components. The input / output control unit 435 may include a plurality of subchannels configured to be responsive to the output units 440 and 445 access. The subchannels may include fiber optic communication links.

Bei dem Prozessor 405 handelt es sich um eine Hardware-Einheit zum Ausführen von Software, im Besonderen derjenigen, die in einem Speicher 420 wie zum Beispiel einem Cachespeicher oder dem Speicher 410 gespeichert ist. Der Prozessor 405 kann ein beliebiger nach Kundenwünschen angefertigter oder handelsüblicher Prozessor, eine Zentraleinheit (CPU), ein Hilfsprozessor von mehreren Prozessoren, die dem Computer 401 zugehörig sind, ein Mikroprozessor auf Grundlage eines Halbleiters (in Form eines Mikro-Chips oder eines Chip-Satzes), ein Makroprozessor oder allgemein eine beliebige Einheit zum Ausführen von Anweisungen sein.At the processor 405 it is a hardware unit for executing software, especially those in a memory 420 such as a cache or memory 410 is stored. The processor 405 can be any custom-made or commercially available processor, a central processing unit (CPU), an auxiliary processor of multiple processors connected to the computer 401 be a microprocessor based on a semiconductor (in the form of a micro-chip or a chip set), a macro-processor or in general any unit for executing instructions.

Der Speicher 410 kann ein beliebiges flüchtiges Speicherelement (z. B. einen Direktzugriffsspeicher (random access memory, RAM, wie etwa einen DRAM, SRAM, SDRAM usw.)) und nichtflüchtige Speicherelemente (z. B. einen ROM, einen löschbaren, programmierbaren Festwertspeicher (erasable programmable read only memory, EPROM), einen elektrisch löschbaren, programmierbaren Festwertspeicher (electronically erasable programmable read only memory, EEPROM), einen programmierbaren Festwertspeicher (programmable read only memory, PROM), ein Band, eine CD-ROM (compact disc read only memory, Kompakt-Disk-Festwertspeicher), eine Platte, eine Diskette, ein Steckmodul, eine Kassette oder dergleichen usw.) bzw. eine Kombination von diesen beinhalten. Außerdem kann der Speicher 410 elektronische, magnetische, optische und/oder andere Arten von Speichermedien umfassen. Es ist zu beachten, dass der Speicher 410 eine verteilte Architektur aufweisen kann, wobei sich verschiedene Komponenten entfernt voneinander befinden, auf die jedoch durch den Prozessor 405 zugegriffen werden kann.The memory 410 may include any volatile memory element (e.g., random access memory, RAM such as DRAM, SRAM, SDRAM, etc.) and nonvolatile memory elements (e.g., a ROM, erasable programmable read only memory) read only memory, EPROM), an electrically erasable programmable read only memory (EEPROM), a programmable read only memory (PROM), a tape, a CD-ROM (compact disc read only memory, Compact disk read-only memory), a disk, a floppy disk, a cartridge, a cartridge or the like, etc.) or a combination thereof. In addition, the memory can 410 electronic, magnetic, optical and / or other types of storage media. It should be noted that the memory 410 may have a distributed architecture with different components remote from each other, but by the processor 405 can be accessed.

Die Anweisungen in dem Speicher 410 können ein oder mehrere getrennte Programme beinhalten, von denen jedes eine geordnete Auflistung ausführbarer Anweisungen zum Implementieren logischer Funktionen aufweist. In dem Beispiel von 4 die Anweisungen in dem Speicher 410 ein geeignetes Betriebssystem (OS) 411. Das Betriebssystem 411 steuert im Wesentlichen die Ausführung anderer Computerprogramme und stellt Zeitplanung, Eingabe-Ausgabe-Steuerung, Datei- und Datenverwaltung, Speicherverwaltung und Datenübertragungssteuerung sowie damit in Zusammenhang stehende Dienste bereit.The instructions in the memory 410 may include one or more separate programs, each of which has an ordered listing of executable instructions for implementing logical functions. In the example of 4 the instructions in the memory 410 a suitable operating system (OS) 411 , The operating system 411 essentially controls the execution of other computer programs and provides scheduling, input-output control, file and data management, memory management and data transfer control, and related services.

Der Speicher 410 kann mehrere logische Partitionen (LPARs) 412 beinhalten, die jeweils eine Instanz eines Betriebssystems ausführen. Die LPARs 412 können durch einen Hypervisor verwaltet werden, bei dem es sich um ein Programm handeln kann, das in dem Speicher 410 gespeichert und durch den Prozessor 405 ausgeführt wird.The memory 410 can use multiple logical partitions (LPARs) 412 each running an instance of an operating system. The LPARs 412 can be managed by a hypervisor, which can be a program that resides in memory 410 stored and by the processor 405 is performed.

Bei einer beispielhaften Ausführungsform können eine herkömmliche Tastatur 450 und eine Maus 455 mit der Eingabe-/Ausgabe-Steuereinheit 435 verbunden werden. Zu sonstigen Ausgabeeinheiten wie etwa den E/A-Einheiten 440, 445 können Eingabeeinheiten, etwa ein Drucker, ein Scanner, ein Mikrophon und dergleichen zählen, ohne auf diese beschränkt zu sein. Schließlich können die E-/A-Einheiten 440, 445 des Weiteren Einheiten, die Daten zwischen Ein- und Ausgängen übertragen, wie zum Beispiel eine Netzwerk-Schnittstellenkarte (network interface card, NIC) oder einen Modulator/Demodulator (zum Zugreifen auf andere Dateien, Einheiten, Systeme oder ein Netzwerk), einen Hochfrequenz-(HF-) oder einen anderen Sender-Empfänger, eine Telefonschnittstelle, eine Brücke, einen Router und dergleichen beinhalten, ohne auf diese beschränkt zu sein. Das System 400 kann des Weiteren eine Anzeigesteuereinheit 425 beinhalten, die mit einer Anzeige 430 verbunden ist. Bei einer beispielhaften Ausführungsform kann das System 400 des Weiteren eine Netzwerk-Schnittstelle 460 zum Verbinden mit einem Netzwerk 465 beinhalten. Bei dem Netzwerk 465 kann es sich um ein Netzwerk auf Grundlage von IP zur Datenübertragung zwischen dem Computer 401 und einem beliebigen externen Server, Client und dergleichen über eine Breitbandverbindung handeln. Das Netzwerk 465 überträgt und empfängt Daten zwischen dem Computer 401 und externen Systemen. Bei einer beispielhaften Ausführungsform kann es sich bei dem Netzwerk 465 um ein verwaltetes IP-Netzwerk handeln, das durch einen Diensteanbieter verwaltet wird. Das Netzwerk 465 kann drahtlos implementiert werden, z. B. mithilfe von drahtlosen Protokollen und Technologien wie z. B. WiFi, WiMax usw. Bei dem Netzwerk 465 kann es sich auch um ein Netzwerk mit Paketvermittlung wie zum Beispiel um ein lokales Netzwerk, ein Weitverkehrs-Netzwerk, ein Hochgeschwindigkeits-Netzwerk, ein Internet-Netzwerk oder einen anderen, ähnlichen Typ von Netzwerkumgebung handeln. Das Netzwerk 465 kann ein festes drahtloses Netzwerk, ein drahtloses lokales Netzwerk (local area network, LAN), ein drahtloses Weitverkehrs-Netzwerk (wide area network, WAN), ein persönliches Netzwerk (personal area network, PAN), ein virtuelles privates Netzwerk (VPN), ein Intranet oder ein sonstiges geeignetes Netzwerksystem sein, und es beinhaltet Geräte zum Empfangen und Übertragen von Signalen.In an exemplary embodiment, a conventional keyboard 450 and a mouse 455 with the input / output control unit 435 get connected. To other output units such as the I / O units 440 . 445 may include input devices such as, but not limited to, a printer, a scanner, a microphone, and the like. Finally, the I / O units 440 . 445 Furthermore, units that transfer data between inputs and outputs, such as a network interface card (NIC) or a modulator / demodulator (for accessing other files, devices, systems or a network), a radio frequency (RF) or another transceiver, a telephone interface, a bridge, a router and the like, without being limited thereto. The system 400 Further, a display control unit 425 Include that with an ad 430 connected is. In an exemplary embodiment, the system 400 furthermore a network interface 460 to connect to a network 465 include. At the network 465 It can be a network based on IP for data transfer between the computer 401 and any external server, client, and the like over a broadband connection. The network 465 transmits and receives data between the computer 401 and external systems. In an exemplary embodiment, the network may be 465 to be a managed IP network managed by a service provider. The network 465 can be implemented wirelessly, eg. B. using wireless protocols and technologies such. WiFi, WiMax etc. in the network 465 it may also be a packet-switched network such as a local area network, a wide area network, a high-speed network, an Internet network, or another similar type of network environment. The network 465 a fixed wireless network, a local area network (LAN), a wide area network (WAN), a personal area network (PAN), a virtual private network (VPN), an intranet or other suitable network system, and includes devices for receiving and transmitting signals.

Wenn es sich bei dem Computer 401 um einen PC, einen Arbeitsplatzrechner, eine intelligente Einheit oder dergleichen handelt, können die Anweisungen in dem Speicher 410 des Weiteren ein grundlegendes Eingabe-/Ausgabe-System (basic input output system, BIOS) beinhalten (das der Einfachheit halber weggelassen wird). Das BIOS ist ein Satz von wesentlichen Software-Routinen, die Hardware beim Starten initialisieren und testen, das OS 411 starten und die Übertragung von Daten zwischen den Hardware-Einheiten unterstützen. Das BIOS ist im ROM gespeichert, sodass das BIOS ausgeführt werden kann, wenn der Computer 401 aktiviert wird.If it is the computer 401 The instructions in the memory may be a PC, workstation, intelligent unit or the like 410 further include a basic input output system (BIOS) (which is omitted for simplicity). The BIOS is a set of essential software routines that initialize and test hardware at boot time, the OS 411 start and support the transfer of data between the hardware units. The BIOS is stored in ROM so that the BIOS can be run when the computer 401 is activated.

Wenn der Computer 401 in Betrieb ist, ist der Prozessor 405 so konfiguriert, dass er in dem Speicher 410 gespeicherte Anweisungen ausführt, Daten in den und aus dem Speicher 410 überträgt und allgemein Vorgänge des Computers 401 den Anweisungen entsprechend steuert.If the computer 401 is in operation, is the processor 405 configured to be in memory 410 Saved statements execute data in and out of memory 410 transfers and generally processes the computer 401 according to the instructions.

Bei einer beispielhaften Ausführungsform können die hierin beschriebenen Echtzeit-Berechnungsverfahren für Hypervisor-Verzögerungen mit einer beliebigen der folgenden Technologien, die in der Technik bestens bekannt sind, oder einer Kombination davon implementiert werden: mit einer oder mehreren diskreten logischen Schaltungen, die Logikgatter zum Implementieren von logischen Funktionen auf Datensignale hin aufweisen, einer anwendungsspezifischen integrierten Schaltung (application specific integrated circuit, ASIC), die geeignete Schaltungslogikgatter aufweist, einem oder mehreren programmierbaren Gate-Arrays (PGA), einem feldprogrammierbaren Gate-Array (FPGA) usw.In an exemplary embodiment, the hypervisor delay real-time calculation methods described herein can be implemented with any of the following technologies well known in the art, or a combination thereof: with one or more discrete logic circuits implementing logic gates to implement have logical functions on data signals, an application specific integrated circuit (ASIC) having suitable circuit logic gates, one or more programmable gate arrays (PGA), a field programmable gate array (FPGA), etc.

Wie oben beschrieben, können Ausführungsformen in Form von computerimplementierten Prozessen und Vorrichtungen zum Umsetzen dieser Prozesse verkörpert sein. Eine Ausführungsform kann ein Computerprogrammprodukt 500, wie in 5 dargestellt, auf einem computerlesbaren/-verwendbaren Medium 502 beinhalten, wobei Computerprogrammcodelogik 504, die Anweisungen enthält, in physischen Medien wie einem Herstellungsgegenstand verkörpert wird. Zu beispielhaften Herstellungsgegenständen für das computerlesbare/-verwendbare Medium 502 können Disketten, CD-ROMs, Festplatten, Universal-Serial-Bus(USB)-Flash-Laufwerke oder ein beliebiges anderes computerlesbares Speichermedium zählen, wobei der Computer, wenn die Computerprogrammcodelogik 504 in einen Computer geladen und durch diese ausgeführt wird, zu einer Vorrichtung zum Umsetzen der Erfindung wird. Ausführungsformen beinhalten die Computerprogrammcodelogik 504, unabhängig davon, ob sie zum Beispiel in einem Speichermedium gespeichert, in einen Computer geladen und/oder durch diesen ausgeführt oder über ein Übertragungsmedium wie zum Beispiel elektrische Verdrahtung oder Verkabelung, durch Lichtwellenleiter oder über elektromagnetische Strahlung übertragen wird, wobei der Computer, wenn die Computerprogrammcodelogik 504 in einen Computer geladen und durch diesen ausgeführt wird, zu einer Vorrichtung zum Umsetzen der Erfindung wird. Bei Implementierung auf einem Universalmikroprozessor konfigurieren Segmente der Computerprogrammcodelogik 504 den Mikroprozessor so, dass er spezifische Logikschaltungen erstellt.As described above, embodiments may be embodied in the form of computer-implemented processes and devices for implementing these processes. An embodiment may be a computer program product 500 , as in 5 shown on a computer readable / usable medium 502 include, wherein computer program code logic 504 that contains instructions embodied in physical media such as an article of manufacture. Exemplary articles of manufacture for the computer readable / usable medium 502 may include floppy disks, CD-ROMs, hard disks, universal serial bus (USB) flash drives, or any other computer-readable storage medium, the computer, when the computer program code logic 504 is loaded into and executed by a computer, becomes an apparatus for practicing the invention. Embodiments include computer program code logic 504 regardless of whether it is stored in a storage medium, loaded into and / or carried by a computer or transmitted via a transmission medium such as electrical wiring or cabling, optical fibers or electromagnetic radiation, for example, the computer computer program code logic 504 is loaded into and executed by a computer, becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, segments of computer program code logic configure 504 the microprocessor to create specific logic circuits.

Ausführungsformen der vorliegenden Offenbarung können durch eine beliebige geeignete Architektur implementiert werden. Beispielsweise wird die Architektur von IBM® z/Architecture® zum Implementieren der Ausführungsformen der Offenbarung verwendet. Eine Beschreibung der allgemeinen Vorgänge und Spezifikationen der z/Architecture werden in „IBM z/Architecture Principles of Operation”, Veröffentlichung Nr. SA22-7832-08, 9. Ausgabe, August 2010, näher beschrieben. IBM und z/Architecture sind eingetragene Marken von International Business Machines Corporation, Armonk, New York, USA.Embodiments of the present disclosure may be implemented by any suitable architecture. For example, the architecture of IBM ® z / Architecture ® is used to implement the embodiments of the disclosure. A description of the z / Architecture general operations and specifications is provided in "IBM z / Architecture Principles of Operation", p. Publication No. SA22-7832-08, 9th edition, August 2010. IBM and z / Architecture are registered trademarks of International Business Machines Corporation, Armonk, NY, USA.

Darüber hinaus können Ausführungsformen der vorliegenden Offenbarung durch ein beliebiges geeignetes System zur Nutzung von Unterkanälen und zum Messen von E/A-Eigenschaften implementiert werden. Beispielsweise wird die Messung von E/A-Eigenschaften bei einer Ausführungsform gemäß der Offenbarung der Anmeldung mit der Serien-Nr. 10/435 906 von Scott M. Carlson et al. umgesetzt, die sich auf EXTENDED INPUT/OUTPUT MEASUREMENT FACILITIES bezieht, deren Anmeldung als US-Patent Nr. 7 000 036 erteilt wurde.In addition, embodiments of the present disclosure may be implemented by any suitable system for utilizing subchannels and measuring I / O characteristics. For example, the measurement of I / O characteristics in an embodiment according to the disclosure of the application with the serial no. 10/435 906 to Scott M. Carlson et al. which relates to EXTENDED INPUT / OUTPUT MEASUREMENT FACILITIES, the application of which was granted as US Pat. No. 7,000,036.

Wie für einen Fachmann zu erkennen ist, können Aspekte der vorliegenden Offenbarung als System, Verfahren oder Computerprogrammprodukt verkörpert werden. Dementsprechend können Aspekte der vorliegenden Offenbarung eine reine Hardware-Ausführungsform, eine reine Software-Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder eine Ausführungsform annehmen, in der Software- und Hardware-Aspekte kombiniert werden, die sämtlich hierin verallgemeinernd als „Schaltung”, „Modul” oder „System” bezeichnet werden können. Des Weiteren können Aspekte der vorliegenden Offenbarung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert wird, auf denen computerlesbarer Programmcode verkörpert ist.As one of ordinary skill in the art appreciates, aspects of the present disclosure may be embodied as a system, method, or computer program product. Accordingly, aspects of the present disclosure may assume a purely hardware embodiment, a pure software embodiment (including firmware, resident software, microcode, etc.), or an embodiment that combines software and hardware aspects, all of which are generalized herein as " Circuit "," module "or" system "can be called. Further, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media embodied with computer readable program code.

Es kann eine beliebige Kombination eines oder mehrerer computerlesbarer Medien verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium handeln. Bei einem computerlesbaren Speichermedium kann es sich zum Beispiel um ein elektronisches, magnetisches, optisches, elektromagnetisches, Infrarot- oder Halbleitersystem, eine solche Vorrichtung oder Einheit oder um eine beliebige geeignete Kombination aus Obigen handeln, ohne auf diese beschränkt zu sein. Zu konkreteren Beispielen (einer nicht erschöpfenden Liste) des computerlesbaren Speichermediums würden folgende gehören: eine elektrische Verbindung mit einer oder mehreren Leitungen, eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Festwertspeicher (ROM), ein löschbarer, programmierbarer Festwertspeicher (EPROM oder Flash-Speicher), ein Lichtwellenleiter, ein tragbarer Compact-Disk-Festwertspeicher (CD-ROM), eine optische Speichereinheit, eine Magnetspeichereinheit oder eine beliebige geeignete Kombination der Obigen. Im Rahmen dieses Dokuments kann ein computerlesbares Speichermedium jedes physische Medium sein, das ein Programm zur Verwendung durch ein System, eine Vorrichtung oder Einheit zur Ausführung von Anweisungen bzw. in Verbindung mit diesen enthalten oder speichern kann.Any combination of one or more computer-readable media may be used. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or device, or any suitable combination of the above. More concrete examples (non-exhaustive list) of the computer-readable storage medium would include: electrical connection to one or more lines, a portable computer diskette, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory ( EPROM or flash memory), an optical fiber, a portable Compact Disk Read Only Memory (CD-ROM), an optical storage unit, a magnetic storage unit, or any suitable combination of the above. For the purposes of this document, a computer-readable storage medium may be any physical medium that may contain or store a program for use by, or in connection with, a system, apparatus, or device for executing instructions.

Auf einem computerlesbaren Medium verkörperter Programmcode kann mithilfe eines beliebigen geeigneten Mediums übertragen werden, zum Beispiel über Funk, Kabel, Lichtwellenleiterkabel, Hochfrequenz (HF) usw. oder über eine beliebige geeignete Kombination der Obigen, ohne auf diese beschränkt zu sein.Program code embodied on a computer readable medium may be transmitted using any suitable medium, such as, but not limited to, wireless, cable, fiber optic cable, radio frequency (RF), etc., or any suitable combination of the above.

Computerprogrammcode zum Ausführen von Vorgängen für Aspekte der vorliegenden Offenbarung kann in einer beliebigen Kombination einer oder mehrerer Programmiersprachen geschrieben sein, zum Beispiel in einer objektorientierten Programmiersprache wie etwa Java®, Smalltalk, C++ oder dergleichen und in herkömmlichen verfahrensorientierten Programmiersprachen wie zum Beispiel der Programmiersprache „C” oder ähnlichen Programmiersprachen. Der Programmcode kann vollständig auf dem Computer des Benutzers, zum Teil auf dem Computer des Benutzers, als eigenständiges Software-Paket, zum Teil auf dem Computer des Benutzers und zum Teil auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art von Netzwerk verbunden sein, zum Beispiel durch ein lokales Netzwerk (LAN) oder ein Weitverkehrs-Netzwerk (WAN), oder die Verbindung kann mit einem externen Computer (zum Beispiel über das Internet mithilfe eines Internet-Diensteanbieters) hergestellt werden. Java und alle Marken und Logos auf Grundlage von Java sind Marken oder eingetragene Marken von Oracle und/oder seinen verbundenen Unternehmen.Computer program code for performing operations for aspects of the present disclosure may be written in any combination of one or more programming languages, for example, in an object-oriented programming language such as Java® , Smalltalk, C ++ or the like and in conventional procedural programming languages such as the "C" programming language Or similar programming languages. The program code may be executed entirely on the user's computer, partly on the user's computer, as a standalone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server , In the latter scenario, the remote computer may be connected to the user's computer through any type of network, such as a Local Area Network (LAN) or Wide Area Network (WAN), or the connection may be to an external computer (e.g. Example over the Internet using an Internet service provider) are produced. Java and all Java-based marks and logos are trademarks or registered trademarks of Oracle and / or its affiliates.

Aspekte der vorliegenden Offenbarung werden oben unter Bezugnahme auf Ablaufpläne und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der vorliegenden Offenbarung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder Blockschaubilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaubildern durch Computerprogrammanweisungen implementiert werden kann/können. Diese Computerprogrammanweisungen können für einen Prozessor eines Universalcomputers, eines Spezialcomputers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder einer sonstigen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Implementieren der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.Aspects of the present disclosure are described above with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the present disclosure. It is understood that each block of the flowcharts and / or block diagrams and combinations of blocks in the flowcharts and / or block diagrams may be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general-purpose computer, a special purpose computer, or other programmable data processing device to generate a machine so that the instructions executed by the processor of the computer or other programmable data processing device provide a means for implementing the functions. Generate operations specified in the block or blocks of the flowcharts and / or block diagrams.

Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert werden, das einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten so steuern kann, dass sie in einer bestimmten Weise funktionieren, sodass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsgegenstand (article of manufacture) erzeugen, der Anweisungen beinhaltet, die die/den Funktion/Vorgang implementieren, die/der in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.These computer program instructions may also be stored in a computer-readable medium that may control a computer, other programmable computing device, or other entity to function in a particular manner such that the instructions stored in the computer-readable medium produce an article of manufacture containing instructions that implement the function / task specified in the block or blocks of the flowcharts and / or block diagrams.

Die Computerprogrammanweisungen können außerdem auf einen Computer, eine sonstige programmierbare Datenverarbeitungsvorrichtung oder sonstige Einheiten geladen werden, um zu bewirken, dass eine Reihe von Schritten eines Vorgangs auf dem Computer, einer sonstigen programmierbaren Vorrichtung oder sonstigen Einheiten ausgeführt wird, um einen computerimplementierten Prozess zu erzeugen, sodass die auf dem Computer oder einer sonstigen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse bereitstellen, um die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Vorgänge zu implementieren.The computer program instructions may also be loaded onto a computer, other programmable computing device, or other device to cause a series of steps of an operation to be performed on the computer, other programmable device, or other device to produce a computer-implemented process. the instructions executed on the computer or other programmable device provide processes to implement the functions / operations specified in the block or blocks of the flowcharts and / or block diagrams.

Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, Funktionalität und Arbeitsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaubildern ein Modul, ein Segment oder einen Abschnitt eines Codes darstellen, der einen oder mehrere ausführbare Anweisungen zum Implementieren der angegebenen logischen Funktion(en) aufweist. Es ist außerdem zu beachten, dass bei einigen alternativen Implementierungen die in dem Block vermerkten Funktionen in einer anderen Reihenfolge als in den Figuren vermerkt auftreten können. Beispielsweise können je nach einbezogener Funktionalität zwei nacheinander dargestellte Blöcke sogar im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können bisweilen in der umgekehrten Reihenfolge ausgeführt werden. Es ist ferner zu beachten, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne und Kombinationen von Blöcken in den Blockschaubildern und/oder in den Ablaufplänen durch Spezialsysteme auf Grundlage von Hardware, die die angegebenen Funktionen oder Vorgänge ausführen, oder durch Kombinationen von Spezial-Hardware und Computeranweisungen implementiert werden können.The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of code having one or more executable instructions for implementing the specified logical function (s). It should also be noted that in some alternative implementations, the functions noted in the block may occur in a different order than noted in the figures. For example, depending on the functionality involved, two consecutive blocks may even be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order. It is further to be noted that each block of the block diagrams and / or the flowcharts and combinations of blocks in the block diagrams and / or flowcharts may be executed by specialized systems based on hardware performing the specified functions or operations, or by combinations of specialized Hardware and computer instructions can be implemented.

Die hierin verwendete Terminologie dient lediglich der Beschreibung bestimmter Ausführungsformen und soll die Erfindung nicht beschränken. So, wie sie hierin verwendet werden, sollen die Singularformen „ein”, „eine” und „der”, „die”, „das” auch die Pluralformen umfassen, sofern dies aus dem Kontext nicht eindeutig anders hervorgeht. Es versteht sich darüber hinaus, dass die Begriffe „aufweist” und/oder „aufweisend”, wenn sie in dieser Beschreibung verwendet werden, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen und/oder Komponenten bezeichnen, jedoch nicht das Vorhandensein oder die Beifügung von einem/einer oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementkomponenten und/oder Gruppen davon ausschließen.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the invention. As used herein, the singular forms "a," "an," and "the," "the," are also intended to encompass the plural forms, unless the context clearly dictates otherwise. It should also be understood that the terms "having" and / or "having" when used in this specification refer to the presence of specified features, integers, steps, acts, elements, and / or components, but not the presence or preclude the inclusion of one or more other features, integers, steps, acts, elemental components, and / or groups thereof.

Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritt-plus-Funktion-Elemente in den nachstehenden Ansprüchen sollen jede Struktur, jedes Material bzw. jede Handlung zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen als ausdrücklich beansprucht beinhalten. Die Beschreibung der vorliegenden Offenbarung erfolgte zum Zweck der Veranschaulichung und Beschreibung, ist jedoch nicht erschöpfend oder auf die offenbarten Ausführungsformen beschränkt gemeint. Viele Modifizierungen und Varianten sind für Fachleute ersichtlich, ohne vom Umfang und Gedanken der Erfindung abzuweichen.The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act of performing the function in combination with other claimed elements as expressly claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the invention.

Es ist zwar die bevorzugte Ausführungsform der Erfindung beschrieben worden, es versteht sich jedoch, dass Fachleute jetzt und in Zukunft verschiedene Verbesserungen und Erweiterungen vornehmen dürfen, die in den Umfang der nachfolgenden Ansprüche fallen.While the preferred embodiment of the invention has been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements that fall within the scope of the following claims.

Claims (15)

Verfahren zum Verwalten mehrerer Instanzen eines Betriebssystems, das aufweist: Ermitteln einer Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server; Messen einer tatsächlichen E/A-Service-Zeit des E/A-Vorgangs mit einem Prozessor des Servers, der einen Hypervisor ausführt, der so konfiguriert ist, dass er eine Mehrzahl von logischen Partitionen (LPARs) verwaltet, wobei jede LPAR eine von einer Mehrzahl von Instanzen eines Betriebssystems (O/S) ausführt; und Ermitteln einer Verzögerungszeit einer Virtualisierung auf dem Server durch den Prozessor auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit.A method for managing multiple instances of an operating system, comprising: Determining a reference I / O service time of an I / O operation on a server; Measuring an actual I / O service time of the I / O operation with a processor of the server executing a hypervisor configured to manage a plurality of logical partitions (LPARs), each LPAR containing one of a Runs a plurality of instances of an operating system (O / S); and Determining a delay time of virtualization on the server by the processor based on the reference I / O service time and the actual I / O service time. Verfahren nach Anspruch 1, wobei das Messen der tatsächlichen E/A-Service-Zeit des E/A-Vorgangs ein Überwachen der tatsächlichen E/A-Service-Zeiten von E/A-Vorgängen in Echtzeit für jede Einheit beinhaltet, die mit der Mehrzahl von LPARs in Datenübertragungsverbindung steht.The method of claim 1, wherein measuring the actual I / O service time of the I / O operation comprises monitoring the actual I / O service time. Includes times of real-time I / O operations for each device in communication with the majority of LPARs. Verfahren nach einem der vorangehenden Ansprüche, das des Weiteren aufweist: Durchführen zumindest einer Kapazitätsplanung und Leistungsengpassanalyse durch den Prozessor auf Grundlage des Ermittelns der Verzögerungszeit der Virtualisierung auf dem Server.The method of any one of the preceding claims, further comprising: Performing at least one of capacity planning and performance bottleneck analysis by the processor based on determining the delay time of the virtualization on the server. Verfahren nach einem der vorangehenden Ansprüche, wobei das Messen der tatsächlichen E/A-Service-Zeit des E/A-Vorgangs aufweist: Empfangen eines E/A-Signals durch den Prozessor von einem Unterkanal, das angibt, dass ein angeforderter E/A-Vorgang auf einer Einheit durchgeführt worden ist; Ermitteln durch den Hypervisor, dass eine erste Instanz des O/S von der Mehrzahl von Instanzen des O/S dem E/A-Signal entspricht; Bereitstellen des E/A-Signals für die erste Instanz des O/S; Empfangen eines Bestätigungssignals von der ersten Instanz des O/S, um zu überprüfen, dass der angeforderte E/A-Vorgang durchgeführt worden ist; und Ermitteln einer verstrichenen Zeit durch den Prozessor zwischen dem Empfangen des E/A-Signals und dem Empfangen des Bestätigungssignals.The method of any one of the preceding claims, wherein measuring the actual I / O service time of the I / O operation comprises: Receiving, by the processor, an I / O signal from a subchannel indicating that a requested I / O operation has been performed on a device; Determining, by the hypervisor, that a first instance of the O / S of the plurality of instances of the O / S corresponds to the I / O signal; Providing the I / O signal for the first instance of the O / S; Receiving an acknowledgment signal from the first instance of the O / S to verify that the requested I / O operation has been performed; and Determining an elapsed time by the processor between receiving the I / O signal and receiving the acknowledgment signal. Verfahren nach Anspruch 4, das des Weiteren aufweist: Ermitteln durch den Hypervisor, dass eine zweite Instanz des O/S auf dem Prozessor ausgeführt wird, wenn das E/A-Signal empfangen wird; und Ermitteln durch den Hypervisor, ob die zweite Instanz des O/S unterbrochen werden sollte, um das E/A-Signal für die erste Instanz des O/S bereitzustellen, oder ob gestattet werden sollte, dass die zweite Instanz des O/S weiter ausgeführt wird.The method of claim 4, further comprising: Determining, by the hypervisor, that a second instance of the O / S is executing on the processor when the I / O signal is received; and Determine by the hypervisor whether the second instance of the O / S should be interrupted to provide the I / O signal for the first instance of the O / S, or whether the second instance of the O / S should be allowed to continue executing becomes. Verfahren nach Anspruch 4 oder 5, das des Weiteren aufweist: Empfangen einer Anforderung zum Zugreifen auf die Einheit durch den Prozessor entweder von einer Anwendung oder einer Zwischenanwendung, die auf der ersten Instanz des O/S ausgeführt wird.The method of claim 4 or 5, further comprising: Receiving, by the processor, a request to access the device from either an application or an intermediate application executing on the first instance of the O / S. Verfahren nach einem der Ansprüche 4 bis 6, das des Weiteren aufweist: Erzeugen eines Unterkanalstart(SSCH)-Signals durch die erste Instanz des O/S, um ein Verbinden eines Unterkanals des Computers mit der Einheit anzufordern; und Erzeugen von Steuersignalen durch den Unterkanal, um einen Datenübertragungsweg zwischen dem Unterkanal und der Einheit auf Grundlage des Empfangens der Anforderung zum Zugriff auf die Einheit herzustellen.The method of any of claims 4 to 6, further comprising: Generating a subchannel start (SSCH) signal by the first instance of the O / S to request connection of a subchannel of the computer to the unit; and Generating control signals through the subchannel to establish a data transfer path between the subchannel and the unit based on receiving the request to access the unit. Verfahren nach Anspruch 5, wobei es sich bei dem E/A-Signal um einen E/A-Interrupt handelt und der Hypervisor so konfiguriert ist, dass er eine Mehrzahl von E/A-Interrupts verwaltet, die der Mehrzahl von Instanzen des O/S entspricht.The method of claim 5, wherein the I / O signal is an I / O interrupt, and the hypervisor is configured to maintain a plurality of I / O interrupts corresponding to the plurality of instances of the O / I. S corresponds. Computersystem zum Verwalten mehrerer Instanzen eines Betriebssystems, das aufweist: einen Speicher, der in eine Mehrzahl von logischen Partitionen (LPARs) aufgeteilt ist, wobei jede LPAR so konfiguriert ist, dass sie eine von einer Mehrzahl von Instanzen eines Betriebssystems (O/S) ausführt; einen Prozessor, der so konfiguriert ist, dass er eine Bezugs-E/A-Service-Zeit eines E/A-Vorgangs auf einem Server ermittelt, eine tatsächliche E/A-Service-Zeit des E/A-Vorgangs misst und eine Verzögerungszeit der Virtualisierung auf dem Server auf Grundlage der Bezugs-E/A-Service-Zeit und der tatsächlichen E/A-Service-Zeit ermittelt.Computer system for managing multiple instances of an operating system, comprising: a memory divided into a plurality of logical partitions (LPARs), each LPAR configured to execute one of a plurality of instances of an operating system (O / S); a processor configured to detect a reference I / O service time of an I / O operation on a server, measure an actual I / O service time of the I / O operation, and a delay time The virtualization on the server is determined based on the reference I / O service time and the actual I / O service time. Computersystem nach Anspruch 9, wobei das Messen der tatsächlichen E/A-Service-Zeit des E/A-Vorgangs ein Überwachen der tatsächlichen E/A-Service-Zeiten von E/A-Vorgängen in Echtzeit für jede Einheit beinhaltet, die mit der Mehrzahl von LPARs in Datenübertragungsverbindung steht.The computer system of claim 9, wherein measuring the actual I / O service time of the I / O operation includes monitoring, in real time, the actual I / O service times of real-time I / O operations for each device associated with the device A plurality of LPARs are in communication. Computersystem nach einem der Ansprüche 9 oder 10, wobei das Messen der tatsächlichen E/A-Service-Zeit des E/A-Vorgangs aufweist: Empfangen eines E/A-Signals durch den Prozessor von einem Unterkanal, das angibt, dass ein angeforderter E/A-Vorgang auf einer Einheit durchgeführt worden ist; Ermitteln durch den Hypervisor, dass eine erste Instanz des O/S von der Mehrzahl von Instanzen des O/S dem E/A-Signal entspricht; Bereitstellen des E/A-Signals für die erste Instanz des O/S; Empfangen eines Bestätigungssignals von der ersten Instanz des O/S, um zu überprüfen, dass der angeforderte E/A-Vorgang durchgeführt worden ist; und Ermitteln einer verstrichenen Zeit durch den Prozessor zwischen dem Empfangen des E/A-Signals und dem Empfangen des Bestätigungssignals.The computer system of claim 9 or 10, wherein measuring the actual I / O service time of the I / O operation comprises: Receiving, by the processor, an I / O signal from a subchannel indicating that a requested I / O operation has been performed on a device; Determining, by the hypervisor, that a first instance of the O / S of the plurality of instances of the O / S corresponds to the I / O signal; Providing the I / O signal for the first instance of the O / S; Receiving an acknowledgment signal from the first instance of the O / S to verify that the requested I / O operation has been performed; and Determining an elapsed time by the processor between receiving the I / O signal and receiving the acknowledgment signal. Computersystem nach Anspruch 11, wobei der Prozessor so konfiguriert ist, dass er eine zweite Instanz des O/S ermittelt, die auf dem Prozessor ausgeführt wird, wenn das E/A-Signal empfangen wird, und ermittelt, ob die zweite Instanz des O/S unterbrochen werden sollte, um das E/A-Vorgangsbeendigungssignal für die erste Instanz des O/S bereitzustellen, oder ob gestattet werden sollte, dass die zweite Instanz des O/S weiter ausgeführt wird.The computer system of claim 11, wherein the processor is configured to determine a second instance of the O / S executed on the processor when the I / O signal is received, and determines whether the second instance of the O / S S should be interrupted to provide the I / O completion completion signal for the first instance of the O / S, or allowed to allow the second instance of the O / S to continue execution. Computersystem nach einem der Ansprüche 9 bis 12, wobei der Prozessor so konfiguriert ist, dass er die Verzögerungszeit in einem Segment des Speichers speichert, das dem Unterkanal zugehörig ist.The computer system of any one of claims 9 to 12, wherein the processor is configured to store the delay time in a segment of the memory associated with the subchannel. Computerprogrammprodukt zum Verwalten mehrerer Instanzen eines Betriebssystems, wobei das Computerprogrammprodukt aufweist: ein computerlesbares Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und das Anweisungen zur Ausführung durch die Verarbeitungsschaltung zum Durchführen eines Verfahrens nach einem der Ansprüche 1 bis 8 speichert. A computer program product for managing multiple instances of an operating system, the computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuitry for performing a method according to any one of claims 1 to 8. Computerprogramm, dass auf einem computerlesbaren Medium gespeichert und in den internen Speicher eines Digitalcomputers ladbar ist, das Abschnitte eines Software-Codes aufweist, um das Verfahren eines der Ansprüche 1 bis 8 durchzuführen, wenn das Programm auf einem Computer ausgeführt wird.A computer program stored on a computer readable medium and loadable into the internal memory of a digital computer having portions of software code for performing the method of any of claims 1 to 8 when the program is run on a computer.
DE112013002995.2T 2012-06-15 2013-05-21 Real-time measurement of virtualization I/O processing delays Active DE112013002995B4 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/524,315 US9122508B2 (en) 2012-06-15 2012-06-15 Real time measurement of I/O interrupt delay times by hypervisor by selectively starting and/or stopping corresponding LPARs
US13/524,315 2012-06-15
PCT/IB2013/054161 WO2013186645A1 (en) 2012-06-15 2013-05-21 Real time measurement of virtualization i/o processing delays

Publications (2)

Publication Number Publication Date
DE112013002995T5 true DE112013002995T5 (en) 2015-03-19
DE112013002995B4 DE112013002995B4 (en) 2023-09-28

Family

ID=49757199

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112013002995.2T Active DE112013002995B4 (en) 2012-06-15 2013-05-21 Real-time measurement of virtualization I/O processing delays

Country Status (5)

Country Link
US (2) US9122508B2 (en)
CN (1) CN104335180B (en)
DE (1) DE112013002995B4 (en)
GB (1) GB2517619A (en)
WO (1) WO2013186645A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9753860B2 (en) 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9535846B2 (en) * 2014-07-28 2017-01-03 International Business Machines Corporation Using a decrementer interrupt to start long-running hardware operations before the end of a shared processor dispatch cycle
US20180088977A1 (en) * 2016-09-28 2018-03-29 Mark Gray Techniques to determine and mitigate latency in virtual environments
US11004568B2 (en) 2017-03-10 2021-05-11 Altair Engineering, Inc. Systems and methods for multi-dimensional fluid modeling of an organism or organ
US10977397B2 (en) 2017-03-10 2021-04-13 Altair Engineering, Inc. Optimization of prototype and machine design within a 3D fluid modeling environment
US10437308B2 (en) 2017-06-05 2019-10-08 Red Hat, Inc. Predictive virtual machine halt
CN107704373B (en) * 2017-10-31 2021-08-27 北京奇艺世纪科技有限公司 Data processing method and device
US10733121B2 (en) * 2018-05-10 2020-08-04 Qualcomm Incorporated Latency optimized I3C virtual GPIO with configurable operating mode and device skip
CN109189567B (en) * 2018-08-30 2021-10-08 百度在线网络技术(北京)有限公司 Time delay calculation method, device, equipment and computer readable storage medium
US10929263B2 (en) * 2018-11-13 2021-02-23 International Business Machines Corporation Identifying a delay associated with an input/output interrupt
CN110209559B (en) * 2019-04-26 2021-09-14 华为技术有限公司 Non-invasive monitoring method, control equipment and storage medium
US11176493B2 (en) * 2019-04-29 2021-11-16 Google Llc Virtualizing external memory as local to a machine learning accelerator

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615343A (en) 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US7000088B1 (en) * 2002-12-27 2006-02-14 Storage Technology Corporation System and method for quality of service management in a partitioned storage device or subsystem
US7000036B2 (en) * 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7797472B2 (en) 2004-08-25 2010-09-14 Unisys Corporation Method and apparatus for providing overlapping defer phase responses
US8255906B2 (en) 2007-08-24 2012-08-28 Opnet Technologies, Inc. Modeling overhead for a plurality of virtualization technologies in a computer system
US8429652B2 (en) 2009-06-22 2013-04-23 Citrix Systems, Inc. Systems and methods for spillover in a multi-core system
CN101859256B (en) * 2009-11-25 2013-03-06 北京航空航天大学 I/O virtualization method for simplifying mode switch in hardware virtual machine
US8375171B2 (en) 2010-04-08 2013-02-12 Unisys Corporation System and method for providing L2 cache conflict avoidance
CN102314377B (en) 2010-06-30 2014-08-06 国际商业机器公司 Accelerator and method thereof for supporting virtual machine migration
US8468524B2 (en) 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
CN102222034A (en) 2011-07-15 2011-10-19 浙江大学 Virtualized platform performance evaluating method based on program contour analysis

Also Published As

Publication number Publication date
US9122508B2 (en) 2015-09-01
GB201421848D0 (en) 2015-01-21
US20130339948A1 (en) 2013-12-19
GB2517619A (en) 2015-02-25
CN104335180A (en) 2015-02-04
DE112013002995B4 (en) 2023-09-28
US9122512B2 (en) 2015-09-01
US20130339951A1 (en) 2013-12-19
CN104335180B (en) 2018-04-20
WO2013186645A1 (en) 2013-12-19

Similar Documents

Publication Publication Date Title
DE112013002995B4 (en) Real-time measurement of virtualization I/O processing delays
DE112005001512B4 (en) Apparatus and method for high performance access to a volatile disk drive storage using a built-in direct memory access device
DE112018002951B4 (en) USING A TRACK FORMAT CODE IN A CACHE CONTROL BLOCK FOR A TRACK IN A CACHE TO PROCESS READ AND WRITE REQUESTS REGARDING THE TRACK IN THE CACHE
DE102015105884B4 (en) Compute nodes and methods for migrating a virtual machine, data center manager for migrating virtual machines, machine-readable storage medium and computing devices
DE102013110085B4 (en) NON-VOLATILE MEMORY DEVICE
US9800523B2 (en) Scheduling method for virtual processors based on the affinity of NUMA high-performance network buffer resources
DE102006062802B4 (en) Information processing system and method for controlling multiple hot plug operations
DE102016221811A1 (en) Mapping of resources with multilayer storage
DE102016105589A1 (en) Apply firmware updates in a zero-downtime system by selectively turning off and on hardware using a hypervisor layer
DE112012001660T5 (en) Memory checkpointing in a system of mirrored virtual machines
DE112017004808T5 (en) DYNAMIC ALLOCATION OF VIRTUAL CPU CORE
DE102014108249A1 (en) Implement advanced error handling for a shared adapter in a virtualized system
DE102010001339A1 (en) Manage requirements of operating systems that run in virtual machines
DE112013002014T5 (en) Provide application-based monitoring and recovery for an HA cluster hypervisor
DE112012005209T5 (en) Bridge function between virtual machine monitor and bare-metal boot process
DE102012215918A1 (en) Mirror virtual machines from a primary to a secondary host
DE112013000369T5 (en) Managing threads within a computing environment
DE102013209643B4 (en) Mechanism for optimized messaging data transmission between nodelets within a tile
DE112014002754T5 (en) Efficient task planning using a locking mechanism
DE102014114108A1 (en) Process control systems and procedures
DE112018005121T5 (en) STORAGE SYSTEM USING CLOUD STORAGE AS A STORAGE BANK
WO2014118969A1 (en) Virtual computer system and data transfer control method for virtual computer system
DE102016203808A1 (en) Reduce virtual machine preemption in a virtualized environment
DE112013006634T5 (en) Computer system and computer system control method
DE112014006642T5 (en) Semiconductor device tester with Dut data streaming

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence