DE2744251A1 - Mehrprogramm/mehrprozess-computersystem - Google Patents
Mehrprogramm/mehrprozess-computersystemInfo
- Publication number
- DE2744251A1 DE2744251A1 DE19772744251 DE2744251A DE2744251A1 DE 2744251 A1 DE2744251 A1 DE 2744251A1 DE 19772744251 DE19772744251 DE 19772744251 DE 2744251 A DE2744251 A DE 2744251A DE 2744251 A1 DE2744251 A1 DE 2744251A1
- Authority
- DE
- Germany
- Prior art keywords
- processes
- overlap
- relationships
- control
- memory
- 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.)
- Withdrawn
Links
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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99938—Concurrency, e.g. lock management in shared database
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Control By Computers (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Hardware Redundancy (AREA)
Description
27U251
Die vorliegende Erfindung betrifft ein Mehrprogramm/Mehrprozeß-CoinpuLarnystcm
nach dem Gattungsbegriff des Anspruches
Insbesondere, bezieht sich die vorliegende Erfindung auf ein
Hystcw und ein Verfahren zur Uberlappungssteuerung auf Grund
des gemeinsamen Zugriffes auf Systemmittel (Daten) bei einer
Mehrprograrnm/Mehrprozeß-Ausführung sowohl bei einer örtlichen
als auch bei einer verteilten Systemstruktur.
Elektron tische Rechner haben sich von einer ersten Generation,
deren hardware hauptsächlich durch Elektronenröhren gekennzeichnet
war, über eine zweite durch Transistoren gekennzeichnete Generation bis zu einer dritten Generation fortentwickelt,
deren Hardware in der Hauptsache durch integrierte Schaltkreise gekennzeichnet ist. Neben diesen verschiedenen Hardware-Generationen
gibt es verschiedene Software-Generationen, wobei die erste Software-Generation hauptsächlich durch die Maschinensprachen,
Assembler und Subroutinen gekennzeichnet war und bei denen die zweite Software-Generation durch höhere Programm-Sprachen,
Monitore und Makroassembler gekennzeichnet war. Die dritte Software-Generation ist durch Betriebssysteme, on-line/
real-time-Mehrprogrammsysteme und Datenverv/altungssysteme gekennzeichnet.
Die erste Hardware-Generation zusammen mit der ersten Software-Generation
und ebenso die zweite Hardware-Generation zusammen mit der zweiten Software-Generation waren in erster Linie auf
die Stapelverarbeitung ausgerichtet, wobei jeweils ein Job zur gleichen Zeit ausgeführt wurde. Die dritte Generation der Hardware/Software-Systeine
ist ebenfalls auf eine Stapelverarbeitung ausgerichtet, wobei jedoch auf Grund der aufkommenden Mehrfachverarbeitung
verschiedene Jobs parallel verarbeitet werden können und im Hinblick auf die Benutzung der gleichen Datenbank
in Wettbewerb treten können.
Die Systeme der vierten Generntion werden noch höheren Anforderungen
im Hinblick auf den Parallelbetrieb genügen. Ein Echtzeit-
8098U/0872
Betrieb, dor an die Ansprechz ;it gewisse Anforderungen stellt,
und das Erfordernis eines angemessenen LGistungs/Koscenverhältnisses
führen zu einer Mehrprogramni/Mehrprozeß-Ausführung, bei
der das Risiko der Überlappung bei den ausgeführten Aktivitäten sehr hoch ist. Eine geeignete Steuerung der Interaktionen zwischen
den Prozessen ist daher von größter Bedeutung, Einige Dia logo werden gewünscht und geplant, z. D. diejenigen, die auf dom Austausch
von Nachrichten beruhen, aber einige sind rein zufällig und können
aus ungeplanten Ereignissen, wie: beispielsweise der gemeinsamen
Benutzung eines Datensatzes, herstammen und müssen daher
sorgfältig kontrolliert werden. Hardware und Software arbeiten bei diesem Betrieb zusammen, um die Sicherheit mit einem Minimum
an Gesamtkosten zu gewährleisten. Die vierte Systemgeneration ist
ebenfalls durch einen verteilten Systemaufbau gekennzeichnet, wobei die Verarbeitung und die Daten über getrennt angeordnete
Computerknotcnpunkte verteilt sind.
Die Verarbeitung bei den Computersystemen der ersten Hardware/ Software-Generation erfolgte relativ geradeaus. Hinsichtlich eines
jeden Jobs lief dor Prozeß praktisch ohne Unterbrechung solange
ab, bis der Job vollständig bearbeitet war. Viele Jobs, wie beispielsweise die Kompilierung und Bearbeitung einer höheren
Programmsprache konnten air, ein einziger ununterbrochener
Prozeß ablaufen.
Die Koexistenz unabhängiger Aktivitäten in einer Mchrprogramm/ Mehrprozeß-Konfiguration wird später dargelegt. In einer solchen
Konfiguration können viele Benutzer eine Behandlung gleichzeitig
anfordern, und es versteht sich von selbst, daß innerhalb des Computersystems mehrere Prozesse im Hinbiirk auf die Pyr.-teiümittel
im Wettbewerb stehen. Jeder Prozeß besteht aus dor Ausführung eines Programmes (z.B. eine geordnete Sammlung von Befehlen)
auf der Grundlage von Daten und anderen Informationseinheiten,
um einen Job oder irgendeinen Teil dieses Jobs auszuführen. Dort, wo vi(.>le solcher Pro-ense eine gleichzeitige
Beachtung durch das System erfordern, wird die Aufgabe der Steuerung
und Zuteilung von Systemmitteln (Daten) zu weichen Prozessen,
8Q98U/0872
insbesondere im Hinblick auf die Anforderungen der Systeme der vierten Generation äußerst komplex.
Im ellgemeinen werden die Prozesse durch ein Betriebssystem gesteuert, das die durch den Prozeß ausgegebene Basisproze.our
verv/irklicht und einen allgemeinen .Steuerrnechsnismus erzwingt.
Die Steuerung des gemeinsamen Zugriffes auf Systemmittel kann
ebenfalls als ein getrenntes Systemelement verwirklicht werden.
Auf jeden Fall besitzen die herkörcmlidien Verfahren der Px-caeßstouerung
nur einen teilweise wirksamen Schutzmechanismus gegen die Überlappung eines Prozesses mit einem anderen. Diese Mechanismen
sind in inneren Subsystemen (im allgemeinen in der Datonb&nk-Vervaltungseinheit)
enthalten und sie betrachten nicht das System als ein Ganzes. Diese bekannten Mechanismen intervenieren
nicht, wenn die Gefahr von unrichtigen Resultaten festgestellt
wird, sondern sie erzwingen konservative Beschränkungen, durch die nur wenige Zugriffsfolgen gestattet sind, die als sicher
bekannt sind.
Durch diesen Gedankenweg sind Verfahren geschaffen worden, die auf der Vorauszuordnung und Verriegelung von Systemmitteln beruhen.
Das grundlegende Konzept besteht in der Zuordnung eines Systemmittels zu einem Prozeßbenutzer pro Zeitpunkt bis zur
Vervollständigung des Prozesses. Verfeinerte Mechanismen begrenzen
diese exklusive Betriebsweise auf den Fall, wo das Systemmittel durch den Prozeß modifiziert wird, und sie gestatten
einen gemeinsamen Zugriff auf ein Systemmittel, wenn es von den Prozc.ßbenutzern lediglich gelesen werden kann.
Keiner dieser Mechanismen bietet die maximale Zugriffsmöglichkeit,
die theoretisch gewährt werden könnte, und diese Mechanismen sind daher mit Nachteilen (z.B. unnötige Stillstandsverriegelungen) behaftet und benötigen einen gewissen Aufwand.
Diese Beschränkungen resultieren nicht aus einem fehlenden Interesse an einem höheren Datendurchfluß durch das System
8098U/0872
sondern aus einer ungenügenden Kenntnis des Überiappungniiiechanismus
selbst.
Es ist daher die Aufgabe der vorliegenden Erfindung,insbesondere
für ein Computersystem der vierten Generation einen Firmware/
Hardware-Mechanismus zu schaffen, der wirksam die /Aktivitäten überwacht und steuert und die Prozesse gegen Überlappung mit
anderen Prozessen schützt, wodurch ein hohes Maß an gemeinsamem Zugriff und damit eine hohe Produktivität geschaffen wird. Die
Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten
Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Gemäß der Erfindung sieht das Datenverarbeitungssystem eine organisierte Gruppe von aufgezeichneten Beobachtungen und einen
speziellen Befehlstyp zur Verarbeitung dieser Beobachtungen sovrie die Ausführung einer Prozedur vor, die diesen Befehl benutzt,
um die Legitimität einer Prozesses im Hinblick auf die Benutzung eines Systemmittels (z.B. den Zugriff auf einen Datensatz) sicherzustellen.
Die Anforderung zur Benutzung eines Systemmittels füx eine bestimmte Operation kann bestätigt (und in einigen Fällen
verzögert) oder zurückgewiesen werden. Die Zurückweisung löst eine geeignete Zurückspeicherung aus.
Insbesondere sieht das erfindungsgemäße System vor:
Der Schutzmechanismus überwacht jede durch einen Prozeß
ausgegebene Anforderung unter Beobachtung der Beziehungen (Vorränge),'die die Anforderung bei ihrer Annahme beinhaltet.
Die Beziehungen werden im Hinblick auf die bereits angenommenen und aufgezeichneten Beziehungen überprüft.
Kenn die Beziehungen in das bereits im voraus bestehende Bild hineinpassen, so werden die neuen Beziehungen ebenfalls
angenommen und aufgezeichnet. Die Anforderung wird
8098U/0872
27M251
somit angenommen (zur unmittelbaren oder verzögerten Bearbeitung).
Wenn die Beziehungen stattdessen einen absurden Zustand beinhalten (eine Schleife von Vorrängen oder eine äquivalente
Unbeständigkeit), so leitet der Mechanismus eine geeignete Rückleitung der Anforderung oder eine Korrektur
derselben ein.
Änderungen des Mechanismus umfassen die Art und Weise, in der
die Vorränge aufgezeichnet werden und in der die Information als Grundlage der Feststellung angenommen wird, sowie den zur
Erkennung der Vorränge und zur Bildung einer Schleife von Vorrängen oder einer äquivalenten Unbeständigkeit benutzten Mechanismus,
wenn der spezielle Befehl angenommen wird.
Andere wesentliche Veränderungen umfassen die Hinzufügung eines begleitenden Schutzes und die Art der Maßnahme, die für eine
Wiederauffindung vorgesehen ist.
Anhand von in den Figuren der beiliegenden Zeichnungen dargestellten
Ausführungsbeispielen sei die Erfindung im folgenden näher beschrieben. Es zeigen:
Fig. 1 die Grundelemente der Konfiguration, bei der die Erfindung Anwendung findet.
Fig. 2, 2a, 2b, 2c, 2d und 3 Beispiele von Überlappungen.
Fig. 4, 5a, 5b, 5c und 5d eine graphische Darstellung der Beziehung zwischen den Prozessen.
Fig. 6a und 6b die Matrix der Beziehungen (ein Werkzeug für das erfindungsgemäße System) und einen entsprechenden
Graphen.
Fig. 7 den Cchutzmechanismus "Keine Abhängigkeit" eines
bevorzugten Ausführungsbeispieles.
8098U/0872
27U251
Fig. 8 die allgemeine Auslegung des Schutzmechii.iisir.us
gemäß der vorliegenden Erfindung.
Fig. 9, 1O, 11, 12 und 13 die grundlegenden Komponenten
eines Computersystems und Einzelheiten verschiedener
Subsysteme, wie sie von der Erfindung verwendet werden.
Fig. 9a, 9b und 9c die Benutzungstabellen, die Matrix
der Beziehungen und die beeinflußten Systeme! err.entlisten,
die grundlegende Werkzeuge für di? vorliegende Erfindung bilden.
Fig. 14 und 15 Variationen des Schutzmechanisni'is "Reine Abhängigkeit" gemäß der vorliegenden Erfindung.
Fig. 16a und 16b zwei Verwirklichungen der grundlegender.
Funktionen FESTSTELLUNG NACHFOLGER und FESTSTELI,UXG
VORGÄNGER gemäß der Erfindung.
Fig. 17a und 17b zwei hardwaremäßige Verwirklichungen der
gleichen Befehle gemäß der Erfindung.
Fig. 18 und 18a ein bevorzugten Ausführungcbsispiel dos
Freigabemachanismus gemäß der Erfindung.
Fig. 19a und 19b zwei Verwirklichungen der Funktionen
FESTSTELLUNG NACHFOt-GRR und FESTSTELLUNG VORGÄNGER
gemäß der Erfindung.
Fig. 20a und 20b zwei hardvaremäßige Verwirklichungen der
gleichen Befehle gemäß der Erfindung.
Allgemeine Erläuterungen des grundlegenden Konzepts.
1. Konfiguration
Es wird eine Konfiguration verwendet (z.B. ein Computer r.y:;ten) ,
wobei η unabhängige Aktivitäten (-.B. Prozesse) gleichzeitig
bearbeitet werden. Die Aktivitäten können einige von m Systemmittel
(z.B. Datcnb-nnkeJementL wie Datensätze, Seiten Ui?T.;.)
benutzen (z.B. Le fen oder Schreiben), up. ihre Tasks durchzuführen.
B098H/0872
27U251
Das Wesen der Aktivitäten ist dergestalt, daß, wenn sie auf einmal in irgendeiner Reihenfolge bin zur Vervollständigung
bearbeitet werden, die Tatsache, daß ein Systemmittel durch
mehr als eine Aktivität benutzt worden ist, keine Überlappung
(Interferon?) darstellt.
Wenn stattdessen, v;ie bei dieser Konfiguration, die Aktivitäten
in einem bestimmten Maß gleichzeitig ausgeführt werden,
so kann die Tatsache, daß ein Systemmittel durch mehr als
eine Aktivität benutzt werden kann, zu falschen Resultaten führen. Das System muß daher den erforderlichen Schutz gegen
den Auftritt einer solchen Überlappung bieten.
Dit· theoretische Natur e;incr solchen Überlappung ist in folgendem
Aufsatz beschrieben worden: "On Managing lnterforer.ee
caused by Database Sharing", von Mario Trinchieri, veröffentlicht
von Al ta Frequenz?., November 1S75.
Beschreibung cic;s Problems
Die grundlegenden Elemente der Konfiguration r>ind in Fig. 1
dargestellt. Dac '.'ntegritätssysterri J.S. bildet das den
Schutzmechnnismui; aufweisende Element. '
Um das Problem ?.u beschreiben, sei zunächst angenommen, daß
die Aktivitäten (eic werden als Prozesse oder genauer als Prozeßpliaren in Frzug auf die Computerkonfiguraticn bezeichnet)
jeweils so bearbeitet v/erden, daß nur eine Aktivität zum gleichem Zeitpunkt bearbeitet wird. Diese Aktivitäten
nelunen Zugriff auf einige- ilysteirunittel (zum Lesen, Schreiben
oder zum Fortschreiben einer Information). Da ein Prozeß immer bocmdet ist, bevor ein anderer Prozeß ausgelöst wird,
gibt es keine Überlappung zwischen den Prozessen. Es ist kein Schut'.'.mechiinirmus erforderlich.
8098H/0872
BAD
Der Prozeß a nimmt Zugriff auf einen Datensatz, der den Rechnungsausgleich (100 J?) von Herrn X aufweist, um diesen
zu lesen (Schritt 1). Der Prozeß a berechnet sodann den neuen Saldo, der sich auf Grund einer Abhebung des Herrn X
ergibt (100-10=90 #; Schritt 2). Schließlich nimmt der
Prozeß a erneut Zugriff auf den Datensatz, um ihn fortzuschreiben, z. B. den neuen Saldo (90 £) in ihn einzuschreiben (Schritt 3).
Sodann wird der Prozeß b aktiviert, der eine andere Operation (eine Einzahlung) hinsichtlich des gleichen Datensatzes
des Herrn X ausführt. Er liest (90 $>-, Schritt 4) ,
er berechnet 90+20=110 Ji (Schritt 5) und er schreibt 110 J?
(Schritt 6).
Der Prozeß a und der Prozeß b überlappen nicht.
Die Folge der Ereignisse ist in Fig. 2, Fall Λ dargestellt.
Eine andere vollständig legitime Aktionsfolge kann durch
die nachstehende Folge vorgegeben sein: Der Prozeß b wird zuerst bearbeitet und der Prozeß a wird an zweiter Stelle
bearbeitet. Fall B gemäß Fig. 2. Es sei nun angenommen, daß von der vorstehenden Einprozeß-Betriebsweise nunmehr
auf eine Mehrproseß-Betriebsweise übergegangen wird: Der
Prozeß a und der Prozeß b sind gleichzeitig v/irksam.
Das Interesse für eine solche Betriebsweise wird durch den höheren Benutzungsgrad des Systemes und damit durch den
höheren Datendurchfluß vorgegeben, der im allgemeinen erzielt werden kann, vorausgesetzt, daß ein Schutzmechanlsmus
gegen Überlappungen existiert. Um die Gefahr der Überlappung zu veranschaulichen, sei das vorliegende Beispiel
erneut betrachtet.
809814/0872
-12- 27U251
Der Prozeß a uric· der Prozeß b lesen beide den alten f.ildo vor
irgendeiner Fortschreibung, und sie führen ihre Berechnungen auf dieser Baris durch und schreiben ihre Ergebnisse nieder.
Die erste der beiden Niederschriften (Fall C gemäß Fig. 2) wird durch die zweite Niederschrift überschrieben (wie dies
in jedem Fall geschehen muß), aber das endgültige Ergebnis ist falsch.
Die Überlappung tritt auf, da die beiden Prozesse den gleichen alten Saldo behandeln. Da dieses Ereignis nur eine geringe
Wahrscheinlichkeit des Auftrittes besitzt, ist die Gleichzeitigkeit der Operation im allgemeinen nützlich, vorausgesetzt,
daß Fälle wie der oben geschilderte durch einen eingebauten Schutzmechanismis berücksichtigt werden.
Die Überlappung, die anhand des Beispiels zweier Prozesse und eines Datensatzes aufgezeigt wurde, kann im allgemeinen irgendeine
Anzahl von Systemmitteln und Prozessen in einem mehr oder weniger komplexen Muster umfassen, wie dies später erläutert
wird. Der Schutzniechanismus muß in der Lage sein, irgendeine
Überlappung zu erkennen und die geeigneten Maßnahmen vorzunehmen .
3. Stand der Technik
Die bislang verwirklichten Schutzmechanismen basieren gewöhnlich auf der Verriegelung oder Zuordnung von Systemmitteln zu
den Prozessen. Ihre Wirksamkeit kann auf einer anschaulichen Basis erläutert werden.
Zum Beispiel: Die von einem Prozeß benötigten Systemmittel, sofern
im voraus bekannt, werden diesem Prozeß zugeordnet (im voraus zugeordnet) und für andere Prozesse nur zugänglich gemacht,
wenn der derzeitige Prozeß beendet ist. Alternativ werden die Systemmittel einem Prozeß sobald zugeordnet, wie das
Erfordernis für ihre Verwendung durch den Prozeß in Erscheinung
tritt. 8098U/0872
27U251
Im Beispiel des vorliegenden Abschnittes (Fall C) würde das
zunächst von dem Prozeß a benutzte Systemmittel diesem Prozeß bin zu seiner Vervollständigung zugeordnet sein und der Prozeß
b könnte nur warten.
Diese Zuordnungs- und Verrlegelungsprozeduren können einen
Schutz für tfehrprozeß-Konf igur<ttionen bilden; sie schöpfen jedoch
nicht alle Möglichkeiten eines Mehrfachzugriffes aus, die
ein System bieten kann, und sie sind nicht iminun gegen andere
Nachteile.
Um diesen Punkt ^u veranschaulichen, sei ein anderes Beispiel
betrachtet. Der Prozeß a wünscht ein Betriebsmittel zu lesen; der Prozeß b wünscht das gleiche Betriebsmittel zu lesen und
fortzuschreibsn. Fig. 3.
Ein Verfahren von "exklusiven Zuordnungen" verriegelt das Systemmittel
mit dein Prozeß, der es zuerst liest. Der andere Prozeß kann auf es nicht zugreifen und muß warten, bis der erste Prozeß
beendet ist und das Systemmittel freigegeben wird. Dies
führt zu einem Zeitvorlust hinsichtlich des v/artenden Prozesses.
Ein anderes Verfahren kann ausgedacht werden, das einem Systemmittel
gestattet, in einem gemeinsamen Lesemodus oder in einem
gemeinsamen Lese-/Exklusiven Schreib-Modur? betrieben zu werden.
Dieses Verfahren gestattet zunächst ein Lesen hinsichtlich beider Prozesse und erlaubt ferner dem Prozeß b nur dann zu schreiben,
wenn der Prozeß a beendet ist. Dies kann in Abhängigkeit von dev relativen Zeitsteuerung eine Verzögerung oder auch keine Verzögerung
des Prozesses b zur Folge haben.
Tn jedem Fall ist die Verzögerung nicht et forderlich, da das
Lesen durch den Prozeß a keine Überlappung hervorrufen wird.
8098U/0872
- 14 - 27AA251
Die vorgeschlagenen Verfahren (siehe nächster Abschnitt) berücksichtigen
diese Tatsache.
4. Die neue Lösun
Die grundlegende Idee ist auf die Beobachtung gegründet, daß
dafinitionsgemfiß keine Überlappung in einer Einprozeß-Konfiguration
vorliegt (siehe Abschnitt 2).
Wenn daher sichergestellt werden kann, daß in einer Mehrprozeß-Konfiguration
auf die Systemmittel durch die verschiedenen Prozesse in einer Folge zugegriffen wird, die in einer Einprozeß-·
Konfiguration aufgetreten sein konnte, co kann eine Überlappung
nicht auftreten.
Gans allgemein kann man daher eine Überlappung definieren als "den Auftritt einer Folge von Zugriffen, die in einer nicht gemeinsam
benutzten Konfiguration (Finprozeß-Konfiguration) aufgetreten
sein könnten und die nicht durch ein Äquivalent einer solchen Zugriffsfolgc-; dargestellt v/erden können".
Die Hinzufügung des Zusatzes "äquivalenz" rührt von der Tatsache
her, daß das was tatsächlich von Iiedeutung ist, nicht die
tatsächliche Zugriffsfolge, sondern die in diesen Zugriffen beinhalteten
Dat.en sind. "Insbesondere ist es absolut irrelevant, daß
ein Systemmittel zuerst durch einen Prozeß a und sodann durch
einen Prozeß b oder umgekehrt gelesen wird, vorausgesetzt natürlich, daß aas Systemmittel in der Zwischenzeit nicht verändert
worden ist.
Um diesen grundlegenden Gesichtspunkt zu erklären, sei das Beispiel des Abschnittes 3 (Fig. 3) betrachtet.
Die Folge des Falles 1 ist typisch für eine Einprozeß-Konfiguration,
wenn der Prozeß a zuerst abläuft und von dem Proßeß b gefolgt wird, wenn dor Prozeß a beendigt ist. Die Folge wird
809814/0872
27U251
daher durch die neue Lösung als sicher angesehen und :er entsprechende
SchutziTiechanismus gestattet ihren Auftritt ohne
irgendeine Verzögerung für den Prozeß b, ganz gleich ob der Prozeß a bereits beendet ist oder nicht.
Die Folge des Falles 2 kann in einer Einprozeß-Konfiguration nicht aufgetreten sein, da der Prozeß b dem Prozeß a folgen
mußte oder umgekehrt. Nichtsdestoweniger erkennt die neue Lösung dio Tatsache, daß der Prozeß a genau die gleichen Werte
gelesen haben würde, wenn der Prozeß a das Lesen vor dem Prozeß
b durchführt; dies bedeutet, daß die neue Lösung erkennt, daß die Folge des Falles 2 der einen Folge des Falles 1 entspricht.
Der Schutzmechanismus betrachtet daher diese Folge als sicher und gestattet einen Zugriff ohne Verzögerung.
Es seien nun die Fälle überprüft, wie sie im Abschnitt 2 (Fig.2)
dargestellt sind.
Eine Folge, wie diejenige des Falles Λ und B wird angenommen, da
eine solche Folge in einer Einprozeß-Konfiguration beständig ist. Eine Folge wie diejenige des Falles C kann in einer Einprozeß-Konfiguration
(v/o nur die Fälle Λ und B möglich sind) nicht auftreten und kann auch nicht als äquivalent zu dem Fall A oder B
betrachtet werden (da die beteiligten Daten verschieden sind).
Der Mechanismus interveniert daher in einem solchen Fall C, um
die Unversehrtheit der Resultate zu schützen.
Ee wurden bereits die Maßnahmen herkömmlicher Verfahren in Bezug
auf das Beispiel gemäß Abschnitt 3 überprüft.
Diese Maßnahmen führten zu unnötigen Verzögerungen.
Es ist interessant, festzustellen, daß in diesem Fall C gemäß Fig. 2 die Maßnahmen stattdessen entweder zu einer passenden
Θ098Η/0872
27U251
Verschiebung des Prozesses b oder zu einer endgültigen Stillstnndssj
tuation führen, wenn durch sie das Lesen beider Prozesse
a und b gestattet worden ist. Die letztere Situation (endgültiger Stillstand) ergibt sich aus der Tatsache, daß das
Systemmittel in einem gemeinsamen Lesemodus bereits zugeordnet
war und v;eder von dem Prozeß a noch dem Prozeß b zum Schreiben benutzt werden kann: Beide Prozesse werden in einer ausweglosen
Situation gefangen.
Die Überprüfung^mechanismen
Es sollte an dieser Stelle klar sein, daß, während der herkömmliche
Pcliutiinechanismus die Begrenzung der Zugriffsmöglichkeit
auf die Systemmittel (und daher im allgemeinen den Durchfluß
c3es Systemes) begrenzt, der neu vorgeschlagene Mechanismus
keine Beschränkung errichtet, sondern fortwährend die tatsächliche
Verwendung der Systemmittel überwacht und nur interveniert,
wenn er eine gefährliche Gliederung feststellt.
Der Uberprüfungcmechanisinus bildet den Schlüssel für diesen
Schutz.
Das grundlegende Konzept ist bereits in dem vorausgegangenen Abschnitt dargestellt worden:
"Eine Überlappung (Interferenz) ist der Auftritt einer Folge von Zugriffen, die in einem nicht gemeinsam benutzten
Fall nicht aufgetreten sein könnte und die nicht als ein Äquivalent einer Folge darstellbar ist, die in
einem nicht gemeinsam benutzten Fall aufgetreten sein könnte."
Dieses Konzept wird verwirklicht durch die Feststellung, welche
"Vorgänger" (zeitlich) unter den Prozessen durch die tatsächliche
Zugriffsfolge zu den Systemmitteln aufgedeckt werden und
durch Zurückweisung des Auftrittes einer Schleife innerhalb der
Vorgänger. 8098 U/0872
Eine Schleife von Vorgängern .st augenscheinlich absurd, da
sie beinhaltet, daß ein Prozeß zur gleichen Zeit sowohl einem
anderen Prozeß vorausgeht, als auch diesem nachfolgt.
Um diesen Punkt zu klären sei wieder das Beispiel gemäß Fig. 2
betrachtet.
Im Fall Λ wird eine Situation aufgedeckt, v;c die .MoPnahmen des
Prozesses a gesainthaft den Maßnahmen des Prozessen b vorausgehen
(siehe i'ig. 2a). Es liegt keine Schleife vor. Die Maßnahmen sind legitim. Der Fall B deckt eine umgekehrte aber ebenfalls legitime Folge auf (siehe Fig. 2b).
Fall C. Da der Prozeß a in das Systemmittel einschreib4;.,
der Prozeß b dieses gelesen hat, ist es augenscheinlich, daß bir?
zu diesem Augenblick der Vorgang "b geht a voraus" vorgelegen höt
(siehe Fig. 2c).
Sobald der Prozeß b in das Systemmittel einzuschreiben versucht,
muß die zusätzliche Beziehung "a geht b voraus" erkanr.r. v/erden
und dem Diagramm hinzugefügt werden (siehe Fig. 2d).
Hierdurch wird eine Schleife geschaffen, die. auf Grund ihrer Absurdität
durch den Uberprüfungsmechanismus nicht toleriex't werden
kann.
Das Beispiel bezieht sich auf zwei Prozesse und ein Systemmittel.
Der allgemeine Fall befaßt sich mit η Prozessen und irgendeiner
Anzahl von Systemmitteln. Das entsprechende Diagramm besitzt einen
Knoten pro Prozeß und gibt fortlaufend die Aktivitiitsentwicklung
des Systemes wieder.
Einige Knoten können viele Beziehunger, aufweisen und einige
Knoten können gar keine Beziehungen aufweisen.
8098U/0872
-is- 27U251
Eine Vielzahl von Schutzineclv.nir.nien können auf dem grundlegenden
Konzept aufgebaut werden .Einige Verwirklichungen sind in dem zuvor
erwähnten Aufsatz beschrieben.
Sie weisen alle ein gemeinsames Merkmal auf: Die Suche nach
einer Schleife oder einem äquivalenten Widerspruch.
6. Die Regeln für die Feststellung und das Prinzip der Interferenz.
In dem Beispiel des vorausgegangenen Abschnittes waren die
vorausgehenden Prozesse auf einer ziemlich intuitiven Grundlage eingeführt, vorder.. Die Regeln, mit der vorausgehende
Prozesse festgestellt werden können, können wie folgt angegeben werden:
Wenn ein Prozeß a ein Systemmittel liest, das durch einen Prozeß b geschrieben wurde, so wird die Zeitfolge "a folgt auf b"
notiert. (Siehe Fig. 5a).
Wenn ein Prozeß η ein Systemmittel schreibt, das zuvor durch
einen Prozeß b gelesen oder geschrieben worden ist, so wird die Zeitfolge "a folgt auf b" notiert (Siehe Fig. 5b).
Wenn ein Prozeß α ein Systemmittel liest, das zuvor durch einen Prozeß b gelesen wurde, so wird die Zeitfolge "a folgt auf b"
nicht notiert, da sich das Ergebnis nicht verändert, wenn die Zeitfolge umgekehrt wird.
Basierend auf diesen Regeln bildet folgendes Ereignis ein nichtakzeptierbares
Ereignis: Ein Ereignis, das zuvor errichteten Zeitbeziehungen widerspricht, niimlich ein Ereignis, das eine
Schleife schließt (Siehe Fig. 5c).
Auf formellere Weise kann das Prinzip der Überlappung wie folgt
definiert werden:
"Bei unabhängigen Prozessen, die gleichzeitig bearbeitet
werden und gemeinsam auf Systemmittel (z.B. Daten) zugreifen,
8098U/0872
27U251
ein Prozoß, der ein Systemmittel liest, wird
als einem Prozeß nachfolgend bezeichnet, der das Systemmittel geschrieben hat.
Ein Prozeß, der in ein Systemmittel einschreibt., wird als einem Prozeß nachfolgend bezeichnet,
der das Systemmittel gelesen oder geschrieben hat.
Wenn die Gruppe der so gebildeten vorausgehenden Prozesse eine Schleife bildet, so ist eine Überlappung aufgetreten,
die die Prozesse innerhalb der Schleife betrifft."
Es kann für irgendeine praktische Verwirklichung des neuen Konzeptes nützlich sein, festzustellen, daß der Schutzmechanismus
fortschrittlicher aber nicht notwendigerweise auch komplizierter wird. Tatsächlich erfordert die Anwendung
des Konzeptes die Auflistung der
Prozeß~Benutzer des Systems und
die Art der Benutzung (Lesen/Schreiben) für jedes Systemmittel (jede Liste enthält nur die nicht bereits
gelöschten Prozesse).
Die Feststellung der Schleife vorausgegangener Prozesse, die dieser neuen Klasse eigentümlich ist, ist nicht bereits von
selbst komplexer als eine entsprechende Feststellung von Stillstandsverriegelungen, die bei dem herkömmlichen Mechanismus
erforderlich ist.
Tatsächlich kann die neue Klasse durch die Ausführung eines neuen Befehles verwirklicht werden, wobei ein Makrobefehl
oder eine kleine Folge von Befehlen in der Software, Firmware oder nur in der Hardware vorgesehen ist, was von dem
gewünschten Grad des Austausches zwischen Hardware und Software abhängt.
8098U/0872
Bei einer allgemeinen Interpretation den neuen Konzeptes
ist es nützlich, festzustellen, daß der Ausdruck "ein Prozeß liest (oder schreibt) ein Systemmittel" sich auf jede Maßnahme
bezieht, die auf ein Systemmittel einwirkt, um Information ohne deren änderung (oder die Hinzufügung der Information
und die Änderung derselben) zu erzeugen.
7. Konsequenzen des Dasiskonzeptes.
Das Basiskonzept setzt ein grundlegendes Verständnis des
Phänomens der Überlappung voraus und setzt Klarheit hinsichtlich aller Mechanismen zur Steuerung des gemeinsamen
Zugriffes auf die Systemmittel voraus. Das neue Konzept kann sowohl benutzt werden, um einen neuen Mechanismus und ein
Verfahren zum Schutz vorzuschlagen, als auch die Gültigkeit der bestehenden Mechanismen zu prüfen.
Ein Schutzmechanismus stellt eine Systemmöglichkeit dar, die
die gleichzeitige Ausführung von Prozessen gestattet, wobei diese Prozesse als auf einer Einprogramm-Konfiguration ausführbar
angesehen werden, wo das Risiko der Überlappung nicht vorliegt.
Zwei grundlegende Lösungen können verfolgt werden, um die erforderliche
Schutzeinrichtung zu bilden:
1. Gestatte den freien Zugriff auf die Systemmittel, überwache aber die tatsächliche Folge der Operationen.
2. Lege geeignet ausgewählte Begrenzungen hinsichtlich der Freiheit der Operationen fest, um unerwünschte
Muster auszuschließen.
Zu diesen beiden Lösungen muß eine dritte Klasse von Lösungen addiert werden:
3. Kombiniere die überwachung der ersten Lösung mit den
Beschränkungsauflagen der zweiten Lösung.
S0Ö8U/0872
Di'.· Abwesenheit eines allgemeinen Kriteriums, wie und vas
zu überwachen Lot, macht die zweite Lösung für die herkömmlichen
Verfahren geeignet (Zuordnungs- oder Verriege lung riverfahren)
. Das grundlegende Konzept der Überlappung führt
zur Überwachung bei der ersten und dritten Lösung. Als Beispiele
der ersten und dritten Lösung (die neuen Verfahren) seien die "Freilauf "-Lösung (ein Le«e/üchreib-Verfahren nit
gemeinsamem Zugriff) und die "koine Abhängigkrif-Lösung
(ein Leseverfahren mit gemeinßoniem Zugriff und ein exklusives
Schreibverfahren) genannt, die weiter unten beschrieben werden.
Es ißt wichtig, festzustellen, daß die huf Inge vor. FeschränVungen,
die für die dritte Klasse typisch sind, zu der Einführung des "Warte"-r.ustandar; air. mögliche Auswirkung des Mechanism1.!??.
nebt->n der Bestätigung für die Fortsetzung oder dem Befehl für
eine Rückspaicheraktion führt.
Die dritte Klasse umfaßt die erste Klasse, die zu einer /vrt
Unterklasse wird. Die weiter unten nüher erläuterte Erfindung befaßt sich daher in der Hauptsache mit dieser dritten Klasse.
Diese Klasse umfaßt in ihrer breitesten Definition irgendeint;
Kombination von Überwachung»maßnahmen mit der Auflage von besonderen
Beschränkungen für irgendwelche Gx-ündo.
Das Prinzip der Überlappung begründet die Richtigkeit eines "Fortschreitens"; die zusätzlichen Beschränkungen beschränken
die Wiederaut findung, die Speicherplatzanforderung u<iw. Die
Lösung"keine Abhängigkeit" ist ein Spezialfall dieser Klasse
und wird im Abschnitt 10 erläutert. Der allgemeine Fall wird im Abschnitt 11 und daran anschließend dargestellt.
8. Rück speicher ungsmaßnahinon
Um einen Schutzmechanismus vollständig zu erläutern, ist es
erforderlich, auch den Mnßnahriorivsrlauf zu beschreiben, den
8098U/0872
27U251
der Mechanismus verfolgt, wi:nn eine Überlappung aufgetreten
ist. Unter der Annahme, daß der letzte Zugriff, der die Überlappung
s sch le if e schließt, noch nicht ausgeführt worden ist,
ergeben sich zwei mögliche Alternativen:
1. Vermeidung dieses Zugriffes.
2. Eliminierung einiger Zeitbaziehumjen, um die Überlappung
sschleife zu vermeiden.
Die erste Alternative bedeutet keine änderung der durch den
Prozeß ausgegebenen Anforderung, was eine Möglichkeit darstellen
würde, die im allgemeinen ein Prozeß nicht besitzt:
Dies bedeutet, die: Anforderung mit einein unterschiedlichen Zugriff zu befriedigen. Dies ist der Fall einer Leseanforderung.
Wenn es möglich ist, auf eine vorhergehende Version (Ausgabe) des gleichen Systemmittels Zugriff zu nehmen, so
wird die nicht- akaeptiorbare äeitbeziehung reversiert und
wird aJrzeptierbar (fest ausgezogene Linie P1 v ρ« gemäß
Fig. 5d anstelle der gestrichelten Linie p- - - -^P1)- Unter
Reversierung wird hierbei verstanden, daß der Leseprozeü , dem
es nicht gestattet war, einem Schreibprozeß einer bestimmten Version zu folgen, nunmehr angefordert wird (und freigegeben
wird), i'm dem gleichen Schreibprczeß vorzauszugehen.
Es sei darauf verwiesen, daß dieser "historische" Leser-rozei?.,
obgleich in höchstem fiaße wünschenswert, keine ausführbare Lösung in bestimmten Verwirklichungsbereichen darstellt.
Die zweite Alternative wird durch Ausscheidung eines oder mehrerer Prozesse verwirklicht. Verschiedene .Methoden können
vorgeschlagen werden, um zu entscheiden, welcher Prozeß oder welche Prozesse auszuscheiden sind, da im allgemeinen mehr als
eine Lösung möglich ist. Die nächsten beiden Unterabschnitte schlagen vor und erlMutern sehr einfache Verfahren, die eine
quasi-optimale Lösung und einen sehr ausgeklügelten Algorithmus
bieten.
8098U/0872
.23- 27U251
Eliminierung einer Uborlapf<· ings sch!eife.
Es seien einige grundlegende Diskussionspunkte erörtert:
1. Hs sei angenommen, daß eine vorangegangene Ausgabe
(ebenfalls bezeichnet als "Zuvor"-Ausgabe; eines
Systemmittels gesichert int, wenn ein Prozeß dip se
zunächst modifiziert, und daß diese Ausgabe aufrechterhalten
wird bis der sie verändernde Prozeß gelöscht worden ist. (Ein Stapel vorangegangener Ausgaben kann
für jedes Systemmittel existieren). Dan System kann daher aurgewählte Prozesse ausscheiden und die modifizierten Systemmittel zurückspeichfirn. Ein Fehlen
dieser Möglichkeit würde eine unterschiedslose Zurückverlagerung aller Prozesse und Systemmittel zu einem
passenden Prüfpunkt erfordern. Ein Proz&ß wird hierbei
als "gelöscht" bezeichnet, wenn er erfolgreich beendigt ist und alle Prozesse, von denen er abhängt, ebenfalls
gelöscht worden sind. Da der Prozeß mit einigen anderen Prozessen überlappen kann und die Wahlmöglichkeit der
Ausscheidung dieses Prozesses im passenden Fall erhalten bleiben soll, wird bevorzugt, einen Prozeß zu
löschen, "wenn er erfolgreich beendigt ist und alle Prozesse, auf die er folgt,ebenfalls gelöscht worden
sind".
2. Zur Eliminierung einer Überlappung ist es unwesentlich, welcher Prozeß oder welche Gruppe von Prozessen ausgeschieden
wird (primäre Ausscheidungen), vorausgesetzt, daß durch die Unterdrückung die Schleife geöffnet wird.
3. Primäre Ausscheidungen können die Unterbrechung anderer
Prozesse (sekundäre Ausscheidungen) verursachen, wenn die Gültigkeit der letzteren Prozesse von der korrekten
Beendigung des früheren Prozesses abhängt.
ΘΟΘβη/0872
-24- 27U251
4. Der der Unterbrechung verschiedener Prozesse zugeordnete
Schellen kann als unterschiedlich beurteilt werden,
je nach dor definierten Wertigkeit für jeden Prozeß. Die Wertigkeit hängt hierbei von solchen Faktoren, wie
die Ansah] der modifizierten Systemmittel, der Existenz
von bareitc mit der Außenwelt ausgetauschten Nachrichten,
Prioritäten usw. ab.
Es liegt nun auf der Hand, daß das folgende Verfahren zur
Eliminierung einer Uberlappungsschleife vorgeschlagen werden
kann:
1. Jeder Prozeß oder jede Prozeßgruppe, die bei ihrer Unterbrechung die Schleife öffnet, wird als Kandidat
betrachtet.
2. Dje abhängigen Prozesse werden für jeden Kandidaten
bestimmt.
3. Die Wertigkeiten eines jeden Kandidaten und seine Abhängigkeiten v/erden auf summiert.
4. Die minimale Wertigkeit bestimmt den optimalen Kandidaten.
Eine Alternative zu diesem Verfahren wird durch die folgende
sehr einfache Regel gegeben:
"Wenn einer Anforderung nicht stattgegeben werden kann, da sie die Beziehung ^p1 folgt auf p2" enthält, während
P2 bereits auf p. folgt, so wird der Prozeß p- und die
davon abhängigen Prozesse abgebrochen".
Die Überlegung bei diesem Verfahren ist sehr einfach: Zunächst
ist die Unterbrechung des Prozesses p- ausreichend, um die
Schleife zu öffnen. Zweitens ist es höchstwahrscheinlich, daft
der Prozeß p2 eine niedrige Anzahl von Sekundttrunterbrechungth
hervorruft, die nahe bei dem Minimum liegen, da der Prozeß p2
der letzte Prozeß in der identifizierten ttberlappungsschlelf«
i8t· 809* 14/0672
Dies j Regel ist sehr attraktiv auf Grund des Fehlens von Berechnungen
und Buchf ührungsrnaßnahmen und wiegt die Vorteile
einer möglichen besseren Wahl, wie sie durch ein ausgeklügelteres Verfahren angeboten wird, gleichsam auf.
Bei diesem Verfahren können die gesamten Rückspeicherungsmaßnahmen
durch die folgende; Anweisung summarisch wiedergegeben
v/erden:
"Wenn eine Anforderung für ein Systemmittel oinc Beziehung
"p. folgt auf p-" enthalt, während p? bereits
auf p- folgt, und wenn eine vorausgegangene Version des Systemmittels nicht zur Umgehung dos Froblemr. benutzt
v/erden kann, so scheidet der Prozeß p„ mit seinen
Abhängigkeiten aus."
Eliminiorung von Mehrf ach-tlberilappungen
Wenn eine Anforderung mehr als eint· Beziehung enthält, die
nicht akzeptiert werden kann, so kann die oben erwähnte Rückspeicherungsprozcdur
verwendet werden, um die Überlappungen jeweils eine pro Zeitpunkt-zu eliminieren. Nichtsdestov.enicrer
wäre es jer'och klüger, das Problem in seiner Gesamtheit zu betrachten,
um den Gesamtablauf der Maßnahmen zu optimieren, anstatt eine Teiloptimierung durchzuführen.
Das auf der minimalen Wertigkeit basierende Verfahren würde in diesem Fall als alternative Kandidaten jene Gruppen von Prozessen
prüfen, welche bei ihrem Abbruch alle Uberlappungsschleifp.n öffnen. Der optimale Kandidat ist dabei die Gruppe,
die die minimale Wertigkeit aufweist. Dieses Verfahren ir.t ausführbar aber beschwerlich. Um Berechnungen und Buchführungsir.aßnahmen
zu reduzieren, ist in diesem Fall eine einfache Regel wichtiger als bei der einfachen Überlappung. Diese Rcnjel stellt
sich folgendermaßen dar:
8098U/0872
27U251
Zwei Kandidaten worden betrachtet. Der erste Kandidat umfaßt den anfordernden Prozeß und den davon abhängigen Prozeß.
Der zweite Kandidat v/ird durch die Liste aller Prozesse gebildet,
die mit dem anfordernden Prozeß zu überlappen scheinen plus dew Prozeß, der von diesen abhängt.
Nenn der erste Kandidat weniger Prozesse als der zv/eite
umfaßt, so wird der anfordernde Prozeß und seine Abhüpciigkeiton
abgebrochen; andernfalls werden die Prozesse in der I.iüta abgebrochen.
Eine Verfeinerung dieser Regel sieht einen zusätzlichen Zwiscbenschril-.t.
der "Minimalj sinruny" der Liste in Betracht, bevor die
endgültige Entscheidung getroffen wird.
Jeder I'rozeß in der Liste v/ird selektiv geprüft, um sicherzustellen,
ob sein Abbruch (und der Abbruch seiner AbhangigkeiLcn)
nicht nur die Überlappung meiner "direkten Eignung" heilt, sondern
ebcinüo auch andere Überlappungen. Wenn dies der Fall ist,
bo können andere Prozesse aus der Liste eliminiert v/erden, wodurch diese auf ein Minimum reduziert wird.
9· Die "Freilauf"-Schutztechnik
Die "Freilauf"-Lösung gehört zur ersten Kla<?se der in Abschnitt
beschriebenen Verfahren und kann ebenfalls als die Losung des gemeinsamen Zugriffs beim Lesen/Schreiben bezeichnet werden,
da alle Systemmittel sowohl für Leue- als auch für Schreibzwecke
gemeinsam benutzt v/erden können, bis der Monitor, der das Prinzip der Überlappung liefert, das Erfordernis signalisiert,
den Maßnahmenablauf zu ändern.
Der Mechanismus kann wie folgt zusammengefaßt werden:
809814/0872
Jedefs Systemmittel notiert seine Benutzer und die
Art der Benutzung (z.B. Name des schreibenden Prozesses, Name des lesenden Prozesses 1, Käme den
lesenden Prozesses 2, ...).
Wenn ein Zugriff gewährt wird, so erinnert sich der Mechanismus in seinen eigenen Aufzeichnungen
jener Beziehungen, die zu dem spezifischen Zugriff gehören, gemäß den folgenden Regeln:
a. Eine Leseanforderung beinhaltet, daß der anfordernde Prozeß "auf den Schreibprozeß de« geforderten
Systemmittels folgt und von diesem abhängt". Die "Abhängigkeit" wird der "Zeit"-I?eziehung hinzuaddiert,
um die zusammengesetzte Anweisung "folgt und hängt ab" zu bilden, so daß der
Mechanismus nicht nur die für die Uberlappungsprtifung
erforderliche Information (die Zeitbeziehungen) , sondern auch jene erforderliche Information
besitzt, um die Prozesse zu identifizieren, die abgebrochen werden müssen (sekundäre
Unterbrechungen), wenn ein anderer Prozeß abgebrochen wird (primäre Unterbrechung).
b. Eine Schreibanforderung beinhaltet, daß der anfordernde Prozeß "auf den Schreibprozeß des angeforderten
Systemmittels folgt und von diesem abhängt und auf den Leseprozeß dieses Systemmittels
folgt und von diesem nicht abhängt". Eine Version "hängt nicht ab" des Mechanismus ist möglich aber
weniger geeignet.
Irgendeine Anforderung zum Zugriff auf ein Systemmittel
muß durch einen Mechanismus bestätigt werden, der entweder prüft, ob die enthaltenen Beziehungen
bereite akzeptiert worden sind und bei anderer Gelegenheit gespeichert worden sind oder ob sie akzeptiert werden können, da nie einige der zuvor bectehenden
Beziehungen in einer Schleife (Prinzip der Überlappungg^ß ffföff*-
27U251
4. Wenn die Anforderung der Prüfung nicht gentigt, so
wird folgendes veranlaßt:
a. Ein Leseprozeß wird auf eine vorangegangene Version des Systemmittels zurückgeleitet. Die Prüfung wird
wiederholt, bis die geeignete Version gefunden wird. Der Auftritt des Zugriffes und der neuen erhaltenen
Beziehungen wird regelmäßig gespeichert.
b. Ein Schreibprozeß verursacht den Abbruch eines Eindringlings und seine Abhängigkeiten; sodann werden
die Maßnahmen wieder aufgenommen.
(1) "Eindringlinge" sind jene Prozesse, deren Unterbrechung durch irgendeine der zuvor im Abschnitt
8 beschriebenen Regeln nahegelegt wird, um die festgestellten Überlappungen zu eliminieren.
(2) "Abhängende" sind all jene Prozesse, die durch die Kette der Beziehungen "folgt und hängt ab"
aufgedeckt werden, die zuvor durch den Mechanismus aufgezeichnet wurden.
Die Erfindung stellt eine unmittelbare praktische Anwendung der bislang erläuterten Kriterien dar. Ihr Hauptvorteil gegenüber der herkömmlichen Technik besteht darin, daß sie einen
maximalen gemeinsamen Zugriff auf Systemmittel unter Eliminierung des Viarte-Zustandes ermöglicht und die Fälle der zu heilenden Überlappungen durch Abbruch auf einem Pegel gestattet,
wobei dieser Abbruchpegel weit unterhalb des Pegels des "endgültigen Stillstandes" bei den gleichen Betriebsbedingungen
liegt. Der endgültige Stillstand tritt auf, wenn der Benutzer des geforderten Systemmittels ebenfalls auf ein anderes Systemmittel usw. in einer geschlossenen Schleife wartet.
Dieser letzte sehr wichtige Aspekt resultiert aus der Benutzung
von vergangenen Leseprozessen, woducch ohne ProzeßabbrUche
Situationen gelöst werden, die bei einem herkömmlichen Schute** mcchanismus zu einem unwiederrufliehen Stillstand geführt
haben würden.
8098U/0872
27U251
10. Dor Mechanismus "kci no Abhängigkeit"
Dieser Mechanismus gehört zu der dritten Lösung, wie er
im Abschnitt 7 für einen Schutzmechanismus aufgezeigt,
wurde. Der Grund für diesen Mechanismus liegt in dor
Forderung Tiach zur.älzlichon Merkmalen: Ks gilt die Unterbrechungen
zu beschränken und den Betrag tin Speicherkapazität
in Frenzen zu holten, dor für die ni cht~gel^f;chten
Versionen der Sy'jtnur.ittel,. die durch die Prozesse
modifiziert v/erden, erforderlich ist.
Dieser Mechanismus bietet einige der "Frei?auf"-Lösung
anhaftende Möglichkeiten; vermeidet aber sekundäre Unter.·
brechungen und begrenzt die Speicherung mo.i.sti;ns pro Systemmittel
auf eine "historisch1?" Version, Der Mechanismus
kombiniert die Regeln der "Ireilaur"-Lösung mi c der zusätzlichen
Beschränkung, daß nur die Zcitbezi.ehungen,
die einer iJichtabhangigkei t zugeordnet sind, freigegeben
werden ("folgt, hangt aber nicht ab").
Die resultierende Losung bositat die folgenden Charakteristiken:
1. Jedes Systemmittel kann höchstens eine Version
in einem nicht.-gelösr.hten Zustand aufweisen
(z. B., dessen Verurracher r.och nicht gelöscht
v/orden ist) .
2. Eine Anforderung zum Lesen eines Systemmittels wird an die letzte gelöschte Version des Systemmittels
gerichtet, er. sei denn, der 7\nforderer
hat selbst eine neue Ausgabe dnn Systemmittels geschaffen.
3. Lese- und Schreibanforderungen müssen dein Prinzip
der Uberlappungsprüftinq genügen.
809SU/0872
^ ORlGlNAl
27AA251
4. Der VJartoKustarid ist möglich.
5. Die Überlappung ruft al leine primäre Unterbrechungen
hervor.
Ke. ist interessant, festzustellen, daß die Zuordnungsrege]η
alleire nicht den gleichen Mechanismus schaffen können: Die
Prüfung ist erforderlich, da die Überlappungspfade sehr
komplex sein können.
10.1 per Mechan 1 smus "keine Abhängigkeit" - Detaillierte Eeschre.i
Die Annahme wird zugrunde gelegt, daß unabhängige Phasen von
verschiedenen Prozessen gleichzeitig ablaufen, gemeinsam auf eine Datenbank Zugriff nehmen und daß jeder Prozeß so programmiert
ist, als würde er alleine in dem System ablaufen.
Der Mechanismus bildet den erforderlichen Schutz gegen Überlappung.
Hine Phase bezeichnet hierbei insbesondere irgendeinen
Teil eines Prozesses, der erfordert, daß die Datenbank und irgendeine andere Informationsquelle während der Ausführung
dieses Teiles und bis zur Beendigung der Ausführung durch andere i'rozeßteile unverändert bleiben. Fs liegt auf der Hand,
daß die Unterteilung eines Prozesses in Phasen nur durch denjenigen vorgenommen werden kann, der die Prozeßabläufe vorschreibt
(z. E. der Programmierer), oder durch andere Personen mit gleichen Kenntnissen.
Der ganze Prozeß wird durch Vernachlässigung als eine Phase betrachtet und es liegt kein Zwang vor, irgendeine feinere
Unterteilung vorzunehmen. Eine Unterteilung in Phasen ist jedoch geeignet, die Wahrscheinlichkeit von Überlappungen
und die tatsächliche Buchführung des Schutzmcchanifimus zu
reduzieren.
Im gesamten Text (mit Ausnahme dieses Unterabschnittes a.Ts
ein Beispiel) wird der Ausdruck Prozeß der Einfachheit halber anstelle den spezielleren Ausdruckes Prozeßphase benutzt, um
8098U/0872
die Systeinelemente zu bezeichnen, die durch den Mechanismus
überwacht und geheilt v;erden, v/obei unterstellt wird, daß
der Schutzmechanlsmus ebensogut auf irgendeinen Unterteilungsnegel
der Prozesse, wie sie durch die Programmierer bestimmt werden, Anwendung finden kann.
Die grundlegende Information, die der Mechanismus aufrechterhält,
um seinen Zweck zu erfüllen, umfaßt:
1. Die Identität der Benutzer (Prozeßphasen) und
die Art der Benutzung (z.H. Name dos Lesenden 1,
Name des Lesenden 2, ..., Name des Schreibenden) für jedes Systemmittel, hinsichtlich dessen wenigstens
ein Benutzer sich noch in dem nicht-gelöschten Status befindet.
2. Die fortgeschriebene Wertigkeit einer jeden Prozeßphase, es sei denn, es werden die vereinfachten Regeln
der Wiederauffindung angenommen (siehe Abschnitt 8) .
3. Die zwischen den Prozeßphasen festgestellten Beziehungen, Ablauf oder Beendigung, aber noch nicht
gelöscht. Es wird hier angenommen, daß diese Beziehungen in einer Matrix mit einer Zeile und einer
Spalte für jede Prozeßphase organisiert sind. Gleichwertige Werkzeuge können für den gleichen Zweck verwendet
werden (Kassetten-Matrix, Graph, usw.). Theoretisch wird die Aufzeichnung dieser Beziehungen
nicht benötigt, da sie wiederholt von den Schreib/ Lese-Zeichenfolgen in der zuvor erwähnten Weise abgeleitet
werden können. Dies verlangsamt jedoch den Mechanismus. Jedes Element der Matrix (Fig. 6a) zeigt
an, daß:
a. Keine Beziehung festgestellt worden ist (Symbol 0),
oder
b. die Prozeßphase in der Zelle der Prozeßphase in
der Spalte (Symbol 1) folgt aber nicht von dieser abhängt, oder
8Q981A/0872
27A42'51
c. die Prozeßphase in der Zeile auf die Prozeßphase in der Spalte (Symbol 3) folgt und auf die Beendigung
und Löschung dieser Prozeßphase wartet.
Jedesmal, wenn eine Anforderung für einen Zugriff auf ein
Systemmittel vorliegt/ muß der Mechanismus diese bestätigen.
Der Mechanismus arbeitet hierbei wie folgt:
1. Zunächst identifiziert er jede in der Anforderung
enthaltene Beziehung, sofern vorliegend,
a. eine an die gelöschte Version adressierte Leseanforderung beinhaltet eine Beziehung, ob von ihr
eine nachfolgende nicht-gelöschte Version vorliegt: Ihr Schreibprozßß "folgt, hängt aber nicht
ab" von dem Leseprozeß.
b. Eine Schreibanforderung beinhaltet, daß der Anforderer "folgt und wartet" auf den Schreibprozeß
der nicht-gelöschten Version deE Systemmittels,
wenn bereits eine nicht-gelöschte Version des Systemmittels vorliegt, oder sie beinhaltet, daß
der Anforderer "folgt, aber nicht abhängt" von dem Leseprozeß des Systemmittels, wenn eine nichtgelöschte
Version des Systemmittels nicht vorliegt. Wenn der Schreib- oder der Leseprozeß der gleiche
wie der anfordernde Prozeß ist, so wird keine Beziehung notiert. Dies bedeutet, daß der Feststellmechanismus
nur in jenen Fällen aufgerufen wird, wo eine herkömmliche Zuordnungsmethode den Zugriff
verleugnet haben würde und eine PrUfung auf einen unwiederbringlichen Stillstand ausgelöst haben würde.
Dies unterstreicht die Feststellung, daß im vorliegenden Fall der Gesamtaufwand nicht größer als
bei herkömmlichen Verfahren ist.
2. Jede zuvor identifizierte Beziehung wird mit der Matrix überprüft, um zu nehen, ob sie bereits notiert
worden ist (zu diesem Zweck werden die Symbole 1 und
8098U/0872
27U251
als Äquivalent betrachtet, da die Prüfung nur die Zeitrelatlonen in Betracht zieht).
Wenn sich die Beziehung nicht in der Matrix befindet, so muß festgestellt v/erden, ob ihre Einführung in die
Matrix die Schleife schließen würde. Diese Prüfung ist einfach:
a. Retrachte die Prozessphase, die als erster Ausdruck
(P1) in der zu prüfenden Beziehung Cp1 folgt auf p~)
auftritt.
b. Prüfe die entsprechende Spalte in der Matrix.
c. Für jeder. Element der Spalte, die das Symbol 1 oder
3 aufweist, wird die entsprechende Prozeßphase am
Kopf dor Zeile betrachtet.
d. Für jede auf diese V/eise identifizierte Prozoßphure
werden rekurs.lv die Schritte (b) , (c) und (d) bin zur Auslöschung aller Verzweigungen oder bis der Prozeß
P2 gefunden ist, ausgeführt.
e. Die Auslöschung bedeutet, daß die Beziehung akzeptabel ist; das Zusammentreffen mit dem Prozeß p2 zeigt stattdessen
die Bildung einer Schleife an.
Eine wirksame Prüfung kann gleichzeitig alle Beziehungen
"P1 folgt auf P2"/ "Pi folgt auf p.,", ... usw. bestätigen,
die die Anforderung entha'lt (siehe den Abschnitt: "Die
fundamentale Prüfung auf Überlappung" und die folgenden
Abschnitte).
Wenn die Anforderung eines Zugriffs auf das Systemmittel nicht irgendwelche Beziehungen enthHlt oder die Beziehungen
bereits in der Matrix existieren bzw. zu dieser sicher hinzugefügt werden können, so wird die Anforderung
angenommen.
Wenn die Anforderung angenommen wird, so schreibt der
Mechanismus seine Datensätze (Matrix usw.) fort, und
die Operation wird entweder wie geplant fortgesetzt oder wenn sie das Einsohreiben in ein Systemmittel, das bereits
8Q98H/0872
27U251
eine nicht-gelöschte Version aufweist, erfordert, so tritt
der Prozeß in den Wartestatus ein.
Wenn die Anforderunq zurückgewiesen wird, so ergibt sich folgender
Maßnahmenverlauf:
1· Warten auf die nicht-gelöschte Version für eine Leseanforderung.
Wenn eine Leseanforderung nicht die gelöschte Version des geforderten Systemmittels benutzen kann, sondern
auf öle nicht-gelöschte Version adressiert werden muß,
so tritt der Leseprozeß in den Wartezustand ein. Der Mechanismus schreibt hierbei seine Datensätze entsprechend
fort.
2* unterbrechung bei einer Schreibanforderung. Gemäß der im Abschnitt 8 erläuterten vereinfachten Methode für den Fall, wenn nur eine Beziehung der Anforderung entgegensteht, wird die Prozeliphaoe unterbrochen, die als zweiter Ausdruck in der zurückgewiesenen Beziehung auftritt (es existieren keine sekundären Unterbrechungen). Wenn mehr als eine Überlappung vorliegt, so schlägt stattdessen die einfachste Methode des Abschnittes 8 die Unterbrechung des anfordernden Prozesses selbst vor. Wenn andererseits die Anwendung dies rechtfertigt, so wird der optimale Kandidat für den Abbruch mit einer der ausgeklügelteren Methoden identifiziert, wie sie im Abschnitt 8 erläutert sind.
2* unterbrechung bei einer Schreibanforderung. Gemäß der im Abschnitt 8 erläuterten vereinfachten Methode für den Fall, wenn nur eine Beziehung der Anforderung entgegensteht, wird die Prozeliphaoe unterbrochen, die als zweiter Ausdruck in der zurückgewiesenen Beziehung auftritt (es existieren keine sekundären Unterbrechungen). Wenn mehr als eine Überlappung vorliegt, so schlägt stattdessen die einfachste Methode des Abschnittes 8 die Unterbrechung des anfordernden Prozesses selbst vor. Wenn andererseits die Anwendung dies rechtfertigt, so wird der optimale Kandidat für den Abbruch mit einer der ausgeklügelteren Methoden identifiziert, wie sie im Abschnitt 8 erläutert sind.
Wenn eine Prozeßphase beendigt und gelöscht oder abgebrochen ist, so zeigt die Matrix der Beziehungen den oder dia Prozesse
an, die, sofern vorhanden, auf dieses Ereignis warten. Die Prozesse können nunmehr ihren Ablauf wieder aufnehmen, wobei sie
durch den Schutzmechanismus überwacht werden. Um unnötige Fälle von möglichen Unterbrechungen zu vermeiden, nimmt der Mechanismus
die wartenden Prozesse in einer Reihenfolge auf, die die
'8U/0872
unter diesen Prozessen bestehenden zeitlichen Beziehungen
respektiert.
Der Mechanismus beim Freilauf ist in dem Sinne "fortlaufend",
als zu irgendeinem Augenblick eine neue Prozeßphase in das System eintreten oder dieses verlassen kann, nachdem diese
Phase regulär gelöscht worden ist.
Es liegt auf der Hand, wie eine ähnliche Organisation den all
gemeinen Fall berücksichtigen kann, v/o Zeitbeziehungen, Abhängig keiten und Wartezustände durch den Schutzmechanismus tiberwacht
werden.
11. Der allgemeine Schutzmechanismus
Der Mechanismus, der bei der Lösung "keine Abhängigkeit" immer
dann interveniert, wenn ein Prozeß Zugriff auf ein Systemmittel zu nehmen versucht, kann so beschrieben werden, wie dies in
Fig. 7 dargestellt ist.
Die verschiedenen Rauten und Rechtecke entsprechen den in dem vorangegangenen Abschnitt 10 überprüften Operationen. Insbesondere tritt der Wartezustand auf, wenn der Zugriff, der,soweit
er eine Überlappung betrifft, perfekt legitimiert ist, eine "Abhängigkeit" hervorrufen würde.
Fig. 8 zeigt eine Verallgemeinerung des Falles, wo der Grund für einen Wartezustand Irgendein beliebiger sein kann.
Die Einzelheiten der beiden Fig. 7 und 8 werden später erläutert,
wenn die bevorzugten Ausführungsbeispiele beschrieben werden.
Um einen allgemeinen Schutzmechanismus zu vervollständigen,
muß eine Freigabe der Prozesse aus dem Wartezustand ebenfalls vorgesehen sein. Dieser zusHtzliche Mechanismus, der komplementär zu demjenigen aufgebaut ist, der die Prozesse in diesen Zustand bringt, kann besjser von VsXlJW Fall beschrieben werden.
Aui: jeden Fall ist der Freigabemechanismus, der bei der
Lösung "keine Abhängigkeit" gültig ist, höchst allgemein
und auf alle Fälle anwendbar, wo ein wartender Prozeß wieder aufgenommen werden muß, wenn ein anderer Prozeß
beendet und gelöscht oder abgebrochen wird. In diesen Fällen zeigt die Matrix der Beziehungen an, welche Prozesse
auf dieses Ereignis warten. Die Prozesse können jeweils einer für Pich wieder aufgenommen werden, wobei dies in einer Rei- *
henfolcje geschieht, die die unter den Prozessen bestehenden Beziehungen berücksichtigt. Jede Freigabe wird durch den
Schutzmec'hariisntus überwacht. Die Einzelheiten eines Mechanismus,
der dieses Konzept verwirklicht, werden später erläutert >
(Wiederaufnahme des Warte-Prozesses)*
Es sei darauf verwiesen, daß die Erläutertung des allgemeinen
Mechanismus explizit das Vorliegen eines Wartezustandes unterstellt. Tatsächlich können auch andere Auflagen, wie beispielsweise
eine Zurückweisung in Betracht gezogen werden. Obgleich festgestellt wurde, daß das Konzept des allgemeinen Mechanismus
zusätzliche Beschränkungen, welcher Art auch immer,aufweisen kann und nicht nur solche Beschränkungen, die zu einem
Wartezustand führen, boII im folgenden auf den Wartezustand
Bezug genommen werden, da er die höchste Wahrscheinlichkeit hinsichtlich eines Auftrittes aufweist.(Zurückweisungen aus
Sicherheitsgründen, aus Gründen der Geheimhaltung usw. werden vernünftigerweise vorgenommen, bevor der Mechanismus in Aktion
tritt).
Allgemeine Erläuterung ''..·/
Die Erfindung v/ird typischerweise^ in einer Hardware-Systemkonflguration
gemäß derjenigen in Fig. 9 verwirklicht, wobei dort ein Blockdiagramm des Honeywell-Computersyβtemε der fieri·
60 und insgesondere der Serie 64 dargestellt ist. Gemäß Fig. «f
8Q98U/0872
27U251
vetden die Subsysteme durch das Prozessor-Subsystem 101, das
Speicher-Subsystem 102 und das periphere Subsystem 103 ge~
bildet. Das Prozessor-Subsystem enthält eine Zenlraleinhoit
CPU-104 und die Ein/Ausgabe-Steu€;reinhei t IOC-105. Jedes
periphere Subsystem bestellt aus einer per inneren Steuereinheit PCU-106, einer Anzahl von Gcrät.eado.ptern DA-107 und
peripheren E/A-Geräten 108. Das Speicher-SubsysteM 1O2 umfaßt
Halblei ter-Epeichermodule,
Ein oder mehrere von diesen Subsystemen liegen in dem Gesamtsystem
vor und können in herkömmlicher Weise mittj.i nander verbunden
werden. Wenn mehr als ein Subsystem pro Typ vorliegt, so erfolgen die Verbindungen typischerwoise über eine Datenschiene
oder eine Doppelschiene bei einer Verwirklichung mit einem Knoten. Bei einer Mehrknctea-Verwirklichuiuj (verteilter
Systemaufbau) werden ebenfalls Nachrichtenaustausch-Subsysteme und ein Nachrichtenaustausch-Netxwerk verwendet.
Die typische Konfiguration, bei der die Erfindung Anwendung
findet, ist eine solche, wo die oben erv/'Umte Hardware, ganz
gleich, ob in einer Einknoten- oder in einer Mehrknoten-Architektur
und unabhängig davon, ob es sich um ein großes, mittleres, kleines oder sehr kleines System handelt, unter
Steuerung durch ein Betriebssystem benutzt wird, das eine Mehrprozeß- und/oder Mehrprograirim-Betricbsweise verwirklicht.
Eine Mehrprozeß-Betriebsweise erfordert mehrere Prozessor-Subsysteme , während eine Mehrprogramm-Betriebrweise in einem
System mit einem Prozessor verwirklicht werden kann. In beiden Betriebsweisen wird ein Prozeß ausgelöst bevor ein anderer Prozeß
beendet ist, und es können mehr als ein Prozeß gleichseitig
ablaufen.
Das Computersystem gemäß Fig. 10 stellt ein detailliertes Diagramm
des Honeywell-Computersystems der Serie 64 dar und ist
aus verschiedenen koordinierten Hardware-Subsystemen zusammengesetzt.
Diese Subsysteme sind: Ein Hnuptspeicher-Eubsystem 1011,
8Q98U/0872
ein Prozessor-Subsystem 1013 und drei periphere Subsysteme
1015, 1017 und 1019.
Das Prozessor-Pubsystem 1013 enthält eine Zentraleinheit CPU-1021 und eine Ein/Ausgabe-Steuerung IOC-1023. Die Zentraleinheit
CPU-1021 führt die grundlegenden Verarbeituncjsoperationen
der- ry.st.emes durch/ während die Einheit IOC-1023 jeglichen Informationsauntausch
zwischen dein Speicher-Subsystem 1O11 und den peripheren Subsystemen 1015, 1O17 und 1019 steuert.
Das Prozessor-ßubnystem 1013 umfaßt ferner einen Hauptspeicher-Synchronisierer
1025 und einen Pufferspeicher 1027. Der Hauptspeicher-Synchronisierer
1025 löst Konflikte, die bei der Benutzung des Hauptspeichers auftreten, wenn die Zentraleinheit
CPU-1021, der Pufferspeicher 1027 und die Einheit IOC-1023 Zugriff
anfordern. Die Konflikte v/erden auf einer Prioritätsbasis gelöst: Die Ein/Ausgabe-Einheit IOC besitzt die höchste;
Priorität gefolgt von der Speichereinschreibung (von der Zentraleinheit CPU-1021) und der Speicherauslesung in den Pufferspeicher
1027. Der Pufferspeicher 1027 ist ein kleiner Hochgeschwindigkeits-Pufferspeicher,
der ausgewählte Bereiche des Hauptspeichers reproduziert und eine Schnittstelle mit der
Zentraleinheit CPU-1021 bildet, um die mittlere Speicherzugriff szeit herabzusetzen. Während jedes Lesezyklus des Speichers
wird sowohl auf den Pufferspeicher 1027, als auch auf
den Hauptspeicher 1011 Zugriff genommen. Wenn die abzurufende Information sich bereits in dem Pufferspeicher 1027 befindet,
so wird der Versuch, den Hauptspeicher 1011 zu lesen, beendet, und es wird die benötigte Information stattdessen aus dem
Pufferspeicher abgerufen. Andernfalls wird der Hauptspeicher
1011 ausgelesen. Jedesmal, wenn der Speicher 1011 gelesen
wird, ruft die Zentraleinheit CPU-1021 eine gesamte "Seite" (32 Byte) auf, die die gesuchte Information enthält. Diese
Reite verbleibt in dem Pufferspeicher 1027 für eine Zeit,
die für weitere Bezugnahmen auf weitere Information innerhalb
8Q98U/0872
der Seite ausreichend 1st. Da die Operation des Pufferspeichers
1027 für den Systenibenutzer nicht zugänglich ist, kann day den
Computer steuernde Programm in jedem gegebenen Augenblick nicht feststellen, ob die verarbeitete Information aus dem Pufferspeicher
1027 oder aus dem Hauptspeicher 1011 abgerufen worden ist.
Der detaillierte innerhalb der Zentraleinheit CPU-1021 stattfindende
Betriebsablauf wird in einem bedeutenden Ausmaß durch Mikroprogramme gesteuert, die in einer Steuereinheit 1029 gespeichert
sind. Eine Steuereinheit dieser Art ist in der UE-PS 3 634 883 beschrieben. Eine detaillierte allgemeine Erläuterung
der Mikroprogramm-Steuertechniken wird in dem Buch "Microprogramming: Principles and Practices" von Camir S.
Ilusson, Prentice Hall, Inc., (1970) gegeben. Eine weitere detaillierte Beschreibung der Steuereinheit wird weiter unten
gegeben.
Ein Teil der Firmware zur Steuerung der Betriebsweise des Prozessor-Subsystems
1013 wird in eine Zone physikalischer Adressen in den Hauptspeicher 1011 (durch den schraffierten Bereich in
Fig. 10 angedeutet) eingeschrieben, wobei mit der physikalischen Adresse "Null" begonnen wird und die sich bis zu einer
"Grenzadresse" erstrecken. Dieser zusätzliche Satz eines Mikrocodes,
der in diesem Hardwarebereich des Hauptspeichers 1011 zum Zeitpunkt der Systeminitialisierung gespeichert ist, ist
speziell der besonderen Systeminstallation zugeordnet und enthält Information, bezogen auf den Typ und den Status spezieller
verwendeter Hardwaregeräte, die Systemkonfiguration und spezielle Firmwarewahlmöglichkeiten, die hinsichtlich dieser Installation
gewählt wurden. Eine weitere Steuerung des Prozessor-Subsystems kann manuell über in der Hardware zugängliche
Schalter und Druckknöpfe erfolgen, die auf der System-Bedienungskonsole SOP-1030 einem Operator zugänglich sind.
809814/0872
Die E/A-Steuereinheit IOC-1023 des Prozessor-Subsystems
erzeugt einen Datenweg zwischen irgendeinem peripheren Subsystem und dem Speicher-Subsystem. Dieser Datenweg überträgt
"Kanslanweisungen" an die peripheren Subsysteme und steuert
die sich ergebenden Datenübertragungen. Die Einheit IOC-1O23
bildet über den E/A-Kanal 1031 eine Schnittstelle mit den periphoren Subsystemen. Der Einheit IOC-1023 ist direkt eine
Lese/Schreib-Steuereinheit 1032 zugeordnet, die in der Lage
ist, zum Zeitpunkt der Systeminitialisierung eine installationsabhängige Steuerfirnware (wie durch den schraffierten
Bereich im Llock 1032 dargestellt) aufzunehmen. Die IOC-Steuereinheit
1032 speichert zusätzlich einen installationsabhängigen Mikrocode (der im Festwertspeicher abgelegt sein
kann, wie er durch den nicht-schraffierten Bereich der IOC-Steuereinheit
1032 dargestellt ist). Alternativ (oder zusätzlich) kann der Steuermikrocode für die Einheit IOC-1023 in
dem llardv/arebereich des Hauptspeichers 1011 gespeichert sein.
Jedes der peripheren Subsysteme 1O15, 1017 und 1019 umfaßt
eine periphere Steuereinheit, einen alleinstehenden mikro-. programmierten Prozessor, der die Belastung des Prozessor-Subsystems
1013 durch Steuerung der E/A-Geräte während E/A-Operationen erleichtert. Die peripheren Steuereinheiten bewerkstelligen
dies durch Bearbeitung von Befehlen, die in Kanalprogrammen enthalten sind, die im Hauptspeicher 1011
gespeichert werden. Diese Kanalprogramme steuern die arithmetischen, logischen, Ubertragungs-, Verschiebungs- und Ver-
fi< zweigungsoperatJonen, die in den peripheren Subsystemen ausgeführt
werden.
Die in dem peripheren Subsystem 1015 z. B. verwendete Steuereinheit
ist eine Aufzeichnungseinhett-Steuerung URC-1041, die
verschiedene Aufzeichnungsgeräte mit niedriger Geschwindigkeit, wie z. B. Karteneinheiten, Papierbandeinheiten, Nachrichtenübertragungsgeräte
und Systcmkonsolen steuert. Im
8098U/0872
27U251
Bei.piel gemäß Fig. 10 steuert die Steuerung URC-1O41 einen
Kartenleser 1043, einen Zeilendrucker 1045 und ein Paar von Fernsprechgeräten 1047. In dem poripheren Subsystem 1017 v/eist
die periphere Steuereinheit die Form einer Magnetbandsteuerung
1051 auf, die auf ein Paar von BandtransporteinrichLumjen 1053
und 1055 einwirkt. Die periphere Steuereinheit in dem Subsystem 1019 ist eine Massenspeicher-Steuerung 1061, die auf
ein Paar von Plnttenantriobceinhciten 1063 und 1OCL>
einwirkt.
Geröteadnpter DA zwischen jeder poripheren Steuereinheit und
den zugeordneten Geräten steuern und enthalten die zugeordnete Logik, die erforderlich ist, um den Nachrichtenaustausch
mit einem speziellen Typ eines Gerätes herzustellen. In Abhängigkeit von dem Typ steuert ein Geräteadapter DA ein Gerät
oder verschiedene Geräte.
Die von jeder periphere^ Steuereinheit ausgeführten Iiauptfunktionen
sind folgende:
(1) Die Umwandlung von Befehlen des Prozessor-Subsystems
in eine Reihe von Anweisungen, die von der zugeordneten
periphere-n Einrichtung akzeptabel sind;
(2) Packen und Entpacken von Daten in die von dem Prozessor-Subsystem
oder der geeigneten peripheren Einrichtung geforderte Form;
(3) Unterrichtimg des Prozessor-Subsystems von dem Status
des peripheren Subsystems und dem Status der Geräte, die sich unter seiner Steuerung befinden;
(4) unabhängige Auslösung und Verarbeitung von Fehlerund Wiederauffindungsprozeduren; und
(5) Gestattung einer on-line-Diagnosc einer vorgegebenen
peripheren Einrichtung ohne Störung der Operation der anderen Geräte.
8Q981A/0872
Die poripheren Steuereinheiten lösen Konflikte hinsichtlich
der dem Hauptspeicher zugeordneten Geräte ι während die Einheit
TOC Konflikte zwischen verschiedenen peripheren Steuereinheiten löst.
Gemäß Fig. 10 sind die peripheren Steuereinheiten 1041, 1051
und 1Ο61 so angeschlossen/ daß sie Mikrobefehle von Steuerspoichern
1042, 1052 und 1062 entsprechend zugeführt erhalten, wobei jeder der Steuerspeicher sowohl Lese/Schreib- als auch
Festwort-Speichorbereiche aufweisen kann. Der Leye/Schreib-Steuerspeicherbereich,
der mindestens ausgewählten peripheren Steuereinheiten zugeordnet ist, gestattet das Laden eines insta.llaticnsabhcing.igen
flikrocodes zum Zeitpunkt der Systeminitia·
lisierung, wodurch jedes periphere Subsystem kompatibel mit dem Rest dos Subsystems wird.
Eingabe _u nd_^u sg_a be
Der Aufbau des Systems gemäß Fig. 10 basiert auf dem gleichzeitiger.
Betrieb der; Prozessor-Subsystems und einem oder mehreren
der peripheren Subsysteme 1015, 1017 und 1019. Jede der peripheren Steuereinheiten 1041, 1Ο51 und 1061 ist in der Lage,
ein begrenztes Befehlsrepertoire zu bearbeiten, das sich von
demjenigen der Zentraleinheit CPU-1021 unterscheidet. Eine
Gruppe von Befehlen, die eine periphere Operation ausführen, wird als Kanalprogramm bezeichnet. Kanalprogramme residieren
in» Hauptspeicher, und es kann auf sie sowohl durch den Prozessor als auch durch die peripheren Subsysteme zugegriffen
werden. Spezifische Prozessorbefehle v/erden benutzt, um ein Kanalprogramm zu bilden, wahrend die Bearbeitung des Kanalprogr£\mmes
durch die Einheit TOC-1023 und eine periphere Steuereinheit
geleitet wird. Wenn einmal die Bearbeitung eines CPU-Ecfehles zur Initialisierung eines Kanalprogrammes vervollständigt,
ist, so wird dieses Programm durch die Einheit IOC
8098U/0872
27U251
und eine periphere Steuereinheit bearbeitet und die Zentraleinheit
CPU-1021 ist für andere Operationen frei.
Es gibt einen physischen Kanal 1031 für jede periphere Steuereinheit,
die an die Einheit IOC-1023 angeschlossen ist. Es ist
jedoch möglich, zeitgestaffelt verschiedene Operationen über
einen Fanal zu übertragen. Dies führt zu dem Konzept eines logischen
Kanales, der ein logisch definierter Kommunikationsweg
zwischen dem Hauptspeicher 1011 und einem einzelnen peripheren Gerät ist. Logische Kanüle benutzen gemeinsam einen physischen
Kanal. Physische Kanäle sind peripheren Subsystemen zugeordnet, während logische Kanäle Geräten zugeordnet sind (obgleich verschiedene
logische Kanäle einem einzigen Gerät zugeordnet sein können).
Systeme der Art, wie sie in Fig. 10 dargestellt sind, werden normalerweise durch ein Betriebssystem gesteuert, das einen
ausgeprägten Satz von Prozeduren benutzt, die zu einer wirksamen Behandlung der Hardware, der Daten und der programmierten
Systemmittel in einer Mehrprogramm-Konfiguration führen.
Jegliche Programmbearbeitung, peripheren Zugriffe, Speicherzugriffe
und betriebliche Maßnahmen, die zur Durchführung der Berechnungen eines Benutzers erforderlich sind, werden durch
das Betriebssystem gesteuert.
Die durch das Betriebssystem auszuführende Arbeit kann extern
durch eine Reihe von Prozessen über eine Job-Steuersprache
definiert werden. Verschiedene Prozesse können aktiv sein und gemeinsam Systemmittel benutzen, wobei jedoch nur ein Prozeß
pro Zentraleinheit CPU zu jedem vorgegebenen Augenblick tateachlich abläuft.
8098U/0872
Das in Fig. 10 allgemein dargestellte System sieht einen
Mchrprogramm- und Mehrprozeßbetrieb vor, wobei der Betrieb
durch das Detriebssystem gesteuert wird, welches Prozesse innerhalb des Systems bildet und entfernt und die Synchronisierung
zwischen den Prozessen herbeiführt. Die Multiplexbearbeitung von Prozessen in der Zentraleinheit CPU-1021
wird unter einer Firmware/Hardware-Steuerung ausgeführt. Prozesse werden normalerweise gestartet und gestoppt bei
der Aur.lösung und Beendigung von E/A-Operationen während
der zugeordneten «Tobbehandlung und auch während anderen Zeitpunkten, sofern es das Betriebssystem für zweckmäßig
erachtet.
Gemäß den Fig. 11 und 12 sind Einzelheiten der Steuereinheit
1029 gemäß Fig. 10 dargestellt. In diesem Zusammenhang sei auch auf die US-PS 3 891 974 verwiesen. Die Steuereinheit ist,
obgleich sie getrennt von der Zentraleinheit CPU dargestellt ist, in Viirklichkeit ein Teil der Zentraleinheit CPU und besteht
aus einer Steuerspeichereinheit CSU-1301, einem Steuerspeicher-Schnittstellenadapter
CIA-1302 und zugehörigen Subeinheiten,
wie dem Steucrspeicherlader CSL-1303 und der Steuer-
und Ladeeinheit CLU-1304.
Die Steuerspeichereinheit CSU-1301 empfängt Mikrobefehle von dem Steuerspeicherlader CSL-1303 über die Steuer- und Ladeeinheit
CLU-1304 und den Steuerspeicher-Schnittstellenadapter CIA-1302. Unter normalen Betriebsbedftigungen werden die Mikroprogramme
von einer externen Quelle während der Syeteminitialisierung geladen und ergeben eine permanente Steuerfunktion des
Rechners. Die SteuerSpeichereinheit CSU-1301 besitzt jedoch
die Fähigkeit, erneut geladen und initialisiert zu werden, wobei dies in einer Weise erfolgt, die zu einer Vielzahl von
8Q98U/0872
27U251
Betriebsweisen der Zentraleinheit CPU führt. Die folgenden
Betriebsweisen der Zentraleinheit CPU sind unter der Steuerung
der Steuerspeichereinheit CSU-13O1 erhältlich: (a) Eigenmodus;
(b) Dnulationsmodus; (c) gleichzeitiger Eigenmodus und EmuIationsmodus;
(d) Diagnosernodus. Diese Möglichkeit ergibt r.ich auf Grund der Mikrobefehle in der SteuerSpeichereinheit CSU,
die die Quelle von Mikrooperationen sind, v;elche zur Steuerung
der Operation aller anderen funktioneilen Einheiten der Zentraleinheit
CPU, wie beispie.lsv7e.ise der Emulationseinheit 1316, der.
Rechenwerks ALU-I317, der Befehlabrufeinheit TFU-1318, der
Adressensteuereinheit ACU-1319 und der Datenverv/altungseinheit
DMU-1321 benutzt werden. Ebenfalls dargestellt innerhalb der Zentraleinheit CPU-1021 sind allgemeine Register 1307, Basisregister 1308, Gleitkommaregister 1309, T-Register 1310, Statusregister
1311, ein Befehlszähler IC--1312 und Ilardv/are-Steuermaskenregister
1313.
Typischerweise ist die Steuerspeichereinheit CSU-1301 ein 9K
bipolarer programmierbarer Festwertspeicher (PROH) in integrierter
Schaltkreist-.echnik, der mit einem Lese/Schreib-fipeicher riiit
wahlfreiem Zugriff (RAM) gemischt ist. Er besitzt einen typischen Lesezyklus von 150 ns und einen Schreibzyklus von 450 nr..
Jeder Speicherplatz des Steuerspeichers speichert ein Mikrobefehlsv/ort
mit 84 Bit (wird später vollständig beschrieben) , und jedes Mikrobefehlswort steuert einen Zyklus der Zentraleinheit
CPU. Beim Lesen eines jeden Speicherplatzes der Steuerspelchereinhe.it
CSU-1301 wird dessen Inhalt durch Mikrooperation-Decodierer
decodiert, welche Mikrooperation-Steuersignale erzeugen, von denen jedes eine spezifische Operation innerhalb
der Zentraleinheit CPU hervorruft (wird später in Einzelheiten beschrieben).
Durch Gruppierung von Speicherplätzen innerhalb jeden Mikrobefehlswortes
(wird später noch in Einzelheiten beschrieben) warden Steuerspolcherfolgcn erhalten, die eine spezifische
CPU-Operation bzw. Befehl ausführen können. Bei der Initialisierung
eines jeden Pefehl.s durch die- Zentraleinheit CPU werden
809814/0872
bestimmte Bit innerhalb dec Operationscodes benutzt, um die
Steuerspeicher-Startfclge festzustellen. Die überprüfung
bestimmter Flip-Flops (nicht dargestellt) , die durch Befehls·-
Decodiurfunktionen gesetzt oder zurückgestellt sind, gestattet
dem Steuerspeicher die Verzweigung auf eine spezifischere Folg*?,
sofern erforderlich.
Der Pte.Uürspeicher-ßchnittRtellenaüopter CIA-13O2 steht mit
der Stoiierijpeicheroinheit 1301, der Datenvei waltungseinhei t.
DHU-1321, der Adresi;enr.teuereinhcit ^CU-I319 und dem Rechenwerk
ALU-1317 im Nachrichtenaustausch, um dia Operation des
Steuorr,poichors 1333 gemäß Fig. 12 zu leiten. Der Schnittstellenadapter
CIA-1302 v/eist eine Logik für die Steuerspeicher-AdreGfiemnodif
ihn tion, für Tests, für eine Fthlerprüfung und für eine Hardvjare-Adressenerzcugung auf. Die Kardware-Adressenerbeugung
wird im allgemeinen für die Bildung der Stortadreßtjc von Fehlerfolgen oder für die InitialiKierungsfolge
benutzt.
Die D.atenverwaltungseinheit DMU-1321 bildet die Schnittstelle
zwischen der Zentraleinheit CPU-1021 und dein Hauptspeicher
und/oder Pufferspeicher gemäß Fig. 10. Es liegt in der Verantwortlichkeit
der Datenverwaltumjßeinhtiit, zu erkennen, weiche
Finheit die durch andere Einheiter angeforderte Information
enthält und die Information in die Register der Zentraleinheit CPU zum geeigneten Zeitpunkt einzutasten. Die Datenverwaltungseinheit
DMU führt ferner die Maskierung während Teil-Schreiboperationen durch.
Die Befehl-^brufoinheit IFU-I318 bildet eine Schnittstelle
mit den Einheiten DMU-1321, ACU--1319, ALU-1317 und CSU-1301
und int dafür verantwortlich, daß die Zentraleinheit CPU
laufend mit Befehlen verborgt wird. Die Befehl-Abrufeinheit
hält den nächsten Befehl in ihren Registern vor Beendigung des laufenden iefehls zur Verfügung. Um diese Möglichkeit 211
besitzen, enthalt die liefchl-Abrufeinheit IFU-1318 ein 12 Byte-Befehlsregister
(nicht dargestellt), das normalerweise mehr als
809814/0872
- 47 - 27U251
einen Befehl enthält. Zusätzlich fordert die Befehl-Abrufeinheit
IFU1 gesteuert von der Stcuerspeichereinheit CSU,
Information (Befehle) von dem Hauptspeicher an, bevor der Eefehl tatsächlich benötigt wird und h£lt somit ihr 12 Byte-Befehlsregister
laufend auf dem neuesten Stand. Befehle v/erden somit im voraus mittels normalerweise nicht benutzter Speicherzyklen
abgerufen. Die Befehl-Abrufeinheit decodiert ebenfalls
jeden Befehl und informiert die anderen Einheiten über die Lcinge und das Format des Befehls.
Die Adressensteuereinheit ACU-1319 steht im Nachrichtenaustausch
mit den Einheiten IFU, ALU, DMU und CSU, wobei der Nachrichtenaustausch über den Schnittstellenadapter CIA erfolgt.
Die Adressensteuereinheit ACU-1319 ist für jegliche.
Adressenentwicklung in der Zentraleinheit CPU verantwortlich. Alle Operationen der Adressensteuereinheit ACU, die Übertragungen
zu, von und innerhalb der Einheit umfassen, werden durch die MikroOperationen und die Logik der Steuerspeichereinheit
CSU geleitet. Die normale Zyklusbildung der Adressensteuereinheit ACU hängt von dem Typ der Adressen in dem Befehl
anstelle von dem Typ des Befehls ab. In Abhängigkeit von den Adresstypen kann die Adressensteuereinheit ACU verschiedene
Operationen hinsichtlich jeder Adresse in einem Befehl ausführen. Die Adressensteuereinheit ACU enthält ebenfalls einen
Assoziativspeicher 1319a, der typischerweise die Basisadresse der 8 in der Vergangenheit am häufigsten benutzten Speichersegmente
zusammen mit ihren Segmentnummern speichert. Jedesmal,
wenn eine Speicheranforderung erfolgt, wird ihre Segmentnummer
gegen den Inhalt des Assoziativspeichers geprüft, um festzustellen, ob die Basisadresse dee Segmentes bereits entwickelt
und gespeichert worden ist. Wenn die Basisadresse in dem Assoziativspeicher 1319a enthalten ist, so wird diese
Adresse bei der Bildung der absoluten Adresse benutzt, und es wird ein beträchtlicher Zeitbetrag gewonnen. Wenn die
Basisadresne nicht in dem Assoziativspeicher 1319a enthalten
r so wird sie durch Zugriff auf die Hauptspeichertabellen
8Q98U/0872
27U251
entwickelt. Nachdem die Basisadrosse des Segmentes entwickelt
worden ist, wird sie jedoch in dem Assoziativapeicher zusammen
mit der Scgir.ontnurnmcr für eine spätere Bezugnahme gespeichert..
Das Rechenwerk ALU-1317 bildet eine Schnittstelle mit den Einheiten
ACU, IFU, DMU und CSU. Seine primäre Funktion liegt in der Ausführung arithmetischer Operationen und von Datenmanipulationen,
die von der Zentraleinheit CPU angefordert werden. Die Operationen des Rechenwerks sind vollständig abhängig von
Mikrooperations-Steuersignalen der Steuerspeichereinheit CSU-1301.
Dem Rechenwerk ALU-I317 und der Steuerspeichereinheit CSU-1301
ist die Zvischenspeichereinheit LSU-1315 zugeordnet (diese wird
manchmal als lokale Speichereinheit bezeichnet). Der Zwischenspeicher besteht typischerweise aus 256 Speicherplätzen (32 Bit
pro Speicherplatz), die in einem Festkörperspeicher realisiert sind, und aus einer Auswahl- und Lese/Schrelb-Logik für diesen
Speicher. Der Zwischenspeicher 1315 wird benutzt, um CPU-Steuerinformation
und Wartungsinformation zu speichern. Der Zwischenspeicher 1315 enthält zusätzlich Arbeitsspeicherplätze, die
primär für die temporäre Speicherung von Operanden und Teilresultaten während der Datenmanipulation benutzt werden. Ferner
ist dem Rechenwerk ALU-1317 ein Hilfsspeicher 1317a zugeordnet,
der typischerweise aus 64 Flip-Flops zur Speicherung verschiedener Zustände des Computersystems besteht.
Die Zentraleinheit CPU besitzt eine Takteinheit 1320, die im
wesentlichen zwei Taktsysteme in einem bildet: Das erste Taktsystem erzeugt den Zeittakt für den Steuerschnittstellenadapter
CIA-1302 und das zweite Taktsystem erzeugt die Taktimpulse für
den Betrieb der funktioneilen Einheit innerhalb der tentraleinheit.
Gemäß Fig. 13 ist das Format des Steuerspeicherwortes 1325 dargestellt.
Das SteuerSpeicherwort besitzt typischerweise eine
809814/0872
Breite von 84 Ext und ist in 6 Hauptfelder unterteilt:
(a) Folgetyp-Feld 1326 (3 Bits);
(b) Verzweigung*?- und/oder Kikroopor ationen 1327
(2? Bitr.) ;
(c) Konstantenerzeugung und Bestimmung 1328 (14 Bitn) ;
(d) Daten zur Datenschiene 1329 (0 Bits);
(e) Mikrooperationen 1330 (32 Bits); und
(f) Prüfung 1331 (4 Bits).
Das E-FrId mit 3 Bit dc;s Steuer^peicherwortes 1325 vird air;
Folgesteuerfeld benutzt. Fs gibt typischerweise 7 verschiedene Folgentypen und einen reservierten Typ. Gemäß dem Block 1335
in Fig. 12 wird, wenn das K-FeIO den Binärwert O, 1 oder 2
aufweist, das Verzweigungsfeld A, B, C, D und L d<=:>
Mikrobefehls 1325 gemäß Fig. 13 benutzt, uri die nächste Adresse
zu erzeugen.
Die ersten G Bit des KS-Registers 1337 v/erden zusammen mit
dem B-Feld, einein C-Teslresultat, dem D-Testresultat und dom
L-FeId benutzt, um die nächste Adresse des nächsten Mikrobefehls
zu erzeugen, welcher sodann in dem Adressregister KS-1337 abgelegt wird. Wenn das E-FeId auf den Binärwort 4 (siehe
Block 1335) gesetzt ist, so wird die nächste ausgewählte Adresse aus dem Unterbreehungs-Rückkehrregister ΚΛ-1339 entnommen. Die
in dein ΚΑ-Register gespeicherte Adresse ist diejenige, die
durch die Erzeugungs.logik für die nächste Adresse erzeugt wurde, als die Uardwareunterbrechung auftrat. Wenn dar. E-FeId
auf den Binärwert 5 gesetzt ist, so wird eine Verzweigung
benutzt, um eine Subriickkehr von einer Mikroprogramm-Kubroutine auszulösen. Bei seiner Benutzung wird der Inhalt des Rüekkohrregir.ters
KR-1346 als die nächste Steuerspeicheradresse benutzt. Das Rückkehrregister 13-1G wird geladen durch die Ausgabe einer
Steuer Speicheranweisung, die die vorliegende Steuerspeioheradresse
im KS-Register 1337 um 1 erhöht durch den Jnkreinentschaltkreis
1338 in das KR-Register 1346 lädt. Kino Ein-Pegol-
8098H/0872
Vorschach he·] ung-Subroutine wird durch das KT-Rückke/:rverzweicjung.srecfister
1347 vorgesehen. Jedesmal, wenn das KR-Jvegister
1346 geladen wird, wird der alte Inhalt des KR-Pegisters zu dem KT-Register 1347 übertragen; jedesmal, wenn
die Mikroprogramm-Rückkehr aufgerufen wird, wird der Inhalt
de« KT-Rogisters zu dem KR-Fegister zurückübertragen. Eine
Verschschtelnngs-Subroutine auf einem dritten Pegel wird
durch das KU-Reg.isLor 1341 und eine VerschachteJungs-Subroutine
auf einem vierten Pegel v/ird durch das KV-Rückkehrver
üweirjungsregir.ter 134 9 vorgesehen. Wenn das E· Feld de f.
Steuerspeicherwortes auf den Binärwert·. 6 gesetzt int, so ist
da? nächste adressierte rteuersp^icherwort gleich der vorliegenden
Adresse im KS-Regi:iter 1337 erhöht um I im Inkrementschaltkreis
1338. Wenn das E-FeId auf den Binärwort 7 gesetzt
ist, so tritt die nteuerspeichsreinhell: CSU-1301 in den Diagnoficmodus
ein und die nächste Adresse wird durch die vorliegende Adresse plus 1 gebildet.
Zusätzlich zu der Folgesteuerung der Verzweigung auf die nächste Stev.erspeichcradresse, die vorstehend beschrieben und
im Block 1335 gezeigt ist, gibt es eine durch die liardv/are erzeugte
Folgesteuerung, die im Block 1336 von Fig. 12 gezeigt ist. Es sei hier vermerkt, daß die Blöcke 1335 und 1336 in
Wirklichkeit Hardwareregister sind, die in Übereinstimmung
mit den Mikrobefehlsv/orten entsprechende Formen aufweisen
können. Die von der Hardware erzeugten Verzweigungen sind Aufhebungsbedingungen (?. .B. Fehler, Auflösung, Steuerspeicherabtastung
usw.), die das E-FcId unterdrücken und eine feste Adresse in das Stcuerspcicher-Adressregister KS-13 37 einschreiben.
Die Verzweigung wird durchgeführt, indem eine Unterbrechungsleitung (nicht dargestellt) für eine Taktperiode
zur Annahme eines hohen Potentials gezwungen wird und j η Jem die· Adresse in das KA-Unterbrechungsrückkehrregister
1339 eingespeichert wird, die unter der Steuerung des Ε-Feldes erzeugt worden wnre. Eine durch die Hardware erzeugte
8098U/0872
27U251
Adresse wird in eiern Steuer.Speicher-Adressregister abgelegt.
Bestimmte durch die Hardv;are/Firmware erzeugte Unterbrechungen
weisen Priorität auf, wenn die Unterbrechungen ein Flip-Flop blockieren, welches zusätzliche Unterbrechungen in der zugeordneten
Klasse an ihrer Bearbeitung hindert, bis der Unterbrechungssustand befriedigt ist. Eine Firmvare-Mikrooperation
liegt vcr zur Steuerung der Rückstellung des Unterbrechungs-BlockiRr-Flip-Flops
für jene Folgen, die von der Firmv/are gesteuert
werden. Jene Folgen unter der Steuerung der Hardware erzeugen automatisch eine Rückstellung des Flip-Flops am Ende
der Folge. Die folgenden Zustande, aufgelistet nach Priorität, liegen in dieser Kategorie vor:
(a) Stcuerspeicher laden;
(b) Steuerspeicher abtasten;
(c) Hardware-Fehler;
(d) Software-Fehler.
Die restlichen Hardware-Zustände setzen nicht das Unterbrechungs-Flip-Flop,
sondern rufen bei ihrer Erzeugung das Auftreten einer unmittelbaren Maßnahme hervor. Die folgenden Bedingungen, aufgelistet
nach Priorität, liegen in dieser Kategorie vor:
(a) Initialisierung;
(b) Teillöschung (soft-clear);
(c) Eingabe Wartungskonsole;
(d) Eingabe Wartungskanal;
(e) Hardware-Ausgabe.
Ein Initialisierungssignal veranlaßt die Steuerspeichereinheit CSU-1301 zur Verzweigung auf die Binäradresse 0, zur Löschung
der durch die Hardware rückstellbaren Fehler und zur Ausführung einer Steuerepeicher-Ladeoperation, der eine Steuerspeieher-Abtastfolge unter Hardwaresteuerung nachfolgt. Ebenso wird durch
dieses Signal die Systeminitialisierung ausgeführt. Ein Teillöschsignal veranlaßt die Steuerspeichereinheit CSU-1301 zur
8098U/0872
"52~ 27U251
Verzweigung auf die Kinäradresse O, zuni Löschen der durch
die Hardware rücV.stellbdren Fehler und zur Rückstellung des
Unterbrechungs-Blockier-Flip-Flops. Ein Eingabe-Wartungskonsole-Signal
veranlaßt die SteuerSpeichereinheit CSU zur Verzweigung aui die Adresse, die über CSU-Adresschalter auf
der Wartungskonsole (nicht dargestellt) voreingestellt worden ist.
Ein Eingabe-Viartungskanal-Signal veranlaßt die Steuerspeichereinheit
CSU zur Verzweigung auf eine Adresse, die über den Wartungskanal (nicht dargestellt) erzeugt wird. Die geladene
Adresse kommt von der Wartungs-Datenschiene QMB-1344, die Teil
des Wartungskanals bildet. Ein Hardware-Ausgabe-Signal veranlaßt die Steuer Speichereinheit CSU zur Verzweigung auf die
DinKradresse 2. Diese Folge wird als eine Wartungsmöglichkeit benutzt. Am Ende der Folge wird eine Rückkehr durch Ausgabe
einer E-Feld-Verzweigung ausgelöst, wobei das E-FeId auf den
Binärwert 4 gesetzt ist.
Ein Steuerspeicher-Ladesignal veranlaßt die Steuerspeichereinheit CFU zur Verzweigung auf die BinMradresse O. Dieses Signal
schaltet ebenfalls das CSU-Lesezyklus-Flip-Flop (nicht dargestellt) und den Systeintakt 1320 ab und versetzt die Steuerspeichereinheit
CSU in den Ladezustand. Im Ladezustand kann die Steuerspeichereinheit CSU von dem Steuerspeicherlader CSL-13O3,
der Einheit IOC-1305, dem Hauptspeicher 1011 gemäß Fig.10
oder der System-Bedienungskonsole 1030 geladen werden. Wenn die Steuerspeichereinheit CSU von dem Steuerspeicherlader CSL geladen
wird, so wird am Ende des Ladeprozesses eine automatische Abtastung erzeugt. Wenn die Steuerspeichereinheit CSU von irgendeiner
anderen Einheit geladen wird, so kann eine Abtastung entweder durch Erzeugung eines Mikrooperationssignales oder
durch Setzen der Abtastschalter auf der Wartungekonsole ausgegeben werden. Ein Steuerspeicher-Abtastsignal veranlaßt die
Steuerspeichereinheit CSU zur Verzweigung auf die Binäradreese
0. Eine Steuerspeicherabtastung erfolgt unter Hardwaresteuerung
8098U/0872
für die Dauer der Folge. Währemi der Abtastung ist d.-:r Systomtakt
1320 abgeschaltet und es worden daher keine Anweisungen oder Tests ausgeführt. Am Ende der Abtct&tfolge überträgt die
Hardware den Inhalt des Unter brechungsrückkehrrecj.istors ΚΛ in
da.'i Adressregister K53, der Syr.Lcmtnkt wird eingeschaltet und
die Steuerung v/ird vieder von der Firmv/are übernommen.
Fin Hardv/are-Fehler signal veranlaßt die Steuerspeichereinheit
CSU zur Verzweigung auf die B.Liwiradresi;^ 4. Im normalen Verarbeitungiiinodus
aktiviert ein Hardwarefehler, der in irgendeiner
funkt.joripl.len Einheit der Zentraleinheit CPU f estgesre 1] t
wird, eine Knrdv/are-Fohlerleitung (nicht dargestellt). Die erzeugte
Stcuerspeicherfolge testet die Systemzustände, um die
vorzunehmende Maßnahme zu bestimmen. Im Diagnoseniodu:; sind
für Fehler zustände. die von df:r Hardware fi -stf-tollbar sind, llüvrodiagnosen
7,ug?nylich. Die Mikrodiagnosen steuern die vorzunehmenden
Maßnahmen. r;in fioftv/nre-Fehlersignal voranlaßt andererseits
den oteuer.speieher zur Verzv/eigung auf die Binäradresse
1. Diese Adresse gibt den Beginn der Softwarefehier-Berichtsfolge
vor, die unter Steuerung durch das Mikroprogramm abläuft.
Gemäß Fig. 13 weist das E-FeId 132G 3 Bit auf, die den Verzweigungsoodi!
in der zuvor beschriebenen Weise vorgeben. Das Verzweigungs- und/oder Mikrcoperationsfold 1327 besteht aus
den Feldern Λ, B, C, D und L (ebenfalls im Block 1335 in Fig. 12 dargestellt), v;obei die einzelnen Felder folgenden Inhalt
haben: Das A-FeId v/ej st die oberen 6 Bit der nächsten Adresse
auf, dan B-FeIu weist die mittleren 4 Bit der nächsten Adresse
des Maskenfeldes der 64-Wegverzweigung auf, das C-FeId bildet
ein 6-Bit-Testfeld für einen von 64 Ter.ts, das D-Feld bildet
ein anderes 6 Bit-Ter.tfeld für einen von f>4 Testr, und das I.Feld
v/eist das cm wenigsten signifikante Bjt auf. Das K-FeId
1320 ist ein 14 Bit-Feld. Das leiten zur Datenschiene-Feld 1329
besteht aus dem OA-FeId mit 4 bit zur Inforiiiationsr.teuerung
8098U/0872
27U251
für den Teil QA dor QMB-Datenschier.o 1344 und dem OB-FeId mit
4 Bit zur Informationssteuerung des Teiles QB der QMB-Datenschienc
1344. Da? F-FeId 1330 ist ein 32 Bit-Feld, das auf Grund
seiner Codierung Mikrooperatlons-Eubbefehle erzeugt. Das P-FeId
1331 besteht aus 4 Bit und ist für Prüfzwecke reserviert.
Im Betrieb sind die Mikrobefehlsworte in dein Steuerspeicherfeld
1333 gespeichert. VI'ilTcnd eines Operati.onczyklus wird das
Steuer speicher feld durch den Inhalt des KS-Adressregisters 13.37
adressiert. Hierdurch wird der Inhalt des adressierten Speicherplatzes
in eine Gruppe von Leseverriegelungen 1357 auscje.lasen.
Teile des Wortinhalts in den Leseverriegelungen v/erden verteile
oder übertragen an Rpeicnerregister innerhalb jeder der funktioneilen
Einheiten in der Zentraleinheit CPU. Jede funktionale Einheit rnthnlt logische Decodierschaltkreise zur Erzeugung der
erforderlichen Subbefehle, die durch das Steuerspeicherwort
unter Steuerung des Systemtaktes vorgegeben v/erden. Im allgemeinen
wird die Decodierung innerhalb jeder funktioneilen Einheit in der Zentraleinheit CPU durchgeführt und nicht zentral,
um din Zeit für die Decodierung auf ein Minimum zu beschränken
und die Anzahl der Leitungen zu reduzieren, die normalerweise
für die übertragung von Befnhlssignalen erforderlich sind, wenn
die Decodierung zentral durchgeführt wird. Zudem erfolgt die
Decodierung .innerhalb jeder Einheit, um Probleme zu vermeiden, die sich aus Unterschieden in den Leitunguverzögerungen (Kabellaufzeiten)
ergeben. Durch die Decodierung der Subbefehle innerhalb jeder Einheit müssen ferner jene Signale, die bestimmte Zustände
innerhalb der funktioneilen Einheit repräsentieren und die für die Erzeugung bestimmter Pubbefehlcsignale erforderlich
sind, nicht an die Schnittstelleneinheit CIA-13O2 zurückübertragen
werden. Eine typische Decodiereinheit 1359 ist in Fig. 12
dargestellt und nimmt verschiedene Felder von Mikrobefehlsworten
auf, um Mikrooperntionssignale a, b, c, d, ... q, r zu erzeugen.
Der Mikrooperations-D'ecodlerer 1359 erhält seine Anweisungen von
einem Mikrobefehlswort. Das Feld des Mikrobefehlswortes wird
8098U/0872
27U251
decodiert, wodurch eine von mehreren Leitungen s, t, uf ...
y, ζ auf hohes Potential gesetzt wird. Es wird eine Matrix gebildet, die eine zweite Gruppe von Leitungen a bis r aufweist,
die in Punkten &C , £ 'V" ... to an die
Leitungen s bis ζ angeschlossen sind. Wenn das Feld eines Mikrobefehls decodiert wird, so nimmt typischerweise eine der
Leitungen s bis ζ das hohe Potential ein. Da die in der Matrix durch griechische Buchstaben ^>C bis to bezeichneten schwarzen
Punkte Impedanzkupplungen zwischen zwei Gruppen von Leitungen
darstellen, wird jedes sich entlang irgendeiner horizontalen Leitung fortpflanzende elektrische Signal in eine entsprechende
vertikale Leitung eingekoppelt. Jede vertikale Leitung a bis r kann sodann als ein Eingang an entsprechende UND-Gatter
13G0 bis 1365 angeschlossen sein. Andere Eingangssignale können ebenfalls an die UND-Gatter 13C0 bis 1365 angeschlossen
sein, so z. B. ein Zeitsignal t von der zentralen Zeiteinheit. Jedesmal« wenn das Zeitsignal t das hohe Potential einnimmt,
werden demnach jene Gatter betätigt, die an ihren anderen Eingängen
Signale mit hohem Pegel aufweisen, und es werden Mikrobefehlssignale zu vorbestimmten funktionellen Einheiten innerhalb
der Zentraleinheit CPU weitergeleitet. Wenn beispielsweise ein Befehl 1341 von der Leseverriegelung 1357 decodiert
wird und eine horizontale Leitung den hohen Pegel aufweist, so nehmen die vertikalen Steuerleitungen a, b, c und q das hohe
Potential ein und die UND-Gatter 1360, 1361, 1362 und 1364 werden durchgesteuert, wenn das Zeitsignal t an diese Gatter angelegt
wird. Die Kombination der vertikalen Steuerleitungen mit den horizontalen Steuerleitungen in verschiedenen Punkten, die
durch die griechischen Buchstaben °C bis (O bezeichnet sind,
bildet somit eine permanente Schaltmatrix zur Lieferung von Mikrooperationssignalen für die Zentraleinheit CPU, um die
funktionellen Einheiten innerhalb der Zentraleinheit durch Mikrobefehle zu steuern, die von dem SteuerSpeicherfeld 1333
geliefert werden. Eine permanente Firmware mit der Möglichkeit der Veränderung kann somit in die Maschine eingebaut v/erden
durch bloße Spezifizierung der Folge von MikroOperationen, was
als eine Möglichkeit des Coranutersvstems gefordert wird.
Unter normalen Umstünden worden Daten in das Steuerspr;icherfeld
1.333 über das CPU-iJchreibdatenregister eingeschrieben, das auch
als lokales Register 134 3 bekannt ist. Ein Steuer-Flip-Flop (nicht dargestellt) legt fest, ob in die obere oder in uTitere
Hälfte des Epeicherfeldes geschrieben wird. Daten von der
Steuer- und Ladeeinheit CLU-1304 werden über die Wartungs- Datenschiene
QHE-1344 den Einheiten CIA/CSU zugeführt und durch das lokale Speichorregister 1343 gepuffert, bevor sie in das
Steuerspeicherfcld 1333 eingeschrieben werden. Das lokale Speicherregifiter
1313 arbeitet im Tirr.esharing-Betrieb sowohl als
Lese- als auch als Schreibregister. Der Multiplexer KOM-1345
kann entweder durch die System-Bedienungskonsole 1030 gemäß Fig. 10 oder durch die Mikrodiagnosen gesteuert werden und erzeugt
einen Auslesepfad aus den mit ihm verbundenen Registern.
Ein Vergieichsregister KP-1350 ist für eine nicht-funktionelle
Benutzung vorgesehen und wird hauptsächlich für Wartungszwecke benutzt, wobei seine Benutzung zusammen mit der Vergleichslogik 1352, der Decodicrlogik 1351 und dem Dekrementschaltkreis
1353 erfolgt.
Ein typisches Computersystern, wie es im Zusammenhang mit den
Figuren 10, 11, 12 und 13 beschrieben worden ist, bildet im allgemeinen die Konfiguration, in der die Einrichtung gemäß
der vorliegenden Erfindung verwirklicht wird. Unter diesen Umständen kann die erfindungsgemäße Einrichtung bei ihrer Verwirklichung
Teile der vorher geschilderten Organisation und Fähigkeiten benutzen. Insbesondere kann sie den Mechanismus der Mikroopcrationen
benutzen. Dieser Mechanismus kann erneut wie folgt zusammengefaßt werden. Das Steuerspeicherfeld 1333, das von dem
Adressregister 1337 angesteuert wird, speist die Leseverriegelungen 1357. Diese zeigen ihrerseits über den Mikrooperationsdecodlerer
1359, die Matrix und die Gatter 1360 . . . 1365 der Zentraleinheit CPU die auszuführende Mikrooperation an und liefern
zur gleichen Zeit über den Teil 1342 und die CSU-Folgesteuerungen
1335 und 133C die Adresse dee nächsten Mikrobefehls.
8Q98U/0872
27U251
Ein Fachmann ist daher in der Lage, die Firmware/llarcV/are-Verv.lrklichung
dos durch die Erfindung offenbarten Schutzmechanismus vorzunehmen, wenn or die Blockdingramme der Einrichtungen
und den zugehörigen erläuternden Text studiert. Komplexe Beschreibungen von Angelegenheiten, die dem Fachmann
bekannt sind, wecden daher vermieden. Obgleich die Figurein 10,
11, 12 und 13 ein spezielles Honeywell-System, daf. iia Handel
erhältlich ist, beschreiben, liegt es auf der Hand, daß andere Konfigurationen oder Produkte der gleichen oder amU-rer Firmen
verwendet v/erden können, um die Erfindung in die Praxis uinzusetnon.
Darübcrhinau-3 können der Schutzm.ichani sinus und die Familie der
Befehle, die gernäß der vorliegenden Erfindung offenbart werden,
ihre Anwendung in Konfigurationen finden, die nicht einen
Computer betreffen und die nicht die vorstehend erläuterten
allgemeinen Fähigkeiten aufweisen. Es wird daher eine spezielle
Beschreibung der in diesen Fällen benutzten Ilardwaroausführungen
gegeben (siehe .insbesondere die Erläuterungen zu den Figuren V7a,
17b, 20a und 20b).
Der Cchutzincchanisraus
Die Erfindung befaßt sich mit. dem grundlegender. Unvorsehrtheitsinechanisnms
eines Systems, das die erforderlichen Funktionen aufuhrt, um Fehler zu vermeiden, so daß weder Daten verlorengehen
noch beschädigt werden. Insbesondere befaßt sich der in den bevorzugten Ausführungsbeispiel der Erfindung beschriebene
Schutzinechanismus mit der Vermeidung oder Wiederauffindung von
Fehlern, die durch Überlappungen zwischen Prozessen verursacht
werden, die Daten und andere Information in einer gemeinsamen Keisο benutzen.
Die Erfindung kann auch als überwachungseinrichtung beschrieben
werden, die· den Zugriff der Zentraleinheit CPU-1021 auf Daten-
809814/0872
27U251
elemente, Machrichten oder äquivalente in dem Speicher (Pufferspeicher
1027 oder Hauptspoicher 1011) oder in peripheren Subsystemen
1015, 1017, 1019 enthaltene Informationsteile gestattet,
oder zurückweist.
Der Schutzmechanicmus wird immer zur Aktion aufgerufen, wenn
ein Prozeß Zugriff auf ein Systemmittel (Dciten oder andere In-formatiomiteile)
besitzt. In den hier beschriebenen bevorzugten Ausführungfjbeispielen prüft der Mechanismus, ob solch ein Zugriff
Überlappungen hervorruft. Ist dies der Fa]I, so wird eine
geeignete Rückspeicherprozedur aktiviert. Ist der Zugriff einmal
geiiehruiijfc worden, so prüft der Mechanismus, ob irgendwelche andere
Gründe zur Verzögerung oder zur Zurückweisung des Zugriff*: vorliegen und verfährt dementsprechend.
Wie eingang.'» beschrieben variieren die Gründe für die zusätzlichen
Pnachrnnkungen gemäß dom spezifischen Mechanismus und
können ihre Begründang in der Forderung nach einer Unabhängigawischen
den Prozessen, einer Begrenzung der verfügbaren Speicherkapazität für die Speicherung aufeinanderfolgender Versionen
der Systemmittel usw. haben.
Insbesondere garantiert das bevorzugte Ausführungsbeispiel der "Keine Abhängigkeif'-Lösung, daß ein l'rozeßf ehler nicht den
Fehler tines anderen Prozesses auf Grund einer Da tenabhä ng igke.it
hervorruft. Dieses Verfahren begrenzt die Anzahl der nicht-gelöschteii
Versionen eines Systemmittels auf die Zahl 1 und bildet
ebenfalls eine sehr geeignete Methode.
um die Operation zu vervollständigen, führt der Mechanismus
neben den zuvor angedeuteten Maßnahmen die Operation der Wiederaufnahme
der v/artenden Prozesse durch, sobald die Ursachen für ihre Unterbrechungen beendet sind.
Die Erfindung arbeitet bei jeder Größe des Systemmittels.
8098U/0872
Der Schutzmechanismus sei nunmehr ?,uornt für die "Keine Abhängigkeit"-Lösung
beschrieben und wird sodann verallgemeinert
Der MechanIsmus "Keine Abhängigkeit"
Um den Mechanismus gemäß der vorliegenden Erfindung zu beschreiben,
werden zwei geeignete Unterstützungselemente eingeführt: Die Benutzungstabellen (U.T.) gemäß Fig. 9a und die
Matrix der Keziehungon (M.R.) gemäß Fig. 9b.
Die Benutzungstabellen sind einmal pro benutztes Systemmittel
vorhanden. Als Systemmittel kann auch eine Gruppe von Systemmitteln verstanden werden f je nachdem wie die Größe beim üfcterlappungsschutz
gewählt wird. Die Größe des Systemmittels kann frei gewählt werden. Beispielsweise kann das Systemmittel ein
Feld, ein Datensatz, eine Seite, ein Band usw. sein. Die Benutzungctabellen
listen die nicht-gelöschten Lese- und Schreibprozesse des Systenimittels auf. Diese Tabellen oder äquivalente
Mittel bilden ein gemeinsames Werkzeug für viele Steuermechanismen.
Die Matrix der Beziehungen (eine pro System ist ausreichend) ist eine quadratische Matrix und besitzt eine Reihe und eine
Spalte pro nicht-gelöschtem Prozeß. Jedes Element der Matrix
zeigt die Beziehungen an, die zwischen den Prozessen einer Reihe und den Prozessen einer Spalte bestehen. Beispielsweise
zeigt Symbol 1 an, daß "der Prozeß einer Reihe dem Prozeß einer Spalte folgt aber nicht von diesem abhängt";
zeigt das Symbol 2 an, daß "der Prozeß einer Reihe dem Prozeß einer Spalte folgt undN von diesem abhängt";
zeigt das Symbol 3 an, daß "der Prozeß einer Reihe auf den beendeten und gelöschten Prozeß einer Spalte wartet";
usw.
zeigt das Symbol 0 an, daß der Prozeß einer Reihe keine der zuvor genannten Beziehungen zu dem Prozeß einer Spalte
aufweist.
8098H/0872
Die Symbole Kind augenscheinlich rein beliebig gewählt und
ihre Bedeutungen können von Verfahren zu Verfahren sich ändern. Die vorstehende Übereinkunft bildet eine Übereinkunft bei der
vorliegenden beschreibung.
Die Matrix der Beziehungen ist typisch für die auf der vorliegenden
Erfindung beruhende überlappungsrnethode, wobei jedoch
betont sei, daß:
sie nicht wesentlich ist, da die Beziehungen auch aus
don Benutzungstabellen jederzeit zurückverfolgt v/erden
können, wenn sie benötigt werden. Nichtsdestoweniger ist die Matrix ein sehr leistungsfähiges und einfaches
Werkzeug und geeignet, einen hohen Wirksamkeitsgrad zu
schaffen.
Sie ebenfalls in einer "Nicht-Matrix"-Form verwirklicht
werden kann, solang ihr Ersatz die gleiche Information bringt. Beispielsweise kann ein Graph gemiiß Fig. 6b die
gleiche Information bringen.
Ein drittes Element zur Unterstützung des Mechanismus bildet die Liste der Systemmittel, die von jedem Prozeß beeinflußt
werden. Diese Listen (beeinflußte Systemmittel-Listen A.R.L.)
gemäß Fig. 9c sind nicht eigentümlich für einen Schutzmechanismus, sondern für jeden Mechanismus, der eine selektive
Wiederauffindung auszuführen wünscht. Wenn es mit anderen Worten erforderlich wird, einen Prozeß abzubrechen, so bildet
die beeinflußte Systemliste A.R.L. die Liste der Systemmittel,
die durch den Prozeß beeinflußt worden sind und daher eine Rückspeicherung erfordern. (Allgemeiner kann die beeinflußte System*
mittelliste A.R.L. andere Wiederauffindungsmaßnahmen anzeigen«
z.B. die Annulierung einer Nachricht usw.).
Kenn stattdessen die Wiederauffindung nicht selektiv ist, beispielsweise für den Fall, wo diese auf einer allgemeinen Rückführung des Systems auf einen vorangegangenen Prüfpunkt basiert,
so sind diese Listen A.R.L. nicht erforderlich.
8Q98U/0872
Cl -
27U251
Hier v/erden solche Listen angenommen, um die ausgekl ügoltere
selektive Lösung in den bevorzugten Aur.führungsbeispielen zu
beschreiben.
Um die Dynamik des Inhalts dieser Tabellen (U.T., M.R., A.R.L.)
zu verstehen, seien die folgenden zusätzlichen Erlautorungen gegeben:
Wenn ein Prozeß (genauer eine Prozr-ßphase.) "geboren" wird
(d. h. als ein Akteur in dein System akzeptiert wird) , so
wird ihm ein IdenLif iziorc-r cder Name gegeben, der nlr,
koiniiident mit der Nummer der ZcUe (und Spalte) anoenomnien
wird, die ihm in der Matrix der Beziehungen zugeordnet ist. Diese Zeile und Spalte in der Matrix der
Beziehungen ist anfänglich auf hull genetzt.
Der Prozeß wird aus der Matrix herausgestrichen, wenn er
beendigt und gelöscht ist.
Jedesmal, wenn der Schutzmochanismus eine Beziehung zwischen
den Prozessen entdeckt, so notiert er dieso in der Matrix der Beziehungen. Mit dem Mechanismus "Keine Abhängigkeit"
bilden die Symbole neben der Null eine 1 für den Fall "folgt aber hängt nicht ab" und eine 3 für den Fall "wartet
auf". Das Symbol 3 hebt eine zuvor existierende 1 und eine 1 hobt eine zuvor existierende 0 auf.
Die l-enutzungstabelle eines Systemmittels ist anfänglich
leer. Wenn ein Prozeß Zugriff auf das Systemmittel nimmt, um es zu lesen oder eine neue Version von ihm zu bilden,
so wird der Name des Prozesses und die Art der Operation (Ltvsen/Schreiben) aufgelistet. Ein Prozeß, der seine eigene
Version liest, wird nicht als lesender Prozeß angezeigt (die vorangegangene Anzeige für einen Schreibprozeß herrscht
vor). Ein Prozeß wird nur das erstemal aufgelistet, wenn er eine bestimmte Operation ausführt: Wenn er erneut liest oder
wenn er wiederum die gleiche Version eines Systemmittels
modifiziert, r>o v/ird or nicht erneut aufgelistet. Ku η η ein
Prozeß gelöscht ist (und aus der Matrix entfernt ist), so
8Q98U/0872
wird er ebenfalls aus der Benutzungstabelle entfernt.
Der Umfang der Benutzungstabellcn wächst daher nicht fortlaufend sondern erreicht ein dynamisches Gleichgewicht.
Die beeinflußten Systewmittellistcn A.R.L. eines Prozesses,
die anfänglich leer sind, wachsen mit der Aktivität des Prozesses und die Prozesse werden entfernt, wenn
sie gelöscht v/erden. Es sei darauf verwiesen, daß hier a ng en OHUr1 c η wird, daß diese Listen benutzt werden. Diese
sind jedoch nicht wesentlich. Ihr Fehlen kann umgangen werden und beeinflußt nicht die Gültigkeit des Mechanismus,
wie er hier beschrieben wird, noch seine Allgemeinheit.
Unter Bezugnahme auf Fig. 7 sei eine bevorzugte Firmwareausftihrung
des Mechanismus "Keine Abhängigkeit" nachstehend beschrieben
Start. Der Mechanismus interveniert immer dann, wenn eine Anforderung
üun Lesen oder Schreiben eines Systemmittels vorliegt.
Kaute 701. Wenn der anfordernde Proze/. bereits das Systemmittel
geschrieben hat (z.B. hat er bereits eine neue Version des Systemmittels gebildet) oder einen vorangegangenen Leseprozeß
wiederholt, so wird die Anforderung angenommen (Ausgang zu dem Rechteck 702, das die Fortsetzung des Prozesses autorisiert),
andernfalls wird die Operation mit dem Rechteck 703 fortgesetzt. Um diese Prüfung auszuführen, liest der Machanismus aus den Benutzungstabellen,
ob der Prozeß bereits als schreibender Prozeß oder wiederholter Leseprozeß aufgelistet ist.
Rechteck 703. Aus der Benutzungstabelle des angeforderten
Systemmittels stellt der Mechanismus fest, welche Beziehungen zu löschen sind, sofern überhaupt welche zu löschen sind.
Beim Lesen: a) Wenn eine nicht-gelöschte Version des Systemmittels
vorliegt, so ist keine Beziehung zu löschen.
8098U/0872
b) Kenn eine nicht-gelöschte Version vorliegt,
so muß ihr schreibender Prozeß dem anfordernden
Prozeß folgen (ohne Abhängigkeit). Wenn eine solche Zeitbeziehung nicht bereits in der
Matrix der Beziehungen M.R. vorliegt, so wird die Beziehung zu dem folgenden Schritt (Raute
704) für eine Betrachtung übertragen. Unter diesem Gesichtspunkt sind die Symbole 1 und 3
der Matrix der Beziehungen äquivalent.
Beim Schreiben: a) Wenn keine nicht-gelöschte Version des Systemmittels
vorliegt, so muß der schreibende Prozeß dem lesenden Prozeß des Systemmittels folgen
(ohne Abhängigkeit), wenn überhaupt ein solcher Prozeß folgt. Die Beziehungen, die
nicht bereits in der Matrix der Beziehungen vorliegen, werden zu dem folgenden Schritt
(Raute 704) für eine Berücksichtigung übertragen.
b) Wenn eine nicht-gelöschte Version des System mittels vorliegt, so muß der schreibende Prozeß
dem schreibenden Prozeß dieser Version folgen (und auf diesen warten). Wenn eine solche Zeitbeziehung nicht bereits in der Matrix der Beziehungen vorliegt, so wird die Beziehung zu
dem folgenden Schritt (Raute 704) für eine Berücksichtigung übertragen. Aus Gründen, die
auf die Rückspeicherungsstrategie bezogen sind, werden in diesem Fall die Identitäten der lesenden Prozes-se der gelöschten Version ebenfalls
übertragen, um in dem Fall berücksichtigt zu werden, in dem die Beziehung mit dem schreibenden Prozeß den Test nicht erfüllt.
Raute 704. Wenn Beziehungen zu löschen sind, so schreitet der Mechanismus zu der Raute 705 weiter, andernfalls zu dem Schritt
709.
8Q98U/0872
27U251
Rciut.e- VOL». Dies ist der Sch] i'sselschritt des Mechanismus, wo
die neuen Beziehungen, die durch die Benutzung des Systemmittels gegeben sind, dem Basistest für die Überlappung unterworfen werden.
Der Test macht primär von der Benutzung eines Befehls (oder einer Gruppe von Befehlen) Gebrauch, wobei dieser Befehl FESTSTELLUNG
NACHFOLGER später im Einzelnen erläutert wird. Der Test stellt fest, welche Beziehungen nicht zu der Matrix der Beziehungen
M.R. addiert werden können, da sie der bereits errichteten Gruppe von Vorausgingern widersprechen. Wenn alle Beziehungen
angenommen sind, so geht der Mechanismus zu der Raute 7O9 weiter, andernfalls nimmt er Notiz von den zurückgewiesenen Beziehungen
und geht zu der Haute 706 v/eiter.
In dem speziellen Fall einer Anforderung zum Schreiben eines
Systemmittels mit einer nicht-gelöschten Version basiert die Annahme auf der Beziehung zwischen dem anfordernden Prozeß und
dem vorausgegangenen Schreibprozeß. Es sei vermerkt, daß, wenn die Beziehung nicht akzeptiert wird, der Mechanismus zu der
Raute 706 weiterschreitet, aber zusätzlich die Beziehungen zu den lesenden Prozessen testet.
Raute 706. Eine durch eine Anforderung zum Lesen verursachte
Überlappung wird vermieden durch RUckleitung der Anforderung zu der nicht-gelöschten Version: Dies beinhaltet einen Wartezustand
für den Prozeß (Rechteck 711). Wenn die Überlappung durch eine Anforderung zum Schreiben hervorgerufen wird, so
ist eine Rückspeicherungsaktion notwendig und der nächste Schritt wird durch das Rechteck 707 dargestellt.
Rechteck 707. Irgendeine Strategie wird angenommen, die die zuvor notierten Überlappungen eliminiert und das System neu
speichert. In dem bevorzugten AusfUhrungsbeispiel ist die einfachste
Regel für diese Strategie die folgende:
8Q98U/0872
27U251
Wenn nur eine Überlappung festgestellt worden ist/ so wird der Prozeß (p.), der als zweiter Ausdruck
in der zurückgewiesenen Beziehung (p. folgt: . . p.)
auftritt, zum Abbruch ausgewählt (z. h. wird or als Eindringling betrachtet).
Wenn irehr als eine Überlappung festgestellt worden ist,
so wird der anfordernde Prozeß selbst zum Abbruch ausgewählt (z.B. wird er als ein Eindringling betrachtet).
Alternativ kann, wenn die Anwendung dies rechtfertigt, der
optimale Kandidat für den Abbruch mit einer der ausgeklügelteren
Methoden gemäß dem Abschnitt 0 der allgemeinen Erläuterung aurgewählt v/erden. Insbesondere:
Wird die Liste aller Prozesse aufgestellt, die mit dem anfordernden Prozeß zu überlappen scheinen.
Wird der Abbruch eines jedtin Prozentes in der Liste
selektiv in der Matrix der Beziehungen simuliert und wird ein Test durchgeführt, um sicherzustellen, ob
seine Eliminierung andere Interferenzen neben derjenigen,
wegen der er in der Liste ist, heilt. Dies gestattet die Eliminierung anderer Prozesse aus der Liste.
Wird, wenn die Liste auf einen Prozeß reduziert ist, dieser eine Prozeß für einen Abbruch ausgewählt,* andernfalls
ist der anfordernde Prozeß der ausgewählte Prozeß.
Auf jeden Fall wird das System unter Benutzung der beeinflußten Systemmittelliaten A.R.L. zurückgespeichert.
Sodann v/erden die Benutzungstabellen U.T. und die Matrix der Beziehungen M.R. entsprechend ergänzt.
Raute 708. Wenn der anfordernde Prozeß nicht abgebrochen worden
ist, so bildet die Raute 709 den nächsten Gehritt.
Raute 709. Die Überlappungen, sofern vorhanden, sind behandelt worden.
8Q98U/0872
Eier Mechanismus gestattet dem Prozeß fortzufahren
(Rechteck 710) , wenn eino /vbhängigkeit nicht geschaffen wird, d. h., wenn die Anforderung ein
nystemmittei nicht modifiziert, v/elches bereits
eine nicht-gelöschte Version besitzt. Andernfalls tritt der Prozeß in den Wartezustand ein (Rechteck
711) .
Rechteck 710. Die Benutzungstabollen, die Matrix der Beziehungen und die beeinflußten Systemmittellisten werdnn
fortgeschrieben, wenn der Proaeß fortschreitet.
Rechteck 711. Die Matrix der Beziehungen wird fortgeschrieben
(Symbol 3) und der Prozeß tritt in den Wartezustand ein.
Eine Variation der zuvor beschriebenen AusfüTirungsform des
Mechanismus "Keine Abhängigkeit" (Fig. 7) ist in Fig. 14 gezeigt. Wenn angenommen wird, daß der anfordernde Prozeß nicht
für einen Abbruch ausgewählt v/erden kann, so liegt der grundlegende
Unterschied zwischen den beiden Ausführungen darin, daß anstelle der Ausführung der Rückspeichoiungsmaßnah-men gemäß
Fig. 7 (Rechteck 707) die Aunführungsforn gemäE Fig. 14
die Eindringlinge einen nach dem anderen identifiziert und
eliminiert. Während Fig. 7 Platz für eino Rückspelcherungsmaßnahme,
basierend auf einer Vielzahl von "globalen Stategien" (die Beschreibung der Raute 707 gibt ein Beispiel einer
solchen Strategie) läßt, beinhaltet die Fig. 14 weniger Alternativen, aber die Verwirklichung ist einfacher.
Die Kästchen 1201 bis 120T1 können als den Kästchen 701 bis
711 entsprechend beschrieben werden, mit Ausnahme der Kästchen 1205 und 1207.
Raute 1205. Eine· Beziehung wird auf Überlappung beprüft. Wenn
keine Überlappung vorliegt, verzweigt der Mechanismus zur Raute 1204, wühlt eins andere Beziehung zur Löschung usw. bis
zur Abarbeitung. Wenn die Eezichung überlappt, so verzweigt
8Q98U/0872
df Mechanismus nach 1206.
Rechteck 1207. Hinsichtlich der identifizierten Überlappung
wird der "Eindringling" als der Prozeß angesehen, der als zweiter Ausdruck in der zurückgewiesenen Beziehung "p. folgt
... p_" auftritt. (Eine einfache Regel, wie sie im Abschnitt 8 der allgemeinen Erläuterung beschrieben wurde. Nebenbei
ist der Prozeß p. im vorliegenden Fall selbst der anfordernde Prozeß). Zur Rückspeicherung des Systems auf den Status, den
es gehabt haben würde, wenn der Eindringling niemalr wirksam
geworden wäre, benutzt der Mechanismus die beeinflußte Systemmittelliste
A.R.L. des Eindimjli ngs, um die rücksuspeichern-·
den Systemmittel und irgendeine andere vorzunehmende Maßnahme zu identifizieren.
Die Benutzungstabellen U.T.S. und die Matrix der Beziehungen
M.R. werden fortgeschrieben, um die Unangemescenheit wiederzugeben.
Sodann kehrt der Mechanismus zu der Raute 1204 zurück.
Merke: Eine Prozedur wie die eine gemäß Fig. 14 ist für eine
Konfiguration geeignet, die nicht die Möglichkeit des Abbruches des anfordernden Prozesses in Betracht zieht.
Um diesen Abschnitt zu beschließen, ist es wertvoll, festzustellen,
daß die Veränderungen gemäß dem Mechanismus "Keine Abhängigkeit", die verwirklicht werden können, nicht nur von
dem Typ gemäß den Figuren 7 und 14 sind, wo einige Funktionen leicht unterschiedlich ablaufen, sondern rein formal oder instrumente
11 sein können. Die Figuren'14 und 15 bilden ein Bei
spiel einer solchen Variation: Die Folge der Schritte ist neu angeordnet aber die Funktionen sind identisch. Der Vorteil
dieser Variation liegt darin, daß sie eine schnellere Bear beitung erzielen kann, obgleich die vollständige Auslegung
mehr Verzweigungen aufweist und komplexer erscheint.
8098U/0872
~ G8 -
27U251
Dip fundamentale Prüfung auf Überlappung
Gemäß Fig. 7 gibt die Raute 705 eine Operation an, die "FEST-STKLLUKG
NACHFOLGER" genannt ist. Die Operation "FESTSTELLUNG NACHFOLGrR" verwirklicht die fundamentale Uberlappungsprüfung
gemäß dem erfindungsgemäßen Konzept.
Die Operation identifiziert aus der Matrix der Beziehungen M.R.
alle Nachfolger eines Prozesses, beispielsweise des Prozesses P1. Da die Raute 705 in dem Mechanismus "Keine Abhängigkeit"
und die entsprechenden Rauten in den anderen Mechanismen der durch die Erfindung dargestellten Familie das Löschen von
Gruppen von Beziehungen wie "p. folgt auf p,"» "P1 folgt auf P3"/
usw. fordern, zeigt die Liste der Nachfolger, die durch die Operation "FESTSTELLUNG NACHFOLGER" erzeugt wird, an, welche
Beziehungen nicht aktzeptabel sind.
Das bevorzugte Ausführungsbeispiel der Operation "FESTSTELLUNG
NACHFOLGER" ist durch eine der Firmware- und Hardwareausführungen gemäß den Fig. 16a und 17a gegeben. Es sei jedoch festgestellt,
daß Softwareausführungen (ebenso wie andere Finnware/ Hardware-Ausführungen) möglich sind. Eine Software-Ausführung
in der Form einer PL1-J?rogrammliste entsprechend Flg. 16 wird
in einem nächsten Abschnitt geschildert: SOFTWARE-AUSFÜHRUNG DER OPERATION "FESTSTELLUNG NACHFOLGER".
Fig. 16a wird nunmehr als ein Flußdiagramm für die Firmwareoder
Hardware-Ausführungen der Operation "FESTSTELLUNG NACHFOLGER" erläutert, die in einem nächsten Abschnitt dargestellt
werden: Firmware und Hardware-Ausführungen der Operation "FESTSTELLUNG NACHFOLGER".
Beschreibung eines FluBdlagrammes für Firmware- und Hardware-Ausführungen der Operation "Feststellung Nachfolger".
Der logische Hintergrund des FlußdJagrammes ist bereit· durch
den Abschnitt 10.1 der allgemeinen Erläuterung gegeben worden.
8098U/0872
27U251
(Der Mechanismus "Keine Abhängigkeit" - Detailliert» Beschreibung,
insbesondere unter Punkt 3 diesen Abschnittes).
Fig. 16a beschreibt die Operation "FESTSTELLUNG NACHFOLGER" unter Bezugnahme auf den Prozeß A. 11 (.->:, y) i£;t eine RxR-Matrix
der Beziehungen, die in der Lage ist, die Beziehungen von R-Prozessen zu speichern. In der folgenden Beschreibung
wird die erste Variable >: der Matrix als Zeile und die zweite Variable y als Spalte bezeichnet. Es sei anyonosrimen, daß die
Namen (Icientifizierer) der Prozesse Zahlen sind und daß diese
Zahlen der Position (Zeile und Spalte) entsprechen, die dem Prozeß in dieser Matrix zugeordnet ist. Der Identifizierer A
ist deshalb eine Zahl. Es sei ebenfalls angenommen, duT- die
Koeffizienten der Matrix herkömmliche? Bedeutungen besitzen,
wie sie in der allgemeinen Erläuterung eingangs diskutiert wurden? insbesondere hat der Koeffizient 0 die Bedeutung
"Keine direkte Beziehung zwischen dem Prozeß in der Zeile und dem Prozeß in der Spalte". Für diese Ausführungsform ist
es ausreichend, zwischen Koeffizienten von 0 und abweichend
von 0 zu unterscheiden, da hier wie in der allgameinen Erläuterung
angenommen wird, daß eile von 0 abweichenden Werte eine "Folge"-Beziehung anzeigen.
S(i) ist ein Vektor von R-Elementen (i = 1, 2...R), die eine
Folge von zu prüfenden Prozessen anzeigen. L ist eine positive ganze Zahl, die als ein Index oder Zähler für S(i) benutzt
wird. P(i) ist ein Vektor von R-Elementen, der benutzt wird, um Prozesse zu speichern, die auf A folgen, wenn A identifiziert
ist. Im Block 1405 sind S(D und S(2) und L auf ihre Anfangswerte A, 1 und 1 entsprechend gesetzt und der Vektor P
weist anfänglich lauter Nullen auf. Bei 4ieser Beschreibung
wird angenommen, daß die Operation "FESTSTELLUNG NACHFOLGER" in einem Zusammenhang wie die Raute 705 gemäß Fig. 7 benutzt
wird, um die Möglichkeit der Einführung neuer Beziehungen "A folgt ..." in die Matrix zu prüfen. Die Operation gemäß
der Pvaute 705 kann die Prüfung einer oder mehrerer dieser
8098U/0872
27U251
Beziehungen erfordern. Die Oparation "FESTSTELLUNG NACHFOLGER"
führt zu der Liste der Nachfolger von A, d. h. der Liste von Prozessen, die nicht al» zweite Ausdrücke in den obigen Beziehungen
akzeptiert werden können.
Führt man mit der Beschreibung von Fig. 16a fort, so sieht man,
daß die Operation zu dcia Kreis 14a und zu der Raute 1410a fortschreitet.
In der Raute 1410a wird ein Koeffizient der Matrix geprüft, um zu sehen, ob er den Wert 0 aufweist. Der erste geprüfte
Koeffizient befindet sich in der ersten Zeile und in der erü».en Spalte entsprechend dem geprüften Prozeß, d.. h. dem Prozeß
A. Wenn der Koeffizient nicht den Wert 0 aufweist, so ist eine Beziehung zwischen dem Prozeß in der Zeile und dem Prozeß
in der Spalte festgestellt worden, was durch S(L+1) und S(L)
entsprechend angezeigt wird, und die Operation verzweigt zu der P.aute 1440. In der Raute 14·ί0 v/erden die Komponenten des
Vektors P entsprechend der Position S(L+1), d. h. der Vektor zu dem Prozeß in der Reihe, geprüft, um festzustellen, ob der
Wert 1 vorliegt, d. h. ob der Prozeß bereits als ein Nachfolger des Prozesses A identifiziert worden ist. Ist dies der Fall,
so verzweigt die Operation zu dem Kreis 14b, um nicht eine Folge von bereits ausgeführten Operationen zu wiederholen.
Wird die Prüffrage in der Raute 1440 mit nein beantwortet, so
verzweigt die Operation zu dem Block 1450, in welchem die Komponente P(S(L+1)) auf den Wert 1 genetzt wird und sodann
der Zähl stand des Zählers L um 1 erhöht wird. Die Operation verzweigt sodann auf die Raute 14 55. Wenn L gleich R ist, so
endet der Test am Ausgang 1445. Dies ist ein besonderer Fall: Alle Prozesse folgen in einer Folge dem Prozeß A, der Vektor S
zeigt die Folge an und alle Komponenten des Vektors P weisen de» Wert 1 auf. Der Test weist daher alle Beziehungen zurück.
Wenn L nicht gleich R ist, so verzweigt die Operation auf den Block 1460, wo die neue Beziehung S(L+1) anfänglich auf den
Wert 1 gesetzt wird (Prozeß 1). Die Operation verzweigt sodann zu dem Kreis· 14a. Auf diese Weise wird der Prozeß, der als dem
809814/0872
27U251
Prozeß A nachfolgend festgestellt worden ist, durch S(L) gespeichert
und seinerseits geprüft, um seine Nachfolger zu bestimmen. Es sei vermerkt, daß diese Schleife des Suchmechanismus
eine Folge der transitiven Eigenschaft der vorangegangenen Beziehungen ist.
Wenn die Testfrage in der Raute 1410a mit ja beantwortet wird, so verzweigt die Operation zu dem Punkt 14b und zu dem Block
1415. Die nächste Eintrittsstelle, d. h. die nächste Reihe in der gleichen Spalte wird nunmehr getestet, um zu sehen,
ob sie zu einer vorangegangenen Beziehung führt. Es wird daher im Block 1415 der Wert des Vektorelementes für die Reiheneintrittsstelle
um 1 erhöht. In der Raute 1420 wird die Reiheneintrittsstelle
getestet, um zu sehen, ob sie größer als R ist. Ist dies der Fall, so ist eine vollständige Spalte geprüft
worden und die Operation verzweigt zu der Raute 1425. In der Raute 1425 wird eine Feststellung getroffen, ob L = 1 ist.
Ist dies der Fall, so ist die Spalte, hinsichtlich der die Prüfung beendigt worden ist, dem Prozeß A zugeordnet und die
Operation verzweigt zu dem Kreis 1430. Der Kreis 1430 ist der übliche Ausgang der Operation "FESTSTELLUNG NACHFOLGER":
Die Komponenten des Vektors P, die den Wert 1 aufweisen, bestimmen, welche Prozesse dem Prozeß A nachfolgen und demzufolge,
welche Beziehungen "A folgt ..." zurückgewiesen werden müssen.
Wenn die Testfrage in der Raute 1425 mit nein beantwortet wird,
dann verzweigt die Operation auf den Block 1435, in welchem L um 1 erniedrigt wird. Die Operation verzweigt sodann auf den
Punkt 14b. Auf diese Weise wird die, Prüfung der vorausgegangenen Spalte an einer Zeileneintrittsstelle neu ausgelöst, die
eine Eintrittsstelle vor der zuvor getesteten Eintrittsstelle liegt. Wenn die Prüffrage in der Raute 14 20-mit nein beantwortet
wird, dies ist der Fall, wenn die Spalte nicht vollständig geprüft worden ist, so verzweigt die Operation zu dem
Punkt 14a und die nächste Eintrittsstelle wird geprüft (z.B. gleiche Spalte, nächste Zeile).
8Q98U/0872
Es sei vermerkt, daß der Ausgang 1445 in dem Ausgang 1430
untergebracht werden kann, wenn dies gewünscht wird. Durch die Trennung wird die zusätzliche Information bewahrt, daß
alle Prozesse auf den Prozeß A in einer Reihenfolge folgen, wobei jedoch der Ausgang 1445 einen sehr selten vorkommenden
Fall repräsentiert.
Viele Variationen des Flußdiagramines gemäß Fig. 16a können
beschrieben v/erden, die entweder zu verschiedenen Verwirklichungen der gleichen Funktion führen oder andere Punktionen
der gleichen Familie ergeben, wie z.B. eine Funktion, die die
Vorgänger anstelle der Nachfolger feststellt, eine Funktion, die die Beziehungen zwischen Paaren von Prozessen prüft, usw.
Mit Ausnahme der Operation "Feststellung VorgSnger", die Gegenstand
eines folgenden Abschnittes ist, wird die Erläuterung dieser Variationen vermieden, wobei jedoch darauf verwiesen
sei, daß die Prinzipien der vorliegenden Erfindung in einer Vielzahl verschiedener Weisen verwirklicht werden können,
ohne daß hierbei der Rahmen der Erfindung verlassen wird.
Eine alternative Verwirklichung der Operation "Feststellung
Nachfolger" kann in Form eines Rechenprogrammes gegeben werden. Im folgenden ist ein solches Rechenprograiran angegeben, bei dem
die Erfindung unter Verwendung einer PL1-Programnliste verwirklicht
wird.
L-Ii
S(D = A;
S(2) ·= 1;
do X ■ 1 to R;
P (X) - Oi ■
end;
14a: if M(S(L+1), S(L)) « 0, then go to 14b;
if P (S(L-M)) - 1, then go to 14b;
8QÖ8U/0872
P(S(L+D) - 1;
L=L-H ;
if L=R, then go to 1445;
S(L+1) = 1;
go to 14a;
14b: S(L-H) = S(L+1)+1 ;
if S(L+1) R, then go to 14a;
if L=1, then go to 1430;
L=L-I;
go to 14b;
es liegt auf der Hand, daß 14 30 und 1445
Bezeichnungen für die beiden möglichen Ausgänge
des Programms sind.
Firmware- und Hardware-Verwirklichungen der Operation "Fogtjstellung Nachfolger"
Die innerhalb einer Zentraleinheit CPU stattfindenden detaillierten
Operationen werden in einem bedeutenden Maß durch Mikroprogramme gesteuert, die in einer Steuereinheit gespeichert sind.
Eine Steuereinheit dieses Typs ist in der US-PS 3 634 883 dargestellt und beschrieben. Eine genaue Erläuterung der Steuertechnik
durch Mikroprogramme kann dem Buch: "Microprogramming Principles and Practices" von Samir S. Husson, Prentice Hall,
Inc., (1970) entnommen werden. Da die vorliegende Erfindung ihr häufigstes-Anwendungsfeld in Datenverarbeitungssystemen
findet, wird unter Beachtung der bekannten Mikroprogrammsteuertechnik eine vollständige Beschreibung ihrer Verwirklichung bereits
durch die Fig. 16a und die spater zu erläuternde Fig. 19a
gegeben. Eine Mikrooperationstechnik, die'gespeicherte Daten und Signale für bedingte und unbedingte Verzweigungen und für Datenübertragungen
benutzt, verwirklicht die Maßnahmen, wie sie für jede Kaute und jedes Rechteck innerhalb der Figuren angegeben
809814/0872
27U251
worden sind. Diese Figuren ivit den zugehörigen erläuternden
Texten sind ausreichend detailliert, um einem auf dem Gebiet
der Steuertechniken bewanderten Fachmann die erforderliche
Information zu vermitteln, die dieser für die Verwirklichung der Firmware/Hardware für die verschiedenen Feststellfunktionen
benötigt.
Für bestimmte Fälle;, wo die üblichen Möglichkeiten nicht vorliegen,
sei jedoch in Fig. 17a und später in Fig. 20a eine spezifische Kardwareverwirklichung dargestellt. Um die Beschreibung
nicht unnötig mit Dingen aufzublähen, die dem
Fachmann geläufig sind, wurde eine Blockdiagranundarstellung
gewählt, wobei die Funktionen eines jeden Blockes beschrieben werden. Dem einzelnen Ingenieur .tut es freigestellt, Elemente
und Komponenten» wie beispielsweise Flip-Flops, Schieberegister usw. aus seiner eigenen Kenntnis auszuwählen, wobei er auf folgende
Standardwerke zurückgreifen kann: "Arithmetic Operations
in Digital Computers" von R. K. Richards, (Van Nostrand Publishing
Company); "Computer Design Fundamentals" von Chu (McGraw-Hill Book Company Inc.) und "Pulse, Digital and
Switching Waveforms" von Millman und Taub, McGraw-Hill Dook Company Inc., Darüberhinaus werden die meisten aus dem Stand
der Technik bekannten Details in dieser Beschreibung weggelassen. Beispielsweise ist die Übertragung von Information
von einem Register zu einem anderen wohl bekannt und wird daher hier nur ganz allgemein angedeutet. Darstellungen von einzelnen
Leitungen, die tatsächlich mehrere Leitungen für die Parallelübertragung darstellen können, sind dem Fachmann bekannt.
Obgleich einige Details eliminiert worden sind, versetzt die grundlegende Beschreibung des gesamten Hardwaresystems
gemäß Fig. 17a den Fachmann in die Lage,1 die vollständige
Ausführung der Erfindung zu verstehen.
Fig. 17a verwirklicht das FluBdiagramm gemäß Fig. 16a und kann
wie folgt beschrieben werden:
8098U/0872
27U251
Zunächst seien die zugrunde gelegten Annahmen klargestellt:
Die Symbole . und + stehen entsprechend für UND- und ODER-Gatter.
Als Regel sei vereinbart, daß die Großbuchstaben v/ie LE eine Veränderliche von 1 Bit anzeigen, während
die mit Anführungsstrichen versehenen Syir.bole wie
"Q3" eine Größe mit mehreren Bits (ein Byte) anzeigen. Ferner sei als Regel vereinbart, daß eine einzelne
Leitung anzeigt, daß die übertragene Information aus einem Bit besteht, während die Doppelleitung anzeigt,
daß die Information aus einem Byte oder einer ähnlichen Größe besteht.
Stellt D den decodierten Ausgang des Befehls dar. Sind T1 und T_ Hauptzeitsignale des Systems. Im
allgemeinen wird T1 hier benutzt, um die Änderung
des Zählstandes zeitlich vorzugeben, wie er durch den Sequenzer Q angezeigt wird. T- wird zur zeitlichen Vorgabe der Funktion benutzt, die bei jedem
Zählstand (Schritt) auszuführen ist. Die Werte, die als Eingangssignale für die verschiedenen Gatter, Register, usw. auftreten, werden entweder als Ausgangssignale durch einige andere Gatter,
Register, usw. oder als fest verdrahtete Werte vorgegeben, sofern erforderlich. Der erste Fall bezieht
sich auf Symbole, die Variable (wie "Q", "L") repräsentieren und der letzte Fall bezieht sich auf
Symbole, die Konstanten (wie ""I1V1Q9", "0") repräsentieren.
Es sei angenommen, daß Prozesse durch Zahlen von 1 bis R identifiziert werden, wobei R die maximale
Anzahl von durch den Mechanismus behandelten Prozessen darstellt. Die Zahl zeigt ebenfalls die Position des Prozesses in der Matrix der Beziehungen an.
8098U/0872
Es seien nunmehr einige Komponenten beschrieben:
Der Sequenzer 1701a ist ein Zähler mit 14 Schritten oder irgendeine gleichwertige Einrichtung, die 14
sich gegenseitig ausschließende Zustände Q0, Q.,
... Q13 erzeugt. Jeder Schritt (oder Status oder
Zählstand) legt ein entsprechendes Ausgangssignal Q0, ... Q13 fest.
(Es sei vermerkt, daß QQ·.. Q3 .·· usw. Ein-Bit-Signale
darstellen, die anzeigen, ob der Sequenzer sich in diesen Zuständen befindet, während "Q?" ·.·
"Q9" ... usw. Mehrbitcodes darstellen, um dem Sequenzer
diese Zustände zu befehlen).
Der Sequenzer Q besitzt zwei Eingänge: Einen Eingang,
um den Zählstand um 1 zu erhöhen, und einen anderen Eingang, um den Wert ("Q") aufzunehmen, auf den der
Zähler einzustellen ist.
Das Register S 1702a speichert bis zu R-Komponenten
einen Vektors S, wobei jede Komponente der Identifizieren: eines Prozesses (eine Zahl) ist. "L" wird
durch die Ein/Ausgabelogik als Index benutztt
Die Ausgänge des Registers S sind "S(L)" und
Der Eingang für das Register S wird durch "IS" gebildet und als neuer Wert für S(L+1) eingegeben.
Es sei vermerkt, daß die Zeitsteuerung in der Ein/ Ausgabelogik so eingestellt ist, daß, wenn "IS" und
ein neues "L" zur gleichen Zeit erzeugt werden, die Speicherung von "IS" auf dem neuen "L" basiert (z.B.
"IS" wird in S(lS+1) gespeichert, wobei L den neuen Wert besitzt). Dies ist der Fall bei den Gattern
1710 und 1711 .
Das Register P 1702b weist eine Speicherkapazität zur Speicherung von bis zu R-Komponenten eines Vektors
P auf, wobei jede Komponente aus einem Bit besteht. Die Ein/Ausgabelogik von 1702b benutzt "S(L+1)" als
Index für den Eingang SO und die Ausgänge PO und PZ.
8098U/0872
Der Eingang SO setzt die indizierte Komponente von P auf 1. Der Ausgang PO zeigt an, daß die indizierte
Komponente von P auf 1 gesetzt ist, während der Ausgang PZ anzeigt, daß die indizierte Komponente auf
den Nullzustand zurückgestellt ist. Der Eingang RA setzt alle Komponenten von P auf 0 zurück. Die Ausgänge
P1, P- ... bilden am Ende die Antwort der
Operation: Sie zeigen an, welche Prozesse auf den Prozeß A folgen.
Um den "Speicher" zu lesen, in welchem die Matri::
der Beziehungen gespeichert ist, wird die Adresse durch den "Speicheradressidentifizierer" erzeugt.
Dieser kombiniert die Eingänge "X", "Y"f "B", "R" in B + X χ R + Y, welches die Adresse des Y.ten
Elementes in der X.ten Reihe einer RxR-Matrix ist, deren Basisadresse B ist. "B" und "R" sind Konstanten,
die durch entsprechende Register vorgegeben werden, während "X" und "Y" die variablen Indizes des gesuchten
Elementes in der Matrix sind. Wenn die Adresse in der zuvor berechneten Weise bereitgestellt
ist, so wird der Befehl RE (lesen) an den Speicher 102 ausgegeben.
Der Speicher wird nach dem gesuchten Element abgesucht, und wenn "MO" (Speicherausgang) bereit ist,
so wird dies durch DO (ausgeführt) angezeigt. (Es sei vermerkt, daß das Signal DO (wie RE zuvor)
nur für die für seine Verwendung erforderliche Zeit andauert. Beispielsweise dauert es nur wenige Zeitzyklen
an oder es wird durch Q,- zurückgestellt) . Die Register B, R, L, A, CO1, CO2, F1, F2 speichern
entsprechende Werte. Die Werte B, R, L sind bereits definiert worden; A ist der Identifizierer des Prozesses
bei der Grundfrage "welche Prozesse folgen auf A?"; CO-, CO2 und F1 und F2 speichern die Eingänge
für den "Vergleicher" und die "arithmetische Einheit" entsprechend.
8Q98U/0872
Der "Vergleicher" 1701b gibt die Antworten EQ (gleich) oder NE (nicht gleich) und GR (größer)
oder LE (kleiner oder gleich) bei Betrachtung von "CO1" im Hinblick auf "CO2".
Die "arithmetische Einheit" 1701 c addiert (ADD) und subtrahiert (SUB) die beiden Eingänge "F1", "ρ χ
Die "arithmetische Einheit" 1701 c addiert (ADD) und subtrahiert (SUB) die beiden Eingänge "F1", "ρ χ
*2 *
Die Elemente genäß Fig. 17a verwirklichen die Logik, des
Strukturdiagrammes gemäß Fig. 16a. Um dies zu veranschaulichen,
seien nachstehend Fig. 17a erläutert, indem der direkte Bezug zwischen den Kästchen in Fig. 16a und den Zählständen (Q) und
Gattern in Fig. 17a aufgezeigt wird. (Es mag hilfreich sein, festzustellen, daß die Logikelemente in Fig. 17a, Teil 1 auf
das Signal D- bezogen sind und daher auf übergänge von einem
Zählstand auf den nächsten, während die Elemente in Fig. 17a,
Teil 2 auf das Signal D2 und die durch diesen Schritt ausgeführten
Operationen bezogen sind).
Anfänglich befindet sich der Sequenzer 1701a im Schritt oder Zäh.lstand QQ. Die Gatter 1701 und 1702 gestatten die Aufschaltung
des Signales D1 auf den Sequenzer, wodurch der
Zählstand von Q0 auf Q1 erhöht wird. Q1^D2 (Gatter 1710)
lädt "0" über das Gatter 1710a in das Register L und liefert "A" als Eingang "IS" über das Gatter 1710b an die Register S.
Infolgedessen wird S(1)« A. Unterdessen stellt der Ausgang RA des Gatters 1710 alle Komponenten des Registers P zurück. Als
nächstes gestatten die Gatter 1701 und 1702 dem Signal D., den
Sequenzer 1701a zu erreichen, wodurch der Zählstand auf Q2 erhöht
wird. Q.,'D0 (Gatter 1711) lädt "1" über das Gatter 1711a
in das Register L. S(2) nimmt daher den Wert 1 ein.
Die soweit beschriebenen Operationen, die die Schritte Q1
und Q2 umfassen, verwirklichen die Operationen, wie sie durch
das Kästchen 1405 in Flg. 16a angezeigt sind. Q2 betätigt sodann
das ODER-Gatter 1701, welches seinerseits bei eine* Signal D1 auf hohem Potential das Gatter 1702 betätigt und den
809814/0872
27U251
Sequenzer 1701a auf den Schritt Q3 weiterschaltet. D3O3
an den Gattern 1712, 1712a und 1712b ordnen die Werte 11S(L)" und "S(L+1)" den Eingängen "Y" und "X" des Blockes
102a zu. Auf dieser Basis berechnet der Speicheradressidentifizierer 102a die Adresse des Elementes M(S(L+1), S(L)) und
überträgt diese zu dem Speicher 102 mit dem Befehl zum Lesen (RE). Unterdessen verändert sich der Status von Q3 auf Q4
(Gatter 1701 bis 1702), und wenn der Speicher bereit ist (z. B. "MO" führt das gesuchte Element und DO liegt vor),
so erhöht Q^'DO am Gatter 1701 zusammen mit D1 am Gatter
1702 den Zählstand des Sequenzers auf Q-. Diese Maßnahmen
bereiten die Verzweigung vor, wie sie durch die Rauten 1410a und 1440 in Fig. 16a beschrieben ist. Tatsächlich speist D3*
Qc den Vergleicher (Gatter 1713, 1713a und 1713b) und, wenn
das Ergebnis des Vergleichs EQ (gleich) ergibt oder PO eingeschaltet ist (z.B. (S(L+1))=1), so zwingt das Gatter 1704,
z. B. D1O5* (EQ+PO) den Zähler auf den Zählstand Qg, während,
wenn das Resultat NE (nicht gleich) entspricht und PZ eingeschaltet ist, die Gatter 1701 und 1702 den Sequenzer auf den
Schritt Qc erhöhen. Dies ist die durch die Rauten 1410a und
"O
1440 in Fig. 16a beschriebene Verzweigungsaktion. Die Schritte
Q6 und Q- entsprechen der Raute 1450 in Fig. 16a. Tatsächlich
speist D2O6 (Gatter 1714, 1714a und 1714b) die arithmetische
Einheit 1701c mit "L" und "1" und erzeugt den Ausgang SO, welcher die Komponente P(S(L+1)) des Registers P auf 1 setzt.
Die Operation fährt sodann mit dem Schritt Q_ (Kombination von Q, am Gatter 1710 und von D- am Gatter 1702) fort. D2* Q-(Gatter
1715, 1715a und 1715b ergänzt das Register L mit dem
neuen Wert L+1 (von "ADD") und speist den Vergleicher mit dem gleichen Wert und mit "R".' Wenn der Vergleicher NE (nicht
gleich) entscheidet, so erhöhen die Gatter 1701 und 1702 den Zählstand auf Qß, worauf die Gatter 1716 und 1716a eine 1 als
neuen Wert der Komponente S (L+1) des Registers S zuordnen. Diese Ergänzung wird in Fig. 16a durch den Block 1460 beschrieben.
Da auf den Block 1460 die Operation 1410a folgt, folgt dem Schritt Qß der Schritt Q3, wie durch die Gatter 1706
8098U/0872
27U251
und 1706a angezeigt. Wenn der Ausgang des Vergleichers im
Schritt Q7 den Wert EQ (gleich) ausgibt, so hat die Operation
den Ausgang 1445 über das Gatter 1705 (D1'Q-*EQ) erreicht,
wobei dieses Gatter das Signal END2 als Ergebnis der Operation
(alle Prozesse folgen dent Prozeß A) erzeugt. Wenn dem Schritt Q5 der Schritt Qg nachgefolgt ist (als Ergebnis von
D1-Q5*(EQ+PO) am Gatter 1704), so wird dieser und der nächste
Schritt (Q10) die durch den Block 1415 in Fig. 16a beschriebene
Operation ausführen. Qg«D2(am Gatter 1717, 1717a und
1717b) speist die arithmetische Einheit 1701c mit "S(L+D" und "V, und Q9 und D1 (Gatter 1701 und 1702) erhöhen sodann
den Scqucnzer auf den Schritt Q10* Die Kombination
Q10*D2 liefert über die Gatter 1718 und 1718a den neuen Wert
"ADD" für S(L+1). Zur gleichen Zeit erzeugt der Schritt Q10
die nächste Maßnahme (die durch den Block 1420 in Fig. 16a beschriebene Verzweigung) durch Lieferung von "S(L+1)" und
"RM als Eingänge an den Vergleicher (Gatter 1718, 1718a und
1718b). Die Verzweigung wird vervollständigt durch das Gatter
1707 (z.B. D1O10-LE) und das Gatter 1707a, wodurch Q3 als
neuer Schritt gebildet wird, oder durch die Gatter 1701 und 1702 (z.B. Q1 *GR und D1), die den Seguenzer auf den Schritt
Q11 weiterschalten. Das Gatter 1719 mit D2O11 und die Gatter
1719a und 1719b laden "L" und "1" in den Vergleicher, welcher
seinerseits entweder das Signal EQ erzeugt, welches das Gatter
1708 (z.B. D1'Q11*EQ) zum Stop der Operation mit der Antwort
END1 (und alle Folgeprozesse von A werden durch P gespeichert)
veranlaßt, oder ein Signal NE erzeugt, welches die Gatter 1701 und 1702 veranlaßt, den Sequenzer auf Q12 fortzuschalten. Die
gesamte Maßnahme entspricht derjenigen, wie sie in der Raute 1425 in Fig. 16a beschrieben ist. Der Schritt Q12 und der
nachfolgende Schritt Q13 führen die Operation geraflB dem
Block 1435 aus. Tatsächlich speisen das Gatter 1720 (z.B.
D2'Q12) und die Gatter 172Oa und 172Ob die arithmetische
Einheit mit "L" und "1" und der Ober die Gatter 1701 und
1702 gebildete Schritt Q13 ergänzt "L" mit der Different
("SUB") an den Gattern 1721 und 1721a. Diese Maθnah«·, die
8098U/0872
274A251
dem Block 1435 in Fig. 16a entspricht, wird sodann von einem Sprung auf den Schritt Qg gefolgt (über das Gatter V/09 und
d&s Gatter 1709a), was der Operation in dem Block 1415 in der geforderten Weise entspricht.
Zusammenfassend kann die folgende Parallelität zwischen den Schritten des Flußdiagramines gemäß Fig. 16a und den Operationen
dfts Hardwarediagrammeα gemäß Fig. 17a, Teile 1 und 2 festgestellt
werden: Q0=1400; Q1, Q2 ~ 1405; Q3, Q,, Q5 - 1410a;
Q5 - 1440; Q6, Q7 - 1450; Q7 - 145b; Q8 - 1460; Q9, O10 - 1415;
Q10 - 1420; Q11 - 1425; Q12, Q13 - 1435.
(Es sei vermerkt, daß es auf der Hand liegt, daß verschiedene Ausführungen des gleichen Prinzips die Speicherung von Vektoren
P und anderen Systemelementen in dem Speicher selbst anstelle
in getrennten Registern vornehmen können. Die Veränderungen hinsichtlich der Gatter und der Ereignisfolge sind von untergeordneter
Bedeutung und können zu einiger Einsparung und einer möglichen niedrigeren Betriebszeit führen. Dies wird jedoch
nicht erläutert).
Firmware- und Hardwareverwirklichungen des Mechanismus
"Feststellung Vorausgänger"
Der Mechanismus "Feststellung Vorausgänger" weist eine sehr
ähnliche Funktion wie der Mechanismus "Feststellung Nachfolger" auf, mit dem einzigen Unterschied, daß er Prozesse identifiziert,
die einem vorgegebenen Prozeß vorausgehen, anstatt diesem zu folgen.
Je nach den Umständen und der spezifischen Verwirklichung kann ein Schutzmechanismus gegen Überlappungen, der auf den
allgemein erläuterten Regeln aufbaut, besser durch den Mechanismus "Feststellung Nachfolger" oder durch den Mechanismus
"Feststellung Vorausgänger" erfüllt werden.
8Q98U/0872
27U251
Die Mechanismen "Feststellung Vorausgänger" ebenso wie die
Mechanismen "Feststellung Nachfolger" können ebenfalls Anwendung finden auf Gebieten, die nicht direkt mit der Suche
nach Uberlnppungsschleifen zusammenhängen. Ein Beispiel eines
solchen Falles wird in einem nachfolgenden Abschnitt (Wiederaufnahme
des wartenden Prozesses) gegeben.
Die Verwirklichung der Funktion "Feststellung Vorausgänger" kann auf einer sehr einfachen Veränderung der Funktion "Feststellung Nachfolger" basieren: Es ist ausreichend, die Matrix
der Beziehungen entlang der Zeilen abzusuchen, anstelle entlang der Spalten. Dies wird verwirklicht durch Austausch von
M(S(L), S(L+1)) gegen M(S(L+1), S(L)) in der Raute 1410 a gemäß
Fig. 16a (und in der entsprechenden PL1-Programmliste) und durch Austausch der Eingangssignale zwischen den Gattern 1712a
und 1712b in Fig. 17a, Teil 2.
Die Figuren 16b und 17b, Teil 1 und Teil 2 stellen Software-
und Hardwareausführungen des Mechanismus "Feststellung Vorausgänger"
dar. Für ihre Beschreibung kann der im Zusammenhang mit den Figuren 16a und 17b verwendete Text adequat übernommen werden,
wobei nur ein Rollenaustausch zwischen S(L+1) und S(L) bei der Absuche der Matrix der Beziehungen erfolgt: Die Raute 1410a
gemäß Fig. 16a wird zur Raute 1410b in Fig. 16b und die Gatter 1712a und 1712b in Fig. 17a werden zu den Gattern 1712c und
1712d in Fig. 17b. Durch den Austausch führt die Operation
eine Aufdeckung dahingehend durch, welcher Prozeß dem Prozeß in S(1), z. B. dem Prozeß A, vorausgeht, anstatt diesem zu
folgen.
Die Fig. 7, 14 und 15 beschreiben den Hauptteil des Mechanismus
"Keine Abhängigkeit", wobei jedoch zur Vollständigkeit noch der Teil beschrieben werden muß, der zum geeigneten Zeitpunkt die
-83- 27U251
Prozesse im Wartezustand wieder aufnimmt.
den
Wenn ein Prozeß in Wartezu.sfcand eintritt, so wird ein Symbol 3 in der Matrix der Beziehungen M.R. an der Schnittstelle zwischen der Zeile entsprechend dem wartenden Prozeß und der Spalte entsprechend dem den Wartezustand verursachenden Prozeß aufgezeichnet. Der wartende Prozeß soll seine Aktivität wieder aufnehmen, wenn der andere Prozeß beendet und gelöscht ist.
Wenn ein Prozeß in Wartezu.sfcand eintritt, so wird ein Symbol 3 in der Matrix der Beziehungen M.R. an der Schnittstelle zwischen der Zeile entsprechend dem wartenden Prozeß und der Spalte entsprechend dem den Wartezustand verursachenden Prozeß aufgezeichnet. Der wartende Prozeß soll seine Aktivität wieder aufnehmen, wenn der andere Prozeß beendet und gelöscht ist.
Diese Maßnahme kann so beschrieben werden:
Alle Prozesse mit dem Symbol 3 in der Spalte des gelöschten Prozesses werden jeweils einer für sich
freigegeben;
jeder Prozeß wird erneut dem allgemeinen Test (Fig. oder 14 z. B,) hinsichtlich des zu gestattenden Zugriffes
unterworfen;
die Benutzungstabellen, die Matrix der Beziehungen und die beeinflußten Systemmittellisten werden entsprechend
fortgeschrieben.
Die einfachste Verwirklichung dieses Mechanismus wird durch Fig. 18 beschrieben.
Startpunkt. Er entspricht dem Ereignis "ein Prozeß ist gelöscht worden".
Raute 1801. Sie testet, ob wenigstens ein Prozeß auf da3
Ereignis wartet. Ist dies nicht der Fall, so wird keine weitere Maßnahme ergriffen. Wenn wenigstens ein Prozeß wartet,
so wird in den Block 1802 eingetreten.
Block 1802. Der ausgewählte Prozeß wird freigegeben. Dies
bedeutet, daß der Prozeß dem allgemeinen Test (Fig. 7) unterworfen
wird. Infolgedessen kann der Prozeß seine Aktivität wieder aufnehmen, in einen anderen Wartezustand eintreten
oder auf Grund der vorliegenden Umstünde abgebrochen werden.
8Q98U/0872
Der Ausgang dieses Blockes ?eht auf die Raute 1801 zurück.
In jenen Systemen, wo es wahrscheinlich ist, daß viele Prozesse
auf das gleiche Ereignis warten, ist es klug, die Prozesse in einer Reihenfolge freizugeben, die die Wahrscheinlichkeit
der Bildung von Überlappungen reduziert. Solch eine Folge ist irgendeine Folge in Übereinstimmung mit den bestehenden
Zeitbeziehungen unter den Prozessen.
Ein bevorzugtes Ausführungsbeispiel, dieser Philosophie ist
in Fig. 18a dargestellt.
Wenn die freizugebenden Prozesse einmal in einer beliebigen
Liste P1, P2 ... P1, ... Pn (Block 1801a) angeordnet sind und
wenn die Liste weder leer ist (Raute 1802a) noch gerade einen freizugebenden Prozeß enthält (Raute 1803a), so wird ein Hinweis
i anfänglich auf 1 gesetzt (Block 1805a).
Die Funktion "Feststellung Vorausgänger" wird nun ausgeführt (Raute 1806a). Es ist wichtig, festzustellen, daß die Funktion
exakt diejenige ist, wie sie in den vorausgegangenen Abschnitten beschrieben wurde, um die Unverträglichkeit einer Überlappung
oder eines Stillstandes zu prüfen. Hier wird stattdessen die Reihenfolge der Freigaben in einer Weise fortgeschaltet, die
sich nicht im Gegensatz zu den bestehenden Beziehungen befindet, um das Risiko nachfolgender Überlappungen auf ein Minimum herabzudrücken
.
(Dieser Fall ist ein Beispiel für die mögliche Benutzung der beanspruchten Funktionen in einem Zusammenhang, der sich von
der ursprünglichen Suche nach Überlappungen unterscheidet).
Wenn der Mechanismus "Feststellung Vorausgänger" aufdeckt, da0
wenigstens ein Prozeß in der Liste des Blockes 1801a einem Prozeß
P^ vorausgeht, so verzweigt die Operation auf den Block
1807a. P. soll solch ein Prozeß eein. Der Block 1807a ergfinzt
8Q98U/0872
den Hinweis und substituiert j für i; sodann wiederholt die Operation den Test 1806a für den neuen Prozeß.
Wenn der Mechanismus "Feststellung Vorausgänger" aufdeckt, daß keinerder Prozesse in der Liste dem Prozeß P. vorausgeht, so
wird der Prozeß P^ freigegeben (Block 1808a) und die verbleibenden
Prozesse werden in einer neuen Liste (Block 1809a) konsolidiert, welche Liste ausgehend von dem Block 1803a der
gleichen Freigabeprozedur unterworfen wird.
Alle Prozesse werden einer nach dem anderen freigegeben. Wie
im Zusammenhang mit dem Block 1802 gemäß Fig. 18 herausgestellt
wurde, bedeutet die Freigabe eines Prozesses, daß der Prozeß erneut dem allgemeinen Test (Fig. 7) unterworfen wird, v/elcher
seinen Wartezustand hervorgerufen hat und welcher nunmehr seinen weiteren Verlauf erneut feststellt.
Es sei festgestellt, daß der durch die Fig. 18 und 18a beschriebene
Mechanismus in keiner Weise durch das Verfahren "Keine Abhängigkeit" eingeschränkt ist. Es ist ein absolut
allgemeiner Mechanismus für die Freigabe von wartenden Prozessen, unabhängig davon, welche Ursache den Wartezustand
hervorgerufen hat. Das Problem der Wiederaufnahme der wartenden Prozesse soll daher nicht erneut in den folgenden Abschnitten
erläutert werden, die sich mit der Verallgemeinerung des Schutzmechanismus befassen. Der Einfachheit halber sei
vorausgesetzt, daß dieser Mechanismus zugrunde gelegt wird.
Wie im Abschnitt 11 der allgemeinen Erläuterung festgestellt
wurde, bildet der Mechanismus "Keine Abhängigkeit" einen Spezialfall des allgemeinen Mechanismus. Insbesondere bildet
Fig. 8 die Verallgemeinerung von Fig. 7. Dieser Aspekt sei
mit einigen Einzelheiten beschrieben.
809814/0872
Fig 8 wird nachstehend unter Bezugnahme auf Fig. 7 beschrieben:
Die Unterschiede zwischen den beiden Figuren werden erläutert.
Raute 801. Wenn der anfordernde Prozeß seine eigene Version des
Systemmittels zu lesen wünscht, so autorisiert die Raute
diesen Prozeß sofort (Verzweigung zum Block 802). Die Raute gemäß Fig. 7 kann ebenfalls ein Rückschreiben autorisieren, da
in dem Mechanismus "Keine Abhängigkeit" kein anderer Prozeß diese
Version gelesen haben kann. Die Rauten 801 und 701 autorisieren beide die Wiederholung eines vorausgegangenen Leseprozesses.
Block 803. Dieser Block wird anfänglich und jedesmal, wenn die Anforderung zurückgeleitet wird, benutzt. Unter der Annahme,
daß die Anforderung ursprünglich an die letzte Version des Systemmittels adressiert ist und eine Version pro Zeiteinheit
zurückgeleitet wird, sind die zu löschenden Beziehungen folgende:
Beim Lesen: Der Bewerber muß dem schreibenden Prozeß der
adressierten Version des Systemmittels folgen.
Beim Schreiben: Der Bewerber muß den lesenden Prozessen und dem schreibenden Prozeß der adressierten
Version des Systemmittels folgen.
Der Block 703 gemäß Fig. 7 arbeitet unterschiedlich auf Grund der speziellen Regeln des Mechanismus "Keine Abhängigkeit":
a) nur zwei Versionen höchstens; b) anfänglich adressierter Leseprozeß nach der gelöschten Version; c) adressierter Schreibprozeß
nach der letzten Version. Dies macht es möglich, von dem
Block 703 die gesamte mögliche geforderte Information mit gerade einem Zugriff zu erhalten.
Raute 805. Überlappungen werden mit dem Mechanismus "feststellen
Nachfolger" festgestellt, wie im Falle der Raute in Fig. 7. Der Ausgang "Keine" der Raute 805 verzweigt zur
Kaute 812, da Überlappungen während vorausgegangener Durchläufe durch die Raute 805 festgestellt worden sein könnten
809814/0872
'"" 27A4251
und in dem Block 813 notiert sein könnten. Stattdessen verzweigt
die Raute 705 direkt zur Raute 709 in Fig. 7, da auf sie nur einmal zugegriffen werden kann.
Raute 806. Wenn eine Anforderung zum Lesen zurückgewiesen wird, so wird sie zu der vorausgegangenen Version des Systemmittels
zurückgeleitet. (Es wird angenommen, daß diese Version zugänglich ist). Keine Rückspeicherungen sind vorgesehen: Der Mechanismus
verzweigt zum Block 815, der diese Tatsache feststellt, und verläuft weiter zur Raute 803, Wenn eine Anforderung zum
Schreiben zurückgewiesen wird, so v/erden die Überlappungen durch den Block 813 notiert und es wird sodann eine Verzweigungsentscheidung
in der Raute 814 getroffen.
Raute 814. Wenn der schreibende Prozeß der angeforderten Version mit dem Bewerber überlappt, so wird die Anforderung zu der vorangegangenen
Version (Block 815) zurückgeleitet, um zu prüfen, ob diese Version eine lebensfähige Lösung darstellt. Wenn stattdessen
die Überlappungen auf die lesenden Prozesse beschränkt sind, so wird keine Rückleitung veranlaßt und es wird unmittelbar
zu dem Block 807 weitergeschritten. Es sei darauf verwiesen, daß, wenn eine Anforderung zum Lesen über den Block C15 zurückgeleitet
wird, keine Rückspeicherungsaktion in diesem Moment stattfindet. Der Hauptzweck liegt darin, Information für den
Block 807 über das Ausmaß der Überlappungen zu sammeln, um über den besten Maßnahmenverlauf entscheiden zu können. Wenn
der Block 807 entscheidet, den vorausgegangenen Schreibprozeß abzubrechen, so findet eine Rückleitung tatsächlich statt, aber
die Überlappung kann ebenfalls auf unterschiedliche Weise (z.B. durch Abbruch des anfordernden Prozesses selbst) geheilt werden.
In jedem Fall erfolgt eine Rückspeicherung. In dem Fall "Keine Abhängigkeit" verzweigt die Raute 706 in Fig. 7 direkt auf die
Blöcke 707 oder 711, da die Alternativen begrenzt sind und wei- tere Nachforschungen nicht erforderlich sind.
809814/0672
Raute 807. Ebenso wie die Raute 707 in Fig. 7 identifiziert
di(· Raute 807 die beste RückspeicherungsmaOnahme und löst
sie sodann aus. In beiden Fällen sind die Regeln jene, wie sie im Abschnitt 8 der allgemeinen Erläuterung beschrieben
wurden, aber in dem Fall "Keine Abhängigkeit" erlaubt die Abwesenheit von abhängigen Prozessen eine wietere Vereinfachung.
Hinsichtlich des allgemeinen Mechanismus ist das bevorzugte Ausltihrungsbcispiel folgendes:
Zwei Kandidaten werden betrachtet. Der erste Kandidat umfaßt den anfordernden Prozeß und die Prozesse, die
von ihm abhängen.
Der zweite Kandidat bildet die Liste aller Prozesse hinsichtlich derer die Vorausgängerbeziehungen mit dem
anfordernden Prozeß zurückgewiesen worden sind plus alle Prozesse, welche von diesen abhängen.
Wenn der erste Kandidat weniger Prozesse als der zweite aufweist, so wird der anfordernde Prozeß und seine abhängigen
Prozesse abgebrochen, andernfalls werden die Prozesse in der Liste abgebrochen.
Verfeinerungen dieser Regel umfassen eine Minimalisierung der
Liste (wie im Abschnitt 8 der allgemeinen Erläuterung beschrieben) und einen Vergleich der Kandidaten basierend auf den Wertigkeiten
anstelle der Anzahl von Prozessen.
Raute 809. Der Algorithmus, der aus den Beschränkungen hergeleitet
wird, die die Merkmale des Mechanismus charakterisieren, wird verwendet, um den Ausgang zu identifizieren. (In Fig.
wurde diese Regel ausdrücklich herausgestellt).
Ebenso wie der Mechanismus "Keine Abhängigkeit" kann der allgemeine
Mechanismus neben der in Fig. 8 dargestellten Verwirklichung in vielerlei Variationen verwirklicht werden. Das gemeinsame
Element bildet in jedem Fall die Tatsache, daß:
8Q98U/0872
Die Anforderung für die Benutzung eines Systemmitteln
durch eine Prüfung angenommen wird, die Regeln in Übereinstimmung
mit dein erfindungsgemaQen Prinzip verwendet.
Die Übertretung der Regel die Anforderung zurückleiten kann oder eine Wiederauffindungsmaßnahme hervorrufen
kann, was von den Uniständen abhängt. Nach Löschung der Operation, andere Algorithmen und
Kriterien entscheiden können, ob der Zugriff gestattet ist.
In jedem Fall der neue Status so aufgezeichnet wird, daß der Mechanismus mit der fortgeschriebenen Information
arbeitet.
In gewissem Sinn kann behauptet werden»· daß die zusätzlichen Beschränkungen das Hauptelement bilden, das die: verschiedenen
Unterklassen dieses Mechanismus charakterisiert. Ein spezieller Fall bildet der "Freilauf", wo zusätzliche Beschränkungen nicht
vorliegen. Ein anderer Fall ist der Fall "Keine Abhängigkeit". Ähnlich diesem Fall ist der Fall "Eine nicht-gelöschte Version".
Dieser Fall unterscheidet sich von dem Fall "Keine Abhängigkeit" insoweit, als er das Lesen der nicht-gelöschten Version (daher
Bildung einer Abhängigkeit) gestattet. Ein Wartezustand v/ird nur hervorgerufen durch eine Anforderung zum Schreiben einer zweiten
nicht-gelöschten Version eines Systemmittels. Eine triviale Erweiterung bilden die "η-Versionen" (pro Systemmittel), wo das
Warten vorgeschrieben wird, wenn die /vnzahl der Versionen eines Systemmittels einen bestimmten Wert η erreicht. Ein anderer
Fall bildet der "begrenzte Raum für temporäre Speicherung", wo das System die Bildung von nicht-gelöschten Versionen der Systemmittel
solange gestattet, bis der für die temporäre Speicherung reservierte Bereich aufgefüllt ist.
Die Liste der Unterklassen ist durch die Aufzählung dieser wenigen
Beispiele bei weitem nicht erschöpft.
809814/0872
Schließlich sol vermerkt, daß es wertvoll sein kann, die zuvor
gemachten Beobachtungen zu wiederholen, daß im allgemeinen die
zusätzlichen Anforderungen nach der Möglichkeit einer. Wartezustandes verlangen, daß dies aber Jn keinem Fall eine» absolute
Regel darstellt, da alle Folgen im Rahmen des sehr cillgemeinen
Falles betrachtet v/erden können. Alle diese Folgen (Verzögerungen, Zurückweisungen, usw.) sind in der vorliegenden Beschreibung
enthalten, obgleich sie nicht explizit erwähnt sind.
Die verallgemeinerte Feststellung
Die Erläuterung in dem vorausgegangenen Abschnitt beschreibt den allgemeinen Schutzmechanismus. Noch ein anderer wichtiger
Gesichtspunkt der Verallgemeinerung verdient eine detaillierte Darstellung und Erläuterung: Die verallgemeinerte "Feststell"-Funktion
bzw. Befehl und ihre zugehörigen Werkzeuge.
Es seien einige Beispiels betrachtet.
Der "Freilauf"-Mechanismus erlaubt zwei Arten von Beziehungen:
"folgt aber hängt nicht ab" (Symbol 1 im bevorzugten Ausführungsbeispiel) und "folgt und hängt ab" (Symbol 2). Vom reinen Uberlappungsstandpunkt
liegt kein Erfordernis für eine Unterscheidung zwischen den beiden Symbolen vor, aber die Unterscheidung
ist wertvoll für den Rückspeicherungsteil des Mechanismus (sekundäre Abbruche). (Die Prozedur der Identifizierung abhängiger
Prozesse kann diese verallgemeinerte Feststellung benutzen, wenn sie das Symbol 2 von den anderen Symbolen unterscheiden
kann).
Analog benutzt der Mechanismus "Keine Abhängigkeit" die Beziehungen
"folgt aber hängt nicht ab" (Symbol 1) und "wartet"
(Symbol 3). Erneut werden für die UberlappungsprUfung beide Symbole betrachtet, während das Symbol 3 den KennschlUssel zur
Wiederaufnahme des wartenden Prozesses bildet.
8Q98U/0872
" -1 " 27ΑΛ251
Vienn sowohl die Abhängigkeit, als auch der Wartezustand vorausgesetzt
worden, v/ie dies im allgemeinen der Fall ist, so sind
neben dem Wert 0 wenigstens 3 Symbole in Betracht zu ziehen.
Erneut kann für die Prüfung der Überlappung die Unterscheidung
nicht erforderlich sein (da es nur von Bedeutung ist, ob das Symbol don Wert 0 aufweist), aber es kann für andere Teile des
Mechanismus von Bedeutung sein, so z. B. für die Rückspeicherung, die Wiederaufnahme und ähnliche Maßnahmen.
Tatsächlich können mehr als drei Symbole geeignet sein, die Beziehungen zwischen den Prozessen in dem allgemeinen Fall zu
charakterisieren. Beispielsweise kann die Beziehung "warten" bereits für sich selbst 3 Symbole benötigen, entsprechend
"folgt, hängt ab und wartet nun", "folgt ohne Abhängigkeit und wartet nun" und "folgte nicht, aber wartet nun".
Irgendeine Unterklasse den allgemeinen Mechanismus benutzt eine
geeignete Untergruppe von Symbolen, deren Anzahl in einigen
Fällen groß und in anderen Fällen gering sein kann.
Gleiche Dotrachtungon können offensichtlich auf die Verwirklichungen
der Benutzungstabollen oder die beeinflußten Systemmittellisten erstreckt werden, sollen hier jedoch nicht weiter
verfolgt v/erden.
In allen bisher erläuterten Verwirklichungen ist eine Prüfung auf Überlappung gezeigt worden, die auf ein von 0 verschiedenes
Symbol in der Matrix der Beziehungen anspricht, anstelle auf einige ausgewählte Symbole. Dies ist nicht immer wünschenswert;
wenn ein Symbol nicht eine vorangegangene Beziehung beinhaltet, so muß es durch die Prüfung süßer Acht gelassen v/erden.
Da der allgemeine Mechanismus die Matrix benutzen kann, wobei diese andere Informationen neben den Beziehungen der vorausgehenden
Prozesse aufweisen kann, erfordert die Verallgemeinerung der Prüfung auf Überlappung, daß eine "Feststellung" mit
der Fähigkeit ausgestattet wird, zwischen Symbolen zu unterscheiden, um mit den Besonderheiten aller möglichen Variationen
des Mechanismus übereinzustimmen.
80981A/D872
Für die Verwirklichung eine? allgemeinen Mechanismus werden
daher zwei grundlegende For;aen von "Feststell"-Funktionen oder Befehlen hier gefordert:
"Feststellung Nachfolger oder Feststellung Vorausgänger" eines Prozesses A mit keinem Hinweis auf Symbole in der
Matrix der Beziehungen, was die Feststellung aller von Null verschiedenen Symbolen bedeutet.
"Feststellung (p, q, ...) Nachfolger oder Feststellung (P/ <3r ···) Vorausgänger" eines Prozesses A, wobei p, g
die ausgewählten Symbole darstellen, die die Operation erfassen muß.
Die erste Kategorie entspricht der bisher benutzten, deren
Firmware und Hardware in bevorzugten Ausführungsbeispielen unter Bezugnahme auf die Figuren 16a, 16b, 17a und 17b beschrieben worden ist.
Die zv/eite Kategorie gestattet die Bestimmung ausgewählter Symbole, für die die Funktion empfindlich sein muß, bei der
Ausführung der Operation.
Für diese Funktionen oder Befehle ist die Firmware/Hardwareausführung in den Figuren 19a, 19b, 20a und 20b dargestellt.
Ihre Beschreibung (siehe nächster Abschnitt) ist vollständig analog zu der hinsichtlich der Figuren 16a, 16b, 17a und 17b
gegebenen Beschreibung mit dem folgenden Unterschied:
Der Test, der bei der Operation "Feststellung Nachfolger
(oder Vorausgänger)" auf der Tatsache beruht, daß ein
wiederaufgefundenes Symbol den Wert Null aufweist, basiert
hier bei der Operation "Feststellung (p, q, ...) Nachfolger
(oder Vorausgänger)" stattdessen auf der Tatsache, daß das
Die Verallgemeinerung ist zu Beginn dieses Abschnittes als ein Erfordernis für einige Verwirklichungen des allgemeinen Mechanismus zum Schutz gegen Überlappung eingeführt worden.
8Q98U/0872
Die Nützlichkeit einer solchen Verallgemeinerung wird noch augenscheinlicher,
wenn die "Feststell"-Funktion außerhalb des Hauptbereichs der Uberlappungsprüfung benutzt wird.
In jedem Fall liegt es auf der Hand, daß die Fähigkeit der Unterscheidung zwischen Symbolen wesentlich ist, um die volle
Auswertung eines Befehles, wie des Befehles "feststellen" (in einem Schutzmechanismus oder nicht) zu gestatten.
Die Erweiterung der Familie der Befehle "feststellen" kann ebenfalls in einer anderen Richtung gesucht werden: Die Zuordnung
von zusätzlichen Funktionen zu dem ursprünglichen Befehl "feststellen". Diese Zuordnungen können sehr instrumenteil bei
der Verwirklichung von schnellen Mechanismen sein. Insbesondere kann die Funktion "feststellen" in Funktionen eingemischt werden,
die durch benachbarte Blöcke in dem Ablaufdiagramm des Mechanismus
ausgeführt werden.
Obgleich der nächste Abschnitt Ausführungen in nur einer Richtung der zuvor erwähnten Verallgemeinerungen beschreibt, können die
anderen Erweiterungen mit gleichen Annahmen aus den Ausführungen gemäß den Figuren 16a, 16b, 17a, 17b, 19a, 19b, 20a und 2Ob erhalten werden und sie werden hier nicht näher erläutert.
Welcher Art auch immer die zusätzlichen Charakteristiken sein mögen, alle Erweiterungen gehören zu der Familie der "Feststell"-Befehle
oder Funktionen, die Beziehungen zwischen den Prozessen in einer Weise benutzen und/oder auf diese mit Zielen einwirken,
die für die vorliegende Erfindung charakteristisch sind.
Die Erläuterung wird hier auf ein fundamentales Paar von Ausführungsbeispielen
beschränkt, die die Ausführungsbeispiele verallgemeinern, wie sie im Zusammenhang mit den Figuren 16a,
16b, 17a und 17b beschrieben worden sind.
8098U/0872
Die Figuren 19a und 19b stellen die grundlegenden Ausführungsbeispiele
der Funktionen "Feststellung (ρ, q, ...) Nachfolger" und "Feststellung (p, q, ...) Vorausgänger" dar, wobei p, q, ..
die Symbole darstellen, für die die Operation empfindlich sein muß.
Augenscheinlich ist ein noch wichtigerer Eingang der Identifizierer
eines Prozesses (A), auf welchem die Suche basiert. Der Einfachheit halber verwendet der nachfolgende Text die obigen
Ausdrücke ohne eine ausdrückliche Indizierung derselben.
Die gleiche für die Figuren 16a und 16b benutzte Beschreibung kann für die Figuren 19a und 19b benutzt werden. Der einzige
Unterschied liegt in den Rauten 1910a und 1910b, die das wiederaufgefundene Symbol mit p, q, ... vergleichen, die
durch die Befehle erklärt sind, und die nach dem Block 1940 verzweigen, wenn das Symbol einem diener Werte entspricht,
während der Block 1915 adressiert wird, wenn sich das Symbol
von all diesen Werten unterscheidet. Dies stellt augenscheinlich eine Verallgemeinerung des Vergleichs des Symbols mit
dem Wert 0 dar, der in den Blöcken 1410a und 1410b erfolgte.
Die PLI-Programmliste kann entsprechend ebenfalls leicht umgewandelt
v/erden.
Nachfolgend ist eine PL1-Programmliste für <lie Operation des
Ausführungsbeispieles gemäß Fig. 19a aufgeführt:
L=1?
S(D=A;
S(2)=1;
do X=1 to R; ·
P(X)=O;
end;
19a:if M(S(L+1), S(L)) « p, then go to 1940; if M(S(L-H), S(L)) « ρ, then go to 1940;
8098U/0872
19b: S(L+1) = S(IH-I)-H;
if S(L+1) R, then go to 19a; if L=I, then go to 1930;
L=L-I;
go to 19b;
1940: if P(S(L-H)) = 1, then go to 19b;
P(S(L-H)) = 1;
L=L-H ;
if L=R, then go to 1945; S(L-H)=I;
go to 19a;
wobei die bedingten Anweisungen "if M(S(L+1), S(L)) «=
..." so zahlreich wie die Symbole für deren Prüfung sind.
Im folgenden ist eine PL1-Programmliste für die Funktion "Feststellung
(p, q, ...) Vorausgänger" gemäß dem Ausführungsbeispiel in Fig. 19b angegeben:
L=1;
Sd)=A;
S(2)=1;
do X=1 to R;
P(X)=O;
end;
19a:if M(S(L), S(L-H)) = ρ, then go to 1940;
if M(S(L), S(L-H)) = q, then to to 1940;
19b: S(L+1) = S(L-H)-H;
if S(L-H) R, then go to 19a; if L«1, then go to 1930;
L=L-I;
go to 19b;
1940» if P(S(L-H)) = 1, then go to 19b;
8098U/0872
L=L+1;
if L=R, then go to 1945;
go to 19a;
Die bedingten Anweisungen "wenn M(S(L), S(L+1)) » ..." sind
so zahlreich wie die Symbole für die Prüfung. In diesem und dem vorausgehenden Programm bezeichnen 1930 und 1945 die beiden
entsprechenden Ausgänge END1 und END3.
Die gleiche Überlegung, die im Zusammenhang mit den Figuren
16a und 1Gb angestellt wurde, kann hier angestellt werden, um festzustellen, daß die Figuren 19a und 19b ausreichend
sind, um eine Firmware/Hardware-Verwirklichung der Funktionen einem Fachmann, der mit den Steuertechniken von Datenverarbeitungssystemen
vertraut ist, zu ermöglichen.
Zur Behandlung von speziellen Fällen, wo die üblichen Möglichkeiten
nicht verfügbar sind und zur leichteren unabhängigen Verwirklichung der Funktion in anderen Anwendungsbereichen,
ist in den Figuren 20a und 20b eine spezifische Hardwareverwirklichung angegeben. Um eine unnötige Belastung der Beschreibung
mit dem Fachmann bekannten Angelegenheiten zu vermeiden, ist der Grad der Detaillierung in gleicher Weise wie bei den
Figuren 17a und 17b gewählt worden, und dem einzelnen Fachmann ist es freigestellt, die Elemente und Komponenten aus seiner
Kenntnis auszuwählen. Die Einzelheiten sind ausreichend, um dem Fachmann die Verwirklichung der Erfindung zu ermöglichen.
Zur Erläuterung der Figuren 20a und 20b sind die gleichen Bemerkungen
und Beobachtungen wie im Zusammenhang mit den Figuren 17a und 17b vorgesehen, mit folgenden zusätzlichen Bemerkungen:
Ein Mehfachvergleicher 2002d ist vorgesehen. Er besitzt
eine Gruppe von Registern, die mit den Werten "p"# "q"
8098U/0872
... durch den gleichen Mechanismus geladen werden, der den Befehl (z. B. "Feststellung (p, q, ...) Nachfolger
oder Vorausgänger") beim Beginn der Operation decodiert. Der Mehrfachvergleicher besitzt einen Eingang
"MC", der mit "p", "q" usw. verglichen wird. Der Mehrfachvergleicher besitzt zwei Ausgänge (mit
nur einem Bit) MD (z.B. der Mehrfachvergleich zeigt einen Unterschied an) oder ME (z.B. der Mehrfachvergleich
zeigt Gleichheit an). Wenn "MC" verschieden von allen Vergleichselementen ist, so wird MD durch
den Mehrfachvergleicher gesetzt und ME zurückgestellt; wenn stattdessen "MC" einem der Elemente entspricht,
so wird ME gesetzt und MD zurückgestellt. Mit anderen Worten bildet der Mehrfachvergleicher eine Kombination
von einfachen Vergleichern. Die Antwort MD (z.B. "verschieden" bildet die UND-Verknüpfung aller einzelnen
Antworten "verschieden", während ME (z.B. "gleich") die ODER-Verknüpfung aller einzelnen Antworten "gleich"
bildet.
Im Schritt Q5 wird das im Speicher wieder aufgefundene
Symbol ("MO") in den Mehrfachvergleicher geladen (Gatter 2013 und 2013a); die Antwort ME oder MD in der
dargestellten Weise mit PZ oder PO kombiniert, bereitet den übergang zu dem nächsten Schritt (Q,. oder 0-) vor
(Gatter 2001, 2002 oder Gatter 2004 und 2004a). Es versteht sich, daß die für den Mehrfachvergleich
erforderliche Zeit kürzer als das Intervall D2 bis D1
ist.
Fig. 20a entspricht der Logik von Fig. 19a und Fig. 20b entspricht
der Logik von Fig. 19b.
Wie zuvor erläutert, können viele Veränderungen in Betracht gezogen werden, die sich von dem Einschluß zusätzlicher Funktionen
bis zu der Auswahl alternativer äquivalenter logischer Folgen erstrecken. Der Einfachheit halber werden diese Variationen
8Q98U/0872
nicht erörtert, wobei es sich versteht, daß die Prinzipien
der vorliegenden Erfindung in vielen ähnlichen Weisen verv/endet und verwirklicht werden können, ohne daß hierbei der
Rahmen der Erfindung verlassen wird.
8Q98U/0872
Claims (8)
- 27AA251HONEYWELL !!,'FORMATION SYST 1-.MS INC. 21K Scpteruber ID??Smith Street 5101599 Go.Waltham, Macs., USAMehrprogranim/Mehrprozeß-Computer systemPatentansprüche:Mehrprogramm/Mehrprozeß-Computersystem zur Bearbeitung mehrerer Prozesse, die eine gemeinsame Information in Form von Datensätzen, Seiten oder Nachrichten gemeinsam binut?..?n, gekennzeichnet durch eine Einrichtung zum Identifizieren jener Prozesse aus der Vielzahl von Prozessen, die reit einem ersten vorbestimmten von dem Corr.nutersystem bearbeiteten Prozeß überlappen würden, wenn der erste vorbestimmte Prozeß auf die gemeinsame Information Zugriff nimmt, wobei diese Einrichtung aufweist:a. erste Mittel zur Speicherung codierter Signale, welche die Benutzungsgeschichte der gemeinsamen Information durch irgendeinen der Prozesse anzeigen; undb. zweite durch ihren Anschluß auf die ersten Mittel ansprechende Mittel zum Identifizieren jener Prozesse innerhalb der mehreren Prozesse, deren Benutzxmgsgeschichte der gemeinsamen Information eine Überlappung mit dem ersten vorbestimmten Prozeß hervorruft.809814/087227U251
- 2. Mohrprogramm/Mehrprozeß-Computersystem zur Bearbeitung mehrerer Prozersse/ die eine «gemeinsame; Information gemeinsam benutzen, gekennzeichnet durch eine Einrichtung zum Identifizieren ernter Prozesse innerhalb der Vielzahl von Prozessen, die mit einem zweiten Prozeß jener durch aas Computersystem bearbeiteten Prozesse überlappen würden, wenn dieser zweite Prozeß aui die gemeinsame Information Zugriff nimmt, wobei diese Einrichtung aufweist:a. erste Mittel zur Speicherung erster codierter Signale, die die Benutzungsgeschichte der gemeinsamen Information durch irgendeinen der mehreren Prozesse anzeigen;b. zweite Mittel zum Identifizieren dritter Prozesse, die bei der Bearbeitung auf diesem Computersys tem dem zweiten Prozeß in der Reihenfolge nachfolgen;c. dritte an die zweiten Mittel angeschlossene Mittel zum Speichern zweiter codierter Signale, die diesen dritten Prozeß identifizieren; undd. vierte an die ersten und dritten Mittel angeschlossene Mittel zum Vergleich dieser ersten codierten Signale mit diesen zweiten codierten Signalen.
- 3. System nach Anspruch 2, gekennzeichnet durch fünfte mit den vierten Mitteln verbundene Mittel zur Anzeige, welcher der dritten Prozesse mit dem zweiten von dem System bearbeiteten Prozeß überlappen würde.
- 4. System nach Anspruch 3, gekennzeichnet durch sechste mit den fünften Mitteln verbundene Mittel, die den zweiten Prozeß veranlassen, auf eine vorhergehende Ausgabe der gemeinsamen Information Zugriff zu nehmen.
- 5. System nach Anspruch 3, gekennzeichnet durch siebte mit den fünften Mitteln verbundene Mittel, um jene Prozesse dieser dritten Prozesse, die mit dem zweiten Prozeß überlappen würden, abzubrechen.fl098U/0872M O β27U251
- 6. System nach Anspruch 3, gekennzeichnet durch achte mit den lünften Mitteln verbundene Mittel, die den zweiten Prozeß veranlassen, einen Kartezustand einzunehmen .
- 7. System nach Anspruch 6, gekennzeichnet durch neunte mit den achten Mitteln verbundene Mittel, die den zweiten Prozeß veranlassen, den Wartezustand zu verlassen.
- 8. Auf dem Mehrprogramir./Mehrprozeß-Comutersystem gemäß Anspruch durchgeführtes Verfahren, gekonnzeichnet durch folgende Schritte:a. Speicherung erster codierter Signale zur Anzeige der Benutzungsge3chichte der durch irgendeinen der mehreren Prozesse gemeinsam benutzten Information;b. Identifizierung dritter Prozesse, die der Reihe nach dieeem zweiten Prozeß bei der Bearbeitung auf diesem Comuptersystem nachfolgen;c. Speicherung zweiter codierter Signale, die die dritten Prozesse identifizieren; undd. Vergleich dieser ersten codierten Signale mit diesen zweiten codierten Signalen.8098U/0872
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/729,536 US4096561A (en) | 1976-10-04 | 1976-10-04 | Apparatus for the multiple detection of interferences |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2744251A1 true DE2744251A1 (de) | 1978-04-06 |
Family
ID=24931494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19772744251 Withdrawn DE2744251A1 (de) | 1976-10-04 | 1977-10-01 | Mehrprogramm/mehrprozess-computersystem |
Country Status (8)
Country | Link |
---|---|
US (1) | US4096561A (de) |
JP (1) | JPS5345143A (de) |
AU (1) | AU523299B2 (de) |
BE (1) | BE859188A (de) |
CA (1) | CA1241450A (de) |
DE (1) | DE2744251A1 (de) |
FR (1) | FR2366626A1 (de) |
GB (1) | GB1531650A (de) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US4488217A (en) * | 1979-03-12 | 1984-12-11 | Digital Equipment Corporation | Data processing system with lock-unlock instruction facility |
US4292623A (en) * | 1979-06-29 | 1981-09-29 | International Business Machines Corporation | Port logic for a communication bus system |
US4742449A (en) * | 1981-04-23 | 1988-05-03 | Data General Corporation | Microsequencer for a data processing system using a unique trap handling technique |
US4439830A (en) * | 1981-11-09 | 1984-03-27 | Control Data Corporation | Computer system key and lock protection mechanism |
US4482599A (en) * | 1982-07-06 | 1984-11-13 | Exxon Research & Engineering Co. | Support layer for electric discharge transfer materials |
US4821175A (en) * | 1985-12-24 | 1989-04-11 | Oki Electric Industry Co., Ltd. | Database processing device |
US4845624A (en) * | 1987-03-05 | 1989-07-04 | International Business Machines Corporation | Relational data base lock avoidance system |
US5341510A (en) * | 1987-05-01 | 1994-08-23 | Digital Equipment Corporation | Commander node method and apparatus for assuring adequate access to system resources in a multiprocessor |
US4937733A (en) * | 1987-05-01 | 1990-06-26 | Digital Equipment Corporation | Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system |
JPH07113898B2 (ja) * | 1989-05-09 | 1995-12-06 | 株式会社日立製作所 | 障害検出方式 |
JPH0448350A (ja) * | 1990-06-18 | 1992-02-18 | Toshiba Corp | データベース管理システム |
US5546579A (en) * | 1994-05-02 | 1996-08-13 | International Business Machines Corporation | Page refreshing procedure using two locking granularities to ensure cache coherency in a multisystem database processing environment having a high-speed shared electronic store |
US7562143B2 (en) * | 2004-01-13 | 2009-07-14 | International Business Machines Corporation | Managing escalating resource needs within a grid environment |
US7406691B2 (en) * | 2004-01-13 | 2008-07-29 | International Business Machines Corporation | Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment |
US7552437B2 (en) * | 2004-01-14 | 2009-06-23 | International Business Machines Corporation | Maintaining application operations within a suboptimal grid environment |
US7266547B2 (en) * | 2004-06-10 | 2007-09-04 | International Business Machines Corporation | Query meaning determination through a grid service |
US7590623B2 (en) * | 2005-01-06 | 2009-09-15 | International Business Machines Corporation | Automated management of software images for efficient resource node building within a grid environment |
US7571120B2 (en) * | 2005-01-12 | 2009-08-04 | International Business Machines Corporation | Computer implemented method for estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms |
US7562035B2 (en) * | 2005-01-12 | 2009-07-14 | International Business Machines Corporation | Automating responses by grid providers to bid requests indicating criteria for a grid job |
DE102005021853A1 (de) * | 2005-05-11 | 2006-11-16 | Siemens Ag | Flexiblere Überwachung und Wiederherstellung von Prozessen auf Datenverarbeitungssystemen |
US7318138B1 (en) | 2005-08-30 | 2008-01-08 | Symantec Operating Corporation | Preventing undesired trespass in storage arrays |
US8060775B1 (en) | 2007-06-14 | 2011-11-15 | Symantec Corporation | Method and apparatus for providing dynamic multi-pathing (DMP) for an asymmetric logical unit access (ALUA) based storage system |
JP5621904B2 (ja) * | 2011-02-25 | 2014-11-12 | 富士通株式会社 | ロック制御装置、ロック制御プログラムおよびロック制御方法 |
CN112994990B (zh) * | 2021-05-20 | 2021-07-30 | 蚂蚁金服(杭州)网络技术有限公司 | 一种环路检测方法、装置、电子设备与存储介质 |
CN113779883B (zh) * | 2021-09-14 | 2023-06-09 | 沈阳工程学院 | 一种基于变异人工鱼群的风电储能系统充放电过程优化方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3573736A (en) * | 1968-01-15 | 1971-04-06 | Ibm | Interruption and interlock arrangement |
US3760365A (en) * | 1971-12-30 | 1973-09-18 | Ibm | Multiprocessing computing system with task assignment at the instruction level |
AU8762475A (en) * | 1974-12-30 | 1977-06-23 | Honeywell Inf Systems | System for interference protection |
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 |
-
1976
- 1976-10-04 US US05/729,536 patent/US4096561A/en not_active Expired - Lifetime
-
1977
- 1977-08-17 CA CA000284910A patent/CA1241450A/en not_active Expired
- 1977-08-31 AU AU28411/77A patent/AU523299B2/en not_active Expired
- 1977-09-03 JP JP10540977A patent/JPS5345143A/ja active Pending
- 1977-09-29 BE BE181297A patent/BE859188A/xx not_active IP Right Cessation
- 1977-10-01 DE DE19772744251 patent/DE2744251A1/de not_active Withdrawn
- 1977-10-03 FR FR7729721A patent/FR2366626A1/fr not_active Withdrawn
- 1977-10-04 GB GB41158/77A patent/GB1531650A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
AU523299B2 (en) | 1982-07-22 |
AU2841177A (en) | 1979-03-08 |
CA1241450A (en) | 1988-08-30 |
BE859188A (fr) | 1978-01-16 |
GB1531650A (en) | 1978-11-08 |
FR2366626A1 (fr) | 1978-04-28 |
US4096561A (en) | 1978-06-20 |
JPS5345143A (en) | 1978-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2744251A1 (de) | Mehrprogramm/mehrprozess-computersystem | |
DE2720578A1 (de) | Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems | |
DE69229319T2 (de) | System und Verfahren zur Konservierung der Unteilbarkeit eines Quellbefehls in übertragenen Programmbefehlen | |
DE69107506T2 (de) | Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen. | |
DE69027299T2 (de) | Paralleles Verarbeitungssystem | |
DE1499175A1 (de) | Digitalrechner-Datenverarbeitungszentralanlage | |
DE68928848T2 (de) | Multi-Prozessor-Rechnersystem mit prozessunabhängiger Adressierung von Kommunikationsregistern | |
DE68925746T2 (de) | Versionen-Verwaltungswerkzeug | |
DE69130630T2 (de) | Synchrones Verfahren und Gerät für Prozessoren | |
DE2714805C2 (de) | ||
DE69731998T2 (de) | Informationsverarbeitungsvorrichtung und Verfahren | |
DE2449547A1 (de) | Computer- und datenverarbeitungsanlage | |
DE2916658A1 (de) | Selbstprogrammierbarer mikroprozessor | |
DE2209282A1 (de) | Datenverarbeitungsanlage | |
DE2517171A1 (de) | Datenverarbeitungssystem mit erweitertem semaphor-aufbau | |
DE2722099A1 (de) | Abfangeinrichtung fuer ein dv-system | |
DE1449532B2 (de) | Datenverarbeitungsanlage | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE68924400T2 (de) | Fliessbanddatenverarbeitungsvorrichtung. | |
DE2626703A1 (de) | Intern programmierbares datenverarbeitungssystem | |
DE4207158A1 (de) | Speicher-zugriffssteuerung | |
DE2145709A1 (de) | Datenverarbeitungsanlage | |
DE2801518A1 (de) | Datenverarbeitungssystem mit speicher-schutzeinrichtung | |
DE1549531A1 (de) | Digitale Rechenanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |