[go: up one dir, main page]

DE112008002634T5 - Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung - Google Patents

Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung Download PDF

Info

Publication number
DE112008002634T5
DE112008002634T5 DE112008002634T DE112008002634T DE112008002634T5 DE 112008002634 T5 DE112008002634 T5 DE 112008002634T5 DE 112008002634 T DE112008002634 T DE 112008002634T DE 112008002634 T DE112008002634 T DE 112008002634T DE 112008002634 T5 DE112008002634 T5 DE 112008002634T5
Authority
DE
Germany
Prior art keywords
task
data processing
processing system
data
proxy
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.)
Ceased
Application number
DE112008002634T
Other languages
English (en)
Inventor
Ronald N Hilton
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.)
Individual
Original Assignee
Individual
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=40509900&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=DE112008002634(T5) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Individual filed Critical Individual
Publication of DE112008002634T5 publication Critical patent/DE112008002634T5/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Gerät zum Entlasten einer Datenverarbeitung, wobei das Gerät folgendes umfasst:
eine Entlastungsaufgabe bzw. Offload-Task, die auf einem ersten Datenverarbeitungssystem beherbergt bzw. gehostet wird und eine interne Funktionalität aufweist, die im Wesentlichen mit derjenigen einer zweiten Aufgabe bzw. Task gleichwertig ist, die auf einem zweiten Datenverarbeitungssystem beherbergt bzw. gehostet wird; und
eine Proxy-Aufgabe bzw. Proxy-Task, die auf dem zweiten Datenverarbeitungssystem beherbergt wird, die konfiguriert ist, um mit der Entlastungsaufgabe bzw. Offload-Task auf dem ersten Datenverarbeitungssystem zu kommunizieren, und die eine externe Schnittstelle aufweist, die im Wesentlichen mit derjenigen der zweiten Aufgabe bzw. Task gleichwertig ist, wobei die Proxy-Aufgabe bzw. Proxy-Task im Wesentlichen die zweite Aufgabe bzw. Task ersetzt, indem sie die interne Funktionalität der zweiten Aufgabe an die Entlastungsaufgabe bzw. Offload-Task delegiert.

Description

  • Allgemeiner Stand der Technik
  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine systemübergreifende Kopplung und betrifft insbesondere die Entlastung (Offload) von Rechenaufgaben (Rechen-Tasks) von einem Datenprozessor oder Verarbeitungssystem auf einen anderen Datenprozessor bzw. ein anderes Verarbeitungssystem.
  • Beschreibung der verwandten Technik
  • Wie auf diesem Gebiet bekannt, werden spezielle Entlastungsprozessoren (Offload-Prozessoren) verwendet, um bestimmte Rechenaufgaben wirksamer auszuführen als ein universeller Prozessor oder ein universelles Verarbeitungssystem. Derartige Prozessoren wurden als Coprozessoren umgesetzt, die mit einem universellen Prozessor verbunden sind, was das Verarbeitungsvermögen dieses Prozessors erhöht, um spezialisierte Operationen, wie etwa Gleitkomma-, Vektor- oder kryptographische Verarbeitung, auszuführen. Alternativ können die Entlastungsprozessoren (Offload-Prozessoren) als gleichrangige Elemente der universellen Prozessoren in einem Multiprozessorsystem umgesetzt werden, mit der Möglichkeit, spezialisierte Aufgaben (Tasks) gleichzeitig mit anderen Aufgaben (Tasks) auszuführen, die auf den universellen Prozessoren ablaufen. Ein derartiges Beispiel waren die zAAP- und zIIP-Prozessorarten bei einem Großrechnersystem mit z-Architektur, die unter der Kontrolle des z/OS-Betriebssystems laufen, jedoch auf bestimmte Aufgabenarten beschränkt sind, wie etwa Java-Applets und Datenbankabfragen.
  • Bei einer herkömmlichen Entlastungsprozessorgestaltung (Offload-Prozessorgestaltung) laufen die universellen und die Entlastungsprozessoren (Offload-Prozessoren) alle innerhalb des gleichen Datenverarbeitungssystems, wie es von der gleichen globalen Architektur definiert wird, und unter der Kontrolle des gleichen Verwaltungsprogramms. Eine derartige eng verkoppelte Gestaltung neigt dazu, die Kommunikationslatenz zu minimieren, beschränkt jedoch auch die Flexibilität und erhöht die Kosten, da es ihr nicht gelingt, die vielen verschiedenen Computersysteme mit unterschiedlichen Architekturen und Preisklassen, die auf dem heutigen Markt erhältlich sind, auszunutzen.
  • Kurzdarstellung der Erfindung
  • Aus der vorstehenden Diskussion sollte ersichtlich sein, dass ein Bedarf besteht für ein Gerät, ein System und ein Verfahren, welche die Verarbeitung von Rechenaufgaben (Rechen-Tasks) von einem Datenprozessor oder Verarbeitungssystem auf einen anderen Datenprozessor bzw. ein anderes Verarbeitungssystem einer gegebenenfalls unterschiedlichen Architektur nahtlos entlastet. Vorteilhafterweise würden ein derartiges Gerät, System und Verfahren die Flexibilität und Kostenwirksamkeit einer systemübergreifenden Kopplung aufweisen und dabei die Transparenz und hohe Effizienz von eng gekoppelten Entlastungsprozessoren (Offload-Prozessoren) erreichen.
  • Die vorliegende Erfindung als Antwort auf den derzeitigen Stand der Technik wurde entwickelt und insbesondere als Antwort auf die Probleme und Bedürfnisse auf diesem Gebiet, die von derzeit verfügbaren Entlastungsprozessoren (Offload-Prozessoren) noch nicht vollständig gelöst wurden. Entsprechend wurde die vorliegende Erfindung entwickelt, um ein Gerät, System und Verfahren zum Entlasten (Offload) der Verarbeitung von einem Datenverarbeitungssystem auf ein anderes Datenverarbeitungssystem einer gegebenenfalls unterschiedlichen Architektur bereitzustellen, die viele oder alle der oben besprochenen Mängel auf diesem Gebiet beheben.
  • Jedes Datenverarbeitungssystem kann ein Softwarepaket, das auf einem oder mehreren Prozessoren läuft, einen Speicher, E/A-(Ein-/Ausgabe-)Geräteschnittstellen und Netzwerkschnittstellen, die über einen Bus angeschlossen werden, umfassen. Die Datenverarbeitungssysteme können auch aus separaten logischen oder physikalischen Partitionen eines größeren Datenverarbeitungssystems bestehen, wobei einige oder alle der zuvor erwähnten Systembestandteile für eine spezifische Partition dediziert sind oder von mehreren Partitionen auf virtuelle Art und Weise gemeinsam genutzt werden.
  • Die zu entlastende Aufgabe (Offload-Task) wird auf einem ersten Datenverarbeitungssystem beherbergt (gehostet) und erweitert ihre Dienste auf ein zweites Datenverarbeitungssystem über eine Proxy-Vorrichtung, die auf dem zweiten System beherbergt (gehostet) wird. Die Aufgabe (Task) und ihre Proxy-Vorrichtung sind jeweils für grundlegende Betriebssystemdienste, wie etwa das Austeilen von Prozessorressourcen, die Speicherverwaltung, Zugriff auf E/A-Geräte und Einrichtungen zur Kommunikation mit dem anderen System, auf ihren jeweiligen lokalen Host angewiesen.
  • Auf Anwendungsebene trägt die Entlastungsaufgabe (Offload-Task) die Hauptverantwortung für die internen Funktionen der Anwendung und die Proxy-Aufgabe (Offload-Task) trägt die Hauptverantwortung für die externe Kommunikation mit anderen zusammenhängenden Aufgaben (Tasks) auf dem zweiten System. Die Entlastungsaufgabe (Offload-Task) und ihre Proxy-Vorrichtung stehen miteinander in Verbindung auf eine Art und Weise, die für die Bedürfnisse der Anwendung spezifisch ist, wobei sie praktisch als Coroutinen funktionieren, die eine einzige logische Aufgabe (Task) umfassen.
  • Je effizienter die zugrunde liegenden Einrichtungen für die systemübergreifende Kommunikation sind, umso mehr kann sich die Effizienz des Gesamtmechanismus derjenigen der eng gekoppelten Entlastungsmechanismen (Offload-Mechanismen) nach dem Stand der Technik nähern, jedoch ohne die zusätzlichen Kosten und die mangelnde Flexibilität, die mit derartigen speziellen Mechanismen einhergehen.
  • Es ist zu beachten, dass die Rolle des ersten und zweiten Datenverarbeitungssystems aufgabenabhängig (taskabhängig) ist. Ein System kann als Entlastungssystem (Offloadsystem) für eine Aufgabe (Task) dienen und gleichzeitig als Proxy-System für eine andere Aufgabe (Task) dienen.
  • Das Gerät zum Entlasten einer Datenverarbeitung ist mit einer Vielzahl von Modulen versehen, die konfiguriert sind, um funktionsmäßig die notwendigen Schritte der externen Kommunikation, des Delegierens interner Funktionen und des Meldens der Fertigstellung auszuführen. Diese Module in den beschriebenen Ausführungsformen umfassen die Proxy-Aufgabe (Proxy-Task) und die Entlastungsaufgabe (Offload-Task).
  • Bei einer Ausführungsform ist das Gerät konfiguriert, um je nach Bedarf Argumente abzubilden und auf Ein- und Ausgangsdaten zuzugreifen und diese zu formatieren. Der Zugriff auf die Daten kann einen physikalischen Anschluss an die geeignete Speicherungsvorrichtung, die physikalische Anordnung der Daten und das geeignete Dateiverwaltungssystem oder Zugriffsverfahren, das die logische Anordnung der Daten vorschreibt, umfassen. Das Formatieren kann das Übersetzen der Daten in ein verständliches Format umfassen.
  • Es wird auch ein System der vorliegenden Erfindung vorgestellt, um eine Datenverarbeitung zu entlasten. Das System kann ausgebildet sein, um ein erstes und ein zweites Datenverarbeitungssystem, einen Kommunikationsmechanismus, die Entlastungsaufgabe (Offload-Task) und die Proxy-Aufgabe (Proxy-Task) und ein Speicherungssystem, um die Ein- und Ausgangsdaten zu speichern, zu umfassen. Insbesondere umfasst das System bei einer Ausführungsform ein Netzwerk als Teil des Kommunikationsmechanismus.
  • Das System kann ferner eine gemeinsam genutzte Speicherung zwischen den ersten und zweiten Datenverarbeitungssystemen umfassen. Einige oder alle Speicherungssysteme können auf diese Art und Weise gemeinsam genutzt werden.
  • Bei einer Ausführungsform ist das System ferner konfiguriert, um auf Daten einzuwirken, die bereits im Speicher abgelegt sind. In einem derartigen Fall ist der Einbezug des Speicherungssystems nicht erforderlich. Bei einer weiteren Ausführungsform kann das System konfiguriert sein, um einige oder alle Daten in einem gemeinsam genutzten Speicher zu enthalten, der direkt sowohl für das erste als auch für das zweite Datenverarbeitungssystem zugänglich ist.
  • Die ersten und zweiten Datenverarbeitungssysteme können erste und gegebenenfalls unterschiedliche zweite Hardware-Plattformen, Firmware und Betriebssysteme umfassen. Z. B. können die Betriebssysteme OS/390, z/OS, Windows, Unix und Linux umfassen.
  • Es wird auch ein Verfahren der vorliegenden Erfindung zur Entlastung einer Datenverarbeitung vorgestellt. Das Verfahren bei den offenbarten Ausführungsformen umfasst im Wesentlichen die Schritte, die notwendig sind, um die Funktionen auszuführen, die oben mit Bezug auf den Betrieb des beschriebenen Geräts und Systems vorgestellt wurden. Bei einer Ausführungsform umfasst das Verfahren das Empfangen einer Anfrage zum Starten einer Entlastungsaufgabe (Offload-Task) von einer Proxy-Aufgabe (Proxy-Task), das Abbilden der Anfrage auf eine Form, die für das erste Datenverarbeitungssystem verständlich ist, das Ausführen der internen Funktionalität durch die Entlastungsaufgabe (Offload-Task) und das Melden der Fertigstellung der Entlastungsaufgabe an die Proxy-Aufgabe (Proxy-Task).
  • Bei einer weiteren Ausführungsform kann das Verfahren auch das entweder direkte oder indirekte Lesen und Schreiben von Daten umfassen, je nachdem, ob das erste Datenverarbeitungssystem Zugriff auf Daten des zweiten Datenverarbeitungssystems hat. Der Zugriff auf die Daten kann einen physikalischen Anschluss an die geeignete Speicherungsvorrichtung, die physikalische Anordnung der Daten, das geeignete Zugriffsverfahren, das die logische Anordnung der Daten vorschreibt, und die Übersetzung der Daten in ein verständliches Format umfassen. Jeder der Schritt des Verfahrens kann ein oder mehrmals als Reaktion auf einen einzelnen Aufruf der Proxy-Aufgabe (Proxy-Task) ausgeführt werden.
  • In der gesamten vorliegenden Beschreibung setzt die Bezugnahme auf Merkmale, Vorteile oder ähnliche Ausdrücke nicht voraus, dass alle Merkmale und Vorteile, die mit der vorliegenden Erfindung durchgeführt werden können, in einer einzigen Ausführungsform der Erfindung vorliegen sollten oder vorliegen. Vielmehr sind Ausdrücke, die sich auf die Merkmale und Vorteile beziehen, derart zu verstehen, dass sie ein spezifisches Merkmal, einen spezifischen Vorteil oder ein spezifisches Kennzeichen bedeuten, das bzw. der in Verbindung mit einer Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit können sich die Erörterung der Merkmale und Vorteile und ähnliche Ausdrücke in der gesamten vorliegenden Beschreibung auf die gleiche Ausführungsform beziehen, was aber nicht unbedingt der Fall ist.
  • Ferner können die beschriebenen Merkmale, Vorteile und Kennzeichen der Erfindung in einer beliebigen Art in einer oder mehreren Ausführungsformen kombiniert werden. Der Fachmann auf diesem Gebiet wird erkennen, dass die Erfindung ohne eines oder mehrere der spezifischen Merkmale oder einen oder mehrere der spezifischen Vorteile einer besonderen Ausführungsform in die Praxis umgesetzt werden kann. In anderen Fällen können zusätzliche Merkmale und Vorteile bei bestimmten Ausführungsformen erkannt werden, die vielleicht nicht bei allen Ausführungsformen der Erfindung vorliegen.
  • Diese Merkmale und Vorteile der vorliegenden Erfindung werden aus der nachstehenden Beschreibung und den beiliegenden Ansprüchen weiter hervorgehen oder können aus der Umsetzung der Erfindung in die Praxis, wie nachstehend dargelegt, erlernt werden.
  • Kurze Beschreibung der Zeichnungen
  • Damit die Vorteile der Erfindung mühelos verständlich werden, wird eine ausführlichere Beschreibung der oben kurz umrissenen Erfindung mit Bezug auf spezifische Ausführungsformen, die in den beiliegenden Zeichnungen abgebildet sind, gegeben. Mit dem Verständnis, dass diese Zeichnungen nur typische Ausführungsformen der Erfindung abbilden und daher nicht als ihren Umfang einschränkend anzusehen sind, wird die Erfindung mit zusätzlicher Spezifizität und zusätzlichem Detail durch die Verwendung der beiliegenden Zeichnungen beschrieben und erläutert. Es zeigen:
  • 1 ein schematisches Blockdiagramm, das eine mögliche Computer-Hardware-Plattform abbildet, auf der die vorliegende Erfindung mindestens teilweise eingerichtet werden kann.
  • 2 ein schematisches Blockdiagramm eines möglichen Computers, der ein Softwarepaket umfasst, in dem die vorliegende Erfindung mindestens teilweise vorliegen kann.
  • 3 ein schematisches Blockdiagramm von zwei Computer, die gemäß der vorliegenden Erfindung funktionieren.
  • 4 ein schematisches Blockdiagramm einer möglichen Hardware-Konfiguration mehrerer Datenverarbeitungssysteme, um die vorliegende Erfindung durchzuführen.
  • 5 ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens zum Starten einer Entlastungsaufgabe (Offload-Task) von einer Proxy-Aufgabe (Proxy-Task) gemäß der vorliegenden Erfindung abbildet.
  • 6 ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens für eine Entlastungsaufgabe (Offload-Task) gemäß der vorliegenden Erfindung abbildet.
  • 7 ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens zum Abfangen von Ergebnissen einer Entlastungsaufgabe (Offload-Task) durch eine Proxy-Aufgabe (Proxy-Task) gemäß der vorliegenden Erfindung abbildet.
  • Ausführliche Beschreibung der Erfindung
  • Viele der in dieser Beschreibung beschriebenen Funktionseinheiten wurden als Module bezeichnet, um ihre Umsetzungsunabhängigkeit ganz besonders hervorzuheben. Ein Modul kann z. B. als eine Hardware-Schaltung umgesetzt werden, die benutzerdefinierte VLSI-Schaltungen oder Gate-Arrays, handelsübliche Halbleiter, wie etwa Logikchips, Transistoren oder andere diskrete Bauteile, umfasst. Ein Modul kann auch in programmierbaren Hardware-Vorrichtungen, wie etwa frei programmierbaren Gate-Arrays, programmierbaren Logikbausteinen, programmierbaren logischen Vorrichtungen oder dergleichen, umgesetzt werden.
  • Module können auch in Software zur Ausführung durch diverse Prozessorarten umgesetzt werden. Ein identifiziertes Modul von ausführbarem Code kann z. B. einen oder mehrere physikalische oder logische Blöcke von Computeranweisungen umfassen, die beispielsweise als Objekt, Arbeitsablauf oder Funktion organisiert sein können. Dennoch müssen die ausführbaren Elemente eines identifizierten Moduls nicht physikalisch zusammenliegen, sondern können disparate Anweisungen umfassen, die an verschiedenen Stellen gespeichert sind, die, wenn sie logisch zusammengefügt werden, das Modul bilden und den angegebenen Zweck für das Modul erfüllen.
  • In der Tat kann ein Modul von ausführbarem Code einer einzigen Anweisung oder vielen Anweisungen entsprechen oder kann sogar über mehrere verschiedene Codesegmente, über verschiedene Programme und über mehrere Speichervorrichtungen verteilt sein. Ähnlich können Betriebsdaten hier innerhalb von Modulen identifiziert und abgebildet werden und können in einer beliebigen geeigneten Form ausgebildet sein und innerhalb einer beliebigen geeigneten Art von Datenstruktur organisiert sein. Die Betriebsdaten können als einzelner Datensatz zusammengefasst sein oder können über verschiedene Standorte verteilt sein, einschließlich über verschiedene Speicherungsvorrichtungen, und können mindestens teilweise einfach als elektronische Signale auf einem System oder Netzwerk vorliegen. Wenn ein Modul oder Teile eines Moduls als Software umgesetzt wird bzw. werden, werden die Softwareteile auf einem oder mehreren computerlesbaren Datenträgern gespeichert.
  • Eine Bezugnahme in der gesamten vorliegenden Beschreibung auf ”eine Ausführungsform” oder ähnliche Ausdrücke bedeuten, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder ein bestimmtes Kennzeichen, das bzw. die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer Ausführungsform der vorliegenden Erfindung enthalten ist. Somit können sich Erscheinungen der Redewendungen ”bei einer Ausführungsform” und ähnliche Ausdrücke in der gesamten vorliegenden Beschreibung alle auf die gleiche Ausführungsform beziehen, was aber nicht unbedingt der Fall ist.
  • Eine Bezugnahme auf einen computerlesbaren Datenträger kann eine beliebige Form annehmen, die in der Lage ist, maschinenlesbare Anweisungen auf einem digitalen Verarbeitungsgerät zu speichern. Ein computerlesbarer Datenträger kann in einer Übertragungsleitung, einer Kompaktplatte, einer digitalen Videoplatte, einem Magnetband, einem Bernoulli-Laufwerk, einer Magnetplatte, einer Lochkarte, einem Flash-Speicher, integrierten Schaltungen oder einer anderen Speichervorrichtung eines digitalen Verarbeitungsgeräts ausgebildet sein.
  • Ferner können die beschriebenen Merkmale, Strukturen oder Kennzeichen der Erfindung in einer beliebigen geeigneten Art in einer oder mehreren Ausführungsformen kombiniert werden. In der nachstehenden Beschreibung werden zahlreiche spezifische Einzelheiten bereitgestellt, wie etwa Programmierbeispiele, Softwaremodule, Benutzerauswahlen, Netzwerktransaktionen, Datenbankabfragen, Datenbankstrukturen, Hardware-Module, Hardware-Schaltungen, Hardware-Chips, usw., um ein umfassendes Verständnis der Ausführungsformen der Erfindung bereitzustellen. Der Fachmann auf diesem Gebiet wird jedoch erkennen, dass die Erfindung ohne eine oder mehrere der spezifischen Einzelheiten oder mit anderen Verfahren, Bauteilen, Materialien und so weiter in die Praxis umgesetzt werden kann. In anderen Fällen werden hinlänglich bekannte Strukturen, Materialien oder Vorgänge nicht gezeigt oder ausführlich beschrieben, um eine Verschleierung der Gesichtspunkte der Erfindung zu vermeiden.
  • Die nachstehenden schematischen Flussdiagramme werden im Allgemeinen als logische Flussdiagramme dargelegt. Somit geben die abgebildete Reihenfolge und die bezeichneten Schritte eine Ausführungsform des vorgestellten Verfahrens an. Es können andere Schritte und Verfahren erdacht werden, deren Funktion, Logik oder Auswirkung mit einem oder mehreren Schritten, oder Teilen davon, des abgebildeten Verfahrens gleichwertig sind. Zudem werden das verwendete Format und die verwendeten Symbole bereitgestellt, um die logischen Schritte des Verfahrens zu erläutern, und sind nicht dazu gedacht, den Umfang des Verfahrens einzuschränken. Obwohl diverse Pfeilarten und Stricharten in den Flussdiagrammen verwendet werden können, versteht es sich, dass diese den Umfang des entsprechenden Verfahrens nicht einschränken. Einige Pfeile oder andere Verbindungselemente können nämlich verwendet werden, um nur den logischen Ablauf des Verfahrens anzugeben. Ein Pfeil kann z. B. einen Warte- oder Überwachungszeitraum unbestimmter Dauer zwischen den aufgezählten Schritten des abgebildeten Verfahrens angeben. Zudem kann die Reihenfolge, in der ein bestimmtes Verfahren erfolgt, der Reihenfolge der entsprechenden gezeigten Schritte streng folgen oder nicht.
  • 1 bildet eine mögliche Computer-Hardware-Plattform 100 ab, auf der die vorliegende Erfindung mindestens teilweise eingerichtet werden kann. Die Hardware-Plattform 100 kann einen oder mehrere Prozessoren 102, einen Speicher 104, eine Netzwerkschnittstelle 106 und eine E/A-(Ein-/Ausgabe-)Geräteschnittstelle 108, die über einen Bus 110 angeschlossen sind, umfassen.
  • Die Hardware-Plattform 100 kann beliebige Abmessungen oder eine beliebige Art aufweisen, zu denen ein integriertes System, ein Palmtop, ein Notebook, ein PC, ein Minicomputer, ein Server, ein Großrechner, ein Supercomputer und dergleichen gehören.
  • Der oder die Prozessoren 102 können in einer beliebigen Menge vorliegen, einschließlich als Einzelprozessor, und können eine beliebige Befehlssatz-Architektur aufweisen. Bei einer Ausführungsform können der oder die Prozessoren 102 eine oder mehrere Ebenen dedizierter oder gemeinsam genutzter Zwischenspeicher aufweisen. Mögliche physikalische Umsetzungen können Prozessoren mit mehreren Chips, einzelnen Chips, mehreren Kernen, Hyperthreading und dergleichen umfassen.
  • Der Speicher 104 kann eine beliebige Größe oder Organisation aufweisen und kann sowohl les-/schreibbare als auch schreibgeschützte Abschnitte umfassen. Er kann auch sowohl globale als auch lokale Abschnitte umfassen und kann sowohl einheitlichen als auch uneinheitlichen Zugriff unterstützen. Er kann speicherabgebildete E/A und direkten Speicherzugriff umfassen. Er kann Zwischenspeicherkohärenz unterstützen, wozu verzeichnisbasierte und Snoop-basierte Protokolle gehören.
  • Die Netzwerkschnittstelle 106 kann ein beliebiges Netzwerkprotokoll oder eine beliebige Netzwerkarchitektur unterstützen. Sie kann sowohl kabellose als auch verkabelte Netzwerkanschlüsse unterstützen. Sie kann Ethernet, Token Ring, System Network Architecture (”SNA”) und dergleichen umfassen. Bei einer Ausführungsform kann sie mit der E/A-Geräteschnittstelle 108 integriert sein.
  • Die E/A-Geräteschnittstelle 108 kann hauptsächlich von dem oder den Prozessoren 102 angesteuert werden oder kann ein unabhängiges E/A-Prozessorteilsystem umfassen. Sie kann Peripheral Component Interconnect (”PCP”), Small Computer System Interface (”SCSI”), Fiberchannel (”FC”), Enterprise System Connection (”ESCON”), ESCON over Fiberchannel (”FICON”) und dergleichen umfassen. Bei einer Ausführungsform kann sie dedizierte lokale E/A-Geräte umfassen.
  • Der Bus 110 kann eine oder mehrere von verschiedenen physikalischen und logischen Topologien umfassen. Er kann parallel oder seriell sein. Er kann unidirektional oder bidirektional sein. Er kann flach oder hierarchisch sein. Er kann eine vollständige oder Teilkreuzschiene umfassen. Er kann mehrere Busbrücken umfassen. Bei einer Ausführungsform kann der Bus 110 ein schnelles internes Netzwerk umfassen.
  • 2 ist ein Diagramm eines möglichen Computers 200, der ein Softwarepaket umfasst, in dem die vorliegende Erfindung mindestens teilweise vorliegen kann. Das Softwarepaket kann eine oder mehrere Aufgaben (Tasks) 202 umfassen, die auf einem Betriebssystem 204 beherbergt bzw. gehostet sind, das durch eine Firmware 206 aktiviert wird, die auf einer Hardware-Plattform 100 läuft, für welche die Konfiguration in 1 repräsentativ ist.
  • Die Aufgabe(n) (Tasks) 202 kann bzw. können Aufgaben (Tasks) sowohl auf Benutzer- als auch auf Systemebene umfassen. Sie können interaktiv oder als Stapel vorliegen. Sie können im Vordergrund oder im Hintergrund ablaufen. Eine oder mehrere Aufgaben 202 auf Benutzerebene können Anwendungen, Programme, Arbeiten, Middleware und dergleichen umfassen. Eine oder mehrere Aufgaben 202 auf Systemebene können Dienste, Treiber, Hintergrundprogramme, Dienstprogramme und dergleichen umfassen.
  • Das Betriebssystem 204 kann eine beliebige Art und Version aufweisen und sich in einem beliebigen Zustand befinden. Zu den Arten können Unix, Linux, Windows, Mac, MVS, VMS und dergleichen gehören. Zu den Versionen können Windows XP, Windows Vista und dergleichen gehören. Zu den Zuständen können ein Anpassungsgrad, ein Betriebsmodus, eine Systemvorbereitung für die Einrichtung und dergleichen gehören. Das Betriebssystem 204 kann für einen oder mehrere Benutzer gedacht sein. Es kann eine oder mehrere Aufgaben ausführen. Bei einer Ausführungsform kann das Betriebssystem 204 ein Echtzeitbetriebssystem sein. Bei einer Ausführungsform kann das Betriebssystem 204 integriert sein.
  • Die Firmware 206 kann Mikrocode umfassen, der in einem Mikrospeicher des oder der Prozessoren 102 vorliegen kann. Bei einer Ausführungsform kann die Firmware 206 eine systemnahe Software sein, die in dem Speicher 104 vorliegen kann. Bei einer Ausführungsform kann die Firmware 206 ein rudimentäres Betriebssystem 204 umfassen. Bei einer weiteren Ausführungsform kann die Firmware 206 eine Virtualisierung unterstützen, um den gleichzeitigen Betrieb von mehreren Betriebssystemen 204 auf einer Hardware-Plattform 100 zu erlauben.
  • 3 ist ein schematisches Blockdiagramm von zwei Computer 200 mit ihren jeweiligen Software-Paketen, die gemäß der vorliegenden Erfindung funktionieren. Die ersten und zweiten Software-Pakete können jeweils eine oder mehrere erste Aufgaben (Tasks) 302 und eine oder mehrere zweite Aufgaben (Tasks) 304 umfassen, die sich anzahl- und funktionsmäßig unterscheiden können oder nicht, die jeweils von einem ersten Betriebssystem 310 und von einem gegebenenfalls unterschiedlichen zweiten Betriebssystem 312 beherbergt werden, die jeweils von einer ersten Firmware 314 und von einer gegebenenfalls unterschiedlichen zweiten Firmware 316 aktiviert werden und jeweils auf einer ersten Hardware-Plattform 318 und auf einer gegebenenfalls unterschiedlichen zweiten Hardware-Plattform 320 ablaufen. Die Hardware-Plattformen können auch logische oder physikalische Partitionen einer oder mehrerer größerer Hardware-Plattformen sein.
  • Von besonderer Bedeutung für die vorliegende Erfindung sind die Entlastungsaufgabe (Offload-Task) 306 und die Proxy-Aufgabe (Proxy-Task) 308. Diese Aufgaben (Tasks) werden jeweils von den ersten und zweiten Software-Paketen beherbergt (gehostet), die jeweils auf ersten und zweiten Hardware-Plattformen 318 und 320 ablaufen, die nachstehend jeweils als ein erstes Datenverarbeitungssystem 300-1 und ein zweites Datenverarbeitungssystem 300-2 bezeichnet werden. Die Entlastungsaufgabe (Offload-Task) 306 und ihre entsprechende Proxy-Aufgabe (Offload-Task) 308 sind jeweils für grundlegende Betriebssystemdienste, wie etwa das Austeilen von Prozessorressourcen, die Speicherverwaltung, den Zugriff auf E/A-Geräte und Einrichtungen zum Kommunizieren mit dem anderen System, auf ihren jeweiligen lokalen Host, das erste Datenverarbeitungssystem 300-1 und das zweite Datenverarbeitungssystem 300-2, angewiesen.
  • Die Entlastungsaufgabe (Offload-Task) 306 auf dem ersten Datenverarbeitungssystem 300-1 erweitert ihre Dienste auf das zweite Datenverarbeitungssystem 300-2 über die Proxy-Aufgabe (Proxy-Task) 308. Auf Anwendungsebene (oder auf Middleware- oder Treiberebene) trägt die Entlastungsaufgabe (Offload-Task) 306 die Hauptverantwortung für die internen Funktionen der Anwendung und die Proxy-Aufgabe (Proxy-Task) 308 trägt die Hauptverantwortung für die externe Kommunikation mit anderen zusammenhängenden zweiten Aufgaben 304 auf dem zweiten Datenverarbeitungssystem 300-2. Die Entlastungsaufgabe (Offload-Task) 306 und ihre Proxy-Aufgabe (Proxy-Task) 308 stehen miteinander über einen Kommunikationsmechanismus 322 in Verbindung auf eine Art und Weise, die für die Bedürfnisse der Anwendung spezifisch ist, wobei sie praktisch als Coroutinen funktionieren, die eine einzige logische Aufgabe umfassen.
  • 4 ist ein schematisches Blockdiagramm einer möglichen Hardware-Konfiguration aus mehreren Datenverarbeitungssystemen, um die vorliegende Erfindung durchzuführen, die mehrere mögliche Wege für den Kommunikationsmechanismus 322 in 3 abbildet. Das erste Datenverarbeitungssystem 300-1 und das zweite Datenverarbeitungssystem 300-2 können jeweils einen oder mehrere erste Prozessoren 402 und einen oder mehrere zweite Prozessoren 404, einen ersten Speicher 406 und einen zweiten Speicher 408, eine erste Netzwerkschnittstelle 410 und eine zweite Netzwerkschnittstelle 412, eine erste E/A-Geräteschnittstelle 414 und eine zweite E/A-Geräteschnittstelle 416, die über einen ersten Bus 418 und einen zweiten Bus 420 verbunden sind, umfassen.
  • Der weiteste Kommunikationsweg mit der höchsten Latenz, der aber dennoch nützlich ist, würde über eine gemeinsam genutzte Speicherungsvorrichtung 422 gehen, die Anschlüsse sowohl von der ersten E/A-Geräteschnittstelle 414 als auch von der zweiten E/A-Geräteschnittstelle 416 unterstützt. Es gibt eine Technologie, durch welche die gleiche Speicherungsvorrichtung die E/S-Schnittstelle verschiedener Systemarchitektur-Protokolle unterstützen kann, wodurch sie es dem ersten Datenverarbeitungssystem 300-1 ermöglicht, auf die Speicherdaten des zweiten Datenverarbeitungssystems 300-2 zuzugreifen, und umgekehrt.
  • Ein weniger weiter Kommunikationsweg mit geringerer Latenz würde über das Netzwerk 424 gehen, das Anschlüsse sowohl von der ersten Netzwerkschnittelle 410 als auch von der zweiten Netzwerkschnittstelle 412 unterstützt. Einige Netzwerkprotokolle, wie etwa TCP/IP, ermöglichen den Austausch von Nachrichtenpaketen mit Informationen zwischen den Systemen. Andere Protokolle, wie etwa Infiniband, unterstützen eine VIA-(”Virtual Interface Architecture”), Architektur, die eine direkte gemeinsame Nutzung des Speichers zwischen einer oder mehreren ersten Aufgaben 302 und einer oder mehreren zweiten Aufgaben 304 ermöglicht, und zwar unter Verwendung eines RDMA-(”Remote Direct Memory Access”)Zugriffs über ein Netzwerk 424, um es dem ersten Datenverarbeitungssystem 300-1 zu ermöglichen, auf den zweiten Speicher 408 zuzugreifen, und es dem zweiten Datenverarbeitungssystem 300-2 zu ermöglichen, auf den ersten Speicher 406 zuzugreifen.
  • Der kürzeste Kommunikationsweg mit der geringsten Latenz setzt die tatsächliche gemeinsame Nutzung des Speichers zwischen den ersten und zweiten Datenverarbeitungssystemen 300 voraus, wie durch die Überlagerung des gemeinsam genutzten Speichers 426 zwischen dem ersten Speicher 406 und dem zweiten Speicher 408 abgebildet wird. Diese Art der gemeinsamen Speichernutzung erfordert, dass die ersten und zweiten Datenverarbeitungssysteme 300 logische oder physikalische Partitionen innerhalb des gleichen physikalischen Datenverarbeitungssystems sind. Die gleichen Kommunikationsprotokolle, wie sie in dem Netzwerk 424 verwendet werden, können auf Speichergeschwindigkeit über den gemeinsam genutzten Speicher 426 verwendet werden, einschließlich TCP/IP und Infiniband. Das letztgenannte Protokoll kann sich besonders gut für die Bedürfnisse der vorliegenden Erfindung eignen, weil es der Entlastungsaufgabe (Offload-Task) 306 und der Proxy-Aufgabe (Proxy-Task) 308 erlaubt, zusammenzuwirken, als ob es sich tatsächlich um Coroutinen handeln würde, die aus dem gleichen Speicher auf dem gleichen physikalischen Datenverarbeitungssystem ablaufen, so dass sie an die Effizienz der speziellen Entlastungsmechanismen nach dem Stand der Technik herankommen.
  • Es gibt vorhandene und jetzt aufkommende Technologie, die es einer ersten Firmware 314 und einer zweiten Firmware 312 mit unterschiedlichen Architekturen (z. B. PCMware von Platform Solutions, Inc.) sowie einem oder mehreren ersten Prozessoren 402 und einem oder mehreren zweiten Prozessoren 404 mit unterschiedlichen Architekturen (z. B. Common System Interface von Intel Corporation) ermöglicht, gleichzeitig innerhalb des gleichen physikalischen, partitionierbaren Datenverarbeitungssystems vorzuliegen. Ein derartiges hybrides System kann eine besonders geeignete Aktivierungsplattform für die vorliegende Erfindung bereitstellen.
  • 5 ist ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 500 zum Starten einer Entlastungsaufgabe (Offload-Task) 306 von einer Proxy-Aufgabe (Proxy-Task) 308 aus gemäß der vorliegenden Erfindung abbildet. Das Verfahren 500 beginnt 502, wenn eine Anfrage einer Proxy-Aufgabe (Proxy-Task) auf dem zweiten Datenverarbeitungssystem 300-2 empfangen 504 wird. Die Anfrage wird auf eine Form abgebildet 506, die für das erste Datenverarbeitungssystem 300-1 verständlich ist, und an das erste Datenverarbeitungssystem 300-1 über einen Knoten A1 als Anfrage einer Entlastungsaufgabe (Offload-Task) übertragen 508.
  • Wenn über die direkten Argumente, die mit der Aufgabenanfrage empfangen 504 werden, zusätzliche Eingangsdaten 510 bereitgestellt werden, muss bestimmt werden, ob das erste Datenverarbeitungssystem 300-1 für diese Daten über eine direkte Zugriffsmöglichkeit 512 verfügt. Diese Zugriffsmöglichkeit 512 kann einen physikalischen Anschluss an die geeignete Speicherungsvorrichtung, die physikalische Anordnung der Daten, das geeignete Zugriffsverfahren, das die logische Anordnung der Daten vorschreibt, und die Verständlichkeit der Daten nach dem Auslesen umfassen. Wenn eine derartige geforderte Bedingung nicht erfüllt ist, dann muss die Proxy-Aufgabe (Proxy-Task) 308 im Namen des ersten Datenverarbeitungssystems 300-1 auf die Eingangsdaten zugreifen 514. Sobald auf die Daten zugegriffen 514 wurde, können sie in einem Format 516, das für das erste Datenverarbeitungssystem 300-1 verständlich ist, vorliegen oder auch nicht. Es ist zu beachten, dass die Verständlichkeit des Formats 516 auch eine der Bedingungen war, welche die Zugriffsmöglichkeit 512 ausmachen. Wenn diese Bedingung nicht erfüllt ist, dann muss die Proxy-Aufgabe (Proxy-Task) 308 die Eingangsdaten zuerst in ein Format übersetzen 518, das für das erste Datenverarbeitungssystem 300-1 verständlich ist, bevor sie an das erste Datenverarbeitungssystem 300-1 über den Knoten A2 übertragen werden können. Hier wird die Verarbeitung der Proxy-Aufgabe (Proxy-Task) 308 angehalten, wodurch ihre Ressourcen für eine andere Verarbeitung durch das zweite Datenverarbeitungssystem 300-2 freigegeben werden, und das Verfahren 500 ist beendet 522.
  • 6 ist ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 600 für eine Entlastungsaufgabe (Offload-Task) 306 gemäß der vorliegenden Erfindung abbildet. Das Verfahren 600 beginnt 602 und die Anfrage einer Entlastungsaufgabe (Offload-Task) wird empfangen 604, wie sie von dem zweiten Datenverarbeitungssystem 300-2 über den Knoten A1 übertragen wird. In Erwartung des Empfangs eventueller zusätzlicher Eingangsdaten 606, wie sie von dem zweiten Datenverarbeitungssystem 300-2 über den Knoten A2 übertragen 520 werden, wird die Entlastungsaufgabe (Offload-Task) 306 unter Verwendung der Ressourcen des ersten Datenverarbeitungssystems 300-1 ausgeführt 608. Bei Fertigstellung wird ein Bericht 610 über den Knoten B2 an das zweite Datenverarbeitungssystem 300-2 übertragen 612. Eventuelle zusätzliche Ausgangsdaten 614 werden an das zweite Datenverarbeitungssystem 300-2 über den Knoten B2 übertragen 616, und das Verfahren 600 ist beendet 618.
  • 7 zeigt ein schematisches Flussdiagramm, das eine Ausführungsform eines Verfahrens 700 zum Abfangen von Ergebnissen einer Entlastungsaufgabe (Offload-Task) 306 durch eine Proxy-Aufgabe (Proxy-Task) 308 gemäß der vorliegenden Erfindung abbildet. Das Verfahren 700 beginnt 702, und die Proxy-Aufgabe (Proxy-Task) 308 wird als Reaktion auf den Empfang 704 des Berichts, der von dem ersten Datenverarbeitungssystem 300-1 über den Knoten B1 übertragen wurde, wieder aktiviert.
  • Wenn keine zusätzlichen Ausgangsdaten 706, wie sie von dem ersten Datenverarbeitungssystem 300-1 über den Knoten B2 übertragen werden 616, über die direkten Argumente hinaus, die mit dem Bericht verknüpft sind, der empfangen 704 wurde, empfangen werden, dann ist das Verfahren 700 beendet 716. Wenn zusätzliche Ausgangsdaten 706 empfangen werden, muss bestimmt werden, ob diese Daten in einem Format 708 vorliegen, das für das zweite Datenverarbeitungssystem 300-2 verständlich ist. Falls nicht, dann muss die Proxy-Aufgabe (Proxy-Task) 308 die Ausgangsdaten 710 zuerst in ein Format übersetzen, das für das zweite Datenverarbeitungssystem 300-2 verständlich ist, bevor sie diese für das zweite Datenverarbeitungssystem 300-2 zugänglich macht. Die Zugriffsmöglichkeit 712 kann einen physikalischen Anschluss an die geeignete Speicherungsvorrichtung, die physikalische Anordnung der Daten und das geeignete Zugriffsverfahren, das die logische Anordnung der Daten vorschreibt, umfassen. Wenn die Ausgangsdaten zugänglich 712 sind, dann ist das Verfahren 700 beendet 716. Wenn eine der geforderten Bedingungen der Zugriffsmöglichkeit 712 nicht erfüllt ist, dann muss das zweite Datenverarbeitungssystem 300-2 im Namen des ersten Datenverarbeitungssystems 300-1 auf die Ausgangsdaten zugreifen 714. Sobald die Ausgangsdaten für den Zugriff 714 für das zweite Datenverarbeitungssystem 300-2 verfügbar gemacht wurden, ist das Verfahren 700 beendet 716.
  • Die Verfahren 500, 600 und 700 können ferner mit einem spezifischen Beispiel erläutert werden. Man nehme ein Sortierprogramm (die zweite Aufgabe 304), das unter z/OS auf einem IBM-Großrechner (dem zweiten Datenverarbeitungssystem 300-2) läuft, das unter Windows entlastet werden soll, das auf einem Intel-Server (dem ersten Datenverarbeitungssystem 300-1) läuft. Die zu sortierenden Daten liegen in dem Format EBCDIC (”Extended Binary Coded Decimal Interchange Code”) vor, das in einem Datensatz (Datei) eines VSAM-(”Virtual Storage Access Method”)Verfahrens auf einer DASD-(”Direct Access Storage Device”)Vorrichtung für CKD-(”Count Key Data”)Daten vorliegt, die über eine ESCON-(”Enterprise System CONnection”)Schnittstelle angeschlossen ist. Die Proxy-Aufgabe (Proxy-Task) 308 kann entweder in einer JCL-(”Job Control Language”)EXEC-Anweisung vorgegeben werden, oder die ausführbare Datei für das z/OS-Sortierprogram selber kann durch diejenige der Proxy-Aufgabe (Proxy-Task) 308 ersetzt werden. Sobald diese anfängliche Konfiguration abgeschlossen ist, wird kein weiterer Benutzereingriff benötigt, als derjenige, der normalerweise ausgeführt wird, um das z/OS-Sortierprogramm ablaufen zu lassen. Jedes Mal wenn das z/OS-Sortierprogramm anschließend aufgerufen wird, wird automatisch eine Anfrage für die Proxy-Aufgabe (Proxy-Task) 308 empfangen, und ihre Argumente werden auf ein entsprechendes Windows-Sortierprogramm abgebildet 506.
  • Bei diesem Beispiel müssen die zu sortierenden Eingangsdaten 510 der Entlastungsaufgabe (Offload-Task) 306 bereitgestellt werden. Windows kann über eine direkte Zugriffsmöglichkeit 512 auf die Daten verfügen oder nicht. ESCON kann der einzige verfügbare physikalische Anschluss sein, der für z/OS nativ ist, wohingegen Windows vielleicht nur eine FC-(”Fiber Channel”)Anschlussmöglichkeit unterstützt. Andererseits unterstützen einige Speicherungsvorrichtungen sowohl ESCON als auch FC als auch FICON (ESCON über FC). Die z/OS-native physikalische Anordnung der Daten ist CKD, Windows erwartet jedoch typischerweise eine FBA (feste Blockarchitektur). Das z/OS-native Zugriffsverfahren für die Daten ist VSAM, Windows basiert jedoch wahrscheinlich auf NTFS (”New Technology File System”). Das z/OS-native Format der Daten ist EBCDIC, das Windows-Sortierprogramm mag jedoch davon ausgehen, dass das Datenformat ASCII (”American Standard Code for Information Interchange”) ist. Diese Unterschiede sind jedoch alle überbrückbar. Es mag Treiber und Übersetzungsvorrichtungen geben oder sie können unter Windows entwickelt werden, um die Zugriffsmöglichkeit 512 bereitzustellen. Sollten diese nicht verfügbar sein, dann muss die Entlastungsaufgabe (Offload-Task) 306 unter Windows 514 auf die Daten indirekt von z/OS aus zugreifen, indem sie anfragt, dass sie unter Verwendung einer zweiten E/A-Geräteschnittstelle 416 gelesen werden und über ein Netzwerk 424 oder über einen gemeinsam zugänglichen Puffer in dem gemeinsam genutzten Speicher 426 ausgelesen werden. Dann müssen die Daten, die bei diesem Beispiel im EBCDIC-Format 516 vorliegen, auf ASCII übersetzt 518 werden.
  • Hier wird die Verarbeitung der Proxy-Aufgabe (Proxy-Task) 308 angehalten, wodurch ihre Ressourcen für eine andere z/OS-Verarbeitung freigegeben werden, und die Entlastungsaufgabe (Offload-Task) 306 führt das Windows-Sortierprogramm aus 608. Bei Fertigstellung wird ein Bericht 610 von Windows an z/OS übertragen 612, und die sortierten Ausgangsdaten 614 werden ebenfalls übertragen 616. Bei diesem Beispiel liegen die Ausgangsdaten 614 jedoch im ASCII-Format 708 vor und müssen daher zurück auf EBCDIC übersetzt werden 710. Ferner verfügt Windows nicht über eine direkte Zugriffsmöglichkeit 712 auf den z/OS-Datensatz, in den die Ausgangsdaten zu schreiben sind. Daher muss die Proxy-Aufgabe (Proxy-Task) 308 unter z/OS die Daten von Windows an z/OS indirekt über ein Netzwerk 424 oder über einen gemeinsam zugänglichen Puffer in dem gemeinsam genutzten Speicher 426 übertragen, wobei sie auf den z/OS-Datensatz zugreift 714, um die Daten unter Verwendung der zweiten E/A-Geräteschnittstelle 416 zu schreiben.
  • Wie bei dem vorhergehenden Beispiel erwähnt, sind andere gegebenenfalls effizientere Ausführungsformen möglich, bei denen Windows über ein größeres Ausmaß an Zugriffsmöglichkeit 512 und 712 auf z/OS-Daten verfügt, wozu physikalische Schnittstellen, Treiber und Übersetzungsvorrichtungen gehören, die spezifisch gestaltet sind, um auf z/OS-DASD zuzugreifen und/oder diese zu emulieren. Bei einer anderen Ausführungsform können die Daten in einem Zwischenzustand in dem zweiten Speicher 408 vorliegen, der für die Entlastungsaufgabe (Offload-Task) 306 über das Netzwerk 424 oder den gemeinsam genutzten Speicher 426 zugänglich ist, oder können sich direkt in dem gemeinsam genutzten Speicher 426 befinden. In diesem Fall wären die physikalische Speicheranschlussmöglichkeit und Anordnung kein Problem, obwohl Zugriffsmöglichkeitsfaktoren, wie etwa eine logische Anordnung und ein Format, eventuell weiterhin Treiber oder Übersetzungsvorrichtungen benötigen. Bei einer weiteren Ausführungsform kann eine vollständige Zugriffsmöglichkeit innerhalb des Speichers und im selben Form gegeben sein, wodurch eine sehr schnelle, eng gekoppelte Wechselwirkung zwischen der Proxy-Aufgabe (Proxy-Task) 308 und der Entlastungsaufgabe (Offload-Task) 306 ermöglicht wird. Es versteht sich, dass die Verfahren 500 und 700 mehr als einmal von der gleichen Proxy-Aufgabe (Proxy-Task) 308 aufgerufen werden können, mit entsprechenden mehrfachen Aufrufen des Verfahrens 600 durch die gleiche Entlastungsaufgabe (Offload-Task) 306, und zwar auf feinkörnige unsystematische Weise.
  • Die vorliegende Erfindung kann in anderen spezifischen Formen realisiert werden, ohne ihren Geist oder ihre wesentlichen Kennzeichen zu verlassen. Die beschriebenen Ausführungsformen sind in jeder Hinsicht nur als exemplarisch und nicht als einschränkend anzusehen. Der Umfang der Erfindung wird daher durch die beiliegenden Ansprüche angegeben statt durch die vorstehende Beschreibung. Alle Änderungen, die unter die Bedeutung und in den Bereich der Gleichwertigkeit der Ansprüche fallen, sollen in ihrem Umfang enthalten sein.
  • Zusammenfassung
  • Es werden ein Gerät, ein System und ein Verfahren zum Entlasten einer Datenverarbeitung offenbart. Eine Entlastungsaufgabe 306, die auf einem ersten Datenverarbeitungssystem 300-1 beherbergt wird, stellt eine interne Funktionalität bereit, die im Wesentlichen mit derjenigen einer zweiten Aufgabe 304 gleichwertig ist, die auf einem zweiten Datenverarbeitungssystem 300-2 mit einer gegebenenfalls unterschiedlichen Architektur beherbergt wird. Eine Proxy-Aufgabe 308, die auf dem zweiten Datenverarbeitungssystem 300-2 beherbergt wird, stellt eine externe Schnittstelle bereit, die im Wesentlichen mit derjenigen der zweiten Aufgabe 304 gleichwertig ist. Ein Kommunikationsmechanismus 322 zwischen den ersten und zweiten Datenverarbeitungssystemen 300 kann aus einem Netzwerk 424, einer gemeinsam genutzten Speicherungsvorrichtung 422 und einem gemeinsam genutzten Speicher 426 bestehen. Die Proxy-Aufgabe 308 ersetzt im Wesentlichen die zweite Aufgabe 304, indem sie die interne Funktionalität der zweiten Aufgabe 304 an die Entlastungsaufgabe 306 je nach Bedarf über das Abbilden 506 von Argumenten und das Zugreifen auf 514 und 714 und das Übersetzen 518 und 710 von Eingangs- 510 und Ausgangs- 706 Daten delegiert.

Claims (24)

  1. Gerät zum Entlasten einer Datenverarbeitung, wobei das Gerät folgendes umfasst: eine Entlastungsaufgabe bzw. Offload-Task, die auf einem ersten Datenverarbeitungssystem beherbergt bzw. gehostet wird und eine interne Funktionalität aufweist, die im Wesentlichen mit derjenigen einer zweiten Aufgabe bzw. Task gleichwertig ist, die auf einem zweiten Datenverarbeitungssystem beherbergt bzw. gehostet wird; und eine Proxy-Aufgabe bzw. Proxy-Task, die auf dem zweiten Datenverarbeitungssystem beherbergt wird, die konfiguriert ist, um mit der Entlastungsaufgabe bzw. Offload-Task auf dem ersten Datenverarbeitungssystem zu kommunizieren, und die eine externe Schnittstelle aufweist, die im Wesentlichen mit derjenigen der zweiten Aufgabe bzw. Task gleichwertig ist, wobei die Proxy-Aufgabe bzw. Proxy-Task im Wesentlichen die zweite Aufgabe bzw. Task ersetzt, indem sie die interne Funktionalität der zweiten Aufgabe an die Entlastungsaufgabe bzw. Offload-Task delegiert.
  2. Gerät nach Anspruch 1, wobei das Delegieren der internen Funktionalität der zweiten Aufgabe bzw. Task je nach Bedarf das Abbilden von Argumenten und das Zugreifen auf und das Formatieren von Ein- und Ausgangsdaten umfasst.
  3. Gerät nach Anspruch 2, ferner umfassend einen Treiber für das erste Datenverarbeitungssystem, der zum Zugriff auf einen physikalischen Anschluss auf und zur physikalischen Anordnung von Ein- und Ausgangsdaten, die für das zweite Datenverarbeitungssystem nativ sind, fähig ist.
  4. Gerät nach Anspruch 2, ferner umfassend ein Dateiverwaltungssystem für das erste Datenverarbeitungssystem, das zum Zugriff auf eine logische Anordnung von Ein- und Ausgangsdaten, die für das zweite Datenverarbeitungssystem nativ ist, fähig ist.
  5. Gerät nach Anspruch 2, ferner umfassend eine Übersetzungsvorrichtung für das erste Datenverarbeitungssystem, das zum Übersetzen eines Formats von Ein- und Ausgangsdaten, das für das zweite Datenverarbeitungssystem nativ ist, fähig ist.
  6. System zum Entlasten einer Datenverarbeitung, wobei das System folgendes umfasst: ein erstes Datenverarbeitungssystem, das aus einem ersten Betriebssystem, einer ersten Firmware und einer ersten Hardware-Plattform besteht; ein zweites Datenverarbeitungssystem, das aus einem zweiten Betriebssystem, einer zweiten Firmware und einer zweiten Hardware-Plattform besteht; einen Kommunikationsmechanismus zwischen dem ersten Datenverarbeitungssystem und dem zweiten Datenverarbeitungssystem; eine Entlastungsaufgabe bzw. Offload-Task, die auf dem ersten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist und eine interne Funktionalität aufweist, die im Wesentlichen mit derjenigen einer zweiten Aufgabe bzw. Task gleichwertig ist, die auf dem zweiten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist; eine Proxy-Aufgabe bzw. Proxy-Task, die auf dem zweiten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist, die konfiguriert ist, um mit der Entlastungsaufgabe bzw. Offload-Task auf dem ersten Datenverarbeitungssystem zu kommunizieren, und eine externe Schnittstelle aufweist, die im Wesentlichen mit derjenigen der zweiten Aufgabe bzw. Task gleichwertig ist, wobei die Proxy-Aufgabe bzw. Proxy-Task im Wesentlichen die zweite Aufgabe ersetzt, indem sie die interne Funktionalität der zweiten Aufgabe bzw. Task an die Entlastungsaufgabe bzw. Offload-Task je nach Bedarf durch das Abbilden von Argumenten und das Zugreifen auf und das Formatieren von Ein- und Ausgangsdaten delegiert; und ein Speicherungssystem, um die Ein- und Ausgangsdaten zu speichern.
  7. System nach Anspruch 6, wobei der Kommunikationsmechanismus ein Netzwerk umfasst.
  8. System nach Anspruch 6, wobei das Speicherungssystem gemeinsam genutzt wird, so dass die Ein- und Ausgangsdaten sowohl für das erste Datenverarbeitungssystem als auch für das zweite Datenverarbeitungssystem zugänglich sind.
  9. System nach Anspruch 6, wobei die erste Hardware-Plattform einen ersten Speicher umfasst und die zweite Hardware-Plattform einen zweiten Speicher umfasst, und die Ein- und Ausgangsdaten in einer Verbindung des ersten Speichers und des zweiten Speichers gespeichert werden.
  10. System nach Anspruch 9, wobei der erste Speicher und der zweite Speicher sich mindestens teilweise überschneiden, um einen gemeinsam genutzten Speicher zu bilden, und die Ein- und Ausgangsdaten mindestens teilweise in dem gemeinsam genutzten Speicher gespeichert sind.
  11. System nach Anspruch 6, wobei die erste Hardware-Plattform gegebenenfalls von der zweiten Hardware-Plattform verschieden ist.
  12. System nach Anspruch 6, wobei die erste Firmware gegebenenfalls von der zweiten Firmware verschieden ist.
  13. System nach Anspruch 6, wobei das erste Betriebssystem gegebenenfalls von dem zweiten Betriebssystem verschieden ist.
  14. System nach Anspruch 13, wobei das erste Betriebssystem und das zweite Betriebssystem aus einer Gruppe ausgewählt werden, die aus OS/390, z/OS, Windows, Unix und Linux besteht.
  15. Computerprogrammprodukt, umfassend einen computerlesbaren Datenträger, der einen computerbenutzbaren Programmcode aufweist, der ausführbar ist, um Arbeitsschritte zum Entlasten bzw. Offload einer Datenverarbeitung auszuführen, wobei die Arbeitsschritte des Computerprogrammprodukts folgendes umfassen: Empfangen einer Anfrage zum Starten einer Entlastungsaufgabe bzw. Offload-Task, die auf einem ersten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist und eine interne Funktionalität aufweist, die im Wesentlichen mit derjenigen einer zweiten Aufgabe bzw. Task gleichwertig ist, die auf einem zweiten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist, von einer Proxy-Aufgabe bzw. Proxy-Task aus, die auf dem zweiten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist, die konfiguriert ist, um mit der Entlastungsaufgabe bzw. Offload-Task auf dem ersten Datenverarbeitungssystem zu kommunizieren, und eine externe Schnittstelle aufweist, die im Wesentlichen mit derjenigen der zweiten Aufgabe bzw. Task gleichwertig ist, wobei die Proxy-Aufgabe bzw. Proxy-Task im Wesentlichen die zweite Aufgabe bzw. Task ersetzt; Abbilden der Anfrage auf eine Form, die für das erste Datenverarbeitungssystem verständlich ist, und Mitteilen derselben an die Entlastungsaufgabe bzw. Offload-Task; direktes Auslesen eventueller Eingangsdaten, wenn das erste Datenverarbeitungssystem Zugriff auf Daten des zweiten Datenverarbeitungssystems hat, ansonsten indirektes Auslesen eventueller Eingangsdaten; Ausführen der internen Funktionalität durch die Entlastungsaufgabe bzw. Offload-Task; Melden der Fertigstellung der Entlastungsaufgabe bzw. Offload-Task an die Proxy-Aufgabe bzw. Proxy-Task; und direktes Schreiben eventueller Ausgangsdaten, wenn das erste Datenverarbeitungssystem Zugriff auf Daten des zweiten Datenverarbeitungssystems hat, ansonsten indirektes Schreiben eventueller Ausgangsdaten.
  16. Computerprogrammprodukt nach Anspruch 15, ferner umfassend einen Treiber für das erste Datenverarbeitungssystem, das zum Zugriff auf einen physikalischen Anschluss an und eine physikalische Anordnung von Ein- und Ausgangsdaten, die für das zweite Datenverarbeitungssystem nativ sind, fähig ist.
  17. Computerprogrammprodukt nach Anspruch 15, ferner umfassend ein Dateiverwaltungssystem für das erste Datenverarbeitungssystem, das zum Zugriff auf eine logische Anordnung von Ein- und Ausgangsdaten, die für das zweite Datenverarbeitungssystem nativ ist, fähig ist.
  18. Computerprogrammprodukt nach Anspruch 15, ferner umfassend eine Übersetzungsvorrichtung für das erste Datenverarbeitungssystem, das zum Übersetzen eines Formats von Ein- und Ausgangsdaten, das für das zweite Datenverarbeitungssystem nativ ist, fähig ist.
  19. Verfahren zum Entlasten einer Datenverarbeitung, wobei das Verfahren folgende Schritte umfasst: Empfangen einer Anfrage zum Starten einer Entlastungsaufgabe bzw. Offload-Task, die auf einem ersten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist und eine interne Funktionalität aufweist, die im Wesentlichen mit derjenigen einer zweiten Aufgabe bzw. Task gleichwertig ist, die auf einem zweiten Datenverarbeitungssystem beherbergt wird, von einer Proxy-Aufgabe bzw. Proxy-Task aus, die auf dem zweiten Datenverarbeitungssystem beherbergt wird bzw. gehostet ist, die konfiguriert ist, um mit der Entlastungsaufgabe bzw. Offload-Task auf dem ersten Datenverarbeitungssystem zu kommunizieren, und eine externe Schnittstelle aufweist, die im Wesentlichen mit derjenigen der zweiten Aufgabe bzw. Task gleichwertig ist, wobei die Proxy-Aufgabe bzw. Proxy-Task im Wesentlichen die zweite Aufgabe bzw. Task ersetzt; Abbilden der Anfrage auf eine Form, die für das erste Datenverarbeitungssystem verständlich ist, und Mitteilen derselben an die Entlastungsaufgabe bzw. Offload-Task; Ausführen der internen Funktionalität durch die Entlastungsaufgabe bzw. Offload-Task; und Melden der Fertigstellung der Entlastungsaufgabe bzw. Offload-Task an die Proxy-Aufgabe bzw. Proxy-Task.
  20. Verfahren nach Anspruch 19, ferner umfassend folgende Schritte: direktes Auslesen eventueller Eingangsdaten, wenn das erste Datenverarbeitungssystem Zugriff auf Daten des zweiten Datenverarbeitungssystems hat, ansonsten indirektes Auslesen eventueller Eingangsdaten; und direktes Schreiben eventueller Ausgangsdaten, wenn das erste Datenverarbeitungssystem Zugriff auf Daten des zweiten Datenverarbeitungssystems hat, ansonsten indirektes Schreiben eventueller Ausgangsdaten.
  21. Verfahren nach Anspruch 20, wobei der Zugriff auf Daten des zweiten Datenverarbeitungssystems das Zugreifen auf einen physikalischen Anschluss an und die physikalische Anordnung von Ein- und Ausgangsdaten, die für das zweite Datenverarbeitungssystem nativ sind, umfasst.
  22. Verfahren nach Anspruch 20, wobei der Zugriff auf Daten des zweiten Datenverarbeitungssystems das Zugreifen auf eine logische Anordnung von Ein- und Ausgangsdaten, die für das zweite Datenverarbeitungssystem nativ ist, umfasst.
  23. Verfahren nach Anspruch 20, wobei der Zugriff auf Daten des zweiten Datenverarbeitungssystems das Übersetzen eines Formats von Ein- und Ausgangsdaten, das für das zweite Datenverarbeitungssystem nativ ist, umfasst.
  24. Verfahren nach Anspruch 19, wobei jeder der Schritte als Reaktion auf einen einzelnen Aufruf einer Proxy-Aufgabe bzw. Proxy-Task ein oder mehrmals ausgeführt werden kann.
DE112008002634T 2007-09-27 2008-09-29 Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung Ceased DE112008002634T5 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97579407P 2007-09-27 2007-09-27
US60/975,794 2007-09-27
PCT/US2008/078182 WO2009043043A1 (en) 2007-09-27 2008-09-29 Apparatus, system, and method for cross-system proxy-based task offloading
US12/240,685 US8527991B2 (en) 2007-09-27 2008-09-29 Apparatus, system, and method for cross-system proxy-based task offloading
US12/240,685 2008-09-29

Publications (1)

Publication Number Publication Date
DE112008002634T5 true DE112008002634T5 (de) 2011-01-13

Family

ID=40509900

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112008002634T Ceased DE112008002634T5 (de) 2007-09-27 2008-09-29 Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung

Country Status (7)

Country Link
US (2) US8527991B2 (de)
KR (1) KR101517258B1 (de)
AU (1) AU2008304105B2 (de)
BR (1) BRPI0816037B1 (de)
DE (1) DE112008002634T5 (de)
GB (1) GB2466604B (de)
WO (1) WO2009043043A1 (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102467373A (zh) * 2010-10-28 2012-05-23 微软公司 任务取消宽限期
US8566831B2 (en) * 2011-01-26 2013-10-22 International Business Machines Corporation Execution of work units in a heterogeneous computing environment
US8533720B2 (en) 2011-02-25 2013-09-10 International Business Machines Corporation Offloading work from one type to another type of processor based on the count of each type of service call instructions in the work unit
US8813083B2 (en) * 2011-07-01 2014-08-19 Intel Corporation Method and system for safe enqueuing of events
US9423983B2 (en) 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US9203903B2 (en) 2012-12-26 2015-12-01 International Business Machines Corporation Processing a request to mount a boot volume
US9152450B2 (en) * 2013-03-12 2015-10-06 International Business Machines Corporation Offloading service requests to a second guest hypervisor in a logical partition shared by a plurality of guest hypervisors
US9921770B1 (en) * 2014-03-28 2018-03-20 EMC IP Holding Company LLC Extending fixed block architecture device access over ficon using transport mode protocol
US9389789B2 (en) 2014-12-15 2016-07-12 International Business Machines Corporation Migration of executing applications and associated stored data
US9910705B1 (en) * 2015-02-18 2018-03-06 Altera Corporation Modular offloading for computationally intensive tasks
US9554239B2 (en) 2015-04-21 2017-01-24 Apple Inc. Opportunistic offloading of tasks between nearby computing devices
US9996329B2 (en) 2016-02-16 2018-06-12 Microsoft Technology Licensing, Llc Translating atomic read-modify-write accesses
CN107133086B (zh) * 2016-02-29 2020-09-04 阿里巴巴集团控股有限公司 基于分布式系统的任务处理方法、装置和系统
US10878493B2 (en) 2016-06-21 2020-12-29 Erland Wittkotter Sample data extraction
WO2017223250A1 (en) 2016-06-21 2017-12-28 Wittkotter Erland Sample data extraction
WO2018013651A1 (en) * 2016-07-12 2018-01-18 Proximal Systems Corporation Apparatus, system and method for proxy coupling management
US20180039519A1 (en) * 2016-08-08 2018-02-08 Qualcomm Incorporated Systems and methods for managing processing load
US11042394B2 (en) 2017-10-13 2021-06-22 Electronics And Telecommunications Research Institute Method for processing input and output on multi kernel system and apparatus for the same
KR102160014B1 (ko) * 2019-03-05 2020-09-25 서울대학교산학협력단 혼합 네트워크상에서의 태스크 간 통신 방법 및 시스템
US11687364B2 (en) 2019-07-30 2023-06-27 Samsung Electronics Co., Ltd. Methods and apparatus for cache-aware task scheduling in a symmetric multi-processing (SMP) environment
US11200131B2 (en) 2019-11-12 2021-12-14 VirtualZ Computing Corporation System and method for enhancing the efficiency of mainframe operations
CN111245651B (zh) * 2020-01-08 2022-03-29 上海交通大学 一种基于功率控制和资源分配的任务卸载方法
US12513093B2 (en) * 2022-03-30 2025-12-30 Microsoft Technology Licensing, Llc Dynamic cloud offloading
US12432210B2 (en) * 2023-01-09 2025-09-30 Bank Of America Corporation Enhanced security and extended functionality for workstation integration with mainframe operating systems
US20240256317A1 (en) * 2023-01-26 2024-08-01 Dell Products L.P. Systems and methods for backend architecture provisioning and emulation

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006277A (en) 1987-11-06 1999-12-21 Bea Systems, Inc. Virtual software machine for enabling CICS application software to run on UNIX based computer systems
US5745748A (en) 1994-12-09 1998-04-28 Sprint Communication Co. L.P. System and method for direct accessing of remote data
GB2305270A (en) 1995-09-15 1997-04-02 Ibm Bridge for a client-server environment
US5774728A (en) 1995-12-27 1998-06-30 International Business Machines Corporation Method and system for compiling sections of a computer program for multiple execution environments
US6021408A (en) * 1996-09-12 2000-02-01 Veritas Software Corp. Methods for operating a log device
EP0958537A1 (de) 1997-02-07 1999-11-24 Newframe Corporation Ltd. Verfahren zum gemeinsamen nutzen von daten in einem heterogenen rechnersystem und rechnersystem mit datenteilung
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6822955B1 (en) * 1998-01-22 2004-11-23 Nortel Networks Limited Proxy server for TCP/IP network address portability
JP3565490B2 (ja) * 1999-11-09 2004-09-15 インターナショナル・ビジネス・マシーンズ・コーポレーション クライアントサーバシステム、サーバ、クライアント、プロキシサーバ制御方法、プロキシサーバ機能提供方法および記憶媒体
US20020116452A1 (en) * 2000-03-03 2002-08-22 Surgient Networks, Inc. Network connected computing system including storage system
US7325030B2 (en) * 2001-01-25 2008-01-29 Yahoo, Inc. High performance client-server communication system
JP2003141018A (ja) * 2001-11-02 2003-05-16 Fujitsu Ltd サーバ、中継装置、情報提供方法、およびプログラム
US7150042B2 (en) * 2001-12-06 2006-12-12 Mcafee, Inc. Techniques for performing malware scanning of files stored within a file storage device of a computer network
US7246360B2 (en) * 2002-02-07 2007-07-17 Mobitv, Inc. Plug-in API for protocol and payload transformation
US20050076327A1 (en) 2003-01-15 2005-04-07 University Of Florida Server-side wireless development tool
US7356562B2 (en) * 2003-04-30 2008-04-08 International Business Machines Corporation Dynamic generator for fast-client static proxy from service interface definition document
US8544073B2 (en) * 2003-07-07 2013-09-24 Progress Software Corporation Multi-platform single sign-on database driver
US7328222B2 (en) * 2004-08-26 2008-02-05 Oracle International Corporation Method and apparatus for preserving data coherency in a database by generating a command object that includes instructions for writing a data record to a local cache
US7779164B2 (en) 2005-04-04 2010-08-17 Oracle America, Inc. Asymmetrical data processing partition
US7949766B2 (en) 2005-06-22 2011-05-24 Cisco Technology, Inc. Offload stack for network, block and file input and output
US7441112B2 (en) * 2005-06-30 2008-10-21 Intel Corporation Offloading the processing of a network protocol stack
EP1952254A4 (de) 2005-10-17 2011-06-22 Alebra Technologies Inc Verfahren, prozess und system zur gemeinsamen benutzung von daten in einem heterogenen speichernetzwerk
JP2007156824A (ja) 2005-12-05 2007-06-21 Nec Electronics Corp プロセッサシステム、タスク制御方法
EP2126698A2 (de) * 2006-12-06 2009-12-02 Fusion Multisystems, Inc. Vorrichtung, system und verfahren für ein gemeinsam verwendetes, verteiltes front-end-raid

Also Published As

Publication number Publication date
US9389904B2 (en) 2016-07-12
US8527991B2 (en) 2013-09-03
US20090089794A1 (en) 2009-04-02
AU2008304105B2 (en) 2013-08-29
GB2466604B (en) 2012-09-12
BRPI0816037B1 (pt) 2021-01-19
KR20100058670A (ko) 2010-06-03
BRPI0816037A2 (pt) 2020-08-11
US20130339979A1 (en) 2013-12-19
GB201006848D0 (en) 2010-06-09
WO2009043043A1 (en) 2009-04-02
KR101517258B1 (ko) 2015-05-04
GB2466604A (en) 2010-06-30
HK1141112A1 (en) 2010-10-29
AU2008304105A1 (en) 2009-04-02
WO2009043043A9 (en) 2011-11-03

Similar Documents

Publication Publication Date Title
DE112008002634T5 (de) Gerät, System und Verfahren zur systemübergreifenden Proxy-basierten Aufgabenentlastung
DE102004038649B4 (de) Dauerspeichervorrichtung für Sicherungsprozess-Prüfpunktzustände
DE112005002298B4 (de) Leistungssteigerung einer Adreßübersetzung unter Verwendung von Übersetzungstabellen, die große Adreßräume umfassen
DE102021117636A1 (de) Speichervorrichtung mit direct-memory-access-engine, system mit der speichervorrichtung und verfahren zum betrieb der speichervorrichtung
DE102020120102A1 (de) Globale dauerhafte Speicherleerung
DE102010035603A1 (de) Bereitstellen von Hardwareunterstützung für gemeinsam benutzten virtuellen Speicher zwischen physischem Lokal- und Fernspeicher
DE102018006797A1 (de) Kohärente Speichereinrichtungen über PCIe
DE102018006756A1 (de) Beschleuniger-Fabric
DE102009049078B4 (de) Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen
DE102022129936A1 (de) Techniken zur Erweiterung des Systemspeichers durch Nutzung des verfügbaren Gerätespeichers
DE102022107778A1 (de) Adressübersetzung an einer zielnetzwerk-schnittstellenvorrichtung
DE112016004303T5 (de) Hardware-Vorhersageelement mit geringem Verwaltungsaufwand zur Verringerung der Leistungsumkehr für Kern-zu-Kern-Datenübertragungsoptimierungsbefehle
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE112013007724T5 (de) Gemeinsame Benutzung von Speicher und I/O-Diensten zwischen Knoten
DE112006001590T5 (de) Multi-Thread Übertragungstransportmaschine für Speichereinheiten
DE112012005222T5 (de) Halbleiter-Datenspeicherverwaltung
DE112012005209T5 (de) Brückenfunktion zwischen Virtual Machine Monitor und Bare-Metal-Bootvorgang
DE102013209643B4 (de) Mechanismus für optimierte Nachrichtenaustauschdatenübertragung zwischen Nodelets innerhalb eines Plättchens
DE102021123716A1 (de) Speicher-Controller, System umfassend denselben und Betriebsverfahren einer Speichervorrichtung
DE102021108300B4 (de) Weiterleitung von steuerdaten zwischen halbleiterpaketen
DE112020002575T5 (de) Drosselung von speicher als dienst auf grundlage der verbindungsbandbreite
DE102020101958A1 (de) Dynamisches spurzugriffswechseln zwischen pcie-wurzelräumen
DE102020129195A1 (de) Vereinheitlichtes programmiermodul für eine funktion-als-ein-dienst-berechnung
DE112014002754T5 (de) Effiziente Aufgabenplanung unter Verwendung eines Sperrmechanismus
DE112011106079T5 (de) Frühe Weiterleitung von Gewebefehlern

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: VON ROHR PATENTANWAELTE PARTNERSCHAFT MBB, DE

R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled