DE2557835A1 - Schutzsystem in einer dv-anlage - Google Patents

Schutzsystem in einer dv-anlage

Info

Publication number
DE2557835A1
DE2557835A1 DE19752557835 DE2557835A DE2557835A1 DE 2557835 A1 DE2557835 A1 DE 2557835A1 DE 19752557835 DE19752557835 DE 19752557835 DE 2557835 A DE2557835 A DE 2557835A DE 2557835 A1 DE2557835 A1 DE 2557835A1
Authority
DE
Germany
Prior art keywords
access
matrix
processes
facility
relationships
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
DE19752557835
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 DE2557835A1 publication Critical patent/DE2557835A1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

51-01498 Ge 22. Dezember 1975
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street
Waltham, Mass., USA
Schutzsystem In einer DV-Anlage
Die Erfindung betrifft ein Schutzsystem in einer DV-Anlage zum Verhindern der Überlappung von Prozessen, welche in steuerbarer Weise auf Informations-Systemmittel Zugriff nehmen. Insbesondere bezieht sie sich auf Benutzungstechniken für eine gemeinsame Datenbank in Datenverarbeitungssystemen mit der Möglichkeit einer Mehrprogramm- und Mehrprozeßverarbeitung sowie auf einen Schutz gegen ungeeignete Benutzung der Datenbank.
Herkömmliche DV-Anlagen umfassen normalerweise eine Zentraleinheit, einen Hauptspeicher mit wahlfreiem Zugriff und verschiedene periphere Einrichtungen, wie beispielsweise Magnetband und Platte als sekundäre Speichereinrichtungen, Kartenleser-und -drucker, Zeilendrucker und Kommunikationsterminals. Die durch eine vorgegebene Datenverarbeitungsoperation benutzten Befehle und Daten werden oftmals Dateien entnommen, die auf sekundären Speichereinrichtungen gespeichert sind. Die Dateibibliothek ebenso wie die zuvor erwähnten Hardwareeinrichtungen stellen demgemäß ein wertvolles Systemmittel dar.
Um die Systemmittel eines gegebenen DV-Systems in wirksamer Weise benutzen zu können, wurden Anordnungen entworfen zum automatischen Ausführen von Aufgaben und zum Abruf der System-
609828/0854
mittel, die zur Ausführung dieser Aufgaben erforderlich sind. Ein solches Job-Verwaltungssystem arbeitet normalerweise unter der allgemeinen Kontrolle des Systemoperators, der dem System in einer interpretierbaren Job-Steuerspräche Direktiven erteilt. In diesem Zusammenhang sei beispielsweise auf die Veröffentlichung: "OS Job Control Language", von Shelly & Cashman, Anaheim Publishing Co. - 1972, verwiesen.
Eine wichtige Funktion solcher Job-Verwaltungssysteme besteht in der Zuordnung bestimmter Dateien zu Aufgaben in dem Zeitpunkt, indem sie zu ihrer eigenen Behandlung abgerufen werden. Dies gestattet das Schreiben allgemeiner Anwendungsprogramme, welche in der Lage sind, eine Vielzahl von Dateien der gleichen allgemeinen Klasse zu behandeln, wobei die spezielle Datei durch Job-Steuersprachen-Direktiven zu dem Zeitpunkt identifiziert wird, wo die Aufgabe abgerufen wird. So kann beispielsweise ein Lohnlistenprogramm in eine Ursprungssprache einerDatei verarbeiten, die sich auf eine Firma bezieht und das gleiche Programm kann zu einem späteren Zeitpunkt die Lohnliste einer anderen Firma bearbeiten. Diese beiden Operationen können auch zum gleichen Zeitpunkt durch zwei getrennte Kopien des gleichen Programmes bearbeitet werden oder auch unter gewissen Umständen durch die gleiche Kopie des Programmes. Wird die gleiche Kopie des Programmes verwendet, so kann es wünschenswert sein, eine einzige Datei während der Ausführung verschiedener Programme zu benutzen und die Dateien kann man sich somit als gemeinsam benutzte Systemmittel vorstellen.
Während es einerseits wünschenswert ist, den gemeinsamen Zugriff auf Dateien so leicht wie möglich zu gestalten, führt andererseits die Möglichkeit des gemeinsamen Zugriffes auf Dateien zu der Gefahr, daß sie durch einennicht autorisierten Benutzer in beabsichtigter Weise zerstört werden können. In einem von vielen Benutzern gemeinsam benutzten Datenverarbeitungssystem ist es von wesentlicher Bedeutung, daß die Geheimhaltung, Sicherheit und
S09828/08S4
Integrität der Datei eines jeden Benutzers gewahrt bleibt. Insbesondere ist von wesentlicher Bedeutung, daß der gemeinsame Zugriffsmechanismus den Dateien mindestens den gleichen Grad von Integrität garantiert, wie dies bei einer Einprogramm-Ausführung der Fall ist.
In einem Mehrprogramm-DV-System, in welchem viele Prozesse gleichzeitig aktiv sind und verschiedenen Benutzern zugeordnet sind, hat sich ein indirektes Adressierverfahren, welches als "segmentierte Adressierung" bezeichnet wird, als eine wertvolle Technik herausgestellt, wenn es darum geht, den durch jeden Prozeß zugreifbaren Adressbereich im Speicher zu isolieren, wodurch die oben erwähnten Probleme vermieden werden können. Ein solches System ist beschrieben in: "The Multics System: An Examination of Its Structure" von E. I. Organic, MIT Press-1972.
Anders als das Multics-Segment-Verwaltungssystem, in welchem Segmente auf einem Sekundärspeicher durch den ausgeführten Prozeß direkt adressierbar sind, bearbeiten konventionelle Datei-Verwaltung ssysteme die Information auf einem Sekundärspeicher mittels Dateien und Puffer. Der Programmierer liefert eine Beschreibung der benötigten Datei zur Bildung einer Datei-Steuerstruktur. Systemprozeduren v/erden sodann verwendet, um die benötigten Datensätze aus dem Sekundärspeicher in einen Pufferbereich im Hauptspeicher zu bringen. Eine detaillierte Beschreibung eines in großem Umfang benutzten Datei-Verwaltungssystemes wird in der Veröffentlichung: "Data Structure And Management", von Ivan Flores, Prentice-Hall 1972 gegeben.
Im allgemeinen muß ein Augenmerk auf die Integrität oder die unbeabsichtigte Zuwiderhandlung gegen die Datei eines anderen Benutzers gerichtet werden. Es sei hier in Erinnerung gerufen, daß die Schaffung, der Zugriff und das Fortschreiben einer Datei innerhalb der Datenbank durch die Aktionen irgendeines der vielen
609828/0854
Eenutzer hervorgerufen werden kann. Eine Überlappung zwischen den Benutzern tritt auf, wenn ein Benutzer Zugriff zu Daten nimmt, die gerade von einem anderen Eenutzer gebildet oder geändert werden. Es ist für den Fachmann leicht verständlich, daß ein solcher Zustand vermieden werden muß. Wird dieser Zustand nicht vermieden, so wird zumindest einem der Benutzer eine nicht korrekte Information gegeben, die auf einem angenommenen statischen Zugriff zu dynamisch veränderbaren Daten basiert.
Um dieses Problem zu vermeiden, bestand eine weithin benutzte Technik darin, zusätzliche Benutzer einer Datenbank von deren Benutzung auszusperren, während diese durch einen bestimmten Benutzer beansprucht wurde. Beispielsweise wurde die Datenbank für den exklusiven Zugriff durch den bestimmten Benutzer solange reserviert, bis dieser Benutzer seine Aufgabe durchgeführt hatte. Auf diese Weise kann nur ein Benutzer zu einem gegebenen Zeitpunkt mit der Datenbank zusammenarbeiten und eine Überlappung kann nicht stattfinden. Diese Technik besitzt jedoch den Nachteil, daß andere Benutzer vom gleichzeitigen Zugriff zu den Daten ausgeschlossen sind, so daß das Datenverarbeitungssystem auf Grund dieser Sperrung an Wirksamkeit verliert.
Weiter entwickelte Zugriffssysteme erkennen, daß es zahlreiche Fälle gibt, in denen das Datenverarbeitungssystem die Fähigkeit des simultanen Datenzugriffs auf eine gemeinsame Datenbank für zahlreiche Benutzer aufweist, ohne daß ein überlappungszustand eintritt, wodurch eine größere Wirksamkeit des Systems herbeigeführt wird. Die Wirksamkeit kann durch Begrenzung der Sperrung auf einen besonderen Teilbereich der Datenbank verbessert werden. Beim Zugriff eines Benutzers auf ein Systemelement innerhalb der Datenbank wird nur dieser begrenzte Bereich der Datenbank für diesen Benutzer reserviert und der verbleibende Teil der Datenbank wird für den gemeinsamen Zugriff durch andere Systembenutzer freigehalten. Nichtsdestoweniger bilden auch diese
609828/0854
Maßnahmen eine Verminderung der Wirksamkeit des Datenverarbeitungssystems, da sie im allgemeinen überkonservativ hinsichtlich ihrer Überlappungs-Annahmen sind. Weiterhin neigt dieser bekannte Überlappungs-Schutzmechanismus zur Freigabe eines Systemmittels dergestalt, daß es in der Lage ist, in dem ihm zugeordneten Prozeß ausgeführt zu werden und anschließend auf einen nachfolgenden Prozeß noch zu warten. Wie gezeigt werden kann, ist es möglich, daß mehrere Benutzer auf das gleiche Systemmittel Zugriff nehmen können ohne miteinander zu überlappen, wobei dies von dem Charakter und der Folge der Zugriffe abhängt. In diesen Fällen ist es wünschenswert den Benutzern den gemeinsamen Zugriff zu gestatten, vorausgesetzt, daß eine Überlappung festgestellt wird, bevor ein Benutzer ungeeignete Daten entnimmt.
Es ist die Aufgabe der vorliegenden Erfindung, ein Schutzsystem für eine Datenverarbeitungsanlage anzugeben, das hinsichtlich der Benutzung von Daten innerhalb einer Datenbank eines Datenverarbeitungssystems verbessert ist. Insbesondere soll durch die vorliegende Erfindung ein verbesserter Überlappungsschutz bei vielen Benutzern eines Mehrprogramm- und Mehrverarbeitungssystems erzielt werden, wobei die gemeinsame Zugriffsmöglichkeit auf eine gemeinsame Datenbank in diesem System verbessert wird. Die Lösung dieser Aufgabe gelingt gemäß der im Anspruch 1 gekennzeichneten Erfindung. Weitere vorteilhafte Ausgestaltungen der Erfindung sind den Unteransprüchen entnehmbar.
Anhand eines in den Figuren der beiliegenden Zeichnungen dargestellten Ausführungsbeispieles wird die Erfindung im folgenden näher beschrieben. Es zeigen:
Figur 1 ein Blockdiagramm eines Datenverarbeitungssystems, in welchem die Prinzipien der vorliegenden Erfindung mit Vorteil verwendung finden,
Figuren 2A bis 2C schematische Diagramme der Steuereinheiten gemäß der vorliegenden Erfindung,
609828/08S4
Figur 3 ein Flußdiagramm zur Beschreibung der Operation der Einheiten gemäß den Figuren 1 und 2, Figur 4 eine Darstellung der Benutzungstabellen, wie sie bei der vorliegenden Erfindung zur Verfolgung der Zugriffe zu jedem der Systemmittel innerhalb der gemeinsamen Datenbank verwendet werden,
Figur 5 eine Darstellung in Matrixform für die Beziehungen zum Aufzeichnen und Überprüfen der Klassen von Beziehungen zwischen den Prozessen,
Figuren 6A und 6B Flußdiagramme der firmwaremäßigen Microoperationen der Feststell-Operation des Computersystems.
Die Instrumente zur Steuerung der Ausführung von Mehrfachaufgaben in einem Mehrprogramm-Computersystern und für den steuerbaren, gemeinsamen Zugriff auf Systemmittel innerhalb dieser Aufgaben sind notwendigerweise komplex. In der folgenden Beschreibung werden die Prinzipien der vorliegenden Erfindung und die allgemeine Organisation eines Computersystems, in welchem diese Prinzipien mit Vorteil angewendet werden können, unter den nachstehenden Überschriften diskutiert:
Klassifizierung von Benutzerprozeduren und Prozessen Das Gesetz der Überlappung Beispiele von Überlappungen Wiederauffindung Prοzessor-Subsystem Periphere Subsysteme Eingang und Ausgang Systemorganisation und Verwaltung Steuereinheit Operation des Schutzmechanismus Benutzungstabellen und Beziehungsmatrix Feststell-Operation Schlußfolgerung
S09828/08S4
■»
Klassifikation von Benutzerprozeduren und Prozessen.
Weiter hinten wird eine allgemeine hardwareorientierte Beschreibung des Gesamt-Datenverarbeitungssystems gegeben. Diese Erläuterung soll sich auf die physikalische Hardware und die für diese Hardware erkennbaren Informationsstrukturen beziehen, die ihrerseits an physikalischen Speicherplätzen abgelegt sind. An dieser Stelle ist es jedoch nützlich, zu unterbrechen und das System vom Standpunkt des Benutzers aus zu betrachten, wobei in erster Linie der Blick auf die Definition gewisser Begriffe gerichtet werden soll, so daß ein besseres Verständnis der Anforderungen der Benutzer gewonnen wird.
Der Benutzer bereitet sein Problem zur Lösung durch die Datenverarbeitungsanlage in Stufen vor und diese Stufen können vielleicht am besten durch die Definition der folgenden Ausdrücke unterschieden werden: Prozedur, Programm, Job und Prozeß.
Eine Prozedur ist ein Satz von Befehlen, Konstanten und Steueranweisungen, die ursprünglich durch einen Programmierer in Übereinstimmung mit den Regeln der Programmiersprache geschrieben werden. Obwohl eine Prozedur ursprünglich im Quellenzustand geschrieben wird, kann sie danach in anderen Zuständen auftreten, beispielsweise im expandierten Quellenzustand, bzw. im kompilierten und verbundenen Zustand. In dem letzten der genannten Zustände stimmt eine Prozedur hinsichtlich Format, Syntax und Auftreten mit den Regeln des Operationssystems überein.
Ein Programm enthält wenigstens eine Hauptproζedur, kann sodann andere Prozeduren noch enthalten und enthält ferner eine Identifikationsinformation wie beispielsweise den Kamen des Programmierers, die benutzte UrSprungsspräche, den benutzten Compiler usw. Ein Programm kann daher als eine Sammlung von in einer spezifischen Sprache geschriebenen Prozeduren aufgefasst werden und enthält zusätzliche Information, welche die spezifische Sammlung kennzeichnet und die Benutzung der Sammlung von Prozeduren steuert.
609820/0814
— ß ·"
Die Existenz von InformationsStrukturen, wie beispielsweise Programmen und Prozeduren muß von der Ausführung von Datenverarbeitungsoperationen unter Benutzung dieser Strukturen unterschieden werden. Die tatsächliche Verwirklichung der Datenverarbeitung ist in Jobs und Prozesse unterteilbar.
Ein Job ist eine Haupt-Arbeitseinheit. Er ist definiert als eine Sammlung von einem oder mehreren Prozessen, die vom Standpunkt des Benutzers aus logischen Gründen miteinander in Beziehung stehen. Beispielsweise kann ein Benutzer die Ansammlung einer Gruppe von Prozessen für den Zweck der Abrechnung und Berichterstattung wünschen. In anderen Situationen kann die Ausführung einiger Prozesse von der vorhergehenden Ausführung anderer Prozesse abhängen. Vom Standpunkt des Systems ist daher ein Job eine planbare Arbeitseinheit, wobei die Planung auf Parametern basiert, die in erster Linie auf die Erfordernisse des Benutzers bezogen sind.
Ein Prozeß stellt die gesteuerte Ausführung von Befehlen dar. Das Wort "Prozeß" wird hierbei in einer weiten Bedeutung angewendet. Er kennzeichnet eine Gesamtaktivität oder einen integralen Bestandteil einer solchen Aktivität, was im allgemeinen als eine Prozeßphase oder ein Prozeßschritt bezeichnet wird und wobei diese Aktivität durch den Verursacher der Befehlsfolge im Hinblick auf die Möglichkeit der Überlappung als vereinbar erklärt worden ist. Der Prozeß ist vollständig, wenn er alle Aktionen umfaßt, während derer die benutzten Systemmittel unverändert durch andere Systemmittel auftreten müssen.
Eine Datenbank stellt den allgemeinen Teil des Datenverarbeitungssystems dar, welcher die Information speichert. Die Datenbank besteht aus Systemmitteln. Die Systemmittel können eine veränderliche Größe aufweisen. Jedes Systemmittel enthält Mengeneinheiten von Daten oder Mehrfache davon und sie sind das Ziel eines Zugriffes von einem zugreifenden Prozeß auf die Datenbank.
609828/0814
Das Gesetz der Überlappung.
Die vorliegende Erfindung beinhaltet die Ausführung eines neuen erfinderischen Konzepts, welches als fundamentales Überlappungsgesetz bezeichnet sei. Im allgemeinen fordern die Benutzer von dem Datenverarbeitungssystem zweierlei: Den Zugriff und die Verarbeitung von Daten. Die Erfindung bezieht sich nicht in erster Linie auf die Verarbeitung von Daten, so daß die Komponenten für diesen Zweck in der nachfolgenden Erläuterung nicht näher betrachtet werden müssen. Der Zugriff auf Daten innerhalb einer gemeinsamen Datenbank ist jedoch von Interesse. Die Benutzer sind durch ein System umfaßt, in welchem sie entweder indirekt auf Daten Zugriff nehmen müssen, indem eine Anforderung an eine zentrale Servicekomponente gesendet wird, welche ihrerseits einen Schutzmechanismus beinhaltet oder es müssen die Zugriffe der Benutzer durch solche Mechanismen überwacht werden. Diese Schutzmechanismen müssen die Anforderungen gegenüber Sicherheitsstandards überprüfen, bevor die Anforderung freigegeben wird. Die Mechanismen dienen allen Benutzern und sie wirken als eine Schnittstelle zwischen den Benutzern und der Datenbank. Es sei hier festgestellt, daß der Schutzmechanismus als zentrale Servicekomponente aus Hardware oder Software oder aus einer Kombination von beidem bestehen kann.
Die Ausführung unabhängiger Prozesse, die gemeinsam auf eine Datenbank Zugriff nehmen, kann,sofern kein Schutzmechanismus vorgesehen ist, zu Überlappungen führen. Die Prozesse werden als unabhängig angenommen, was bedeutet, daß sie bei einer Einprogrammausführung jeweils nur nacheinander in irgendeiner Folge ausgeführt werden können. Die Unabhängigkeit kann zu verschiedenen Ergebnissen führen, wobei die Ergebnisse davon abhängig sind, welche Ausführungsfolge realisiert wird. Die Unabhängigkeit bedeutet jedoch, daß diese von den Benutzern verstanden und akzeptiert wird. Wenn Prozesse gleichzeitig und mit demselben
609828/08S4
gemeinsamen Zugriff auflaufen, können die Ergebnisse die gleichen wie zuvor und deshalb akzeptabel sein. Die Annehmbarkeit hängt davon abf ob die Folge von Zugriffen zu den Daten mit einer Folge übereinstimmt, die bei der Einprogramm-Ausführung aufgetreten sein könnte. Übereinstimmung bedeutet hierbei, daß die beteiligten Daten die gleichen sind, obwohl die Reihenfolge der Zugriffe verschieden sein kann. Als Schutzmechanismus ist irgendein Mechanismus zu bezeichnen, der einen gewissen Grad der gemeinsamen Benutzung einer gemeinsamen Datenbank durch gleichzeitig ausgeführte Prozesse gestattet, wobei die Korrektheit der Ergebnisse garantiert ist. Ein Schutzmechanismus kann eine Überlappung vermeiden oder eine solche korrigieren.
Der Auftritt irgendeiner Überlappung zwischen zwei Prozessen, die gemeinsam auf eine Datenbank Zugriff nehmen, hat theoretisch nichts mit der "Körnigheit" (granularity) der Datenbank zu tun, wie sie durch den Schutzmechanismus gesehen wird. Die Körnigheit bezieht sich auf den Größenumfang der Daten, die von dem Mechanismus betrachtet werden. Ein Schutzmechanismus kann die Legalität der Benutzung eines gemeinsamen Systemmittels auf dem Pegel der Körnigkeit abschätzen t die er sieht. Ein Schutzmechanisraus kann daher eine Benutzung als ungeeignet erklären, wenn die Analyse, basierend auf einer detaillierteren Körnigkeit, zur Aufdeckung einer nicht überlappenden Benutzung führt. Es ist theoretisch möglich, einen Körnigkeitspegel in dem Schutzmechanismus anzunehmen, der sich mit der wirklichen Größe der Quantisierungseinheit der Daten deckt, wie sie von den zugreifenden Prozessen gesehen und benutzt werden. Die Konfliktanforderungen müssen jedoch berücksichtigt werden. Ein niedriger Grad der Körnigkeit reduziert den Buchhaltungsaufwand, ist aber in hohem Maße konservativ und deshalb unwirksam hinsichtlich der Überlappungsannahmen. Ein hoher Grad an Körnigkeit vermeidet konservative Schutzmaßnahmen und führt zu einer erhöhten Systemeffektivität, erfordert aber auf der anderen Seite eine detaillierte Buchhaltung, wodurch die erzielten Vorteile mehr oder weniger wieder ausgeglichen werden.
80 9 8 28/0854
Diese miteinander in Konflikt befindlichen Überlegungen müssen bei einer Verwirklichung ausgeglichen werden, um eine optimale Effektivität des Systems zu erzielen. Die Existenz dieser Zustände führt die Anwendung des Überlappungsgesetzes von der tatsächlichen Überlappung (perfekte Körnigkeit) hinweg zu einer angenommenen Überlappung (grobe Körnigkeit).
Mit diesen aufgeführten Vorbehalten ist es nunmehr möglich, eine Überlappung zwischen Prozessen festzustellen. Bei der gleichzeitigen Ausführung von Prozessen, welche auf gemeinsame Systemmittel Zugriff nehmen, stellt eine Überlappung den Auftritt einer Folge von Zugriffen dar, die bei einer Einprogramm-Ausführung nicht auftreten können und die nicht als äquivalent zu einem der Zugriffe darstellbar sind. Die Äquivalenz ist bewiesen, wenn eine Folge in eine andere Folge transformiert werden kann, indem Veränderungen der Zugriffsreihenfolge herangezogen werden und die Zugriffsreihenfolge die Daten innerhalb der Zugriffe nicht beeinflußt.
Auf der Basis dieser Definition kann sowohl ein fundamentales Gesetz der Überlappung abgeleitet werden, als auch ein Gerät und ein Algorithmus zur Verhinderung der Überlappung geschaffen werden.
Eine Anforderung für einen Zugriff auf ein Systemmittel kann eine Beziehung der folgenden Art enthalten:
1. Eine Leseanforderung beinhaltet, daß der Anforderer dem Schreiber der geforderten Version des Systemmittels folgt und davon abhängt.
2. Eine Schreibanforderung beinhaltet, daß der Anforderer dem Schreiber folgt und von diesem abhängt, sowie den Lesern der angeforderten Version des Systemmittels folgt aber von diesen nicht abhängt.
609828/08S4
Die Folgeeigenschaft ist transitiv, d. h. wenn A auf B folgt und B auf C folgt, so folgt A auf C.
Eine Schleife tritt immer dann auf, wenn eine Vielzahl von Folgebeziehungen zu einem Prozeß führt, der sich selbst folgt. Eine solche Schleife ist beispielsweise gegeben, wenn A auf B folgt und B auf A folgt. In gleicher Weise ist eine Schleife gegeben, wenn A auf B folgt, B auf D folgt und D auf A folgt. Das fundamentale Gesetz der Überlappung ergibt sich wie folgt:
Immer wenn eine Kette von Folgebeziehungen eine Schleife bildet, ist eine Überlappung aufgetreten, die die in der Schleife verbundenen Prozesse beinhaltet.
Es sei hier festgestellt, daß die Schleife durch Einwirkung auf einen Prozeß innerhalb der Schleife unterbrochen werden kann. Der Schutz gegen Überlappung kann gerichtet sein auf:
1. Die Vermeidung der Überlappung oder
2. Die Feststellung und Korrektur einer Überlappung oder
3. Die Kombinationen dieser Techniken^ ausgerichtet auf die beste Produktivität des Systems.
Das gerade festgestellte Gesetz kann ein fundamentales Werkzeug in einem Schutzmechanismus sein, welches in verschiedener Weise arbeiten kann. Bevor das die Erfindung verwirklichende System beschrieben wird, soll das Gesetz an gewissen einfachen Fällen demonstriert werden.
Überlappungsbeispiele
In der nachfolgend dargestellten Tabelle 1 werden alle Überlappungsmöglichkeiten für den speziellen Fall zweier Prozesse A und B und eines einzigen Systemmittels überprüft. Andere
609828/08 5.4
Prozesse können vorher mit dem Systemmittel in Verbindung getreten sein, werden jedoch als nicht langer aktiv angenommen. Im Fall 1 werden keine Folgebeziehungen geschaffen, so daß
keine wesentlichen Probleme auftreten. In den Fällen 2 und 5
wird nur eine Folgebeziehung geschaffen, so daß sich im Zeitpunkt t2 keine Schleife schließt und eine Überlappung nicht
zu befürchten ist. In den verbleibenden Fällen folgt zunächst B auf A und sodann A auf B. Durch den zweiten Zugriff würde
somit eine Schleife geschlossen und es muß daher eingegriffen werden, um diese Möglichkeit zu vermeiden.
Eine anschauliche Analysierung der Tabelle 1 führt zu einem
zusätzlichen Einblick in Prozesse, die durch die Überlappung
beeinflußt werden und zu den möglichen Wiederherstellmaßnahmen durch einen Schutzmechanismus. In den Fällen 3, 4, 7 und 8
kann der Prozeß A infolge der durch den Prozeß B im Zeitpunkt t. eingeführten Modifikation zu falschen Schlüssen führen. Im Fall 6 kann der Prozeß B infolge seines Zugriffs zum Zeitpunkt t-, zwischen den Modifikationen des Prozesses A zu dem Zeitpunkt tQ und t2 zu falschen Schlüssen führen.
Fall Nr. tr
A Maßnahme
1 R
2 R
3 R
4 R
5 W
6 W
7 W
8 W
Tabelle 1 Folge
beziehung
geschaffen
[aßnahme keine
R keine
R B—»A
W B-> A
W B-^A
R B—»A
R B—> A
W B-^A
W 54
9828/08
vorgeschlagene A Maßnahme
R W R W R W R W
Vorgeschlagene Folge-Beziehung
keine A—> B A—» B
keine A—>B A-4 B A—^B
Ein weiteres Ausführungsbeispiel beinhaltet zwei Prozesse A und B und zwei Systemmittel R, und R_. Eine Übersichtstabelle für alle Möglichkeiten entsprechend der Tabelle 1, jedoch mit 16 Eingangsstellen kann entwickelt werden. Es sei zunächst eine mögliche Zugriffsfolge betrachtet, wobei A in R, einschreibt und sodann B aus R, ausliest. Danach liest B aus R2 aus und sodann schreibt A in R2 ein. Das erste Zugriffspaar auf R, führt zu B folgt A und das zweite Zugriffspaar auf R2 führt zu A folgt B, wodurch eine Schleife gebildet wird. Es sei hier festgestellt, daß die Schleife oder überlappungsbedingung auftritt, obwohl die zwei Folgebeziehungen aus Zugriffen zu verschiedenen Systemmitteln entstammen. Dies ist richtig, weil die Information, die B aus der Datenbank holt, in einer Einprogramm-Ausführung nicht vorgesehen sein könnte, wo B aus beiden Systemmitteln vor oder nach der Änderung durch A ausliest, so daß es deshalb am besten ist, sie zurückzuweisen, da sie nicht vereinbar sein kann.
In gleicher Weise kann die Analyse der Überlappung für den allgemeinen Fall von η Prozessen und m Systemmitteln durchgeführt werden.
Wenn einmal eine Überlappung festgestellt worden ist, so müssen Wiederauffindungsmaßnahmen vorgenommen werden. Insbesondere muß wenigstens einer der die Schleife bildenden Prozesse abgebrochen und der angeforderte Zugriff zurückgeleitet werden. Entsprechend der Schwierigkeit einer präzisen Bestimmung, der für die Rückholung verschiedener Prozesse erforderlichen Anstrengung, d. h. das Ungeschehenmachen dessen, was sie bereits bewirkt haben und der Korrektur der möglichen Auswirkungen auf die externe Umwelt und weiterhin entsprechend der Tatsache, daß Überlappungen als verhältnismäßig selten angenommen werden können, wird weiter unten ein Satz von Regeln angegeben, die einen günstigen Maßnahmenverlauf ohne beschwerliche Buchhaltung und Berechnung beschreiben, wobei diese Regeln in ihrer Natur
6Q9828/08S4
höchst allgemein sind. Es sei hervorgehoben, daß,obwohl diese Regeln ganz allgemein sind, es möglich ist, raffiniertere Techniken zu entwickeln, welche einen Entscheidungsmechanismus oder eine Methode zur Bildung wirksamerer Wiederherstellungsmaßnahmen zumindest für begrenzte Fälle beschreiben können. Beispielsweise können solche Verbesserungen zur Folge haben, daß jeder Prozeß durch einen abgestuften Algorithmus im Hinblick auf die erforderliche Anstrengung zur Rückführung des Prozesses überwacht wird. Der abgestufte Algorithmus kann in einer gewichteten Form die Elemente, die die Anzahl der geschaffenen Erstellungen umfassen, die Existenz von Nachrichten, die mit der externen Umwelt ausgetauscht werden, die erforderliche Rechenzeit usw. kombinieren. In dieser Weise kann die verallgemeinerte Wiederauffindungsentscheidung durch die Identifikation für jeden spezifischen Fall eines Satzes von Korrekturmaßnahmen ersetzt werden, wobei durch diesen gewichteten Algorithmus die geringste Anstrengung erforderlich ist.
Die allgemeine Wiederauffindungsentscheidung ergibt sich wie folgt. Ein angeforderter Zugriff durch den Prozeß A schafft die Beziehung A folgt B und schließt eine Schleife. Wenn A ein Lesen des Systemmittels angefordert hat, so kann A aus einer vorangegangenen Erzeugung des Systemmittels zum Lesen zurückgeleitet werden. Hat jedoch A ein Schreiben des Systemmittels angefordert, so muß B und jener Prozesse, welche von B abhängig sind, zurückgeführt werden. Das Zurückholen dieser Prozesse hat die Wiederherstellung des Systems auf einen früheren Erzeugungszustand zur Folge, wodurch die Eingangsstellen der Buchhaltungseinrichtungen ausgelöscht werden und die Prozesse zu einem späteren Zeitpunkt erneut gestartet werden.
609-828/Q8 SA
Prozessor-Subsystem
Ein Datenverarbeitungssystem jener Art wie es für den mittleren kommerziellen und wissenschaftlichen Gebrauch benötigt wird, ist in dem Blockdiagramm gemäß Figur 1 dargestellt, wobei anhand dieses Ausführungsbeispieles nur eine Anwendung der Prinzipien gemäß der vorliegenden Erfindung gegeben wird.
Das Rechnersystem gemäß Fig\ir 1 ist aus verschiedenen koordinierten Hardware-Subsystemen zusammengesetzt. Diese Subsysteme sind: Ein Hauptspeicher-Subsystem 11, ein Prozessor-Subsystem 12 und drei periphere Subsysteme 15, 17 und 19.
Das Prozessor-Subsystem 13 enthält eine Zentraleinheit (CPU) 21 und ein Ein/Ausgang-Steuerwerk (IOC) 23. Die Zentraleinheit 21 führt die grundlegenden Rechenoperationen des Systems aus, während das Ein/Ausgang-Steuerwerk 23 jeglichen Informationsaustausch zwischen dem Speicher-Subsystem 11 und den. peripheren Subsystemen 15, 17 und 19 steuert.
Das Prozessor-Subsystem 13 umfasst ferner einen Hauptspeicher-Synchronisierer 25 und einen Pufferspeicher 27. Der Hauptspeicher-Synchronisierer 25 dient der Lösung von Konflikten hinsichtlich der Benutzung des Hauptspeichers, die zwischen der Zentraleinheit 21, dem Pufferspeicher 27 und dem Ein/Ausgang-Steuerwerk 23 auftreten. Die Konflikte werden auf einer Prioritätsbasis gelöst: Das Ein/Ausgang-Steuerwerk 23 besitzt die höchste Priorität gefolgt von dem Einschreiben in den Speicher durch die Zentraleinheit 21 und dem Auslesen aus dem Speicher in den Pufferspeicher 27. Der Pufferspeicher 27 ist ein kleiner Hochgeschwindigkeitsspeicher, der ausgewählte Bereiche des Hauptspeichers reproduziert und als Schnittstelle mit der Zentraleinheit 21 wirkt zwecks Verminderung der mittleren Speicherzugriffszeit. Während jeder Speicherauslesung wird sowohl auf den Pufferspeicher 27
6Q9828/0854
und den Hauptspeicher 11 Zugriff genommen. Befindet sich die abzurufende Information bereits im Pufferspeicher 27, so wird der Leseversuch des Hauptspeichers 11 beendet und es wird die benötigte Information dem Pufferspeicher entnommen. Andernfalls wird der Hauptspeicher 11 ausgelesen. Jedesmal, wenn der Hauptspeicher 11 ausgelesen wird, holt die Zentraleinheit 21 eine ganze Seite (32 Bytes) aus dem Hauptspeicher heraus, wobei diese Seite die gewünschte Information enthält. Diese Seite verbleibt in dem Pufferspeicher 21 für eine gewisse Zeit zwecks späterer Bezugnahme auf weitere Information innerhalb dieser Seite. Da die Operation des Pufferspeichers 27 für den Systembenutzer nicht zugänglich ist, kann das den Rechner steuernde Programm nicht in jedem gegebenen Zeitpunkt bestimmen, ob die durch das Programm bearbeitete Information aus dem Pufferspeicher 27 oder aus dem Hauptspeicher 11 abgerufen worden ist.
Die detaillierten Operationen, die innerhalb der Zentraleinheit 21 vonstatten gehen, werden in einem bedeutenden Ausmaß aber{ wie noch zu zeigen sein wird, nicht vollständig durch Mikroprogramme gesteuert, welche in einer Steuereinheit 29 gespeichert sind. Eine Steuereinheit dieses Typs ist in dem US-Patent 3 634 883 beschrieben und eine detaillierte allgemeine Diskussion von Mikroprogramm-Steuertechniken wird in dem Buch "Microprogramming: Principles and Practices" von Samir S. Husson, Prentice Hall, Inc. (1970) gegeben. Eine weitere detaillierte Beschreibung der Steuereinheit erfolgt nachstehend.
Einige zur Steuerung der Operation des Prozessor-Subsystems 13 erforderliche Firmware wird in eine Zone physikalischer Adressen im Hauptspeicher 11 geschrieben, wie dies durch den schraffierten Bereich in Figur 1 angedeutet ist, wobei mit der physikalischen Adresse Null begonnen wird und der Speicherbereich sich bis zu einer Grenzadresse erstreckt. Dieser zusätzliche Satz eines Mikrocodes, welcher in diesem Hardwarebereich des Hauptspeichers 11 zum Zeitpunkt der Systemanregung gespeichert ist,
609828/08S4
ist charakteristisch für die spezielle Systeminstallierung und enthält information bezogen auf die Art und den Status der speziellen verwendeten Hardwareeinrichtungen, die Konfiguration des Systems und spezielle Firmwareannahmen, welche für diese Systeminstallierungen ausgewählt wurden. Eine weitere Steuerung des Prozessor-Subsystems kann von Hand durch hardwarezugängliche Schalter und Druckknöpfe auf der Bedienungskonsole 30 vorgenommen werden.
Das Ein/Ausgang-Steuerwerk 23 des Prozessor-Subsystems erzeugt einen Datenweg zwischen irgendeinem peripheren Subsystem und dem Speicher-Subsystem. Dieser Datenweg dient der Übermittlung von Kanalbefehlen an die peripheren Subsysteme und steuert den daraus resultierenden Datentransfer. Das Ein/Ausgang-Steuerwerk 23 steht mit dem peripheren Subsystem über den Ein/Ausgang-Kanal 31 in Verbindung. Dem Ein/Ausgang-Steuerwerk 23 ist direkt eine Lese-Schreib-Steuereinheit 32 zugeordnet, die in der Lage ist, zum Zeitpunkt der Systemanregung eine installationsabhängige Steuerfirmware aufzunehmen, wie dies durch den schraffierten Bereich im Block 32 angedeutet ist. Die Steuereinheit 32 speichert zusätzlich einen installationsabhängigen Mikrocode, welcher in dem nicht schraffierten Festwertspeicherbereich der Steuereinheit 32 abgelegt ist. Alternativ oder auch zusätzlich kann der Steuer-Mikrocode für das Ein/Ausgang-Steuerwerk 23 auch in dem Hardware-Speicherbereich des Hauptspeichers 11 abgelegt sein.
Periphere Subsysteme
Jedes der peripheren Subsysteme 15, 17 und 19 umfasst eine periphere Steuereinheit, einen alleinstehenden microprogrammierten Prozessor, der die Belastung des Prozessor-Subsystems 13 durch Steuerung der Ein/Ausgang-Geräte während der Ein/Ausgang-Operationen vermindert. Die peripheren Steuereinheiten bewerkstelligen dies durch Ausführung von Befehlen, welche in im
60 9 8 28/0854
Hauptspeicher 11 abgelegten Kanalprogrammen enthalten sind. Diese Kanalprogramme steuern die arithmetischen, logischen, Transfer-, Verschiebe- und Verzweigungsoperationen, die in den peripheren Subsystemen ausgeführt werden.
Beispielsweise bildet in dem peripheren Subsystem 15 die verwendete Steuereinheit ein Einheitsblock-Steuerwerk (URC) 41, welches verschiedene Einheitsblockgeräte mit niedriger bis mittlerer Geschwindigkeit steuern kann. Solche Einheitsblockgeräte sind beispielsweise Lochkarteneinrichtungen, Lochstreifeneinrichtungen, Ubermittlungseinrichtungen und Systemkonsolen. In dem in Figur 1 gezeigten Beispiel steuert das Einheitsblock-Steuerwerk 41 einen Kartenleser 43, einen Zeilendrucker 45 und ein Paar von Übermittlungsgeräten 47. In dem peripheren Subsystem 17 nimmt die periphere Steuereinheit die Form eines Magnetband-Steuerwerks 51 ein, welches auf ein Paar von Bandtransporteinrichtungen 53 und 55 einwirkt. Die periphere Steuereinheit im Subsystem 19 ist ein Massenspeicher-Steuerwerk 61, welches beispielsweise auf ein Paar von Magnetplatten-Antriebseinheiten 63 und 65 einwirkt.
Zwischen jede periphere Steuereinheit und die von ihnen gesteuerten Geräte sind Geräteadapter r (DA) geschaltet,die die erforderlichen Logikschaltkreise zur Herstellung der Nachrichtenverbindung mit einem bestimmten Gerätetyp aufweisen. In Abhängigkeit vom Typ steuert ein Geräteadapter ein oder mehrere Einrichtungen.
Die durch jede periphere Steuereinheit ausgeführten Hauptfunktionen sind folgende:
1. Die Umwandlung der von dem Prozessor-Subsystem kommenden Befehle in eine Reihe von Anweisungen für das zugeordnete periphere Gerät,
2. Das Packen und Entpacken von Daten in die durch das Prozessor-Subsystem oder das ausgewählte periphere Gerät benötigte Form,
60 9-8 28/Q8S4
3. Das Informierthalten des Prozessor-Subsystems über den Zustand des peripheren Subsystems und den Zustand der Geräte, die sich unter seiner Steuerung befinden,
4. Das unabhängige Auslösen und die Verarbeitung von Fehler- und Wiederauffindungsprozeduren und
5. Das Gestatten einer On-line-Diagnose eines vorgegebenen peripheren Gerätes ohne Störung der Operation von anderen Geräten.
Die peripheren Steuereinheiten lösen Konflikte des Hauptspeichers hinsichtlich der ihm zugeordneten Geräte während das Ein/Ausgang-Steuerwerk Konflikte zwischen verschiedenen peripheren Steuereinheiten löst.
Gemäß Figur 1 empfangen die peripheren Steuereinheiten 41, 51 und 61 Mikrobefehle von Steuerspeichern 42, 52 und 62, wobei diese Steuerspeicher jeweils sowohl Lese-Schreib- als auch Festwertspeicherbereiche ausweisen. Der einer peripheren Steuereinheit zugeordnete Lese-Schreib-Steuerbereich gestattet das Laden eines installationsunabhängigen Mikrocodes zum Zeitpunkt der Systemanregung, so daß jedes periphere Subsystem kompatibel mit dem Rest des Subsystems verbleibt.
Eingang und Ausgang
Der Aufbau des in Figur 1 dargestellten Systems basiert auf der gleichzeitigen Operation des Prozessor-Subsystems und eines oder mehrerer der peripheren Subsysteme 15, 17 und 19. Jede der peripheren Steuereinheiten 41, 51 und 61 ist in der Lage, ein begrenztes Befehlsrepertoire auszuführen, welches verschieden von dem Befehlsrepertoire der Zentraleinheit 21 ist. Ein Satz von Befehlen, der eine periphere Operation ausführt, wird als Kanalprogramm bezeichnet. Kanalprogramme sind im Hauptspeicher abgelegt und es kann auf sie sowohl durch den Prozessor, als
609828/0 8i 4,
auch durch die peripheren Subsysteme Zugriff genommen werden. Spezifische Prozessorbefehle werden zur Bildung eines Kanalprogrammes herangezogen, während die Ausführung des Kanalprogrammes durch das Ein/Ausgang-Steuerwerk 23 und eine periphere Steuereinheit gesteuert wird. Ist die Ausführung eines ein Kanalprogramm auslösenden Zentraleinheitsbefehls einmal vervollständigt, so wird das Programm durch das Ein/Ausgang-Steuerwerk und eine periphere Steuereinheit ausgeführt und die Zentraleinheit 21 ist frei für andere Operationen.
Für jede mit dem Ein/Ausgang-Steuerwerk 23 verbundene periphere Steuereinheit gibt es einen Kanal 31. Es ist jedoch ebenfalls möglich, verschiedene Operationen über einen Kanal im Multiplexverfahren auszuführen. Dies führt zu dem Konzept eines Logikkanals, der eine logisch definierte Nachrichtenverbindung zwischen dem Hauptspeicher 11 und einem einzigen peripheren Gerät herstellt. Logikkanäle benutzen somit gemeinsam einen einzigen physikalisch vorgesehenen Kanal. Physikalische Kanäle sind demnach peripheren Subsystemen zugeordnet, während logische Kanäle gerätebezogen sind, obwohl verschiedene logische Kanäle einem einzigen Gerät zugeordnet sein können.
Systemorganisation und Verwaltung
Systeme der in Figur 1 dargestellten Art werden normalerweise durch ein Operationssystem gesteuert, sowie durch einen ausgedehnten Satz von Prozeduren, welche zu einer wirksamen Handhabung der Hardware, der Daten und der programmierten Systemmittel in einer Mehrprogramm-Ausführung führen. Alle Maßnahmen, wie beispielsweise die Programmausführung, periphere Zugriffe, SpeicherZugriffe und Operationsmaßnahmen, wie sie durch Berechnungen des Benutzers ausgelöst werden, werden durch das Operationssystem gesteuert.
609828/0854
Die durch das Operationssystem auszuführende Arbeit kann extern durch eine Serie von Prozessen über eine Job-Steuersprache definiert werden. Verschiedene Prozesse können wirksam sein und gemeinsam auf Systemmittel Zugriff nehmen, aber nur ein Prozeß befindet sich zu jedem gegebenen Zeitpunkt tatsächlich im Ablaufzustand.
Das in Figur 1 allgemein dargestellte System kann eine Vielzahl von Prozessor-Subsystemen, Speieher-Subsystemen und peripheren Subsystemen aufweisen, so daß es in der Lage ist, Mehrprogrammund Mehrprozessoperationen durchzuführen, welche durch das Operationssystem gesteuert werden, das seinerseits innerhalb des Systems Prozesse erzeugt und löscht und eine Synchronisation zwischen den Prozessen durchführt. Die Vielfachverarbeitung von Prozessen in der Zentraleinheit 21 geschieht unter spezieller Steuerung der Firmware/Hardware. Die Prozesse werden normalerweise gestartet und angehalten mit der Auslösung und Beendigung von Ein/Ausgang-Operationen während einer verwandten Job-Bearbeitung, sowie zu anderen Zeitpunkten aus Zwecken, die dem Operationssystem erforderlich erscheinen.
Steuerwerk
Die Figuren 2A bis 2C zeigen Einzelheiten des Steuerwerkes. Dieses ist, obwohl es getrennt von der Zentraleinheit CPU dargestellt ist, in Wirklichkeit ein Teil der Zentraleinheit und besteht aus einem Speichersteuerwerk (CSU) 201, einem Steuerspeicher-Schnittstellenadapter (CIA) 202 mit zugehörigen Untereinheiten, einem Steuerspeicher lader (CSL) 203 sowie einer Steuer- und Ladeeinheit (CLU) 204.
Das Speichersteuerwerk 201 empfängt Mikrobefehle über die Steuer- und Ladeeinheit 204 und den Steuerspeicher-Schnittstellenadapter 202 vom Steuerspeicherlader 203. Unter normalen
28/0854
Betriebsbedingungen werden die Mikroprogramme während des Einleitungsvorgangs des Systems aus einer externen Quelle geladen und werden zur dauerhaften Steuerfunktion für die Maschinen. Das SpeicherSteuerwerk 201 hat jedoch auch die Möglichkeit, neu geladen und in Gang gesetzt zu werden und zwar in einer Weise, welche eine Vielzahl von Zentraleinheit-Operationsmöglichkeiten vorsieht. Die folgenden Operationsmoden für die Zentraleinheit sind unter der Steuerwirkung des Speichersteuerwerks 201 verfügbar: (a) Eigenbereichsmodus; (b) Emulationsmodus? (c) gleichzeitig Eigenbereich und Emulationsmodus; (d) Uberprüfungsmodus. Diese Fähigkeit ergibt sich, weil die Mikrobefehle im Speichersteurwerk die Quelle von MikroOperationen sind, welche zur Steuerung des Betriebs aller anderen Funktionseinheiten der Zentraleinheit dienen, beispielsweise der Emulator 216, das Rechenwerk 217, die Befehlsabrufeinheit IFU 218, das Adressensteuerwerk ACU 219 und die Datenverwaltungseinheit DMU 221. Weiterhin befinden sich innerhalb der Zentraleinheit 21 Generalregister 207, Basisregister 208, Gleitkommaregister 209, T-Register 210, Statusregister 211, Befehlszähler IC 212 und ein Hardware-Steuermaskenregister 213.
Im typischen Fall ist das Speichersteuerwerk CSU 201 ein 9K bipolarer programmierbarer Festwertspeicher PROM in integrierter Schaltungstechnik verbunden mit einem Lese/Schreib-Direkt-r Zugriffsspeicher RAM. Sie haben üblicherweise eine Lesezykluszeit von 150 ns und eine Schreibzykluszeit von 450 ns. Jeder Speicherplatz des Steuerspeichers speichert ein 84-Bit-Mikrobefehlswort und jedes Mikrobefehlswort steuert einen Zentraleinheitszyklus. Bei jedem Lesen eines Speicherplatzes im Speichersteuerwerk 201 wird sein Inhalt durch Mikrobefehlsdecodierer decodiert, welche ein Mikrooperations-Steuersignal erzeugen, von denen jedes eine bestimmte Operation innerhalb der Zentraleinheit auslöst.
9-8 28/0854
Durch gruppenweises Zusammenfassen von Stellen innerhalb jedes Mikrobefehlswortes erhält man Steuerspeicherfolgen, welche eine bestimmte Zentraleinheit-Operation oder einen Befehl ausführen. Da jeder Befehl durch die Zentraleinheit ausgelöst wird, benutzt man bestimmte Bits innerhalb des Operationscodes für die Bestimmung der Startfolge des SteuerSpeichers. Durch überprüfung bestimmter Flip-Flops, welche durch Befehlsdecodierfolgen gesetzt oder rückgestellt werden, ist es dem Speichersteuerwerk möglich, erforderlichenfalls in eine spezielle Folge abzuzweigen.
Der Steuerspeicher-Schnittstellenadapter 202 steht im Informationsaustausch mit dem Speichersteuerwerk 201, der Datenverwaltungseinheit 221, dem Adressensteuerwerk 219 und dem Rechenwerk 217, um auf diese Weise den Betrieb des Steuerspeichers 233 gemäß Figur 2B zu bestimmen. Der Steuerspeicher-Schnittstellenadapter 202 enthält ferner Logikschaltungen für die Modifizierung, Überprüfung, Fehlerfeststellung in Steuerspeicheradressen und zur Erzeugung von Hardwareadressen. Letzteres wird allgemein für die Entwicklung einer Anfangsadresse einer Fehlerfolge oder für die Einleitungsfolge benutzt.
Die Datenverwaltungseinheit 221 bildet die Schnittstelle zwischen der Zentraleinheit 21 und dem Hauptspeicher und/oder dem Pufferspeicher gemäß Figur 1. Die Datenverwaltungseinheit hat die Aufgabe, festzustellen, welche Einheit die von anderen Einheiten benötigten Informationen aufweist und diese Informationen zur richtigen Zeit in die Register der Zentraleinheit zu überführen. Die Datenverwaltungseinheit sorgt auch für die Maskierung bei bestimmten Schreiboperationen.
Die Befehlsabrufeinheit 218 bildet Schnittstellen mit der Datenverwaltungseinheit 221, dem Adressensteuerwerk 219, dem Rechenwerk 217 und dem Speichersteuerwerk 201 und ist dafür verantwortlich, daß die Zentraleinheit mit Befehlen versorgt wird. Die Befehlsabrufeinheit hat jeweils vor Ablauf des gegenwärtigen Befehls den nächsten Befehl in ihren Registern bereit. Um dies
609828/08S4
zu ermöglichen,'hat die Befehlsabrufeinheit 218 ein 12-Byte-Befehlsregister, welches normalerweise mehr als einen Befehl enthält. Zusätzlich fordert die Befehlsabrufeinheit, gesteuert durch das SpeicherSteuerwerk, Informationen aus dem Hauptspeicher an, ehe diese Information tatsächlich benötigt wird. Auf diese Weise schreibt sie ihr 12-Byte-Befehlsregister ständig fort. Befehle werden vorabgerufen, mit Hilfe normalerweise nicht benutzter Speicherzyklen. Die Befehlsabrufeinheit decodiert ferner jeden Befehl und informiert andere Einheiten über Länge und Format des Befehles.
Das Adressensteuerwerk 219 steht über den CIA in Verbindung mit der IFU, dem ALO, der DMU und dem CSU. Das Adressensteuerwerk 219 ist für die gesamte Adressenentwicklung in der Zentraleinheit verantwortlich. Alle Operationen des Adressensteuerwerks einschließlich der übertragung zu, von und innnerhalb des Steuerwerks werden durch Mikrobefehle des Speichersteuerwerks und durch logische Schaltkreise bewirkt. Der normale Zyklus des Adressensteuerwerks hängt von der Art der Adressen im Befehl ab und nicht von der Art der Befehle. In Abhängigkeit vom Adressentyp kann das Adressensteuerwerk unterschiedliche Operationen für jede Adresse innerhalb eines Befehls ausführen. Das Adressensteuerwerk enthält ferner einen Assoziativspeicher 219a, welcher die Basisadresse der zuletzt benutzten 8 Speichersegmente zusammen mit ihren Segmentnummern speichert. Jedesmal, wenn ein Zugriff zu einem Speicher erfolgen soll, wird die Segmentnummer mit dem Inhalt des Assiziativspeichers verglichen, um festzustellen, ob die Basisadresse des Segments bereits entwickelt und gespeichert ist. Befindet sich die Basisadresse im Assoziativspeicher 219a, so wird sie für die absolute Adressenentwicklung benutzt, wodurch eine beträchtliche Zeitersparnis gegeben ist. Befindet sich die Basisadresse nicht im Assoziativspeicher 219a, so wird sie durch Zugriff zu den Hauptspeichertabellen entwickelt. Jedoch wird nach der Entwicklung
6098 28/0854
der Basisadresse des Segments diese im Assoziativspeicher zusammen mit ihrer Segmentnummer für die spätere Bezugnahme abgelegt.
Das Rechenwerk ALU :· 217 arbeitet mit dem Adressensteuerwerk ACU, der Befehlsabrufeinheit IFU, der Datenverwaltungseinheit DMU und dem Speichersteuerwerk CSU zusammen. Seine Hauptaufgabe besteht in der Durchführung arithmetischer- Operationen und Datenverarbeitungen, welche von der Zentraleinheit gefordert werden. Die Operationen des Rechenwerks sind völlig von Mikrobefehls-Steuersignalen aus dem Speichersteuerwerk 201 abhängig.
Dem Rechenwerk 217 und dem Speicher Steuerwerk 201 zugeordnet ist ein Zwischenspeicher LSU 215, welcher manchmal auch als interne Speichereinheit bezeichnet wird. Dieser Zwischenspeicher besteht im typischen Fall aus einem Festwertspeicher mit 256 Speicherplätzen und 32 Bits pro Speicherplatz, sowie einer Auswahl- und Lese/Schreiblogik für diesen Speicher. Der Zwischenspeicher 215 wird zum Abspeichern von Steuer- und Aufrechterhaltungsinformationen der Zentraleinheit verwendet. Zusätzlich enthält er Arbeitsplätze, die hauptsächlich zum vorübergehenden Speichern von Operanden und und Teilergebnissen während der Datenverarbeitung dienen. Weiterhin ist dem Rechenwerk 217 ein Hilfsspeicher 217a zugeordnet, welcher im üblichen Fall 64 Flip-Flops zur Speicherung verschiedener Zustände des Rechnersystems enthält.
Die Zentraleinheit weist ferner eine Taktgebereinheit 220 auf, die praktisch aus zwei Taktgebersystemen in einer Einheit besteht. Das erste Taktgebersystem erzeugt die Taktsignale zur Steuerung des Schnittstellenadapters 202, während das zweite Taktsystem die Taktimpulse für die Operationen der Funktionseinheiten innerhalb der Zentraleinheit liefert.
609828/085
In Figur 2C ist das Format des Steuerspeicherworts 225 wiedergegeben. Dieses ist ein 84-Bit-Wort und in die folgenden 6 Hauptfelder unterteilt:
a. Folgetypfeldr.226 (3 Bits)
b. Verzweigungs- und/oder Mikrobefehlsfeld 227 (23 Bits)
c. Konstantenerzeugung und Bestimmung 228 (14 Bits)
d. Daten zur Sammelschiene 229 (8 Bits)
e. Mikrobefehle 230 (32 Bits) und
f. Prüfung 231 (4 Bits)
Das 3-Bit-E-Feld des SteuerSpeicherworts 225 wird als Folgesteuerfeld verwendet. Es sind üblicherweise 7 verschiedene Steuerfolgen vorhanden und eine für das gegenwärtige Rechensystem reserviert. Unter Bezugnahme auf den Block 235 gemäß Figur 2B wird, wenn das E-FeId gleich 0, 1 oder 2 ist, das Verzweigungsfeld A, B, C, D und L der Mikrobefehle 225 benutzt, um die nächste Adresse zu erzeugen. Die ersten 6 Bits des KS-Registers 237 werden zusammen mit dem B-Feld benutzt und es ergibt sich ein C-Test, hieraus ein D-Test und das L-FeId liefert die nächste Adresse des nächsten Mikrobefehls, welche dann in das Adressenregister KS 237 eingegeben wird. Ist das E-FeId auf binär 4 (siehe Block 235) gesetzt, so wird die nächste ausgewählte Adresse vom Unterbrechungs-Rückkehrregister KA 239 entnommen. Die Adresse im ΚΑ-Register ist diejenige, welche von der Logikschaltung zur Erzeugung der nächsten Adresse erzeugt wird, wenn eine Hardware-Unterbrechung auftritt. Ist das E-FeId auf binär 5 gesetzt, so wird eine Verzweigungsoperation benutzt, um eine Hilfs-Rückkehroperation von einer Mikroprogramm-Subroutine zu bewirken. Wenn dies erfolgt, werden die Inhalte der Rückkehrregister KR 246 als die nächste Steuerspeicheradresse verwendet. Das Rückkehrregister 246 wird dadurch geladen, daß ein Steuerspeicherbefehl herausgegeben wird, der die gegenwärtige Steuerspeicheradresse im KS-Register 237 zuzüglich 1 vom Fortschalter 238 in das KR-Register 246 überführt. Eine Möglichkeit für eine
609828/08S4
Einebene-Einfügungsroutine ist gegeben über ein KT-Rückkehrverzweigungsregister 247. Jedesmal, wenn das KR-Register 246 geladen wird, wird der alte Inhalt dieses Registers in das KT-Register 247 überführt und jedesmal, wenn ein Mikroprogramm-Rückkehrbefehl aufgerufen wird, wird der Inhalt des KT-Registers in das KR-Register eingegeben. Eine Möglichkeit für eine Einfügungs-Subroutine in der dritten Ebene wird durch das KU-Register 248 und in der vierten Ebene durch das KV-Rückkehrverzweigungsregister 249 dargestellt. Wenn das E-FeId des Steuerspeicherworts auf binär 6 steht, so ist das nächste adressierte Steuerspeicherwort gleich der gegenwärtigen Adresse im KS-Register 237 plus 1 im Fortschalter oder Inkrementor 238. Steht das E-FeId auf binär 7, so geht das Speichersteuerwerk 201 in den Überprüfungsmodus über und die nächste Adresse ist gleich der gegenwärtigen Adresse plus 1.
Zusätzlich zur Folgesteuerung von Verzweigungen zur nächsten Steuerspeicheradresse gemäß Block 235 ist im Block 236 von Figur 2B eine durch Hardware erzeugte Folgesteuerung dargestellt. Die Blöcke 235 und 236 sind in Wirklichkeit Hardware-Register und derart aufgebaut, daß Sie die verschiedenen Formen aufnehmen können, die die Mikrobefehle aufweisen mögen. Die hardwarebestimmten Verzweigungen stellen übersteuernde Zustände dar, solche wie Fehler, Einleitung, Steuerspeicherabtastung usw., die das E-FeId unterdrücken und eine feste Adresse in das SteuerSpeicheradressenregister KS 237 zwangsweise eingeben. Die Verzweigung erfolgt dadurch, daß eine Leitungsunterbrechung für eine Taktperiode stattfindet und die Adresse, welche an sich unter der Steuerung des Ε-Feldes erzeugt worden wäre, in das KA-Unterbrechungsrückkehrregister 239 geladen wird. Eine hardwaregesteuerte Adresse wird in das Steuerspeicheradressenregister eingegeben. Bestimmte, durch Hardware oder Firmware erzeugte Unterbrechungen haben Priorität, wenn der Unterbrechungs-Blockier-Flip-Flop gesetzt ist, der die Durchführung zusätzlicher Unterbrechungen in ihrer Klasse verhindert, bis der unterbrechende
609828/0354
Zustand erledigt ist. Eine Firmware-Mikrooperation besteht zur Steuerung der Rückstellung des Unterbrechungs-Blockier-Flip-Flops für jene Folgen, welche unter Firmware-Einfluß stehen. Diese Folgen bewirken automatisch eine Rückstellung des Blockier-Flip-Flops am Ende der Folge. Die nachstehend entsprechend ihrer Priorität aufgeführten Zustände bestehen in dieser Kategorie:
a. Laden des SteuerSpeichers
b. Abtastung des SteuerSpeichers
c. Hardware-Fehler
d. Software-Fehler
Die verbleibenden Hardware-Zustände setzen den Unterbrechungs-Blockier-Flip-Flop nicht, aber bewirken bei ihrer Erzeugung eine sofortige Aktion. Die nachstehend entsprechend ihrer Priorität aufgeführten Zustände bestehen in dieser Kategorie:
a. Einleitung
b. Soft-Freigabe
c. Eintritt in die Wartungskonsole
d. Hardware-Ausgang
Ein Einleitungssignal bewirkt, daß das SpeicherSteuerwerk zur Adresse binär 0 abzweigt, durch Hardware rückstellbare Fehler geklärt werden und eine Steuerspeicher-Ladeoperation gefolgt von einer Steuerspeicher-Abtastfolge unter Hardwareüberwachung ausgeführt wird. Außerdem wird die Systemeinleitung durchgeführt. Ein Signal-Softfreigabe läßt das Speichersteuerwerk 201 zur Adresse binär 0 abzweigen, klärt die durch Hardware zurückstellbaren Fehler und stellt den Unterbrechungs-Blockier-Flip-Flop zurück. Ein Signal für den Eingang in die Wartungskonsole bewirkt, daß das SpeicherSteuerwerk in die durch die Schalter auf der Wartungskonsole vorgegebenen Adressen abzweigt.
609828/08
Ein Signal zum Eintritt in den Wartungskanal läßt das Speichersteuerwerk zu einer Adresse abzweigen, welche über den Wartungskanal erzeugt wird. Die Adresse wird aus der Wartungssammelschiene QMB 244 geladen, welche Teil des Wartungskanals ist. Ein Hardware-Ausgangssignal läßt das Speicher Steuerwerk zur Binäradresse 2 abzweigen. Diese Folge wird als Wartungsmöglichkeit benutzt. Am Ende der Folge wird durch Herausgabe eines E-Feld-Verzweigungsbefehls eine Rückkehr in Gang gesetzt und das E-FeId auf binär 4 gesetzt.
Ein Steuerspeicher-Ladesignal läßt das Speichersteuerwerk zur Adresse binär O abzweigen. Es schaltet außerdem den CSU-Lesezyklus Flip-Flop und den Systemtaktgeber 220 ab und führt das Speichersteuerwerk in den Ladezustand über. In diesen Zustand kann das Speichersteuerwerk aus dem S teuer speicher lader CSL 203, der Ein/Ausgabesteuerung IOC 205, dem Hauptspeicher 11 oder der Wartungskonsole 30 geladen werden. Erfolgt eine Ladung aus dem Lader CSL, so wird eine automatische Abtastung am Ende des Ladens bewirkt. Wird hingegen aus einem anderen Medium geladen, so kann eine Abtastung entweder durch Erzeugung eines Mikrooperationssignals oder durch Einstellen des Abtastschalters auf der Wartungskonsole erfolgen. Ein Steuerspeicher-Abtastsignal läßt das Speichersteuerwerk zur Adresse binär 0 verzweigen. Für die Dauer der Folge unterliegt die Abtastung der Steuerung durch die Hardware. Während der Abtastung ist der Systemtaktgeber 220 abgeschaltet und folglich werden keine Befehle oder Überprüfungen ausgeführt. Am Ende der Abtastfolge überträgt die Hardware den Inhalt des Unterbrechungsrückkehrregisters KA in das Adressenregister KS, der Systemtaktgeber wird wieder eingeschaltet und die Steuerung kehrt zur Firmware zurück.
Ein Hardware-Fehlersignal bewirkt eine Abzweigung in die Adresse binär 4. Im normalen Prozeßmodus aktiviert ein in irgendeiner Funktionseinheit der Zentraleinheit festgestellter
609 8 28/0854
Hardwarefehler eine Hardware-Fehlerleitung. Die erzeugte Steuerspeicherfolge überprüft die Systemzustände im Hinblick auf die einzuleitende Aktion. Im Diagnosemodus sind von der Hardware feststellbare Fehlerzustände für die Mikrodiagnose erkennbar. Sie steuert die einzuleitenden Aktionen. Ein Software-Fehlersignal andererseits läßt den Steuerspeicher zur Adresse binär 1 verzweigen. Diese Adresse stellt den Anfang einer Software-Fehlerberichtsfolge dar, die unter Mikroprogrammsteuerung steht.
Gemäß Figur 2C ist das E-FeId 226 ein 3-Bit-Feld für den Verzweigungscode. Das Verzweigungs- und/oder Mikrobefehlsfeld 227 besteht aus den Feldern A, B, C, D und L (vergleiche auch Block 235 in Figur 2B), wobei das A-FeId die oberen 6 Bits der nächsten Adresse, das B-Feld die mittleren 4 Bits der nächsten Adresse des Maskenfeldes an der 64-Weg-Verzweigung, das C-FeId ein 6-Bit-Prüffeld für einen von 64 Tests, das E-FeId, ein weiteres 6-Bit-Prüffeld für einen von 64 Tests und das L-FeId, das am niedrigstwertige Bit ist. Das K-FeId 228 ist ein 14-Bit-Feld von dem 6 Bits für ein Konstantenfeld, 4 Bits für ein Konstantenoder Steuerfeld und 4 Bits für ein Steuerfeld für eine Konstante dienen. Das Feld 229 für die Datenweitergabe zur Sammelschiene besteht aus dem QA-FeId mit 4 Bits zur Steuerung des Informationsflusses zum QA-Teil der QMB-Sammelschiene 244, während das QB-FeId 4 Bits zur Steuerung der Informationsweitergabe zum QB-Teil der QMB-Sammelschiene 244 enthält. Das F-FeId 230 ist ein 32-Bit-FeId und ist zur Erzeugung von Mikrooperations-ünterbefehlen codiert. Das P-FeId 231 besteht aus 4 für Prüfzwecke reservierten Bits.
Im Betrieb werden die Mikrobefehlsworte in einer Steuerspeicheranordnung 233 gespeichert. Während eines Betriebszyklus wird diese Steuerspeicheranordnung durch den Inhalt des KS-Adressregisters 237 adressiert. Hierdurch wird der Inhalt des adressierten Speicherplatzes in die Gruppe von Verriegelungsregistern 237 eingegeben. Teile des Inhalts dieser Register werden in die Speicher-
609828/0854
register innerhalb jeder der Funktionseinheiten der Zentraleinheit übertragen. Jede funktioneile Einheit enthält logische Decodierschaltungen zur Erzeugung der erforderlichen, durch das Steuerspeicherwort definierten ünterbefehle unter Steuereinfluß des Systemtaktgebers. Im allgemeinen wird die Decodierung innerhalb jeder funktioneilen Einheit durchgeführt und nicht zentral, damit die Decodierzeit auf ein Minimum reduziert und die Anzahl der Leitungen für die Übertragung von Befehlsignalen reduziert wird. Außerdem vermeidet man durch das Decodieren innerhalb jeder Einheit Zeitgeberprobleme, welche sich aus unterschiedlichen Kabelverzögerungszeiten ergeben können. Schließlich brauchen diejenigen Signale nicht zum Steuespeicher-Schnittstellenadapter 202 zurückgeleitet werden, welche für bestimmte Zustände innerhalb der Funktionseinheit kennzeichnend sind und für die Erzeugung bestimmter Unterbefehlssignale erforderlich sind. Ein typischer Decodierer 259 empfängt gemäß Figur 2B verschiedene Felder aus Mikrobefehlsworten und erzeugt Mikrobefehlsignale a, b, c, d, ... q, r. Ein typischer Mikrobefehlsdecoder 259 erhält Befehle von einem Mikrobefehlswort. Das Feld des Mikrobefehlswortes wird decodiert und stellt eine Mehrzahl von Zeilen s, t, u, ... y, ζ auf das Potential "1". Eine Matrix mit vorgegebenen Steuerleitungen ist an die s- bis z-Leitungen an den Punkten OC , /3 , Y" , ... * - UO angekoppelt. Wenn das Feld eines Mikrobefehls decodiert wird, geht eine der Leitungen s bis ζ auf hohes Potential. Da die in der Zeichnung durch Punkte und griechische Buchstaben gekennzeichneten Verknüpfungspunkte sich kreuzender Leitungen eine Leitungskopplung darstellen, wird jedes sich längs einer horizontalen Leitung ausbreitende Signal an denjenigen Stellen, wo ein Kopplungspunkt angegeben ist, auf eine der vertikalen Leitungen a bis r übergehen. Jede der vertikalen Leitungen kann als Eingang zu einem UND-Gatter 260 bis 265 geführt werden. Weitere Eingangssignale können ebenfalls an die UND-Gatter 260 bis 265 geführt werden, einschließlich eines Taktsignals t„ vom zentralen Taktgeber. Folglich werden jeweils dann, wenn das Taktsignal den Wert "1" annimmt,
6 ö 9 8 2 8 / 0 8 S 4
jene Gatter durchgeschaltet, deren sämtliche Eingänge ein positives Eingangssignal haben. Diese Gatter liefern Mikrobefehlsignale an vorgegebene Funktionseinheiten innerhalb der Zentraleinheit. Beispielsweise, wenn ein Befehl 241 vom Leseverriegelungsregister 257 decodiert wird und eine horizontale Leitung auf "1" liegt, so werden die vertikalen Steuerleitungen a, b, c und q ebenfalls positiv und die Gatter 260, 261, 262 und 264 werden beim Auftreten des Taktsignals nacheinander durchgeschaltet. Folglich stellen die Kombinationen, in denen die vertikalen Steuerleitungen mit der horizontalen Steuerleitung an verschiedenen durch griechische Buchstaben gekennzeichneten Punkten gekoppelt sind, eine bleibende Schaltmatrix für die Zufuhr von Mikrobefehlsignalen an die Zentraleinheit dar und zwar für die Steuerung der Funktionseinheiten innerhalb der Zentraleinheit durch Mikrobefehle aus der Steuerspeicheranordnung 233. Somit kann dauerhafte, aber veränderbare Firmware in die Anlage eingebaut werden, indem lediglich die Folge der Mikrobefehle angegeben wird, welche als Fähigkeit des Rechnersystems benötigt wird.
Unter normalen Bedingungen werden Daten in die Steuerspeicheranordnung 233 über ein Schreibdatenregister der Zentraleinheit, welches auch unter der Bezeichnung internes Register YO 243 bekannt ist, eingegeben. Ein Steuer-Flip-Flop bestimmt, ob in die obere oder in die untere Hälfte der Speicheranordnung eingeschrieben werden soll. Daten aus der Steuer- und Ladeeinheit CLU 204 kommen am Adapter CIA bzw. dem SpeicherSteuerwerk CSU über die Wartungssammelschiene QMB 244 an und werden vorübergehend im internen Speicherregister YO 243 aufbewahrt, ehe sie in die Steuerspeicheranordnung 233 eingegeben werden. Das interne Register 243 wird sowohl als örtliches Lese- als auch als örtliches Schreibregister verwendet. Der Multiplexer KQM 245 kann entweder von der Wartungskonsole 255 oder durch Mikrodiagnoseoperationen gesteuert werden und liefert einen Ausspeicherungsweg
609828/öS
aus den ihm angeschlossenen Registern. Ein Vergleichsregister KP 250 wird in erster Linie für Wartungszwecke benutzt und zwar zusammen mit einer Vergleichslogik 252, einer Decodierlogik 251 und einem Dekrementor 253.
Da die vorliegende Erfindung sich auf Datenverarbeitungs systeme bezieht, kann die Beschreibung derselben sehr komplex werden. Um eine ungebührliche Ausweitung der Beschreibung hinsichtlich solcher Dinge, die im Wissensbereich des Fachmannes liegen, zu vermeiden, wurde nur eine funktioneile Beschreibung eines Blockdiagrammes gegeben und nicht auf nähere Einzelheiten eingegangen. Der jeweilige Fachmann hat es in der Hand, entsprechende Elemente und Komponenten, wie beispielsweise Flip-Flop-Schaltkreise, Schieberegister usw. auszuwählen, wie solche beispielsweise in den Standardwerken "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 Book Company, Inc. beschrieben sind. Weiterhin wurden die meisten jener Details aus der Beschreibung weggelassen, welche im Stand der Technik bestens bekannt sind. Beispielsweise gehört die Informationsübertragung von einem Register in ein anderes Register unter der Operation eines Steuerspeicher-Mikroprogrammes zum Stand der Technik und ist daher nur ganz allgemein erwähnt. Ebenso können Einzelleitungen in Wirklichkeit Mehrfachleitungen für eine parallele Datenübertragung darstellen. Obwohl auf diese Details verzichtet wurde, sollte der Fachmann auf Grund der grundlegenden Beschreibung des Gesamtsystems unter Bezugnahme auf die Figuren 1 und 2 in der Lage sein, das Ausführungsbeispiel gemäß der vorliegenden Erfindung zu verstehen.
9828/0854
Operation des Schutzmechanisinus
Anhand der Figur 3 ist ein Flußdiagramm dargestellt, welches die Operation des Schutzmechanismus in einem Rechnersystem gemäß den Figuren 1 und 2 beschreibt. Wenn die Operation im Block 300 beginnt, so sei angenommen, daß ein Befehl im Befehlsregister der Befehlsabrufeinheit 218 gespeichert ist. Der Operationscode wird durch den Steuerspeicher-Schnittstellenadapter 202 festgestellt, welcher seinerseits die SteuerSpeichereinheit 201 in die Lage versetzt, eine Reihe von Tests mit den ausgewählten Bit-Feldern des Befehls auszuführen. Diese Tests werden durch Mikrobefehle gesteuert, die von der Steuerspeichereinheit 201 erzeugt werden. Die Ergebnisse dieser Tests werden durch den Steuerspeicher-Schnittstellenadapter 202 festgestellt, welcher in Abhängigkeit von den getesteten Ergebnissen den nächsten Mikrobefehl-Abruf modifizieren kann, so daß ein bezogener Mikrobefehl, der den festgestellten Zustand beinhaltet,erzeugt wird. Wie ersichtlich, wird eine Mikroverzweigungstechnik verwendet, wobei die behandelten und von dem Steuerspeicher-Schnittstellenadapter empfangenen Signale in eine direkte Adresse in der Steuerspeichereinheit 201 übersetzt werden. Die resultierende Operation bildet einen direkten Datenweg für nachfolgende Datenübertragungen, wobei der zuvor festgestellte Zustand in Rechnung gezogen wird. Die vorstehend erwähnte Folge von Ereignissen tritt hinsichtlich jedes Blockes gemäß Figur auf und wird nachstehend nicht bis ins vollständige Detail beschrieben. Die Merkmale hinsichtlich des Mikrobefehls und seiner Bildung können den US Patenten 3 634 883 und 3 560 993 entnommen werden.
Die Ausführung des Befehls hat die Erkennung einer Prozeßanforderung für einen Zugriff auf ein Systemmittel zur Folge. Ein Systemmittel sei im folgenden allgemein mit R^ bezeichnet. Vor der Freigabe des angeforderten Zugriffs werden die Schutzmechanismen herangezogen, um festzustellen, ob der angeforderte
809828/0SS4
Zugriff eine Überlappung beinhaltet oder ob er gestattet ist. Im Block 305 nehmen die Schutzmechanismen Zugriff auf die Benutzungstabelle für R.. Die zurückliegende Zugriffsgeschichte des Systemmittels R^ wird somit erhalten und es wird eine Bestimmung der Beziehungen durchgeführt, welche errichtet würden, falls der vorgeschlagene Zugriff genehmigt würde. Jede dieser neuen Beziehungen muß freigegeben werden, bevor der Zugriff gestattet wird. Der Mechanismus entscheidet im Schritt 310, ob eine freizugebende Beziehung vorliegt. Es sei hier festgestellt, daß es Augenblicke gibt, wo keine Beziehung freigegeben werden muß. Beispielsweise beinhaltet die Schaffung eines neuen Systemmittels keine Beziehung. In gleicher Weise benötigt der einem vorangegangenen Zugriff genau entsprechende Zugriff keine erneute Freigabe. Andererseits ist es möglich, daß ein einziger Zugriff eine Vielzahl von Beziehungen schaffen kann. Entsprechend dieser möglichen Vielzahl von vorgeschlagenen Beziehungen, die es freizugeben gilt, arbeitet der Mechanismus iterativ in dieser Stufe, indem er jede vorgeschlagene Beziehung der Reihe nach untersucht. Wenn eine freizugebende Beziehung vorliegt, so nimmt der Mechanismus Zugriff auf die Matrix der Beziehungen (MR) , um zu sehen, ob die gleiche folgende Beziehung zuvor aufgetreten ist, was durch den Schritt 315 dargestellt wird. Wenn dies der Fall war, so wird durch diese Beziehung eine Schleife nicht geschlossen und die Beziehung ist erlaubt. Aus diesem Grund verzweigt die Operation zurück zum Punkt 3b, um festzustellen, ob nicht eine andere Beziehung in MR auftritt und die Mechanismen schreiten zum Schritt 320 fort, welcher die Ausführung der Feststelloperation darstellt. Die Feststelloperation überprüft, ob die vorgeschlagene Beziehung eine Schleife schließt, wobei ein Überlappungszustand geschaffen würde. Schließt sich die Schleife nicht, so ist die vorgeschlagene Beziehung erlaubt und die Einrichtung verzweigt erneut zurück zum Punkt 3b. Wird eine Schleife geschlossen, so wird ein Überlappungszustand festgestellt und es muß eine Wiederauffindungsentscheidung durchgeführt werden.
609828/0854,
Im vorliegenden Ausführungsbeispiel basiert die Wiederauffindungsentscheidung im ersten Augenblick darauf, ob der angeforderte Zugriff ein Lese- oder ein Schreibzugriff ist. Dies wird im Schritt 330 festgestellt. Liegt ein Lesen des Systemmittels R. vor, so schreitet der Mechanismus zu dem Schritt 335 fortr um zu testen, ob eine vorangegangene Erzeugung des Systemmittels R. verfügbar ist, so daß das Lesen zurückgeleitet werden kann, um diese frühere Erzeugung anstelle der vorliegenden Erzeugung des Systemmittels zu Lesen. Auf diese Weise werden alle Änderungen auf Grund dazwischenliegender Prozesse umgangen. Bevor jedoch ein solches Lesen der Vergangenheit gestattet ist, verzweigt der Mechanismus zurück zum Punkt 3a. Eine neue Feststellung dahingehend, ob eine Schleife beim Lesen der vergangenen Erzeugung des Systemmittels erzeugt würde, wird sodann ausgeführt. Wenn der Test im Schritt 335 ergibt, daß eine zurückliegende Version des Systemmittels nicht verfügbar ist, so wird eine Verzweigung zum Punkt 3c vorgenommen.
Wenn sich der angeforderte Zugriff als ein Schreiben in das Systemmittel darstellt, so verzweigt der Mechanismus zum Punkt 3c und zum Block 340. Der angeforderte Zugriff hat eine Beziehung zur Folge, die besagt, daß der angeforderte Prozeß einem zweiten Prozeß, genannt X, folgte. Die Wiederauffindungsentscheidung hinsichtlich X besteht in einem Löschen und einem späteren Wiederstart. Im Block 340 wird X identifiziert. Jedoch müssen Prozesse, welche von X abhängig sind, alle zurückgeführt und neu gestartet werden. Eine Bezugnahme auf die Beziehungsmatrix MR wird im Block 350 vorgenommen, wodurch aufgedeckt wird, welche Prozesse von X abhängig sind. Im Block 355 werden X und jene Prozesse, welche von X abhängig sind, zurückgeführt oder ungeschehen gemacht, z.B. wird das System auf seinen Zustand zurückgespeichert, den es vor dem Schreiben von X inne hatte. Es sei hier festgestellt, daß
609828/08S4
verfeinertere Wiederauffindungsentscheidungen, wie sie oben diskutiert wurden, die Auswahl von X im Block 340 bewirken können. Im Block 360 wird ein Signal zu einem System-Wiederstartmechanismus gesendet, um anzuzeigen, daß X und jene Prozesse, die falls vorhanden, von X abhängig sind, gelöscht worden sind und von neuem loslaufen müssen. Die Beziehungen, die zuvor durch Ablauf jener Prozesse verursacht wurden, werden aus den Benutzungstabellen und der Matrix MR im Block 365 entfernt.
Wenn diese Aufgaben erledigt sind, so wird die Beziehung freigegeben und die Operation verzweigt zum Punkt 3b. Eine andere Feststellung wird im Schritt 310 vorgenommen, um zu sehen, ob eine zusätzliche Beziehung freigegeben werden muß: Wenn keinerfreizugebenden Beziehungen bestehen, wenn also alle vorgeschlagenen Beziehungen freigegeben worden sind, so verzweigt die Operation zum Block 370. Ein Fortschreiben der Benutzungstabelle für das Systemmittel R^ und der Matrix von Beziehungen MR wird im Block 370 vorgenommen. Dies vervollständigt die Operation des Schutzmechanismus im Block 375 und der Zugriff wird freigegeben.
Benutzungstabellen und Beziehungsmatrix.
Die Operation des Schutzmechanismus gemäß der Erfindung bezieht sich auf die Bildung, den Zugriff und das Fortschreiben von Benutzungstabellen für jedes der Systemmittel und auf eine Beziehungsmatrix für das System. Die Benutzungstabellen können in irgendeinem herkömmlichen Speicherplatz des Systems errichtet werden, wobei der Hauptspeicher 11 im bevorzugten Ausführungsbeispiel verwendet wird. Figur 4 zeigt Darstellungen für Benutzungstabellen für die Systemmittel R^, R2, R3 und R4. Es sei hler festgestellt, daß die Länge jeder Benutzungstabelle sich mit der speziellen Zugriffsgeschichte für dieses Systemmittel verändert. Jede Eingangsstelle in die Benutzungstabellenf
6Q982S/Q8S4
repräsentiert durch eine Reihe/enthält zwei Arten von Daten. Ein Name des Prozesses, welcher auf das Systemmittel Zugriff nimmt und die Art des Zugriffes, Lesen oder Schreiben, der ausgeführt wurde.
Gemäß Figur 5 ist eine Beziehungsmatrix (MR) dargestellt. Ebenso wie die Benutzungstabellen kann die Beziehungsmatrix MR in irgendeinem Speicherplatz vorzugsweise im Hauptspeicher 11 angeordnet sein. Es ist für den Fachmann ohne weiteres verständlich, daß die Matrixdarstellung auch in ein äquivalentes lineares Format umgewandelt werden kann. In der bevorzugten Ausführungsform gibt es drei Arten von Eingangsstellen in der Matrix. Zunächst gibt es "O"-Eingangsstellen. Eine O-Eingangsstelle bedeutet, daß keine direkte Beziehung bis jetzt zwischen den Prozessen festgestellt worden ist. Zweitens gibt es "1"-Eingangsstellen. Eine 1-Eingangssteile bedeutet, daß der Prozeß entsprechend der Reihe der Eingangsstelle dem Prozeß entsprechend der Spalte der Eingangsstelle folgt, aber vonrdiesem nicht abhängig ist. Schließlich gibt es "2"-Eingangsstellen. Eine 2-Eingangsstelle bedeutet, daß der Prozeß entsprechend der Reihe der Eingangsstelle dem Prozeß entsprechend der Spalte der Eingangsstelle folgt und von diesem abhängt. Die Eingangsstellen in der Beziehungsmatrix MR gemäß Figur 5 entsprechen der Zugriff sgeschichte, die in den Tabellen für die Systemmittel R,, R2, R3 und R. gemäß Figur 4 dargestellt sind mit Ausnahme der gestrichelt angedeuteten Eingangsstellen innerhalb der Benutzungs· tabelle für das Systemmittel R4.
Um eine bessere Erläuterung der Benutzungstabellen und der Beziehungsmatrix in Zusammenhang mit anderen Schutzmechanismen gemäß der vorliegenden Erfindung zu geben, ist es hilfreich, den Fluß der Operationen, welcher für den vorgeschlagenen Zugriff eines Systemmittels auftritt, zu prüfen. Zunächst sei der Fall betrachtet, wo der Prozeß A ein Lesen des Systemmittels 4 anfordert. Der Zustand des Systems enspricht dem
609828/0854
in den Figuren 4 und 5 dargestellten Fall, wobei jedoch die gestrichelt eingerahmten Eingangsstellen gemäß Figur 4 außer Acht gelassen werden. Die vierte Eingangsstelle in der Tabelle für R4 entspricht dem angeforderten Zugriff. Wenn eine solche Eingangsstelle angewählt wird, so wird die Beziehung A folgt C gebildet. Da diese Beziehung gegenwärtig in der Beziehungsmatrix MR gemäß Figur 5 nicht auftritt, wird die Feststelloperation ausgelöst, um festzustellen, ob die Beziehung eine Schleife schließt. Gemäß der Beziehungsmatrix MR von Figur 5 folgt C explizite auf A. Aus diesem Grund stellt die Beziehung A folgt C einen Überlappungszustand dar. Als Folge hiervon wird die vorliegende Überlappung festgestellt und es muß eine Wiederauf findungsentscheidung durchgeführt werden. Da der vorgeschlagene Zugriff das Lesen betraf, muß die Wiederauffindungsentscheidung die vorangegangene Erzeugung von R. lesen, d. h. das Systemmittel R., wie es existierte bevor der Prozeß C das Systemmittel R. geschrieben und geändert hat. Die zurückliegende Zugriffsgeschichte ist in der Benutzungstabelle für das Systemmittel R4 in Figur 4 nicht dargestellt, aber es sei angenommen, daß die vorangehende Erzeugung des Systemmittels und die Zugriff sgeschichte verfügbar ist. Eine überprüfung ergibt, daß eine frühere Erzeugung verfügbar ist und eine überprüfung wird ausgelöst, um festzustellen, ob das Lesen der früheren Erzeugung einen Überlappungszustand ergeben würde. Andernfalls wird eine andere Wiederauffindungsentscheidung durchgeführt. Auf jeden Fall verhütet die Operation des Schutzmechanismus das angeforderte Lesen der laufenden Erzeugung des Systemmittels R4 durch den Prozeß A und es kann nicht in die vierte Zeile der Tabelle hinsichtlich des Systemmittels R4 gemäß Figur 4 eingetreten werden.
Wenn der angeforderte Zugriff durch den Prozeß A auf das Systemmittel R4 sich auf das Schreiben bezieht, so arbeitet der Schutzmechanismus in einer Weise, die der zuvor beschriebenen Weise bis auf kleine Unterschiede sehr ähnlich ist. Eine Feststellung
603828/0854
der Beziehungen, welche für den vorgeschlagenen Zugriff freigegeben werden müssen, wird durchgeführt. Beispielsweise soll der Zugriff die gestrichelte Eingangsstelle in der fünften Zeile der Benutzungstabelle gemäß Figur 4 betreffen. Dies erfordert eine Freigabe der Beziehung A folgt D und A folgt C. Tatsächlich wird keine dieser Beziehungen freigegeben, wenn irgendeine dieser Beziehungen eine Schleife schließt. Die Wiederauffindungsentscheidungen in diesem Fall basieren jedoch darauf, daß der zugreifende Prozeß A das Schreiben und nicht das Lesen betrifft. Wenn die erste durch den Schutzmechanismus freizugebende Beziehung durch A folgt D gegeben ist, so wird der Prozeß D als X identifiziert (Block 340 gemäß Figur 3). Wenn kein Prozeß von D abhängt, so ist D der einzige Prozeß, welcher abgebrochen werden muß. Die andere freizugebende Beziehung A folgt C wird sodann durch den Schutzmechanismus betrachtet. Der Prozeß C kann als X identifiziert werden und es sind wiederum keine Prozesse von C abhängig, wenn D bereits abgebrochen worden ist. Aus diesem Grund müssen die Prozesse C und D zurückgeführt werden, bevor der Prozeß A zum Schreiben in das Systemmittel R. freigegeben wird. Dies beinhaltet die Wiederherstellung der Datenbank auf ihren Zustand vor der Ausführung der Prozesse C und D, was zur Folge hat, daß das Schreiben von C und D auf R. und R- bzw. R2 ungeschehen gemacht wird. Einem Wiederstartmechanisraus wird signalisiert, daß die Prozesse C und D erneut vollständig ablaufen können. Schließlich müssen Eingangsstellen zu allen Benutzungstabellen und zu der Beziehungsmatrix ergänzt bzv/. gelöscht werden. Wenn diese Maßnahmen vorgenommen worden sind, wird die vorgeschlagene Beziehung freigegeben und es wird in die fünfte Eingangsstelle in der Tabelle für R4 eingetreten. Es sei jedoch vermerkt, daß zu diesem Zeitpunkt diese Beziehung die einzig vorhandene Beziehung unter den fünf Eingangsstellen für die Benutzung des Systemmittels R4 gemäß Figur 4 darstellt. Die Benutzungstabellen für R. und R2 sind demgegenüber verschieden, z.B. kürzer. In ähnlicher Weise wird eine Eingangsstelle in die Beziehungsmatrix MR für den jeweils dem Prozeß A
6098 2 8/0854
folgenden Prozeß gebildet, sofern überhaupt ein Prozeß folgt. Zu diesem Zeitpunkt wird der Zugriff freigegeben.
Feststelloperation
Der Schritt 320 gemäß Figur 3 stellt die sogenannte Feststelloperation dar, die von dem Schutzmechanismus gemäß der Erfindung angefordert wird. Die Feststell-Operation stellt eine überprüfung der Beziehungsmatrix dar, um festzustellen, ob die Umkehrung der getesteten Beziehung in der Beziehungsmatrix auftritt. Es sei hier festgestellt, daß diese Beziehung explizite oder implizite auftreten kann. Das implizite Auftreten ist möglich auf Grund der transitiven Eigenschaft der folgenden Beziehung.
Die bevorzugte Durchführung der Feststell-Operation wird im folgenden anhand der Hardwareeinrichtungen gemäß den Figuren 6A und 6B erläutert. Es sei jedoch erwähnt, daß ebenfalls Softwareeinrichtungen und ebensogut andere Firmware/Hardwareeinrichtungen zur Ausführung dieser Operationen möglich sind. Softwareausführungen in Form eines PLl-Programmes entsprechend den Figuren 6A und 6B sind im Anhang aufgeführt.
In den Figuren 6A und 6B bezeichnet der Schritt 600 den Beginn der Feststell-Operation. Innerhalb der Operation wird eine Mikroverzweigungstechnik verwendet, wodurch behandelte Signale, die durch den Steuerspeicher-Schnittstellenadapter 201 empfangen werden, in eine direkte Adresse in der SteuerSpeichereinheit umgewandelt werden. Die resultierende Operation errichtet einen direkten Datenweg für nachfolgende Datenübertragungen, wobei dem zuvor festgestellten Zustand Rechnung getragen wird. Die vorstehende Ereignisfolge läuft hinsichtlich jeder Rautendarstellung in Figur 6 ab und wird nachstehend nicht in ihren vollständigen Einzelheiten beschrieben. Die Mikrobefehle erlauben die schnelle Ausführung der dargestellten Schritte.
9828/0854
Beschreibung des Flußdiagrammes der Firmwareausführung für die Feststellung.
In den Figuren 6A und 6B werden gewisseArbeitsregistern zugeordnete Variablen für Verfolgungszwecke während der Prüfoperation herangezogen. M (x, y) ist eine RXR Matrix von Beziehungen, die in der Lage ist, Beziehungen für R-ProzeSse zu verfolgen. In der nachfolgenden Beschreibung wird die erste Eingangsstelle χ der Matrix als Zeile und die zweite Eingangsstelle y als Spalte bezeichnet. S (i) ist ein Vektor von R-Elementen entsprechend der Folge der zu testenden Prozesse. L ist eine positive ganze Zahl, die als Index oder Zähler für den Vektor S (i) benutzt wird. Im Block 605 werden S (1), S (2) und L auf ihre Anfangswerte C, 1 und 1 gesetzt. Bei der Erläuterung der Figuren 6A und 6B sei davon ausgegangen, daß die Feststell-Operation zusammen mit zuvor beschriebenen Operationen zur Prüfung der Beziehung A folgt C benutzt wird. In der Raute 315 gemäß Figur 3 war festgestellt worden, daß die Beziehung in die Matrix noch nicht eingegangen war. Dies kann einer Mikrooperation WM (A, C) = 0?" entsprechen. Wenn die Frage mit nein beantwortet wird, so ist die Beziehung A folgt C bereits in die Matrix eingegangen, d. h. die Beziehung ist bereits zuvor als richtig festgestellt worden. Wird die Frage jedoch mit nein beantwortet, so verzweigt die Einrichtung zur Raute 320, was gleichbedeutend mit der Ausführung der Feststell-Operation ist.
Fortfahrend mit der Beschreibung von Figur 6A ergibt sich, daß die Operation zum Punkt 6a und zur Raute 6IO fortschreitet. In der Raute 610 wird eine Eingangsstelle anfänglich die erste Eingangsstelle, in der Reihe, entsprechend dem zu testenden Prozeß, anfänglich dem Prozeß C1 überprüft, um zu sehen, ob er den Wert Null aufweist. Ist dies nicht der Fall, so ist eine Folgebeziehung festgestellt worden und die Operation verzweigt zur Raute 640. In der Raute 640 wird die Spalteneingangsstelle überprüft,
609828/0854
um festzustellen, ob sie A entspricht, d. h. um festzustellen, ob eine Schleife geschlossen wird. Ist dies der Fall, so verzweigt die Operation zu dem Schritt 645, welcher einen Ausgang aus der Feststell-Operation entsprechend der Verzweigung aus der Raute 320 gemäß Figur 3 nach der Raute 330 darstellt. Wenn der Test in der Raute 640 mit nein beantwortet wird, so verzweigt die Operation zu dem Block 650, in welchem der L-Zähler um 1 erhöht wird,und das neue Vektorelement für die Spalteneingangsstelle der Matrix auf 1 gesetzt wird. Die Operation verzweigt sodann zu dem Punkt 6a. Auf diese Weise wird der Prozeß, dessen Folge durch C festgestellt worden ist, überprüft, um zu sehen, ob er A folgt. Es sei hier festgestellt, daß eine rekursive Schleifenbildung möglich ist,entsprechend der transitiven Eigenschaft der Folgebeziehung. Wenn der Test in der Raute 610 mit ja beantwortet wird, so verzweigt die Operation zum Punkt 6b und zum Block 615. Wenn die Eingangsstelle in die Matrix keine Folgebeziehung enthält, so muß die nächste Eingangsstelle, d. h. die nächste Spalte in der gleichen Zeile überprüft werden, um zu sehen, ob sie zu einer Folgebeziehung führt. Aus diesem Grund wird im Block 615 der Wert des Vektorelementes für die Spalteneingangsstelle um 1 erhöht. In der Raute 620 wird die Spalteneingangsstelle überprüft, um zu sehen, ob sie größer als R ist. Ist dies der Fall, so ist eine vollständige Zeile getestet worden, ohne daß eine Schleife geschlossen wurde und die Operation verzweigt zur Raute 625. In der Raute 625 wird festgestellt, ob L = 1 ist oder nicht. Ist dies der Fall, so ist die Zeile,hinsichtlich derer der Test vervollständigt werden musstef C entsprechend dem freizugebenden Prozeß. Die Operation verzweigt zum Schritt 630, was bedeutet, daß keine Überlappung festgestellt wurde. Dies entspricht einer Verzweigung von der Raute 320 in Figur 3 entlang dem Nein-Pfad nach dem Punkt 3b. Wenn der Test in der Raute 625 mit nein beantwortet wird, dann verzweigt die Operation zu dem Block 635, in welchem L um 1 erniedrigt wird. Die
609828/08 54'
Operation verzweigt dann zu dem Punkt 6b. Auf diese Weise tritt die Prüfung der vorangegangenen Zeile mit einer Spalteneingangsstelle ein, die um 1 vor der zuvor getesteten und gerade freigegebenen Eingangsstelle liegt. Wenn der Test in der Raute 620 mit nein beantwortet wird, was bedeutet, daß die Zeile nicht vollständig getestet wurde, so verzweigt die Operation zum Punkt 6a und die nächste Eingangsstelle wird getestet.
Die anhand von Figur 6A beschriebene Firmwareoperation stellt die Feststell-Operation dar. Es ist jedoch keine Möglichkeit vorgesehen, um aufzuzeichnen, daß eine Zeile bereits während einer vorangegangenen Verzweigungsoperation der gleichen Feststelloperation geprüft worden ist. Als Folge hiervon kann eine Zeile mehr als einmal überprüft werden. Eine solche Verfahrensweise ist unzweckmäßig und erfordert zusätzliche Zeit für die Verwirklichung der Erfindung. Gemäß Figur 6B ist eine Modifikation einer Verwirklichung der Erfindung dargestellt, in welcher ein, Vektor V, V (1) bis V (R) herangezogen wird, um solch eine Aufzeichnungsfunktion auszuführen. Es sei jedoch hierbei festgestellt, daß die auf diese Weise erhöhte Operationsgeschwindigkeit des Systems zusätzliche Kosten verursacht, indem zusätzliche Hardwareelemente namentlich zum Speichern und zum Zugreifen auf die Vektorelemente benötigt werden. Aus diesen Grund kann in Abhängigkeit von den speziellen Systemanforderungen entweder die Firmware gemäß Figur 6A oder 6B vorzuziehen sein.
Die Operation gemäß Figur 6B startet im Schritt 600. Im Block 655 werden die Variablen S (1), S (2) und L ebenso wie der Vektor V auf ihre anfänglichen Werte gesetzt. Hinsichtlich des Vektors V werden alle Elemente des Vektors V auf Null gesetzt. Die Operation schreitet sodann zum Punkt 6d fort sowie zur Raute 610, welche mit der Raute 610 gemäß Figur 6A übereinstimmt. Wenn der Test in der Raute 610 mit nein beantwortet wird, so verzweigt die Operation zur Raute 640, um festzustellen,
609828/0854
ob der folgende Prozeß A ist, was dem verbotenen Prozeß entspricht. Ist dies der Fall, so verzweigt die Operation zu dem Schritt 645, welcher der ja-Antwort auf die Feststell-Frage der Raute 320 gemäß Figur 3 entspricht. Wenn der Test in der Raute 640 mit nein beantwortet wird, so verzweigt die Operation zum Block 650, in welchem L um 1 erhöht wird und S (L + 1) auf 1 reinitialisiert wird. In diesem Punkt verzweigt die Operation zur Raute 665, in welcher der Vektor V herangezogen wird, um eine Wiederholte überprüfung zu vermeiden. Wenn die Vektor-Eingangsstelle S (1) gleich 1 ist, so wurde die zu S (1) gehörende Zeile bereits überprüft. Die Operation verzweigt zum Block 635, in welchem L um 1 erniedrigt wird. Wenn der Test in der Raute 655 ergibt, daß die Eingangsstelle nicht gleich ist, so ist die Zeile noch nicht geprüft worden und die Operation verzweigt zum Punkt 6d. Die Operationen hinsichtlich der Rauten 610, 620 und 625 sowie hinsichtlich der Blöcke 615 und 635 und ferner hinsichtlich des Schrittes 630 sind identisch mit jenen in Figur 6A und werden im folgenden mit einer Ausnahme nicht weiter beschrieben. Wenn der Test in der Raute ergibt, daß L ungleich 1 ist, so wird eine Verzweigung nach dem Block 660 vorgenommen. Im Block 660 wird V (S(I)) auf 1 gesetzt, was einem Vermerk dahingehend entspricht, daß die Zeile S (1) überprüft wurde. Vom Block 650 geht die Operation zum Block 635 über.
Schlußfolgerung
In der vorhergehenden Beschreibung wurde eine detaillierte Erläuterung eines bevorzugten Ausführungsbeispieles zum gemeinsamen Zugriff und zum Schutz von Dateien innerhalb eines Computersysteraes gegeben. Die Offenbarung dieser Anordnung schließt notwendigerweise eine Beschreibung von Komponenten eines speziellen Computersystems der Art ein, in welchem die Prinzipien gemäß der vorliegenden Erfindung mit Vorteil
609828/0
verwendet werden können. Es sei jedoch vermerkt, daß die Prinzipien gemäß der vorliegenden Erfindung auch auf einer Vielzahl anderer Computersysteme und mit einer Vielzahl unterschiedlicher Systemmittel verwirklicht werden können, ohne daß hierbei vom Prinzip der Erfindung abgewichen wird.
60 9 8 28/0854
Anhang
Alternative Ausführungen der Feststell-Operation können in Form eines Rechenprogrammes verwirklicht werden. Im folgenden ist ein PLl-Programm für die Feststell-Operation entsprechend der Firmware aus führung gemäß Figur 6A angegeben:
L = 1;
S (1) = C; s (2) = 1; 6a: if M(s(L), s(L + I)) = 0, then go to 6b; if s(L + 1) - A, then go to 645; L = L + 1; s (L + 1) = 1; go to 6a; 6b: s(L + 1) = s (L + 1) + 1; if s(L + I)-A. >r, then go to 6a; if L= 1, then go to 630; L=L-I; go to 6b;
Nachstehend ist ein PLl-Programm für die Feststell-Operation entsprechend der Firmwareausführung gemäß Figur 6B angegeben:
do χ = 1 to r; v(x) - 0; end;
L = I
s (1) = C;
S(I) = 1; \
go to 6d; 655: if V(S(L)) = 1, then go to 635; 6d: if m(s(L), s(L + I)) = 0, then go to 6e;
L = L + 1; >
609828/0854
S(L + 1) = 1; go to 665; be: s(L + 1) = s (L + 1) + 1; if s(L + 1)Λ >- r, then go to 6d; if L= 1, then go to 630; ν (S(L)) = 1; 635.· L = L + 1; go to 6e;
609828/08B4

Claims (7)

  1. Patentansprüche
    Schutzsystem in einer DV-Anlage zum Verhindern der Überlappung von Prozessen, welche in steuerbarer Weise auf Informations-Systemmittel Zugriff nehmen, gekennzeichnet durch
    eine 1. Einrichtung zur Speicherung von Benutzungstabellen, wobei jede dieser Tabellen einem Systemmittel zugeordnet ist,
    eine 2. Einrichtung zur Speicherung von Beziehungen zwischen den Prosessen, wobei die Beziehungen in dem sequentiellen Zugriff der Prozesse auf die Systemmittel impliziert sind, eine 3. Einrichtung zum Zugriff auf die Benutzungstabellen und zur Bestimmung neuer Beziehungen, die in einem angeforderten Zugriff eines der Systemmittel impliziert sind, eine 4. von der 3. Einrichtung abhängige Einrichtung, die an die zweite Einrichtung angeschlossen ist, zur Feststellung, ob die neuen Beziehungen die Überlappungsregeln verletzen,
    eine 5. von der 4. Einrichtung abhängige Einrichtung zur Freigabe des angeforderten Zugriffs und zur Fortschreibung der ersten und zweiten Einrichtung, falls der angeforderte Zugriff die Überlappungsregeln nicht verletzt und eine 6. von der 4. Einrichtung abhängige Einrichtung zur Sperrung des angeforderten Zugriffs, falls der angeforderte Zugriff die Überlappungsregeln verletzt.
  2. 2. Schutzsystem nach Anspruch 1, dadurch gekennzeichnet , daß die Überlappungsregeln einen angeforderten Zugriff verbieten, wenn die Umkehrung wenigstens einer neuen Beziehung in der zweiten Einrichtung aufgefunden wird.
    6Q9828/08S4
  3. 3. Schutzsystem nach Anspruch 1, dadurch gekennzeichnet , daß die 4. Einrichtung aufweist:
    eine 7. Einrichtung zum Testen einer Beziehungsmatrix zwecks Feststellung, ob die neue Beziehung in ihr auftritt und eine 8. Einrichtung zum rekursiven Testen der Matrix, um festzustellen, ob die Umkehrung oder ihr transitives Äquivalent in der Matrix auftritt.
  4. 4. Schutzsystem nach Anspruch 3, dadurch gekennzeichnet , daß die 8. Einrichtung eine 9. Einrichtung zum Verhindern des wiederholten Testens der gleichen Eingangsstellen der Matrix aufweist.
  5. 5. Schutzsystem nach Anspruch 1, dadurch gekennzeichnet , daß die 6. Einrichtung aufweist:
    eine 10. Einrichtung zur Feststellung, ob der angeforderte Zugriff einem Lese- oder Schreibzyklus zugeordnet ist, eine 11. von der IO. Einrichtung für den Fall abhängige Einrichtung, daß der angeforderte Zugriff einem Lesezyklus zugeordnet ist, zur Neuzuteilung des angeforderten Zugriffs zu einer vorangegangenen Erzeugung des ausgewählten Systemmittels ,
    eine 12. von der 10. Einrichtung für den Fall abhängige Einrichtung, daß der angeforderte Zugriff einem Schreibzyklus zugeordnet ist, zur Verursachung eines Selbstabbruches des Prozesses, der die Zugriffsanforderung verursachte, und jener Prozesse, die von diesem Prozeß abhängen und eine 13. von der 12. Einrichtung abhängige Einrichtung zur Wiederherstellung des Zustandes der DV-Anlage, auf den vor der Ausführung des abgebrochenen Prozesses vorliegenden Zustand.
    609828/0854
  6. 6. Schutzsystem nach Anspruch 1 mit der Möglichkeit der selektiven Freigabe eines angeforderten Zugriffs auf ein ausgewähltes Systemmittel durch einen zugreifenden Prozeß, dadurch gekennzeichnet, daß die Benutzungstabelle der ersten Einrichtung Informationen über vorangegangene Prozesse, die auf das ausgewählte Systemmittel Zugriff genommen haben, sowie über die Art des ausgeführten Zugriffs enthält,
    daß die zweite Einrichtung die Beziehungsmatrix speichert, welche Informationen über die Zugriffsbeziehungen enthält, die in dem sequentiellen Zugriff der Systemmittel durch vorangegangene Prozesse impliziert sind, daß die dritte Einrichtung der Zugriffnahme auf die Benutzungstabelle und der Feststellung neuer Beziehungen dient, wobei die Beziehungen in dem angeforderten Zugriff auf das ausgewählte Systemmittel impliziert sein können, daß die vierte Einrichtung der Zugriffnahme auf die Matrix dient, zwecks Feststellung, ob die neuen Beziehungen oder ihre Umkehrungen direkt oder indirekt in dieser Matrix auftreten ,
    daß die fünfte Einrichtung der Freigabe des Zugriffs auf das ausgewählte Systemmittel durch den zugreifenden Prozeß für den Fall dient, daß die neuen Beziehungen in der Matrix aufgefunden wurden und daß sie die Benutzungstabelle durch Notieren des angeforderten Zugriffs in der Benutzungstabelle fortschreibt,
    daß die sechste Einrichtung den Zugriff auf das ausgewählte Systemmittel durch den zugreifenden Prozeß sperrt und eine Wiederanlaufaktion zur Wiederausrichtung bestimmter, durch die Wiederanlaufentscheidung gekennzeichneter Prozesse für den Fall veranlaßt, daß wenigstens eine der Umkehrungen der neuen Beziehungen in der Matrix gefunden wurden und daß eine weitere Einrichtung den Zugriff auf das ausgewählte Systemmittel durch den zugreifenden Prozeß für den Fall freigibt, daß weder die neuen Beziehungen, noch die Umkehrungen
    609828/0854'
    in der Matrix auftreten und daß die Benutzungstabelle und die Matrix durch Notierung des angeforderten Zugriffs und der neuen Beziehungen fortgeschrieben werden.
  7. 7. Schutzsystem nach Anspruch 1, dadurch gekennzeichnet , daß es eine Zentraleinheit, einen Hauptspeicher mit wahlfreiem Zugriff und einen peripheren Sekundärspeicher aufweist, wobei der Sekundärspeicher das ausgewählte Systemmittel enthält.
    609828/0854
    Leerseite
DE19752557835 1974-12-30 1975-12-22 Schutzsystem in einer dv-anlage Withdrawn DE2557835A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US53762174A 1974-12-30 1974-12-30

Publications (1)

Publication Number Publication Date
DE2557835A1 true DE2557835A1 (de) 1976-07-08

Family

ID=24143422

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752557835 Withdrawn DE2557835A1 (de) 1974-12-30 1975-12-22 Schutzsystem in einer dv-anlage

Country Status (6)

Country Link
JP (1) JPS5941208B2 (de)
AU (1) AU8762475A (de)
DE (1) DE2557835A1 (de)
FR (1) FR2296884A1 (de)
GB (1) GB1518829A (de)
IT (1) IT1051545B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2839866A1 (de) * 1977-09-13 1979-03-22 Fujitsu Ltd System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem

Families Citing this family (2)

* 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
US4096561A (en) * 1976-10-04 1978-06-20 Honeywell Information Systems Inc. Apparatus for the multiple detection of interferences

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2839866A1 (de) * 1977-09-13 1979-03-22 Fujitsu Ltd System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem

Also Published As

Publication number Publication date
IT1051545B (it) 1981-05-20
GB1518829A (en) 1978-07-26
JPS5193137A (de) 1976-08-16
AU8762475A (en) 1977-06-23
FR2296884B1 (de) 1979-09-07
JPS5941208B2 (ja) 1984-10-05
FR2296884A1 (fr) 1976-07-30

Similar Documents

Publication Publication Date Title
DE69731998T2 (de) Informationsverarbeitungsvorrichtung und Verfahren
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE2417795C2 (de) Datenverarbeitungsanlage
DE2714805C2 (de)
DE2720578A1 (de) Rechnersystem mit mehrprogrammbetrieb/mehrprogrammverarbeitung sowie verfahren zum betrieb eines solchen rechnersystems
DE2611598A1 (de) Uebersetzungseinrichtung fuer speicheradressen
DE3048365A1 (de) Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem
DE3732808A1 (de) Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2937354A1 (de) Verfahren und einrichtung zur ueberwachung des gebrauchs eines programmierbaren rechners
DE2722099A1 (de) Abfangeinrichtung fuer ein dv-system
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2517276A1 (de) Datenverarbeitungssystem
DE2744251A1 (de) Mehrprogramm/mehrprozess-computersystem
DE10159901A1 (de) Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher
DE2737353A1 (de) Verfahren zum testen der adressbildung in einem dv-system und vorrichtung zur durchfuehrung des verfahrens
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE19824289A1 (de) Pipelineverarbeitungsmaschine
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE2753650C2 (de) Zeithaltende Einrichtung mit einem Register zum Speichern von Zeitzähldaten
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE2245284A1 (de) Datenverarbeitungsanlage
DE3410497A1 (de) Rechneranordnung

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8130 Withdrawal