DE102016221804A1 - Ungültigmachen von Einträgen in einem Adressumsetzpufferspeicher durch ein Gast-Betriebssystem - Google Patents

Ungültigmachen von Einträgen in einem Adressumsetzpufferspeicher durch ein Gast-Betriebssystem Download PDF

Info

Publication number
DE102016221804A1
DE102016221804A1 DE102016221804.2A DE102016221804A DE102016221804A1 DE 102016221804 A1 DE102016221804 A1 DE 102016221804A1 DE 102016221804 A DE102016221804 A DE 102016221804A DE 102016221804 A1 DE102016221804 A1 DE 102016221804A1
Authority
DE
Germany
Prior art keywords
operating system
guest operating
invalidation
hypervisor
credits
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
DE102016221804.2A
Other languages
English (en)
Other versions
DE102016221804B4 (de
Inventor
Shakti Kapoor
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 DE102016221804A1 publication Critical patent/DE102016221804A1/de
Application granted granted Critical
Publication of DE102016221804B4 publication Critical patent/DE102016221804B4/de
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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/683Invalidation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Ausführungsformen offenbaren Techniken, um es einem Gast-Betriebssystem (OS) zu ermöglichen, Einträge in einem Adressumsetzpufferspeicher (TLB) direkt ungültig zu machen. In einer Ausführungsform empfängt das Gast-Betriebssystem ein oder mehrere Invalidierungsguthaben von einem Hypervisor, um Umsetzungseinträge in einem Adressumsetzpufferspeicher (TLB) ungültig zu machen. Das Gast-Betriebssystem verringert ein Invalidierungsguthaben von dem einen oder den mehreren Invalidierungsguthaben, nachdem es einen Umsetzungseintrag in dem TLB ungültig gemacht hat. Nach der Feststellung, dass keine Invalidierungsguthaben mehr übrig sind, fordert das Gast-Betriebssystem zusätzliche Invalidierungsguthaben von dem Hypervisor an. Auf der Grundlage einer Feststellung, ob das Gast-Betriebssystem ein gefährliches Betriebssystem ist, das eine Bedrohung oder ein Risiko für andere Gast-Betriebssysteme in einem Datenverarbeitungssystem darstellt, oder kein solches Gast-Betriebssystem ist, kann der Hypervisor nach eigener Wahl entscheiden, die zusätzlichen Invalidierungsguthaben zuzuweisen.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung betrifft im Allgemeinen logische Partitionen in einem Datenverarbeitungssystem und insbesondere Techniken, die es einem Gast-Betriebssystem (auf einem Datenverarbeitungssystem) ermöglichen, Einträge in einem Adressumsetzpufferspeicher ungültig zu machen.
  • Administratoren nehmen oftmals eine logische Partitionierung der Ressourcen von Datenverarbeitungssystemen durch Virtualisierung vor. Zu diesen Ressourcen können Prozessoren, Arbeitsspeicher, Massenspeicher usw. gehören. Ein Hypervisor wird verwendet, um verschiedenen logischen Partitionen (oder virtuellen Maschinen) virtualisierte Datenverarbeitungs-Hardware bereitzustellen. Jede logische Partition kann ein anderes Betriebssystem (operating system, OS) ausführen. Der Hypervisor kann jedes OS mit einem Satz virtualisierter Datenverarbeitungs-Hardware versehen.
  • Außerdem enthalten Prozessoren mindestens eine Arbeitsspeicher-Verwaltungseinheit (memory management unit (MMU)), um virtuelle in physische Adressen umzusetzen. Zum Beispiel kann der Prozessor verschiedenen Prozessen, die auf dem Prozessor ausgeführt werden (z. B. Betriebssysteme oder Benutzeranwendungen), Blöcke von virtuellem Arbeitsspeicher zuweisen. Jede der virtuellen Adressen entspricht einer physischen Arbeitsspeicheradresse im Arbeitsspeicher. Die Zuordnungen zwischen den virtuellen und den physischen Adressen werden in einer Seitentabelle als Seitentabelleneinträge gespeichert. Wenn ein Prozess eine Anforderung, Daten von einer bestimmten virtuellen Adresse zu lesen oder Daten an eine bestimmte virtuelle Adresse zu schreiben, an einen Verarbeitungskern sendet, fragt die MMU die Seitentabelle {oder einen Adressumsetzpufferspeicher (translation lookaside buffer (TLB)) ab, um die entsprechenden physischen Adressen zu ermitteln. Der Verarbeitungskern verwendet dann die physische Adresse, um die von dem Prozess angeforderte Lese- oder Schreiboperation durchzuführen.
  • Bei dem TLB handelt es sich im Allgemeinen um einen Cachespeicher der Seitentabelle, der eine Teilmenge des Inhalts der Seitentabelle darstellt. Im Allgemeinen geht der Zugriff auf den TLB für eine Umsetzung für einen Prozessor schneller vonstatten als der Zugriff auf die Seitentabelle (die üblicherweise im Hauptspeicher abgelegt wird). In manchen Fällen können die Einträge in dem TLB jedoch ungültig werden, z. B. aufgrund eines Prozesswechsels, bei dem der Prozessor von der Ausführung eines Prozesses (der eine Zuordnung einer virtuellen zu einer physischen Adresse verwendet) zur Ausführung eines anderen Prozesses übergeht (der eine andere Zuordnung einer virtuellen zu einer physischen Adresse verwendet).
  • Bevor ein TLB-Eintrag ungültig gemacht wird, muss das Betriebssystem im Allgemeinen den Hypervisor aufrufen, dessen Aufgabe darin besteht, TLB-Einträge ungültig zu machen. Auf diese Weise wird verhindert, dass Betriebssysteme, die Sicherheitsbedrohungen darstellen können, andere Betriebssysteme in dem Datenverarbeitungssystem in Mitleidenschaft ziehen. Gleichzeitig kann die Verwendung des Hypervisors, um TLB-Einträge ungültig zu machen, bei einer großen Anzahl von Betriebssystemen jedoch ineffizient sein (beispielsweise weil möglicherweise eine große Anzahl von Anweisungen ausgeführt werden muss, bevor ein TLB-Eintrag ungültig gemacht wird).
  • KURZDARSTELLUNG
  • Eine hier vorgestellte Ausführungsform beschreibt ein Verfahren. Das Verfahren beinhaltet im Allgemeinen den Empfang von einem oder mehreren Invalidierungsguthaben von einem Hypervisor durch ein Gast-Betriebssystem, um Umsetzungseinträge in einem Adressumsetzpufferspeicher (TLB) ungültig zu machen. Das Verfahren beinhaltet auch das Verringern von einem Invalidierungsguthaben von dem einen oder den mehreren Invalidierungsguthaben, nachdem ein Umsetzungseintrag in dem TLB ungültig gemacht worden ist. Das Verfahren beinhaltet darüber hinaus das Anfordern von zusätzlichen Invalidierungsguthaben von dem Hypervisor, nachdem festgestellt wurde, dass keine Invalidierungsguthaben mehr übrig sind.
  • Weitere Ausführungsformen enthalten, ohne darauf beschränkt zu sein, ein Computerprogrammprodukt, das ein nichtflüchtiges Speichermedium mit von einem Computer lesbarem Programmcode enthält, der es einer Verarbeitungseinheit ermöglicht, einen oder mehrere Aspekte der offenbarten Verfahren umzusetzen, sowie ein System, das über einen Prozessor, einen Arbeitsspeicher und Anwendungsprogramme verfügt, die so konfiguriert sind, dass sie eines oder mehrere der offenbarten Verfahren durchführen.
  • KURZE BESCHREIBUNG DER DIVERSEN ANSICHTEN DER ZEICHNUNGEN
  • 1 zeigt ein beispielhaftes Datenverarbeitungssystem gemäß einer Ausführungsform, das es Gast-Betriebssystemen ermöglicht, TLB-Einträge ungültig zu machen.
  • 2 zeigt ein Beispiel einer TLB-Invalidierungskomponente gemäß einer Ausführungsform.
  • 3 zeigt ein Verfahren gemäß einer Ausführungsform, das dazu dient, TLB-Einträge durch ein Gast-Betriebssystem ungültig zu machen.
  • 4 zeigt ein Verfahren gemäß einer Ausführungsform, das dazu dient, ein Gast-Betriebssystem zu erkennen und/oder ein Gast-Betriebssystem daran zu hindern, einem Datenverarbeitungssystem Schaden zuzufügen.
  • 5 zeigt ein Blockschaubild eines Datenverarbeitungssystems gemäß einer Ausführungsform, das so konfiguriert ist, dass es TLB-Einträge ungültig macht und ein gefährliches Betriebssystem unter Quarantäne stellt.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Hier aufgezeigte Ausführungsformen offenbaren Techniken, um es einem Gast-Betriebssystem zu ermöglichen, TLB-Einträge ungültig zu machen, beispielsweise, ohne über den Hypervisor zu gehen. Hier aufgezeigte Ausführungsformen offenbaren auch Techniken, die dazu dienen, Gast-Betriebssysteme, die eine Sicherheitsbedrohung und/oder ein Sicherheitsrisiko für andere Gast-Betriebssysteme darstellen, zu erkennen und daran zu hindern, die anderen Betriebssysteme in einem Datenverarbeitungssystem in Mitleidenschaft zu ziehen. Somit bieten die hier aufgezeigten Techniken eine verbesserte Leistungsfähigkeit im Vergleich zu herkömmlichen Architekturen, bei denen das Gast-Betriebssystem keine TLB-Einträge ungültig machen darf.
  • In herkömmlichen Datenverarbeitungssystemen dürfen Gast-Betriebssysteme TLB-Einträge im Allgemeinen nicht selbst ungültig machen, da es sich bei dem Gast-Betriebssystem im Allgemeinen nicht um ein vertrauenswürdiges Betriebssystem handelt. In vielen Fällen kann das Gast-Betriebssystem zum Beispiel eine Sicherheitsbedrohung und/oder ein Sicherheitsrisiko für andere Gast-Betriebssysteme in dem Datenverarbeitungssystem darstellen. Unter Verwendung eines Denial-of-Service-(DOS-)Angriffs als Referenzbeispiel könnte das Gast-Betriebssystem, wenn ein Gast-Betriebssystem TLB-Einträge ungültig machen dürfte (ohne Erlaubnis von dem Hypervisor), andere Gast-Betriebssysteme am Betrieb hindern und/oder die Leistungsfähigkeit der anderen Betriebssysteme merklich herabsetzen (z. B. ”denial of service” (Zugangsbehinderung)), indem den Gast-Betriebssystemen durch die Verwendung von Anweisungen, Einträge im Adressumsetzpufferspeicher ungültig zu machen (translation lookaside buffer invalidate entry instructions (tlbies)), der Zugriff auf Umsetzungen von virtuellen in physische Adressen, die sich in dem TLB befinden, verwehrt wird. Somit gestatten herkömmliche Datenverarbeitungssysteme im Allgemeinen nur dem Hypervisor, TLB-Einträge ungültig zu machen.
  • Die Verwendung des Hypervisors, um TLB-Einträge ungültig zu machen, ist jedoch sehr ineffizient. Eine Architektur beispielsweise, die vorgibt, dass das Gast-Betriebssystem den Hypervisor aufruft, um einen TLB-Eintrag ungültig zu machen, muss üblicherweise mehrere Anweisungen ausführen, bevor der TLB-Eintrag ungültig gemacht wird, was die Leistungsfähigkeit des Gast-Betriebssystems herabsetzt.
  • Wie nachstehend ausführlicher beschrieben wird, machen es die hier aufgezeigten Techniken möglich, dass ein Gast-Betriebssystem TLB-Einträge direkt ungültig macht, während Gast-Betriebssysteme erkannt und daran gehindert werden, eine Gefahr für andere Betriebssysteme in einem Datenverarbeitungssystem darzustellen. In einer Ausführungsform kann der Hypervisor jedem Gast-Betriebssystem, das auf einem Datenverarbeitungssystem ausgeführt wird, eine Anzahl von TLB-Invalidierungsguthaben (z. B. tlbie-Guthaben) zuweisen. Jedes Gast-Betriebssystem kann die tlbie-Guthaben dazu verwenden, TLB-Einträge direkt ungültig zu machen. Der Hypervisor kann den Betrieb des Gast-Betriebssystems einschließlich der Verwendung der tlbie-Guthaben durch jedes Gast-Betriebssystem überwachen. Auf der Grundlage der Verwendung der Guthaben kann der Hypervisor feststellen, ob das Gast-Betriebssystem ein ”gefährliches” Betriebssystem ist (z. B. ein Betriebssystem, das ein Sicherheitsrisiko oder eine Sicherheitsbedrohung für die anderen Betriebssysteme darstellt, die in dem Datenverarbeitungssystem betrieben werden, usw.). Wenn der Hypervisor zum Beispiel feststellt, dass ein Gast-Betriebssystem mehr tlbie-Guthaben in Anspruch nimmt, als ihm zugewiesen wurden, kann der Hypervisor zu der Feststellung kommen, dass das Gast-Betriebssystem an einem Denial-of-Service-(DOS-)Angriff oder an einem anderen Sicherheitsangriff beteiligt ist. Wenn der Hypervisor feststellt, dass das Gast-Betriebssystem ein ”gefährliches” Betriebssystem ist, kann der Hypervisor Maßnahmen ergreifen, um ein solches gefährliches Betriebssystem zu isolieren, z. B., indem er das gefährliche Betriebssystem unter Quarantäne stellt, dem gefährlichen Betriebssystem jede weitere Zuweisung von tlbie-Guthaben verweigert, dem gefährlichen Betriebssystem Betriebszeit durch den Prozessor verweigert usw. Der Hypervisor kann das gefährliche Betriebssystem auch einem Administrator melden, um den Administrator einschreitende Maßnahmen ergreifen zu lassen.
  • Somit ermöglichen es die hier aufgezeigten Techniken einem Gast-Betriebssystem, TLB-Einträge selbst ungültig zu machen (z. B. ohne den Hypervisor aufzurufen), was die Leistungsfähigkeit des Betriebssystems merklich verbessert. Überdies machen es die hier aufgezeigten Techniken auch möglich, Gast-Betriebssysteme, die ein Sicherheitsrisiko und/oder eine Sicherheitsbedrohung darstellen, zu erkennen und solche gefährlichen Betriebssysteme von anderen Teilen des Datenverarbeitungssystems zu isolieren und unter Quarantäne zu stellen.
  • Es sei angemerkt, dass die folgenden Ausführungsformen von einem Kontextwechsel Gebrauch machen, bei dem die Hardware (z. B. der Prozessor usw.) eines Datenverarbeitungssystems von der Ausführung eines Prozesses (und folglich von einem Adressraum) zur Ausführung eines anderen Prozesses (und folglich zu einem anderen Adressraum) schaltet, was als Referenzbeispiel für eine Situation dienen soll, in der die Einträge des TLB beispielsweise von einem Gast-Betriebssystem ungültig gemacht werden können. Es sei jedoch angemerkt, dass die hier aufgezeigten Techniken, die es einem Gast-Betriebssystem ermöglichen, TLB-Einträge ungültig zu machen, auch in anderen Situationen Anwendung finden können. Es sei weiter angemerkt, dass sich die folgenden Ausführungsformen auch auf Denial-of-Service-(DOS-)Angriffe als ein Referenzbeispiel für eine Art von Angriff beziehen, der von einem gefährlichen Betriebssystem durchgeführt werden kann, welches eine übermäßige Menge von tlbies ausgibt. Der Fachmann versteht jedoch, dass mit den hier aufgezeigten Techniken auch andere Arten von Angriffen und/oder Sicherheitslücken erkannt werden können.
  • 1 zeigt ein beispielhaftes Datenverarbeitungssystem 100 gemäß einer Ausführungsform, in dem die hier aufgezeigten Techniken in die Praxis umgesetzt werden können. Wie gezeigt ist, enthält das Datenverarbeitungssystem 100 einen Hypervisor 102, eine virtuelle Maschine (VM) 106A, eine VM 106B, einen Prozessor 112, einen TLB 114 und einen Massenspeicher 116. Bei dem Hypervisor 102 (d. h. einem Virtual Machine Monitor (VMM)) handelt es sich um Software und/oder Hardware, die die VMs 106 (die auch als logische Partitionen oder LPARs bezeichnet werden) in dem Datenverarbeitungssystem 100 verwaltet und ausführt. Im Allgemeinen ist der Hypervisor 102 ein Vermittler zwischen den VMs 106 und der Hardware in dem Datenverarbeitungssystem 100 (z. B. dem Prozessor 112, dem Massenspeicher 116 usw.). Wie gezeigt ist, ist das Gast-Betriebssystem 108A das Betriebssystem für die VM 106A, während das Gast-Betriebssystem 108B das Betriebssystem für die VM 106B ist. Jedes Gast-Betriebssystem 108 kann eine oder mehrere Anwendungen (oder Prozesse), die nicht gezeigt sind, ausführen. Zu Beispielen für Gast-Betriebssysteme zählen Versionen des Betriebssystems UNIX (wie zum Beispiel das Betriebssystem AIX), Versionen des Betriebssystems Microsoft Windows sowie Distributionen des Betriebssystems Linux. (UNIX ist ein eingetragenes Warenzeichen von The Open Group in den Vereinigten Staaten von Amerika und in anderen Ländern. Microsoft und Windows sind Warenzeichen der Microsoft Corporation in den Vereinigten Staaten von Amerika, in anderen Ländern oder sowohl in den Vereinigten Staaten von Amerika als auch in anderen Ländern. Linux ist ein eingetragenes Warenzeichen von Linus Torvalds in den Vereinigten Staaten von Amerika, in anderen Ländern oder sowohl in den Vereinigten Staaten von Amerika als auch in anderen Ländern.) Allgemeiner gesagt, jedes Betriebssystem, das die hier offenbarten Funktionen unterstützt, kann verwendet werden.
  • In einer Ausführungsform steuert der Hypervisor 102, welche VM 106 (und ihr entsprechendes Gast-Betriebssystem 108) gerade von dem Prozessor 112 ausgeführt wird. Anders ausgedrückt, der Hypervisor 102 kann die Verarbeitungszeit des Prozessors 112 so einteilen, dass verschiedenen VMs 106 in dem Datenverarbeitungssystem 100 verschiedene Blöcke von Verarbeitungszeit (oder Zeitscheiben) zugewiesen werden. In diesem Beispiel wird die VM 106A gerade für die Verwendung des Prozessors 112 eingeteilt. Somit führt der Prozessor 112 Anweisungen aus, die von den Prozessen bereitgestellt werden, welche im Gast-Betriebssystem 108A ausgeführt werden, wie von dem gestrichelten Kästchen im Prozessor 112 angegeben wird. Es sei angemerkt, dass 1 zwar nur zwei VMs 106 zeigt, das Datenverarbeitungssystem 100 aber eine beliebige Anzahl von VMs enthalten kann, die die Verarbeitungszeit auf dem Prozessor 112 aufteilen.
  • Der Prozessor 112 stellt eine beliebige Anzahl von Verarbeitungselementen dar, von denen jedes einen oder mehrere Verarbeitungskerne enthalten kann. Wenn der Prozessor 112 mehrere Kerne enthält, können die VMs 106 in einer Ausführungsform so eingeteilt werden, dass sie die einzelnen Kerne zu verschiedenen Zeitblöcken verwenden. Beispielsweise kann das Gast-Betriebssystem 108A der VM 106A so ungeteilt werden, dass es einen ersten Kern im Prozessor 112 verwendet, während das Gast-Betriebssystem 108B der VM 106B so eingeteilt wird, dass es einen zweiten Kern im Prozessor 112 verwendet. Alternativ können die VMs 106 während des Zeitraums, für den sie eingeteilt sind, den ganzen Prozessor 112 (der mehrere Kerne enthält) verwenden. Zum Beispiel können alle Kerne im Prozessor 112 vom Gast-Betriebssystem 108A ausgegebene Anweisungen ausführen. Während die VM 106A für die Verwendung des Prozessors 112 eingeteilt ist, kann das Gast-Betriebssystem 108B der VM 106B inaktiv sein. Anders ausgedrückt, der Hypervisor 102 hält die Prozesse, die auf dem Gast Betriebssystem 108B ausgeführt werden, bis zu dem Zeitpunkt an, zu dem er für die Verwendung des Prozessors 112 eingeteilt ist.
  • Das Datenverarbeitungssystem 100 enthält auch einen TLB 114, um die von dem Prozessor 112 angeforderten Umsetzungen von virtuellen in physische Adressen durchzuführen. In einer Ausführungsform kann der TLB 114 als eine Art von Cachespeicher betrachtet werden, der nur einen Teil der Einträge in einer Seitentabelle (nicht gezeigt) für ein Gast-Betriebssystem (wie zum Beispiel das Gast Betriebssystem 108A, 108B usw.) speichert. Zum Beispiel kann der TLB 114 kürzlich vorgenommene Umsetzungen von virtuellen Adressen in physische Adressen verwalten, die von einem bestimmten Prozess oder einer bestimmten Anwendung (eines Gast-Betriebssystems) verwendet werden. Bei dem TLB 114 kann es sich beispielsweise um einen Assoziativspeicher (z. B. einen inhaltadressierbaren Speicher (content addressable memory (CAM)) handeln, der sich in der Arbeitsspeicherhierarchie über anderen Arten von Arbeitsspeicher (wie z. B. Cachespeicher, Hauptspeicher usw.) befindet. Anders ausgedrückt, der TLB 114 befindet sich näher am Prozessor 112 als andere Arten von Arbeits- oder Massenspeicher.
  • Wenn der Prozessor 112 einen Prozess ausführt, der zu dem Gast-Betriebssystem 108A gehört, kann der Prozessor 112 zuerst Umsetzungseinträge im TLB 114 abfragen. Wenn der Prozessor 112 die entsprechende Arbeitsspeicher-Umsetzung nicht finden kann, kann der Prozessor 112 die Seitentabelle (nicht gezeigt), die sich üblicherweise im Hauptspeicher befindet, nach der entsprechenden Arbeitsspeicher-Umsetzung durchsuchen. Wenn der Hauptspeicher nicht die gewünschte Zuordnung hat, kann der Prozessor 112 die virtuelle Adresse aus dem Massenspeicher 116 abrufen, der Kopien von allen Seitentabellen in dem Datenverarbeitungssystem 100 enthalten kann. Der Massenspeicher 116 kann Direktzugriffsspeicher-(RAM-)Einheiten, zu denen der Hauptspeicher des Datenverarbeitungssystems 100 gehört, sowie ergänzende Arbeitsspeicherebenen, z. B. Cachespeicher, nichtflüchtige oder Sicherungsspeicher (z. B. programmierbare oder Flashspeicher), Nur-Lese-Speicher und dergleichen, darstellen. Außerdem kann zu dem Massenspeicher 116 Arbeitsspeicher gehören, der sich physisch im Datenverarbeitungssystem 100 oder auf einer anderen Datenverarbeitungseinheit befindet, die mit dem Datenverarbeitungssystem 100 verbunden ist.
  • In einer Ausführungsform können ein oder mehrere Einträge in dem TLB 114 für den nachfolgend ausgeführten Prozess ungültig (oder unbrauchbar) werden, weil das Gast-Betriebssystem 108A und das Gast-Betriebssystem 108B möglicherweise verschiedene Prozesse ausführen, die unterschiedliche virtuelle Adressräume verwenden. In derartigen Situationen würde das Datenverarbeitungssystem 100 solche Einträge im Allgemeinen als ungültig markieren, beispielsweise, um sicherzustellen, dass der nächste Prozess (der gleich ausgeführt wird) nicht versehentlich eine Umsetzung einer virtuellen in eine physische Adresse aus einem vorherigen Prozess verwendet. Wie vorstehend erwähnt wurde, gestatten es herkömmliche Architekturen, teilweise aufgrund von Sicherheitsbedenken, einem Gast-Betriebssystem jedoch nicht, TLB-Einträge ungültig zu machen. Vielmehr muss das Gast-Betriebssystem bei diesen herkömmlichen Architekturen im Allgemeinen den Hypervisor aufrufen, der dafür zuständig ist, TLB-Einträge ungültig zu machen.
  • Hier aufgezeigte Ausführungsformen stellen jedoch Techniken vor, die es Gast-Betriebssystemen gestatten können, TLB-Einträge ungültig zu machen, während sie Sicherheitsbedenken ausräumen, die damit verbunden sind, dass Gast-Betriebssystemen diese Möglichkeit eingeräumt wird. Wie beispielsweise in 1 gezeigt ist, enthält jede VM 106A und 106B eine TLB-Invalidierungskomponente 110A beziehungsweise 110B. Wie nachstehend ausführlicher beschrieben wird, können das Gast-Betriebssystem 108A und das Gast-Betriebssystem 1088 die TLB-Invalidierungskomponente in ihrer jeweiligen logischen Partition verwenden, um TLB-Einträge im TLB 114 direkt ungültig zu machen, z. B., ohne den Hypervisor 102 aufzurufen. In einer Ausführungsform können das Gast-Betriebssystem 108A und das Gast-Betriebssystem 108B die TLB-Invalidierungskomponenten 110A und 110B verwenden, um TLB-Einträge während eines Kontextwechsels ungültig zu machen, bei dem ein Prozess (der mit einem Adressraum arbeitet) zu einem anderen Prozess wechselt (der mit einer anderen Adresse arbeitet).
  • In einer Ausführungsform überwacht der Hypervisor 102 den Betrieb des Gast-Betriebssystems 108A und des Gast-Betriebssystems 108B, um sicherzustellen, dass das Gast-Betriebssystem 108A weder ein Risiko noch eine Bedrohung für das Gast-Betriebssystem 108B (und umgekehrt) in dem Datenverarbeitungssystem 100 darstellt. Wie nachstehend ausführlicher beschrieben wird, kann der Hypervisor 102 zum Beispiel eine maximale Anzahl von TLB-Invalidierungsversuchen festlegen, die jedes Gast-Betriebssystem 108A und jedes Gast-Betriebssystem 108B vornehmen darf. Wenn der Hypervisor 102 in einer Ausführungsform feststellt, dass eines der Gast-Betriebssysteme 108 die zugeteilte Anzahl von TLB-Invalidierungsversuchen überschreitet, kann der Hypervisor 102 zu der Feststellung gelangen, dass das Gast-Betriebssystem ein ”gefährliches” Betriebssystem ist, das für andere Gast-Betriebssysteme in dem Datenverarbeitungssystem 100 eine Bedrohung darstellt, und Maßnahmen ergreifen, um das ”gefährliche” Betriebssystem von anderen Teilen des Datenverarbeitungssystems 100 zu isolieren.
  • Beispielsweise kann der Hypervisor 102, wie gezeigt ist, ein gefährliches Gast-Betriebssystem mit Hilfe der Quarantänekomponente 104 isolieren. In einer Ausführungsform kann der Hypervisor 102 mit Hilfe der Quarantänekomponente 104 den restlichen Block der Verarbeitungszeit, welcher dem gefährlichen Gast-Betriebssystem zugewiesen worden ist, wegnehmen und/oder verringern. In einer Ausführungsform kann der Hypervisor 102 die Anzahl der TLB-Invalidierungsversuche, die das gefährliche Gast-Betriebssystem vornehmen darf, mit Hilfe der Quarantänekomponente 104 beschränken. In einer Ausführungsform kann der Hypervisor 102 mit der Quarantänekomponente 104 den Zugriff des gefährlichen Betriebssystems auf Software- und/oder Hardware-Ressourcen des Datenverarbeitungssystems 100 beschränken und/oder verhindern. Der Hypervisor 102 kann zum Beispiel die Zuwiderhandlungen eines Gast-Betriebssystems erfassen und sobald die Zuwiderhandlungen einen Schwellenwert erreichen, kann der Hypervisor 102 das Gast-Betriebssystem von einem oder mehreren Teilen des Datenverarbeitungssystems 100 isolieren und unter Quarantäne stellen. In einer Ausführungsform kann der Hypervisor 102 einem Systemadministrator das Vorhandensein eines ”gefährlichen” Gast-Betriebssystems anzeigen, um dem Systemadministrator die Möglichkeit zu geben, die Sicherheitsbedrohung zu beseitigen. Im Allgemeinen kann die Quarantänekomponente 104 jedoch jedwede Kombination der vorstehenden Techniken umsetzen, um ein Gast-Betriebssystem zu erkennen und/oder daran zu hindern, eine Bedrohung für andere Gast Betriebssysteme in dem Datenverarbeitungssystem 100 darzustellen.
  • Es sei angemerkt, dass 1 lediglich ein Beispiel für ein Datenverarbeitungssystem zeigt, das so konfiguriert ist, dass es einem Gast-Betriebssystem gestattet, TLB-Einträge ungültig zu machen (ohne den Hypervisor aufzurufen), und so konfiguriert ist, dass es verhindert, dass ein Gast-Betriebssystem eine Sicherheitsbedrohung für andere Teile des Datenverarbeitungssystems 100 darstellt. Allgemeiner ausgedrückt, der Fachmann wird erkennen, dass andere Ausführungsformen von Datenverarbeitungssystemen ebenfalls so konfiguriert werden können, dass sie die hier aufgezeigten Techniken umsetzen.
  • 2 zeigt des Weiteren ein Beispiel der in Bezug auf 1 beschriebenen TLB-Invalidierungskomponente 110 gemäß einer Ausführungsform. Wie gezeigt ist, enthält die TLB-Invalidierungskomponente 110 Invalidierungsguthaben 202, eine Unterbrechungskomponente 204 und ein Invalidierungsinstrument 206.
  • In einer Ausführungsform macht die TLB-Invalidierungskomponente 110 TLB-Einträge in dem TLB 114 mit Hilfe des Invalidierungsinstruments 206 ungültig. Zum Beispiel sendet die TLB-Invalidierungskomponente 110 tlbie-Anweisungen mit Hilfe des Invalidierungsinstruments 206 an den Prozessor 112, um TLB-Einträge in dem TLB 114 ungültig zu machen. Üblicherweise weiß das Gast-Betriebssystem jedoch nicht, auf welchem Prozessor es gerade ausgeführt wird. In diesen Fällen verwendet das Invalidierungsinstrument 206 daher die Rundsendeform der tlbie-Anweisung, welche auf dem Systembus (nicht gezeigt) in dem Datenverarbeitungssystem 100 im Rundsendeverfahren übertragen wird. Selbst wenn es den Gast-Betriebssystemen gestattet ist, tlbie-Anweisungen für ihre eigene VM (oder logische Partition) im Rundsendeverfahren zu übertragen, kann die Rundsendeform der tlbie-Anweisungen in manchen Fällen eine Gefahr für andere Gast-Betriebssysteme in demselben Datenverarbeitungssystem 100 darstellen. Ein gefährliches Gast-Betriebssystem könnte beispielsweise die Fabric mit seinen tlbie-Anweisungen fluten, was zu Leistungseinbußen und/oder Zugangsbehinderungen (denial of service) für andere Gast-Betriebssysteme führt. Ferner kann die Rundsendung einer großen Anzahl von tlbie-Anweisungen auf dem Systembus dazu führen, dass das ganze Datenverarbeitungssystem zusammenbricht.
  • Hier aufgezeigte Ausführungsformen stellen Techniken bereit, die dazu dienen, die Anzahl der tlbie-Anweisungen zu steuern, die ein Gast-Betriebssystem je Zeitblock ausgeben kann. Wie gezeigt ist, wird jedem Gast-Betriebssystem zum Beispiel eine Anzahl von Invalidierungsguthaben 202 durch den Hypervisor 102 zugewiesen. In einer Ausführungsform lädt der Hypervisor die Invalidierungsguthaben 202 in ein Sonderregister (special purpose register (SPR)), welches das Invalidierungsinstrument 206 bei der Ausgabe von tlbie-Anweisungen verwenden darf. Die Anzahl der jedem Gast-Betriebssystem zugewiesenen Invalidierungsguthaben 202 kann auf vielen verschiedenen Kriterien (oder Informationen) beruhen. In einer Ausführungsform ist die Anzahl der Invalidierungsguthaben, die dem Gast-Betriebssystem zugewiesen werden, zum Beispiel eine feste Anzahl (die z. B. von der Gesamtzahl der Invalidierungsguthaben bestimmt wird, die dem Hypervisor 102 zur Verfügung stehen). Anders ausgedrückt, wenn der Hypervisor 102 über M Invalidierungsguthaben verfügt und es N Gast-Betriebssysteme 108 gibt, die über N VMs 106 betrieben werden, kann jedes Gast-Betriebssystem M/N Invalidierungsguthaben erhalten, wobei M > N und N > 1 ist. In manchen Fällen können die M Invalidierungsguthaben auf der Grundlage des Schwellenwerts von im Rundsendeverfahren übertragenen Invalidierungsguthaben bestimmt werden, die das Datenverarbeitungssystem 100 (z. B. auf dem Systembus) zulassen kann, bevor es zu Leistungseinbußen und/oder einem Systemausfall kommt.
  • In einer weiteren Ausführungsform kann die Anzahl der Invalidierungsguthaben 202, die dem Gast-Betriebssystem zugewiesen werden, auf den jeweiligen Prozessen oder Anwendungen beruhen, die von dem Gast-Betriebssystem ausgeführt werden. Beispielsweise kann der Hypervisor 102 die Entscheidung treffen, einem Gast-Betriebssystem mehr Invalidierungsguthaben zuzuweisen, wenn dieses Gast-Betriebssystem im Vergleich beispielsweise zu einem anderen Gast-Betriebssystem, das für die Ausführung von einfachen Prozessen zuständig ist, für die Ausführung von komplexeren Prozessen zuständig ist. In einer Ausführungsform kann die Anzahl der Invalidierungsguthaben 202, die dem Gast-Betriebssystem zugewiesen werden, auf der Eingabe und/oder der Rückmeldung des Systemadministrators beruhen.
  • In einer Ausführungsform verringert der Prozessor 112 jedes Mal, wenn das Invalidierungsinstrument 206 eine tlbie-Anweisung ausgibt, nach erfolgter Ausführung der Anweisung ein Invalidierungsguthaben 202 von dem SPR. In einer Ausführungsform unterbricht die Unterbrechungskomponente 204 das Gast-Betriebssystem 108, sobald keine Invalidierungsguthaben 202 mehr übrig sind. In einer Ausführungsform wird die Unterbrechungskomponente 204 von der Leistungsüberwachungseinheit (performance monitoring unit (PMU)) des Prozessors 112 realisiert. Eine solche Unterbrechung zwingt das Gast-Betriebssystem 108 zum Aufruf des Hypervisors 102, um mehr Invalidierungsguthaben 202 anzufordern, damit das Gast-Betriebssystem 108 weiterhin ausgeführt werden und es seinen aktuellen Zeitblock verwenden kann. Sobald der Hypervisor 102 die Unterbrechung empfängt, kann der Hypervisor 102 beliebige der vorstehend beschriebenen Techniken umsetzen, wie zum Beispiel den restlichen Zeitblock des Gast-Betriebssystems verringern und/oder wegnehmen, das Gast-Betriebssystem darüber informieren, dass die zugewiesene Anzahl von Invalidierungsguthaben 202 überschritten wurde, dem Gast-Betriebssystem 108 mehr Invalidierungsguthaben 202 zuweisen, das Gast-Betriebssystem unter Quarantäne stellen (z. B., wenn sich das Gast-Betriebssystem wiederholt einer Zuwiderhandlung schuldig macht), sich weigern, zusätzliche Invalidierungsguthaben 202 zuzuweisen, einem Systemadministrator die Zuwiderhandlung melden usw.
  • 3 zeigt ein Verfahren 300 gemäß einer Ausführungsform, das dazu dient, einen oder mehrere TLB-Einträge ungültig zu machen. Wie gezeigt ist, beginnt das Verfahren 300 im Schritt 302, in dem das Gast-Betriebssystem 108 ein oder mehrere Invalidierungsguthaben, z. B. von einem Hypervisor 102, empfängt. Wie vorstehend erwähnt wurde, können die Invalidierungsguthaben in einer Ausführungsform in ein Sonderregister für das Gast-Betriebssystem 108 geladen werden. Im Schritt 304 verringert das Gast-Betriebssystem 108 jedes Mal, wenn das Gast-Betriebssystem 108 eine tlbie-Anweisung ausgibt, die Anzahl der Invalidierungsguthaben um eins. Im Schritt 306 stellt das Gast-Betriebssystem fest, ob in dem Sonderregister noch Invalidierungsguthaben übrig sind. Wenn ja, gibt das Gast-Betriebssystem 108 weiterhin tlbie-Anweisungen als Teil seines normalen Betriebs aus. Anders ausgedrückt, das Gast-Betriebssystem 108 kann weiterhin tlbie-Anweisungen als Teil eines jeden Kontextwechsels oder einer anderen Art von Operation ausgeben. Wenn das Gast-Betriebssystem 108 andererseits feststellt, dass in dem Sonderregister keine Invalidierungsguthaben mehr übrig sind, unterbricht das Gast-Betriebssystem 108 den Prozessor und ruft den Hypervisor auf, um zusätzliche Invalidierungsguthaben anzufordern (Schritt 308). Wenn im Schritt 310 zusätzliche Invalidierungsguthaben empfangen werden, verwendet das Gast-Betriebssystem 108 weiterhin Invalidierungsguthaben als Teil seines normalen Betriebs.
  • 4 zeigt ein Verfahren 400 gemäß einer Ausführungsform, das dazu dient, ein gefährliches Gast-Betriebssystem, das tlbie-Anweisungen ausgeben darf, zu erkennen und daran zu hindern, eine Bedrohung für ein Datenverarbeitungssystem darzustellen. Wie gezeigt ist, beginnt das Verfahren 400 im Schritt 402, in dem der Hypervisor 102 einem oder mehreren Gast-Betriebssystemen 108 in einem Datenverarbeitungssystem ein oder mehrere Invalidierungsguthaben zuweist. Bei 404 erkennt der Hypervisor 102, dass mindestens ein Gast-Betriebssystem die zugewiesene Anzahl von Invalidierungsguthaben überschritten hat. Wie vorstehend erwähnt wurde, wird, sobald ein Gast-Betriebssystem seine zugewiesene Anzahl von Invalidierungsguthaben überschreitet, zum Beispiel eine Unterbrechung erzeugt (z. B. von einer PMU), die das Gast-Betriebssystem anhält und das Gast-Betriebssystem zwingt, den Hypervisor 102 aufzurufen, um zusätzliche Invalidierungsguthaben anzufordern.
  • Bei 406 stellt der Hypervisor 102 fest, ob das Gast-Betriebssystem ein gefährliches Betriebssystem ist (z. B. eine Bedrohung oder ein Risiko für andere Gast-Betriebssysteme in dem Datenverarbeitungssystem 100 darstellt). Wie vorstehend erwähnt wurde, kann der Hypervisor 102 beispielsweise auf der Grundlage der Anzahl der Zuwiderhandlungen, des von dem Gast-Betriebssystem in Anspruch genommenen Prozentsatzes seines zugewiesenen Zeitblocks, der Art der Prozesse, die das Gast-Betriebssystem gerade ausführt, usw. feststellen, dass das Gast-Betriebssystem ein gefährliches Betriebssystem ist. Wenn der Hypervisor 102 feststellt, dass das Gast-Betriebssystem kein gefährliches Betriebssystem ist, weist der Hypervisor 102 dem Gast-Betriebssystem im Schritt 408 dann zusätzliche Invalidierungsguthaben zu. Der Hypervisor 102 kann auch einen Zähler erhöhen, der die Anzahl der Zuwiderhandlungen für das Gast-Betriebssystem erfasst. Wenn der Hypervisor 102 feststellt, dass das Gast-Betriebssystem ein gefährliches Betriebssystem ist, nimmt der Hypervisor 102 im Schritt 410 den restlichen Zeitblock des Gast-Betriebssystems weg (oder verringert ihn). Im Schritt 412 stellt der Hypervisor 102 das Gast-Betriebssystem unter Quarantäne. Im Schritt 414 benachrichtigt der Hypervisor 102 einen Systemadministrator.
  • 5 zeigt ein Datenverarbeitungssystem 500 gemäß einer Ausführungsform, das so konfiguriert ist, dass es ein paralleles Nullsetzen des Arbeitsspeichers durchführt. Wie gezeigt ist, enthält das Datenverarbeitungssystem 500, ohne darauf beschränkt zu sein, eine zentrale Verarbeitungseinheit (CPU) 505, eine Netzschnittstelle 515, einen Arbeitsspeicher 520 und einen Massenspeicher 560, die jeweils mit einem Bus 517 verbunden sind. Das Datenverarbeitungssystem 500 kann auch eine E/A-Einheitenschnittstelle 510 enthalten, die E/A-Einheiten 512 (z. B. Tastatur-, Maus- und Anzeigeeinheiten) mit dem Datenverarbeitungssystem 500 verbindet. Im Kontext dieser Offenbarung können die in dem Datenverarbeitungssystem 500 gezeigten Datenverarbeitungselemente überdies einem physischen Datenverarbeitungssystem (z. B. einem System in einem Rechenzentrum) entsprechen oder sie können eine virtuelle Datenverarbeitungsinstanz sein, die in einer Datenverarbeitungs-Cloud ausgeführt wird.
  • Die CPU 505 ruft im Arbeitsspeicher 520 gespeicherte Programmieranweisungen ab und führt sie aus und sie speichert und ruft Anwendungsdaten ab, die sich im Arbeitsspeicher 520 befinden. Die Verbindung 517 dient zur Übertragung von Programmieranweisungen und Anwendungsdaten zwischen der CPU 505, der E/A-Einheitenschnittstelle 510, dem Massenspeicher 560, der Netzschnittstelle 515 und dem Arbeitsspeicher 520. Es sei angemerkt, dass die CPU 505 stellvertretend für eine einzelne CPU, mehrere CPUs, eine einzelne CPU mit mehreren Verarbeitungskernen und dergleichen enthalten ist. Der Arbeitsspeicher 520 ist im Allgemeinen stellvertretend für einen Direktzugriffsspeicher enthalten. Bei dem Massenspeicher 560 kann es sich um eine Plattenlaufwerk-Speichereinheit handeln. Obgleich er als eine einzelne Einheit gezeigt ist, kann es sich bei dem Massenspeicher 560 um eine Kombination aus fest installierten und/oder auswechselbaren Speichereinheiten, wie zum Beispiel Festplattenlaufwerken, auswechselbaren Speicherkarten oder optischem Speicher, an das Netz angeschlossenem Speicher (network attached storage (NAS)) oder aber um ein Speicherbereichsnetz (storage area-network (SAN)) handeln.
  • Zum Zweck der Veranschaulichung enthält der Arbeitsspeicher 520 die VMs 522A bis 522N, einen Hypervisor 528 und einen TLB 532. Jede VM 522 enthält ein Gast-Betriebssystem 524 und eine Invalidierungskomponente 526. Wie vorstehend erwähnt wurde, macht das Gast-Betriebssystem 524 TLB-Einträge im TLB 532 mit Hilfe der Invalidierungskomponente 526 ungültig. Der Hypervisor 528 enthält eine Quarantänekomponente 530. Der Hypervisor 528 verwendet die Quarantänekomponente 530, um das Gast-Betriebssystem 524, das TLB-Einträge über die Invalidierungskomponente 526 ungültig machen kann, zu erkennen und/oder daran zu hindern, eine Bedrohung für andere Gast-Betriebssysteme in dem Datenverarbeitungssystem 500 darzustellen. In manchen Ausführungsformen stellen die Invalidierungskomponente 526 und die Quarantänekomponente 530 im Allgemeinen Logik dar (z. B. eine Software-Anwendung, die Firmware einer Einheit, eine anwendungsspezifische integrierte Schaltung (ASIC) usw.), die so konfiguriert ist, dass sie eine oder mehrere hier aufgezeigten Techniken umsetzt.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung erfolgten zum Zweck der Veranschaulichung, erheben jedoch keinen Anspruch auf Vollständigkeit und sind auch nicht als auf die offenbarten Ausführungsformen beschränkt zu verstehen. Viele Ab- und Veränderungen sind für den Fachmann erkennbar, ohne vom Umfang und Wesen der beschriebenen Ausführungsformen abzuweichen. Die hier verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung oder technische Verbesserung gegenüber auf dem Markt befindlicher Technologien am besten zu erklären oder um anderen Fachleuten das Verständnis der hier offenbarten Ausführungsformen zu ermöglichen.
  • Im Folgenden wird Bezug auf in dieser Offenbarung aufgezeigte Ausführungsformen genommen. Der Umfang der vorliegenden Offenbarung ist jedoch nicht auf bestimmte beschriebene Ausführungsformen beschränkt. Vielmehr wird jede beliebige Kombination der folgenden Merkmale und Elemente, ungeachtet dessen, ob sie sich auf verschiedene Ausführungsformen beziehen oder nicht, als eine Kombination erwogen, welche in Betracht gezogene Ausführungsformen implementiert und in die Praxis umsetzt. Zwar können hier offenbarte Ausführungsformen Vorteile gegenüber anderen möglichen Lösungen oder gegenüber dem Stand der Technik erzielen, doch stellt die Frage, ob ein bestimmter Vorteil von einer bestimmten Ausführungsform erzielt wird oder nicht, überdies keine Einschränkung des Umfangs der vorliegenden Offenbarung dar. Die folgenden Aspekte, Merkmale, Ausführungsformen und Vorteile dienen somit lediglich der Veranschaulichung und werden nicht als Elemente oder Einschränkungen der beigefügten Ansprüche betrachtet, soweit dies in einem oder in mehreren Ansprüchen nicht ausdrücklich anders angegeben ist. Ebenso ist die Bezugnahme auf ”die Erfindung” nicht als Verallgemeinerung eines beliebigen hier offengelegten Erfindungsgegenstands auszulegen und nicht als ein Element oder eine Beschränkung der beigefügten Ansprüche zu betrachten, soweit dies in einem oder in mehreren Ansprüchen nicht ausdrücklich anders angegeben ist.
  • Aspekte der vorliegenden Erfindung können die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software und Hardware-Aspekte kombiniert, die hier alle allgemein als eine ”Schaltung”, ein ”Modul” oder ein ”System” bezeichnet werden können.
  • Bei der vorliegenden Offenbarung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein von einem Computer lesbares Speichermedium (oder Speichermedien) beinhalten, auf dem sich von einem Computer lesbare Programmanweisungen befinden, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Offenbarung umzusetzen.
  • Das von einem Computer lesbare Speichermedium kann eine physisch greifbare Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit aufnehmen und speichern kann. Das von einem Computer lesbare Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Eine Liste mit genaueren Beispielen für das von einem Computer lesbare Speichermedium, die keinen Anspruch auf Vollständigkeit erhebt, beinhaltet die folgenden Beispiele: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flashspeicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compact-Disk-Nur-Lese-Speicher (CD-ROM), eine digitale vielseitig verwendbare Disk (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen sowie jede beliebige geeignete Kombination des Vorstehenden. Ein von einem Computer lesbares Speichermedium in der hier verwendeten Weise ist nicht so auszulegen, dass es sich dabei um kurzzeitige Signale an sich, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich über einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z. B. Lichtimpulse, die durch ein Lichtwellenleiterkabel geleitet werden), oder elektrische Signale, die über ein Kabel übertragen werden, handelt.
  • Von einem Computer lesbare Programmanweisungen, die hier beschrieben sind, können von einem Speichermedium, das von einem Computer gelesen werden kann, auf entsprechende Rechen-/Verarbeitungseinheiten oder über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netz, auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungsstellen (Switches), Gateway-Rechner und/oder Edge-Server aufweisen. Eine Netzadapterkarte oder Netzschnittstelle in jeder Rechen-/Verarbeitungseinheit empfängt von einem Computer lesbare Programmanweisungen von dem Netzwerk und leitet die von einem Computer lesbaren Programmanweisungen weiter, um sie in einem von einem Computer lesbaren Speichermedium in der jeweiligen Rechen-/Verarbeitungseinheit zu speichern.
  • Bei den von einem Computer lesbaren Programmanweisungen zur Durchführung von Operationen der vorliegenden Offenbarung kann es sich um Assembler-Anweisungen, Anweisungen der Befehlssatzarchitektur (ISA), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Zustandseinstellungsdaten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Smalltalk, C++ oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache ”C” oder in ähnlichen Programmiersprachen geschrieben sind. Die von einem Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzes (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden sein oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Dienstanbieters) hergestellt werden. In manchen Ausführungsformen können elektronische Schaltungen, zu denen beispielsweise programmierbare Logikschaltkreise, kundenprogrammierbare Universalschaltkreise (FPGA) oder programmierbare logische Anordnungen (PLA) gehören, die von einem Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der von einem Computer lesbaren Programmanweisungen verwenden, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Offenbarung umzusetzen.
  • Aspekte der vorliegenden Offenbarung werden hier mit Bezug auf Darstellungen in Ablaufplänen und/oder Blockschaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Offenbarung beschrieben. Es versteht sich, dass jeder Block der Darstellungen in den Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen aus Blöcken in den Darstellungen der Ablaufpläne und/oder den Blockschaubildern von Programmanweisungen, die von einem Computer gelesen werden können, realisiert werden können.
  • Diese von einem Computer lesbaren Programmanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind. Diese von einem Computer lesbaren Programmanweisungen können auch in einem von einem Computer lesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass das von dem Computer lesbare Speichermedium, das über darin gespeicherte Anweisungen verfügt, einen Herstellungsgegenstand aufweist, der Anweisungen enthält, die Aspekte der Funktion/des Vorgangs umsetzen, welche beziehungsweise welcher in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben ist.
  • Die von einem Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf eine andere Einheit geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf einer anderen Einheit zu bewirken, um einen von einem Computer ausgeführten Prozess zu erzeugen, so dass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführt werden, die Funktionen/Vorgänge ausführen, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Die Ablaufpläne und die Blockschaubilder in den Figuren zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Offenbarung. In dieser Hinsicht kann jeder Block in den Ablaufplänen oder in den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, das beziehungsweise der einen oder mehrere ausführbare Anweisungen zur Ausführung der angegebenen logischen Funktionen) aufweist. In manchen alternativen Ausführungsarten treten die in dem Block angegebenen Funktionen gegebenenfalls nicht in der in den Figuren angegebenen Reihenfolge auf. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können zuweilen in der umgekehrten Reihenfolge ausgeführt werden. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Darstellung in den Ablaufplänen sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder der Darstellung in den Ablaufplänen von Systemen, die auf Spezial-Hardware beruhen und die angegebenen Funktionen oder Vorgänge oder Kombinationen aus Anweisungen von Spezial-Hardware und Computer-Anweisungen durchführen, realisiert werden können.
  • Ausführungsformen der vorliegenden Offenbarung können Endbenutzern über eine Cloud-Computing-Infrastruktur bereitgestellt werden. Cloud-Computing bezieht sich im Allgemeinen auf die als ein Dienst über ein Netzwerk erfolgende Bereitstellung von skalierbaren Datenverarbeitungsressourcen. Formaler ausgedrückt, Cloud-Computing kann als eine Möglichkeit der Datenverarbeitung definiert werden, die eine Abstraktion zwischen der Datenverarbeitungsressource und ihrer zugrunde liegenden technischen Architektur (z. B. Server, Massenspeicher, Netzwerke) darstellt, was einen komfortablen, bedarfsweisen Netzzugriff auf einen gemeinsam genutzten Bestand an konfigurierbaren Datenverarbeitungsressourcen ermöglicht, die schnell bereitgestellt und mit minimalem Verwaltungsaufwand oder Zutun eines Dienstanbieters freigegeben werden können. Folglich ermöglicht das Cloud-Computing einem Benutzer den Zugriff auf virtuelle Datenverarbeitungsressourcen (z. B. Massenspeicher, Daten, Anwendungen und sogar vollständige virtualisierte Datenverarbeitungssysteme) in ”der Cloud”, ohne Rücksicht auf die zugrunde liegenden physischen Systeme (oder Standorte dieser Systeme), die zur Bereitstellung der Datenverarbeitungsressourcen verwendet werden.
  • Während sich das Vorstehende auf Ausführungsformen der vorliegenden Offenbarung bezieht, können andere und weitere Ausführungsformen der Erfindung entworfen werden, ohne vom grundlegenden Umfang der Erfindung abzuweichen, und der Umfang der Erfindung wird von den Ansprüchen, die folgen, festgelegt.

Claims (13)

  1. Verfahren, aufweisend: Empfangen von einem oder mehreren Invalidierungsguthaben von einem Hypervisor durch ein Gast-Betriebssystem (OS), um Umsetzungseinträge in einem Adressumsetzpufferspeicher (TLB) ungültig zu machen; Verringern von einem Invalidierungsguthaben von dem einen oder den mehreren Invalidierungsguthaben, nachdem ein Umsetzungseintrag in dem TLB ungültig gemacht worden ist; und Anfordern von zusätzlichen Invalidierungsguthaben von dem Hypervisor, nachdem festgestellt wurde, dass keine Invalidierungsguthaben mehr übrig sind.
  2. Verfahren nach Anspruch 1, wobei das Gast-Betriebssystem einer ersten virtuellen Maschine entspricht, die einen Prozessor für einen Zeitraum einer Vielzahl von Zeiträumen nutzt.
  3. Verfahren nach Anspruch 1, wobei das eine oder die mehreren Invalidierungsguthaben in ein Sonderregister (SPR) geladen werden und wobei das eine Invalidierungsguthaben von dem SPR verringert wird.
  4. Verfahren nach Anspruch 1, wobei das Gast-Betriebssystem den Umsetzungseintrag in dem TLB ungültig macht, nachdem es von der Ausführung eines ersten Prozesses zur Ausführung eines zweiten Prozesses geschaltet hat.
  5. Verfahren nach Anspruch 2, wobei das Verfahren nach erfolgter Anforderung der zusätzlichen Invalidierungsguthaben von dem Hypervisor des Weiteren aufweist: Empfangen eines Hinweises von dem Hypervisor, dass das Gast-Betriebssystem nicht länger einen verbleibenden Teil des Zeitraums nutzen darf.
  6. Verfahren nach Anspruch 2, wobei das Verfahren nach erfolgter Anforderung der zusätzlichen Invalidierungsguthaben von dem Hypervisor des Weiteren aufweist: Empfangen eines Hinweises von dem Hypervisor, dass das Gast-Betriebssystem keine Anweisungen mehr an den Prozessor für einen beliebigen Zeitraum der Vielzahl von Zeiträumen ausgeben darf.
  7. Verfahren nach Anspruch 5, wobei das Gast-Betriebssystem den Hinweis empfängt, nachdem der Hypervisor festgestellt hat, dass das Gast-Betriebssystem eine Bedrohung für mindestens ein weiteres Gast-Betriebssystem darstellt, das einer zweiten VM entspricht.
  8. Verfahren nach Anspruch 7, wobei die Feststellung darauf beruht, wie oft das Gast-Betriebssystem das eine oder die mehreren Invalidierungsguthaben in Anspruch genommen hat.
  9. System, aufweisend: einen Prozessor, der so konfiguriert ist, dass er ein erstes Gast-Betriebssystem, das einer ersten virtuellen Maschine (VM) entspricht, für einen Zeitraum einer Vielzahl von Zeiträumen ausführt; einen Hypervisor; und einen Arbeitsspeicher, der Programmcode speichert, welcher, wenn er auf dem Prozessor ausgeführt wird, eine Operation durchführt, die aufweist: Empfangen von einem oder mehreren Invalidierungsguthaben von dem Hypervisor durch das erste Gast-Betriebssystem, um Umsetzungseinträge in einem Adressumsetzpufferspeicher (TLB) ungültig zu machen; Verringern von einem Invalidierungsguthaben von dem einen oder den mehreren Invalidierungsguthaben, nachdem ein Umsetzungseintrag in dem TLB ungültig gemacht worden ist; und Anfordern von zusätzlichen Invalidierungsguthaben von dem Hypervisor, nachdem festgestellt wurde, dass keine Invalidierungsguthaben mehr übrig sind.
  10. System nach Anspruch 9, wobei das erste Gast-Betriebssystem den Hinweis empfängt, nachdem der Hypervisor festgestellt hat, dass das Gast-Betriebssystem eine Bedrohung für ein zweites Gast-Betriebssystem darstellt, das einer zweiten VM entspricht, und wobei die Bedrohung einen Denial-of-Service-(DOS-)Angriff aufweist.
  11. Computerprogrammprodukt, das aufweist: ein nicht flüchtiges, von einem Computer lesbares Speichermedium mit damit realisiertem, von einem Computer lesbaren Programmcode, wobei der von einem Computer lesbare Programmcode von einem oder mehreren Computer-Prozessoren ausführbar ist, um eine Operation durchzuführen, die aufweist: Empfangen von einem oder mehreren Invalidierungsguthaben von einem Hypervisor durch ein erstes Gast-Betriebssystem, um Umsetzungseinträge in einem Adressumsetzpufferspeicher (TLB) ungültig zu machen; Verringern von einem Invalidierungsguthaben von dem einen oder den mehreren Invalidierungsguthaben, nachdem ein Umsetzungseintrag in dem TLB ungültig gemacht worden ist; und Anfordern von zusätzlichen Invalidierungsguthaben von dem Hypervisor, nachdem festgestellt wurde, dass keine Invalidierungsguthaben mehr übrig sind.
  12. Computerprogrammprodukt nach Anspruch 11, wobei nach dem Anfordern der zusätzlichen Invalidierungsguthaben von dem Hypervisor die Operation des Weiteren das Empfangen eines Hinweises von dem Hypervisor auf mindestens eines von Folgendem aufweist: dass das Gast-Betriebssystem nicht länger einen verbleibenden Teil des Zeitraums nutzen darf; oder dass das Gast-Betriebssystem keine Anweisungen an den Prozessor für einen beliebigen Zeitraum der Vielzahl der Zeiträume mehr ausgeben darf.
  13. Computerprogrammprodukt nach Anspruch 12, wobei das erste Gast-Betriebssystem den Hinweis empfängt, nachdem der Hypervisor festgestellt hat, dass das erste Gast-Betriebssystem eine Bedrohung für ein zweites Gast-Betriebssystem darstellt, das einer zweiten VM entspricht, und wobei die Feststellung, dass das erste Gast-Betriebssystem eine Bedrohung für das zweite Gast-Betriebssystem darstellt, darauf beruht, wie oft das Gast-Betriebssystem das eine oder die mehreren Invalidierungsguthaben in Anspruch genommen hat.
DE102016221804.2A 2015-11-30 2016-11-08 Ungültigmachen von Einträgen in einem Adressumsetzpufferspeicher durch ein Gast-Betriebssystem Active DE102016221804B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/954,681 2015-11-30
US14/954,681 US10162763B2 (en) 2015-11-30 2015-11-30 Invalidation of translation look-aside buffer entries by a guest operating system

Publications (2)

Publication Number Publication Date
DE102016221804A1 true DE102016221804A1 (de) 2017-06-01
DE102016221804B4 DE102016221804B4 (de) 2021-08-26

Family

ID=57571044

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016221804.2A Active DE102016221804B4 (de) 2015-11-30 2016-11-08 Ungültigmachen von Einträgen in einem Adressumsetzpufferspeicher durch ein Gast-Betriebssystem

Country Status (3)

Country Link
US (1) US10162763B2 (de)
DE (1) DE102016221804B4 (de)
GB (1) GB2544866B (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108733311B (zh) * 2017-04-17 2021-09-10 伊姆西Ip控股有限责任公司 用于管理存储系统的方法和设备
GB2578924B (en) * 2018-11-14 2021-09-29 Advanced Risc Mach Ltd An apparatus and method for controlling memory accesses

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4567472B2 (ja) * 2005-01-12 2010-10-20 株式会社エヌ・ティ・ティ・ドコモ 定額制ユーザのデータ通信規制方法およびデータ通信規制制御装置
US7299337B2 (en) * 2005-05-12 2007-11-20 Traut Eric P Enhanced shadow page table algorithms
US7434003B2 (en) 2005-11-15 2008-10-07 Microsoft Corporation Efficient operating system operation on a hypervisor
US7945739B2 (en) * 2007-08-28 2011-05-17 International Business Machines Corporation Structure for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor
US8037252B2 (en) * 2007-08-28 2011-10-11 International Business Machines Corporation Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor
JP5119994B2 (ja) * 2008-03-14 2013-01-16 富士通株式会社 性能モニタリングプログラム、性能モニタリング方法、性能モニタリング装置
US8275971B2 (en) 2008-08-27 2012-09-25 International Business Machines Corporation Method and apparatus for managing software controlled cache of translating the physical memory access of a virtual machine between different levels of translation entities
US8060722B2 (en) * 2009-03-27 2011-11-15 Vmware, Inc. Hardware assistance for shadow page table coherence with guest page mappings
JP5423232B2 (ja) * 2009-08-17 2014-02-19 富士通株式会社 プロセス状態検知プログラム、情報処理装置、プロセス状態検知方法
US9298918B2 (en) * 2011-11-30 2016-03-29 Elwha Llc Taint injection and tracking
US9032488B2 (en) * 2012-04-17 2015-05-12 Salesforce.Com, Inc. Cross instance user authentication architecture
US9251088B2 (en) * 2013-10-30 2016-02-02 Globalfoundries Inc. Mechanisms for eliminating a race condition between a hypervisor-performed emulation process requiring a translation operation and a concurrent translation table entry invalidation
US10642663B2 (en) * 2014-09-10 2020-05-05 Oracle International Corporation Coordinated garbage collection in distributed systems

Also Published As

Publication number Publication date
GB2544866B (en) 2017-12-06
US10162763B2 (en) 2018-12-25
GB201616784D0 (en) 2016-11-16
GB2544866A (en) 2017-05-31
DE102016221804B4 (de) 2021-08-26
US20170153982A1 (en) 2017-06-01

Similar Documents

Publication Publication Date Title
DE202012013448U1 (de) Prozessormodussperre
DE102014108249A1 (de) Realisieren erweiterter Fehlerbehandlung für einen gemeinsam genutzten Adapter in einem virtualisierten System
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE102015119889A1 (de) Verfahren für Netzwerkvorrichtungsfluss-Look-up-Verwaltung
DE112008002888T5 (de) Hardwarevorrichtungsschnittstelle, die Transaktionsauthentifizierung unterstützt
DE112011100392T5 (de) Ressourcenaffinität durch dynamisches hinzufügen oder entfernen von warteschlangenpaaren für netzadapter mit software zur empfangsseitigen skalierung (rss)
DE112015001477T5 (de) Hardwarezähler zum Verfolgen einer Auslastung in einem Multithreading-Computersystem
DE102016222861A1 (de) Transparentes, sicheres Durchführen von Abrufvorgängen
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE112013000656T5 (de) System und Verfahren zum Verringern der Speichernutzung durch optimales Platzieren von virtuellen Maschinen in einem virtualisierten Rechenzentrum
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE202013012478U1 (de) Kompression der datenkarte
DE202016107437U1 (de) Daten-Caching
DE112017000163T5 (de) Priorisierung von Transaktionen
DE112016003466T5 (de) Vorinstallieren von Seitentabellen-Cachezeilen einer virtuellen Maschine
DE102014108049A1 (de) Intelligente Abfragehäufigkeit
DE112016006308T5 (de) Erweiterte virtuelle Funktionsfähigkeiten in einer virtualisierten Netzwerkumgebung
DE112018005359T5 (de) Verhindern eines Beibehaltens von Datensatzsperren durch Transaktionen mit langer Laufzeit
DE112018006068T5 (de) Dynamische adressübersetzung für eine virtuelle maschine
DE112022003368T5 (de) Verschlüsselungsüberwachungsregister und -system
DE112014000433T5 (de) Kapseln eines virtuellen Servers in einer Hypervisor-Subpartition
DE112019000303B4 (de) Datenspeichersystem, das die datenverlagerung auf grundlage von zeitlicher nähe von zugriffen durchführt
DE102016221804B4 (de) Ungültigmachen von Einträgen in einem Adressumsetzpufferspeicher durch ein Gast-Betriebssystem
DE102012221261A1 (de) Verfahren zum Zwischenspeichern und System zum Ausführen des Verfahrens zum Zwischenspeichern zum Betreiben eines mindestens einen Host-Computer aufweisenden Computerserversystems
DE112012002562T5 (de) Unterbringung von Daten in Partitionen auf einer Speichereinheit

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
R020 Patent grant now final