-
Gebiet der
Erfindung
-
Diese
Erfindung betrifft im Allgemeinen globale assoziative Speichersysteme
und im Speziellen einen erweiterten Handhabungssatz für eine verbesserte
Leistung für
eine feinkörnige
Systemsteuerung eines Tupelraums.
-
Hintergrund
der Erfindung
-
Tupelräume bieten
eine einzigartige Form der Flexibilität beim gemeinsamen Benutzen
von Information, sowie der Koordination von Anwendungen. Wie unten
detaillierter beschrieben wird, sind Tupel eine Sammlung von Schlüsselwert-Paaren,
die in einem Tupelraum gespeichert sind, der auf der Basis des Zusammenpassens
von Anti-Tupeln mit Tupeln abgefragt werden kann. Das originale
Linda Model von David Gelernter (N. Carriero und D. Gelernter, „Linda
in context", Communications
of the ACM, 32(4):444-458, April 1989) fand weit verbreitete Verwendung
bei der Zusammenarbeit einzelner funktioneller Einheiten. Herkömmliche Tupelraum-Operationen
werden an einzelnen Tupel als Koordinationsmechanismen durchgeführt, um
eine grobkörnige
Steuerung bereitzustellen. Solche Systeme nach dem Stand der Technik
sind jedoch nicht geeignet, um eine feinkörnige Steuerung von Systemoperationen
bereitzustellen.
-
Beispielsweise
haben die Erfinder die Anwendung von Tupelräumen auf die Handhabung von
Anwesenheits- und Standortsystemen in Erwägung gezogen, welche feinkörnige Operationen
erfordern, in welchen für
jede Statusänderung
des Systems eine große
Anzahl von Tupeln ausgegeben und zurückgezogen werden. Dementsprechend
gibt es einen Bedarf, die herkömmlichen
Tupelraum-Operationen auszuweiten, um eine Hochgeschwindigkeits-Ausgabe
und -Zurückname
einer großen
Anzahl von Tupeln und Anti-Tupeln aufzunehmen.
-
Das
Dokument mit dem Titel „LINDA
for Case Base Retrieval: A case for Extending the Funktionality of
LINDA and ist Abstract Machine" von
Campbell und anderen offenbart ein Verfahren, um eine Tupel-Schablone
zu übernehmen,
und um eine Operation auf ein Tupel in dem Tupelraum durchzuführen, um
zu Ermitteln, ob das Tupel zu der Tupelschablone passt.
-
Zusammenfassung
der Erfindung
-
Die
Erfindung ist in Anspruch 1 festgelegt. Einige optionale Merkmale
der Erfindung sind in den abhängigen
Ansprüchen
festgelegt. Es wird eine Vielzahl neuer Tupelraum-Operatoren bereitgestellt,
um die Leistungsfähigkeit
von Tupel-Räumen
zu erweitern, um eine feinkörnige
Steuerung von Anwesenheits- und Standortsystemen bereitzustellen.
Neue Deaktivierungs-/Aktivierungs- und Massen-Zeitmesser-Erweiterungs-Operatoren können simultan
auf eine große
Anzahl von Tupeln und Anti-Tupeln angewendet werden, wodurch die
Ansprechempfindlichkeit des Systems verbessert wird.
-
Genauer
gesagt werden in dem original Linda-Model Tupel und Anti-Tupel einer
nach dem anderen von verschiedenen Operatoren in den Tupel-Raum
eingefügt,
und von diesem entfernt. Dies wurde für eine feinkörnige Steuerung
eines Systems als unbefriedigend empfunden, da jede Änderung
des Systemstatus das Entfernen und Einfügen einer großen Anzahl
von Tupeln erfordern kann. Die neue Deaktivierungs-/Aktivierungs-Operation
aktiviert oder deaktiviert alle Tupel, die zu einer Schablone passen,
in einer einzelnen Operation. Tupel werden nicht entfernt oder eingefügt, wie
im Stand der Technik, sondern werden mit einem neu definierten Flag
markiert, welches anzeigt, das sie entweder einen Vergleich unterworfen
werden sollen, oder nicht. Dies erweitert die Ansprechempfindlichkeit
von Tupel-Räumen beträchtlich,
wenn sie für
eine feinkörnige Steuerung
verwendet werden.
-
Viele
Erweiterungen von Linda zielten auf das Problem der Tupel- „Speicherbereinigung" ab, indem sie individuelle
Tupel-Zeitmesser bereitstellen, welche verwaiste Tupel zu ihrer
Verfallszeit entfernen. Diese Lösung
ist zweckdienlich, Zeitmes ser sind jedoch berüchtigt schwer zu handhaben.
Ein zu kurzes Zeitlimit wird dem Standardbetrieb eines Systems destabilisieren,
während
ein zu langes Zeitlimit wertvollen Tupel-Speicher verschwendet.
Die neue Massenzeitmesser-Erweiterungs-Operation
erweitert automatisch die Zeitlimit-Dauer für alle Tupel, die zu einer
bestimmten Schablone passen.
-
Die
neu bereitgestellten Operationen gemäß der vorliegenden Erfindung
ermöglichen
es, Tupel-Räume
als die Basisplattform für
Aufruf-Verarbeitungs-Architekturen
zu verwenden, was ein fliegendes Hinzufügen und Erzeugen von Merkmalen
bereitstellt.
-
Kurze Beschreibung
der Zeichnungen
-
Eine
detaillierte Beschreibung der Erfindung ist hierin unten dargelegt,
mit Bezugnahme auf die einzige Zeichnung, welche ein Blockdiagramm
eines Hardwareunterstützten
Tupel-Raums ist, um den Tupel-Raum mit erweiterten Operationen gemäß der bevorzugten
Ausführungsform
auszustatten.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsform
-
Bevor
die Erfindung detailliert erörtert
wird, wird unten eine kurze Einführung
in die grundlegenden Strukturen und Operationen eines Tupel-Raumes
dargelegt.
-
Ein
Tupel-Raum ist ein Satz von nach Typ/Wert geordneten Paaren, welche
Ingles genannt werden. Jedes Ingel besteht aus einem Typ (z.B. Name)
und einem Wert (z.B. John Doe). Somit könnte ein Tupel, welches einen
Angestellten einer Firma beschreibt, beispielsweise wie folgt sein:
{:Name
John Doe :Alter 37 :Mitarbeiternummer 12345 :Start Datum 810126
:Position T12}
-
Der
Tupel-Raum ermöglicht
eine Koordination, indem er Abfragen basierend auf dem Zusammenpassen
von Tupeln und Anti-Tupeln zulässt.
Ein Anti-Tupel ist ein Tupel, das als eine Abfrage in einem Tupel-Raum verwendet
werden kann. In der Form ist es identisch zu einem Tupel, außer das
der Wert von jeden oder allen Feldern durch ein „?" ersetzt werden kann, was eine „ist mir
egal"-Bedingung
anzeigt. Tupel-Räume
werden aufgebaut, um Tupeln Anti-Tupeln zuzuordnen, welche in allen
Feldern übereinstimmen,
außer
in dem, das von der ?-Abfrage angezeigt wird. Somit würde das
Anti-Tupel:
{:Name ? :Alter 37 :Mitarbeiternummer ? :Start_Datum
? :Position T12}
die Tupel für alle Angestellten der Position
T12 zurückgeben,
die 37 Jahre alt sind.
-
Die
herkömmlichen
Operationen des Tupel-Raums bestehen aus:
- Poke – Stelle
ein Tupel in den Tupel-Raum. Es kann eine Dauer festgelegt werden,
für wie
lang dieses Tupel in den Raum verbleiben soll. Dies kann jede Zeitdauer
sein, bis zu unbegrenzt.
- Peek – Frage
den Tupel-Raum mit einem Anti-Tupel ab. Diese Abfrage kann so bestimmt
sein, dass sie für irgendeine
Zeitdauer bis hin zu unbegrenzt andauert. Kopien zusammenpassender
Tupel werden durch die Schnittstelle zurückgegeben und die Tupel verbleiben
in den Tupel-Raum.
- Pick – Abfrage
des Tupel-Raums mit einem Anti-Tupel. Diese Abfrage kann so bestimmt
sein, dass sie für
jeden Zeitraum bis hin zu unbegrenzt andauert. Kopien zusammenpassender
Tupel werden durch die Schnittstelle zurückgegeben, und die Tupel werden
von dem Tupel-Raum entfernt.
- Cancel – Entferne,
mit dem bestimmten Anti-Tupel alle zusammenpassenden Anti-Tupel von dem Tupel-Raum.
Tupel selbst können
direkt durch eine geeignete Pick-Anfrage
entfernt werden.
-
Nun
zugewandt auf das Blockdiagramm, ist ein Hardware-basierender Tupel-Raum
gezeigt, um die erweiterten Operationen gemäß der vorliegenden Erfindung
umzusetzen. Ein Eingabe/Ausgabe-Puffer- und Steuerungsblock 10 ist
vorgesehen, einschließlich
Eingabe-Ausgabe-Puffern, einer Suchlogik, und Speicherhandhabungskomponenten.
Die Eingabe-Ausgabe-Puffer verknüpfen
das Gerät
mit der äußeren Umwelt.
Die Suchlogik und die Speicherhandhabungs-Funktionen führen die
allgemeine Speichersteuerung für
das Gerät durch,
und führen
alle Suchen aus. Es ist ein Tupel-Speicher 12 vorgesehen,
um die Tupel zu speichern, und ein Anti-Tupel-Speicher 14 ist vorgesehen
um die Anti-Tupe1 zu speichern, welche beide entweder unter Verwendung
herkömmlichen
RAMs oder in einer Software aufgeführt sein können. Es können mehrere Sitzungen aufgebaut
werden, wobei Tupel und Anti-Tupel
in den Raum übergeben
werden, und Tupel und Anti-Tupel als Ergebnis der Operationen zurückgegeben
werden. Innerhalb einer einzelnen Sitzung werden Tupel und Anti-Tupel
gemeinsam mit dem gewünschten
Operator in den Raum übergeben.
Gemäß der vorliegenden
Erfindung wird mit dem Tupel/Anti-Tupel die folgende Information übergeben:
Operator, Tupel/Anti-Tupel, und ein Lebenszeit-Parameter. Die Suchlogik des Blocks 10 durchsucht
den Tupel-Raum, und führt
die angezeigten Operationen durch mittels spezieller Begrenzungs-Flags,
der Zuweisung auf fixe entsprechende Speicherstellen, wie etwa Wortgrenzen,
wie dies unten detaillierter erörtert
wird.
-
Um
die Geschwindigkeitsprobleme zu behandeln, die mit der Verwendung
herkömmlichen
RAMs für eine
sequenzielle Suche verbunden sind, werden Tupel-Attribute in einem Feld gespeichert,
und verwendet, um einen Mechanismus bereitzustellen, wobei unmögliche Tupel-Zuordnungen
(unterschiedliche Anzahl von Schlüsselwertpaaren) identifiziert
werden können,
ohne dass man nach dem Tupel in dem Speicher suchen muss. Im Speziellen
wird ein Tupel-Attribut-Feldspeicher (TAM) bereitstellt, welcher
wichtige Attribute der gespeicherten Tupel und Anti-Tupel enthält. Es werden
zwei bestimmte TAMs bereitgestellt – der Tupel-TAM (TTAM 16)
für die
Tupel-Speicherung und der Anti-Tupel-TAM (ATAM 18) für die Speicherung
der Anti-Tupel.
-
Die
Struktur der Daten in jedem TAM ist wie folgt:
-
Die
TAM-Felder 16 und 18 können verwendet werden, um den
Zuordnungsprozess des Tupel-Raums zu beschleunigen. Insbesondere
enthält
jedes TAM-Feld zusätzlich
zu dem Startpunkt im Speicher zusätzliche Informationen über das
Tupel. Tupel/Anti-Tupel passen nur zusammen, wenn sie dieselbe Anzahl
von Schlüsselwert-Paaren enthalten.
Diese Information kann leicht von den ankommenden Tupeln/Anti-Tupeln
erhalten, und mit der Information in dem Feld verglichen werden.
Nur die Tupel, in denen die Anzahl der Schlüsselwert-Paare zusammenpassen,
werden für
ein weiteres Zuordnen, indem auf die Tupel selbst im Speicher zugegriffen
wird, berücksichtigt.
-
Indem
es Tupel gibt, welche sich in der Anzahl von Schlüsselwert-Feldern
unterscheiden, um bestimmte Klassen zu identifizieren, werden somit
nur diese Tupel mit derselben Anzahl dieser Felder verglichen. In
dem die Tupel absichtlich nach ihrer Größe geordnet werden, um sie
gemäß ihrer
Klasse zu unterscheiden, wird eine verbesserte Suchgeschwindigkeit
erzielt.
-
Gemäß der vorliegenden
Erfindung können
Tupel und Anti-Tupel unter Verwendung der ACT- und DEACT-Operatoren
aktiviert oder deaktiviert werden (d.h. so markiert, dass sie in
den Zuordnungsprozess einbezogen, oder von diesem ausgeschlossen
werden). Wenn die Aktivierungs-Flag gesetzt ist, wird das Tupel
in den Zuordnungsprozess eingeschlossen. Wenn es nicht gesetzt ist,
dann wird es von dem Prozess ausgeschlossen. Die Verwendung der
ACT- und DEACT-Operatoren verbessert die System-Geschwindigkeit,
sowie das Ansprechvermögen
von Anwendungen, bei denen eine große Anzahl von Tupeln oder Anti-Tupeln
für eine Zusammenarbeit
in verschiedenen Systemzuständen
verwendet werden. Anstatt Zeit mit dem Eingeben und Entfernen von
Tupeln und Anti-Tupeln bei jeder Zustandsänderung zu verschwenden, können sie
in großen Mengen
aktiviert oder deaktiviert werden.
-
Tupel
und Anti-Tupel werden in ihren entsprechenden Speichern 12 und 14 in
zusammenhängenden Gruppierungen
gespeichert, die mit dem Anfang jedes Speichers beginnen. Alle niedrigeren
Tupel werden nach oben bewegt, um die Lücken in den Gruppierungen aufzufüllen, die
von gestrichenen Tupeln erzeugt werden. Neue Tupel werden dann am
Ende des Speichers eingefügt.
Wenn ein neues Tupel unbekannter Länge erhalten wird, ist keine
Handlung erforderlich, um einen ausreichend bemessenen Freiraum
im Speicher zu finden, um es zu fassen, im Gegensatz zu den oben
erörterten
Hardware-basierenden Systemen des Standes der Technik. Stattdessen
wird das Tupel an das untere Ende des Speichers platziert. Dies
bildet auch einen Gegensatz zu Software-basierten Speicherhandhabungs-Techniken,
in denen die Fragmentierung ein wesentliches und häufiges Problem
ist, welches viel Echtzeitverarbeitung benötigt.
-
Indem
einen Zeitlimit-Wert für
jedes Tupel verfolgt wird, wird ein effizienter Zeitmessungs-basierter Speicherbereinigungs-Prozess
bereitgestellt, um das Problem verwaister Tupel zu handhaben, deren
Besitzerobjekte beendet wurden, oder diese irrtümlich vergessen haben. Diese
Tupel können
den Speicher füllen, was
zu Handhabungsproblemen führt,
die einen Software-Eingriff und periodische Wieder-Initiierung des Freiraums
erfordert. Gemäß der vorliegenden
Erfindung werden die Zeitlimit-Werte in der Hardware eingeführt. Abgelaufene
Tupel werden automatisch von dem Speicherhandhabungs-Prozess des
Blocks 10 einfach als gestrichen markiert und dann von
dem Speicher entfernt, wie detaillierter unten beschrieben ist.
-
Tupel
werden in dem Tupel-Speicher 12 so gespeichert, dass individuelle
Schlüssel
und Werte von der Suchlogik des Blocks 10 ermittelt werden
können.
Es gibt mehrere wohl bekannte Verfahren, um diese Funktion durchzuführen, einschließlich der
Verwendung spezieller Begrenzungs-Flags, der Zuweisung auf fixe
entsprechende Speicherstellen, wie etwa Wortgrenzen, etc. Die Details,
wie Tupel ermittelt werden, sind für die vorliegende Erfindung
nicht wichtig. Eine bestimmte Ausführung ist unten dargelegt.
-
Der
Betrieb des Hardware-unterstützen
Tupel-Raums mit dem die Operatoren der vorliegenden Erfindung angewendet
werden, wird unten mit Bezugnahme auf eine typische Pick-Operation
dargelegt. Die Operationen für
Poke, Peek und Cancel sind ähnlich,
und wären
einem Fachmann nach Durchlesen dieser Beschreibung klar.
-
Mit
der Peek-Operation, wird ein Anti-Tupel von einem externen Prozess
empfangen, und in die Eingabe-Ausgabe-Puffer des Blocks 10 gestellt.
Die oben beschriebenen Attribute für das eingehende Anti-Tupel werden
dann extrahiert, und im Gegenzug von der Such-Logik des Blocks 10 mit
den Attributen der in dem TTAM 16 gespeicherten Tupel verglichen.
Anfänglich
wird der Zustand des Aktivierungs-Flags geprüft. Wenn diese für ein bestimmtes
Tupel nicht gesetzt ist, wird dieses deaktiviert, und nicht für das Vergleichen
verwendet, wie oben beschrieben. In diesem Fall bewegt sich die
Suche zum nächsten
Tupel. Wenn für
dieses nächste
Tupel das Aktivierungs-Flag gesetzt ist, wird das Tupel für den Vergleich
verwendet, etc. Als nächstes
wird die Anzahl der Schlüsselwert-Paar-Attribute
der Anti-Tupel und der ausgewählten
Tupel verglichen. Wenn diese nicht passen, dann gibt es keine Möglichkeit,
dass das Tupel passt, und die Suche bewegt sich im Gegenzug zum
nächsten
Tupel. Wie zu sehen sein wird, führt
das Vergleichen von Attributen zu einer schnellen Suche, welche
die Gesamtgeschwindigkeit der Suche verbessert, indem unmögliche Übereinstimmungen
ausgeschlossen werden.
-
Die
Reihenfolge dieser Prüfungen
ist nicht wichtig, und kann in der Anwendung umgekehrt werden. Die
Analyse bestimmter Anwendungen kann aufdecken, dass mehr Suchzeit
gespart werden kann, indem in einer Reihenfolge oder einer anderen
gesucht wird. Diese Reihenfolge ist daher Anwendungs-spezifisch,
und kann optional von dem Benutzer mit einer Logik in dem Gerät ausgewählt werden,
wenn dies gewünscht
wird.
-
Wenn
die vorläufige
Suche erfolgreich ist, führt
die Suchlogik eine herkömmliche
sequenzielle Suche durch, wobei im Gegenzug Schlüssel und Werte für die Tupel
aus dem Tupel-Speicher 12 entnommen werden, und mit den
entsprechenden Stellen in dem empfangenen Anti-Tupel verglichen
werden. Dieser Vergleich beginnt an der Stelle im Speicher, die
von dem TTAM-Startadressen-Attribut für das Tupel angezeigt wird.
Die Suche fährt
Stelle für
Stelle fort, bis entweder das Ende des Tupels erreicht ist, was
anzeigt, dass eine Übereinstimmung
gefunden wurde, oder bis der erste Unterschied gefunden wird. Wenn
ein Unterschied gefunden wird, dann untersucht die Such-Logik das
nächste
Tupel. Da dies eine Pick-Operation ist, wird, wenn eine Übereinstimmung
gefunden wird, eine Kopie des Tupels zu dem Eingangs/Ausgangs-Puffern
verschoben, und das Streich-Flag wird in der TTAM-Stelle für das übereinstimmende
Tupel gesetzt. Am Ende des Prozesses wird der Tupel-Wert in der
Eingabe-Ausgabe verwendet, um das übereinstimmende Tupel zu dem
anfordernden Prozess zurückzugeben.
Die gesetzte Streich-Flag zeigt der Suchlogik an, dass das Tupel
von dem Speicher entfernt werden soll (dies wird unten mit Bezugnahme
auf den Speicher-Handhabungs-Abschnitt detailliert beschrieben).
Die Suche fährt
Tupel für
Tupel fort, bis alle Tupel-Attribute in TTAM 16 geprüft worden
sind.
-
Am
Ende des Prozesses werden die Attribute des empfangene Anti-Tupels
an das untere Ende des ATAM-Speichers 18 gestellt, und
das Anti-Tupel selbst wird an das untere Ende des Anti-Tupel-Speichers 14 gestellt.
Dann wird der Speicherhandhabungsprozess auf den Inhalt des Tupel-Speichers
und des ATAM-Speichers angewandt, wie detaillierter unten beschrieben
wird.
-
Der
oben dargelegte Algorithmus kann parallel quer über mehr als eine Kopie des
Speicherlements in dem Blockdiagramm verwendet werden. In so einem
Fall werden die TAM-, ATAM-, -Tupel-Speicher- und -Anti-Tupel-Speicher-Elemente
nach Bedarf nachgebildet, und das Eingangs/Ausgangs-Element wird
modifiziert, um von allen Speicherblöcken zurückgegebene Tupel aufzunehmen,
und um den geeignetsten Speicherblock auszuwählen, um die eingehenden Tupel
oder Anti-Tupel zu speichern.
-
Wenn
der DEACT oder ACT-Operator in den Raum eingeführt wird, wird er mit den Attributen
in dem ATAM-Speicher 18 verglichen. Von jedem Attribut,
das zu der Schablone passt, wird das Aktivierungs-Flag auf den richtigen
Status zurückgesetzt.
In nachfolgenden Suchen, wenn neue Tupel übermittelt werden, werden Attribute
für die
Anti-Tupel, deren Aktivierungs-Flag von einem DEACT Operator zurückgesetzt
wurde, nicht mit dem Tupel verglichen. Indem ein neu übermitteltes
Tupel mit einem gespeicherten Anti-Tupel verglichen wird, wird der
Zustand des zugeordneten Aktivierungs-Flags geprüft, bevor der Tupel-Vergleich
Feld für
Feld durchgeführt
wird. Wenn das Aktivierungs-Flag von dem DEACT Operator zurückgesetzt
worden ist, wird der Vergleichsprozess abgebrochen.
-
Der
Prozess für
das Aktivieren und Deaktivieren von Tupeln folgt einem identischen
Muster, wobei neu übermittelte
Anti-Tupel mit Tupeln verglichen werden, in Abhängigkeit des Zustandes des
Aktivierungs-Flags, das mit dem Tupel-Attribut in dem TTAM 16 gespeichert
ist.
-
Die
Struktur der neuen Operatoren gemäß der vorliegenden Erfindung
ist wie folgt:
OPERATOR [Optionale Parameter] Tupel oder Anti-Tupel
-
Somit
hat der DEACT-Operator für
ein Tupel die Form:
<DEACT
FLAG> <ANZAHL VON FELDERN> <TUPEL>
-
Der
AKT-Operator für
ein Tupel hat die Form:
<ACT
FLAG> <ANZAHL VON FELDERN> <TUPEL>
-
Die
ACT- und DEACT-Operatoren für
Anti-Tupel folgen demselben Format.
-
Wie
oben erörtert,
sind für
eine feinkörnige
Steuerung typischerweise eine große Anzahl von Tupel und Anti-Tupel
in einem bestimmten Status aktiv. Typischerweise gibt es auch mehrere
Zustände
für das
System. Das Deaktivierungs-/Aktivierungs-Flag
ermöglicht
es, viele Tupel und Anti-Tupel innerhalb des Tupel-Raums zu aktivieren
oder deaktivieren, ohne dass es erforderlich ist, dass sie, einer
nach dem anderen, durch geeignete Post-, Pick- oder Peek-Operationen
in den Raum gestellt werden. Dementsprechend kann eine Status-Wechsel-Kontexumschaltung
in viel geringerer Zeit durchgeführt
werden, als dies gemäß dem Stand
der Technik möglich
ist. In einer typischen Anwendung, werden alle Tupel und Anti-Tupel
für alle
Zustände
zu einer Einrichtungszeit in den Tupel-Raum eingegeben, in ähnlicher Weise, wie das anfängliche
Laden eines Programms. Die Tupel werden dann nur nach Bedarf deaktiviert
und aktiviert.
-
Wie
oben erörtert,
werden die Tupel und Anti-Tupel mit einem Lebenszeit-Parameter ausgestattet
(d.h. ein in dem TAM gespeicherter Zeitlimit-Wert). Dies ist üblich, und
ist in vielen Anwendungen zu finden, um die Leistungsfähigkeit
des Tupel-Raums vor verwaisten Tupeln und Anti-Tupeln zu schützen, die
in den Raum gestellt wurden, und nicht länger gebraucht werden. Dies
ist analog zur Speicherbereinigung in Objekt-orientierten Systemen
(d.h. Objekte, die nicht verwendet werden, werden selbstständig entfernt).
In gleicher Weise durchsucht in der vorliegenden Erfindung ein selbstständiger Prozess
sowohl den Tupel-Speicher, als auch den Anti-Tupel-Speicher nach
Tupeln und Anti-Tupeln, die abgelaufen sind. Wenn die Suche ermittelt,
dass ein Tupel oder ein Anti-Tupel einen Lebenszeit-Parameter aufweist,
der früher
ist als die momentane Systemzeit, wird er entfernt.
-
Jedoch
werden gemäß der vorliegenden
Erfindung bestimmte Operatoren bereitgestellt: Einer, um die Tupel
zu erweitern (TUPEL EXTEND) und der andere, um die Anti-Tupel zu
erweitern (ANTI-TUPEL EXTEND).
-
Jeder
Operator wird mit einem Parameter ausgegeben, der den Zeitbetrag
anzeigt, um den das Tupel oder Anti-Tupel erweitert werden soll.
In einer Situation, in der ein Prozess wünscht, das Leben seiner Tupel und
Anti-Tupel zu erweitern, wird der Operator somit mit einer Schablone
versehen (d.h. die Struktur der fixen und der „ist mir egal"-Felder) die nach
Bedarf mit den Tupeln oder Anti-Tupeln verglichen wird.
-
Wenn
passende Tupel oder Anti-Tupel vorhanden sind, erhält das Lebenszeitfeld
den Wert des Erweiterungsfeldes in dem daran angefügten eingehenden
Operator.
-
Die
Struktur des TUPEL-EXTEND-Operators ist wie folgt:
<TUPEL EXTEND> <ERWEITERUNGS-WERT> <TUPEL>
-
Die
Struktur des ANTI-TUPEL-EXTEND ist wie folgt:
<ANTI-TUPEL EXTEND> <ERWEITERUNGS-WERT> <ANTI-TUPEL>
-
Die
Massen-Zeitmesser-Erweiterung der vorliegenden Erfindung ermöglichen
es, eine große
Anzahl von Tupeln oder Anti-Tupeln gleichzeitig zu identifizieren,
und ihren Lebenszeit-Paramter zu erweitern. In herkömmlichen
Systemen ist es erforderlich, diesen Prozess mit den geeigneten
Post-, Peek- und Pick-Operatoren für einen Tupel/Anti-Tupel nach
dem anderen durchzuführen,
wodurch die Ansprech empfindlichkeit des Systems verringert wird,
und das System für
einen feinkörnigen
Betrieb weniger geeignet ist.
-
Es
sind Variationen und Modifikationen der bevorzugten Ausführungsform
beabsichtigt, die in den Umfang der Erfindung fallen, die durch
die angefügten
Ansprüche
festgelegt ist.