DE2152604A1 - Datenverarbeitungssystem fuer Multiprogrammbetrieb - Google Patents

Datenverarbeitungssystem fuer Multiprogrammbetrieb

Info

Publication number
DE2152604A1
DE2152604A1 DE19712152604 DE2152604A DE2152604A1 DE 2152604 A1 DE2152604 A1 DE 2152604A1 DE 19712152604 DE19712152604 DE 19712152604 DE 2152604 A DE2152604 A DE 2152604A DE 2152604 A1 DE2152604 A1 DE 2152604A1
Authority
DE
Germany
Prior art keywords
task
time
schedule
entry
tasks
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.)
Pending
Application number
DE19712152604
Other languages
English (en)
Inventor
Doherty Walter J
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2152604A1 publication Critical patent/DE2152604A1/de
Pending 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4825Interrupt from clock, e.g. time of day

Description

  • Datenverarbeitungssystem für Multiprograminbetrieb Die Erfindung bezieht sich auf ein Datenverarbeitungssystem für Multiprogrammbetrieb mit Steuervorrichtungen zur Auswahl und Zeitplanung der Ausführung einer Anzahl von Bearbeitungsaufgaben, die dem System von außen zugeführt, in Listenform gespeichert und ineinandergeschachtelt verarbeitet werden, wozu das System die verfügbaren Hilfsmittel, wie zentrale Verarbeitungseinheit, Hauptspeicher und externe Anschlußeinheiten, auf Zeitteilungsbasis in Anspruch nimmt.
  • Bei bekannten Datenverarbeitungssystemen mit Multiprogrammbetrieb werden für die zur Verarbeitung vorgesehenen Aufgaben Einträge in Listen oder Warteschlangen gemacht, die an einem der Systemsteuerung zugänglichen Ort gespeichert sind. Die Systemsteuerung teilt den Aufgaben in variblen oder festen Zeitabschnitten Verarbeitungszeit der zentralen Verarbeitungseinheit zu. Diese Zuteilung erfolgt entweder entsprechend der Reihenfolge des Eingangs der Aufgaben in den Listen oder Warteschlangen oder nach einer anderen vorgegebenen Rangordnung (z. B. '9IBM System /360 Time Sharing System - Resident Supervisor", IBM Form Y28-2012-3, 1969 und "IBM System /360 Time Sharing System - System Control Blocks", IBM Form Y28-2011, 1969).
  • Es kommt bei diesen Systemen vor, daß verarbeitungsbereite Aufgaben längere Zeit auf die Zuteilung von Verarbeitungszeit warten müssen. Dies tritt insbesondere störend in Erscheinung ,wenn das System im Echtzeitbetrieb arbeitet und eine größere Anzahl Benutzeranschlüsse zu bedienen hat. Eine kurze Antwortzeit des Systems auf eine Benutzeranfrage ist dabei ein besonders erstrebenswertes Qualitätskriterium. Eine kurze Antwortzeit setzt jedoch voraus, daß die Hilfsmittel des Systems, wie zentrale Verarbeitungseinheit, Hauptspeicher, Kanäle und externe Anschlußeinheiten, inklusive externe Speicher, so wirksam wie möglich ausgenutzt werden. Hierzu gehört, daß diejenigen Aufgaben, die eine effektive Ausnutzung der Hilfsmittel gefährden, zugunsten anderer Aufgaben zurückzustellen sind. Dieses Ziel ist besonders schwer zu erreichen, wenn das Datenverarbeitungssystem mit virtuellem Speicher arbeitet, d. h. eine automatische Übertragung von Datenblöcken bzw. Datenseiten zwischen dem Hauptspeicher und den externen Speichern vornimmt und dem Benutzer einen Adressenbereich zur Verfügung stellt, der viel größer als der tatsächliche Adressenbereich des Hauptspeichers ist, so daß er in seinem Programm keine Rücksicht mehr auf reale Speichergrößen nehmen muß. In solchen Systemen können in ungünstigen Fällen zahlreiche Seitenaustauschoperationen zwischen Haupt- und Externspeicher vorgenommen werden, ohne daß die dabei in den Hauptspeicher gebrachten Informationen zufriedenstellend ausgenutzt werden. Durch derartige Fälle haben in einem im Multiprogrammbetrieb arbeitenden System eine Benachteilung anderer Verarbeitungsaufgaben zur Folge, die weniger Seitenaustauschoperationen erfordern. Hierdurch wird die Effektivität und der Datendurchsatz des Systems reduziert.
  • Aufgabe der Erfindung ist es, Maßnahmen anzugeben, durch die eine höhere Systemeffektivität im Multiprogrammbetrieb und kürzere Antwortzeiten bei Echtzeitanfragen ermöglicht werden. Gemäß der Erfindung wird dies dadurch erreicht, daß jeder Aufgabe eine ihren jeweiligen Zustand bezüglich der Verarbeitungsbereitschaft, Startzeit und Ausführung charakterisierende, gespeicherte Tabelle zugeordnet ist, die eine Hinweisadresse zu einer bestimmten Eintragsebene einer gespeicherten Zeitplan-Parameter-Tafel enthält, daß die Zeitplan-Parameter-Tafel in Ebenen (Zeilen) geordnete Einträge über Grenzwerte für Inanspruchnahmezeit, Speicherraum und Hilfsmittel für die Aufgabenausführung, über Prioritäts-, Speicherraum- und Zeitwerte, die bei der Einordnung der Aufgabe in den Ausführungszeitplan benutzt werden, und über auf andere Eintragsebenen der Zeitplan-Parameter-Tafel gerichtete Hinweisadressen aufweist, die die laufende Hinweisadresse in der die Aufgabe charakterisierenden Tabelle ersetzt, wenn eine der angegebenen Ausführungsbegrenzungen überschritten wird oder Ausnahmebedingungen auftreten, und daß die Operationen der Steuervorrichtungen zur Auswahl und Zeitplanung der Verarbeitungsaufgaben durch den Inhalt der Zeitplan-Parameter-Tafel gesteuert werden.
  • Weitere vorteilhafte Ausgestaltungen der Erfindung sind aus den Ansprüchen ersichtlich. Nachfolgend ist ein Ausführungsbeispiel der Erfindung an Hand von Zeichnungen erläutert. Es zeigen: Fig. 1 die Zusammengehörigkeit der Fign. 1A bis lD, Fign. 1A bis 1D ein Schrittfolgediagramm für die interne Zeitplansteurung zur Auswahl und zur Ablaufplanung von Verarbeitungsaufgaben in einem im Multiprogrammbetrieb arbeitenden Datenverarbeitungssystem, Fign. 2A und 2B in der Zusammengehörigkeit gemäß Fig. 2 ein Schrittfolgediagramm der Dispatchersteuerung des vorgenannten Datenverarbeitungssystems, Fign. 3A und 3B in der Zusammengehörigkeit gemäß Fig. 3 ein Schrittfolgediagramm der Aufgabenunterbrechungssteuerung im vorgenannten Datenverarbeitungssystem, Fig. 4 ein Schrittfolgediagramm für die Eingangskriterienprüfung im vorgenannten Datenverarbeitungsystem, Fig. 5 die Zusammengehörigkeit der Fign. 5A-bis 51, Fign. 5A bis 51 ein Schrittfolgediagramm für die Zeitplanerneuerungssteuerung im vorgenannten Datenverarbeitungssystem und Fign. 6A und 6B in der Zusammengehörigkeit gemäß Fig. 6 ein bevorzugtes Beispiel einer Zeitplantafel, wie sie gemäß der Erfindung im vorgenannten Datenverarbeitungssystem benutzt wird.
  • Das erfindungsgemäße Verfahren führt eine dynamische Steuerung des Speichers einer zentralen Datenverarbeitungseinheit durch im Rahmen der Aufgabenerfüllung eines auf Zeitteilungsbasis arbeitenden Rechensystems. Einträge in der Arbeitsplan-Tabelle eines solchen Rechensystems sind so gestaltet, daß sie die Grenzen von Speicherraum und Verarbeitungszeit für jede aus zuführende Verarbeitungsaufgabe angeben. Diese Grenzen werden auf der Basis einer sog. "ausgeglichenen Kernzeit" vorgegeben, die im folgenden definiert wird. Da jede Verarbeitungsaufgabe während ihrer Ausführung auf eine dieser Grenzen stößt, ist eine Entscheidung zu treffen für den nächsten Satz Speicherstellen und über die Zeitzuteilungsgrenzen für die betreffende Verarbeitungsaufgabe. In Verbindung mit diesen Grenzen wird von der Annahme ausgegangen, daß jeder Verarbeitungsaufgabe ein Arbeitssatz" und eine Arbeitssatzgröße" zugewiesen ist, die sich dynamisch ändern. Die Arbeitssatzgröße und die Richtung der Änderung (Verminderung oder Erhöhung) kann in engen Grenzen vorherbestimmt werden durch Ermittlung, welche Grenzen in bezug auf Speicherraum oder Zeit zuerst erhalten wurden.
  • Es ist somit durch das erfindungsgemäße Verfahren möglich, eine genaue Uberwachung des Speicherplatzes durchzuführen, der für die Ausführung einer Verarbeitungsaufgabe benötigt wird, die Änderungsrichtung in den Anforderungen für jede Verarbeitungsaufgabe vorherzusagen und eine dementsprechende Speicherplatzzuweisung für eine effektive Ausführung vorzunehmen.
  • Es ist im Rahmen der Erfindung auch vorgesehen, daß länger laufende Befehle mit zunehmender Arbeitslast des Systems unterbrochen werden, um dadurch sicherzustellen, daß sehr schnelle Befehle den Benutzer mit einer schnellen Antwort versehen können.
  • Die gefalteten und die ungefalteten Formen eines Programms Mit der ungefalteten Form eines Programms ist die Form gemeint, die ein Programm einnimmt, wenn ein ausreichend großer einheitlicher Speicherraum für die Aufnahme des Programms und dessen Daten verfügbar ist. Bei der gefalteten Form eines Programms wurden die Adressen desselben ungeordnet, d. h. gefaltet, damit das Programm und seine Daten in einen kleineren tatsächlich verfügharen Speicherraum passen. Bei bekannten, auf Zeitteilungsbasis arbeitenden Rechnersystemen findet man ungefaltete Formen der Programme und Daten z. B. in einem virtuellen Speicher.
  • Wenn das Programm ausgeführt wird, werden Teile desselben sowie die zugehörigen Daten automatisch in den Hauptspeicher zum Zwecke der Ausführung gebracht. Der letztere Vorgang resultiert in einer automatischen Faltung des Programms, wenn der zur Ausführung benötigte-Speicherraum größer ist als der zur Aufnahme verfügbare Hauptspeicherraum. Das Programm wird auf einen so kleinen Speicherraum zusammengefaltet wie möglich, ohne daß hierbei eine unerwünschte Verzögerung hervorgerufen wird. Ein derartig hoher Grad von Faltung ist von Bedeutung, da er die gleichzeitige Einbringung einer Vielzahl von Programmen in den Speicher gestattet und damit die Zahl der ineinander verschachtelt ablaufenden Programme erhöht. In einem solchen System ist es natürlich Voraussetzung, daß geeignete Schaltungen für den Datenblockaustausch zwischen dem Hauptspeicher und den peripheren Speichern vorhanden sind.
  • Aufruflage des Programms Die Leistungsfähigkeit eines Programms in einem mit automatischem Datenblockaustausch bzw. Datenseitenaustausch arbeitenden System steht in direkter Beziehung zu seiner Seitenanforderungscharakteristik. Ein Programm mit schlechtem Verhalten nimmt die zentrale Verarbeitungseinheit wenig in Anspruch, bevor eine Bezugnahme über den virtuellen Adreßraum zu einem nicht im Speicher vorhandenen Datenblock gemacht wird, und verbringt deshalb einen guten Teil seiner Zeit im Wartezustand. Ein Programm mit gutem Verhalten macht häufig von den im Hauptspeicher verfügbaren Datenblöcken bzw. -seiten Gebrauch und bewirkt dadurch eine effektive Ausnutzung der zentralen Verarbeitungseinheit, bevor eine Bezugsnahme zu einem Datenblock erfolgt, der von einem externen Speicher in den Hauptspeicher gebracht werden muß. Diese Eigenschaft kann als wAufruflage des Programms" bezeichnet werden. Sie beeinflußt den Grad der Faltung, dem das Programm bei einem minimalen Einfluß auf seine Leistungsfähigkeit ausgesetzt werden kann.
  • Der Arbeitssatz eines Programms Der obenerwähnte Arbeitssatz eines Programms ist der Satz von Datenblöcken, der durch das Programm während eines bestimmten Intervalles der virtuellen Aus führungs zeit aufgerufen wird. Da der virtuelle Zeitintervall sich ändert, kann sich auch der Arbeitssatz ändern oder konstant bleiben in Abhängigkeit von der Aufruflage des Programms. Es ist erwünscht, zu versuchen, daß ein Programm in einer solchen Weise gefaltet werden kann, daß der Arbeitssatz des Programms für einen gegebenen Zeitintervall vollständig in den Speicher hineinpaßt und kein weiterer Speicherraum innerhalb dieses Intervalls vom Programm benötigt wird.
  • Die Arbeitssatzgröße eines Programms Die Arbeitssatzgröße eines Programms ist die Zahl der Daten blöcke, die in einem Arbeitssatz enthalten ist. Es ist deshalb durchaus möglich, daß sich der Arbeitssatz ändert und die Arbeitssatzgröße trotzdem unverändert bleibt. Es ist erwünscht, eine Rückfaltung des Programms zu versuchen, wennimmer sich sein Arbeitssatz ändert. Dies ist schwer zu erreichen, da es im voraus nicht bekannt ist, wenn sich der Arbeitssatz ändert. In einem Datenverarbeitungssystem mit automatischem Seitenaustausch ist eine Änderung der Arbeitssatzgröße leicht feststellbar durch Erhöhung oder Verringerung der Austauschanforderungen eines Programms. Es ist deshalb möglich, Arbeitssatzänderungen zumindest dann festzustellen, wenn sich die Arbeitssatzgröße ändert.
  • Die Beziehung zwischen der Bezugslage, dem Arbeitssatz und der Arbeitssatzgröße eines Programms kann durch folgendes Beispiel illustriert werden: Während einer einzelnen Kommunikation zwischen einem Benutzer an einem Anschlußgerät und einem auf Zeitteilungsbasis betriebenen Datenverarbeitungssystem können verschiedene Programme für den betreffenden Benutzer ausgeführt werden. In der virtuellen Ausführungszeit, welche diese Kommunikation überspannt, kann sich die Arbeitssatzgröße ändern oder auch konstant bleiben, während sich der Arbeitssatz fast stets mehrmals ändert. Für diejenigen Programme, die eine gute Aufruf lage haben, wird die Arbeitssatzgröße während irgendeinem zugeteilten Zeitabschnitt üblicherweise kleiner sein als die Arbeitssatzgröße für das gesamte Kommunikationszeitintervall.
  • Auch die maximale Arbeitssatzgröße wird für alle Zeitabschnitte wahrscheinlich stets kleiner sein als die Arbeitssatzgröße für das gesamte Kommunikationszeitintervall. Bei Programmen, die eine schlechte Aufruflage haben, kann die Arbeitssatzgröße für jeden Zeitabschnitt sich häufig der Arbeitssatzgröße für das gesamte Kommunikationszeitintervall annähern.
  • Ausgeglichene Kernzeit Programme mit einer schlechten Aufruflage und einer umfangreichen Arbeitssatzgröße würde die Zahl der im Multiprogrammbetrieb ablaufenden Programme erheblich reduzieren, wenn es ihnen gestattet würde, für unerwünscht lange Zeitperioden im Hauptspeicher zu verbleiben. Um daher die Zahl der im Multiprogrammbetrieb laufenden Programme zu erhöhen und damit auch die Ansprechbarkeit und den Datendurchsatz zu verbessern, wird das Prinzip der ausgeglichenen Kernzeit angewendet. Dies ist ein Planungsprinzip, welches davon ausgeht, daß die Größe eines Zeitabschnitts im Rahmen der virtuellen Ausführungszeit der zentralen Verarbeitungseinheit umgekehrt proportional der Arbeitssatzgröße ist. In der Praxis bedeutet dies, daß Programme mit einer kleinen Arbeitssatzgröße (beispielsweise etwa acht Datenseiten oder weniger) keine Beachtung hinsichtlich ihrer Aufruflage erfordern.
  • Die Erfindung kann bei Time-Sharing Datenverarbeitungssystem (auf Zeitteilungsbasis arbeitendes Datenverarbeitungssystem) verwendet werden, wie beispielsweise das IBM System /360 Time Sharing System, das über Vorrichtungen zur Auswahl und Ausführungsplanung der einzellen Verarbeitungsaufgaben verfügt, die durch ein Uberwachungsprogramm gesteuert werden. Diese Vorrichtungen sind beispielsweise in der Veröffentlichung "IBM System /360 Time Sharing System -Resident Supervisor", 1969, IBM Form Y28-2012-3, beschrieben.
  • Die Fign. 1 bis 5 zeigen Ablaufdiagramme für die Auswahl der Verarbeitungsaufgaben gemäß dem in der vorgenannten Veröffentlichung beschriebenen System. In diesem Zusammenhange wird auch auf die Systemtabelle SYS, die Verarbeitungsaufgaben-Stätus-Indextabelle TSI, die erweiterte Verarbeitungsaufgaben-Status-Indextabelle XTSI und die Ablaufplan-Tabelle STE dieses Systems Bezug genommen. Die genannten Tabellen sind insbesondere beschrieben und dargestellt in der Veröffentlichung "System /360 Time Sharing System - System Control Blocks", IBM Form Y28-2011.
  • In dem in den Zeichnungen dargestellten Time Sharing System konkurrieren die verschiedenen Verarbeitungsaufgaben der Benutzer untereinander, um entsprechende Verarbeitungszeit der zentralen Verarbeitungseinheit zu erhalten. Eine Vorrichtung zur Auswahl und zur Ablaufplanung der Verarbeitungsaufgaben steuert die Reihenfolge, in welche die Verarbeitungsaufgaben Maschinenzeit der zentralen Verarbeitungseinheit zugeteilt erhalten, sowie die Länge der Maschinenzeit, die zur Ausführung einer jeden Verarbeitungsaufgabe benötigt wird.
  • Jede Verarbeitungsaufgabe, die in das System gebracht wird, ist mit einem Satz Zeitplanangaben versehen, die durch Einträge in einer Zeitplantabelle dargestellt sind. Diese Angaben werden durch die Ablaufsteuerung benutzt, um eine Liste von Verarbeitungsaufgaben zu bilden, die bereit zur Ausführung sind; diese Liste wird "aktive Aufgabenliste" genannt.
  • Die aktive Aufgabenliste ist unterteilt in die Liste der annehmbaren Eintragungen und in die Liste der verarbeitbaren Eintragungen. Aufgaben, die bereit zur Ausführung sind, werden in die Liste der annehmbaren Eintragungen aufgenommen, bevor sie zur Liste der verarbeitbaren Eintragungen gebracht werden. In der Liste der annehmbaren Eintragungen sind die Aufgaben nach einer internen Priorität geordnet, die durch ein Feld in der Zeitplantafel bestimmt wird. Eintragungen mit der gleichen internen Priorität werden geordnet nach ihrer geplanten Startzeit, die sich aus einem Zeitwert ergibt, der errechnet wird, wenn eine Aufgabe in die annehmbare Liste aufgenommen wird. Diese Berechnung nimmt Bezug auf einen Hauptzeitgeber, der festlegt, ob die Ausführung einer Aufgabe vor oder hinter dem Zeitplan liegt.
  • Wenn bestimmt worden ist, daß eine Aufgabe von der annehmbaren Liste übertragen werden soll, wird die höchste Priorität hinter dem Zeitplan ausgewahlt, d. h., diejenige Aufgabe, deren geplante Startzeit kleiner als die vom Hauptzeitgeber angegebene Zeit ist. Diese Aufgabe wird daraufhin in die verarbeitbare Liste gebracht, wenn sie die Bedingungen einer verschiedene Eintrittskriterien prüfenden Routine erfüllt.
  • Aufgaben in der verarbeitbaren Liste sind entsprechend ihrem Status geordnet als ausführungsgebundenoder eingabe/ausgabegebunden". Diejenigen Aufgaben, bei denen umfangreiche Seitenaustauschforderungen existieren, wie z. B. die eingabe/ausgabegebundenen, werden zuerst für die Ausführung abgefertigt. Wenn eine Aufgabe von der verarbeitbaren Liste ausgewählt wird zur Steuerung der zentralen Verarbeitungseinheit, prüft der Dispatcher zuerst durch eine Aufgabenunterbrechungssteuerung, ob wirksame Unterbrechungen für die betreffende Aufgabe anhängig sind. Wenn eine Unterbrechung anhängig ist, tritt im Rahmen der Aufgabenüberwachung eine Vorrichtung zur Steuerung der Unterbrechung in Tätigkeit. Der Dispatcher prüft auch, ob eine Sofortunterbrechung für die betreffende Aufgabe notwendig ist. Ist dies der Fall, wird die Unterbrechung wirksam gemacht, noch bevor die Aufgabe zur Ausführung abgefertigt wird.
  • Wenn einmal eine Aufgabe zur Ausführung abgefertigt worden ist, wird ihre Ausführung bis zum Ende des Zeitgeberintervalls gestattet. Dies kann das normale Ende des zugeteilten Zeitabschnittes oder ein vorzeitig erzwungenes Ende des zugeteilten Zeitabschnittes sein.
  • Beim normalen Ende des Zeitabschnittes wird ein neuer Satz von Zeitplan-Parametern der Aufgabe zugeordnet, wie sie durch das Feld "Zeitabschnitt-Ende-Stufe" (TEND) in der Zeitplantafel angegeben sind. Die Aufgabe wird außerdem geprüft, um festzulegen, ob sie einer erneuten Abfertigung bedarf. Wenn sie die nächste der abzufertigenden Aufgaben ist, wird ihr ein Zeitabschnitt zugeteilt, und sie wird in der verarbeitbaren Liste gelassen. Wenn sie dagegen keine sofortige erneute Abfertigung verlangt, wird sie zur annehmbaren Liste zurückgebracht, ihre Startzeit im Zeit-bzw. Ablaufplan wird erneut berechnet, und sie wird innerhalb der Liste auf den ihr zugemessenen Platz gebracht.
  • Es sind Unterroutinen vorgesehen, die auf eine Anforderung nach einem Dienstprogramm oder einem Systemprogramm eine vorzeitige Beendigung des Zeitabschnittes (TSEND) erzwingen und die Anforderung einer Aufgabe zur Prüfung der Erledigung eines gegebenen Vorfalles (TWAIT und AWAIT) ausführen. Durch das AWAIT-Unterprogramm wird nach der Erledigung eines Vorfalles eine Rückkehr zur betreffenden Aufgabe veranlaßt. Wenn der Vorfall noch nicht erledigt ist, wird die Aufgabe in den Verzögerungszustand versetzt und eine Warten-Ausdehnung (AWAIT) gestartet, bevor das Zeitabschnitt-Ende (TSEND) für die Aufgabe erzwungen worden ist. Im Falle von TSEND, TWAIT oder AWAIT wird nach Beendigung der Warteperioden jeweils die Aufgabe vollständig von der aktiven Liste entfernt und auf eine weitere Liste gebracht, die die Liste der nicht aktiven Aufgaben darstellt und ebenfalls von der Zeitplan-Steuervorrichtung unterhalten wird. Eine echte Zeitunterbrechung wird für eine TSEND-Aufgabe erzeugt, um ein Zeitabschnitt-Ende zu erzwingen. Die betreffende Aufgabe verbleibt daraufhin in der nicht aktiven Liste, bis eine Unterbrechung auftritt. Zu dieser Zeit wird sie zur annehmbaren Liste zurückgebracht, und es wird erneut eine Zeitplan-Startzeit errechnet.
  • In den Wartesituationen AWAIT und TWAIT wird eine neue Zeitplantafel-Ebene der Aufgabe zugeordnet, wie es in den AWAIT- und TWAIT-Ebene-Feldern der Zeitplantafel angegeben ist. Der neue Satz von Zeitplan-Parametern steuert die Bewegung der Aufgabe durch die annehmbare Liste zur verarbeitbaren Liste, wenn AWAIT-oder TWAIT-Unterbrechungen auftreten.
  • Die Zeitplantafel enthält außerdem weitere Felder, die spezielle Alternativsätze von Zeitplan-Parametern angeben, welche bei einem Zeitabschnitt-Ende einer Aufgabe zugeordnet werden. Es handelt sich dabei um folgende Angaben: 1. Die zuzuordnende Ebene, wenn eine Aufgabe die maximale Zahl von Seiten gelesen hat, die zu lesen für jeden Zeitabschnitt erlaubt ist.
  • 2. Die zu benutzende Ebene, wenn die Aufgabe eine Verblockung enthält und das Kennzeichen für einen zu kleinen Kern sich im Ein-Zustand befindet. Dieses Kennzeichen liefert eine Anzeige dafür, daß nicht genügend Hauptspeicherraum zur Verfügung steht, um die erwarteten Speicheranforderungen des Satzes von Aufgaben im Hauptspeicher zu erfüllen.
  • 3. Die Ebene für eine Aufgabe, die eine Verblockung enthält, wenn das Kennzeichen für den zu kleinen Kern im Aus-Zustand ist.
  • 4. Die Ebene, die verwendet wird, wenn eine Aufgabe auf eine Verblockung wartet.
  • 5. Vier Voreinstellebenen, von denen jede einen Teil eines Bereiches von Seitenaustauschoperationen angibt, die für eine Aufgabe während eines Zeitabschnittes zulässig sind.
  • Im Fall, daß mehr als eine der Situationen auftritt, welche dazu führen kann, daß eine Aufgabe einer neuen Zeitplantafel-Eintragsebene zuzuordnen ist, wird eine Vorrangordnung der verschiedenen Situationen hergestellt, um die Auswahl einer Situation für die Festlegung der nächsten Ebene zu gestatten. Die Voreinstellebenen haben die höchste Priorität. In absteigender Reihenfolge der Prioritäten folgen die Situationen A-Warten und T-Warten, zu kleiner Kern/Verkettung halten, Verkettung halten, auf Verkettung warten, Uberschreitung der maximalen Seitenanzahl und Zeitabschnitt-Ende.
  • Die Routinen, welche eine Aufgabenauswahl und eine Zeitplanung bewirken, sind die folgenden: Der interne Zeitplaner (Fig. 1). Er empfängt eine Ansteuerung vom Warteschlangenabtaster Q. (Der Q-Abtaster hat die Funktion, die Warteschlangeneinträge in der Abtasttabelle zu lokalisieren.
  • Er gibt die Steuerung an die ihm zugeordneten Verarbeitungseinheiten oder an den internen Zeitplaner ab, wenn keine Arbeit mehr vorliegt oder ausgeführt werden kann. Die Abtasttabelle ist eine im Hauptspeicher befindliche, dem Warteschlangenabtaster zugeordnete Steuertabelle, die Routinen für Warteschlangeneintragungen, Warteschlangenaustragungen, Einstellen von Unterdrücken-Kennzeichen und allgemeines Verschieben von Warteschlangen-Einträgen enthält.) Wenn gemäß dem Stand der Abtasttabelle keine weitere Arbeit zu tun ist, hält der interne Zeitplaner die Reihenfolge der Aufgaben auf der verarbeitbaren Liste aufrecht.
  • Das Eintragskriterium-Unterprogramm, das eine Bestimmung durchführt, ob eine Aufgabe von der annehmbaren Liste in die verarbeitbare Liste übertragen werden kann.
  • Das Zeitplan-Unterprograinm, das die Aufgaben von der verarbeitbaren Liste zur annehmbaren Liste oder zur nicht aktiven Liste überträgt und umgekehrt auch Aufgaben von der nicht aktiven Liste zur annehmbaren Liste überträgt sowie die Zeitplan-Startzeiten (SST) für die Aufgaben berechnet. Diese Routine, welche erfindungsgemäße Verfahrensschritte enthält, wird nachfolgend im Detail beschrieben.
  • Das Abfertigungs-Unterprogramm, welches eine Aufgabe für die Zuteilung von Verarbeitungszeit der zentralen Verarbeitungseinheit auswählt und die Steuerung für eine Aufgabenunterbrechung anruft, um eine Abfrage nach anhängigen Aufgabenunterbrechungen durchzuführen und dafür zu sorgen, daß diese vom Aufgabenüberwacher empfangen werden, bevor die betreffende Aufgabe abgefertigt wird.
  • Nachfolgend werden die wesentlichen Schritte des Verfahrensablaufes beschrieben, der dem tabellengesteuerten Zeitplaner zugrundeliegt.
  • Interner Zeitplaner (Fig. 1) Die Fig. 1 zeigt an Hand eines Ablaufdiagrammes die wesentlichen Verfahrensschritte des internen Zeitplaners. Der interne Zeitplaner dient als eine Koppelstelle zwischen der Warteschlangenabtastung des Time Sharing Systems und dem Dispatcher (Fig. 2).
  • Die Funktion des internen Zeitplaners besteht darin, Aufgaben aus den annehmbaren Aufgaben auszuwählen und zur Liste der verarbeitbaren Aufgaben zu übertragen sowie die Reihenfolge der Aufgaben in der Liste der bearbeitbaren Aufgaben entsprechend deren relativen Status als "blockgebunden" oder "Eingabe/Ausgabe-gebunden" aufrechtzuerhalten.
  • Der interne Zeitplaner wird durch den Warteschlangenabtaster in Tätigkeit gesetzt, wenn keine ausführbare Arbeit in der Abtasttabelle enthalten ist. In dieser Verbindung arbeitet der Warteschlangenabtaster als eine zentrale Abtastvorrichtung, welche die Reihenfolge festlegt, in der unabhängigen Verarbeitungseinheiten die Steuerung zur Ausführung der durch die alhgemeinen Warteschlangeneinträge in den Warteschlangen des Systems spezifizierten Arbeit gegeben wird.
  • Innerhalb der Operation des internen Zeitplaners wird mit einer Uberwachungsprogramm-Aufruf-Unterbrechung (SVC) begonnen, um einen Speicherzugriff für eine allgemeine Warteschlangeneintragung (GQE) zu erhalten, damit ein Zeitabschnitt-Ende erzwungen oder ein Seitensteuerblock GQE/PCP erhalten wird. Der interne Zeitplaner veranlaßt den Start einer Warteschlangeneingabe-Subroutine GQE, um einen allgemeinen Warteschlangeneintrag GQE in die Warteschlange für die Benutzerspeicherzuteilung und in die Warteschlange für die ZeitgeberUnterbrechung-Verarbeitungseinheit vorzunehmen. Der interne Zeitplaner startet also ein Eingangskriterien-Unterprogramm, um festzulegen, ob die Aufgabe von der annehmbaren Liste zur verarbeitbaren Liste übertragen werden kann.
  • Der Ausgang des internen Zeitplaners führt zum Warteschlangenabtaster und macht diesen wirksam, wenn für eine Aufgabe ein Zeitabschnitt-Ende erzwungen wird oder wenn die erste erweiterte Aufgabenstatus-Indexseite (XTSI) für eine Aufgabe gelesen werden soll, die zur bearbeitbaren Liste übertragen wurde. Der interne Zeitplaner macht den Dispatcher wirksam, wenn keine Arbeit durch die Abtasttabelle angegeben wird. Er startet außerdem einen Aufrufer, wenn er am Ende eines Zeitabschnittes in Form einer Zeitplan-Subroutine aufgerufen wird. In diesem Fall bringt der interne Zeitplaner die Adresse der nächsten Aufgabe, die der Eingangskriterien-Subroutine zugeführt würde, in ein geeignetes Register des Datenverarbeitungssystems zurück.
  • Aus Fig. 1A ist ersichtlich, daß der Warteschlangenabtaster den internen Zeitplaner bei Unterbrechungen startet, wenn von der Abtasttabelle keine ausführbare Arbeit angegeben wird. Nach seinem Start setzt der interne Zeitplaner die Abfertigungsalgorithmus-Verriegelung SYSTSILK in den Ein-Zustand. Danach wird das Systemtabellenfeld SYSCTP geprüft, das die Hinweisadresse auf die laufende Aufgabe enthält. Wenn das Systemtabellenfeld nicht im Null-Zustand ist, bezeichnet es eine TID-Aufgabe ID durch ein erstes Halbwort und eine Zeitplantafel-Eingangsebene durch ein zweites Halbwort. Im Fall, daß das Resultat der Abfrageoperation "nein" ist, d. h. das Systemtabellenfeld ist nicht Null, wird die aktive Liste abgetastet nach einer Aufgabe, die mit TID spezifiziert ist. Wenn eine derartige Aufgabe gefunden wird und sie in der bearbeitbaren Liste steht, also nicht eine inaktive Aufgabe ist, dann wird ihre Zeitplantafel-Ebene STE geändert in den Tabellenstatusindex TSI, und zwar in der Weise, wie es durch das zweite Halbwort im Systemtabellenfeld SYSCTP angegeben ist. Wie oben erwähnt, enthält dieses Halbwort die Hinweisadresse auf die laufende Aufgabe.
  • Wenn festgestellt wird, daß die Aufgabe in der annehmbaren Liste steht, wird ihre Zeitplantafel-Ebene STE geändert, und die Eingangskriterien-Subroutine wird aufgerufen, um zu bestimmen, ob die Aufgabe zu der bearbeitbaren Liste hinzugefügt werden kann.
  • Kann dies nicht geschehen, geht die Steuerung zum Schritt 3 über (Fig. 1B), um sicherzustellen, daß die Aufgabe die erste Aufgabe ist, die zur bearbeitbaren Liste übertragen wird. Wenn die Aufgabe akzeptiert wird, erfolgt eine Rückstellung von SYSCTP (Hinweisadresse auf die laufende Aufgabe im Systemtabellenfeld) zu 0, wonach der Schritt 5 zur Wirkung kommt. Wenn die Hinweisadresse SYSCTP null ist, werden die folgenden Schritte ausgeführt.
  • In Verbindung mit Schritt 2 (Fig. 1B) wird das interne Zeitplaner-ohne-Arbeit-Kennzeichen (SYSNWK) geprüft. Wenn sich dieses Kennzeichen im Aus-Zustand befindet, wird das vom Hauptzeitgeber MC gelieferte Zeitsignal mit der Startzeit der Aufgabe verglichen, die den geringsten Vorsprung gegenüber dem Zeitplan aufweist und die im letzten Durchgang durch den internen Zeitplaner gefunden wurde. Wenn diese Aufgabe gegenwärtig hinter dem Zeitplan liegt, wird die Anzeige SYSLSST auf 0 gesetzt, und die annehmbare Liste wird von oben an abgetastet. Im andern Falle beginnt die Abtastung mit dem Aufgabenstatusindex-neu SYSNTSI.
  • Während dieser Abtastung bis zum Ende der annehmbaren Liste wird die letzte geplante Aufgabenstartzeit SYSLSST auf den neuesten Stand gebracht, wenn sich dies als notwendig erweist.
  • Wenn eine Aufgabe gefunden wird, die hinter dem Zeitplan liegt, wird eine Prüfung durchgeführt, ob diese Aufgabe sich im Wanderung-Status befindet (Anzeige TSIMG = 1). Wenn dies nicht der Fall ist, wird die Aufgabe der Eingangskriterienprüfung unterzogen. Wenn als Resultat der Prüfung der Eingangskriterien die Aufgabe zurückgewiesen wird, wird der Aufgabenstatusindex-neu SYSNTSI entsprechend dem Aufgabenstatusindex TSI der zurückgewiesenen Aufgabe eingestellt und die Steuerung geht zu Schritt 3 über. Wenn die Aufgabe andererseits akzeptiert wird, folgt als nächstes der Schritt 5.
  • Der Schritt 3 enthält folgende Operationen. Wenn das Eingangskriterium-Unterprogramm eine annehmbare Aufgabe zurückweist, die durch die laufende Aufgaben-Hinweisadresse SYSCTP spezifiziert ist oder eine hinter dem Zeitplan liegende Aufgabe ist, wird die verarbeitbare Liste durchsucht, um eine nicht verkettete Aufgabe im Verzögerungs- oder Bereit-Status zu finden, deren Bevorrechtigt-Kennzeichen innerhalb der Zeitplantabelle STE im Ein-Zustand steht. Wenn eine derartige Aufgabe gefunden wird, wird ein Zeitabschnitt-Ende für diese Aufgabe erzwungen.
  • Das Zeitplan-Verkettungsbyte SYSTSILK wird entriegelt, Unterbrechungen werden gestartet und der Warteschlangen-Abtaster Q wird wirksam gemacht. Wenn dagegen keine Aufgabe gefunden wurde, die eine Bevorrechtigung erhalten kann, geht die Steuerung zum Schritt 4 über.
  • Der Schritt 4 enthält die folgenden Operationen: Die Aufgaben in der bearbeitbaren Liste sind so geordnet, daß die "eingabe/ ausgabegebundenen" Aufgaben vor den ausführungsgebundenen Aufgaben abgefertigt werden. Um die Aufgaben in dieser Weise zu ordnen, prüft der interne Zeitplaner die bearbeitbare Liste jeweils dann, wenn ein Übergang zum Dispatcher (Fig. 2) bevorsteht. Die Liste wird von der ersten Eintragung an geprüft, und jede Aufgabe, deren Aufgabengebunden-Kennzeichen TSIEB im Eins-Zustand ist, wird zum Ende der Liste übertragen. Nachdem diese Übertragung stattgefunden hat, wird das Verhältnis der maximalen Seitenaustauschoperationen pro Zeitabschnitt. errechnet und in das Feld für die Rückwärts-Hinweisadresse des Aufgabenstatusindex TSI gespeichert. Wenn alle bearbeitbaren Aufgaben in dieser Form sortiert worden sind, befinden sich diejenigen, für die TSIEB = 1 gilt, am Ende der Liste in einer solchen Reihenfolge, daß die Aufgaben mit einer größeren Frequenz von Seitenaustauschoperationen pro Zeiteinheit vor denen mit einer kleineren Frequenz abgefertigt werden. Daraufhin werden die Umkehr-Hinweis adressen im Aufgabenstatusindex TSI auf den neuesten Stand gebracht (die Vorwärts-Hinweisadressen wurden während der Sortierung aufdatiert). Es erfolgt nun ein Übergang der Steuerung zum Dispatcher, wobei Unterbrechungen gesperrt werden und das Zeitplan-Verkettungsbyte SYSTSILK verriegelt wird.
  • Schritt 5: Dieser Teil des internen Zeitplaners wird wirksam, wenn die Eingangskriterien-Subroutine bestimmt, daß der Aufgabenstatusindex TSI, der ihr für eine Bewertung zugeführt wurde, der bearbeitbaren Liste hinzugefügt werden kann. Die Parameter in den davon beeinflußten Einträgen in der annehmbaren Liste werden entsprechend angepaßt und, wenn nötig, wird auch die System-Hinveisadresse abgeändert. Der Aufgabenstatusindex TSI wird daraufhin an den Kopf der verarbeitbaren Liste gesetzt, indem die Eingabe-Hinweisadressen der verarbeitbaren Liste und die System-Hinweisadressen entsprechend modifiziert werden.
  • Der Aufgabenstatusindex TSI, der soeben der verarbeitbaren Liste hinzugefügt wurde, wird daraufhin verändert durch übertragung des Mengen-Zählstandes für den Aufgabenstatusindex TSI zu dem Wert, der in der Zeitplantafel STE für den betreffenden Aufgabenstatusindex TSI angegeben ist. Wenn die geplante Startzeit nicht 0 ist und damit angezeigt wird, daß die Aufgabe hinter dem Zeitplan liegt, wird der Wert des Hauptzeitgebers von der geplanten Startzeit subtrahiert und das Resultat wird im Aufgabenstatusindex-geplante-Startzeit-Feld gespeichert. Der sich hieraus ergebende negative Wert wird durch eine Zeitplan-Änderungsvorrichtung zur Errechnung der neuen Aufgabenstartzeit für die betreffende Aufgabe benutzt, um diese wieder in den Zeitplan einzuordnen. Wenn dagegen die geplante Startzeit nicht 0 ist, wird keine Veränderung des Feldes TSISST vorgenommen.
  • Es wird eine Prüfung durchgeführt, um festzustellen, ob die Seite mit dem ersten erweiterten Aufgabenstatusindex XTSI sich im Speicher befindet. Wenn dies der Fall ist, wird die Verarbeitung beim Schritt 2 des internen Zeitplaners fortgesetzt.
  • Befindet sich die betreffende Seite nicht im Speicher, wird eine Überwachungsprogramm-Kern- Zuweisung aufgerufen für Speicherraum zur Aufnahme eines Allgemeiner-Wartes chlangeneintrag/S eitensteuerblock GQE/PCB. Die Warteschlangeneinträge GQE sind neutralisiert, und eine GQE-Einreihen-Routine wird aufgerufen, um den ersten erweiterten Aufgabenstatusindex XTSI in den Speicher zu bringen. Daraufhin werden Unterbrechungen zugelassen und das Zeitplan-Verkettungsbyte SYSTSILK (Aufgabenstatusindex-Verkettung) wird entriegelt, und es wird ein Übergang zum Warteschlangenabtaster Q veranlaßt.
  • Dispatcher (Fig. 2) Die Funktion des Dispatchers besteht darin, eine Aufgabe auszuwählen und ihr Verarbeitungszeit der zentralen Verarbeitungseinheit zuzuteilen, wenn durch den internen Zeitplaner keine Arbeit für den Warteschlangenabtaster erzeugt wurde.
  • Der interne Zeitplaner macht den Dispatcher wirksam, indem das Zeitplan-Verkettungsbyte SYSTSILK blockiert wird und Unterbrechungen zugelassen werden. Um die Aufgabe zum Empfang von Unterbrechungen in den Ausführungsstatus zu bringen, werden Aufgaben-Unterbrechung-Steuermodule aufgerufen. Der Übergang zur Aufgabe erfolgt durch Laden des Programmstatuswortes PSW der betreffenden Aufgabe.
  • Wenn der Dispatcher feststellt, daß die verstrichene Systemzeit gleich dem Zeitintervallwert ist, der im ersten Eintrag der Warteschlange für die anhängigen Echtzeit-Intervalle angegeben ist, oder diesen Wert überschreitet, erfolgt ein Übergang zu einer Echtzeitunterbrechung-erzeugen-Subroutine, womit das Zeitplan-Verkettungsbyte SYSTSILK entriegelt, das Echtzeit-Verkettungsbyte SYSTIMLK verriegelt und Unterbrechungen gestattet werden. Der Dispatcher kann auch in einem Wartezustand eintreten durch Laden eines Programmstatuswort PSW, wenn keine bearbeitbaren Aufgaben vorhanden sind. Dies bedeutet einen Übergang zum Warteschlangenabtaster Q.
  • Nach seinem Aufruf führt der Dispatcher eine Prüfung auf das Vorliegen von Echtzeitunterbrechungen durch. Wenn solche vorliegen, wird die Steuerung zu der Echtzeitunterbrechung-erzeugen-Subroutine weitergegeben. Wenn keine derartige Unterbrechung vorliegt, wird die verarbeitbare Liste abgetastetr beginnend mit der Aufgabe, auf die die verarbeitbare und aktive Liste-starten-Hinweisadresse SYSPEC zeigt, um eine nicht verkettete Aufgabe im Bereit-Status zu suchen, für die keine Seitenaustauschanforderung anhängig ist (TSICP = O). Wenn eine solche Aufgabe gefunden wird, wird der Ausgang des Benutzerzeitgebers XTSUTI verglichen mit dem Ausgang des laufenden Zeitgebers XTSCTI. Wenn der Benutzerzeitgeber einen kleineren Wert anzeigt, wird die akkumulierte Zeit der Aufgabe auf den letzten Stand gebracht, und der Wert des laufenden Zeitgebers wird entsprechend dem Wert des Benutzerzeitgebers eingestellt. Im anderen Falle bleibt der Wert des Benutzerzeitgebers unverändert. Die Aufgabe wird daraufhin in den Ausführungsstatus gesetzt und entriegelt. Das Zeitplan-Verkettungsbyte SYSTSILK wird rückgestellt, und es wird eine Aufgabe-unterbrechen-Steuerung aufgerufen, um irgendwelche Aufgabenunterbrechungen auszuführen. Bei der Rückkehr wird die verflossene Systemzeit aufdatiert, die Register der Aufgabe werden geladen mit Werten aus dem erweiterten Aufgabenstatusindex XTSI und der Aufgabe wird die Steuerung der zentralen Verarbeitungseinheit übertragen, indem das laufende Programmsteuerwort PSW der Aufgabe geladen wird.
  • Wenn der Dispatcher keine Aufgabe findet, die er in den Ausführungsstatus bringen kann, geht die zentrale Verarbeitungseinheit in den Wartestatus über. Der Zeitgeberwert für den Wartestatus wird durch Berechnung der Differenz zwischen der gegenwärtigen Zeit und dem ersten Eintritt in die Warteschlange für anhängige Echtzeitunterbrechungen bestimmt. Wenn dieser Wert größer ist als die Leerlaufzeiteinstellung oder wenn die Warteschlange für Echtzeitunterbrechungen leer ist, wird als weiterer Zeitwert der Wert der Leerlaufzeiteinstellung benutzt. Die verflossene Systemzeit wird aufdatiert, das Zeitplan-Verkettungsbyte SYSTSILK rückgestellt und die Verarbeitungseinheit geht durch die Operation Programmstatuswort-laden LPSW in den Wartezustand über.
  • Aufgabenunterbrechungssteuerung (Fig. 3) Die Aufgabenunterbrechungssteuerung prüft das Vorhandensein von anhängigen Unterbrechungsanforderungen für eine verarbeitungsbereite Aufgabe, bevor dieser die Steuerung der Verarbeitungseinheit übertragen wird. Wenn keine anhängige Unterbrechung gefunden wird, erfolgt eine Rückkehr zum Dispatcher (Fig. 2). Liegt jedoch eine Unterbrechungsanforderung vor, so wird diese aufgegriffen und die Steuerung wird ebenfalls zum Dispatcher zurückgegeben.
  • In dieser Routine wird neben verschiedenen anderen Routinen die Überwachungsprogramm-Kern- Zuweisung-Subroutine aufgerufen, welche Speicherraum für den allgemeinen Warteschlangeneintrag GQE und für den Seitensteuerblock PCB zur Verfügung stellt, wenn der Unterbrechungsspeicherbereich ISA in den Speicher zu bringen ist.
  • Des weiteren wird die Überwachungsprogramin-Kern-Freigabe-Subroutine aufgerufen, welche die Freigabe von Speicherraum veranlaßt, der durch einen Eingabe/Ausgabe-Anforderungs-Steuerblock IORCB eingenommen wird zu der Zeit, wenn eine Eingabe/Ausgabe-Unterbrechungsanforderung festgestellt wurde durch den Nachrichtensteuerblock MCB für eine Makroinstruktion VSEND, die zur Kommunikation innerhalb der Aufgabe benutzt wird. Die Überwachungs programm-Kern-Freigabe-Subroutine dient außerdem zur Freigabe von Speicherraum, der von einem unterbrochenen allgemeinen Warteschlangeneintrag eingenommen wird.
  • Des weiteren wird eine Allgemeiner-Warteschlangeneintrag-einreihen-Subroutine aufgerufen, welche den allgemeinen Warteschlangeneintrag GQE in die Warteschlange für Benutzer-Kern-Zuweisungen eines Warteschlangenverarbeiters einreiht.
  • Die Aufgaben-Unterbrechung-Steuerung besitzt einen Ausgang zum Dispatcher. Wenn die den Unterbrechungsspeicherbereich ISA enthaltene Seite nicht im Speicher ist, erfolgt eine Verzweigung zum Warteschlangenabtaster Q. Sofern eine asynchrone Unterbrechungsanforderung anhängig ist während des Betriebs des virtuellen Speichersteuersystems VSS, erfolgt ein Übergang zu einem residenten Steuersystem RSS mit Hilfe einer Programmsteuerwortladen-Operation LPSW.
  • Innerhalb der Aufgabenunterbrechungssteuerung ist eine Vorrichtung vorgesehen zur Unterstützung eines ausgewählten Satzes von Schaltungsunterbrechungen, die durch das residente Überwachungsprogramm empfangen werden und einem Aufgabenunterbrechungsverarbeiter zugeführt werden. Die Aufgabenunterbrechungssteuerung ist eine wiederaufrufbare, systemresidente in sich geschlossene Subroutine, die im privilegierten Status mit maskierten Eingabe/ Ausgabe-Unterbrechungen arbeitet und einen Unterbrechungsmechanismus für die Benutzeraufgaben vorsieht.
  • Die Aufgabenunterbrechungssteuerung enthält eine Unterbrechungswarteschlange im Aufgabenstatusindex TSI der Aufgabe, einen Unterbrechungsspeicherbereich ISA im virtuellen Speicher der Aufgabe (dieser Speicherbereich ist definiert als Segment 0, Seite 0), eine Anzahl (8) von Anzeigebits für anhängige Unterbrechungsanforderungen innerhalb des Aufgabenstatusindex TSI, jeweils eines für jeden Unterbrechungstyp, sowie das Aufgabenunterbrechungssteuerungs-Unterprogramm.
  • Die Operationsfolge, die zu einer Unterbrechung einer Aufgabe führt, beginnt, wenn ein Warteschlangenverarbeiter feststellt, daß eine Unterbrechungsbedingung von der Aufgabe zu beachten ist.
  • Zu diesem Zeitpunkt wird ein allgemeiner Warteschlangeneintrag GQE, der für die vorliegende Unterbrechungsbedingung von Bedeutung ist, durch eine Hinweisadresse in der zugehörigen Warteschlange des Warteschlangenverarbeiters aufgerufen. Ein Unterprogramm "Warteschlange-allgemeiner-Warteschlangeneintrag-nach-Aufgabenstatusindex" wird zur Wirkung gebracht, um die allgemeine Warteschlangeneintrag-Hinweisadresse an die Aufgaben-Unterbrechung-Warteschlange der Aufgabenstatusindizies anzuhängen, die Warteschlangen-Hinweisadressen und Zählstände auf den neuesten Stand zu bringen und das Warteschlangen-Unterbrechung-anhängig-Bit in den Eins-Zustand zu setzen.
  • Die Unterbrechen-Warteschlange enthält eine Kette von Nullen oder allgemeinen Warteschlangeneinträgen. Neue Warteschlangeneinträge werden der Kette hinzugefügt unter Verwendung einer Priorität, die mit der des Unterbrechungstyps identisch ist. Jeder allgemeine Warteschlangeneintrag, der durch die Aufgabe-Unterbrechung-Warteschlangeneinträge bezeichnet wird, enthält die folgenden Informationen: Unterbrechungscode Instruktionslängencode (ILC) Abtastdaten für Eingabe/Ausgabe-Unterbrechungen, die nur eine Einrichtungsprüfung oder eine Einrichtungsunterbrechung zur Ursache haben Kanalstatuswort (CSW) nur für Eingabe/Ausgabe oder asynchrone Unterbrechungen.
  • Der Unterbrechungsspeicherbereich ISA enthält im voraus zugeordnete Bereiche für das alte virtuelle Programmstatuswort (alt-VPSW), verschiedene Registersicherungsbereiche und einen Bereich für das neue virtuelle Programmstatuswort (neu-VPSW).
  • Zur Aufgabenauswählzeit lädt der Dispatcher den Aufgabenstatusindex TSI und den erweiterten Aufgabenstatusindex XTSI und gibt die Steuerung an die Aufgabenunterbrechungssteuerung ab.
  • Die Aufgabenun erbre@ der Unterbreck@ngsste@e@ dies nicht de@ Fal@ Erd e@n gebildet und @ d@ in den Wartest @ wartet, die Au @ak@ das Echtzeitv@ @erron die St@werung cht @ gat@run@crht@ zeichen mit @ verschisd@ system-V@@-ak sind die Vn@e Dies bedeutet @ terdrückt werd-@ verläuft von @anke na r@@ts. @zmis@ge fat @@@ Priont-@t @@ die gegenwärtig unmar@@erter annäneigen Jat-rhsedaungen @ Reihenfolge der Unterbrechungskennzeichen hestimnt Virtueller-Speicher-Unterstützungssystem-VSS-aktivieren, öbe@wachungsp@cgramm-Anruf SVC, extern, asynchron, Zeitgeber, (Eirgabe/Ausgabe) für jene Fälle, wo die Unterbrehung-anhängig-Kennzeichen das Komplement der Unterbrechungsmaske darstellen. Die Aufgabanunterbrechungssteuerung veranlaßt in diesen Fällen eine Rückkehr zum Dispatcher Wenn eine unmarkierte Programmunterbrechung anhängig ist, bestimmt die Aufgabenunterbrechungssteuerung TIC, ob sich das virtuelle Speicher-Unterstützungssystem-Kennzeichen VSS in Aufgabenstatusindex TST im Ein-zustand befindet. Im Bejahungsfalle kommen die zu empfangenden allgemeinen Warteschlangensinträge von der Warteschlange des virtueller Speicher-Unterstützun@ systems anstatt von der normalen Warteschlange der Aufgabenuntexbrehungen, d. h. von der "regulären" anstatt von der "alternativen" Aufgabenstatusindex-Warteschlange, Es wird sine Prüfung durchgeführt, um zu bestimmen, ob es st@ @ces@ackamgtprogramm-aufruf-Unterbrechung SMC oder @@ @ine en@se @teg@ @rlispen, wird is Größ des @ en @ocks gennü@t.
  • @ne Größe von O wird @ehante@ @ine Gräße @rie äber die maximal zulässige @nä@ @t, wfrd behandelt als die Maximalgröße von 13@0 Epk@@. de @rößaeangabe @ard da@ aufhin abgespeichert für sp tüns In@a@@e. @ann die anhängige Onterbrechung nicht eine Überwach@r@gsprog@a@@-Aufrut-Unterbrechung SVC oder eine externe Unterbresheng ist, prüft die Aufgabenunterbrechungssteuerung, ab es sich un eine Einoabe/Ausgabe-Unterbrechung handelt. Ist dies der Full und liegt ein Eingabe/Ausgabe Anforderungssteuerblock IORCB für diese Unberbreshung vor, wird die Größe dieses Blockes untersacht und in der gleichen Weise, wie zuvor in Verbindung mit dem Nachrichtensteuerblock NCB beschrieben, behandelt. Wenn die Unterbrechung weder eine externe noch eine Eingabe/Ausgabe-Unterbrechng ist oder wenn ein Nachrichtensteuerblock MCB oder ein Eingabe/Ausgabe-Anforderungsteuer block IORCB nicht vorliegt, wird die Verarbeitung fortgesetzt.
  • Das gleiche ist der Fall, nachdem die Untersuchung der Blockgröße beendet ist.
  • Das ISA-Seitenkennzeichen wird in den Ein-Zustand gesetzt, und das ISA-Verriegelungsbyte wird geprüft, Wenn sich letzteres im Nicht-Null-Zustand befindet, werden alle Unterbrechungen maskiert mit Ausnahme der Unterbrechungen "Programm" und "Überwachungsprogramm-Anruf SVC". Ist keine dieser Unterbrechungen anhängig oder ist das ISA-Verriegelungsbyte ungleich 0, wird das Programm statuswort PSW des erweiterten Aufgabenstatusin½x für die Unterbrechung in der richtigen Positi won Segment 0, Seite 0 abgespeichert (altes virtuelles Prog@ -tatuswort). Das laufende virtuelle Programmstatuswort VPSW wird gleich dem alten virtuellen Programmstatuswort ALT-VPSW eingestellt. Die Unterbrechungsmaske für das neue virtuelle Programmstatuswort NEU-VPSW wird zum Aufgabenstatusindex TSI übertragen, und das Programmstatuswort des erweiterten Aufgabenstatusindex XTSI wird entsprechend dem neuen virtuellen Programmstatuswort eingestellt. Die Abtastdaten und das Kanalstatuswort CSW werden vom allgemeiner Warteschlangeneintrag zum Segment O, Seite O übertragan. Terner wird der Aufgabenstatusindex TSI aufdatiert, und ein Kenn@eichen, das im allgemeinen Warteschlangeneintreg @RE gesesat wurde, wird geprüft, um zu bestimmen, ob dieser H'nt@g s@@ Eingabe/Ausgabe-Anforderungsskauerblock IORCS zurü @ubrimgen ist. Dies wird ausgeführt, wenn das betreffende Kennzeichen im Aus-Eustand-ist oder der verarpeitete Speicherraun des allgemeinen Warteschlamgeneintrages durch Aufruf der Überwachungsprogramm-Kern-Freigabs-Routine zurückgegeben wird, Eu dieser Zeit @ird der Eingebe/ Ausgabe-Anforderungssteuerblock GORUB oder der Nachrichtensteuerblock MCR sofern ein so? er @liegt, an den Unterbrehungsspeiche@ereich ISA gebracht, und dar in Ansprtch genommene Speicherraum wird durch Auf@uf der Übs@achungeps@gramm-Kern-Freigeben-routine zurückgegeben, Die Aufga@an@erbrechungssteuerung veranlaßt daraufhin eine Rückkeh@ sum E2spst@her, nachdem das Seiten-halten-Kennzeichen im@erwe@terten Aufgabenstatusindex XTSI der Aufgabe rüc?gestel-- wurde, Eingangskriterienprüfung (Fig. 4) Die Funktion dieser Routine besteht darin, zu bestimmen, ob die ihr durch den internen Zeitplaner zugeführte Aufgabe die notwendigen Bedingungen erfüllt, um von der annehmbaren Liste zur bearbeitbaren Liste übertragen zu werden, Sie liefert eine Anzeige über die Annahme der Aufgabe oder ihre Zurückweisung an den internen Zeitplaner.
  • Die Eingangskriterien-Prüfung geht davon aus, daß die Hinweisadresse für den Anfang der annehmbaren Liste SYSFW Null ist, wenn keine Aufgabenstatusindex-Eintragungen in dieser Liste sind.
  • Die Eingangskriterien-Prüfung wird durch den internen Zeitplaner (Fig. 1) wirksam gemacht unter Verwendung eines geeigneten Registers, das die Adresse des Aufgabenstatusindex TSI enthält und weiteren B@@ @ke eendigung ser, @ang@@@@ @n interne @ @an sode O en@ä, un @er Code en @ arationen @ H@@an .L$ch.
  • @nd der a@na@ @nstatus@ de@ @rarbeit@ @inängigen i @ wali@ @tbaren last @inzug@@ @enannte Anzeideresister el@den, and es @ft@ @fttelbare Rückkehr zum interaen @ei@planer Wenn der Zählstand für die abhängige Seite O Rst, wird ein Test durchgeführt, um zu bestimmen, ob sich das System in einem Zukleiner-Kern-Zustand befindet (Zu-Kleiner-Kern-In@ikator SYSLCM = 1). Wenn dies der Fall ist, wird die Aufgabe nicht akazeptiert, es sei denn, es befinden sich weniger als e@ne vor bestimmte Minimalzahl von Aufgaben in der bearbeittaren Liste.
  • Wenn sich das System nicht im Zu-kleiner-Kern-Zustand befindet, wird die Anzahl der Seiten, welche die betreffende Aufgabe während ihres vorausgehenden zugeteilten Zeitabschnittes TSIPTS benutzt hat, verglichen mit dem Zählstand der geschätzten verfügbaren Kerntakte SYSECB. Ist TSIPTS kleiner, wird damit angezeigt, daß nicht genügend Speicherraum verfügbar ist. Es wird dann das Anzeigeregister mit dem Code 0 geladen, zur Anzeige dafür, daß die Aufgabe akzeptabel ist. Hierauf erfolgte eine Rückkehr zum internen Zeitplaner.
  • Wenn nicht genug Speicherraum verfügbar ist, wird die Zabl der Aufgaben, die sich gegenwärtig in der bearbeitbaren Liste befinden, ermittelt. Ist die Zahl dieser Aufgaben kleiner als die zulässige Zahl, wird die Aufgabe in keinem Falle akzeptiert.
  • Wenn gerade die Grenze erreicht ist, wird die Aufgabe ebenfalls zurückgewiesen.
  • Stets wenn eine Aufgabe die Bedingungen für eine Aufnahme in die bearbeitbare Liste erfüllt, wird der Zählstand der erwarteten, verfügbaren Kernblöcke inkrementiert, um den Seitenzählstand der Aufgabe, den diese benutzt hat, während das letzte Zeitabschnitt-Ende-Kennzeichen TSITSE rückgestellt worden ist. Danach erfolgt eine Rückkehr zum internen Zeitplaner.
  • Zeitplanerneuerung (Fig. 5) Die Zeitplanerneuerung kommt zur Wirkung,wenn eine Aufgabe ein Zeitabschnitt-Ende (erzwungen oder normal) erreicht, um die Ebene dieser Aufgabe in der Zeitplantafel STE zu ändern, sofern dies nötig ist, und um zu bestimmen, ob die Aufgabe in die annehmbare Liste oder in die nicht aktive Liste gebracht werden muß, in der verarbeitbaren Liste belassen werden kann oder von allen Zeitplanlisten gestrichen werden muß. Diese Routine bringt auch die Aufgaben von der inaktiven Liste in die annehmbare Liste. Wenn eine Aufgabe von einer Zeitplanliste zu einer anderen Zeitplanliste übertragen wird (oder wenn sie in der verarbeitbaren Liste verbleibt), wird die Zeitplan-Startzeit SST dieser Aufgabe neu berechnet.
  • Eine Zeitplanerneuerung wird durch die Adresse des Aufgabenstatusindex aufgerufen, die sich in einem geeignetem Register der Datenverarbeitungsanlage befindet. Ein Code, der die Zeitplanerneuerung spezifiziert, enthält folgende Angaben: Code 1 - Aufgabenstatusindex von der nicht aktiven Liste zur annehmbaren Liste übertragen Code 2 - Aufruf vom Zeitgeberunterbrechung-Warteschlangenverarbeiter Code 8 - Aufgabenstatusindex von der bearbeitbaren Liste auf die nicht aktive Liste setzen Code 16 - Aufgabenstatusindex von der verarbeitbaren Liste entfernen.
  • Nach Beendigung der Zeitplanerneuerung-Routine erfolgt eine Rückkehr zu der anrufenden Stelle unter Verwendung folgender Rückkehrcodes: Code O - Aufgabe verbleibt in der verarbeitbaren Liste Code 1 - Aufgabe wird in die annehmbare Lister übertragen Code 2 - Aufgabe wird in die nicht aktive Liste gesetzt.
  • Wenn das entsprechende Register der Datenverarbeitungsanlage beim Beginn der Routine nicht einen Code 1, 2, 8 oder 16 enthält, erfolgt eine Fehlermeldung zum Systemfehler-Verarbeiter SYSERR.
  • Die Operationen der Zeitplanerneuerung sind aus Fig. 5 ersichtlich. Sie beginnen damit, daß der Inhalt bestimmter allgemeiner Register zur Sicherstellung abgespeichert wird. Daraufhin werden die Eingangsparameter auf Gültigkeit geprüft. Wenn keine Gültigkeit vorliegt, erfolgt ein Ausgang zu dem Systemfehler-Verarbeiter SYSERR. Wenn der Parameter eine 1 enthält, wird die Aufgabe geprüft, um zu bestimmen, ob sie im T-Warten- oder im A-Warten-Status ist. Wenn sie sich im T-Warten-Status befindet, wird die Aufgabe der Zeitplantafelebene zugeordnet, die durch die T-Warten-Ebene der Zeitplantafel bezeichnet wird. Wenn sie sich dagegen im A-Warten-Zustand befindet, wird hierzu die A-Warten-Ebene der Zeitplantafel STE benutzt. Die geeignete Ebene wird in den Aufgabenstatusindex TSI (TSISTE) der Aufgabe gebracht.
  • Wenn die Aufgabe weder im T-Warten- noch im A-Warten-Zustand steht, wird die Aufgaben-Ende-Ebene STETSEND verwendet.
  • Die geplante Startzeit SST der Aufgabe wird daraufhin errechnet.
  • Wenn der Delta-Laufwert in der Zeitplantafel O ist, wird die geplante Aufgabenstartzeit SST gleich 0 gesetzt. Im andern Falle wird die neue Aufgabenstartzeit gleich DTR + MC + (l-R) gesetzt, d. h. auf den Wert, der sich aus der Summe des Delta-Laufwertes, des Hauptzeitgeber-Anzeigewertes und dem Wert 1-R ergibt, wobei R dem Inhalt des Erneut-berechnen-Kennzeichens RCMP entspricht.
  • Dieses Kennzeichen bestimmt, ob bei der Berechung der neuen Startzeit der letzte Teil der Vorgeschichte der betreffenden Aufgabe berücksichtigt werden muß oder nicht.
  • Die Aufgabe wird daraufhin-in die annehmbare Liste gebracht entsprechend ihrer internen Prioritätsstufe und der errechneten Startzeit SST. Das Zeitplaner-ohne-Arbeit-Kennzeichen SYSNWK in der Systemtabelle wird auf 0 gesetzt. Das letzte geplante Aufgabenstartzeit-Feld SYSLSST, das dem Zeitplan am wenigsten voraus ist, wird auf 0 gestellt, und die Zeitplanerneuerung stellt einen Rückkehrcode auf 1 und gibt die Steuerung ab.
  • Wenn das geeignete allgemeine Register der Datenverarbeitungsanlage einen Code Von 2 am Beginn enthält, ist der Aufruf für eine Zeitplanerneuerung vom Zeitgeber-Unterbrechungs-Verarbeiter ausgelöst worden und ist nicht ein Resultat eines durch ein Aufgabenende hervorgerufenen Überwachungsprogrammanrufes TSEND SVC.
  • Wenn die Aufgabe sich im Verzögerungstatus befindet, wird sie am Kopf der nicht aktiven Liste eingetragen und der Rückkehrcode wird auf 2 eingestellt.
  • Befindet sich die Aufgabe nicht im Verzögerungsstatus, wird innerhalb der Zeitplanerneuerung eine Prüfroutine aufgerufen, die folgende Abfrageoperationen ausführt: Fallen die Seitenanforderungen während des letzten Zeitabaschnittes mit den voreingestellten Stufen zusammen, die durch STEPRJ1, STEPRJ2, STEPRJ3 oder STEPRJ4 spezifiziert sind? Hält die Aufgabe einen Verkettungsstatus und wurde sie zu einer TSE gezwungen wegen zu wenig Speicherraum? Hält die Aufgabe eine Verriegelung aus einem anderen Grunde als wegen zu wenig Speicherraum? Wartet die Aufgabe wegen einer Verkettung? Wenn eine Prüfung in der genannten Reihenfolge durchgeführt wird, wird die Aufgabe der entsprechenden Zeitplantafel-Ebene zugeordnet.
  • Andernfalls wird die Aufgabe nach einem erzwungenen Zeitabschnitt-Ende infolge Überschreitens des maximale-Seitenzahl-gelesen-Wertes (MPRE) untersucht. Wenn diese Bedingung existiert, wird der Zeitplantafel-Eintrag STE, der im Feld Maximale-Seitenzahl-gelesen STEMPRE enthalten ist, der betreffenden Aufgabe zugeordnet.
  • Daraufhin wird die neue Aufgabenstartzeit SST errechnet aus der Summe des Haupttaktgeberwertes MC und dem Delta-Laufwert DTR, es sei denn, die alte Aufgabenstartzeit war negativ. In diesem Fall setzt sich die neue Aufgabenstartzeit aus MC + DTR + SST-alt zusammen.
  • Wenn die Aufgabe kein normales Zeitabschnitt-Ende aufweist, wird sie in die annehmbare Liste an den ihr entsprechenden Platz gebracht. Wenn dagegen ein normales Zeitabschnitt-Ende vorliegt, wird der Internzeitplaner aufgerufen, um die Adresse der nächsten Aufgabe bereitzustellen, die von der annehmbaren Liste zur verarbeitbaren Liste zu übertragen ist. Eine negative Rückkehr vom Internzeitplaner zeigt an, daß eine besondere Aufgabe der verarbeitbaren Liste hinzuzufügen ist, so daß die aufgerufene Aufgabe in die annehmbare Liste zu bringen ist. Im anderen Falle werden die Prioritätsstufen und die Aufgabenstartzeiten der beiden Aufgaben miteinander verglichen. Wenn die der Zeitplanerneuerung unterliegende Aufgabe eine höhere Priorität oder eine gleiche Priorität aufweist oder weiter hinter dem Zeitplan zurückliegt, wird sie in der bearbeitbaren Liste belassen. Wenn dies nicht der Fall ist, wird sie in die annehmbare Liste gebracht.
  • Wenn der Eingangscode eine 8 enthält, wird die Aufgabenstartzeit SST auf 0 gesetzt, die Aufgabe wird an den Kopf der nicht aktive Liste gebracht und der Rückkehrcode wird auf 2 eingestellt.
  • Wenn ein Eingangscode von 16 vorliegt, wird die Aufgabe von der bearbeitbaren Liste entfernt und zu keiner der übrigen von der Zeitplanerneuerung betroffenen Listen gebracht. Es wird kein Rückkehrcode eingestellt, und es erfolgt ein Übergang zur Aufrufroutine. Diese in Verbindung mit den Fign. 1 bis 5 oben beschriebene Routine kann als tabellengesteuerter Zeitplaner" bezeichnet werden. Das Wort "Tabelle" nimmt hierbei Bezug auf eine gespeicherte Tafel mit einer Vielzahl Zeilen bzw. Ebenen von Einträgen. Die Einträge in jeder Zeile bzw. in jeder Ebene der Tafel enthalten ausreichend Information, um eine Aufgabe vollständig zu steuern. Wie oben erwähnt wurde, besitzt jede Aufgabe im System eine weitere Tafel, welche die Aufgabe selbst dem System beschreibt. Diese letztere Tafel wird Aufgabenstatusindex TSI genannt. Jeder Aufgabenstatusindex besitzt eine Hinweisadresse, die auf eine bestimmte Ebene in der Zeitplantafel zeigt.
  • Durch Änderung des Wertes dieser Hinweisadresse wird einer Aufgabe ein vollständig neuer Satz von Zeitplanparametern zugeteilt.
  • Diese Parameter enthalten: 1. Zeit, Speicherraum und Eingabe/Ausgabe-Begrenzungen, die bei der Ausführung der Aufgabe zu benutzen sind, 2. Prioritäts-, Speicherraum- und Zeitwerte, die zur Bestimmung benutzt werden, wenn nach dem Zeitplan eine Aufgabe zu laufen hat, und 3. Hinweisadressen zu anderen Ebenen der Tafel, die die laufende Zeitplan-Hinweisadresse im Aufgabenstatusindex TSI ersetzen, wenn besondere Bedingungen auftreten oder eine der Ausführungsbegrenzungen ermittelt wird.
  • Die erfindungsgemäß aufgebaute Zeitplantafel STE ist in Fig. 6 dargestellt. Vor der Erläuterung der verschiedenen vorerwähnten Zeitplanparameter sei daran erinnert, daß das benutzte Time-Sharing-Datenverarbeitungssystem, durch welches eine solche Tafel beispielsweise verwendet werden kann, eine aktive und eine nicht aktive Liste von Aufgaben enthält. Die aktive Liste hat zwei logische Unterteilungen; die als bearbeitbare Liste und als annehmbare Liste wie folgt bezeichnet werden: 1. Aktive Liste - diejenigen Aufgaben, die auf eine Systembedienung warten a) Bearbeitbare Liste - diejenigen Aufgaben, die Hauptspeicherraum einnehmen und auf Verarbeitungszeit der zentralen Verarbeitungseinheit warten, b) annehmbare Liste - diejenigen Aufgaben, die auf ihren Eintrag in die bearbeitbare Liste warten.
  • 2. Nicht aktive Liste - diejenigen Aufgaben, die auf eine langdauernde Unterbrechung warten, wie beispielsweise die von einer Anschlußeinheit ausgelöste Unterbrechung.
  • Die Zeitplantafel steuert die Reihenfolge, in welcher die Aufgaben in die bearbeitbare Liste gebracht werden und die Bedingungen, unter denen die Aufgabe in der bearbeitbaren Liste belassen wird.
  • Die Tabelle bzw. Tafel von Fig. 6 besteht aus einer veränderbaren Anzahl von Einträgen zu je 23 Parametern. Diese 23-gliedrigen Einträge werden Ebenen der Zeitplantafel oder Zeitplantafel-Eintragsebene genannt. Die 23 Felder bzw. Parameter einer jeden Ebene steuern die Ausführung einer Aufgabe, wenn sie der entsprechenden Aufgabe zugewiesen worden sind.
  • Die Felder einer jeden Zeitplantafel-Eintragsebene können in vier logische Teile klassifiziert werden: 1. Ein Satz von Feldern, die die Abfertigung einer Aufgabe steuern, d. h. die Reihenfolge, in welcher die Aufgabe.
  • von der annehmbaren Liste zur bearbeitbaren Liste übertragen wird (PRIOR, DELTA, RCMP).
  • 2. Ein Satz von Feldern, welche Grenzen vorsehen, die bestimmen, wenn eine Aufgabe einen Zeitabschnitt zugeteilt erhält und die bearbeitbare Liste verläßt (TSVAL, QUANT, MAXCR, M&XRD,-ASTEX, PRPMT).
  • 3. Ein Satz von Feldern, die die Ebene des Überganges angeben, der vorgenommen wird, wenn die entsprechenden Grenzen oder Auslösungen erreicht worden sind (PULSE, TSEND, MPRE, TWAIT, AWAIT, HLCK, LCHL, WLCK, PRJ1, PRJ2, PRJ3, PRJ4).
  • 4. Ein Feld, das eine Änderung in der Reihenfolge der Aufgaben in der bearbeitbaren Liste veranlassen kann (MRQ).
  • Im folgenden werden die Felder innerhalb einer jeden Zeitplantafel-Eintragsebene im einzelnen beschrieben: EBENE (1 Byte) Dieses Feld ist die relative Eintragsnummer in der Zeitplantafel.
  • Die Ebenennummer wird als relative Adresse innerhalb der Zeitplantafel benutzt.
  • Priorität PRIOR (1 Byte) Die Priorität einer Ebene in Verbindung mit der geplanten Startzeit SST wird dazu benutzt, der Aufgabe Verarbeitungszeit der zentralen Verarbeitungseinheit und deren Hilfsmittel zuzuteilen.
  • Nur diejenigen Aufgaben werden in die verarbeitbare Liste gebracht, die Hauptspeicherplatz erlangen und benutzen können. Der Wert 0 hat die höchste Priorität. Wenn versucht wird, eine Aufgabe in die bearbeitbare Liste zu bringen, wird die Aufgabe gewählt, welche die höchste Priorität hinter dem Zeitplan aufweist.
  • Wenn keine Aufgabe hinter dem Zeitplan liegt, wird die Aufgabe mit der höchsten Priorität gewählt. Wenn mehrere Aufgaben die gleiche höchste Priorität aufweisen, wird die Aufgabe gewählt, die dem Zeitplan am wenigsten voraus ist.
  • Zeitquantum-Länge TSVAL (2 Bytes) Die Zeitquantum-Länge ist der Zeitbetrag, der einer Aufgabe zugeteilt wird. Im dargestellten Ausführungsbeispiel beträgt diese Zeiteinheit 3,33 Millisekunden. Ein derartiges Zeitquantum stellt das maximale Zeitintervall für die Inanspruchnahme des virtuellen Speichers dar, über das eine Aufgabe verfügen kann, bis vom System eine Entscheidung getroffen wird, ob die Aufgabe mehr Verarbeitungszeit der zentralen Verarbeitungseinheit auf der Basis der Anzahl der benötigten Zeitquanten zugeteilt erhalten soll.
  • Maximale Anzahl von Zeitquanten QUANT (1 Byte) Dieses Feld gibt die maximale Anzahl der Zeitquanten an, die eine Aufgabe in Anspruch nehmen kann, bevor ein Zeitabschnitt-Ende auftritt.
  • Maximale Seitenzahl MAXCR (1 Byte) Dieses Feld gibt die maximale Anzahl der physikalischen Speicherraum-Seiten an, deren Benutzung der Aufgabe im Hauptspeicher erlaubt ist, bevor ein Zeitabschnitt-Ende auftritt.
  • Maximale Eingabe/Ausgabe von Platten MAXRD (1 Byte) Dieses Feld gibt die maximale Anzahl von Platten eines externen Magnetplattenspeichers an, die zu Lesen oder zu Beschreiben einer Aufgabe erlaubt ist, bevor ein Zeitabschnitt-Ende auftritt.
  • Lese- und Schreiboperationen als Resultat von Verlagerungen, der Austausch von Seiten, in die sich die Aufgabe mit anderen Seiten teilt, oder Zeitabschnitt-Beendigungen werden in diesem Feld gegen die durch seinen Inhalt gegebene Grenze nicht angerechnet.
  • Impulsebene PULSE (1 Byte) Dieses Feld stellt die Zeitplantafel-Eintragsebene dar, die zu benutzen ist, wenn ein Signal für einen Uberwachungsprogramm-Aufruf SVC durch den Benutzer ausgegeben wird. Dieses Feld und das SVC-Signal erlauben dem Benutzer, Ebenen, die auf der Position innerhalb des Benutzerprogramms basieren, zu ändern.
  • Erwarten Erweiterung AWTEX (2 Bytes) Dieses Feld gibt die maximale Zeit an, in der eine Aufgabe, welche ein Überwachungsprogramm-Aufruf SVC-Erwarten-Signal ausgegeben hat, in der bearbeitbaren Liste verbleiben kann, ohne daß die Eingabe/Ausgabe-Operation beendet ist. Wenn die Eingabe/Ausgabe-Operation nicht vor der angegebenen Grenzzeit beendet ist, wird die Aufgabe in Zeitabschnitte unterteilt.
  • Delta-Laufzeitwert DELTA (1 Byte) Nach dem Eintrag einer Aufgabe in die annehmbare Liste wird eine geplante Startzeit SST errechnet. Der SST-Wert ergibt sich aus der gegenwärtigen Zeit plus dem Delta-Laufzeitwert, es sei denn, dieser ist gleich 0. Wenn der Delta-Laufzeitwert 0 ist, wird der Wert von SST ebenfalls 0 gesetzt, und die Aufgabe wird automatisch hinter den Zeitplan gesetzt.
  • Zeitabschnitt-Ende TSEND (1 Byte) Dieses Feld stellt den Zeitplantafel-Eintrag dar, der benutzt wird, wenn ein Zeitabschnitt-Ende auftritt, weil die maximale Anzahl von Zeitquanten QUANT erreicht ist oder die maximale Anzahl Platten bei Eingabe/Ausgab9 (MAXRD) erhalten wurde.
  • Maximale Seitenzahl MPRE (1 Byte) Dieses Feld stellt den Zeitplantafel-Eintrag dar, der verwendet wird, wenn ein Zeitabschnitt-Ende auftritt, weil die maximale Anzahl von Seiten im Kern (MAXCR) erreicht worden ist.
  • T-Warte-Statua bei Zeitabschnitt-Ende TWAIT (1 Byte) Dieses Feld gibt den Zeitplantafel-Eintrag an, der Anwendung findet, wenn ein Zeitabschnitt-Ende auftritt durch den T-Warte-Status eines zur Anwendung gekommenen Überwachungsprogramin-Aufrufes SVC.
  • A-Warte-Status bei Zeitabschnitt-Ende AWAIT (1 Byte) Dieses Feld stellt den Zeitplantafel-Eintrag dar, auf den zurückgegriffen wird, wenn ein Zeitabschnitt-Ende aufgrund eines A-Warte-Status auftritt, der sich in Verbindung mit einem zur Anwendung gekommenen Überwachungsprogramm-Aufrufes SVC ergibt.
  • Kennzeichen neu berechnen RCMP (1 Byte) Wenn das Neu-berechnen-Kennzeichen im Ein-Zustand ist (1"), wird die geplante Startzeit SST in der oben beschriebenen Weise unter Verwendung des Delta-Laufzeitwertes DELTA berechnet. Wenn sich das Neu-berechnen-Kennzeichen im Aus-Zustand befindet ("ob), werden die zuletzt durchgeführten Arbeiten (wenn hinter dem Zeitplan) in Betracht gezogen bei der Berechung der geplanten Startzeit SST, indem diese aus der gegenwärtigen Zeit plus dem Delta- Laufzeitwert minus dem Betrag errechnet wird, um den die Aufgabe hinter dem Zeitplan im vorausgehenden Zeitabschnitt liegt.
  • Bevorrechtigungskennzeichen PRMPT (1 Byte) Eine Aufgabe auf der bearbeitbaren Liste, deren Bevorrechtigungskennzeichen im Ein-Zustand ist ("1"), kann zu einem Zeitabschnitt-Ende gezwungen werden, um Platz für eine Aufgabe von der annehmbaren Liste zu machen, diet eine höhere Priorität aufweist.
  • Maximale Seitenaustausch-Anzahl pro Zeitquantum - MRQ (1 Byte) Eine Aufgabe wird als ausführungsgebunden aufgefaßt, wenn ihre Anzahl von Seitenaustauschoperationen pro Zeitquantum kleiner ist oder gleich dem vorgegebenen Maximalwert MRQ. Ausführungsgebundene Aufgaben werden zum Ende der verarbeitbaren Liste gebracht jeweils am Ende ihrer Zeitquanten, um nicht ausführungsgebundenen Aufgaben eine Überlappung ihrer Eingabe/Ausgabe-Seitenaustauschoperationen mit den ausführungsgebundenen Aufgaben zu gestatten.
  • Verriegelung halten HLCK (1 Byte) Dieses Feld stellt den Zeittafeleintrag dar, der Anwendung findet, wenn ein Zeitabschnitt-Ende auftritt (mit Ausnahme von AWAIT und TWAIT) und die Aufgabe eine VAM-Verriegelung aufrechterhält.
  • Zu wenig Speicherraum halten-Verriegelung LCHC (1 Byte) Dieses Feld stellt den Zeitplantafel-Eintrag dar, auf den zurückgegriffen wird, wenn ein Zeitabschnitt-Ende auftritt, weil zu wenig Speicherraum zur Verfügung steht und die Aufgabe eine VAM-Verriegelung aufrechterhält.
  • Warten auf Verriegelung WELCH (Byte) Dieses Feld stellt den Zeitplantafel-Eintrag dar, der benutzt wird, wenn ein Zeitabschnitt-Ende auftritt und die Aufgabe auf eine Verkettung wartet.
  • Nachrichtenausgabe PRJL/CWO (1 Byte) Dieses Feld gibt den Zeitplantafel-Eintrag wieder, der Anwendung findet, wenn ein Schreiben einer Nachricht ohne Antwort zu einem Anschlußgerät des Systems gesandt wird. Die Änderungen der Zeitplanebene tritt hier ohne Zeitabschnitt-Ende auf.
  • Die unter Anwendung des erfindungsgemäßen Verfahrens zu verarbeitenden Benutzerprogramme werden in zwei Kategorien unterteilt, nämlich die zwischenaktiven Programme und die als Stapel zu verarbeitenden Programme. In der Zeitplantafel existieren gleiche Sätze von Ebenen für beide Programmtypen mit folgenden Unterschieden: 1. Zwischenaktive Programme haben gegenüber den Stapelverarbeitungsprogrammen eine höhere Priorität.
  • 2. Ursprünglich haben zwischenaktive Programme stets eine höhere Dringlichkeit zur Einleitung ihrer Bearbeitung als Stapelprogramme.
  • Die Zahl der Stapelprogramme, die zum gleichzeitigen Lauf zugelassen werden, ist dadurch beschränkt, daß Speicherraum zur Behandlung von zwischenaktiven Programmen zur Verfügung gestellt werden muß.
  • Abgesehen von den obigen Unterschieden gilt für die Zeitplanung von zwischenaktiven Programmen und Stapelprogrammen das folgende gemeinsam. Die zwischenaktiven Sätze der Tabellenebene sind der "Startsatz", der "Schleifensatz", der "Wartensatz", der "Verkettung -halten-Satz" und der "Auf-Verkettung-warten-Satz", wie sie in der linken Spalte von Fig. 6 angegeben sind. Die numerischen Werte der verschiedenen Zeitplantafel-Ebenen sind in hexamaler Form angegeben.
  • 1. Der Startsatz Der Startsatz der Zeitplantafel-Ebenen wird zur Behandlung neuer Eingänge von einem Anschlußgerät des Datenverarbeitungssystems verwendet. Dieser Satz von Ebenen hat eine doppelte Funktion: a) Er dient zur Ermöglichung einer schnellen Antwort gegenüber dem Anschlußgerät, sofern dies möglich ist, und b) er erlaubt eine anfängliche Entscheidung über die laufende Arbeitssatzgröße von länger laufenden Programmen, wodurch der beste Eingang zum Schleifensatz der Zeitplantafel-Ebenen für dieses Programm gewählt werden kann.
  • Diese Funktionen werden durch verschiedene aufeinanderfolgende Ebenen mit hohen Prioritäten, kleinen Ausführungszeitgrenzen und erhöhten großen Speicherkern-Raumgrenzen. Jedes Programm, das von einem Anschlußgerät zugeführt wird, durchläuft diese Ebenen jedes Mal, wenn es seine Speicherraumgrenzen überschreitet.
  • Wenn es in einer dieser Ebenen seine Zeitgrenzen überschreitet, wird die Speicherraumgrenze dieser Ebene benutzt als Abschätzung für die laufende Arbeitssatzgröße des Programms. Das Programm wird daraufhin als ein länger laufendes Programm betrachtet, und seine weitere Ausführung wird durch den "Schleifensatz" der Zeitplantafel-Ebenen gesteuert.
  • Wenn das Programm seine größte Speicherraumgrenze übershreitet, wird die größte zulässige Arbeitssatzgröße verwendet als erste Schätzung für die weitere Ausführung unter der Steuerung des Schleifensatzes der Tafelebenen.
  • Jedes Mal, wenn das Programm beendet wird, erfolgt eine Rückkehr zur ursprünglichen Startsatzebene für den nächsten Eingang von einem Anschlußgerät.
  • 2. Der Schleifensatz Der Schleifensatz der Tafelebenen erfüllt die folgenden drei Funktionen: a) Er benutzt die Zeitplantafel-Parameter, um die Arbeitssatzgröße eines jeden Programms durch regelmäßige Abschtzung seiner Zeit- und Speicherraumerfordernisse in Übereinstimmung mit dem Prinzip der ausgeglichenen Kernzeit.
  • b) Er bewirkt, daß die durch lange laufenden Programme verursachte Arbeitslast über die Zeit verteilt wird, um zu ermöglichen, daß die Startsatzeinträge schnell verarbeitet werden.
  • c) Er optimiert die Benutzung der zentralen Verarbeitungseinheit und bestraft Programme, die nicht effektive Seitenaustauschoperationen durchführen, dadurch, daß Programme mit minimaler Seitenaustauschanforderung häufiger als diejenigen mit großen Seitenaustauschanforderungen zum Laufen gebracht werden. Diese Bestrafung" erfolgt nur dann, wenn eine große Arbeitssatzgröße vorliegt und die Aufruflage des Programms schlecht ist.
  • Der Schleifensatz der Tafelebenen ermittelt schnell jede Änderung dieser Situationen und sorgt für eine dynamische Anpassung des Systems an diese Änderungen. Wie die Erfahrungen gezeigt haben, werden wenige Programme bestraft während der Ausführung, während die meisten der Programme eine gleichbleibend gute Bedienung erfahren.
  • 3. Der Wartensatz Der Wartensatz ist ein besonderer Satz von Tafelebenen, der für diejenigen Aufgaben reserviert ist, die Band-Eingabe/Ausgabe-Operationen oder andere Arten von wartezeitorientierten Operationen ausführen. Wie oben erwähnt, bezeichnet der AWTEX-Parameter ein abgelaufenes Zeitintervall, während dem die laufenden Arbeitssatzzeiten eines Programms im Speicher behalten werden, während das Programm unwirksam im A-Warten-Status verbleibt. Da hierdurch erhebliche Erweiterungen der Echtzeit in bezug auf die virtuelle Zeit hervorgerufen werden können, werden kleinere virtuelle Zeitwerte diesem Satz zugeordnet als bei Aufgaben der gleichen Arbeitssatzgröße im Schleifensatz.
  • 4. Der Verkettung-halten-Satz Dieser Satz von Ebenen wird für alle Programme benutzt, die zum betreffenden Zeitpunkt eine Verkettung mit einer Systemeinheit aufrechterhalten. Programme, die von diesem Satz gesteuert werden, haben eine hohe Priorität, damit die verkettete Einheit schnell wieder freigegeben werden kann.
  • 5. Der Warten-auf-Verkettung-Satz Dieser Satz von Ebenen wird für Programme benutzt, die zum betreffenden Zeitpunkt auf eine Verkettung mit Systemeinheiten warten, die durch andere Programme mit Hilfe des Verkettunghalten-Satzes belegt sind. Die durch diesen Satz gesteuerten Programme werden selten für eine Abfertigung in Betracht gezogen, bevor die den Wartezustand verursachende Verkettung gelöst worden ist. Aus dem obigen ergibt sich, daß die Antwortbereitschaft des Systems wesentlich ist für die Benutzer des Systems und daß andererseits die Antwortbereitschaft im Gegensatz zur Systemeffektivität steht, da sie eine oftmalige Umschaltung von Aufgabe zu Aufgabe mit den damit verbundenen Steueroperationen erfordert. Durch das erfindungsgemäße Verfahren wird eine Zeitplantechnik angegeben, welche sowohl die Antwortbereitschaft als auch die Effektivität des Systems verbessert.
  • Es muß Speicherraum zur Verfügung stehen für neue Anfragen, um die Antwortbereitschaft sicherzustellen. Es ist deshalb eine hohe Stufe der Multiprogrammierung notwendig. Diese wird erreicht durch automatisches Falten der Programme, um den von diesen Programmen angenommenen Speicherraum minimal zu halten. Die sich hieraus ergebende Frage besteht darin, wie und wann eine Faltung der Programme vorgenommen werden soll.
  • Beim Verfahren gemäß der Erfindung werden die Programme in Übereinstimmung mit ihrer Arbeitssatzgröße gefaltet. Der Arbeitssatz eines Programmes ist der Satz von Seiten in den T-Seitenaufrufen vor der Zeit t. Die Arbeitssatzgröße s (t, T) eines Programms zur Zeit t ist gleich der Anzahl von Seiten in w (t, T).
  • Es ist bekannt, daß alle Programme nicht gleich gut bzw. effektiv programmiert sind. In Übereinstimmung hiermit hat ein Programm eine gute Aufruflage, wenn es die Verarbeitungszeit der zentralen Verarbeitungseinheit gut ausnutzt, bevor es auf eine noch nicht im Speicher befindliche Seite Bezug nimmt. Programme mit einer schlechten Aufruflage und einer großen Arbeitssatzgröße können die Stufe der Multiprogrammierung herabsetzen.
  • Das Prinzip der ausgeglichenen Kernzeit bedeutet, daß die einem Programm zugeteilte virtuelle Verarbeitungszeit der zentralen Verarbeitungseinheit umgekehrt proportional zu dessen Arbeitssatzgröße ist.
  • Im oben erläuterten Datenverarbeitungssystem ist die Zeitplantafel eine Matrix von Werten, die zur Steuerung der Aufgabenauswahl und Aufgabenausführung verwendet wird. Die Werte in den einzelnen Zeilen dieser Matrix können jede Aufgabe zu jeder Zeit t steuern. Jede Aufgabe besitzt eine Hinweisadresse auf eine Zeile der Matrix. In dieser Matrix befinden sich drei Typen von Werten: 1. Aufgabenauswähiwerte, wie z. B. Zeit, Priorität und Speicherraum.
  • 2. Aufgabenausführungsgrenzen, wie z. B. Zeit, Speicherraum, Eingabe/Ausgabe.
  • 3. Bedingte Übertragungs-Hinweisadressen.
  • Die einzelnen Reihen der Matrix sind zu Gruppen zusammengefaßt, die bestimmte Zeitplan-Steuersätze bilden: A. Startsatz; dieser Satz steuert die Antwortbereitschaft des Systems durch: 1. Zuteilung der Steuerung zu neuen Eingängen, 2. Steuerung des Wachstums der Aufgabe im realen Speicher durch Faltung, 3. Sortierung von lang laufenden Aufgaben unter Zuhilfenahme der Arbeitssatzgröße.
  • B. Der Schleifensatz; dieser Satz steuert die Systemeffektivität und den Arbeitsdurchsatz durch: 1. Verwendung ausgeglichener Kernzeit zum Vorteil der effektiven Programme, 2. Abschätzung der Arbeitssatzgröße zu jedem Zeitabschnitt, 3. Verzögerung von lang laufenden Aufgaben, um die Antwortbereitschaft des Systems zu erhöhen.
  • C. Besondere Sätze; diese Sätze werden verwendet zu: 1. Steuerung besonderer Programme, 2. Steuerung besonderer Bedingungen, wie beispielsweise Verkettungen, und Behandlung von allen Programmen.
  • Die Struktur der Tafel von Fig. 6 enthält im dargestellten Beispiel annähernd 1500 in bezug zueinanderstehende Parameter. Zur Beurteilung des Einflusses der Anwendung des erfindungsgemäßen Verfahrens auf die Antwortbereitschaft, die Effektivität und den Programmdurchsatz des Systems wurden verschiedene Anwendungsbeispiele untersucht und Vergleichsmessungen durchgeführt, wobei sich eine wesentliche Verbesserung gegenüber herkömmlichen Systemen ergab.

Claims (8)

  1. PATEN TAN SPRÜCHE
    Öi Datenverarbeitungssystem für Multiprograininbetrieb mit Steuervorrichtungen zur Auswahl und Zeitplanung der Ausführung einer Anzahl von Bearbeitungsaufgaben, die dem System von außen zugeführt, in Listenform gespeichert und ineinandergeschachtelt verarbeitet werden, wozu das System die verfügbaren Hilfsmittel, wie zentrale Verarbeitungseinheit, Hauptspeicher und externe Anschlußeinheiten, auf Zeitteilungsbasis in Anspruch nimmt, dadurch gekennzeichnet, daß jeder Aufgabe eine ihren jeweiligen Zustand bezüglich der Verarbeitungsbereitschaft, Startzeit und Ausführung charkterisierende, gespeicherte Tabelle (TSI, ETSI) zugeordnet ist, die eine Hinweisadresse zu einer bestimmten Eintragsebene einer gespeicherten Zeitplanparametertafel (STE) enthält, daß die Zeitplanparametertafel in Ebenen (Zeilen) geordnete Einträge über Grenzwerte für Inanspruchnahinezeit, Speicherraum und Hilfsmittel für die Aufgabenausführung, über Prioritäts-, Speicherraum- und Zeitwerte, die bei der Einordnung einer neu zugeführten Aufgabe in den Ausführungszeitplan benutzt werden, und über auf andere Eintragsebenen der Zeitplanparametertafel gerichtete Hinweis adressen aufweist, die die laufende- Hinweisadresse in der die Aufgabe charakterisierenden Tabelle ersetzt, wenn eine der angegebenen Ausführungsbegrenzungen überschritten wird oder Ausnahmebedingungen eintreten, und daß die Steuervorrichtungen zur Auswahl und Zeitplanung der Verarbeitungsaufgaben in Abhängigkeit vom Inhalt der Zeitplanparametertafel in Tätigkeit treten.
  2. 2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß die Zeitplanparametertafel (STE) wenigstens zwei Sätze von Eintragsebenen aufweist, von denen der eine (Schleifensatz) Parameter zur Steuerung einer Zuteilung von Hauptspeicherraum und Verarbeitungszeit der zentralen Verarbeitungseinheit unter Berücksichtigung der Effektivität der Bearbeitungsaufgaben bei der Ausnutzung der zur Verfügung stehenden Hilfsmittel dient, während der andere (Startsatz) zur Behandlung der dem System neu zugeführten Aufgaben verwendet wird.
  3. 3. Datenverarbeitungssystem nach Anspruch 2, dadurch gekennzeichnet, daß der Startsatz zur Erzielung einer kurzen Antwortzeit dafür sorgt, daß den neu zugeführten Aufgaben Verarbeitungszeit der zentralen Verarbeitungseinheit zugeteilt wird, daß diese Aufgaben den benötigten Speicherraum zugeteilt erhalten und daß sie in die länger laufenden eingereiht werden.
  4. 4. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß ein weiterer Satz von Eintragsebenen (Wartensatz) Parameter zur Behandlung von im Warte-Status befindlichen Aufgaben enthält.
  5. 5. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß ein weiterer Satz von Eintragsebenen (Verkettung-halten-Satz) vorgesehen ist, in welchen die Eintragsebenen Parameter zur Behandlung von Aufgaben aufweisen, die eine Verkettung zu einer Anschlußeinheit des Systems aufrechterhalten, und daß ein weiterer Satz von Eintragsebenen (Auf-Verkettung-warten-Satz) vorgesehen ist, der Parameter zur Behandlung von Aufgaben aufweist, die auf eine Verkettung mit einer Anschlußeinheit des Systems warten.
  6. 6. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß das die Eintragsebenen der einzelnen Sätze für die Zeit- und Speicherraum-Parameter eine wachsende, verzögernde oder schrumpfende Tendenz aufweisen, so daß beim Übergang von einer auf eine andere Eintragsebene wengistens einer dieser Parameter vergrößert (z. B. wachsende Priorität oder Verlängerung der zugeteilten Verarbeitungszeit), verkleinert (z. B. Speicherraumentzug bei schlechter Ausnutzung) oder auf dem gleichen Stand gehalten wird.
  7. 7. Datenverarbeitungssystem nach einem der Ansprüche 1 bis 6 mit einem virtuellen Speicher und systemgesteuerten, automatischen Datenseitenaustausch zwischen Hauptspeicher und externen Speichern, dadurch gekennzeichnet, daß in jeder Eintragsebene folgende Parameter enthalten sind: ein Parameter, der die relative Eintragsnummer der Parameter in der Zeitplantafel angibt, ein Zeitquantenparameter, der den Betrag an Verarbeitungszeit angibt, der einer Aufgaben zugeteilt wird, ein Maximale-Anzahl-Zeitquanten-Parameter, der die maximale Anzahl Zeitquanten angibt; die eine Aufgabe in Anspruch nehmen kann, bevor ein ihr zugeteilter Abschnitt an Verarbeitungszeit der zentralen Verarbeitungseinheit beendet wird, ein Seitenzahlparameter, der die maximal zulässige Anzahl von Seitenaustauschoperationen bis zum Ende eines Verarbeitungszeitabschnittes angibt, ein Eingabe/Ausgabe-Plattenzahl-Parameter, der die maximal zulässige Zahl der zu lesenden oder zu schreibenden Platten eines externen Magnetplattenspeichers bis zum Ende eines Verarbeitungszeitabschnittes angibt, ein Eintragsebenen-Hinweisadressenparameter, der zur Änderung der wirksamen Zeitplanebene dient, wenn vom Benutzerprogramm ein Überwachungsprogramm-Aufruf ausgelöst wird, ein Warten-Parameter, der das maximale Zeitintervall angibt, während dem eine von einer wartenden Aufgabe in Anspruch genommene Seite im Hauptspeicher verbleiben kann, ein Laufzeitwert-Parameter, der das Zeitintervall zwischen zwei Verarbeitungsabschnitten angibt und ein Prioritätsparameter, der in Verbindung mit der geplanten Startzeit die Zuteilung der System-Hilfsmittel zur Aufgabe steuert.
  8. 8. Datenverarbeitungssystem nach Anspruch 7, dadurch gekennzeichnet, daß in jeder Eintragsebene folgende für den Übergang von dieser zu einer anderen Eintragsebene benutzbare Parameter enthalten sind: ein Verarbeitungszeitabschnitt-Ende-Parameter, der eine Hinweisadresse zu einer anderen Eintragsebene der Zeitplantafel enthält und zur Änderung der Ebene benutzt wird, wenn die maximale Anzahl von Zeitquanten oder die maximale Plattenanzahl erreicht werden, ein Maximale-Speicherseitenzahl-Parameter, der eine Hinweisadresse auf eine Eintragsebene bezeichnet, die benutzt wird, wenn ein Verabeitungszeitabschnitt-Ende auftritt, weil für die betreffende Aufgabe die maximale Seitenzahl im Speicher erreicht ist, ein Verkettung-halten-Parameter, der eine Hinweis adresse auf eine Eintragsebene bezeichnet, die benutzt wird, wenn ein Verarbeitungsabschnitt-Ende auftritt und die Aufgabe eine Verkettung zu einer Anschlußeinheit unterhält, und einf Warten-auf-Verkettung-Parameter, der eine Hinweisadresse auf eine Eintragsebene bezeichnet, die benutzt wird, wenn ein Verarbeitungszeitabschnitt-Ende auftritt und eine Aufgabe auf eine Verkettung mit einer Anschlußeinheit wartet.
    L e e r s e i t e
DE19712152604 1970-10-23 1971-10-22 Datenverarbeitungssystem fuer Multiprogrammbetrieb Pending DE2152604A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US8339470A 1970-10-23 1970-10-23

Publications (1)

Publication Number Publication Date
DE2152604A1 true DE2152604A1 (de) 1972-11-16

Family

ID=22178011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19712152604 Pending DE2152604A1 (de) 1970-10-23 1971-10-22 Datenverarbeitungssystem fuer Multiprogrammbetrieb

Country Status (1)

Country Link
DE (1) DE2152604A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1455274A2 (de) * 2003-03-05 2004-09-08 Siemens Aktiengesellschaft Dynamische Verarbeitung von Datenverarbeitungsaufträgen

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1455274A2 (de) * 2003-03-05 2004-09-08 Siemens Aktiengesellschaft Dynamische Verarbeitung von Datenverarbeitungsaufträgen
EP1455274A3 (de) * 2003-03-05 2007-09-05 Siemens Aktiengesellschaft Dynamische Verarbeitung von Datenverarbeitungsaufträgen

Similar Documents

Publication Publication Date Title
EP0333123B1 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE60020817T2 (de) Ablaufsteuerung für Betriebsmittel
DE60008267T2 (de) Verfahren zum planen von zeitverteilten anwendungen in einem rechnerbetriebssystem
DE4227345C2 (de) Verfahren zur Ablaufsteuerung von Prozessen in einem Mehrprozessor-Computersystem
DE10110504B4 (de) Verfahren und Computersystem zur Verwaltung von Threads
EP0762274B1 (de) Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
DE69729822T2 (de) Echtzeit-Taskzuweiser
EP0635784B1 (de) Multiprozessorsystem
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE102004054571B4 (de) Verfahren zur Verteilung von Rechenzeit in einem Rechnersystem
EP0635792A2 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE1499182B2 (de) Datenspeichersystem
DE4207158A1 (de) Speicher-zugriffssteuerung
EP0463207B1 (de) Programmgesteuerte Kommunikationsanlage
EP0466948A1 (de) Kommunikationssystem mit einem der zentralen Steuerung dienenden Multiprozessorsystem
DE10063915A1 (de) Informationsverarbeitungsgerät, das eine Mehrzweckverarbeitung und Transaktionsverarbeitung ausführt
DE2453526A1 (de) Verfahren zur regulierung der belastung einer elektronischen datenverarbeitungsanlage
DE2152604A1 (de) Datenverarbeitungssystem fuer Multiprogrammbetrieb
EP0499213A2 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE2900460A1 (de) Warteschlangenstruktur
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
EP0360897B1 (de) Verfahren und Anordnung zur Behandlung von Unterbrechungsanforderungen und Prozessaufrufen in einem kombinierten Unterbrechungs- und Ablaufsteuersystem für wenigstens zum Teil im Echtzeitbetrieb arbeitende Datenverarbeitungsanlagen
EP0360900B1 (de) Verfahren zur Behandlung der von den einzelnen Prozessen einer Datenverarbeitungsanlage verursachten Arbeitsaufrufe an einen der Prozesse
DE2629311C2 (de)