DE69700512T2 - Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von Speichergeräten - Google Patents
Ereignisbenachrichtigung in einem Rechnersystem mit einer Mehrzahl von SpeichergerätenInfo
- 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
Links
- 230000008859 change Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 230000009471 action Effects 0.000 abstract description 2
- 238000012423 maintenance Methods 0.000 abstract 1
- 230000008901 benefit Effects 0.000 description 7
- 230000010076 replication Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program 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/126—Program 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1996
- 1996-04-15 US US08/632,546 patent/US5961651A/en not_active Expired - Lifetime
-
1997
- 1997-03-24 DE DE69700512T patent/DE69700512T2/de not_active Expired - Fee Related
- 1997-03-24 EP EP97104952A patent/EP0802477B1/de not_active Expired - Lifetime
- 1997-04-15 JP JP9097551A patent/JPH1069438A/ja active Pending
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 |