DE3688136T2 - Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation. - Google Patents
Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation.Info
- Publication number
- DE3688136T2 DE3688136T2 DE86200577T DE3688136T DE3688136T2 DE 3688136 T2 DE3688136 T2 DE 3688136T2 DE 86200577 T DE86200577 T DE 86200577T DE 3688136 T DE3688136 T DE 3688136T DE 3688136 T2 DE3688136 T2 DE 3688136T2
- Authority
- DE
- Germany
- Prior art keywords
- record
- access memory
- value
- data
- status
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
- Storage Device Security (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
- Die vorliegende Erfindung betrifft allgemein ein Verfahren zum Setzen oder Ändern spezieller Datenteile in einem auf einer Platte gespeicherten Datensatz durch eine atomare Eingabe-/Ausgabeoperation eines Datenverarbeitungssystems, und insbesondere eine neue Kombination aus einem Satzformat und einer Kanalbefehlswortfolge zur Durchführung einer solchen E/A-Operation des Setzens oder Änderns von Daten in einem einzelnen E/A-Zugriff.
- Außerdem stellt die Erfindung ein Verfahren zum bedingten Setzen oder Ändern spezieller Datenteile in einem Datensatz auf der Platte durch eine E/A-Operation in Abhängigkeit von dem Wert dieser oder anderer Datenteile auf der Platte bereit, welche in der gleichen atomaren E/A-Operation geprüft werden, sowie insbesondere ein Satzformat und eine Kanalbefehlswortfolge zur Durchführung einer solchen E/A-Operation des Prüfens und Setzens von Daten in einem einzelnen E/A-Zugriff.
- Die Erfindung betrifft außerdem eine gemeinsam benutzte Platteneinrichtung, bei der diese E/A-Operation des Prüfens und Setzens von Daten zur Vermeidung gleichzeitiger und sich gegenseitig störender Zugriffe von mehreren unabhängigen Computersystemen dient, die Lese- und Schreibzugriffsrechte für dieselben Plattenspeichereinheiten haben.
- Normalerweise sind mindestens zwei Ein-/Ausgabeoperationen eines Datenverarbeitungssystems erforderlich, um spezielle Datenteile in einem auf einer Platte oder einem Direktzugriffsspeicher (DASD) aufgezeichneten Datensatz zu ändern und den Rest des Datensatz es im unveränderten Zustand zu erhalten. Die erste Ein-/Ausgabeoperation dient zur Übertragung des gesamten Datensatzes von der Platte in den Hauptspeicher, woraufhin die Daten im Hauptspeicher unter der Steuerung eines in der CPU ausgeführten Programms geändert werden und der aktualisierte Satz nachfolgend in einer zweiten Eingabe-/Ausgabeoperation auf den Direktzugriffsspeicher zurückgeschrieben wird, wobei die neue Version über den ursprünglichen Datensatz geschrieben wird.
- In manchen Fällen ist es wünschenswert oder gar notwendig, Daten in einem im Direktzugriffsspeicher aufgezeichneten Datensatz unter der Voraussetzung zu setzen oder zu ändern, daß keine anderen Zugriffe während der Aktualisierung erfolgen. Unter solchen Umständen ist das oben genannte Änderungsverfahren der zwei aufeinanderfolgenden Ein-/Ausgabeoperationen nicht verwendbar, da andere störende Zugriffe während der Aktualisierungsphase stattfinden können.
- Ein Beispiel für den obigen Fall ist ein gemeinsam benutztes Plattensystem, bei dem mehrere unabhängige Computersysteme einen oder mehrere Direktzugriffsspeicher gemeinsam benutzen. Bei einem gemeinsam benutzten Plattensystem haben zwei oder mehrere unabhängige Computersysteme potentiellen Zugriff auf denselben Direktzugriffsspeicher. Wenn ein zugreifendes System zwei aufeinanderfolgende Ein-/Ausgabeoperationen zur Aktualisierung kritischer Daten auf dem Direktzugriffsspeicher benötigt, besteht die Gefahr, daß ein anderes zugreifendes System in der Zwischenzeit eine mit der aktuellen Operation im Konflikt stehende Aktualisierung beginnt.
- Eine Lösung dieses Problems bestand bisher in dem Einsatz der sogenannten "Reserve/Release"-Funktion (Reservierung/Freigabe) der DASD-Hardware, bei der der gesamte Direktzugriffsspeicher für alle Zugriffe durch andere Systeme gesperrt wurde, sobald ein Zugriff durch ein zugriffsberechtigtes System erfolgt.
- In einem einzelnen Computersystem, z. B. unter dem IBM Betriebssystem VM, wird bei der Steuerung der DASD-Zugriffe eine DASD-Zugriffsstatussatz im Hauptspeicher fortgeschrieben, der Flags für jede Miniplatte (der einem Benutzer zugewiesene Speicherplatz) enthält, auf die gegenwärtig zugegriffen wird; wenn auf einer Miniplatte ein Flag für einen Schreibzugriff eines Benutzers gesetzt wird, werden weitere Zugriffe anderer Benutzer verhindert oder aufgeschoben.
- Bei einem gemeinsam benutzten Direktzugriffsspeicher haben die zugreifenden Computersysteme jedoch keinen Zugriff auf die Statussätze in dem Hauptspeicher der jeweils anderen Systeme, und daher wird der Zugriffsstatussatz in einem gemeinsam benutzten DASD-System auf dem DASD selbst fortgeschrieben.
- Nach einer Zugriffsanforderung für eine Miniplatte in einem gemeinsam benutzten Direktzugriffsspeicher müssen die entsprechenden Flags in den Statussätzen auf dem DASD geprüft und geändert bzw. gesetzt werden, wenn die Miniplatte verfügbar ist. Wenn diese Änderungsoperation zur Aktualisierung des entsprechenden Flags in zwei oder mehreren E/A-Operationen durchgeführt wird, können andere Systeme in der Zwischenzeit auf den gleichen Statussatz zugreifen und eine widersprüchliche Aktualisierung einleiten.
- Mit der "Reserve/Release"-Funktion werden sich gegenseitig störende Zugriffe vermieden, indem der Direktzugriffsspeicher hardwareseitig dem zugreifenden System in der Aktualisierungsphase dediziert zugeordnet wird, wodurch der gesamte, viele Megabyte an Daten umfassende Direktzugriffsspeicher für den Zugriff durch andere Systeme gesperrt wird, bis die Aktualisierungsphase, einschließlich zweier oder mehrerer E/A- Operationen und der Änderung unter CPU-Steuerung, abgeschlossen ist. Das zugreifende System gibt zuerst einen DEVICE RESERVE-Befehl aus, durch den der Direktzugriffsspeicher hardwareseitig dem zugreifenden System dediziert zugeordnet wird, woraufhin der Statussatz in einer ersten E/A- Operation in den Hauptspeicher eingelesen, geprüft und unter CPU-Steuerung ggf. geändert wird, und in einer zweiten E/A- Operation der Statussatz in den Direktzugriffsspeicher zurückgeschrieben wird, woraufhin ein DEVICE RELEASE-Befehl ausgegeben wird, nach welchem andere Systeme wieder auf den Direktzugriffsspeicher zugreifen können. Sofern die Prüfung beim ersten Versuch nicht erfolgreich beendet wird, können weitere Versuche bis zu einem erfolgreichen Abschluß der Operation unternommen werden, wobei die Einheit jedesmal über einen bestimmten Zeitraum blockiert wird.
- Dieses rigorose Sperren des gesamten Direktzugriffsspeichers ist natürlich mit dem Nachteil verbunden, daß alle Daten auf dem Direktzugriffsspeicher vorübergehend für die Benutzer anderer Systeme während jeder Aktualisierung der Statussatz- Flags nicht verfügbar sind. Dieser Nachteil ist in Anbetracht des weitverbreiteten und weiter zunehmenden Einsatzes von lose miteinander verbundenen Computersystemen in großen Datenverarbeitungseinrichtungen, die durch eine verstärkte Nutzung des gemeinsam benutzten Direktzugriffsspeichers gekennzeichnet sind, umso gravierender.
- Ein anderer Nachteil des bekannten Systems besteht darin, daß die Hardware-Sperre aufrechterhalten wird, wenn das zugreifende System bei einer Aktualisierungsoperation ausfällt, während der DASD für das zugreifende System (mit DEVICE RESERVE) reserviert ist; in-diesem Fall ist ein Eingriff des Benutzers erforderlich, um eine bestehende Einheitenreservierung manuell zurückzusetzen. Bis zu einem solchen Eingriff sind alle Daten auf dem reservierten Direktzugriffsspeicher, auch die Daten, auf die der Zugriff bereits gestattet wurde, für andere Benutzer an anderen Systemen nicht verfügbar.
- Mit der E/A-Operation des Prüfens und Setzens von Daten gemäß der vorliegenden Erfindung können Zugriffs-Flags im DASD in einer atomaren E/A-Zugriffsoperation getestet und aktualisiert werden, wodurch gleichzeitige und sich störende Zugriffe vermieden werden und die Notwendigkeit entfällt, die gesamte Platte während der Prüf- und SET-Operation mit der Reserve/Release-Funktion zu sperren.
- Für sich betrachtet ist eine Prüf- und SET-Anweisung ein bekanntes Werkzeug, mit dem bestimmte Datenbytes im Hauptspeicher bearbeitet werden, um den Byte-Wert in einer bedingten Operation zu verwenden, während das Byte im Hauptspeicher auf einen vorbestimmten Wert gesetzt wird. Bislang waren Prüf- und SET-Operationen in E/A-Operationen eines Datenverarbeitungssystems nicht einfach zu realisieren.
- Der Gegenstand der Erfindung gemäß Anspruch 1 besteht darin, ein Verfahren zur Durchführung einer E/A-Änderungs- und SET- Operation bereitzustellen, welches das Ändern oder das Setzen bestimmter Daten in einem Datensatz eines Direktzugriffsspeichers auf einen vorbestimmten Wert ermöglicht, wobei eine Folge von Kanalbefehlswörtern in einer einzelnen atomaren E/A-Operation eines Datenverarbeitungssystems verwendet wird.
- In einem spezifischen Ausführungsbeispiel dieser Erfindung wird ein Verfahren zur Durchführung einer E/A-Prüf- und SET- Operation bereitgestellt, welches das bedingte Ändern oder Setzen spezieller Daten in einem Datensatz eines Direktzugriffsspeichers auf-einen vorbestimmten Wert in Abhängigkeit von dem Wert derselben oder anderer spezieller Daten auf diesem Direktzugriffsspeicher ermöglicht, wobei eine Kanalbefehlswortfolge in einer atomaren E/A-Operation verwendet wird.
- In einem weiteren Ausführungsbeispiel dieser Erfindung wird ein Verfahren zur Durchführung einer E/A-Prüf- und SET-Operation beschrieben, welches das bedingte Setzen oder Ändern spezieller Daten in einem Datensatz eines Direktzugriffsspeichers auf irgendeinen Wert aus einer Reihe von vorbestimmten Werten in Abhängigkeit von einem oder mehreren Werten dieser oder anderer spezieller Daten auf diesem Direktzugriffsspeicher ermöglicht, wobei eine Kanalbefehlswortfolge in einer atomaren E/A-Operation eines Datenverarbeitungssystems verwendet wird.
- In einem zusätzlichen Ausführungsbeispiel dieser Erfindung wird ein Verfahren zur gemeinsamen Benutzung von Platteneinrichtungen (SDP) auf Miniplattenebene beschrieben, bei dem diese E/A-Prüf- und SET-Operation zum Prüfen und Setzen von Flags in einem Zugriffsstatussatz auf dem Direktzugriffsspeicher unter Verwendung von einer Kanalbefehlswortfolge in einer einzelnen atomaren E/A-Operation verwendet wird, wodurch gleichzeitige und sich gegenseitig störende Zugriffe von zwei oder mehreren unabhängigen Computersystemen, die Zugriff auf dieselben physikalischen Platteneinheiten haben, vermieden werden.
- Gemäß der vorliegenden Erfindung erfolgt das Prüfen, Ändern oder Setzen von speziellen Daten in einem Datensatz im Direktzugriffsspeicher mit Hilfe von einheitlichen Folgen von Standard-Kanalbefehlswörtern, z. B. Seek, Set Sector, Search, Transfer In Channel, Read Data und Write Data, in Kombination mit zusätzlichen, vorbestimmten Datensätzen, die zuvor auf den DASD geschrieben wurden und die Prüfwerte oder die gesetzten Werte enthalten, die von einer solchen Kanalbefehlswortfolge verwendet und bearbeitet werden sollen.
- Gemäß dieser Erfindung ist mindestens ein zusätzlicher Datensatz mit dem gesetzten Wert der zu ändernden Daten im Direktzugriffsspeicher aufgezeichnet, der den zu ändernden Datensatz enthält, während eine adaptierte Kanalbefehlswortfolge bereitgestellt wird, mit der dieser Datensatz in einen Speicherpuffer gelesen wird, mit der der zusätzliche Datensatz mit dem gesetzten Wert in den Speicherpuffer an der Position des zu ändernden Datenteils gelesen wird, und mit der nachfolgend der geänderte Datensatz von dem Hauptspeicher zurück in den Direktzugriffsspeicher übertragen und über den ursprünglichen Datensatz geschrieben wird.
- Außerdem sind gemäß der vorliegenden Erfindung mindestens ein erster zusätzlicher Datensatz mit einem Prüfwert und mindestens ein zweiter zusätzlicher Datensatz mit einem SET-Wert im Direktzugriffsspeicher gespeichert, der den zu verarbeitenden Datensatz enthält, während eine adaptierte Kanalbefehlswortfolge zur Durchführung der folgenden Schritte bereitgestellt wird:
- 1. Kopieren des zu ändernden Datensatzes aus dem Direktzugriffsspeicher in einen Puffer des Hauptspeichers durch ein READ DATA-Kanalbefehlswort;
- 2. Verwenden des aktuellen Wertes eines angegebenen Datenteils des Datensatzes im Hauptspeicher als Suchargument für ein SEARCH KEY-Kanalbefehlswort, um das Vorhandensein des Wertes anhand des vorbestimmten Schlüssels des ersten zusätzlichen Datensatzes im Direktzugriffsspeicher, der den Prüfwert für dessen Schlüsselwert enthält, zu ermitteln;
- 3. Für den Fall, daß der Prüfwert gefunden wird, den zweiten zusätzlichen Datensatz im DASD, der den SET-Wert enthält, in die Kopie des Datensatzes im Hauptspeicher an der angegebenen Position des zu setzenden Datenteils einlesen;
- 4. Neuschreiben des aktualisierten Datensatzes auf den Direktzugriffsspeicher mit einem WRITE DATA-Kanalbefehlswort, und überschreiben des ursprünglichen Datensatzes, wodurch eine atomare E/A-Prüf- und SET-Operation zur Aktualisierung eines im Direktzugriffsspeicher aufgezeichneten Datensatzes durchgeführt wird.
- Gemäß dieser Erfindung kann eine Anzahl von Prüfwerten und SET-Werten in den Direktzugriffsspeicher geschrieben werden, um Daten auf dem DASD selektiv in einen Wert aus einer Anzahl von vorbestimmten Werten in Abhängigkeit von einem oder mehreren aus einer Anzahl von Prüfwerten bedingt zu ändern.
- Fig. 1 zeigt eine Datenverarbeitungsumgebung mit zwei lose miteinander verbundenen Computersystemen, die eine bestimmte Anzahl von Direktzugriffsspeichern (DASD) gemeinsam benutzen.
- Fig. 2 zeigt den allgemeinen Aufbau von Datensätzen auf dem DASD in der Form, in der sie im Ausführungsbeispiel der Erfindung mit gemeinsamer DASD-Benutzung verwendet werden.
- Fig. 3 zeigt einen vereinfachten Aufbau eines Datensatzes im DASD mit einem zusätzlichen Datensatz, der einen SET-Wert enthält, welcher in der Kanalbefehlswortfolge zum Ändern eines Teils dieses Datensatzes verwendet wird.
- Fig. 4 zeigt eine Anordnung von Zugriffsstatussätzen im DASD in Verbindung mit zusätzlichen Datensätzen, die Prüf- und SET-Werte enthalten, welche von einer Kanalbefehlswortfolge zum bedingten Ändern von Flags in diesen Zugriffsstatussätzen in der gemeinsam benutzten Platteneinrichtung gemäß dieser Erfindung verwendet werden.
- Ziel der folgenden Beschreibung eines Ausführungsbeispiels mit gemeinsamer Plattenbenutzung unter dem Betriebssystem VM ist es, das Verfahren dieser Erfindung verständlicher zu machen, mit dem Daten in einem Datensatz eines DASD in einer einzelnen atomaren E/A-Operation geändert werden, doch aus der Beschreibung wird hervorgehen, daß das Verfahren dieser Erfindung auch auf andere Betriebssysteme und beliebige andere Applikationen angewandt werden kann, in denen Daten im DASD durch einen einzelnen E/A-Zugriff gesetzt oder geändert werden müssen.
- Spezielle Ausdrücke, die in Verbindung mit dem IBM Betriebssystem VM benutzt werden, werden in der folgenden Beschreibung in dem für das Verständnis der Erfindung erforderlichen Umfang erläutert. Vollständige Beschreibungen können den folgenden Handbüchern entnommen werden:
- Virtual Machine/System Product General Information (IBM Form GC20-1838)
- Virtual Machine/System Product CP Command Reference for General Users (IBM Form SC19-6211), Abschnitt "LINK command".
- IBM System/370 System Summary: Processors (IBM Form GA22-7001)
- IBM System/370 Principles of Operation (IBM Form GA22-7000)
- Allgemeine Informationen zu Kanalbefehlswörtern sind in dem folgenden Handbuch aufgeführt: IBM System/370 Principles of Operation (IBM Form GA22-7000)
- Ausführliche Informationen zu typischen Kanalbefehlswörtern für DASD, z. B. SEEK, SET SECTOR, SEARCH, TIC, READ DATA, WRITE DATA, in diesem Fall für die Einheit IBM 3880, sind in dem folgenden Handbuch aufgeführt: IBM 3880 Storage Control (IBM Form GA26-1661).
- Spezielle Informationen zum Direktzugriffsspeicher des IBM 3380 können dem folgenden Handbuch entnommen werden: IBM 3380 Direct Access Storage (IBM Form GA26-1664).
- Fig. 1 zeigt den schematischen Aufbau einer Datenverarbeitungseinrichtung, in der zwei Computersysteme (1 und 2) einen DASD (Direktzugriffsspeicher) gemeinsam benutzen; d. h. beide Systeme 1 und 2 besitzen Lese- und Schreibzugriff durch ihre jeweiligen E/A-Kanäle auf die gleichen physikalischen DASD- Einheiten. Bei den Computersystemen 1 und 2 kann es sich um gleiche oder unterschiedliche Arten von Datenverarbeitungssystemen handeln, z. B. IBM System /370 oder System /370 mit XA- Prozessor.
- Wie allgemein bekannt ist, dienen E/A-Kanäle zur Übertragung von Code oder Daten aus dem DASD in den Hauptspeicher oder umgekehrt. Solche Übertragungen sind notwendig, da die CPU nur im Hauptspeicher befindliche(n) Code und Daten bearbeiten kann. Kanaloperationen sind in Relation zu der Verarbeitungsgeschwindigkeit der CPU relativ langsam, und angesichts dessen übernimmt der Kanal die Vorbereitung des DASD für die Übertragung und gibt somit die leistungsstarke CPU für andere Aktivitäten frei. Wenn die E/A-Operation abgeschlossen ist, wird die Verarbeitung der CPU durch ein E/A-Interrupt unterbrochen, woraufhin die CPU die Daten im Hauptspeicher bearbeiten kann.
- In Fig. 1 umfaßt das Computersystem 1 eine zentrale Verarbeitungseinheit CPU1 und einen Hauptspeicher M1. CPU1 bearbeitet im Hauptspeicher M1 befindliche(n) Code und Daten, d. h. zuerst den Code eines im Hauptspeicher befindlichen übergeordneten Steuerprogramms CP1. Im Grunde genommen werden alle weiteren Programme in System 1 letztlich unter der Steuerung des Steuerprogramms CP1 ausgeführt, wie z. B. VM/SP (Virtual Machine/System Product), das die Basis für das bekannte CMS (Conversational Monitor System) bildet.
- System 1 verfügt über eine Anzahl von E/A-Kanälen, von denen nur einer in Fig. 1 als CH1 dargestellt ist. Solche Kanäle sind eigentlich separate Prozessoren, die den Zugriffspfad zu peripheren Einrichtungen - in diesem Fall spezielle DASDs - kontrollieren und den DASD und dessen Steuereinheit für die eigentliche Datenübertragung in den oder aus dem Hauptspeicher M1 vorbereiten.
- Der Kanal CH1 ist mit einer Anzahl von Steuereinheiten verbunden, von denen zwei (CU1 und CU2) in Fig. 1 dargestellt sind. Jede der Steuereinheiten CU1 und CU2 steuert den Betrieb von bis zu 32 Plattenlaufwerken oder DASDs, denen in Fig. 1 die Kennummern 3 und 4 zugeordnet sind. Weitere E/A- Kanäle und Steuereinheiten für den Anschluß zusätzlicher Einheiten - z. B. Terminals und DFV-Steuereinheiten - an das System sind für den Gegenstand der Erfindung nicht relevant und wurden daher in Fig. 1 nicht dargestellt.
- In einem physikalischen DASD können Daten auf einen Plattenstapel, der eine oder mehrere Platten umfassen kann, geschrieben oder von diesem abgerufen werden. Während einer Plattenumdrehung werden Daten in einen zylinderförmigen Teil des Plattenstapels geschrieben, und ein solcher Zylinder des Speichers bildet eine Einheit an Speicherkapazität, die den einzelnen Benutzern jeweils zugewiesen wird. In VM/SP-Systemen werden ein oder mehrere, einem Benutzer zugewiesene Zylinder des Plattenspeichers als Miniplatte bezeichnet.
- Analog zu System 1 besteht das System 2 aus einer CPU2 und einem Hauptspeicher M2, in dem sich das Steuerprogramm CP2 befindet, wobei CH2 einen der E/A-Kanäle von System 2 mit Zugriff auf eine Anzahl von Steuereinheiten darstellt, von denen zwei (CU2 und CU3) in Fig. 1 veranschaulicht sind, die jeweils bis zu 32 DASDs - in Fig. 1 mit den Kennummern 4 und 5 versehen - steuern.
- Als Beispiel für eine gemeinsame Plattenbenutzung ist Kanal CH1 von System 1 mit der Steuereinheit CU2 verbunden, während Kanal CH2 von System 2 mit derselben Steuereinheit CU2 verbunden ist. Auf diese Weise werden bis zu 32 - von CU2 gesteuerte - Plattenlaufwerke von den Systemen 1 und 2 gemeinsam benutzt. Obgleich nicht in Fig. 1 gezeigt, kann CU1 auch mit CH2 oder mit einem anderen Kanal von System 2 verbunden werden, ebenso kann CU3 auch mit CH1 oder mit einem anderen Kanal von System 1 verbunden werden. Sofern gewünscht, können Computersystem 1 und Computersystem 2 auch alle verfügbaren DASD-Einheiten gemeinsam benutzen.
- Wie oben beschrieben wurde, reicht es in einer gemeinsam benutzten DASD-Einrichtung, in der mehrere lose miteinander verbundene Systeme Zugriff auf denselben physikalischen DASD haben, nicht aus, wenn diese einzelnen Systeme bestehende Zugriffe auf den DASD in ihrem Hauptspeicher verfolgen. Solche Systeme müssen die Möglichkeit haben, sich den Status der Zugriffe untereinander mitzuteilen, und eine Möglichkeit dafür besteht darin, die Statusinformation (auch als Flags bezeichnet) auf dem DASD selbst zu speichern.
- In jedem Computersystem verfolgt das Steuerprogramm (Bestandteil von VM/SP) die Miniplattenzuweisung für all seine Benutzer sowie den Status der aktuellen Lese- und Schreibzugriffe dieser Benutzer auf jede Miniplatte, wobei die Miniplatten durch die Datenträger-Seriennummer des DASD, den Startzylinder der Miniplatte und der Anzahl der dieser Miniplatte zugeordneten Zylinder eindeutig gekennzeichnet sind. Jedes System nimmt diese Kennzeichnung im Hauptspeicher vor. SDF (die gemeinsam benutzte Platteneinrichtung) ist ein Zusatz zum Steuerprogramm und dient dazu, diesen Zugriffsstatus auch auf dem DASD zu speichern und den Status der anderen Systeme laut dem auf dem DASD aufgezeichneten Zustand zu überprüfen. Genau diesem Zweck dient das Verfahren dieser Erfindung.
- Gemäß der Erfindung werden die Statussätze für jedes System zusammen mit zusätzlichen Flag-Sätzen, die als Prototypen dienen, im DASD als Steuersätze auf einer bestimmten Spur gespeichert. Das Format dieser Sätze richtet sich danach, welche Art von Statusinformation aufgezeichnet und überprüft werden muß. In dem bevorzugten Ausführungsbeispiel der gemeinsam benutzten Platteneinrichtung (SDF) verfolgt das System sowohl Lese- als auch Schreibzugriffe auf jede Miniplatte separat von jedem zugreifenden Computersystem.
- Fig. 2 zeigt das allgemeine Format der SDF-Steuerinformation, die auf Zylinder 0 jedes gemeinsam zu benutzenden DASD gespeichert ist. Fig. 2 zeigt das Format für eine Situation, in der zwei oder mehr, genereöll VM-Systeme diesen DASD gemeinsam benutzen.
- Jeder Satz auf dem DASD besteht aus einem Zählfeld, einem Schlüsselfeld und einem Datenfeld, wobei in Fig. 2 nur die Schlüssel- und Datenfelder gezeigt sind.
- Satz 1 ist der Statussatz für System 1. Er besitzt einen 1 Byte umfassenden Schlüssel von hexadezimal 01, der in einer Kanalbefehlswortfolge zur Lokalisierung des Satzes verwendet wird. Der Datenteil des Satzes enthält eine Flag-Byte-Position für jeden Zylinder auf dem DASD (in diesem Fall 885 Byte-Positionen bei einer Einheit IBM 3380). Diese Flag-Bytes stellen jeweils den Zugriffsstatus für die zugehörige Miniplatte auf System 1 dar. In diesem Beispiel bedeutet ein Flag-Byte von hexadezimal:
- F0 : System 1 besitzt Lesezugriff (READ) für die Miniplatte,
- F1 : System 1 hat keinen Zugriff (NO) auf die Miniplatte,
- F2 : System 1 hat Schreibzugriff (WRITE) auf die Miniplatte.
- Der Statussatz 1 in Fig. 2 gibt an, daß auf Miniplatte 2 ein aktueller Schreibzugriff von System 1 vorhanden ist.
- Satz 2 ist der Statussatz für System 2. Er besitzt einen Schlüssel von hexadezimal 02, der in einer Kanalbefehlswortfolge zur Lokalisierung des Satzes verwendet wird. Das Format des Datenteils dieses Satzes stimmt exakt mit dem für Satz 1 überein. In diesem Fall stellt jedoch jedes Flag-Byte den Zugriffsstatus für die entsprechende Miniplatte über System 2 dar.
- Für jedes zugreifende System wird ein Statussatz auf dem DASD aufgezeichnet. Bei n (≥ 2) zugreifenden Systemen sind n Statussätze in der Steuerspur 0 vorhanden. Die Sätze 3 bis n sind nicht in Fig. 2 dargestellt.
- Der Satz n+1 ist ein Prüfsteuersatz, mit dem der Wert des Flags einer Miniplatte in einem Statussatz geprüft wird. Der Satz n+1 enthält einen Schlüssel von hexadezimal F1, der in der Prüfung mit dem Kanalbefehlswort SEARCH KEY EQUAL wie nachstehend beschrieben herangezogen wird. Der Datenteil des Satzes n+1 ist nicht relevant, doch jeder DASD-Satz muß mindestens ein Datenbyte enthalten, da ein Schlüssel in einem Satz allein nicht existieren kann.
- Satz n+2 (nicht gezeigt) ist ein Prüfsteuersatz, der mit dem Satz n+1 identisch ist und dazu dient, den Wert des Flags in dem nächsten Statussatz zu prüfen, wie im folgenden ausführlich erläutert wird. Ein zugreifendes System braucht nicht sein eigenes Flag zu prüfen, und daher werden n-1 identische Prüfsteuersätze für n zugreifende Systeme bereitgestellt.
- Die Sätze 2n bis 2n+2 enthalten verschiedene SET-Werte als Prototypen für die Flag-Bytes in den Statussätzen 1 und 2.
- Der Satz 2n ist das Flag für den Lesezugriff (READ). Er besitzt einen Schlüssel von hexadezimal D0, der in einer Kanalbefehlswortfolge zur Lokalisierung des Satzes verwendet wird. Der Datenteil (hexadezimal F0) des Satzes enthält das Flag- Byte, das den Zugriffsstatus READ angibt.
- Der Satz 2n+1 ist das Flag für Nicht-Zugriff (NO) und gibt an, daß kein Zugriff auf die Miniplatte besteht. Er verfügt über einen Schlüssel von hexadezimal D1, der in einer Kanalbefehlswortfolge zur Lokalisierung des Satzes verwendet wird. Im Datenteil (hexadezimal F1) des Satzes befindet sich das Flag-Byte, das den Zugriffsstatus NO angibt.
- Der Satz 2n+2 ist das Flag für den Schreibzugriff (WRITE). Er besitzt einen Schlüssel von hexadezimal D2, der in einer Kanalbefehlswortfolge zur Lokalisierung des Satzes verwendet wird. Im Datenteil (hexadezimal F2) des Satzes befindet sich das Flag-Byte, das den Zugriffsstatus WRITE angibt.
- In diesem Zusammenhang ist anzumerken, daß die oben für die Flag-Sätze 2n bis 2n+2 genannten Schlüsselwerte unmaßgeblich sind und andere Werte den gleichen Zweck erfüllen, sofern sie eindeutig und niedriger als die drei verwendeten Werte für die Flags sind. Darüber hinaus ist die Reihenfolge der Flag- Sätze unmaßgeblich, vorausgesetzt, daß sie auf die Prüfsteuersätze n+1 bis 2n-1 folgen.
- Das nicht bedingte Ändern oder Setzen eines Datensatzteils in einer einzelnen E/A-Operation veranschaulicht das Verfahren dieser Erfindung in seiner elementarsten Form. Die Operation wird in der gemeinsam benutzten Platteneinrichtung zum Zurücksetzen eines Schreib- oder Lese-Flags in den Zugriffsstatus NO (kein Zugriff) (oder, sofern gewünscht, zum Zurücksetzen eines Schreibstatus in einen Lesestatus) verwendet.
- Fig. 3 zeigt das grundlegende Satzformat auf dem Direktzugriffsspeicher zur Durchführung der E/A-Änderungsoperation. Satz 1 kann dem Satz 1 von System 1 in Fig. 2 entsprechen und einen Schlüssel von hexadezimal 01 und einen Datenteil mit Flags von hexadezimal F1, F1 und F2 für Miniplatte 0, 1 und 2 usw. besitzen. In Fig. 3 enthält der zusätzliche Satz 2 auf dem DASD den gesetzten Wert für das Zugriffs-Flag NO und besitzt einen Schlüssel von hexadezimal D1 und einen Datenteil von hexadezimal F1.
- In der folgenden Befehlswortliste A ist die Kanalbefehlswortfolge aufgeführt, die gemäß der Erfindung zum Zurücksetzen des Flag-Bytes F2 für Zylinder 2 (Miniplatte 2) verwendet wird, indem es das Flag-Byte F2 durch F1 von Satz 2 in einer einzelnen E/A-Operation ersetzt. In der SDF-Umgebung würde diese Operation von System 1 ausgeführt werden, wenn ein Zugriff auf eine Miniplatte beendet ist und keine weiteren Zugriffe auf die Miniplatte auf System 1 vorhanden sind.
- SEEK Zylinder 0, Spur 1
- SET SECTOR 0
- SEARCH KEY EQ Schlüssel 01 (Statussatz System 1)
- TIC *-8
- READ DATA Statussatz 1 (F1, F1, F2, . . . kopiert in Hauptspeicher)
- SEARCH KEY EQ Schlüssel D1 (Zugriffs-Flag NO)
- TIC *-8
- READ DATA Satz 2 (Flag F1) in Kopie von Statussatz 1 von System 1 bei Offset 2 (bereitet den Aktualisierungsstatus vor)
- SET SECTOR 0
- SEARCH KEY EQ Schlüssel 01 (Statussatz System 1)
- TIC *-8
- WRITE DATA Aktualisierung v. Statussatz auf System 1
- Diese Folge von Standard-Kanalbefehlswörtern wird wie nachstehend beschrieben ausgeführt:
- 1. Der Befehl SEEK wird zur Positionierung des READ/WRITE-Mechanismus des DASD auf den richtigen Zylinder und die richtige Spur verwendet. In diesem Fall sind dies Zylinder 0 und Spur 1.
- 2. Der Befehl SET SECTOR ist für die Erfindung zwar nicht weiter relevant, dient jedoch zur Freigabe von Teilen der E/A-Hardware (Kanal und Steuereinheit) während der Umdrehungen des Plattenlaufwerks (in diesem Beispiel ein IBM 3380), bis sich der READ/WRITE-Mechanismus am Anfang der Spur befindet.
- 3. Der Befehl SEARCH KEY EQUAL wird zur Lokalisierung des Statussatzes des ausgebenden Systems verwendet, d. h. in diesem Fall das Steuerprogramm VM/SP auf System 1.
- 4. Der Befehl TIC (Transfer In Channel) stellt sicher, daß der zuvor ausgeführte Befehl SEARCH KEY EQUAL wiederholt wird, bis eine der beiden folgenden Bedingungen erfüllt ist:
- a) Der Satz wird auf der Spur gefunden. In diesem Fall überspringt die E/A-Hardware den TIC-Befehl und fährt mit dem Kanalbefehlswort nach dem TIC-Befehl fort (in diesem Fall mit einem READ DATA-Befehl).
- b) Der Satz wird auf der Spur nirgends gefunden. In diesem Fall stoppt die E/A-Hardware die Ausführung der Kanalbefehlswortfolge und unterbricht die CPU mit einer Fehlerbedingung, die darauf hinweist, daß der Satz nicht gefunden wurde.
- An dieser Stelle wird der Statussatz von System 1, d. h. Satz 1 in Fig. 3, angetroffen.
- 5. Der Befehl READ DATA liest den Statussatz, der von dem zuvor ausgeführten Befehl SEARCH KEY EQUAL lokalisiert wurde, d. h. in diesem Fall den Statussatz des ausgebenden Systems 1. Nach Ausführung dieses Kanalbefehlswortes befindet sich eine Kopie des Statussatzes von System 1 in dem Hauptspeicher von System 1.
- 6. Der nächste Befehl SEARCH KEY EQUAL dient zur Lokalisierung des Zugriffs-Flags NO, welches einen Schlüssel von hexadezimal D1 besitzt (in Fig. 3 dargestellt als Satz 2).
- 7. Der nächste TIC-Befehl stellt sicher, daß der zuvor ausgeführte Befehl SEARCN KEY EQUAL wiederholt wird, bis entweder der gesuchte Satz gefunden oder die Suche erfolglos beendet wird (wie in Punkt 4. weiter oben erläutert).
- 8. Der nächste Befehl READ DATA wird zum Einlesen des Zugriffs-Flags NO in den Hauptspeicher von System 1 verwendet. Die Speicherposition, an der das 1-Byte-Flag gespeichert werden soll, ist in dem Kanalbefehlswort angegeben, und in diesem Fall befindet sich diese Position bei Offset 2 (d. h. dem dritten Byte) in dem Statussatz, der mit dem vorherigen READ DATA-Befehl in den Hauptspeicher eingelesen wurde. Diese Position im Statussatz stellt den Zugriffsstatus von System 1 in bezug auf die Miniplatte dar, die auf Zylinder 2 dieses DASD beginnt.
- 9. Der nächste Befehl SET SECTOR ist für die Erfindung unmaßgeblich, dient aber zur Freigabe einiger Komponenten der E/A- Hardware (wie in Punkt 2. weiter oben erläutert).
- 10. Der nächste Befehl SEARCH KEY EQUAL dient wieder zur Lokalisierung des Statussatzes für System 1.
- 11. Der nächste TIC-Befehl stellt sicher, daß der Statussatz gefunden wird.
- 12. Mit dem nächsten Befehl WRITE DATA wird nun ein aktualisierter Statussatz für System 1 zurückgeschrieben.
- Durch die Verwendung des zusätzlichen Satzes 2 in Kombination mit dieser Kanalbefehlswortfolge wurde das Flag in Offset 2 von Satz 1 zurückgesetzt, wofür normalerweise zwei E/A-Zugriffe erforderlich gewesen wären.
- Die folgende Befehlswortliste B zeigt die Kanalbefehlswortfolge, die gemäß der vorliegenden Erfindung zur Überprüfung und - abhängig von dem Ergebnis dieser Überprüfung - zur Änderung eines Datensatzes oder Teilen davon (ein Flag-Byte in diesem Fall) in einer einzelnen atomaren E/A-Operation verwendet wird. In der gemeinsam benutzten Platteneinrichtung unter dem VM-System muß diese Aktion ausgeführt werden, wenn der Zugriff auf eine Miniplatte über den LINK-Befehl (ein VM/SP-Befehl) angefordert wird. Einer solchen Zugriffsanforderung kann nur entsprochen- werden, wenn dies nicht durch den Zugriffsstatus von anderen Benutzern auf einem beliebigen der anderen zugreifenden Systeme verhindert wird. Somit muß das Flag-Byte auf den Zugriffswert von READ oder WRITE gesetzt werden, was jedoch nur möglich ist, wenn kein damit im Konflikt stehender READ- oder WRITE-Zugriff auf irgendeinem der zugreifenden Systeme vorhanden ist.
- In diesem Beispiel wird angenommen, daß zwei zugreifende Systeme, System 1 und System 2, vorhanden sind und System 1 auf Miniplatte 2 zugreifen will.
- Fig. 4 zeigt das Format der Sätze in der SDF-Steuerspur. Satz 1 stellt wieder den Statussatz von System 1 dar, doch jetzt wird angenommen, daß das Zugriffsflag NO in der Flag-Position 2 (wie in Fig. 4 gezeigt) gesetzt ist.
- Ebenso wurde Satz 2, der den Statussatz von System 2 darstellt, bewußt durch das Zugriffs-Flag NO in allen Byte-Positionen gekennzeichnet.
- Satz 3 ist der Prüfsteuersatz, mit dem der Wert eines Flags geprüft wird. Wie zuvor hat dieser Satz einen Schlüssel von hexadezimal F1, der für die Prüfung herangezogen wird, wobei der Datenteil auch hier irrelevant ist. Nur ein Prüfsteuersatz ist für zwei zugreifende Systeme 1 und 2 erforderlich.
- Die Datensätze 4, 5 und 6 enthalten wie zuvor die verschiedenen SET-Werte für die Flags READ, NO und WRITE.
- SEEK Zylinder 0, Spur 1
- SET SECTOR 0
- SEARCH KEY EQ Schlüssel 01 (Statussatz System 1)
- TIC *-8
- READ DATA Statussatz System 1 (F1, F1, F1, . . . in Hauptspeicher)
- SEARCH KEY EQ Schlüssel 02 (Statussatz System 2)
- TIC *-8
- READ DATA Statussatz System 2 (F1, F1, . . . in Hauptspeicher)
- SEARCH KEY
- EQ oder HI Argument Offset 2 (entnimmt Argument aus Kopie von Datensatz 2)
- TIC *-8 (Verarbeitung wird beendet, wenn SKEH erfolglos ist)
- SEARCH KEY EQ Schlüssel D2 (Zugriffs-Flag WRITE)
- TIC *-8
- READ DATA Satz 6 (Flag F2) in Kopie des Statussatzes 1 von System 1 bei Offset 2 (bereitet den Aktualisierungsstatus vor)
- SET SECTOR 0
- SEARCH KEY EQ Schlüssel 01 (Statussatz System 1)
- TIC *-8
- WRITE DATA Aktualisierung v. Statussatz auf System 1
- Das Beispiel zeigt die Verwendung der Kanalbefehlswortfolge, wenn LINK M von System 1 für eine auf Zylinder 2 beginnende Miniplatte angefordert wird. LINK M gestattet gemäß den VM/SP-Regeln einen WRITE-Zugriff auf eine Miniplatte, jedoch nur, wenn keine anderen WRITE-Zugriffe vorhanden sind. Andere READ-Zugriffe haben keinen Einfluß darauf, ob der Link-Anforderung entsprochen wird. Die Steuerspur muß wie in Fig. 2 oder 4 gezeigt formatiert sein. Mit der Kanalbefehlswortfolge werden im einzelnen folgende Schritte ausgeführt:
- 1. Der Befehl SEEK wird zur Positionierung des READ/WRITE-Mechanismus des Direktzugriffsspeicher auf den richtigen Zylinder und auf die richtige Spur verwendet. In diesem Fall ist dies Zylinder 0 und Spur 1.
- 2. Der Befehl SET SECTOR ist für die Erfindung nicht weiter relevant, dient jedoch zur Freigabe von Teilen der E/A-Hardware (Kanal und Steuereinheit), während das Plattenlaufwerk (in diesem Beispiel IBM 3380) Umdrehungen ausführt, bis sich der READ/WRITE-Mechanismus am Anfang der Spur befindet.
- 3. Der Befehl SEARCH KEY EQUAL wird zur Lokalisierung des ersten Statussatzes verwendet, d. h. in diesem Fall den Statussatz von System 1.
- 4. Der Befehl TIC (Transfer In Channel) stellt sicher, daß der zuvor ausgeführte Befehl SEARCH KEY EQUAL wiederholt wird, bis entweder der Datensatz gefunden oder die Suche erfolglos beendet wird (wie zuvor erläutert).
- 5. Der Befehl READ DATA liest den Statussatz, der mit dem zuvor ausgeführten Befehl SEARCH KEY EQUAL lokalisiert wurde, d. h. in diesem Fall den Statussatz von System 1. Nach Ausführung dieses Kanalbefehlswortes befindet sich eine Kopie des Statussatzes von System 1 im Hauptspeicher von System 1.
- 6. Die nächsten Befehle SEARCH KEY EQUAL und TIC dienen zur Lokalisierung des zweiten Statussatzes, in diesem Fall den Statussatz von System 2. Auch hier können zwei Bedingungen auftreten (gefunden oder nicht gefunden), doch in diesem Fall wird der Datensatz gefunden.
- 7. Der nächste Befehl READ DATA dient zum Lesen des Statussatzes, der mit dem zuvor ausgeführten Befehl SEARCH KEY EQUAL lokalisiert wurde, in diesem Fall den Statussatz von System 2. Nach Ausführung dieses Kanalbefehlswortes befindet sich eine Kopie des Statussatzes von System 2 im Hauptspeicher von System 1.
- 8. Der nächste Befehl SEARCH KEY EQUAL OR HIGH wird verwendet, um den Status des Flag-Bytes von System 2 für die Miniplatte zu überprüfen, die an Zylinder 2 dieser DASD beginnt. Als Argument für den Befehl SEARCH KEY EQUAL OR HIGH wird das Flag-Byte verwendet, das die an Zylinder 2 beginnende Miniplatte (3. Byte) in dem Statussatz von System 2 (der sich jetzt vorübergehend in dem Hauptspeicher von System 1 befindet) darstellt. In diesem Beispiel kann dieses Flag-Byte einen von drei möglichen Hexadezimalwerten haben:
- F0 bedeutet: System 2 hat Lesezugriff (READ) auf diese Miniplatte
- F1 bedeutet: System 2 hat keinen Zugriff (NO) auf diese Miniplatte
- F2 bedeutet: System 2 hat Schreibzugriff (WRITE) auf diese Miniplatte.
- 9. Der nächste TIC-Befehl stellt sicher, daß der zuvor ausgeführte Befehl SEARCH KEY EQUAL OR HIGH wiederholt wird, bis eine von zwei Bedingungen auftritt:
- a) Ein Datensatz, nämlich der Prüfsteuersatz 3, wird auf der Spur gefunden. Mit anderen Worten, ein Schlüssel mit einem Wert gleich oder größer als der in dem Befehl SEARCH KEY EQUAL OR HIGH angegebene Wert (Flag-Byte bei Offset 2 im Statussatz von System 2) wurde gefunden. Dies bedeutet, daß System 2 ein Flag-Byte mit dem Wert F0 oder F1 hat, welches angibt, daß keine Schreibzugriffe (WRITE) vorhanden sind. In diesem Fall überspringt die E/A-Hardware den TIC-Befehl und fährt mit dem Kanalbefehlswort nach dem TIC-Befehl fort.
- b. Der Satz wird nirgends auf der Spur gefunden. In diesem Fall bedeutet dies, daß System 2 ein Flag-Byte mit dem Hex- Wert F2 besitzt, welches einen bestehenden Schreibzugriff (WRITE) angibt. In diesem Fall stoppt die E/A-Hardware die Ausführung der Kanalbefehlswortfolge und unterbricht die CPU mit einer Fehlerbedingung, die angibt, daß der gesuchte Satz nicht gefunden werden konnte.
- In dem hier gezeigten Beispiel enthält das anfängliche Status-Flag von System 2 den Wert F1 (Zugriffsstatus NO), und somit wurde der Satz gefunden.
- Für den Fall, daß der Zugriff nur gestattet werden soll, wenn keine anderen Zugriffe auf irgendeinem anderen System vorhanden sind, muß der Befehl SEARCH KEY EQUAL OR HIGH durch SEARCH KEY EQUAL ersetzt werden, damit die Ausführung von SEARCH KEY ebenfalls mit einer Fehlermeldung beendet wird, wenn das Flag-Byte auf dem/den anderen System/en einen Wert von F0 (Zugriffsstatus READ) besitzt. Dies ist der Fall, wenn z. B. LINK W von einem Benutzer angefordert wurde.
- Es wird darauf hingewiesen, daß der folgende Teil der Kanalbefehlswortfolge (zur Durchführung einer Änderung in dem Statussatz des ausgebenden Systems, in diesem Fall System 1) nur ausgeführt wird, wenn die Prüfung im vorherigen Teil der Kanalbefehlswortfolge erfolgreich war.
- 10. Die folgenden SEARCH KEY EQUAL und TIC-Befehle werden zur Lokalisierung des WRITE-Flags verwendet, das einen Hexadezimalschlüssel von D2 hat. In diesem Fall wird der Satz 6 in Fig. 4 gefunden.
- 11. Mit dem nächsten Befehl READ DATA wird das Zugriffs-Flag WRITE in den Hauptspeicher von System 1 eingelesen. Die Speicherposition, an der das 1-Byte-Flag gespeichert werden soll, ist in dem Kanalbefehlswort angegeben; in diesem Fall befindet sich diese Position bei Offset 2 (3. Byte) in dem Statussatz des ausgebenden Systems (in diesem Fall System 1), das mit einem vorherigen READ-Befehl in den Hauptspeicher eingelesen wurde. Diese Position in dem Statussatz stellt den Zugriffsstatus von System 1 in bezug auf die an Zylinder 2 dieser DASD beginnende Miniplatte dar.
- 12. Der nächste Befehl SET SECTOR is für die Erfindung nicht weiter relevant, er dient jedoch (wie zuvor) zur Freigabe von Komponenten der E/A-Hardware (Kanal und Steuereinheit).
- 13. Mit dem nächsten Befehl SEARCH KEY EQUAL wird wieder der Statussatz für das ausgebende System (System 1 in diesem Fall) lokalisiert.
- 14. Der nächste TIC-Befehl stellt sicher, daß der Statussatz gefunden wird.
- 15. Mit dem nächsten Befehl WRITE DATA wird jetzt ein aktualisierter Statussatz für das ausgebende System, in diesem Fall System 1, zurückgeschrieben.
- Mit der obigen Kanalbefehlswortfolge in Kombination mit den zusätzlichen Prüf- und SET-Datensätzen auf dem DASD wurde das Flag F1 bei Offset 2 von Statussatz 1 auf F2 in einer einzelnen atomaren E/A-Operation mit der Gewährleistung gesetzt, daß keine anderen gleichzeitigen und sich gegenseitig störenden Zugriffe auftreten.
- In gleicher Weise verwendet System 2 eine ähnliche Kanalbefehlswortfolge, um einen Teil seines Statussatzes 2 in einer E/A-Operation beim Prüfen des relevanten Flags in dem Statussatz 1 von System 1 zu ändern.
- Bei n zugreifenden Systemen, wobei n größer als zwei ist, werden Statussätze für alle n Systeme auf jedem gemeinsam benutzten DASD aufgezeichnet. Nach einer Zugriffsanforderung von einem Benutzer eines Systems für eine spezielle Miniplatte auf einem gemeinsam benutzten DASD liest dieses System alle n Statussätze in den Hauptspeicher ein und prüft die Statussätze aller anderen zugreifenden Systeme auf das Vorhandensein eines Zugriffs-Flags an der relevanten Position auf der Miniplatte in der oben beschriebenen Weise. Wenn die Miniplatte verfügbar ist, setzt das zugreifende System ein Zugriffs-Flag an der relevanten Position auf der Miniplatte von seinem eigenen Statussatz.
- Dies impliziert, daß die Prüfoperation in der Kanalbefehlswortfolge für n-1 Systeme wiederholt wird, und es sollten vorzugsweise n-1 zusätzliche Prüfsätze in jeder DASD-Steuerspur aufgezeichnet werden, um eine schnelle Durchführung der Suchoperation für alle Systeme während einer Plattenumdrehung zu ermöglichen.
- In den Beispielen wurde nur eine gemeinsam benutzte Plattensteuereinheit zur Verdeutlichung des Sachverhalts beschrieben, doch aus den Erläuterungen dürfte klar hervorgehen, daß das Verfahren der Erfindung eine gemeinsame Benutzung aller DASDs ermöglicht, während der Anzahl von zugreifenden Systemen allein aufgrund praktischer Aspekte Grenzen gesetzt sind.
- Für den Fall, daß eines der zugreifenden Systeme ausfällt, bleiben die gemeinsam benutzten DASDs für andere Systeme zugänglich, sofern die Miniplatten nicht von dem ausfallenden System gesperrt wurden. Darüber hinaus können diese Flags des aus fallenden Systems mit nur einem Befehl zurückgesetzt werden.
- Der Aufbau der Kanalbefehlswörter, die in Kombination mit zusätzlichen Prüf- und SET-Datensätzen auf dem DASD verwendet wurden, wurde für das Prüfen und Setzen von Flag-Bytes in einem gemeinsam benutzten Plattensystem unter dem Betriebssystem VM erklärt, doch das Verfahren dieser Erfindung ist keineswegs auf diese Anwendung oder auf dieses Betriebssystem beschränkt.
Claims (1)
1. Verfahren zur Änderung eines Teils eines
Datensatzes, der auf einem Direktzugriffsspeicher
gespeichert ist, durch eine einzige generelle
Eingabe/Ausgabe-Operation eines
Datenverarbeitungssystems
dadurch gekennzeichnet daß,
der Direktzugriffsspeicher wenigstens einen, als
SET-Satz bezeichneten Datensatz enthält, der in
seinem Datenfeld den Wert oder die Werte enthält, in
welche(n) besagter Teil des Datensatzes verändert
werden kann,
ein Kanalbefehlswort vorgesehen ist, das das System
zum
Lesen einer Kopie des Datensatzes vom
Direktzugriffsspeicher in den Hauptspeicher steuert,
darauf ein ausgewählter SET-Satz auf dem
Direktzugriffsspeicher in die Kopie des Datensatzes im
Hauptspeicher an einer ausgewählten Stelle des
besagten Teiles geändert wird, und
die geänderte Kopie des Datensatzes über den
ursprünglichen Datensatz im Direktzugriffsspeicher
geschrieben wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß zur bedingten Änderung eines Teiles des im
Direktzugriffsspeicher gespeicherten Datensatzes in
Abhängigkeit von dem Wert besagten Teiles des
Datensatzes,
der Direktzugriffsspeicher wenigstens eine
zusätzliche, als Prüfsatz bezeichnete, Aufzeichnung
enthält, die in ihrem Schlüsselfeld den Prüfwert mit
dem besagten Teil des Datensatzes enthält, mit
welchem besagter Teil des Datensatzes zu prüfen ist,
und wenigstens ein zusätzlicher SET-Satz vorgesehen
ist, der in seinem Datenfeld einen Wert oder Werte
enthält, in welche(n) besagter Teil des Datensatzes
zu verändern ist,
ein Kanalbefehlswort zum Lesen einer Kopie des
Datensatzes vom Direktzugriffsspeicher in den
Hauptspeicher vorgesehen ist,
danach der besagte spezielle Teil in der Kopie des
Datensatzes im Hauptspeicher als Suchargument für
eine Aufzeichnung im Direktzugriffsspeicher mit
einem entsprechenden Schlüsselwert benutzt wird,
wodurch der Prüfsatz gefunden wird, wenn der Wert
des besagten, speziellen Teiles mit dem Prüfwert in
dem Schlüsselfeld des Prüfsatzes übereinstimmt,
während andernfalls die Ausführung des
Kanalbefehlswortes in diesem Stadium, in dem die Suche nicht
erfolgreich war, beendet wird, und
nach einer erfolgreichen Suche ein ausgewählter der
SET-Sätze auf dem Direktzugriffsspeicher in die
Kopie des Datensatzes im Hauptspeicher an der Stelle
des besagten Teiles geändert wird, und
die geänderte Kopie des Datensatzes in dem
Direktzugriffsspeicher über den ursprünglichen Datensatz
geschrieben wird.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet,
daß zur bedingten Änderung eines Teiles des auf dem
Direktzugriffsspeicher gespeicherten ersten
Datensatzes in Abhängigkeit von dem Wert des besagten
Teiles des Datensatzes,
der Direktzugriffsspeicher wenigstens eine
zusätzliche, als Prüfsatz bezeichnete, Aufzeichnung
enthält, die in ihrem Schlüsselfeld den Prüfwert mit
dem besagten Teil des Datensatzes enthält, mit
welchem besagter Teil des Datensatzes zu prüfen ist,
und daß wenigstens ein zusätzlicher SET-Satz
vorgesehen ist, der in seinem Datenfeld einen Wert oder
Werte enthält, in welche(n) besagter Teil des
Datensatzes zu verändern ist,
ein Kanalbefehlswort zum Lesen einer Kopie des
Datensatzes vom Direktzugriffsspeicher in den
Hauptspeicher vorgesehen ist,
eine Kopie des besagten zweiten Datensatzes wird vom
Direktzugriffsspeicher in den Hauptspeicher gelesen,
danach wird besagter ausgewählter Teil in der Kopie
des Datensatzes im Hauptspeicher als Suchargument
für eine Aufzeichnung in dem Direktzugriffsspeicher
mit einem entsprechenden Schlüsselwert benutzt,
wodurch der Prüfsatz gefunden wird, wenn der Wert
des ausgewählten Teiles mit dem Prüfwert im
Schlüsselfeld des Prüfsatzes übereinstimmt, während
andernfalls die Ausführung des Kanalbefehlswortes in
diesem Stadium beendet wird, wenn die Suche nicht
erfolgreich war, und
nach einer erfolgreichen Suche ein ausgewählter der
SET-Sätze im Direktzugriffsspeicher in besagte Kopie
des besagten Datensatzes im Hauptspeicher, an der
Stelle des besagten Teiles, geändert wird, und
die geänderte Kopie des Datensatzes in dem
Direktzugriffsspeicher über den ursprünglichen Datensatz
geschrieben wird.
4. Gemeinsam benutztes Platten-System, bei dem von
mehreren unabhängigen Computer-Systemen auf mehrere
Direktzugriffsspeicher zugegriffen werden kann, und
bei dem das Verfahren eines der vorstehenden
Ansprüche zur Vermeidung gleichzeitiger und sich
gegenseitig störender Zugriffe von zwei
unterschiedlichen Computern auf den gleichen
Direktzugriffsspeicher benutzt wird,
dadurch gekennzeichnet, daß
jeder der gemeinsam benutzten Direktzugriffsspeicher
in einer Steuerspur eine Zugriffsstatusaufzeichnung
mit Flags enthält, die Zugriffe von den Systemen für
jede Speicherstelle auf dem Direktzugriffsspeicher
anzeigen, zusammen mit wenigstens einem zusätzlichen
Prüfsatz, der in seinem Schlüsselfeld den Wert eines
Nichtzugriffs-Flags enthält und wenigstens einem
zusätzlichen SET-Satz, der in seinem Datenfeld den
Wert eines Zugriffs-Flags enthält,
in jedem zugreifenden System ein Kanalbefehlswort
vorgesehen ist,
um auf eine Zugriffsforderung von einem System nach
einer speziellen Benutzerzuordnung auf einen
gemeinsam benutzten Direktzugriffsspeicher
durch Lesen der Statusaufzeichnungen der Systeme aus
dem Direktzugriffsspeicher in den Hauptspeicher zu
antworten,
wobei die Flagposition(en) der speziellen
Benutzerzuordnung für die anderen Systeme im Hauptspeicher
benutzt werden, um eine Aufzeichnung auf dem
Direktzugriffsspeicher mit einem entsprechenden
Schlüsselwert zu suchen und einen Prüfsatz zu finden, der in
seinem Schlüsselfeld ein Nichtzugriffs-Flag hat,
wenn die spezielle Benutzerzuordnung ein
Nichtzugriffs-Feld hat, das Nichtzugriff anzeigt,
während andernfalls die Ausführung des
Kanalbefehlswortes beendet wird, keine Aufzeichnung gefunden
wird, und nach einer erfolgreichen Suche der SET-
Satz in die Statusaufzeichnung im Hauptspeicher
seines Systems in die Flagposition für die spezielle
Benutzerzuordnung geschrieben wird und
die auf den aktuellen Stand gebrachte Kopie der
Statusaufzeichnung über die ursprüngliche
Aufzeichnung geschrieben wird.
Gemeinsam benutztes Platten-System gemäß Anspruch 4,
bei dem n zugreifende Systeme (n > = 2) vorgesehen
sind,
jeder der gemeinsam benutzten Direktzugriffsspeicher
enthält in einer Steuerspur n Statusaufzeichnungen,
je eine für jedes zugreifende System, zusammen mit
n-1 gleichen Prüfsätzen, die in ihren
Schlüsselfeldern
einen Nichtzugriffs-Flag-Prüfwert enthalten
und wenigstens einen zusätzlichen SET-Satz, der in
seinem Datenfeld einen Flag-Zugriffswert hat,
in jedem zugreifenden System ist ein
Kanalbefehlswort vorgesehen,
das auf eine Zugriffsforderung des jeweiligen
Systems nach einer speziellen Benutzerzuordnung auf
einem gemeinsam benutzten Direktzugriffsspeicher
anspricht,
eine Kopie aller n Statusaufzeichnungen von besagtem
Direktzugriffsspeicher wird in den Hauptspeicher
gelesen,
die vorbestimmte Flagposition für die spezielle
Benutzerzuordnung in der Kopie der
Statusaufzeichnung des ersten anderen Systems im
Hauptspeicher wird als Suchargument für einen
entsprechenden Schlüsselwert benutzt, wodurch der erste
Prüfsatz gefunden wird, wenn der Wert der besagten
vorbestimmten Flagposition mit dem Nichtzugriffs-
Schlüsselwert des ersten Prüfsatzes übereinstimmt,
während andernfalls die Ausführung des
Kanalbefehlswortes in diesem Stadium beendet wird, keine
Aufzeichnung gefunden wird, und wiederholt die
vorbestimmte Flagposition für die geforderte
Benutzerzuordnung in der Statusaufzeichnung für das nächste
andere System im Hauptspeicher als ein Suchargument
für den nächsten Prüfsatz benutzt wird, so daß die
Ausführung des Kanalbefehlswortes beendet wird, wenn
kein entsprechender Prüfsatz gefunden wird, und
nach einer erfolgreichen Suche, wird der zusätzliche
SET-Satz im Direktzugriffsspeicher in die Kopie der
eigenen Statusaufzeichnung im Hauptspeicher an der
Flagposition der geforderten Benutzerbelegung
eingelesen, und
die geänderte Kopie der Statusaufzeichnung des
besagten eigenen Systems wird über die ursprüngliche
Systemstatusaufzeichnung geschrieben.
6. Gemeinsam benutztes Platten-System gemäß Anspruch 5,
dadurch gekennzeichnet, daß
auf der Steuerspur jedes gemeinsam benutzen
Direktzugriffsspeichers die Statusaufzeichnungen aller n
zugreifenden Systeme gespeichert sind, zusammen mit
n-1 gleichen Prüfsätzen, die einen Nichtzugriffs-
Prüfwert im Schlüsselfeld enthalten und mehrere
zusätzliche SET-Sätze, die in ihren Datenfeldern
verschiedene Zugriffs- und Nichtzugriffswerte
enthalten,
in jedem zugreifenden System ist ein
Kanalbefehlswort vorgesehen, das selektiv auf eine
Zugriffsforderung von seinem eigenen System für
Benutzerzuordnung auf einen gemeinsamen Direktzugriffsspeicher
durch Einlesen einer Kopie aller n
Statusaufzeichnungen von besagtem Direktzugriffsspeicher in den
Hauptspeicher antwortet, und
die vorbestimmte Flagposition für die spezielle
Benutzerzuordnung in der Kopie der
Statusaufzeichnung des ersten anderen Systems im Hauptspeicher
wird als Suchargument für ein entsprechendes
Schlüsselwert
benutzt wodurch der erste Prüfsatz gefunden
wird, wenn der Wert der besagten vorbestimmten
Flagposition mit dem Nichtzugriffs-Schlüsselwert des
ersten Prüfsatzes übereinstimmt, während andernfalls
die Ausführung des Kanalbefehlswortes in diesem
Stadium beendet wird, wenn keine Aufzeichnung
gefunden wird, und
wiederholt die vorbestimmte Flagposition für die
geforderte Benutzerzuordnung in der
Statusaufzeichnung für das nächste andere System im
Hauptspeicher als ein Suchargument für den nächsten
Prüfsatz benutzt wird, so daß die Ausführung des
Kanalbefehlswortes beendet wird, wenn kein entsprechender
Prüfsatz gefunden wird, und
nach einer erfolgreichen Suche, wird der zusätzliche
SET-Satz im Direktzugriffsspeicher in die Kopie der
eigenen Statusaufzeichnung im Hauptspeicher an der
Flagposition der geforderten Benutzerbelegung
eingelesen, und
die geänderte Kopie der Statusaufzeichnung des
besagten eigenen Systems wird über die ursprüngliche
Systemstatusaufzeichnung geschrieben.
Datenverarbeitungssystem mit mehreren unabhängigen
Computer-Systemen, gekennzeichnet durch ein
gemeinsames Plattensystem gemäß Ansprüchen 4-6.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP86200577A EP0240616B1 (de) | 1986-04-04 | 1986-04-04 | Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3688136D1 DE3688136D1 (de) | 1993-04-29 |
| DE3688136T2 true DE3688136T2 (de) | 1993-10-07 |
Family
ID=8195722
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE86200577T Expired - Fee Related DE3688136T2 (de) | 1986-04-04 | 1986-04-04 | Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation. |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5113509A (de) |
| EP (1) | EP0240616B1 (de) |
| JP (1) | JPS62239226A (de) |
| DE (1) | DE3688136T2 (de) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5680574A (en) | 1990-02-26 | 1997-10-21 | Hitachi, Ltd. | Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units |
| US6728832B2 (en) | 1990-02-26 | 2004-04-27 | Hitachi, Ltd. | Distribution of I/O requests across multiple disk units |
| US5257376A (en) * | 1990-09-04 | 1993-10-26 | International Business Machines Corporation | Method and apparatus for configuring a control program nucleus with a minimum impact on system availabiltiy |
| EP0550761B1 (de) * | 1991-07-22 | 2000-02-16 | Fujitsu Limited | Verfahren zur steuerung der datenaufzeichnung auf magnetbandgerät |
| EP0570632A1 (de) * | 1992-05-21 | 1993-11-24 | The Dow Chemical Company | Verbundwerkstoffe aus in Masse polymerisiertem Styrol verstärkt mit einer Mischung aus faserförmigen und sphärischen Teilchen |
| US5794056A (en) * | 1993-10-04 | 1998-08-11 | International Business Machines Corporation | System for automatic buffering of commands for DASD units |
| US6073211A (en) * | 1994-12-13 | 2000-06-06 | International Business Machines Corporation | Method and system for memory updates within a multiprocessor data processing system |
| FI102788B (fi) | 1995-09-14 | 1999-02-15 | Nokia Telecommunications Oy | Yhteisen levydatan hallinta kahdennetussa tietokoneyksikössä |
| US7168088B1 (en) | 1995-11-02 | 2007-01-23 | Sun Microsystems, Inc. | Method and apparatus for reliable disk fencing in a multicomputer system |
| US5996075A (en) * | 1995-11-02 | 1999-11-30 | Sun Microsystems, Inc. | Method and apparatus for reliable disk fencing in a multicomputer system |
| US5940621A (en) * | 1996-01-23 | 1999-08-17 | Hewlett-Packard Company | Language independent optimal size-based storage allocation |
| JP2830857B2 (ja) * | 1996-09-09 | 1998-12-02 | 三菱電機株式会社 | データストレージシステム及びデータストレージ管理方法 |
| FR2754925B1 (fr) * | 1996-10-18 | 1998-11-20 | Bull Sa | Operation atomique sur memoire distante et dispositif permettant d'effectuer cette operation |
| US11714808B2 (en) * | 2021-09-08 | 2023-08-01 | International Business Machines Corporation | Pattern search request embedded in a transport mode command word for a channel subsystem in a storage system |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3662401A (en) * | 1970-09-23 | 1972-05-09 | Collins Radio Co | Method of program execution |
| US3725872A (en) * | 1971-03-03 | 1973-04-03 | Burroughs Corp | Data processing system having status indicating and storage means |
| US4224664A (en) * | 1976-05-07 | 1980-09-23 | Honeywell Information Systems Inc. | Apparatus for detecting when the activity of one process in relation to a common piece of information interferes with any other process in a multiprogramming/multiprocessing computer system |
| US4207609A (en) * | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
| US4467421A (en) * | 1979-10-18 | 1984-08-21 | Storage Technology Corporation | Virtual storage system and method |
| US4380798A (en) * | 1980-09-15 | 1983-04-19 | Motorola, Inc. | Semaphore register including ownership bits |
| NL8101410A (en) * | 1981-03-23 | 1981-04-29 | Multi processor system with units cooperating on common memory - has interactive system of connections for addresses, data, control data etc. | |
| US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
| JPS58140862A (ja) * | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
| US4574346A (en) * | 1982-09-29 | 1986-03-04 | International Business Machines Corporation | Method and apparatus for peripheral data handling hierarchies |
| US4658351A (en) * | 1984-10-09 | 1987-04-14 | Wang Laboratories, Inc. | Task control means for a multi-tasking data processing system |
| CA1239227A (en) * | 1984-10-17 | 1988-07-12 | Randy D. Pfeifer | Method of and arrangement for ordering of multiprocessor operations in a multiprocessor system |
| US4839813A (en) * | 1985-10-24 | 1989-06-13 | Pitney Bowes Inc. | Computerized parcel shipping system |
-
1986
- 1986-04-04 DE DE86200577T patent/DE3688136T2/de not_active Expired - Fee Related
- 1986-04-04 EP EP86200577A patent/EP0240616B1/de not_active Expired - Lifetime
-
1987
- 1987-02-27 JP JP62043233A patent/JPS62239226A/ja active Granted
- 1987-03-26 US US07/030,398 patent/US5113509A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP0240616A1 (de) | 1987-10-14 |
| US5113509A (en) | 1992-05-12 |
| EP0240616B1 (de) | 1993-03-24 |
| JPS62239226A (ja) | 1987-10-20 |
| JPH0461372B2 (de) | 1992-09-30 |
| DE3688136D1 (de) | 1993-04-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69801824T2 (de) | Speicher für informationsteurung eines mehrhostrechnerspeichers | |
| DE2350884C2 (de) | Adreßumsetzungseinheit | |
| DE69507290T2 (de) | Gerät zur datenpuffer-überwachung in einem plattenspeichersystem | |
| DE69021899T2 (de) | DMA-Steuerung. | |
| DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
| DE69033540T2 (de) | Verfahren zur Verwaltung von in Familien aufgeteilten mehrfachen virtuellen Speichern und entsprechende Struktur | |
| DE3688136T2 (de) | Verfahren zum Testen und Setzen von Daten in einen Datensatz auf einer Platte in eine atomaren Ein/Ausgabeoperation. | |
| DE69913984T2 (de) | Verteiltes transaktionales verarbeitungssystem und verfahren | |
| DE3688191T2 (de) | Editor für virtuelle Maschinen. | |
| DE69132449T2 (de) | Verfahren und Einrichtung zur Steuerung eines Mehrsegment-Cache-Speichers | |
| DE68916853T2 (de) | Unabhängige Programmlader für virtuelle Maschinenarchitektur. | |
| DE3151745A1 (de) | Multitasking-datenverarbeitungsanlage | |
| DE4011745A1 (de) | Taskverfolgungseinrichtung | |
| EP0500973B1 (de) | EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM | |
| DE3046912C2 (de) | Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage | |
| DE69119149T2 (de) | Struktur zur direkten Speicher-zu-Speicher-Übertragung | |
| DE3911721C2 (de) | ||
| DE2055522B2 (de) | Anordnung zur eingabe von daten in eine digitale datenverarbeitungsanlage | |
| DE69517256T2 (de) | System und Verfahren zur Versorgung des Zugriffsschutzes auf Informationsspeichereinrichtung | |
| DE69122337T2 (de) | Asynchrone DASD-Steuerung | |
| DE69220788T2 (de) | Kopplerschaltung und ihre verwendung in einer leiterplatte und verfahren hierfür | |
| DE19956525A1 (de) | Computersystem und Verfahren zum Vorbereiten eines computerlesbaren Mediums | |
| EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher | |
| CH495584A (de) | Datenverarbeitungsanlage | |
| DE19709975A1 (de) | Mikrocomputer |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |