-
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.