DE2839866A1 - System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem - Google Patents

System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem

Info

Publication number
DE2839866A1
DE2839866A1 DE19782839866 DE2839866A DE2839866A1 DE 2839866 A1 DE2839866 A1 DE 2839866A1 DE 19782839866 DE19782839866 DE 19782839866 DE 2839866 A DE2839866 A DE 2839866A DE 2839866 A1 DE2839866 A1 DE 2839866A1
Authority
DE
Germany
Prior art keywords
task
tasks
source
waiting
dipl
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.)
Ceased
Application number
DE19782839866
Other languages
English (en)
Inventor
Ryoichi Kikuchi
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE2839866A1 publication Critical patent/DE2839866A1/de
Ceased 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)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Description

Beschreibung
Die vorliegende Erfindung betrifft ein System zur automatischen Aufhebung eines Totlaufzustandes (sich selbst hemmenden Totzustandes) in einsm Datenverarbeitungssystem, bei dem mehrere Arten von Aufgaben gemeinschaftlich mehrere Quellen benutzen.
Bei einem Datenverarbeitungssystem, speziell einem On-Line-Datenverarbeitungssystem,benutzen mehrere Arten von Aufgaben gemeinschaftlich mehrere (Hilfs-) Quellen (nachfolgend bisweilen "Blöcke" genannt) zum Ausführen der Datenverarbeitung. Wenn bei einem herkömmlichen System eine Aufgabe eine Quelle benutzen soll, wird durch einen herkömmlichen Makrobefehl, wie "LOCK" oder "ENQ" eine Besetzungskennzeichnung für diese eine Quelle festgelegt, und die Verwendung dieser einen Quelle ist für andere Aufgaben gesperrt. In einem solchen Pail kann jedoch aus dem folgenden Grund ein sogenannter Totlauf- oder Selbsthemmzustand verursacht werden. Das heißt, wenn eine Aufgabe X eine Quelle A besetzt und in diesem Zustand die Aufgabe X eine Quelle B besetzen soll, wird die Aufgabe X dann in einen Vartezustand versetzt, wenn die Quelle B durch eine andere Aufgabe Y besetzt ist. Venn andererseits die Aufgabe Y die Quelle B besetzt und in diesem Zustand die Aufgabe Y die Quelle A besetzen soll, wird die Aufgabe Y ebenfalls in einen Vartezustand versetzt. Dieses Phänomen wird "Totlaufzustand" (im Sinn von Selbsthemmzustand) genannt.
9 0 9 8 1 :-■ /10 3 7
Offensichtlich sollte die Programmierung des Datenverarbeitungssystems sorgfältig geplant werden, und die Fehlersuche und Fehlerbeseitigung sollte so ausgeführt werden, daß das Phänomen des Totlaufzustande vermieden wird. Wenn Jedoch die Anzahl der Aufgaben, die parallel verarbeitet werden, ansteigt, kann das Phänomen des Totlaufzustandes nicht vermieden werden, selbst wenn die Programmierung des Datenverarbeitungssystems sorgfältig geplant und die Fehlersuche und Fehlerbeseitigung vollständig durchgeführt ist.
Aufgabe der vorliegenden Erfindung ist, ein System verfügbar zu machen, mit dem ein Totlaufzustand in einem Datenverarbeitungssystem automatisch aufgehoben werden kann, wobei es möglich sein soll, das Problem, das beim Planen des Programmierens verursacht werden kann, außer acht zu lassen.
Die Lösung dieser Aufgabe besteht in einam System der eingangs angegebenen Art, das dadurch gekennzeichnet ist, daß in einer wartende Aufgaben steuernde Tabelle eine Speicherposition vorgesehen ist, die eine Information speichert, die bedeutet, daß sich eine Aufgabe in einem Wartezustand befindet, weil eine Quelle durch eine bestimmte Aufgabe besetzt ist, daß ein Datenpufferteil zur Speicherung von Daten vor deren Modifizierung in ein Eegister vorgesehen ist, der Daten vor deren Modifizierung jedesmal speichert, wenn der Inhalt der Quelle modifiziert wird, daß das System dann, wenn der Wartezustand bezüglich einer
9098 12/103? \ · ...
ersten Aufgabe erzeugt wird, den Wartezustand der anderen Aufgaben entsprechend dem Inhalt des Speicherteils der eine wartende Aufgabe steuernden Tabelle prüft und beurteilt, ob der Wartezustand der anderen Aufgaben auf der Besetzung der Quelle durch die erste Aufgabe beruht oder nicht, und daß das System dann, wenn der Wartesustand der anderen Aufgaben auf der Besetzung der Quelle durch die erste Aufgabe beruht, die Besetzung der Quelle durch die erste Aufgabe aufhebt, die "Verarbeitung der anderen Aufgaben entsprechend dem Inhalt des Datenpufferteils für die Daten vor deren Modifizierung durchführt und als nächstes die Verarbeitung der ersten Aufgabe ausführt.
Im folgenden wird die Erfindung anhand von Ausführungsformen näher erläutert. In der Zeichnung zeigen:
Fig. 1 ein Blockdiagramm zur Darstellung eines Totlaufzustandes oder Tothemmzustandes zwischen zwei Aufgaben;
Fig. 2 ein Blockdiagramm eines Systems, das den Totlaufzustand zwischen zwei Aufgaben aufheben kann;
Fig. 3 ein Blockdiagramm einer erfindungsgemäßen Ausführungsform;
Fig. 4 ein Blockdiagramm eines Systems, das den Totlauf- oder Tothemmzustand zwischen vier Aufgaben aufheben kann;
Fig. 5 ein Blockdiagramm einer anderen erfindungsgemäßen Ausführungsform .
90 9812/1037
Ia Fig. 1 kennzeichnet 1X ein Programm zur Ausführung einer Aufgabe X, 1Y kennzeichnet ein Programm zur Ausführung einer Aufgabe Y, und 2X und 2Γ kennzeichnen Quellen. Zum Zweck der Erläuterung ist angenommen, daß die Aufgabe X zu einer Zeit T. die Quelle 2X durch einen exklusiven Makrobefehl, beispielsweise"ENQ A" besetzt, und daß in diesem Zustand zur Zeit T, die Aufgabe X die Quelle 2Y durch den Makrobefehl "EKQ B" besetzen soll; andererseits ist angenommen, daß die Aufgabe Y die Quelle 2Y zur Zeit Tp durch den Makrobefehl "ENQ B" besetzt, und daß in diesem Zustand zu einer Zeit T^ die Aufgabe Y aufgrund des Makrobefehls "ENQ A" die Quelle 2X besetzen soll. Unter diesen Umständen wird zu der Zeit, zu welcher die Aufgabe'X den Befehl "ERQ B" erzeugt, die Aufgabe X von der Aufgabe Y in einen Vartezastand versetzt, und zu der Zeit, zu welcher die Aufgabe Y den Befehl "ENQ A" erzeugt, wird die Aufgabe Y von der Aufgabe X in einen Wartezustand versetzt. Das heißt, die Aufgaben X und Y werden in einen Totlauf- oder Tothemmzustand versetzt.
Pig. 2 ist ein Diagramm eines Systems, das einen Totlauf zwischen zwei Aufgaben X und Y aufheben kann. In Fig. 2 bezeichnen 1X und 1Y Programme zur Ausführung der Aufgaben X bzw. Y, 3X und 3Y bezeichnen je einen Puffer für Daten vor deren Modifizierung, und 4- bezeichnet eine Tabelle für die Steuerung wartender Aufgaben, In den in Fig. 2 gezeigten Programmen 1X und 1Y besetzt und
909812/1037
liest zur Zeit (T) die Aufgabe X einen Block A; zur Zeit (2) besetzt und liest die Aufgabe Y einen Block C; zur Zeit C$} modifiziert die Aufgabe X den Inhalt des Blocks A; zur Zeit ζ^ besetzt und liest die Aufgabe Y einen Block B; zur Zeit ($) modifiziert die Aufgabe Y den Inhalt des Blocks C; zur Zeit (6) modifiziert die Aufgabe X den Inhalt des Blocks B; zur Zeit (^ soll die Aufgabe X den Block C besetzen, wird jedoch in einen Wartezustand versetzt; zur Zeit (δ) besetzt und liest die Aufgabe Y den Block D; zur Zeit (§) modifiziert die Aufgabe Y den Inhalt des Blocks D und; zur Zeit (ΐθ) soll die Aufgabe Y den Block A besetzen, wird jedoch in einen Wartezustand versetzt.
Bei der geschilderten Verarbeitung wird zur Zeit (Q die Information "Block A ist durch Aufgabe Y besetzt" in die Tabelle 4- zur Steuerung wartender Aufgaben geschrieben; zur Zeit (2) wird die Information "Block C ist von Aufgabe X besetzt" in die Tabelle 4 für die Steuerung wartender Aufgaben geschrieben; zur Zeit (^) werden die Daten des Blocks A vor ihrer Modifizierung im Puffer 3X für Daten vor deren Modifizierung gespeichert; zur Zeit (?) wird die Information "Block B ist durch Aufgabe X besetzt" in die Tabelle 4· für die Steuerung wartender Aufgaben geschrieben; zur Zeit (^ werden die Daten des Blocks C vor ihrer Modifizierung im Puffer 3Y für Daten vor deren Modifizierung gespeichert; zur Zeit ^) werden die Daten des Blocks B vor deren Modifizierung im Puffer 3X
9098127105t
Daten vor deren Modifizierung gespeichert; zur Zeit (7) wird die Information "die Besetzung des Blocks C durch die Aufgabe X wird durch die Aufgabe Y verzögert" in die Tabelle 4- für die Steuerung wartender Aufgaben geschrieben; zur Zeit (^ wird die Information "Block D ist durch Aufgabe Y besetzt" in die Tabelle 4- für die Steuerung wartender Aufgaben geschrieben; zur Zeit (^ werden die Daten des Blocks D vor deren ModiEL zierung im Puffer JY für Daten vor deren Modifizierung gespeichert; und zur Zeit QO} wird die Information "die Besetzung des Blocks A durch die Aufgabe Y wird durch die Aufgabe X verzögert" in die Tabelle 4- für die Steuerung wartender Aufgaben geschrieben. In diesem Zustand wird geprüft, ob der Wartezustand der Aufgabe A ein Totlaufzustand ist oder nicht. Im Fall der Fig. 2 sind die Aufgabe X und die Aufgabe Y im Totlaufzustand. Deshalb werden bei der vorliegenden Erfindung die Blöcke C und D, die von der Aufgabe Y besetzt sind, freigegeben und die Verarbeitungsoperation wird wieder an dem Zeitpunkt festgehalten, zu dem die Aufgabe Y den Block C besetzen soll. Zu dieser Zeit werden die Daten des Blocks D,die zur Zeit (^) modifiziert werden,und die Daten des Blocks C, die zur Zeit (^ modifiziert werden, zu ihren Werten vor der Modifikation zurückgebracht. Die Aufgabe X wird dann aus dem Wartezustand freigelassen, der zur Zeit (7) verursacht worden ist, und dann besetzt die Aufgabe X den Block C und schreibt die Information "der Block C ist von der Aufgabe X besetzt" in die Tabelle für die Steuerung wartender Aufgaben, und die
9 0 9 8 12/103? -> ■ .
—· Q —
Verarbeitung des Blocks C wird ausgeführt. Andererseits wartet die Aufgabe Y auf die Freigabe der Belegung des Blocks C durch die Aufgabe X, und die Verarbeitung des Blocks C durch die Aufgabe Y wird wieder so gehalten, daß der Totlaufzustand aufgehoben wird,
Fig. 3 ist ein Blockdiagramm einer erfindungsgemäßen Ausführungsform. In Fig. 3 bezeichnen 2A, 2B, 2C und 2D Quellen, 3X und 3Y kennzeichnen Puffer für Daten vor deren Modifizierung 5 bezeichnet eine Zentralverarbeitungsanordnung und 6 eine Hauptspeicheranordnung; 7 bezeichnet eine Schlüsseltabelle, 8-1, 8-2 ... bezeichnen je eine Halteschlangentabelle und °/X und 9Y bezeichnen je eine Registriertabelle für Aufgaben. Die Schlüsseltabelle 7 und die (Tabellen für die Steuerung wartender Aufgaben in Fig. 3 entsprechen der Tabelle für die Steuerung wartender Aufgaben in Fig. 2. In Fig. 3 sind Schlüssel KA, KB ... vorgesehen, die den Quellen 2A, 2B beziehungsweise 2C ... entsprechen und für die Prüfung verwendet werden, ob
die Quellen besetzt sind oder nicht, wenn die Quellen spezifiziert sind. Unter der Annahme, daß die Aufgabe X und die Aufgabe Y programmiert sind, wie es in Fig. 2 gezeigt ist, wird die erfindungsgemäße Datenverarbeitung folgendermaßen ausgeführt:
909812/1037
- TO -
(1) Venn die Aufgabe X die Quelle 2A zur Zeit (?) besetzt, wird die "die Aufgabe X" kennzeichnende Information in eine Adressenposition geschrieben, die dem Schlüssel EA der Schlüsseltabelle 7 entspricht, in Übereinstimmung damit, daß der Schlüssel KA der Quelle 2A entspricht.
(2) Wenn die Aufgabe X die Quelle 2C zur Zeit (g) besetzt, wird die "die Aufgabe Y" kennzeichnende Information in eine Adressenposition geschrieben, die dem Schlüssel EC der Schlüsseltabelle 7 entspricht, in einer Weise, die dem Prozeß ähnlich ist, der oben unter (1) beschrieben ist.
(3) Wenn die Aufgabe X den Inhalt der Quelle 2A zur Zeit ^) modifiziert, werden die noch nicht modifizierten Daten der Quelle 2A im Puffer 3X für noch nicht modifizierte Daten in eine Adresse geschrieben und dort gespeichert, beispielsweise eine erste Adresse.
(4-) Wenn die Aufgabe X die Quelle 2B zur Zeit (5) besetzt, wird die "die Aufgabe X" bezeichnende Information in eine Adressenposition geschrieben, die dem Schlüssel KB der Tabelle entspricht, in einer Weise, die dem Prozeß ähnlich ist, der oben unter (1) beschrieben ist.
(5) Wenn die Aufgabe X den Inhalt der Quelle 2C zur Zeit (^) modifiziert, werden die noch nicht modifizierten Daten der Quelle 20. in den Speicher 3Y für noch nicht modifi-
7 909812/1037 \ ■ -
zierte Daten in eine Adresse geschrieben und dort gespeichert, beispielsweise eine erste Adresse.
(6) Wenn die Aufgabe X den Inhalt der Quelle 2B zur Zeit (£) modifiziert, werden die noch nicht modifizierten Daten der Quelle 2B in den Speicher 3X für noch nicht modifizierte Daten in eine Adresse geschrieben und gespeichert, beispielsweise eine zweite Adresse.
(7) Wenn die Aufgabe X die Quelle 2C zur Zeit (^) besetzt, wird die Information "die Quelle 2C ist besetzt" im Schlüssel KC gespeichert. Deshalb befindet sich die Information hinsichtlich "die" Aufgabe X" in einer der Halteschlangentabellen 8, wie Tabelle 8-1, und eine Kopfadresseninformation A1 in der HalteSchlangentabelle 8 wird in eine Adressenposition geschrieben, die dem Schlüssel KC in der Schlüsseltabelle 7 entspricht.
(8) Zu dieser Zeit wird die Information "die Quelle 2C ist von der Aufgabe Y besetzt" erkannt und gleichzeitig wird entsprechend dem Inhalt des Schlüssels KC in der Schlüsseltabelle der Inhalt eines Zeigers für haltende Aufgaben in der Registriertabelle für Aufgaben 9 geprüft. Der Inhalt des Zeigers für haltende Aufgaben zeigt an, daß die Aufgabe Y durch eine bestimmte Aufgabe in Wartestellung gehalten, das heißt verzögert wird, wenn die Aufgabe Y sich im Wartezustand befindet.
9 0 9 8 12/1037 \ · ,.
(9) Bei diesem Beispiel befindet sich die Aufgabe Y zur Zeit (7) nicht im Wartezustand, und deshalb wird vermerkt, daß sich die Aufgabe X im Wartezustand befindet. Sie befindet sich jedoch nicht in einem Totlaufzustand. Deshalb wird in der Begistriertabelle für Aufgaben 9X die Information der Aufgabe Y in den Zeiger für haltende Aufgaben geschrieben, um anzuzeigen, daß sich die Aufgabe X wegen der Aufgabe Y im Wartezustand befindet. Ferner wird in die fiegistriertabelle für Aufgaben 9Y der Inhalt der Aufgabe X in den Zeiger für wartende Aufgaben geschrieben, um anzuzeigen, daß die Aufgabe Y die Aufgabe X im Wartezustand hält.
(10) Wenn die Aufgabe Y die Quelle 2C zur Zeit ^) besetzt, wird die "die Aufgabe Y" anzeigende Information in einen Adressenteil entsprechend dem Schlüssel ED der Schlüsseltabelle 7 geschrieben.
(11) Wenn die Aufgabe Y den Inhalt der Quelle 2D zur Zeit (^) modifiziert, werden die Daten der Quelle 2D vor deren Modifizierung in die nächste Adresse des Puffers 3Y für noch nicht modifizierte Daten geschrieben und gespeichert, um die noch nicht modifizierten Daten der Quellen zu speichern.
(12) Wenn die Aufgabe Y die Quelle 2A zur Zeit besetzen soll, wird durch den Schlüssel KA vermerkt, daß die Quelle 2A bereits von der Aufgabe X besetzt ist. Aufgrund dieser Tatsache wird der Inhalt der ßegistriertabelle für Auf-
8/g 909812/1037 -\ .
gaben 9X geprüft, so daß der Inhalt des Zeigers für haltende Aufgaben, das heißt "Aufgabe Y" ausgelesen wird, und es ist erkannt, daß sich die Aufgabe Y zur Zeit (io) im Wartezustand und außerdem im Totlaufzustand befindet. Dann werden die anderen Registriertabellen für Aufgaben der Reihe nach geprüft, indem der Inhalt der Zeiger für haltende Aufgaben in einer Registriertabelle für Aufgaben 9X geprüft wird, und wenn "die Aufgabe Y" in eine der Registriertabellen für Aufgaben geschrieben ist, wird erkannt, daß die Aufgaben X und Y sich im Totlaufoder Selbsthemmzustand befinden.
(13) Wenn der Totlauf- oder Selbsthemmzustand erkannt ist, werden die Inhalte der Quellen 2D und 20 entsprechend dem Inhalt des Puffers 3Y für noch nicht modifizierte Daten erneut gespeichert und die Besetzung der Quellen 20 und 2D durch die Aufgabe Y wird aufgehoben. Das heißt, die Schlüssel KC und KD in der Schlüsseltabelle werden gelöscht und die entsprechende Information in der Schlüsseltabelle 7 ist freigegeben. Als nächstes wird der Inhalt der WarteSchlangentabelle 8-1 in die Adressenposition entsprechend dem Schlüssel KC in der Schlüsseltabelle 7 geschrieben und die Quelle 20 wird von der Aufgabe X besetzt.
(14) Zu dieser Zeit wird der Inhalt des Puffers 3Y für noch nicht modifizierte Daten gelöscht, und die Inhalte
9 0 9 8 12/1037 \ · ,.
der Registriertabellen für Aufgaben 9X und 9Y werden modifiziert.
Wie zuvor erwähnt wird erfindungsgemäß dann, wenn ein Totlaufzustand verursacht worden ist, dieser automatisch festgestellt, und die Besetzung der Quelle durch die den Totlaufzustand verursachende Aufgabe wird aufgehoben. Dann wird die Datenverarbeitung durch die Aufgaben wieder gehalten durch den Inhalt des Speicherteils für die noch nicht modifizierten Daten der Quelle. Deshalb kann das Verarbeitungsprogramm geplant werden, ohne eine exklusive Steuerung oder das Totlaufphänomen in Betracht zu ziehen.
Fig. 4- ist ein Diagramm eines Systems, das einen Totlauf oder eine Selbsthemmung zwischen vier Aufgaben X, Y, Z und oC aufheben kann, die gemeinschaftlich Quellen A, B und C benutzen. Wenn in (A) der Fig. 4 die Aufgabe oC die Quelle A oder B zur Zeit Tr7 besetzen soll, wird, ein Totlauf- oder Selbsthemmzustand verursacht. Wenn die Aufgabe cC beispielsweise die Quelle A besetzen soll und ein Wartezustand verursacht wird, kann die Feststellung, ob der Totiaufzustand verursacht wird oder nicht, durch folgende Methode ausgeführt werden. Das heißt, die Besetzung und das Warten werden wiederholt, wie es in (A) der Fig.4 gezeigt ist, und die Tabelle für wartende Aufgaben wird gebildet, wie es in B der Fig. 4 gezeigt ist.
9 0 9 8 12/1037 \ ■ -_
Nach (A) der Pig. 4 wird die Aufgabe X von der Aufgabe Y in Wartestellung gehalten, und die Aufgabe Y hält die Aufgabe X wartend; die Aufgabe Y hält die Aufgabe Z in Wartestellung; die Aufgabe Y wird von der AufgabeOC in Wartestellung gehalten und die Aufgabe oC hält die Aufgabe Y in Wartestellung. Wenn in diesem Zustand die Aufgabe ei durch die Aufgabe X in Wartestellung gehalten wird, wird in der linken vertikalen Spalte von (B) der Pig. 4 beurteilt, ob die Aufgabe X sich im Wartezustand befindet oder nicht. Wenn sich die Aufgabe X im Wartezustand befindet, wird in der linken Spalte von (B) der Fig. 4 in Richtung des Pfeils beurteilt, ob die Aufgabe cC die Aufgabe X in Wartestellung hält oder nicht. Wenn die Aufgabe X durch die Aufgabe oC in Wartestellung gehalten wird, befinden sich die Aufgabe X und die Aufgabe CC in einem Totlauf zustand.
Pig. 5 ist ein Diagramm, das die automatische Aufhebung des Totlaufzustandes zwischen der Aufgabe X und der Aufgabe Y in (A) der Pig. 4 zeigt. In Pig. 5 sind Aufgabensteuervorrichtungen 11X, 11Y, 11Z, 11 OC, Quellensteuervorrichtungen 12X, 12Y, 12Z, 12CC, und Trenn-Warte-Steuertabellen (IWCT) 1JX, 13Y, 13Z, I30C für mehrere der Aufgaben X, Y, Z und CC vorgesehen. Die Aufgabensteuervorrichtungen dienen zur Steuerung der Ausführung der Aufgabe, und die Quellensteuervorrichtungen dienen zur Steuerung des Blocks der durch die Aufgabe belegten Quelle.
909812/1037
Die Trenn-Varte-Steuertabellen (IVCT) steuern alle Vartezustände der Aufgaben. Die Trenn-Varte-Steuertabellen umfassen wenigstens einen Köpfteilzeiger, einen Endteilzeiger, einen Hachster-Teil-Zeiger und einen Elternzeiger. Der Kopfteilzeiger kennzeichnet eine Eingangsadresse der Trenn-Warte-Steuertabelle der Aufgabe, die vor irgendeiner anderen Aufgabe durch diejenige Aufgabe, welche der Trenn-Varte-Steuertabelle entspricht, in den Wartezustand versetzt worden war. Der Endteilzeiger kennzeichnet eine Eingangsadresse der Trenn-Varte-Steuertabelle derjenigen Aufgabe, die von der Aufgabe, die der Trenn-Varte-Steuertabelle entspricht, zum letzten Zeitpunkt in den Vartezustand versetzt worden war. Der Nächster-Teil-Zeiger kennzeichnet eine Eingangsadresse der Trenn-Varte-Steuerschaltung dex-jenigen Aufgabe, welche durch dieselbe haltende Aufgabe nach der Aufgabe, die der Trenn-Steuertabelle entspricht, wenn diese Aufgabe in den Vartezustand versetzt ist, in den Vartezustand versetzt worden war. Der Elternzeiger oder Stammzeiger kennzeichnet eine Eingangsadresse der Trenn-Steuertabelle der haltenden Aufgabe, während die Aufgabe, die der Trenn-Varte-Steuertabelle entspricht, im Vartezustand gehalten wird.
Fig. 5 zeigt unter Bezugnahme auf Fig. 4 die Art der Einstellung der Zustände der Trenn-Varte-Steuertabelle der vier Aufgaben X, Y, Z,oC mit ablaufender Zeit. Die Inhalte einer jeden Trenn-Varte-Steuertabelle werden im Anfangszustand zum Zustand
9 0 9 8 12/1037 \ · ,.
"O11 gelöscht.
Wenn die Aufgabe X den Block B zur Zeit T, besetzen soll, wird die Aufgabe X in den Wartezustand versetzt, da der Block B bereits durch die Aufgabe Y belegt ist. Deshalb wird die Information "Y" in den Stammzeiger der Trenn-Warte-Steuertabelle entsprechend der Aufgabe Y geschrieben. Gleichzeitig werden die Inhalte des Kopfteilzeigers und des Endteilzeigers der Trenn-Warte-Steuertabelle entsprechend der Aufgabe Y ausgetauscht. Da zu dieser Zeit lediglich die Aufgabe Y die Aufgabe X in Wartestellung hält, wird dieselbe Information "X" in den Kopfteilzeiger und in den Endteilzeiger geschrieben.
Wenn die Aufgabe Z dem Block B zur Zeit T^ besetzen soll, wird die Aufgabe Z wie die Aufgabe X in den Wartezustand versetzt, da der Block B bereits von der Aufgabe Y belegt ist. Deshalb wird die Information "Y" in den Stammzeiger der Trennsteuertabelle entsprechend der Aufgabe Z geschrieben. Da die Aufgabe Y zwei Aufgaben, das heißt, die Aufgabe X und die Aufgabe Z in Wartestellung hält, wird der Inhalt des Endteilzeigers der Trenn-Steuertabelle entsprechend der Aufgabe X von "X" in "Z" geändert, und ferner wird die Information "Z" in den Nächster-Teil-Zeiger der Trenn-Warte-Steuertabelle entsprechend der Aufgabe X geschrieben.
909812/1037 \ · *.
Wenn die Aufgabe Y den Block C zur Zeit Tg belegen soll, wird die Aufgabe Y in den Wartezustand versetzt, weil der Block C durch die Aufgabe oC belegt ist. Deshg.lb wird die Information "oC" in den Stammzeiger der Trenn-Warte-Steuertabeile entsprechend der Aufgabe Y geschrieben, und zur selben Zeit werden die Inhalte des Kopfteilzeigers und des Endteilzeigers entsprechend der Aufgäbe oC geändert. Da lediglich die Aufgabe oC die Aufgabe Y in Wartestellung hält, wird dieselbe Information 11Y" in den Kopfteilzeiger und in den Endteilzeiger I30C geschrieben.
Wenn eine Aufgabe einen Block belegen soll, werden die Quellensteuervorrichtungen aller anderen Aufgaben geprüft, um festzustellen, ob der Block durch eine andere Aufgabe belegt ist oder nicht. Wenn der Block durch eine andere Aufgabe belegt ist, werden die Stammzeiger der Trenn-Steuertabellen der anderen Aufgaben geprüft; um festzustellen, ob der Totlaufzustand erzeugt worden ist oder nicht. Lediglich wenn festgestellt wird, daß der Totlaufzustand nicht erzeugt worden ist, wird der Prozeß des Änderns des Inhalts der Trenn-Warte-Steuertabelle zu den Zeiten T,, T^, Tg, wie zuvor erwähnt, ausgeführt.
Als nächstes wird der Prozeß des Beurteilens des Totlaufzustands dann erläutert, wenn die Aufgabe CC den Block zur Zeit Tr7 belegen soll. Wenn die Aufgabe oC den Block A zur Zeit T1-, belegen soll, prüft die Aufgabe cC , ob der Block A durch eine andere Aufgabe belegt ist oder nicht, indem die Quellensteuer-
909812/1037 -. · ^
- -19-
vorrichtungen aller anderen Aufgaben geprüft werden. Wenn der Block A zur Zeit T^ bereits durch die Aufgabe X belegt ist, ist der Block A bereits in der Quellensteuervorrichtung entsprechend der Aufgabe X registriert. Daher erkennt die Aufgabe OC, daß der Block A von der Aufgabe X belegt ist,*und dann prüft die Aufgabe oC den Stammzeiger der Trenn-Steuertabelle entsprechend der Aufgabe X. Venn die Tatsache, daß die Information "Y" in den Stammzeiger der Trenn-Steuertabelle der Aufgabe X geschrieben ist, erkannt wird, wird der Stammzeiger der Trenn-Steuertabelle entsprechend der Aufgabe T geprüft. Wenn die Information "oC" in den Stammzeiger der Trenn-Steuertabelle der Aufgabe Y geschrieben ist, erkennt die Aufgabe OC , daß dann., wenn die Aufgabe OC den Block A belegt, ein Totlaufzustand entstehen wird. Nachdem1der Totlaufzustand erkannt ist, gibt die Aufgabe OC den Block C frei, der durch die Aufgabe CC belegt worden war. Zur gleichen Zeit erkennt die Aufgabe CC, daß die Aufgabe CC die Aufgabe Y in Wartestellung hält, und zwar durch die Inhalte der Kopfteilzeiger und der Endteilzeiger, und die Verarbeitung wird zur Aufgabe Y übertragen. Daher wird die Erzeugung des Totlaufzustandes verhindert, die Aufgabe Y belegt den Block C nach der Zeit Tg, die in der Zeichnung nicht dargestellt ist, und die Verarbeitung der Aufgabe Y ist vollendet. Wenn die Verarbeitung der Aufgabe Y beendet ist, gibt die Aufgabe Y die Belegung der Blöcke B und C auf. Deshalb ist die Verarbeitung der Aufgabe X und der Aufgabe CC möglich. Wie
909812/1037 \ - .
erwähnt, kann der Totlaufzustand verhindert werden.
Die Schlüsseltabelle 7 unci- die Halteschlangentabelle 9 (Fig· 3) entsprechen den Quellensteuervorrichtungen 12X, 12Y, 12Z, 120£ (I"ig. 5)· Der Zeiger für haltende Aufgaben in der Registriertabelle für Aufgaben 9X und 9Y (Fig. 3) entspricht dem Stammzeiger. Und der Nächster-Teil-Zeiger (Fig.5) und die Zeiger für wartende Aufgaben in der Registriertabelle für Aufgaben 92 und 9Y (Fig· 3) entsprechen dem Eopfteilaeiger und dem Endteilzeiger (Fig.5)·
909812/.1037
Leerseite

Claims (2)

  1. BLUMBACH . WESER . BERGEN · KRAMER ZWIRNER · HIRSCH · BREHM
    PATENTANWÄLTE IN MÜNCHEN UND WIESBADEN 2839866
    ■· Patentconsult Radeckestraße 43 8000 Mönchen 60 Telefon (089)883603/883604 Telex 05-212313 Telegramme Patentconsult Patentconsult Sonnenberger Straße 43 6200 Wiesbaden Telefon (06121)562943/561998 Telex 04-186237 Telegramme Patentconsult
    Fujitsu Limited 78/8755
    1015» Kamikodanaka, Nakahara-ku,
    Kawasaki, Japan
    System zur automatischen Aufhebung eines Totlaufzustandes in einem Datenverarbeitungssystem
    Pat entansprüche
    System zur automatischen Aufhebung eines Totlaufzustandes in einem Datenverarbeitungssystem, bei dem mehrere Arten von Aufgaben gemeinschaftlich mehrere Quellen benutzen, dadurch gekennzeichnet, daß in einer wartende Aufgaben steuernden Tabelle eine Speicherposition vorgesehen ist, die eine Information speichert, die bedeutet, daß sich eine Aufgabe in einem Wartezustand befindet, weil eine Quelle durch eine bestimmte Aufgabe besetzt ist,
    München: R. Kramer Dipl.-Ing. . W. Weser Dipl.-Phys. Dr. rar. nat. · P. Hirsch Dipl.-Ing. . H. P. Brehm Dipl.-Chem. Dr. phil. nat. Wiesbaden: P.G. Blumbach Dipl.-Ing. · P. Bergen Dipl.-Ing. Dr. jur. · G. Zwirner Dipl.-Ing. Dlpl.-W.-Ing.
    909812/1037 \ ■ .
    ORIGINAL INSPECTED
    daß ein Datenpufferteil zur Speicherung von Daten vor deren Modifizierung vorgesehen ist, der Daten vor deren Modifizierung jedesmal speichert, wenn der Inhalt der Quelle modifiziert wird,
    daß das System dann, wenn der Vartezustand "bezüglich einer ersten Aufgabe erzeugt wird, den Vartezustand der anderen Aufgaben entsprechend dem Inhalt des Speicherteils der eine wartende Aufgabe steuernde Tabelle prüft und beurteilt, ob der Wartezustand der anderen Aufgaben auf der Besetzung der Quelle durch die erste Aufgabe beruht oder nicht, und daß das System dann, wenn der Wartezustand der anderen Aufgaben auf der Besetzung der Quelle durch die erste Aufgabe beruht, die Besetzung der Quelle durch die erste Aufgabe aufhebt, die Verarbeitung der anderen Aufgaben entsprechend dem Inhalt des Datenpufferteils für die Daten vor deren Modifizierung durchführt und als nächstes die Verarbeitung der ersten Aufgabe ausführt.
  2. 2. System nach Anspruch 1, dadurch gekennzeichnet, daß die wartende Aufgaben steuernde Tabelle für jede Aufgabe vorgesehen ist und einen Zeiger für die haltende Aufgabe aufweist, der die erforderliche Quelle erkennt und die Aufgabe spezifiziert, durch welche die erste Aufgabe in Wartestellung gehalten wird, ferner einen Zeiger für die wartende Aufgabe, der diejenige Aufgabe steuert, welche von der ersten Aufgabe in Wartestellung gehalten wird.
    9098 12/1037 \ ■ ..
DE19782839866 1977-09-13 1978-09-13 System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem Ceased DE2839866A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11023877A JPS5443644A (en) 1977-09-13 1977-09-13 Processing system for deadlock automatic release at exclusive control time

Publications (1)

Publication Number Publication Date
DE2839866A1 true DE2839866A1 (de) 1979-03-22

Family

ID=14530598

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782839866 Ceased DE2839866A1 (de) 1977-09-13 1978-09-13 System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem

Country Status (8)

Country Link
US (1) US4403285A (de)
JP (1) JPS5443644A (de)
AU (1) AU521252B2 (de)
CA (1) CA1200911A (de)
DE (1) DE2839866A1 (de)
ES (1) ES473313A1 (de)
FR (1) FR2402903A1 (de)
GB (1) GB2004395B (de)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525778A (en) * 1982-05-25 1985-06-25 Massachusetts Computer Corporation Computer memory control
US4494193A (en) * 1982-09-30 1985-01-15 At&T Bell Laboratories Deadlock detection and resolution scheme
US4587609A (en) * 1983-07-01 1986-05-06 Honeywell Information Systems Inc. Lockout operation among asynchronous accessers of a shared computer system resource
JPS6019345U (ja) * 1983-07-20 1985-02-09 株式会社クボタ 穀粒タンクの穀粒搬出用操作構造
JPS60205634A (ja) * 1984-03-29 1985-10-17 Nec Corp デツドロツク発生時の遅延再処理方式
US4584640A (en) * 1984-06-27 1986-04-22 Motorola, Inc. Method and apparatus for a compare and swap instruction
JPS61233849A (ja) * 1985-04-08 1986-10-18 Hitachi Ltd デ−タベ−ス排他制御方法
DE3537115A1 (de) * 1985-10-18 1987-05-27 Standard Elektrik Lorenz Ag Verfahren zum betreiben einer einrichtung mit zwei voneinander unabhaengigen befehlseingabestellen und nach diesem verfahren arbeitende einrichtung
US4829425A (en) * 1986-10-21 1989-05-09 Intel Corporation Memory-based interagent communication mechanism
US4853849A (en) * 1986-12-17 1989-08-01 Intel Corporation Multi-tasking register set mapping system which changes a register set pointer block bit during access instruction
JP2572136B2 (ja) * 1988-03-14 1997-01-16 ユニシス コーポレーシヨン 多重処理データシステムにおけるロック制御方法
CA2027934C (en) * 1989-12-22 1994-06-21 Cherie C. Barnes Accelerated deadlock detection in congested data transactions
US5583992A (en) * 1990-09-14 1996-12-10 Kabushiki Kaisha Toshiba Computer network system for detecting global deadlock
JPH04308961A (ja) * 1991-01-18 1992-10-30 Ncr Corp 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
US5317737A (en) * 1991-07-29 1994-05-31 Ncr Corporation Method and apparatus for controlling a re-entrant synchronization lock tenure in a multiprocessor system
JPH07191944A (ja) * 1991-09-11 1995-07-28 Internatl Business Mach Corp <Ibm> 多重プロセッサによる多数の資源への命令におけるデッドロックを防止するためのシステムおよび方法
US5355455A (en) * 1991-11-19 1994-10-11 International Business Machines Corporation Method and apparatus for avoiding deadlock in a computer system with two or more protocol-controlled buses interconnected by a bus adaptor
EP0618532B1 (de) * 1993-03-30 2000-01-26 Fujitsu Limited Endlosschleife-Erkennungsgerät
US6239794B1 (en) 1994-08-31 2001-05-29 E Guide, Inc. Method and system for simultaneously displaying a television program and information about the program
GB2286067A (en) * 1993-12-23 1995-08-02 Motorola Inc A processor system
US8793738B2 (en) 1994-05-04 2014-07-29 Starsight Telecast Incorporated Television system with downloadable features
US6769128B1 (en) 1995-06-07 2004-07-27 United Video Properties, Inc. Electronic television program guide schedule system and method with data feed access
US6323911B1 (en) 1995-10-02 2001-11-27 Starsight Telecast, Inc. System and method for using television schedule information
US8850477B2 (en) 1995-10-02 2014-09-30 Starsight Telecast, Inc. Systems and methods for linking television viewers with advertisers and broadcasters
US6469753B1 (en) 1996-05-03 2002-10-22 Starsight Telecast, Inc. Information system
US8635649B2 (en) 1996-12-19 2014-01-21 Gemstar Development Corporation System and method for modifying advertisement responsive to EPG information
US6687906B1 (en) 1996-12-19 2004-02-03 Index Systems, Inc. EPG with advertising inserts
AU733993B2 (en) 1997-07-21 2001-05-31 Rovi Guides, Inc. Systems and methods for displaying and recording control interfaces
US6604240B2 (en) 1997-10-06 2003-08-05 United Video Properties, Inc. Interactive television program guide system with operator showcase
US7185355B1 (en) 1998-03-04 2007-02-27 United Video Properties, Inc. Program guide system with preference profiles
US6564379B1 (en) 1998-04-30 2003-05-13 United Video Properties, Inc. Program guide system with flip and browse advertisements
US20020095676A1 (en) 1998-05-15 2002-07-18 Robert A. Knee Interactive television program guide system for determining user values for demographic categories
CN1867068A (zh) 1998-07-14 2006-11-22 联合视频制品公司 交互式电视节目导视系统及其方法
US6898762B2 (en) 1998-08-21 2005-05-24 United Video Properties, Inc. Client-server electronic program guide
US6212543B1 (en) * 1998-12-10 2001-04-03 Intel Corporation Asymmetric write-only message queuing architecture
JP2000307681A (ja) * 1999-04-16 2000-11-02 Fujitsu Ltd 中継装置およびフレームトレース方法
BR0011956A (pt) 1999-06-28 2002-05-14 Index Systems Inc Sistema e método para utilização de banco de dados de epg para modificação de anúncios
AU5775900A (en) 1999-06-29 2001-01-31 United Video Properties, Inc. Method and system for a video-on-demand-related interactive display within an interactive television application
BR0109665A (pt) 2000-03-31 2003-02-04 United Video Properties Inc Sistema e método para anúncios ligados a metadados
EP1213650A3 (de) * 2000-08-21 2006-08-30 Texas Instruments France Auf aktueller Aufgabe basierte Prioritätsarbitrierung und Speicherverwaltungseinheit
US7984468B2 (en) 2003-11-06 2011-07-19 United Video Properties, Inc. Systems and methods for providing program suggestions in an interactive television program guide
US7769734B2 (en) * 2004-07-26 2010-08-03 International Business Machines Corporation Managing long-lived resource locks in a multi-system mail infrastructure
US8640166B1 (en) 2005-05-06 2014-01-28 Rovi Guides, Inc. Systems and methods for content surfing
US8095951B1 (en) 2005-05-06 2012-01-10 Rovi Guides, Inc. Systems and methods for providing a scan
US9113107B2 (en) 2005-11-08 2015-08-18 Rovi Guides, Inc. Interactive advertising and program promotion in an interactive television system
US20070156521A1 (en) 2005-12-29 2007-07-05 United Video Properties, Inc. Systems and methods for commerce in media program related merchandise
US7739280B2 (en) 2006-03-06 2010-06-15 Veveo, Inc. Methods and systems for selecting and presenting content based on user preference information extracted from an aggregate preference signature
US8316394B2 (en) 2006-03-24 2012-11-20 United Video Properties, Inc. Interactive media guidance application with intelligent navigation and display features
US8281341B2 (en) 2006-07-31 2012-10-02 Rovi Guides, Inc. Systems and methods for providing media guidance planners
US8832742B2 (en) 2006-10-06 2014-09-09 United Video Properties, Inc. Systems and methods for acquiring, categorizing and delivering media in interactive media guidance applications
US7801888B2 (en) 2007-03-09 2010-09-21 Microsoft Corporation Media content search results ranked by popularity
US8407737B1 (en) 2007-07-11 2013-03-26 Rovi Guides, Inc. Systems and methods for providing a scan transport bar
US10063934B2 (en) 2008-11-25 2018-08-28 Rovi Technologies Corporation Reducing unicast session duration with restart TV
US9166714B2 (en) 2009-09-11 2015-10-20 Veveo, Inc. Method of and system for presenting enriched video viewing analytics
US8359616B2 (en) 2009-09-30 2013-01-22 United Video Properties, Inc. Systems and methods for automatically generating advertisements using a media guidance application
WO2012094564A1 (en) 2011-01-06 2012-07-12 Veveo, Inc. Methods of and systems for content search based on environment sampling
US9323585B2 (en) * 2011-05-12 2016-04-26 Nec Corporation Deadlock preventing apparatus, deadlock preventing method, and program
US9848276B2 (en) 2013-03-11 2017-12-19 Rovi Guides, Inc. Systems and methods for auto-configuring a user equipment device with content consumption material

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2410879A1 (de) * 1973-03-30 1974-10-03 Ibm Einrichtung zur festlaufvorhersage in einer elektronischen datenverarbeitungsanlage
DE2557835A1 (de) * 1974-12-30 1976-07-08 Honeywell Inf Systems Schutzsystem in einer dv-anlage

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3639912A (en) * 1969-04-16 1972-02-01 Honeywell Inf Systems Management control subsystem for multiprogrammed data processing system
US3889237A (en) * 1973-11-16 1975-06-10 Sperry Rand Corp Common storage controller for dual processor system
FR2253428A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2410879A1 (de) * 1973-03-30 1974-10-03 Ibm Einrichtung zur festlaufvorhersage in einer elektronischen datenverarbeitungsanlage
DE2557835A1 (de) * 1974-12-30 1976-07-08 Honeywell Inf Systems Schutzsystem in einer dv-anlage

Also Published As

Publication number Publication date
ES473313A1 (es) 1979-04-16
FR2402903A1 (fr) 1979-04-06
JPS574939B2 (de) 1982-01-28
US4403285A (en) 1983-09-06
AU521252B2 (en) 1982-03-25
CA1200911A (en) 1986-02-18
JPS5443644A (en) 1979-04-06
GB2004395A (en) 1979-03-28
AU3978578A (en) 1980-03-20
FR2402903B1 (de) 1982-02-26
GB2004395B (en) 1982-04-07

Similar Documents

Publication Publication Date Title
DE2839866A1 (de) System zur automatischen aufhebung eines totlaufzustandes in einem datenverarbeitungssystem
DE3300261C2 (de)
DE2045052A1 (de) System zum Identifizieren von Mehraufgabensituationen und zum Steuern der Durchführung dieser Aufgaben
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE2303596A1 (de) Datenverarbeitungsanordnung
DE2222855A1 (de) Schienentransportsystem fuer Selektionsinformation und Daten
DE1424762B2 (de) Datenverarbeitungsanlage
DE3642324A1 (de) Multiprozessoranlage mit prozessor-zugriffssteuerung
DE3727017C2 (de)
DE1549437A1 (de) Datenverarbeitendes System aus mehreren miteinander verbundenen Datenverarbeitungsanlagen
DE4207158A1 (de) Speicher-zugriffssteuerung
DE2064383C3 (de) Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen
DE3123382A1 (de) &#34;verfahren und einrichtung zum uebertragen von daten zwischen zentraleinheiten oder prozessoren von mehrprozessorsystemen&#34;
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
EP0062141A1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE3311297A1 (de) Numerische steuerung
DE2034423C3 (de) Verfahren zur Fehlersuche in einem programmgesteuerten Vermittlungssystem
DE2037811A1 (de) Anlage zur Verarbeitung von numerischen Informationen
DE1808678B2 (de) Verfahren und schaltungsanordnung fuer elektronische daten waehlvermittlungsanlagen mit einem zentralen speicher
EP2090948A1 (de) Automatisierungssystem und Verfahren zum Betrieb eines solchen Automatisierungssystems
DE10143756A1 (de) Synchronisationsverfahren und -vorrichtung
DE3016952C2 (de) Schaltungsanordnung zum Erweitern des Adressbereichs eines rechnergesteuerten Vermittlungssystems
DE2402875A1 (de) Steuersystem, insbesondere fuer verriegelungseinrichtungen fuer den eisenbahnbetrieb
DE2059341C2 (de) Elektronische Datenverarbeitungsanlage
DE2245737A1 (de) Verfahren zum betreiben einer programmgesteuerten datenverarbeitungsanlage

Legal Events

Date Code Title Description
OAP Request for examination filed
OD Request for examination
8131 Rejection