DE2744251A1 - Mehrprogramm/mehrprozess-computersystem - Google Patents

Mehrprogramm/mehrprozess-computersystem

Info

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
Application number
DE19772744251
Other languages
English (en)
Inventor
Mario G Trinchieri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2744251A1 publication Critical patent/DE2744251A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99938Concurrency, 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
Beispiel:
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:
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.
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).
Beschreibung der bevorzugten Ausführungsbeispiele.
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.
Periphere Subsysteme
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).
Systetnorganisation und Verwaltung
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.
Steuereinheit
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.
Software-Verwirklichung der Operation "Feststellung Nachfolger"
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.
Unter den verschiedenen Symbolen:
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", "ρ χ
*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.
Wiederaufnahme der wartenden Prozesse
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.
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.
Der allgemeine Schutzmechanismus
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
Symbol "nicht p, noch q, noch ..." ist.
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 Verwirklichung der verallgemeinerten "Fe3tstell"-Funktion
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)

  1. 27AA251
    HONEYWELL !!,'FORMATION SYST 1-.MS INC. 21K Scpteruber ID??
    Smith Street 5101599 Go.
    Waltham, Macs., USA
    Mehrprogranim/Mehrprozeß-Computer system
    Patentansprü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; und
    b. 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/0872
    27U251
  2. 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; und
    d. vierte an die ersten und dritten Mittel angeschlossene Mittel zum Vergleich dieser ersten codierten Signale mit diesen zweiten codierten Signalen.
  3. 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. 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. 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/0872
    M O β
    27U251
  6. 6. System nach Anspruch 3, gekennzeichnet durch achte mit den lünften Mitteln verbundene Mittel, die den zweiten Prozeß veranlassen, einen Kartezustand einzunehmen .
  7. 7. System nach Anspruch 6, gekennzeichnet durch neunte mit den achten Mitteln verbundene Mittel, die den zweiten Prozeß veranlassen, den Wartezustand zu verlassen.
  8. 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; und
    d. Vergleich dieser ersten codierten Signale mit diesen zweiten codierten Signalen.
    8098U/0872
DE19772744251 1976-10-04 1977-10-01 Mehrprogramm/mehrprozess-computersystem Withdrawn DE2744251A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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