DE69700512T2 - Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von Speichergeräten - Google Patents

Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von Speichergeräten

Info

Publication number
DE69700512T2
DE69700512T2 DE69700512T DE69700512T DE69700512T2 DE 69700512 T2 DE69700512 T2 DE 69700512T2 DE 69700512 T DE69700512 T DE 69700512T DE 69700512 T DE69700512 T DE 69700512T DE 69700512 T2 DE69700512 T2 DE 69700512T2
Authority
DE
Germany
Prior art keywords
event
queue
application program
storage device
event queue
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.)
Expired - Fee Related
Application number
DE69700512T
Other languages
English (en)
Other versions
DE69700512D1 (de
Inventor
Robert S. Gittins
Dale R. Passmore
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69700512D1 publication Critical patent/DE69700512D1/de
Application granted granted Critical
Publication of DE69700512T2 publication Critical patent/DE69700512T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

  • Die vorliegende Erfindung bezieht sich allgemein auf das Gebiet der Computer und der Computer-Speichereinrichtungen. Insbesondere bezieht sich die vorliegende Erfindung auf das Benachrichtigen von Anwendungsprogrammen in einem Computersystem bezüglich der Zustandsänderungen von Speichereinrichtungen oder Metaeinrichtungen des Computersystems.
  • Beschreibung des Standes der Technik
  • Herkömmliche für die Datenverarbeitung und Speicherung großer Datenmengen eingesetzte Computersysteme verwenden gewöhnlich zur Speicherung von Informationen zahlreiche physische Einrichtungen wie etwa Plattenlaufwerke. Um die Komplexität des Zugriffs auf die Speichereinrichtungen zu reduzieren, werden die physischen Speichereinrichtungen häufig in Metaeinrichtungen oder logischen Einrichtungen angeordnet.
  • Physische Plattenlaufwerke können auf verschiedenartige Weise versagen, z. B. aufgrund eines Laufwerkcontroller- Fehlers, eines Laufwerkkopf-Fehlers, eines Laufwerkplatten-Fehlers, eines Fehlers im Kabel, welches das Plattenlaufwerk mit dem Computersystem verbindet, usw. Während einige der Fehler eines Plattenlaufwerks behoben werden können, erfordern andere Fehler ein Entfernen der Speichereinrichtung aus dem Computersystem und deren Reparatur.
  • Um die Integrität der Datenspeicherung in diesen Computersystemen während eines Plattenfehlers zu verbessern, sind verschiedene Datenreplikationstechniken entwickelt worden. RAID-Plattenfelder (RAID = redundant array of inexpensive disks = Redundantes Feld aus preiswerten Platten), die Plattenspiegel (RAID-1), Plattenstreifen (RAID-0) und RAID-5-Felder sowie Plattengruppen, verkettete Einrichtungen und Reserveplatten umfassen, können sämtlich verwendet werden, um die Zuverlässigkeit der Speicherung und Wiedergewinnung von Informationen in einem Computersystem zu erhöhen. Zum Beispiel besteht ein einfacher Plattenspiegel aus zwei Platten, wovon jede die gleichen Daten speichert. Wenn eine der Platten im Spiegel versagt, wird die andere Platte verwendet, um eine Schreib- oder Leseanforderung zu erfüllen.
  • Herkömmliche Datenreplikationsverfahren verschleiern im allgemeinen den Fehler einer einzelnen Platte des Computersystems, weil Datenfehler, die aus Plattenfehlern herrühren, automatisch korrigiert werden, bevor irgendwelche fehlerhafte Daten an die Anwendungsprogramme weitergegeben werden. Da herkömmliche Replikationstechniken jeden Fehler einer physischen Platte des Computersystems automatisch korrigieren und verschleiern, nehmen auf dem Computersystem ablaufende Programme der Anwenderebene im allgemeinen nicht wahr, daß eine physische Platte des Computersystems versagt hat.
  • Wichtig ist, daß, je stärker die Zahl der Speichereinrichtungsfehler in einem Computersystem ansteigt, dieses infolgedessen um so wahrscheinlicher einen Vollausfall der Speichereinrichtung erleidet, was zu einem Datenverlust führt. Obwohl herkömmliche Replikationstechniken einen einzelnen Plattenfehler erfassen und korrigieren können, führt ein anschließender zweiter Plattenfehler im allgemeinen zu einem Zustand des Vollausfalls, in dem die Daten, die in der Replikationsspeichereinrichtung gespeichert waren, verloren und nicht wiedergewinnbar sind. Zum Beispiel kann ein aus zwei physischen Platten bestehender einfacher Plattenspiegel einen Fehler in einer einzelnen Platte aushalten, jedoch führt ein Fehler in beiden Platten zu einem Datenverlust. Ähnlich führt ein Versagen von mehr als einer Platte in einem RAID-5- Plattenfeld zu einem Datenverlust.
  • Es ist deshalb von Vorteil, wenn das Computersystem in Echtzeit Informationen bereitstellt, die den Zustand der Speichereinrichtungen betreffen. Herkömmliche Computersysteme können zwar eine begrenzte Menge von Platteninformationen an eine mit dem Datenserver verbundene Konsole liefern, diese Meldungen werden jedoch häufig nur an diese Konsole gerichtet. Die Konsole befindet sich im allgemeinen in einem Rechnerraum, der den Datenserver beherbergt, und wird durch einen Anwender oder einen Systemmanager nur selten in Echtzeit überwacht.
  • Ferner beschränkt sich in herkömmliche Computersystemen das Benachrichtigen über Gerätefehler im allgemeinen auf Gerätefehlerinformationen.
  • In IBM Technical Disclosure Bulletin Bd. 36, Nr. 09B, September 1993, Seiten 101-102, ist ein dynamisches Bediener-Meldungsmanagementsystem offenbart. Dieses umfaßt das Zuordnen eines Meldungskategorieidentifizierers, eines Meldungsidentifizierers, einer Löschbedingung, z. B. eines Codes, der zur Bestimmung, wie und wann eine Meldung aus der aktiven Meldungswarteschlange gelöscht wird, verwendet wird, einer Meldungsanzeigezeit und besonderen Meldungsanzeigecodes, z. B. der Zeichensatzinformationen, zu jeder Meldung. Das dynamische Meldungsmanagementmodul wartet die aktive Meldungswarteschlange intern, indem sie veraltete Meldungen löscht, sobald die Löschbedingungen erfüllt sind.
  • EP-A-0.738.976 (Fuji-Xerox Co.), älter, jedoch nicht veröffentlicht, bezieht sich auf das Anzeigen von Meldungen, die durch Ereignisse wie etwa Fehler oder Versagen mehrerer Computerbetriebsmittel erzeugt werden, insbesondere durch Hervorheben (auf dem Bildschirm) von durch den Anwender ausgewählten Meldungen oder Meldungskategorien in einem Meldungsprotokoll und Entwickeln von Meldungstexten zu vollständigeren Meldungsanzeigen.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung schafft in Übereinstimmung mit den nachfolgenden Ansprüchen ein Verfahren und eine Vorrichtung zum Benachrichtigen eines Anwendungsprogramms bezüglich einer Zustandsänderung in einer Speichereinrichtung in einem Computersystem mit mehreren Speichereinrichtungen. In Übereinstimmung mit dieser Erfindung sind in einer Verfahrensausführung der Erfindung die obengenannten Probleme durch Benachrichtigen eines Anwendungsprogramms bezüglich einer Zustandsänderung in den Speichereinrichtungen eines Computersystems gelöst worden. Nach dem Empfang einer Anforderung vom Anwendungsprogramm zum Erzeugen einer Ereigniswarteschlange wird eine Ereigniswarteschlange erzeugt, die ein von den Speichereinrichtungen erzeugtes Ereignis speichert, das der Zustandsänderung der Speichereinrichtungen entspricht. Die Ereigniswarteschlange wird mit einem Warteschlangenkopf erzeugt, wobei dieser Warteschlangenkopf einen die Ereigniswarteschlange identifizierenden Warteschlangennamen, eine Maximalgröße der Warteschlange, eine Gruppe von Warteschlangenmerkern und -zeigern sowie eine Prozeßidentifizierung, die das Anwendungsprogramm identifiziert, das die Erzeugung der Ereigniswarteschlange angefordert hatte, enthält. Nach der erfolgreichen Erzeugung der Warteschlange wird das Anwendungsmodul darüber benachrichtigt, daß die Ereigniswarteschlange erfolgreich erzeugt worden ist.
  • Nach einem von einer Speichereinrichtung erzeugten Ereig nis wird dieses in der Ereigniswarteschlange angeordnet und, wenn zutreffend, zum Anwendungsprogramm geschickt. Ereignisse werden dem Anwendungsprogramm auf zwei Arten gemeldet. Wenn das Anwendungsprogramm auf ankommende Ereignisse wartet, wird das Anwendungsprogramm über das neue Ereignis unmittelbar benachrichtigt. Alternativ könnte die Anwendung, den eigenen Bedürfnissen entsprechend, Ereignisse aus der Warteschlange löschen.
  • Wenn die Ereigniswarteschlange eine vorgegebene Größengrenze überschritten hat, wird das älteste in der Warteschlange gespeicherte Ereignis verworfen, um Platz zum Speichern des Ereignisses zu schaffen, und wird die Anwendung darüber informiert, daß Informationen verloren gegangen sind.
  • Die obigen computerimplementierten Schritte sind in einer anderen Ausführung der Erfindung als Fertigungsprodukt, d. h. als Computer-Speichermedium mit einem Computerprogramm aus Befehlen zur Durchführung der obenbeschriebenen Schritte, vorgesehen.
  • In einer Rechnerausführung der Erfindung enthält eine Vorrichtung zum Benachrichtigen eines Anwendungsprogramms bezüglich einer Zustandsänderung in einer Speichereinrichtung eine Ereigniswarteschlange, die ein von der Speichereinrichtung erzeugtes Ereignis speichert, das der Zustandsänderung der Speichereinrichtung entspricht. Ein Benachrichtigungsmodul empfängt das Ereignis von der Speichereinrichtung und ordnet es in der Ereigniswarteschlange an. Das Modul schickt dann in Anwort auf eine Anforderung vom Anwendungsprogramm das Ereignis zum Anwendungsprogramm, um eine Ereigniswarteschlange zu erzeugen. Das Benachrichtigungsmodul kann außerdem von der Anwendung erzeugte Ereignisse, die der Konfiguration der Speichereinrichtungen in dem Computersystem entspre chen, empfangen.
  • Der große Nutzen der vorliegenden Erfindung besteht darin, daß alle Zustandsänderungen einer Metaeinrichtung oder einer Speichereinrichtung zur Überwachung und zur möglichen unmittelbaren korrigierenden Tätigkeit in Echtzeit an den Systemmanager oder den Systembediener geschickt werden.
  • Ein weiterer Nutzen der vorliegenden Erfindung besteht darin, den Anwendungsprogrammen zu ermöglichen, Informationswarteschlangen einzurichten, die durch das Benachrichtigungsmodul gewartet werden und sich auf die Zustandsänderungen der Metaeinrichtungen oder der Speichereinrichtungen in einem Computersystem beziehen. Da die Warteschlangen durch das Benachrichtigungsmodul gewartet werden, ist das Anwendungsprogramm von der administrativen Last des Abwickelns einer jeden Zustandsänderung der Metaeinrichtungen oder der Speichereinrichtungen in dem Computersystem befreit.
  • Ein weiterer Nutzen der vorliegenden Erfindung besteht in der Schaffung eines zentralisierten Computerbetriebsmittels zum Sammeln und Warten aller von den Metaeinrichtungen erzeugten Ereignisse zur späteren Verwendung durch die Anwendungsprogramme.
  • Ein weiterer Nutzen der vorliegenden Erfindung besteht darin, mehreren Anwendungsprogrammen zu ermöglichen, Warteschlangen für Zustandsänderungen der Metaeinrichtungen in dem Computersystem einzurichten.
  • Ein weiterer Nutzen der vorliegenden Erfindung besteht darin, die Auflösung der Warteschlange nach Beendigung des Anwendungsprogramms, das die Erzeugung der Warteschlange angefordert hatte, zu ermöglichen, wodurch Systembetriebsmittel freigegeben werden.
  • Das vorhergehenden und weitere nützliche Merkmale und Vorteile der Erfindung werden deutlich aus der folgenden spezifischeren Beschreibung einer bevorzugten Ausführung der Erfindung, die in der begleitenden Zeichnung veranschaulicht ist.
  • Kurzbeschreibung der Zeichnung
  • Fig. 1 zeigt ein Computersystem zur Ausführung der computerimplementierten Schritte in Übereinstimmung mit der Erfindung.
  • Fig. 2 zeigt ein Computersystem mit mehreren physischen Speichereinrichtungen.
  • Fig. 3 ist ein Blockdiagramm der bevorzugten Ausführung der vorliegenden Erfindung.
  • Fig. 4 zeigt die Struktur einer Ereigniswarteschlange in der bevorzugten Ausführung der vorliegenden Erfindung.
  • Fig. 5 zeigt die von der bevorzugten Ausführung der vorliegenden Erfindung ausgeführten logischen Operationen.
  • Fig. 6 zeigt die logischen Operationen zur Erzeugung einer Ereigniswarteschlange in Übereinstimmung mit der bevorzugten Ausführung der vorliegenden Erfindung.
  • Fig. 7 zeigt die logischen Operationen zur Verarbeitung eines Ereignisses in Übereinstimmung mit der bevorzugten Ausführung der vorliegenden Erfindung.
  • Fig. 8 zeigt die logischen Operationen zum Berichten von in der Ereigniswarteschlange enthaltenen Ereignissen an das Anwendungsprogramm in Übereinstimmung mit der bevorzugten Ausführung der vorliegenden Erfindung.
  • Die Fig. 9A und 9B zeigen die logischen Operationen zum Löschen einer Ereigniswarteschlange in Übereinstimmung mit der bevorzugten Ausführung der vorliegenden Erfindung.
  • Genaue Beschreibung der bevorzugten Ausführungen
  • Die hier beschriebenen Ausführungen der Erfindung werden als logische Operationen in einem Computersystem implementiert. Die logischen Operationen der vorliegenden Erfindung sind (1) als eine Folge von computerimplementierten Schritten, die auf dem Computersystem ablaufen, und (2) als verknüpfte Rechnermodule innerhalb des Computersystems ausgeführt. Die Implementierung ist eine Wahlangelegenheit, die von den Leistungsanforderungen des Computersystems, das die Erfindung implementiert, abhängt. Dementsprechend werden die logischen Operationen, aus denen die hier beschriebenen Ausführungen der Erfindung bestehen, je nachdem als Operationen, Schritte oder Module bezeichnet.
  • Die Betriebsumgebung, in der die vorliegende Erfindung eingesetzt wird, umfaßt ein eigenständiges Computersystem sowie das allgemeine verteilte Computersystem. In dem verteilten Computersystem sind Universalrechner, Arbeitsplatzrechner oder Personalcomputer über Kommunikationsverbindungen verschiedenen Typs in einer Client-Server- Anordnung verbunden, wobei Programme und Daten, vielfach in Form von Objekten, durch verschiedene Systemelemente bereitgestellt werden. Einige der Elemente eines eigenständigen Computers oder eines Universalarbeitsplatzrechner sind in Fig. 1 gezeigt, in der ein Prozessor 20 gezeigt ist, der einen Eingabe/Ausgabe-(E/A)-Abschnitt 21, eine Zentraleinheit (CPU) 22 und einen Speicherabschnitt 23 besitzt. Der E/A-Abschnitt 21 ist mit einer Tastatur 24, einer Anzeigeeinheit 25, einer Plattenspeichereinheit 26, einer Netzschnittstelle 30 und einer CD- ROM-Laufwerkseinheit 27 verbunden. Die CD-ROM-Einheit 27 kann ein CD-ROM-Medium 29 lesen, das gewöhnlich Programme 28 und Daten enthält. Das Computerprogramm erzeugt Speichermechanismen, die bewirken, daß die Vorrichtung und die Verfahren der vorliegenden Erfindung in dem Speicherabschnitt 23 oder auf einer Plattenspeichereinheit 26 oder auf dem CD-ROM 29 eines solchen Systems liegen. Beispiele solcher Systeme umfassen von Sun Microsystems Inc. angebotene SPARC-Systeme, von IBM Corporation und von anderen Herstellern IBM-kompatibler Personalcomputer angebotene Personalcomputer und Systeme, die unter dem UNIX-Betriebssystem oder dem SolarisTM-Betriebssystem laufen.
  • Die Plattenspeichereinheit 26 aus Fig. 1 kann aus mehreren physischen Plattenlaufwerken bestehen, um die Kapazität, die Zuverlässigkeit und die Leistung des Computersystems zu erhöhen. Fig. 2 zeigt mehrere Platten 34, die über eine Plattenlaufwerksteuerung 34 mit dem Prozessor 20 verbunden sind. Die mehreren Platten 34 können, abhängig von der gewünschten Leistung, in verschiedenen Metaeinrichtungen angeordnet sein.
  • Zum Beispiel ist ein Plattenspiegel eine duplizierende Gruppe von Laufwerken, wobei jedes Laufwerk in dem Spiegel die gleichen Informationen wie die anderen Laufwerke in dem Spiegel besitzt. Wenn ein einzelnes Laufwerk des Spiegels versagt, ist der Spiegel trotzdem in der Lage, jede Lese- oder Schreibanforderung an den Spiegel über die restlichen Platten zu erfüllen.
  • Eine RAID-Metaeinrichtung ist ein Feld aus Platten, das Daten und Paritätsinformationen enthält, so daß Daten, die auf einem fehlerhaften Laufwerk enthalten sind, mit Hilfe der restlichen Laufwerke in dem Feld rekonstruiert werden können.
  • Heißersatzeinheiten sind durch eine Gruppe von Laufwerken gebildet, die verfügbar sind, um irgendein fehlerhaftes Laufwerk einer anderen Metaeinrichtung in dem Computersystem zu ersetzen. Zum Beispiel kann, wenn ein Heißersatzlaufwerk verfügbar ist, ein fehlerhaftes Laufwerk in einem Spiegel oder in einem RAID-Plattenfeld ersetzt werden.
  • Ein typisches Computersystem für Anwendungen, die große Datenmengen verwendet (d. h. eine Finanzbuchhaltungsdatenbank) kann hunderte von Plattenlaufwerken, in manchen Fällen bis zu tausend Laufwerke, einsetzen. Diese Computersysteme können eine Kombination aus Metaeinrichtungen einsetzen, die Plattenspiegel, RAID-5-Plattenfelder, Plattenstreifen, verkettete Platten und Heißersatzeinheiten umfassen. Folglich kann die Mehrzahl von Laufwerken 34 (Fig. 2), abhängig von der gewünschten Leistung der Speichereinrichtungen in dem Computersystem, in verschiedenartigen Metaeinrichtungen angeordnet werden.
  • Fig. 3 zeigt die bevorzugte Ausführung der vorliegenden Erfindung. Das Benachrichtigungsmodul 40 richtet in Antwort auf Anforderungen des Anwendungsprogramms 42 Ereigniswarteschlangen 48 ein, um von den Metaeinrichtungen 44 erzeugte Ereignisse 46 nacheinander aufzulisten. Das Benachrichtigungsmodul 40 ist in der Lage, für mehrere Anwendungen getrennte Ereigniswarteschlangen einzurichten.
  • Ereignisse 46 können entweder von Metaeinrichtungen 44 oder von einem Programm auf Anwenderebene wie etwa einer graphischen Speichereinrichtungsmanger-Anwenderschnittstelle (GUI) 50 erzeugt werden. Der Speichermanager 50 könnte mit der Fähigkeit ausgestattet sein, auf die Konfiguration der Metaeinrichtungen (d. h. die Partitionierung der Platten) einzuwirken. Deshalb kann das Benachrichtigungsmodul 40 von dem Speichermanager 50 erzeugte Ereignisse zu empfangen, die die Konfiguration von Metaeinrichtungen 44 betreffen. Auf diese Weise ist das Benachrichtigungsmodul 40 in der Lage, Zustandsänderungen der Metaeinrichtungen 44 oder auf der Anwendungsebene erfolgte Konfigurationsänderungen der Metaeinrichtungen in Echtzeit zu verfolgen.
  • Wie in Fig. 3 gezeigt ist, können Metaeinrichtungen 44 Spiegel 52, ein RAID-Feld 54, Heißersatzplatten 56, Plattengruppen 58 und Ketten-/Streifenplatten 59 enthalten. Eine Metaeinrichtung 44 könnte außerdem in Abhängigkeit von der für das Computersystem gewählten spezifischen Implementierung andere Formen von Speichereinrichtungen enthalten.
  • Das Benachrichtigungsmodul 40 ist in der Lage, ankommende Ereignisse 46, die entweder von einer Metaeinrichtung 44 oder einer Anwendung 50 stammen, in einer Warteschlange 48 anzuordnen. Die Metaeinrichtung 44 oder das Programm 50 übertragen das Ereignis zum Benachrichtigungsmodul 40, um dieses dort zu verarbeiten.
  • Ein Ereignis 46 kann allgemein so definiert sein, daß es jede Zustandsänderung in der zugrundeliegenden Metaeinrichtung umfaßt. Ein Ereignis kann einfach eine Zustandsänderung einer Metaeinrichtung sein. Zum Beispiel könnte ein Laufwerkfehler ein von dem Benachrichtigungsmodul 40 zu verarbeitendes Ereignis bilden. Andere Beispiele möglicher Ereignisse könnten das Erzeugen oder das Lö schen einer Metaeinrichtung oder das Verändern der Größe einer Metaeinrichtung oder das Verwenden eines neuen physischen Laufwerks (d. h. eines Heißersatzes) in einer Metaeinrichtung umfassen. Außerdem können alle Änderungen in der Konfiguration der Einrichtungen (d. h., welche Laufwerke eine Metaeinrichtung enthalten) als Ereignisse zum Auslösen von Meldungen von den Metaeinrichtungen an das Benachrichtigungsmodul verwendet werden. Während die Definition eines Ereignisses eine Wahlangelegenheit ist, die von der spezifischen Implementierung abhängt, ist eine größere Menge an durch das Benachrichtigungsmodul von den Metaeinrichtungen an die Anwendungsprogramme gelieferten Details allgemein von Vorteil.
  • Ein Ereignis kann durch eine Gruppe von Variablen einschließlich eines Etikettkennzeichens, eines Zeitstempels, eines Gruppenindikators, eines Einrichtungsindikators, einer Ereignisbeschreibung und eines Anwenderwertes gekennzeichnet sein. Das Etikettkennzeichen gibt den Typ der Metaeinrichtung, in der das Ereignis eingetreten ist, an, während der Zeitstempel den Zeitpunkt, zu der das Ereignis eingetreten ist, angibt. Der Gruppenindikator könnte zeigen, in welcher Plattengruppe, falls vorhanden, das Ereignis eingetreten ist. Der Einrichtungsindikator zeigt, in welcher spezifischen Metaeinrichtung das Ereignis eingetreten ist, während der Ereignisindikator das aktuelle Eintreten oder die aktuelle Zustandsänderung in der Metaeinrichtung enthält. Das Anwenderfeld unterscheidet zwischen einem von einer Anwendung erzeugten Ereignis und einem von einer Metaeinrichtung in dem Kern des Computersystems erzeugten Ereignis.
  • Das Benachrichtigungsmodul 40 (Fig. 3) wartet Ereigniswarteschlangen 48 für den Zugriff durch die Anwendungsprogramme 42. Das Benachrichtigungsmodul 40 könnte durch Anwendungsprogramme 42 nach Ereignissen abgefragt werden, die in der Warteschlange aufgefangen worden sind, Alternativ kann das Benachrichtigungsmodul 40 die Anwendung nach dem Empfang eines Ereignisses in einer einer Unterbrechung ähnlichen Weise benachrichtigen.
  • In Fig. 4 ist eine Ereigniswarteschlange 48 gezeigt, die einen Warteschlangenkopf 60 und Ereignisse 46 enthält. Während die Struktur der Warteschlange von der spezifischen Implementierung im Computersystem abhängig eine Wahlangelegenheit ist, verwendet die bevorzugte Ausführung der vorliegenden Erfindung eine Verweisliste von FIFO-Warteschlangen.
  • Der Warteschlangenkopf 60 der Warteschlange 48 enthält Elemente, die die Eigenschaften der Warteschlange 48 einschließlich des Namens und der Größe der Warteschlange (Anzahl der Elemente in der Warteschlange) definieren. Der Warteschlangenkopf könnte außerdem eine Prozeß-ID- Variable enthalten, die der Prozeß-ID des Anwenderprogramms entspricht, das die Erzeugung der spezifischen Warteschlange angefordert hatte. Der Warteschlangenkopf könnte außerdem eine Gruppe von Merkern, Zustandsvariablen und Warteschlangenzeigern enthalten. In der bevorzugten Ausführung der vorliegenden Erfindung werden Merker gewartet, um Fehlerbedingungen wie etwa eine übermäßige Warteschlangengröße oder ein Fehlen von Systemspeicherplatz anzugeben. Die Zustandsvariablen können die Art der gewünschten Benachrichtigung des Anwendungsprogramms angeben. Wenn z. B. das Anwendungsprogramm darauf wartet, daß das Benachrichtigungsmodul ein ankommendes Ereignis schickt, so kann eine geeignete Zustandsvariable diesen Umstand angeben.
  • In der bevorzugten Ausführung der vorliegenden Erfindung kann eine Warteschlange als permanente Warteschlange oder als nicht permanente Warteschlange erzeugt werden. Eine permanente Warteschlange ist eine Warteschlange, die, unabhängig vom Zustand des Anwendungsprogramms, das die Warteschlange erzeugt hat, ständig gewartet wird. Umgekehrt ist eine nicht permanente Warteschlange eine Warteschlange, die mit der Beendigung des Anwendungsprogramms, das die Warteschlange erzeugt hatte, gelöscht werden kann.
  • Wie in Fig. 4 gezeigt ist, verwendet die bevorzugte Ausführung der vorliegenden Erfindung eine Verweisliste zum Management mehrerer durch das Benachrichtigungsmodul 40 gewarteten Warteschlangen. Jede Warteschlange 48 würde Informationen enthalten, die auf die nächste durch das Benachrichtigungsmodul 40 gewarteten Warteschlange hinweisen. Wenn eine Warteschlange von dem Benachrichtigungsmodul 40 hinzugefügt oder gelöscht wird, wird die Verweisliste entsprechend aktualisiert. Während die Gestalt der Warteschlange von der spezifischen Implementierung abhängig eine Wahlangelegenheit ist, bietet eine FIFO-Warteschlange den Vorteil, daß sie dem Anwendungsprogramm eine lineare Historie der von den Metaeinrichtungen erzeugten Ereignissen liefert. Jedoch sollte die Maximalgröße der FIFO-Warteschlange so eingerichtet werden, daß verhindert wird, daß die Warteschlange 48 übermäßig viele Systembetriebsmittel belegt. Die Maximalgröße der Warteschlange kann durch die erwartete Anzahl von Ereignissen bestimmt sein, die durch einen katastrophalen Fehler in dem spezifischen Computersystem erzeugt werden. Zum Beispiel können bei einem Computersystem mit einem einzigen RAID-5-Feld 512 Ereignisse die erwartete Anzahl von Ereignissen sein, die durch einen Fehler von zwei oder mehr physischen Laufwerken des Feldes erzeugt werden. Selbstverständlich ist die Anzahl von erwarteten Ereignissen von der Definition der Ereignisse für eine spezifische Metaeinrichtung in dem Computersystem abhängig.
  • Fig. 5 zeigt den gesamten Operationsablauf der bevorzugten Ausführung der vorliegenden Erfindung. Die Operation 70 fordert durch ein Anwendungsprogramm im Computersystem die Erzeugung einer Ereigniswarteschlange an. In Antwort auf die Operation 70 erzeugt die Operation 72 die Warteschlange durch das Benachrichtigungsmodul, während die Operation 74 dem Anwendungsprogramm die erfolgreiche Erzeugung der Warteschlange angibt. In Antwort auf ein von einer Metaeinrichtung oder von einem Programm auf Anwendungsebene erzeugten Ereignis, ordnet die Operation 76 ankommende Ereignisse in der Ereigniswarteschlange an, während die Operation 78 das in der Warteschlange gespeicherte Ereignis zum Anwendungsprogramm schickt. Die Details der Operationen 72-78 sind mit Bezug auf die Fig. 6-8 genauer beschrieben.
  • Fig. 6 zeigt die logischen Operationen zum Erzeugen einer Ereigniswarteschlange in Antwort auf eine Anforderung von einem Anwendungsprogramm. Die Operation 80 bestimmt, ob der von dem Anwendungsprogramm gelieferte Name für die Ereigniswarteschlange bereits vorhanden ist. Wenn der Name vorhanden ist, zeigt die Operation 82 dem Anwendungsprogramm diesen Fehler an, wobei die Warteschlange nicht erzeugt wird. Andernfalls setzt die Operation damit fort, ausreichenden Speicherplatz zuzuweisen, um die Ereigniswarteschlange zu erzeugen. Die minimale Menge an Speicherplatz, der zum Erzeugen der Warteschlange erforderlich ist, ist annähernd gleich der Größe des Warteschlangenkopfes, da die Warteschlange nach der Initialisierung leer ist. Die Operation 86 bestimmt, ob die Zuweisung von Speicherplatz erfolgreich war, wobei die Operation 88 einen Fehler an die Anwendung zurückmeldet, wenn die Zuweisung von Speicherplatz nicht erfolgreich war.
  • Der Warteschlangenkopf wird dann durch die Operation 90 initialisiert. Die Kopfinitialisierungsoperation 90 umfaßt das Schreiben des Warteschlangennamens in den Kopf, wobei die von der Anwendung erhaltene Prozeß-ID in den Kopf kopiert wird und alle Variablen, Merker und Zeiger, die im Warteschlangenkopf gewartet werden, initialisiert werden. Die Operation 92 ordnet dann die Warteschlange in der von dem Benachrichtigungsmodul 40 gewarteten Verweisliste von Warteschlangen an, während die Operation 94 dem Anwendungsprogramm angibt, daß die Ereigniswarteschlange erfolgreich erzeugt worden ist.
  • Fig. 7 zeigt die logischen Operationen des Benachrichtigungsmoduls 40 (Fig. 3) zur Verarbeitung eines ankommenden Ereignisses 46. Wie oben besprochen worden ist, kann ein Ereignis entweder von einer Anwendung wie etwa einem Speichermanager 50 (Fig. 3) oder von einem durch eine Zustandsänderung einer Metaeinrichtung 44 hervorgerufenen Kernereignis (Fig. 3) erzeugt werden.
  • In Fig. 7 bestimmt die Operation 100 in Antwort auf ein ankommendes Ereignis 46, ob irgendeine Ereigniswarteschlange zum Speichern des ankommenden Ereignisses vorhanden ist. Wenn keine Ereigniswarteschlangen erzeugt worden waren, verwirft die Operation 102 dann das Ereignis aufgrund des Fehlens einer Ereigniswarteschlange. Andernfalls bestimmt die Operation 104, ob die Warteschlangengröße ihre vorgegebene maximale Größengrenze überschritten hat.
  • Wenn die Warteschlangengröße ihre vorgegebene Größengrenze überschritten hat, setzt die Operation 106 einen Merker, der eine übermäßige Warteschlangengröße angibt. Da es wünschenswert ist, das jüngste ankommende Ereignis zur Verwendung durch die Anwendung in der Warteschlange anzuordnen, schafft die Operation 108 Platz in der Warte schlange, indem sie das älteste Ereignis in der Warteschlange löscht. Auf diese Weise wird die Warteschlangengröße nicht erweitert, wobei das jüngste Ereignis dennoch durch die weiter unten beschriebene Operation 115 in der Warteschlange gespeichert werden kann.
  • Wenn die Warteschlangengröße nicht übermäßig ist, dann weist die Operation 110 Speicherplatz zu, um das Ereignis in der Warteschlange anzuordnen. Die Operation 110 wird benötigt, da in der bevorzugten Ausführung der Erfindung eine FIFO-Warteschlange verwendet wird, deren Größe aufgrund der Anzahl der in der Warteschlange gespeicherten Ereignisse variiert.
  • Die Operation 112 bestimmt, ob genügend Systemspeicherplatz zur Speicherung dieses Ereignisses in der Warteschlange vorhanden ist. Wenn der Systemspeicherplatz nicht ausreicht, dann setzt die Operation 114 einen Merker, der angibt, daß das Computersystem seine Speicherkapazität erreicht hat, wobei das Ereignis nicht in der Ereigniswarteschlange angeordnet wird.
  • Wenn, wie durch die Operation 112 bestimmt worden ist, der Systemspeicherplatz ausreicht, schreibt die Operation 115 das Ereignis in die Warteschlange zur nachträglichen Weitergabe an das Anwendungsprogramm.
  • Die Operationen 116 und 118 aus Fig. 7 wirken, wie weiter unten erläutert wird, mit den Operationen 146 und 150 aus Fig. 8 zusammen. Die Operation 116 bestimmt, ob eine Anwendung auf ein vom Benachrichtigungsmodul 40 zu empfangendes Ereignis wartet. Wenn eine Anwendung wartet, dann aktiviert die Operation 118 diese Anwendung, damit die Anwendung das jetzt in der Ereigniswarteschlange gespeicherte Ereignis verarbeitet (Fig. 8).
  • Nach Abschluß der in Fig. 7 enthaltenen logischen Operationen zur Verarbeitung eines ankommenden Ereignisses bewirkt die Operation 120 die Ausführung dieser Operationen in der nächsten in der Verweisliste gewarteten Ereigniswarteschlange. Auf diese Weise werden in Abhängigkeit von d. h. der Warteschlangengröße), dem verfügbaren Systemspeicherplatz und davon, ob die Anwendung irgendwelche Ereignisse aus einer spezifischen Ereigniswarteschlange geholt hat, die gleichen Ereignisse in allen in der Verweisliste gewarteten Ereigniswarteschlangen gespeichert.
  • Fig. 8 zeigt die logischen Operationen zur Weitergabe eines Ereignisses vom Benachrichtigungsmodul 40 (Fig. 3) zum Anwendungsprogramm 42 (Fig. 3). Die Operation 130 fordert Ereignisse aus der Ereigniswarteschlange an. In Antwort auf die Operation 130 bestimmt die Operation 132, ob eine Warteschlange vorhanden ist. Wenn keine Ereigniswarteschlange vorhanden ist, meldet die Operation 134 dem Anwendungsprogramm einen entsprechenden Fehler.
  • Wegen der durch die Operationen 106 bzw. 112 (Fig. 7) erfaßten möglichen Fehler einschließlich eines Fehlens von Systemspeicherplatz und einer übermäßigen Warteschlangengröße zeigt in der bevorzugten Ausführung der vorliegenden Erfindung das Benachrichtigungsmodul dem Anwendungsprogramm solche Bedingungen an. Die Operation 136 bestimmt, ob der Merker für nicht ausreichenden Speicherplatz gesetzt ist, während die Operation 140 bestimmt, ob der Merker für eine übermäßige Warteschlangengröße gesetzt ist. Wenn keiner dieser Merker gesetzt ist, dann meldet die Operation 138 dem Anwendungsprogramm, daß dem Benachrichtigungsmodul Ereignisse verloren gegangen sind. Mit anderen Worten, die Ereigniswarteschlangen enthalten keine genaue lineare Historie von Ereignissen der Metaeinrichtungen mehr.
  • Wenn keine Fehlermerker gesetzt worden sind, dann bestimmt die Operation 142, ob es irgendwelche Ereignisse in der Warteschlange gibt, die an das Anwendungsprogramm zu melden sind. Wenn ein Ereignis in der Warteschlange vorhanden ist, dann gibt die Operation 144 das Ereignis an die Anwendung zurück. Wenn mehrere Ereignisse in der Warteschlange vorhanden sind, kann das Anwendungsprogramm mit Hilfe der Operationen aus Fig. 8 jedes einzelne Ereignis aus der Warteschlange holen, bis die Ereigniswarteschlange leer ist.
  • Wenn, wie durch die Operation 142 bestimmt worden ist, keine Ereignisse in Warteschlange vorhanden sind, dann bestimmt die Operation 146, ob die Anwendung auf ein eintretendes Ereignis wartet. Wenn dies der Fall ist, dann ruht die Anwendung bei der Operation 150, bis ein neues Ereignis empfangen worden ist. Wie oben beschrieben worden ist, wecken die Operationen 116 und 118 aus Fig. 7 einen ruhenden Prozeß nach dem Empfang eines neuen ankommenden Ereignisses auf. In Fig. 8 geht die Steuerung, nachdem die Anwendung wieder aktiviert worden ist, an die Operation 142 über, damit das Ereignis durch die Operation 144 an die Anwendung zurückgegeben werden kann. Auf diese Weise werden die Anwendungen ständig vom Eintreten von Ereignissen, die in den Metaeinrichtungen des Computersystems eingetreten sind, benachrichtigt.
  • Wenn keine Anwendungen auf Ereignisse warten und keine Ereignisse in der Ereigniswarteschlange vorhanden sind, dann gibt die Operation 148 dem Anwendungsprogramm an, daß die Ereigniswarteschlange leer ist.
  • Fig. 9A zeigt die Operationen zum Löschen einer spezifischen Ereigniswarteschlange aus dem Computersystem. Die Operation 160 lokalisiert die zu löschende spezifische Warteschlange anhand des Namens. Die Operation 162 löscht die Inhalte der Ereigniswarteschlange, um die durch die in der Warteschlange gespeicherten Ereignisse belegten Speicherplätze freizugeben. Die Operation 164 weckt alle Prozesse, die auf ein eintretendes Ereignis warten.
  • Zuletzt gibt die Operation 166 den Warteschlangenkopf frei, damit die von diesem belegten Speicherplätze wieder verfügbar sind.
  • Die Operationen 160-166 können durch die Anwendung ausgelöst werden, die anfänglich die Erzeugung der spezifischen Ereigniswarteschlange angefordert hatte. Alternativ könnte ein Prozeß zur Überwachung des Vorhandenseins von Anwendungsprogrammen, die spezifische Ereigniswarteschlangen erzeugt hatten, erzeugt werden. Wenn eine gegebene Anwendung beendet worden ist, dann kann die spezifische Ereigniswarteschlange aus dem Computersystem gelöscht werden, wenn die Ereigniswarteschlange als nicht permanente Warteschlange bestimmt worden war.
  • Fig. 9B zeigt diese logischen Operationen. Die Operation 170 prüft eine spezifische Ereigniswarteschlange, um zu bestimmen, ob die Ereigniswarteschlange gelöscht werden kann. Wenn die Ereigniswarteschlange eine nicht permanente Ereigniswarteschlange ist, dann kann die Ereigniswarteschlange, wenn sie nicht mehr verwendet wird, aus dem Computersystem gelöscht werden. Die Operation 172 bestimmt, ob die Anwendung, die die Ereigniswarteschlange erzeugt hatte, noch aktiv ist. Mit Hilfe des im Ereigniswarteschlangenkopf der spezifischen Warteschlange gespeicherten Prozeß-ID-Wertes kann die Operation 172 das Computersystem abfragen, um zu bestimmen, ob diese Prozeß-ID noch aktiv ist. Wenn diese Prozeß-ID nicht mehr aktiv ist, löscht die Operation 174 die Warteschlange, wie in Fig. 9A gezeigt ist.
  • Auf diese Weise können die Operationen 170-174 Ereigniswarteschlangen kontrollieren und entfernen, die nicht mehr von irgendeinem Anwendungsprogramm im Computersystem verwendet werden. Durch das Löschen nicht benötigter Ereigniswarteschlangen werden die Systembetriebsmittel des Computersystems effizient genutzt.
  • Die Erfindung ist in bezug auf das Benachrichtigen von Anwendungsprogrammen bezüglich Ereignissen bzw. Zustandsänderungen in Speichereinrichtungen beschrieben worden. Einem Fachmann wird offenbar, daß die Erfindung ohne weiteres in ein Betriebssystem eingebaut werden kann und auf jedes Element im Computersystem ansprechen kann. Somit kann die Erfindung eine Ereignisbenachrichtigung von Anwendungsprogrammen bezüglich der Zustandsänderungen aller Einrichtungen im Computersystem sowie der Speichereinrichtungen schaffen.

Claims (13)

1. Vorrichtung zum Benachrichtigen eines Anwendungsprogramms (42) bezüglich einer Zustandsänderung in einer Speichereinrichtung (44) in einem Computersystem mit mehreren Speichereinrichtungen, mit einem Benachrichtigungsmodul (40) zum:
Empfangen einer Anforderung (70) zum Erzeugen einer Ereigniswarteschlange (48) vom Anwendungsprogramm;
Erzeugen (72) der Ereignisschlange als Antwort auf die Anforderung, um ein Ereignis (46) zu speichern, das durch die Speichereinrichtung entsprechend der Zustandsänderung der Speichereinrichtung erzeugt wird;
Hinweisen (74) des Anwendungsprogramms darauf, daß die Ereigniswarteschlange erfolgreich erzeugt worden ist;
Empfangen des von der Speichereinrichtung erzeugten Ereignisses und Anordnen (76) des Ereignisses in der Ereigniswarteschlange; und
Schicken (78) des Ereignisses von der Ereigniswarteschlange zum Anwendungsprogramm.
2. Vorrichtung nach Anspruch 1, wobei die Ereigniswarteschlange (48) enthält: einen Warteschlangenkopf (60), der einen die Ereigniswarteschlange identifizierenden Warteschlangennamen, eine Maximalgröße der Warteschlange, eine Gruppe von Warteschlangenmerker sowie eine Prozeßidentifizierung, die das Anwendungsprogramm identifiziert, das die Erzeugung der Ereigniswarteschlange angefordert hat, enthält.
3. Vorrichtung nach Anspruch 1, wobei das Benachrichtigungsmodul (40) von der Anwendung erzeugte Ereignisse, die der Konfiguration der Speichereinrichtungen im Computersystem entsprechen, empfängt.
4. Verfahren zum Benachrichtigen eines Anwendungsprogramms (42) bezüglich einer Zustandsänderung in einer Speichereinrichtung (44) in einem Computersystem mit mehreren Speichereinrichtungen, wobei das Verfahren die folgenden Schritte enthält:
Empfangen einer Anforderung (70) zum Erzeugen einer Ereigniswarteschlange (48) vom Anwendungsprogramm;
Erzeugen (72) der Ereigniswarteschlange als Antwort auf die Anforderung, um ein von der Speichereinrichtung entsprechend der Zustandsänderung der Speichereinrichtung erzeugtes Ereignis (46) zu speichern;
Hinweisen (74) des Anwendungsprogramms darauf, daß die Ereigniswarteschlange erfolgreich erzeugt wurde;
Empfangen des von der Speichereinrichtung erzeugten Ereignisses und Anordnen (76) des Ereignisses in der Ereigniswarteschlange; und
Schicken (78) des Ereignisses von der Ereigniswarteschlange zum Anwendungsprogramm.
5. Verfahren nach Anspruch 4, bei dem der Erzeugungsschritt ferner den folgenden Schritt enthält: Bilden der Ereigniswarteschlange in der Weise, daß sie einen Warteschlangenkopf (60) besitzt, der einen Warteschlangennamen, der die Ereigniswarteschlange identifiziert, eine Maximalgröße der Warteschlange, eine Gruppe von Warteschlangenmerkern sowie einen Prozeßidentifizierer, der das Anwendungsprogramm identifiziert, das die Erzeugung der Ereigniswarteschlange angefordert hat, enthält.
6. Verfahren nach Anspruch 4, bei dem der Anordnungsschritt ferner enthält: Bestimmen (104), ob die Ereigniswarteschlange eine vorgegebene Größengrenze überschritten hat, und wenn ja, Verwerfen (108) des ältesten in der Warteschlange gespeicherten Ereignisses, um Raum zum Speichern des von der Speichereinrichtung erzeugten Ereignisses zu erzeugen.
7. Verfahren nach Anspruch 4, bei dem der Anordnungsschritt ferner enthält: Bestimmen (116), ob das Anwendungsprogramm auf das Ereignis wartet, und wenn ja, Benachrichtigen des Anwendungsprogramms bezüglich des Ereignisses.
8. Verfahren nach Anspruch 4, bei dem der Schritt des Schickens ferner enthält: Bestimmen (136, 140), ob die Ereigniswarteschlange eine vorgegebene Größengrenze überschritten hat, und Berichten (138), daß Informationen verlorengegangen sind, an das Anwendungsprogramm.
9. Computerprogramm-Speichermedium, das durch ein Computersystem lesbar ist und ein Computerprogramm aus Befehlen zum Ausführen eines Computerprozesses zum Benachrichtigen eines Anwendungsprogramms (42) bezüglich einer Zustandsänderung in einer Speichereinrichtung (44) codiert, wobei der Computerprozeß die folgenden Schritte enthält:
Empfangen einer Anforderung (70) zum Erzeugen einer Ereigniswarteschlange (48) vom Anwendungsprogramm;
Erzeugen (72) der Ereigniswarteschlange als Antwort auf die Anforderung, um ein Ereignis (46), das von der Speichereinrichtung erzeugt wird und der Zustandsänderung der Speichervorrichtung entspricht, zu speichern;
Hinweisen (74) des Anwendungsprogramms darauf, daß die Ereigniswarteschlange erfolgreich erzeugt wurde;
Empfangen des von der Speichervorrichtung erzeugten Ereignisses und Anordnen (76) des Ereignisses in der Ereigniswarteschlange; und
Schicken (78) des Ereignisses von der Ereigniswarteschlange zum Anwendungsprogramm.
10. Computerprogramm-Speichermedium nach Anspruch 9, wobei in dem Computerprozeß der Computerprogrammschritt des Erzeugens ferner enthält: Bilden der Ereigniswarteschlange in der Weise, daß sie einen Warteschlangenkopf (60) enthält, der einen Warteschlangennamen, der die Ereigniswarteschlange identifiziert, eine Maximalgröße der Warteschlange, eine Gruppe von Warteschlangenmerkern und einen Prozeßidentifizierer, der das Anwendungsprogramm identifiziert, das die Erzeugung der Ereigniswarteschlange angefordert hat, enthält.
11. Computerprogramm-Speichermedium nach Anspruch 9, wobei in dem Computerprozeß der Computerprogrammschritt des Anordnens ferner enthält: Bestimmen (104), ob die Ereigniswarteschlange eine vorgegebene Größengrenze überschritten hat, und wenn ja, Verwerfen (108) des ältesten in der Warteschlange gespeicherten Ereignisses, um Raum zum Speichern des durch die Speichereinrichtung erzeugten Ereignisses zu erzeugen.
12. Computerprogramm-Speichermedium nach Anspruch 9, wobei in dem Computerprozeß der Computerprogrammschritt des Anordnens ferner enthält: Bestimmen (116), ob das Anwendungsprogramm auf das Ereignis wartet, und wenn ja, Benachrichtigen des Anwendungsprogramms bezüglich des Ereignisses.
13. Computerprogramm-Speichermedium nach Anspruch 9, wobei in dem Computerprozeß der Computerprogrammschritt des Schickens ferner enthält: Bestimmen (136, 140), ob die Ereigniswarteschlange eine vorgegebene Größengrenze überschritten hat, und wenn ja, Berichten (138), daß Informationen verlorengegangen sind, an das Anwendungsprogramm.
DE69700512T 1996-04-15 1997-03-24 Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von Speichergeräten Expired - Fee Related DE69700512T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/632,546 US5961651A (en) 1996-04-15 1996-04-15 Event notification in a computing system having a plurality of storage devices

Publications (2)

Publication Number Publication Date
DE69700512D1 DE69700512D1 (de) 1999-10-21
DE69700512T2 true DE69700512T2 (de) 2000-03-16

Family

ID=24535938

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69700512T Expired - Fee Related DE69700512T2 (de) 1996-04-15 1997-03-24 Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von Speichergeräten

Country Status (4)

Country Link
US (1) US5961651A (de)
EP (1) EP0802477B1 (de)
JP (1) JPH1069438A (de)
DE (1) DE69700512T2 (de)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260610B2 (en) * 1998-02-10 2007-08-21 Gateway Inc. Convergence events notification system
US6146913A (en) * 1998-08-31 2000-11-14 Lucent Technologies Inc. Method for making enhanced performance field effect devices
US6397350B1 (en) * 1999-02-19 2002-05-28 International Business Machines Corporation Method of providing direct data processing access using a queued direct input-output device
US6347341B1 (en) * 1999-02-22 2002-02-12 International Business Machines Corporation Computer program product used for exchange and transfer of data having a siga vector and utilizing a queued direct input-output device
US8281022B1 (en) * 2000-06-30 2012-10-02 Emc Corporation Method and apparatus for implementing high-performance, scaleable data processing and storage systems
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US6505307B1 (en) 2000-09-06 2003-01-07 Unisys Corporation Method and apparatus for ensuring data integrity
JP3909643B2 (ja) * 2000-09-11 2007-04-25 横河電機株式会社 イベント記憶装置及び記憶方法
TW577003B (en) * 2000-09-29 2004-02-21 Manugistics Inc System, network, storage device, and method for supply chain management, including collaboration
US7069309B1 (en) * 2000-10-19 2006-06-27 Cisco Technology, Inc. Apparatus and methods for requesting an event notification over a network
TW541483B (en) 2000-10-27 2003-07-11 Manugistics Inc System and method for ensuring order fulfillment
US8209226B2 (en) 2001-11-15 2012-06-26 Nintendo Of America Inc. Non-serialized electronic product registration system and method of operating same
US7181489B2 (en) * 2002-01-10 2007-02-20 International Business Machines Corporation Method, apparatus, and program for distributing a document object model in a web server cluster
EP1504345B1 (de) * 2002-04-22 2012-06-13 Thomson Licensing Fernbedienungs-tastenmanager
JP4535665B2 (ja) * 2002-05-20 2010-09-01 日本電気株式会社 情報記録装置及びその方法
US6732233B2 (en) * 2002-05-21 2004-05-04 International Business Machines Corporation Hot spare reliability for storage arrays and storage networks
US20030233485A1 (en) * 2002-06-13 2003-12-18 Mircrosoft Corporation Event queue
US20040107179A1 (en) * 2002-08-22 2004-06-03 Mdt, Inc. Method and system for controlling software execution in an event-driven operating system environment
US20040122892A1 (en) * 2002-12-24 2004-06-24 Brittenham Peter J. Method, apparatus, and computer-program product for event service declaration, registration, and notification
US20050097288A1 (en) * 2003-10-30 2005-05-05 Richard Holzmann System and method for monitoring and non-disruptive backup of data in a solid state disk system
JP2005165750A (ja) * 2003-12-03 2005-06-23 Ricoh Co Ltd Webサーバ機能を有する組み込み機器
US7356625B2 (en) * 2004-10-29 2008-04-08 International Business Machines Corporation Moving, resizing, and memory management for producer-consumer queues by consuming and storing any queue entries from an old queue before entries from a new queue
US20060241996A1 (en) * 2005-04-20 2006-10-26 International Business Machines Corporation Method, system and program product for monitoring work items
EP1746503A1 (de) 2005-07-12 2007-01-24 Mitel Networks Corporation Dynamisches Nachrichtskastengröße Konfiguration durch die Selbstmodifizierung basiert auf dem Verhaltenslauf
US7966379B2 (en) * 2006-05-05 2011-06-21 Standard Microsystems Corporation In-band event polling
US7805630B2 (en) * 2006-07-27 2010-09-28 Microsoft Corporation Detection and mitigation of disk failures
US20100275146A1 (en) * 2009-04-24 2010-10-28 Dell Products, Lp System and method for managing devices in an information handling system
US10296916B2 (en) 2009-09-11 2019-05-21 Maridee Joy Maraz System and/or method for handling recalled product purchases and/or return/warranty requests
US8712856B2 (en) 2010-04-12 2014-04-29 Nintendo Of America Inc. Systems and/or methods for determining item serial number structure and intelligence
US20120079063A1 (en) * 2010-09-27 2012-03-29 Research In Motion Limited Method, apparatus and system for providing event notifications across a plurality of computers
US9059898B2 (en) * 2010-12-07 2015-06-16 General Electric Company System and method for tracking configuration changes in enterprise product
US9110739B2 (en) * 2011-06-07 2015-08-18 Microsoft Technology Licensing, Llc Subscribing to multiple resources through a common connection
US9996403B2 (en) 2011-09-30 2018-06-12 Oracle International Corporation System and method for providing message queues for multinode applications in a middleware machine environment
US8799111B2 (en) 2012-05-04 2014-08-05 Nintendo Of America Inc. Systems and/or methods for selling non-inventory items at point-of-sale (POS) locations
US9921890B2 (en) 2014-11-26 2018-03-20 Rockwell Automation Technologies, Inc. Event generation management for an industrial controller
CN116155686B (zh) * 2023-01-30 2024-05-31 浪潮云信息技术股份公司 一种云环境下判定节点故障的方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708668A (en) * 1992-05-06 1998-01-13 International Business Machines Corporation Method and apparatus for operating an array of storage devices
US5341476A (en) * 1992-12-23 1994-08-23 Abbott Laboratories Dynamic data distribution network with sink and source files for particular data types
US5617425A (en) * 1993-05-26 1997-04-01 Seagate Technology, Inc. Disc array having array supporting controllers and interface
US5504858A (en) * 1993-06-29 1996-04-02 Digital Equipment Corporation Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
US5581690A (en) * 1993-06-29 1996-12-03 Digital Equipment Corporation Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system
US5566337A (en) * 1994-05-13 1996-10-15 Apple Computer, Inc. Method and apparatus for distributing events in an operating system
US5497457A (en) * 1994-10-17 1996-03-05 International Business Machines Corporation Redundant arrays of independent libraries of dismountable media with parity logging
EP0738976B1 (de) * 1995-04-19 2002-01-23 Fuji Xerox Co., Ltd. Anzeige nachgewiesenen Ereignisses für Informationbearbeitungssystem

Also Published As

Publication number Publication date
DE69700512D1 (de) 1999-10-21
JPH1069438A (ja) 1998-03-10
EP0802477B1 (de) 1999-09-15
EP0802477A1 (de) 1997-10-22
US5961651A (en) 1999-10-05

Similar Documents

Publication Publication Date Title
DE69700512T2 (de) Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von Speichergeräten
DE69311952T2 (de) Verfahren und System zur inkrementalen Datensicherung
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69528443T2 (de) Betriebsverfahren einer Speicherplattenanordnung
DE69117371T2 (de) Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt
DE102006048115B4 (de) System und Verfahren zum Aufzeichnen von behebbaren Fehlern
DE69937768T2 (de) Externe Speichervorrichtung und Verfahren zur Datensicherung
DE69116065T2 (de) Datenrückgewinnung in massenspeicherdatenbanksystemen
DE69030861T2 (de) Bus-Master-Steuerprotokoll
DE69033476T2 (de) Schutz von Datenredundanz und -rückgewinnung
DE69534616T2 (de) System und Verfahren zum Verarbeiten von E/A-Anfragen über einen Schnittstellenbus zu einer Speicherplattenanordnung
DE69622647T2 (de) Wiederherstellbares Plattensteuersystem mit nichtflüchtigem Speicher
DE60304194T2 (de) Verfahren und vorrichtung zur tolerierung von mehreren abhängigen oder zwei beliebigen fehlern in einer speicherplattenanordnung
DE68924226T2 (de) Dienstwarnsignalfunktion für Eingangs-/Ausgangsgerät.
DE69804099T2 (de) Initialisierung von unterteilten datenobjekten
DE69802833T2 (de) Diagnose redundanter steuerungen, die eine private lun verwenden
DE69629444T2 (de) Datenverarbeitungsgerät und Verfahren zur Ersetzung von ausgefallenen Speichereinheiten
DE69626947T2 (de) Reservekopie-Generierung in einem RAID-Untersystem
DE4341510C2 (de) Vorrichtungen und Verfahren zum Beheben von Fehlern für ein Subsystem mit Verwendung von Magnetbandeinheiten
DE112011100112B4 (de) Pufferspeicher-platte in blitzkopie-kaskade
DE60316783T2 (de) Erkennung von Speichermangel und Feinabschaltung
DE69220553T2 (de) Fehleranzeige in einer Speichergerätsanordnung
DE19607515A1 (de) Ein Computerbetriebsverwaltungssystem für ein Computerbetriebssystem, das dazu in der Lage ist gleichzeitig eine Mehrzahl von Anwendungsprogrammen auszuführen
DE69225566T2 (de) Rechnersystem
DE69913375T2 (de) Anzeige eines fehlers in einem transaktionsverarbeitungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee