DE2352696A1 - Registrierverfahren mit rueckkopplung fuer programmablaeufe - Google Patents

Registrierverfahren mit rueckkopplung fuer programmablaeufe

Info

Publication number
DE2352696A1
DE2352696A1 DE19732352696 DE2352696A DE2352696A1 DE 2352696 A1 DE2352696 A1 DE 2352696A1 DE 19732352696 DE19732352696 DE 19732352696 DE 2352696 A DE2352696 A DE 2352696A DE 2352696 A1 DE2352696 A1 DE 2352696A1
Authority
DE
Germany
Prior art keywords
program
measurement
data
execution
data processing
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
DE19732352696
Other languages
English (en)
Inventor
Ronald Richard Ragonese
Franklin David Schulman
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 DE2352696A1 publication Critical patent/DE2352696A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

I Ob I θα Ό Böblingen, den 11. Oktober 1973
te-sn/fr/aa/zi · -
Anmelderin: International Business Machines
. Corporation, Armonk, N.Y. 10504
Amtliches Aktenzeichen: ' Neuanmeldung
Aktenzeichen der Anmelderin: PO 970 053
Registrierveyf ahre-n mit -Rückkopplung für' Prögrammabläüfe
Die Erfindung betrifft ein Verfahren zur Registrierung von Programm- und Betriebsablaufen in einer Datenverarbeitungsanlage nach dem Oberbegriff von Anspruch 1, sowie ein Verfahren zur Rückkopplung der Meßergebnisse an deren Betriebssystem.
Zur Überwachung der Leistung allgemeiner Digitalrechner wurden verschiedene Techniken entwickelt, die im allgemeinen in zwei große Kategorien unterteilt werden. Eine Kategorie ist die Programmierung, oder Software d.h. Programme, mit denen Vorgänge innerhalb des Systems verfolgt oder der Zustand des Systems in periodischen Intervallen überprüft werden. Die andere Kategorie ist die Hardware- oder maschinentechnische überwachung, mit der typischerweise die Impulse auf bestimmten Leitungen im Computersystem gezählt und dadurch die zu bestimmten Bauteilen im System gehörende Aktivität angezeigt wird.
Maschinentechnisehe Überwachungsgeräte, sogenannte Monitoren auf Hardware-Basis, sind im wesentlichen Zähl- und Taktgeräte, die prinzipiell auf die Sammlung genauer Daten über mechanische und elektrische Operationen des Computers ausgerichtet sind, d.h. auf seine Zentraleinheit, die Kanäle und jede der zahlreichen Eingabe/ Ausgabegeräte und Steuereinheiten, die an eine Datenverarbeitungsmasehine angeschlossen werden können. Maschinentechnische Meß-
&Θ9819/078Θ
geräte unterscheiden sich in Größe, Funktion, Komplexität und daher auch in den Kosten. Ein Beispiel eines solchen konventionellen maschinentechnischen Meßgerätes ist das IBM System-Meßinstrument (SMI). Das SMI enthält 16 elektronische Zähler mit einer Größe von je 9 Dezimalziffern. Mit ihnen werden Vorgänge gezählt oder deren Zeitdauer gemessen. Die Zeiteinteilung wird gemessen durch Zählen von Megahertzimpulsen von einem Oszillator, der durch, einen überwachten Vorgang ausgelöst wird. Bei dieser Zählrate kann jeder Zähler bis zu 27,7 Stunden laufen, bevor er wieder die Stellung O erreicht.
Der SMI akkumuliert summierte Zeitschritte und/oder das Auftreten von Aktivitäten, Funktionen oder Vorgängen, indem er in digitaler Form die Dauer einer vom Computer signalisierten Periode zählt. Akkumulierte Gesamtsummen stehen am Ende einer Meßperiode zur Verfugung. Der SMI kann an jeden logischen Bereich in einem Computersystem entweder über eine feste Anschlußstelle oder durch manuelles Anbringen von überwachungssonden an ausgewählten Anschlüssen im Computersystem angeschlossen werden.
Außer dem Zählmechanismus verfügt der SMI noch über eine Kombinationsschalttafei für logische Verknüpfungen, deren Verdrahtung der Benutzer auf dem Steckbrett durchführt. Diese Kombinationsschalttafel ermöglicht Funktionen wie die Kombination oder Trennung von zwei oder mehreren Vorgängen, das Auftreten einer oder mehrer Vorgangs gruppen, die Abwesenheit des Vorganges, automatische Start- und Stopoperationen usw.
Überwachungsmaschinen wie die SMI bieten verschiedene Vorteile, die im allgemeinen durch Programm-Auswertungsmethoden nicht geboten werden. Diese Maschinen können zu folgendem benutzt werden?
a) Messung der Systemleistung ohne Einführung irgendwelcher Verzögerungen, Störungen oder Überlagerungen?
b) gleichzeitige Messung zahlreicher Vorgänge?
c) Erzielung von Meßergebnissen ohne hierzu Systemkomponenten wie Kernspeicher, ZentraleinheitEingabe/Äusgabeleitungen und/ Geräte zu belegen»
PO 970 053
780
Das SMI-Gerät und seine Vorläufer wurden in folgenden Meßbereichen eingesetzt:
a) Beobachtung von Rechnerzeit, Wartezeit, Kanalbenutzung und Überlappungszeit zwischen Zentraleinheit und Kanal;
b) Identifizierung und Untersuchung der Engpässe im System durch Berücksichtigung der CPU-Belastung, Kanaltätigkeit und der Benutzung von Steuereinheit und EA-Geräten;
c) Vorbereitung zum Ausbau und zur Vergrößerung von Verarbeitungseinheiten durch Rechtfertigung der Verbesserung und durch Auswertung der resultierenden erhöhten Leistung und Kapazität;
d) Verbesserung der Programme durch Identifizierung von Programmschleifen, ihre wahre Größe und Benutzungsfrequenz;
e) Vorbereitung von Zuverlässigkeit- und Wartungsberichten und Untersuchung der Gesamtleistung allgemein.
Bei der Überwachung mit Hilfe von Programmen wird prinzipiell die Benutzung (oder Nichtbenutzung) der verschiedenen Komponenten des Datenverarbeitungssystems gemessen, die im allgemeinen innerhalb eines Betriebssystems liegen. Überwachungsprogramme müssen im allgemeinen zwischen das oder die Programme geschoben werden, die sie zu messen versuchen. Einige bisher gebräuchliche Programme zur Leistungs-Auswertung sind als überbau des gemessenen Stexierprogrammes so ausgelegt, daß Daten zur richtigen Zeit gesammelt und auf eine bestimmte innerhalb des Systemes ablaufende Funktionen bezogen werden können. Allein die Existenz des Programm-Meßgerätes und die damit verbundene Notwendigkeit, die von diesem Meßwerkzeug gesammelte Information auf irgendein externes Medium auszugeben, bringt eine Gesamtbelastung mit sich, die die Genauigkeit der gesammelten Daten wiederum beeinflußt. Die Daten müssen nicht in einem vom Menschen erkennbaren oder lesbaren Format ausgegeben werden. Separate Datenreduzierungsprogramme, die diese Daten analysieren und sie in Tabellen oder Matrixformat vorbereiten, werden als Programmattribute eines überwachungsprogrammes angesehen.
Die Programm-Meßeinrichtungen haben im allgemeinen den Nachteil, po 970 053 409819/07 60
daß sie die Zeitfaktoren während.der Auswertung vergrößern; das trifft nicht auf maschinelle überwachungseinrichtungen zu, wodurch man diese, wenn möglich, beim Betrieb bevorzugt einsetzt. Maschinelle Überwachungseinrichtungen haben jedoch unglücklicherweise verschiedene eindeutige Schwierigkeiten aufzuweisen:
1. es muß entschieden werden, welche und wie viele Funktionen das Maschineninstrument zu überwachen hat, und ob die gesamte überwachung gleichzeitig erfolgen kann oder verschiedene Durchläufe erfordert;
2. komplexe Überwachungsgeräte sind teuer zu bauen und können Fachpersonal für ihren Betrieb benötigen;
3. Überwachungsgeräte lassen sich weder leicht noch einfach ändern, vergrößern und warten»
Bei der Suche nach Lösungen der obigen Probleme bieten sich programmierte Überwachungen an, die diese Schwierigkeiten in großem Ausmaß vermeiden. Obwohl die Kosten für die Programmüberwachung am Anfang sehr hoch sind, werden diese hohen Kosten durch die leichte Änderung, Wartung und Umkonstruktion der Überwachungsprogramme wieder ausgeglichen. Fachpersonal oder eine besondere Ausbildung sind zur Benutzung dieser Überwachungsprogramme im allgemeinen nicht erforderlich. So zeigt jedes Leistungsauswertungsgerät jeweils in seinem eigenen definierten Bereich seine Überlegenheit. Verschiedene in Wechselbeziehung stehende Faktoren, die sich alle um den Bedarf des Benutzers drehen, verschieben die Balance zur einen.oder anderen Technik. Wenn sich der jeweilige Bedarf ändert, werden durch entsprechende Auswahl der Meßeinrichtung alle gewünschten Daten mit einem hohen Grad an Zuverlässigkeit und Genauigkeit geliefert.
Obwohl die verschiedenen Vorteile bisher bekannt waren, die maschinelle und Programm-Meßtechnik aufweisen, konnte man bisher die gewünschte Kombination beider Meßtechniken nicht so steuern, daß zwischen den geeigneten Techniken automatisch umgeschaltet wurde. In der heutigen Meßtechnologie kann man die Kombination von maschinen- und programmtechnischen Instrumenten noch nicht automatisch steuern.
po 970 053 409819/0760
Aufgabe der vorliegenden Erfindung ist dementsprechend, ein Verfahren anzugeben, welches sowohl Hardware- als auch Software-Techniken zur Leistungsmessung einer Datenverarbeitungsanlage heranzieht und damit ein möglichst flexibles, genaues und umfassendes Untersuchungsinstrument für komplexe Rechenanlagen darstellt.
Diese Aufgabe wird nach den im Anspruch 1 angegebenen Merkmalen gelöst, Weitere. Ausgestaltungen und vorteilhafte Weiterbildungen sind den Unteransprüchen zu entnehmen.
Das hier verwirklichte Konzept eines Steuerprogramms für die Leistungsüberwachung, welches Hardware und Software aktivieren kann, stellt zum ersten Mal ein Instrument zur Verfügung, welches ein vollständiges Bild der Vorgänge in einer Datenverarbeitungsanlage vermitteln kann. Die Vorteile, und allgemeinen Eigenschaften dieser Einrichtung sind im folgenden beschrieben.
Obwohl die selbstregelnde Rückkopplung für Computersysteme schon früher vorgeschlagen wurde, wurde bisher noch keine Einrichtung bekannt gemacht, mit der dieser Vorgang möglich ist. Die vorliegende Erfindung zeigt zum ersten Mal einen bedeutungsvollen allgemeinen Weg für die Praktizierung der selbstregelnden Rückkopplung während des Betriebes eines allgemeinen Digitalrechners. Es wird ein Verfahren beschrieben, welches sich während der Ausführung des Programmes anwenden läßt, um durch Nachregelung des Systembetriebes das System wirkungsvoller arbeiten zu lassen. Der verbesserte Wirkungsgrad des Systemes resultiert nicht unbedingt in einer "schnelleren Ausführung eines vollständigen Programmes, sondern er kann auch die Systemkosten für-die Ausführung des Programmes durch eine genauere Steuerung der Systemkomponenten reduzieren oder das System auf eine bessere Leistung in einer bestimmten Art und Weise ausrichten.
Die Erfindung liefert ein einmaliges maschinen-Zprogrammtechnisches Meßsystem, welches seine eigenen Operationen überwachen und die ' internen Einstellungen im.System so regeln kann, daß dessen
po 970 053 409819/0780 " -
Gesaitit-Wirkungsgrad verbessert wird. Das System umfaßt eine Programm-Meßeinrichtung, die in breitem Rahmen wichtige interne Vorgänge innerhalb der Ausführungsprogramme überwachen kann, und ' eine Maschinenmeßeinrichtung,-die gleichzeitig Operationen der Zentraleinheiten, Hauptspeicher, Kanäle und der peripheren Geräte überwacht. Während der Ausführung eines Programmes werden programmtechnische und maschinentechnische Messungen vorgenommen und davon eine Rückkopplung erzeugt, mit der Maschinen- und Programmkomponenten im System so geregelt werden, daß der Wirkungsgrad des Systems während der restlichen Ausführung des Programmes erhöht wird. Der Begriff "Programme" umfaßt hier auch die als Mikroprogramme bekannten Programme.
Durch die Erfindung wird die Flexibilität der Systemmeßeinrichtungen für Programm- und Maschinenmeßanlagen in einer bisher praktisch nicht bekannten Art erweitert und vergrößert, indem eine Programmsteuerung der Maschinenmeßeinrichtungen vorgesehen wird. Sie ermöglicht ein Meßsystem, welches Messungen als Teil eines mit Multiprogrammierung und/oder mit Multiprozess-Verfahren arbeitenden Datenverarbeitungssystemes vornehmen kann.
Das Meßsystem wird dadurch gesteuert, daß das Programm Meßzähler wahlweise startet und stoppt. Das Programm gestattet die Steuerung der Meßpunkte während der Ausführung eines Programmes. Mit fortlaufender Messung können zusätzliche und/oder andere Meßpunkte basierend auf der Rückkopplung und Analyse der bereits gewonnenen Meßdaten ausgewählt werden.
In ein Programm können automatisch vor seiner Ausführung Meßpunkte eingesetzt werden durch ein Messungseinstellprogramm (MSP), welches automatisch Verfolgungspunkte, sogenannte Aufhänger für das Verfolgung sprogramm (TRACE-Programm) in das Programm am Anfang und Ende seiner Gesamtschleife einschiebt. Die Aufhänger werden automatisch dadurch festgelegt, daß das MSP die zur Identifizierung eines Meßpunktes benutzte Codierung überlagert und ersetzte
PO 970 053
Die Erfindung erkennt den Anfang und das Ende der Gesamtschleife die sich in praktisch allen stark benutzten Computerprogrammen findet. Die Gesamtschleife ist die größte im Programm vorkommende Schleife, die wiederholt die Hauptaufgabe des Programmes ausführt. Die Gesamtschleife kann Unterschleifen, verzweigte Routinen, Anforderungen .für externe Routinen usw. enthalten und sie kann rekursiv sein. Die Gesamtschleife ist der Haupt teil eines Pro·^ grammes, der sich nach der Einleitung und dem Anfangsteil und vor den Endroutinen und dem Beendigung steil befindet. Die Erfindung nimmt Messungen- während eines oder mehrerer Durchgänge durch die Gesamtschleife vor und die Meßinformation wird während der verbleibenden Wiederholungen der Gesamtschleife dazu benutzt, für die Ausführung des Programmes eine größere Systemwirksamkeit zu erzielen. Die Anzahl von Meßwiederholungen wird bestimmt durch die Art des Programmes und die Anzahl seiner nötigen Wiederholungen. Eine einzige Meßwiederholung reicht aus,, um eine aussagekräftige Rückkopplung für solche Programme zu erhalten, die bei jeder Wiederholung in gleichmäßiger Weise Systemkomponenten benutzen. Mehrfache Meßwiederholungen sind für Programme erforderlich, die Systemkomponenten ungleichmäßig benutzen? für jede Art von Messung wird der Durchschnittswert für die Meßwiederholungen ermittelt. Die Anzahl von Wiederholungen kann ebenfalls dadurch selbst bestimmt werden, daß man mindestens zwei Meßwiederholungen dazu benutzt, um festzustellen, ob die Messungen über verschiedenen Wiederholungen relativ konstant sind oder nichtο Sind sie relativ konstant, werden keine weiteren Meßwiederholungen gemacht. Sind sie nicht konstant, wird eine größere Anzahl von Meßwiederholungen vorgenommen, wobei die Anzahl in den Einstellroutinen des Anwendungsprogramms vorgegeben sein kann oder dadurch selbst bestimmt wird, daß man die Meßwiederholungen abbricht, wenn die Durchschnittsmessungen durch einen nächsten Durchgang nicht wesentlich verändert werden.
Ein Messungssteuerverfahren (MCM) benutzt bei der Programmausführung die eingeschobenen Aufhänger, um die erforderliche Meßtätigkeit zu steuern, wenn ein solcher Aufhänger während der Aus-
po 970 053 "409819/0760-
führung erreicht wird. Die Ausführung eines jeden Aufhängers erzeugt ein Signal, welches das Meßsteuerverfahren kontrolliert. Die Aufhänger können am Ende des Meßdurchganges herausgenommen werden und jeder überlagerte und ersetzte Code kann wiederhergestellt werden, so daß der Code für den Aufhänger nicht in dem Programmcode verbleibt und dadurch die spätere Ausführung des Programmes behindert oder diese verlangsamt.
Die Rückkopplungssteuerung umfaßt ein Analyseprogramm, welches mit den Messungen Anpassungen der Systemparameter und die Zu- ■ Ordnung von Systemkomponenten bestimmt (d.h. Ausführungspriorität, Speicherbereichszuordnungen, Zuordnung von E/A-Geräten usw.), um den Gesamt-Wirkungsgrad des Systemes zu erhöhen.
Die Erfindung liefert ein selbstregelndes Leistungs—Meßsystem, welches in einem Datenverarbeitungssystem, das in Multiprogrammierung und/oder Mehrfachverarbeitung läuft, eingesetzt werden kann. Die Erfindung sieht eine Programmsteuerung für ein Systemmaschinenüberwachungsgerät vor, "um ein einzigartiges, aus einer Kombination von Programm- und Maschinenmeßtechnik bestehendes System zu erhalten. Die Programmsteuerung kann wesentliche interne Vorgänge, während der Programmausführung im Datenverarbeitungssystem .überwachen, während gleichzeitig die Maschinenüberwachungsoperationen für die Zentraleinheit, die . Kanäle und die peripheren Geräte aktiv sind. Während einer Ausführung eines Programmes kann die Erfindung die notwendigen Messungen vornehmen, die Meßinformation zusammenfassen, eine Rückkopplungsinformation aus der zusammengefaßten Messung erzeugen und die Parameter und Komponenten des Systems neu einstellen, um einen wirksameren Betrieb der Systemkomponenten zu ermöglichen.
Die Erfindung liefert eine zusätzliche Programmsteuerung für ein Maschinenmeßgerät, welches normalerweise nur mit von permanent oder zeitweilig an elektrische Leitungen in einem Datenverarbeitungssystem angeschlossenen Prüfstellen gelieferten Eingangssignalen arbeitet. Auf diese Weise kann die Erfindung die
409819/0760
PO 970 053
Meßmöglichkeiten des Maschinengerätes in einer bisher nicht praktizierten Art erweitern und vergrößern.
Für bestimmte Leistungsmessungen von Datenverarbeitungssystemen standen bisher bestimmte Meßgeräte zur Verfügung. Ein Hauptproblem bildete bisher jedoch eine genaue Leistungswiedergabe der Operation digitaler Systeme. Die Schwierigkeit bei der Auswertung der Leistung heutiger Systeme liegt in der komplexen gegenseitigen Beeinflussung zwischen Maschinen- und Steuerprogrammausrüstung. Diese .gegenseitige Beeinflussung neigt dazu, die eigentlichen Vorgänge im System zu verdunkeln. Die laufend steigende Ausführungsgeschwindigkeit der Programme bei neueren Systemen vergrößert diese Schwierigkeiten noch weiter. Die vorliegende Erfindung vermeidet diese Schwierigkeiten.
Die Steuerung der Hardware erfolgt beispielsweise a) durch die Einrichtung zur direkten Kontrolle und die Instruktion "Schreibe direkt" (WRD), die sich in einem Computer* wie z.B. IBM System 360 findet? (beschrieben in der IBM Broschüre A 22-6845) oder b) durch die Diagnose-Instruktion (die von ihr ausgeführten Funktionen sind dem IBM-Handbuch mit der Form Nr0 A22-6821 zu entnehmen) oder c) durch die überwachungsrufInstruktion (MC), beschrieben im "IBM System/370 Principles of Operation" Form Nr. GA22-7OOO-1. Jede dieser Instruktionen erzeugt oder gibt einen elektronischen Impuls oder ein Signal als Teil ihres Äusführungsprozesses ab. Jedes Maschinenelement, das einen solchen Impuls oder ein Signal abfühlen kann/wird durch Vorhandensein und Fehlen dieses Impulses oder Signales gesteuert. Demzufolge lenkt und steuert die Ausführung solcher impulsabgebender Instruktionen ein Maschinenmeßgerät unter allen gegebenen Programmbedingungen.
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden anschließend näher beschrieben. Es zeigen:
Fig. 1 ein gesamtes Datenverarbeitungssystem, welches
"5 D
ein" Ausführungsbeispiel der Erfindung enthält,
po 970.053 4098 19/0760
2152696
in dem der Hauptspeicher mit Bezeichnung der Hauptregionen im Speicher während des Betriebes des Systemes gezeigt ist,
Fig. 2 die Reihenfolge der Schritte, die das Meßsteuerverfahren (MCM) der Erfindung bilden,
Fig. 3 die Fign. 3A, 3B und 3C umfassend das Überwachungssteuerverfahren (Montrol) zur Analyse der Unterbrechungen,
Fig. 4 die Fign. 4A und 4B umfassend die Meßeinstell
routine (MSR) für das Einsetzen von Meßpunkten in die Systemprogramme und Anwendungsprogramme, für die Programmdaten gesammelt werden sollen,
Fig. 5 ein Verfahren zum Betreiben der MSR-Routine im
Supervisor-Betrieb um auch Systemroutinen mit Meßpunkten versehen zu können und andere Supervisorfunktionen entsprechend für die Programm-Überwachung zu modifizieren,
Fig. 6 die Fign. 6A„ 6B und 6C umfassend ein Beispiel
eines Rückkopplungssteuerprogrammes (MSFCP), in dem die Meßdaten geprüft werden, um eine bevorzugte Job-Reihenfolge zu bestimmen und bei einer ausstehenden Zuordnung-Anforderung des Plattenspeichers ein Verfahren zur Auswahl jenes" speziellen Plattenuntersystems, welches den wirkungsvollsten Betrieb liefert,
Fig. 7 in einem Diagramm den logischen Aufbau eines
Anwendungsprogrammes.mit der Lage von Start- und Endprüfpunkt relativ zur Gesamtschleife.
Po 970053 409819/0760
Fig. 8 in einem Diagramm das Meßsteuerprogmm, welches
zeigt, daß am Ende der aufeinanderfolgenden Schritte ein Bereich freigehalten wird, um den überlagerten/ausgetauschten Code vom An-' wendungsprogramm in Fig.. 7 zu speichern,
Fig. 9 bestimmte Zeitabschnitt der Komponententätigkeit
gemessen über der Periode einer Prozeßschleife, und
Fig. 10 in einem Diagramm verschiedene Arten von Trace
(Verfolgungs)-aufzeichnungen, die man durch einen Prüfpunktmechanismus erhalten kann.
Das Ausführungsbeispiel der Erfindung wird im Zusammenhang mit den dem handelsüblichen IBM System 360, seinem universellen Befehlssatz und seinem Betriebssystem (OS/360) für entweder eine feste oder eine veränderliche Anzahl von Aufgaben (Tasks) (OS/360 MFT oder MVT) beschrieben. Verschiedene ausgewählte Funktionen oder Vorgänge-, die innerhalb eines Systems 360 Während der Ausführung eines Programmes unter dem Betriebssystem ablaufen, können bei ihrem Auftreten überwacht und gezählt werden. Das Ausführungsbeispiel arbeitet mit einem Hardware-Überwachungsgerät (wie z.B. dem SMI) , das mit einem einzigen Programm zur Verfolgung des Ablaufs von Anwendungsprogrammen (sog. Verfolgungssteuerprogramm oder Meßsteuerprogramm) durch die direkte Steuereinrichtung und den direkten Schreibbefehl des Systems 360 synchronisiert ist. Unter vorgegebenen Bedingungen gibt das Systemverfolgungssteuerprogramm einen direkten Schreibbefehl zum Start vordefinierter Zähler innerhalb des Überwachungsgerätes ab. Jede Schwankung oder Änderung innerhalb einer vorgegebenen Einstellung veranlaßt eine sofortige Beendigung der Zähloperation des vordefinierten Zählers.
PO 970 053 409819/0760
Die auszuwertenden Systemfunktionen werden vom Benutzer durch Verfolgungsprogrammparameter und physikalische Verbindungen der Prüfspitzen des Überwachungsgerätes mit der Maschinenausrüstung des Systems /360 vorbestimmt. Wenn die resultierenden Messungen sich auf dieselbe Aktivität beziehen, liefern die kombinierten Statistiken ein Gesamtbild der Arbeit, die das laufende Rechnersystem für den Benutzer ausführt. Die Erfindung kann daher diese simultane komplementäre Messung liefern, die vorher nicht existierte.
Wenn kombinierte Messungen nicht erforderlich sind, koordiniert die Erfindung die Tätigkeiten der maschinellen und programmtechnischen Messungen innerhalb deren separaten Bereiche, für die jedes Meßverfahren am besten geeignet ist.
Das Programmverfolgungs-Steuerprogramm kann auch die Einrichtungen des Betriebssystems nutzen, die mittels verschiedener Makroinstruktionen für die Datenverwaltung und Eingabe/Ausgabeoperationen vorgesehen sind. Innerhalb der Struktur des Betriebssystemes kann das Verfolgungssteuerungsprogramm der Erfindung auch die Prioritätsauswahieinrichtung und die Speicherschutzeinrichtung benutzen, wenn diese in einer Zentraleinheit zur Verfügung stehen. Eine Sonderversion eines Betriebssystemes oder eine besondere Systemgenerierung ist nicht erforderlich. Das Verfolgungssteuerprogramm läuft unter dem Betriebssystem genauso wie irgendein Problemprogramm. Es sollte daher aufgestellt und initialisiert werden unmittelbar bevor die Leistungsmessungen vorgenommen werden. Nachrichten an die Bedienungskraft können die Herstellung aller erforderlichen Anschlüsse so bewirken, daß Prüfpunkte an den richtigen Stellen in dem zu verfolgenden Programm automatisch eingeschoben werden.
Bevor die Messungen beginnen oder der Normalbetrieb fortgesetzt werden kann, bettet sich die Programmkomponente des Ausführungsbeispieles selbst in das Betriebssystem-Steuerprogramm ein und gestattet so das Feststellen von Vorgängen, sobald sie auftreten
po 970 053 AQ981 9/0 76 Q
und die richtige Synchronisation der Hardware-Überwachung. Zu diesem Zweck werden Prüfpunkte oder "Aufhänger" (Modifikationen des existierenden Code) an ausgewählten Stellen in die Betriebssystem-Steuerprogramme gesetzt. Ein "Aufhänger" ist definiert als ein Codesegment in Maschinensprache, welches vorübergehend in ein Objektprogramm an einer vorbestimmten Stelle gesetzt wird. Diese Aufhänger werden durch das Verfolgungssteuerprogramm erkannt und ermöglichen die Durchführung einer spezifischen Messung, wenn dieser Teil des Instruktionsstromes erreicht ist. Mit den Aufhängern wird eine Verbindung zur programmtechnischen und zur maschinentechnischen überwachung hergestellt. Durch die Aufhänger erkennt der Verfolgungsmechanismus" das Auftreten von Vorgängen und führt gegebenenfalls eine spezifische Aktion durch, wie z.B. Start/Stopp der· vom Maschinenüberwachungsgerät ausgegebenen Meßdaten, Sammlung von Meßdaten, vollständige Ignorierung des Vorganges usw. Nach dem Fällen der jeweils angemessenen Entscheidung und dem Ergreifen der Maßnahmen wird der Code, der durch den Aufhänger ersetzt wurde, in der richtigen Reihenfolge ausgeführt und es folgt-der normale Betrieb. Danach sind die Bedingungen für Meßzwecke vorhanden.
Bei Beendigung der gesamten Meßtätigkea.t werden die Aufhänger ■ automatisch aus dem Betriebssystem durch das Verfolgungssteuerverfahren herausgenommen und der ursprüngliche Zustand des Betriebssystemprogrammes wiederhergestellt. Während dieses ganzen Wiederherstellungsprozesses kann das Betriebssystemprogramm so weiterlaufen, als ob das Verfolgungsprogramm nie existiert hätte. Zum Zeitpunkt der Systemrückstellung ist die gesamte Operation für jeden Benutzer vollkommen transparent.
Das Einsetzen der verschiedenen Aufhänger in das Betriebssystem bestimmt teilweise die Aktivitäten, die überwacht und gemessen werden. Das Verfolgungsprogramm ist in Modulform geschrieben, so daß zu messende Funktionen leicht mit minimaler oder keiner · Beeinflussung des restlichen Programmes hinzugefügt oder abgezogen werden können. In die folgenden Makroinstruktionen für das OS/36O
po 970 053 40 98 19/076 0
lassen sich leicht von einem Fachmann solche Aufhänger einbauen.
ATTACH - neue Task erstellen und ihren Eintrittspunkt
angeben.
DETACH - eine Task aus dem System nehmen. EXCP - Übertragung von oder zu einer E/A-Einheit "
anfordern.
ENQUEUE - einer Systemkomponente eine Task zuordnen und
diese festhalten, bis DEQ gegeben wird.
DEQUEUE - eine Komponente wieder für das System freigeben. SYSTEM WAIT - Leerlaufzeit des Systems. POST - ein "Beendet"-Kennzeichen setzen, wenn
ein Vorgang aufgetreten ist. TASK SWITCH - Steuerung von einer Task auf eine andere
übergeben.
I/O INTERRUPT - Unterbrechung von einem E/A-Gerät. OPEN - Datensatz zur Verarbeitung vorbereiten.
CLOSE - Verarbeitung des Datensatzes beenden.
Messungs steuerung erhält man beim Auftreten der oben angegebenen Systemvorgänge, wodurch spezifische Information zum Zeitpunkt des Auftretens eines jeden Vorganges gesammelt werden kann, um ein vollständiges Bild der Operation und der gegenseitigen Beeinflussung der Komponentprogramme im Betriebssystem zu gewinnen. Man kann z.B.:
1. die Systembenutzung berechnenι
2. Task identifizieren und die Anforderungen einer jeden Task an das Betriebssystem zählen und zeitlich messen;
3. die Gesamtausführungszeit einer jeden Task bestimmen;
4. Benutzung und Dauer der Benutzung eines oder mehrerer Peripheriegeräte errechnen;
5. die Leerlaufzeit der CPU summieren;
6. die verstrichene Gesamtzeit entweder als Systemfunktionszeit oder als Taskausführungszeit oder als
po 970 053 409819/0760
Systemleerlauf- oder -wartezeit aufführen;
7. programmgesteuerte Unterbrechungen zählen und von anderen Unterbrechungen trennen und die Seit zur Verarbeitung einer E/A-Unterbrechung berechnen;
8. einige E/A-Fehler ihrer Art und ihrem Gerät nach erkennen und die Zeit zu ihrer Korrektur berechnen;
9. Werte über Benutzung der Datensätze, Anzahl der Rückgriffe auf einen Datensatz und Zugriffsverfahren sammeln usw.; ■
Mit dem Auftreten eines bestimmten Vorganges wird eine separate Aufzeichnung mit veränderlicher Länge in einem Arbeitspuffer geschaffen. Jede Aufzeichnung kann eine eindeutige Bezeichnung und einen Zeitstempel tragen, d.h. die relative Zeit, gemessen in Mikrosekunden, angeben, die seit dem letzten aufgezeichneten Vorgang vergangen ist. Der Rest einer jeden Aufzeichnung vzird durch den individuellen Vorgang selbst bestimmt. Adressen von Steuerblocks, Kennzeichenbits, Namen (Job, Step, Programme, Datendefinition), Schutzschlüssel, Einheitenadressen und Lagebezeichnungen sind einige der möglichen Daten, die durch die Programmkomponente der Erfindung gesammelt werden können.
Wenn jede Aufzeichnung vollständig ist, wird sie in einen Aus- gabepuffer im Hauptspeicher gegeben. Die Angabe der Puffergröße sowie des Aufzeichnungsgerätes für diese Puffer bleibt dem Benutzer überlassen.
Wenn der Ausgabepuffer gefüllt ist, wird sein Inhalt auf eine externe Einheit übertragen. Wegen des großen Datenvolumens, das bei niedrigen Kosten gesammelt werden kann, kann man dazu ein Band benutzen, andere Ausgabemedien sind jedoch ebenso geeignet. Zu einem späteren Zeitpunkt können Datenreduz.ierungs-'Ausgabeprogramme die Verfolgungsaufzeichnung nach Bedarf bearbeiten, um die gewünschten Messungen und Statistiken zu ordnen und zu analysieren. Die von der Verfolgungseinrichtung überwachten Grundfunktionen ermöglichen die Informationssammlung über fast jede Phase des Betriebssystems.
10 9 8 1 9 / 0 7 6 0
PQ 97O 053
Mit dem Maschinenüberwachungsgerät können Daten über den elektronischen Betrieb des Systems gesammelt werden. Die Information muß aus der Verfolgungsaufzeichnung und dem Maschinenzähler nach dem jeweiligen Bedarf herausgezogen werden. Es ist daher dem einzelnen Benutzer überlassen, seine Meßziele zu bestimmen und die verfügbaren Daten zum Erreichen dieser Ziele zu benutzen.
Fig. 1 zeigt einen allgemeinen Digitalrechner, wie z.B. ein IBM System /360, der eine Zentraleinheit (CPU) 13, einen Hauptspeicher 10, die Kanäle 15, Steuereinheiten 16 und -17 und E/AGeräte 18 bis 23 umfaßt. Obwohl darstellungsgemäß nur zwei Steuereinheiten an die· Kanäle 15 angeschlossen sind, können in einem tatsächlich vorhandenen System mehrere angeschlossen werden. Es sind auch nur nach der Darstellung drei E/A-Geräte an jede Steuereinheit angeschlossen. In der Praxis kann jede Steuereinheit viel mehr E/A-Geräte bedienen. Unter dem Ausdruck E/A-Gerät versteht man periphere Geräte, wie Drucker, Locher, Trommelspeicher, Datenzellen, Bandeinheiten, Platteneinheiten, Datenstationen und jede Art von mit einem Digitalrechner verwendbaren E/A-Gerät.
In Fig. 1 ist auch ein Maschinenraeßgerät 24 an die CPU 13 und di& Kanäle 15 angeschlossen dargestellt. Eine Ausgabeeinheit 25, wie z.B. eine Bandeinheit, ist an das Maschinenmeßgerät so angeschlossen, daß die Maschineninformation in ein solches separates Speichergerät ausgegeben werden kann. Im allgemeinen wirkt die Ausgabe des Maschinenmeßgerätes 24 jedoch als Eingabe über die Leitung 26 zum Hauptspeicher 10, wo die Maschinenmeßergebnisse mit den Programmüberwachungsergebnissen kombiniert werden können, um ein vollständiges Bild der Arbeitsweise des Systems zu erhalten.
Während das in Fig. 1 gezeigte Ausführungsbeispiel der Erfindung ein separates Maschinenmeßgerät, wie z.B. den IBM Grundzähler (BCU) oder das Systemmeßinstrument (SMI) zeigt, kann dieses Gerät natürlich auch in einem allgemeinen Digitalrechner eingebaut
PO 970 053 4098 19/0760
sein und braucht kein separates Gerät zu sein.
Im hier gezeigten Ausführungsbeispiel umfaßt die das Meßgerät und die CPU 13 verbindende Leitung 26 die direkte Leseleitung (RDD) und die direkte Schreibleitung (WDD), durch die das Meßgerät ohne Umweg über die Kanäle gestartet und gestoppt werden kann.
Bei 14 ist eine Konsole gezeigt, wo eine Bedienungskraft Schalter zur Steuerung der Systemoperation in dem Umfang betätigen kann, der von den Konstrukteuren der Maschine vorgesehen wurde.
Der Hauptspeicher 10 wurde in Segmente unterteilt, die die Verteilung des Hauptspeicherinhältes angeben.' Die Systemprogramme sind z.B. bei HA und HB mit der Bezeichnung OS (Betriebssystem) gezeigt» Bei 12 ist der Problemprogrammbereich dargestellt, der in verschiedene Bereiche oder Abschnitte eingeteilt ist, von denen jedem eine andere Aufgabe (Task) bei der Multiprogrammierung zugeordnet werden kann» So kann eine Task A mit einem bestimmten Anwendungsprogramm verbunden werden, die Task B mit demselben Programm und die Task C und D usw. können Aufgaben sein, die zu anderen Programmen gehören. Der Hauptspeicher 10 enthält auch eine Task für das MeßSteuerprogramm, zu der die Verfahren dieser Erfindung gehören.
Fig. 2 zeigt die einzelnen Schritte, die. von der für die Erfindung wesentlichen Programmsteuerung unternommen werden. Das Meßsteuerverfahren (MCM) beginnt mit der üblichen Initialisierungsfunktion bei 100, wo die Konstanten und Variablen festgesetzt werden, wo im Speicher Bereiche zum Sammeln von Daten vorbereitet werden und wo zahlreiche andere Verwaltungsfunktionen durchgeführt werden, die zu diesem Zeitpunkt ausgeführt werden müssen.
Im nächsten-Schritt 101 werden die Systemsteuerprogramme (SCP) und die aufzuhängenden Anwendungsprogramme ausgewählt und im
PO 970 053 4098 19/07 60
Schritt 102 die Aufhänger in die ausgewählten Programm eingeschoben. "Aufhänger" sind definiert als Verzweigungserzeugerelemente, die in die ausgewählten Programme an bestimmten Punkten so gesetzt werden, daß eine Verzweigung zum Meßsteuerprogramm an diesen Punkten erfolgt. Gemäß späterer Beschreibung nutzt die Erfindung Unterbrechungserzeugungsinstruktionen für diese Aufhänger. Während in manchen Fällen die Aufhänger in die Anwendungsprogramme oder die SCP-Routinen vor ihrem Eintritt in das System eingebaut werden können, so erlaubt die Erfindung, daß die Aufhänger in diesem Verfahrenspunkt dynamisch in die ausgewählten Programme eingesetzt werden. Das dynamische Einsetzen von Aufhängern erfolgt in der Meßeinstellroutine (MSR), die in Fig. 4 gezeigt ist und später genauer beschrieben wird.
Der erste Schritt der MSR ist der übliche Initialisierungsschritt 200, in dem ein Basisregister festgelegt und andere gewöhnliche Verwaltungsfunktionen zum Einsetzen der MSR-Routine wahrgenommen werden. Die nächste bei 2Ol gezeigte Operation besteht darin, das MSR-Programm in den Supervisorbetrieb zu setzen, um verschiedene Systemsteuerblocks oder den Systemcode in einer für die überwachung notwendigen Art zu modifizieren. Das erfolgt durch die mit ORPl bezeichnete Routine, die im einzelnen in Fig. 5 dargestellt ist.
Die ORPl-Routine ist im wesentlichen eine Reihe von Kommunikationen zwischen dem Programm und der Bedienungskraft, in denen die Bedienungskraft verschiedene manuelle Operationen an der Konsole ausführt. Das Meßprogramm wird im wesentlichen durch drei Schritte in den Supervisorbetrieb gesetzt. Der erste Schritt ist bei 3OO gezeigt. Die Bedienungskraft wird aufgefordert, die Eingabe zu definieren und anzugeben, ob ein Eingreifen zu einem späteren Zeitpunkt des Programmes notwendig wird. Zu diesem Zeitpunkt muß die Bedienungskraft Bänder aufwickeln oder andere nötige Arbeiten für die Operation ausführen und danach analysiert das Programm die Eingabedaten bei 301, um' festzustellen, ob die Bedienungskraft alle nötigen Anfangs-
po 970053 409819/0760
arbeiten vorgenommen hat. Da sich diese nötigen Arbeiten der Bedienungskraft von einem System zum anderen ändern, wurde hier nicht versucht,.diese Aktivitäten weiter zu definieren. Wenn diese Anfangseinstellungen richtig vorgenommen sind, bringt das Programm das System zu einem Stop, d.h., es stellt sicher, daß kein anderes Programm verarbeitet wird, und gibt dann eine Nachricht an die Bedienungskraft aus, die ihr sagt, daß das neue PSW für die externe unterbrechung durch Steuertasten auf der Konsole zu verändern ist. Diese Nachricht liefert der Bedienungskraft auch die Adresse des neuen externen Unterbrechungs-PSW (Programmstatuswort) j, obwohl aller Wahrscheinlichkeit nach die erfahrene Bedienungskraft diese Speicherstelle von den Handbüchern her kennt, die diese Information liefern. Die auszuführende Änderung besteht in der Adressierung des neuen PSW und im Hinweis auf die Meßeinstellroutine anstelle der Behandlung einer externen unterbrechung. Bei der nächsten externen Unterbrechung wird also das neue PSW su einem laufenden PSW und es gestattet dem durch das neue PSW in Bezug gezogenen Meßprogramm den Eintritt in den Supervisorzustand mit dem richtigen Schutzschlüssel.
Im nächsten Schritt 303 wird die externe Unterbrechung erzeugt, um die Steuerung an das MSR-Programm zu übergeben. Bei 304 wird die Frage gestellt - hat die Unterbrechung stattgefunden? Das gesamte System wartet gemäß Darstellung bei 305 bis die Unterbrechung auftritt. Danach befindet sich das MSR-Programm im Supervisorzustand und bei 306 werden Supervisorzustandsfunktionen ausgeführt. Diese Funktionen bestehen im Aufhängen des Systemcode und in der Veränderung verschiedener neuer PSWs.
Im OS/360 betreffen die zu diesem Zeitpunkt vorgenommen speziellen Änderungen eine Änderung der Adresse in den neuen PSWs des E/A-Unterbreclmngsverarbeitungsgerätes, des SVC-Unterbrechungsverarbeitungsger,ätes, des Programmprüfunterbrechungsverarbeitungsgerätes und des externen Unterbrechungsverarbeitungsgerätes. Durch Veränderungen der auf diese Unterbrechungsvetfarbeitungsgeräte hinweisenden PSW-Adresse wird ein Hinweis in das PSW
po 970 053 409 8 19/0760
gesetzt, so daß bei der Unterbrechung das PSW auf das Meßsteuerprogramm und nicht auf das ünterbrechungsverarbeitungsprogramm zeigt. Die Rückkehr zur Unterbrechungsverarbeitung nach Ausführung der Operationen des Meßsteuerprogrammes ist in diesem Programm vorgesehen.
Aufhänger müssen in den Systemcode in die Aufgabenzuteilung (Dispatcher) gesetzt werden, insbesondere im Systemwartecode und im Taskumsehaltcode. Zum Setzen von Aufhängern an diesen Punkten gehört die überlagerung von Instruktionen in der Aufgabenzuteilung, wobei eine SVC-Unterbrechung eine Verzweigung zum Meßsteuerprograrnm erzeugt und die überlagerten Instruktionen in das Meßsteuerprogramm hineinkopiert, so daß sie ausgeführt werden, bevor die Ausführung zum Dispatcher zurückläuft.
Der für ein System /360 benutzte Aufhängungsmechanismus umfaßt beispielsweise zwei Instruktionen, eine Verschiebungsinstruktion (WC) und eine Supervisoraufrufinstruktion (SVC) in der folgenden Reihenfolge:
MVC 48 (8),32
SVC *-*
worin *-* jede Zahl von 0 bis 255 (hexadezimal) sein kann, damit sich eine gültige Definition der SVC-Instruktion ergibt. Die Bedeutung der MVC-Instruktion liegt in der Rettung des alten SVC PSW, so daß die Rückkehr zur richtigen Operation im Falle von verschachtelten SVC-Instruktionen erfolgen kann.
Der Schlüssel zum Aufhängungsmechanismus ist eine Benutzung irgendeiner Instruktion, die eine unterbrechung im normalen Ausführungsstrom der Instruktionen hervorruft. Derselbe Aufhängungsmechanismus, der für das System /360 beschrieben wurde, arbeitet auch im System IBM 7090/7094 durch Verwendung der Speicherstellen- und AnzapfInstruktion (STR) anstelle der SVC-Instruktion. Die hier gezeigte Aufhängungstechnik arbeitet in jedem gegenwärtigen oder künftigen Computersystem, sofern eine eine Unterbrechung hervorrufende Instruktion im Instruktionssatz des Computers vorhanden
po 970 053 409819/0760
ist oder diesem hinzugefügt werden kann, auf dem das Meßprogramm laufen soll.
Sehr oft sollen auch noch andere Routinen des Betriebssystemes, wie Taskumschaltung und die Wartezeit des Systemes, überwacht werden. Wenn weitere Funktionen aufgehängt werden sollen, ist eine eingreifende Bedienungskraft erforderlich und dieser Vorgang wurde oben während der Ausführung des Schrittes 300 beschrieben. Im Schritt 202 der Fig. 4 wird gefragt,"ob das Eingreifen der Bedienungskraft angezeigt war. War es angezeigt, wird die Bedienungskraft aufgefordert, Programmidentifizierung und/oder Codemuster· einzugeben, die untersucht werden müssen, um eine Aufhängung richtig einzuschieben. Wenn die Bedienungskraft diese Funktion einmal ausgeführt hat, sucht das Programm im Schritt 204 die Routinen auf, die bezeichnet wurden. Wenn das Programm einmal gemäß Darstellung im Schritt 205 gefunden wurde, beginnt eine Suche nach dem Codemuster und wenn dieses gefunden wurde, werden die beiden zu ersetzenden Instruktionen in einen vorgegebenen Bereich im Meßkontrollprogramm kopiert gemäß Darstellung im Schritt 210. Dieser vorgegebene Bereich ist auch in Fig. 8 gezeigt. Im nächsten Schritt 211 wird der kopierte Code durch die zwei oben beschriebenen Instruktionsaufhängmechanismen überlagert.
In dem nächsten, in Fig. 4B gezeigten Schritt 212 wird angefragt, ob weitere Routinen aufzuhängen sind. Wenn das der Fall ist, erfolgt eine Verzweigung zum Schritt 20.4 zurück, um dieses Programm zu suchen. Die Reihenfolge der oben beschriebenen Schritte wird dann erneut aμsgeführtΛ um die neue Routine aufzuhängen. Schließlich sind alle OS-Programme und Anwendungsprogramme aufgehängt und es erfolgt eine Verzweigung vom Schritt 212 zum Schritt 213, wo die Bedienungskraft bestimmten Zählern in dem Maschinenmeßgerät bei Bedarf Tasknamen zuordnet. D.h., wenn 16 Zähler vorhanden sihd, können drei für die Zuordnung zu Tasks verfügbar sein, während die anderen dreizehn Zähler für die überwachung verschiedener Leitungen innerhalb
po 97O 053 4 0 9 8 19/0760
des Rechnersystems benutzt werden können. Somit ordnet im Schritt 213 die Bedienungskraft einen bestimmten Zähler bis zu drei Tasknamen zu. Wenn das einmal geschehen ist, wird im nächsten Schritt 214 eine Nachricht an die Bedienungskraft abgegeben mit der Frage, ob die Zähler anderen Tasks zugeordnet, werden sollen. Diese Nachricht bleibt während des Betriebs des Systemes offen, während dieses Betriebes kann die Bedienungskraft jedoch jederzeit angeben, daß sie Zähler neu zuordnen will. Wenn dieser Fall eintritt, läuft das Programm an einem geeigneten Punkt in der Schrittfolge des beschriebenen Verfahrens zur Neuzuordnung der Zähler durch den Eingangspunkt 4B2 zurück. Die Nachricht im Schritt 214 bleibt offen durch Abgabe einer PSW-Ladeinstruktion bei eingeschaltetem Wartebit. Diese Instruktion wird auch bei eingeschaltetem Problemprogramm-Zustandsbit abgegeben, um das MSR-Programm aus dem Supervisorbetrieb herauszunehmen, so daß bei einer abnormalen Beendigung das MSR-Programm im Problemprogrammbetrieb abnormal endet und den Supervisor nicht stört. Somit wird im Schritt 215 gefragt - ist dieses der erste Durchlauf? Lautet die Antwort ja, so wird im Schritt 216 das Wartebit für eine Nachrichtenantwort eingeschaltet und das Problemprogramm-Zustandsbit im Schritt 217. Tatsächlich werden diese Schritte zusammen mit der PSW-Ladeinstruktion ausgeführt. Handelt es sich nicht um den ersten Durchlauf, braucht nur gemäß Darstellung im Schritt 218 das Wartebit gesetzt zu werden. In jedem Fall ist die Vorbereitungsphase beendet und das System jetzt bereit, mit dem den Betrieb überwachenden Meß Steuerprogramm weiterzulaufen. Somit läuft das Programm durch den Eingangspunkt IAl zum Schritt 103 der Fig. 2 zurück, um mit der normalen Ausführung von Anwendungsprogrammen im System durch den Dispatcher fortzufahren .
Die Taskzuteilung (Dispatcher) wählt die nächste auszuführende Task aus der Warteschlange der aktiven oder bereiten Tasks und übergibt dieser die Steuerung. Der Betrieb läuft normal weiter, bis eine Unterbrechung auftritt, wie sie bei 104 gezeigt ist.
po 970 053 40 9819/07 6 0
Wenn die aufgetretene Unterbrechung auf einen Maschinenfehler zurückzuführen ist, wird sie durch das Meßprogramm nicht registriert, sondern stattdessen mit der üblichen Unterbrechungsroutine für Maschinenprüfungen verarbeitet. Alle anderen Unterbrechungen werden von der Meßsteuerung durch die bereits im Unterbre'ehungs-PSW, welches eine Verzweigung zum Meßprogranun hervorruf'tv bereits vorgenommene Veränderung registriert.. Wenn eine solche Unterbrechung, auftritt, wird zuerst gefragt, ob sie auf eine Systemaufhängung zurückzuführen ist, d.h., ob die dem SVP -zugeordnete Zahl eine Systemaufhängung anzeigt. Wenn die Antwort nein lautet, folgt eine Verzweigung zum Block 106, wo gefragt wird - war diese die erste Aufhängungsunterbrechung eines Anwendungsprogrammes? Diese- Tatsache wird wieder durch ein SVC mit einer" Spezialzahl angezeigt. Lautet die Antwort ja, wird gefragt - ist dieses eine Startschleifen- oder Endschleifen-SVC-Zahl? Wenn die Antwort wieder ja lautet, wird bei 108 gefragt - ist dieses eine Startschleifenunterbrechung? Wenn die Antwort wieder ja lautet, werden alle Maschinen•VProgramm-Meßzähler gemäß Darstellung bei 109 .gestartet und das Programm zum Schritt 103 zurückgeführt, um die normale Ausführung von Anwendungsprogrammen durch den Dispatcher fortzuführen. Die Bedeutung liegt darin, daß die Tatsache bezeichnet wird, daß ein zu überwachendes Anwendungsprogramm, welches in das System gesetzt wurde, seinen Einstell- und Vorbereitungsteil durchlaufen hat und zum Durchlauf des gesamten Verarbeitungsteiles bereit ist, wo seine Operation überwacht werden soll.
Wenn die negative Antwort im Schritt 108 besagt, daß es sich nicht um eine Startschleifen-SVC-Zahl handelt, bedeutet das notwendigerweise, daß eine Endschleifen-SVC-Zahl aufgetreten ist. Dann verzweigt das Programm zur Ausführung des Schrittes 113 und stoppt alle Maschinen-ZProgramiti-Meßzähler. Im Sehritt 114 wird dann gefragt - sind mehrere Meßdurchläufe erwünscht? Die Antwort lautet hier ja und so wird bei.115 gefragt - befinden wir uns im letzten Durchgang? Wenn die Antwort nein ist, werden die Programmund Maschinenzähler bei 109 wieder gestartet und das Programm
PO 97O O53 40981 9/Ö760
zur Ausführung auf den Schritt 103 zurückgeführt. War jedoch nur ein Durchgang erwünscht oder befindet sich das Programm im letzten von mehreren Meßdurchgängen, verzweigt das Programm zur Ausführung des Schrittes 116, d.h. der Entfernung der Aufhänger des Anwendungsprogrammes. Bei diesem einfachen Manöver wird der in das Meßsteuerprogramm nach Darstellung in Fig. 8 gesetzte Code in das Anwendungsprogramm an der Stelle kopiert, an welcher jetzt der Aufhänger steht. Das Anwendungsprogramm wird also in eine nicht aufgehängte Form zurückgesetzt, so daß spätere Benutzungen der Programme keinen überflüssigen oder falschen Code mit sich bringen.
Im Schritt 117 wird eine eine Unterbrechung erzeugende direkte Leseinstruktion (RDD) abgegeben, um die Meßdaten, die in den Maschinenzählern gesammelt wurden, in den Speicher zu übertragen, so daß sie gemäß Darstellung bei 112b durch die überwachungssteuerroutine (MONTROL) analysiert werden können. Die Routine MONTROL wird später genauer beschrieben.
Im Schritt 107 wurde die Tatsache identifiziert, daß die aufgetretene Aufhangungsunterbrechung mit dem Anwendungsprogramm zusammenhängt. Wenn im Schritt 107 auch die Tatsache festgestellt wird, daß keine Start- oder Endschleifenunterbrechung auftritt, erfolgt eine Verzweigung zum MONTROL-Programm bei 112a, um die aufgetretene· spezielle Unterbrechung zu analysieren und die dann entsprechend notwendigen Schritte zu unternehmen.
Im Schritt 106 ist bekannt, daß eine Unterbrechung aufgetreten ist und daß es sich nicht um eine aufgehängte Unterbrechung handelt. Handelt es sich auch nicht um eine aufgehängte Unterbrechung eines Anwendungsprogrammes, so erfolgt eine Verzweigung direkt zum MONTROL-Programm bei 112a, wo die Unterbrechung analysiert und entsprechende Schritte unternommen werden.
Im Schritt 105 ist bekannt, daß eine Unterbrechung aufgetreten ist. Wird festgestellt, daß es sich um eine aufgehängte System-
po 970 053 409819/0760
unterbrechung handelt, erfolgt eine Verzweigung zum Schritt zum Starten der jeweiligen Maschinen-/Programm-Meßzähler die für Systemmessungen vorgesehen sind. Im Schritt 111 wird dann gefragt, ob eine Endschleifen-SVC-Unterbrechung erkannt wurde. Lautet die Anwort nein, so erfolgt eine Verzweigung zum MONTROL-Programm, um die jeweilige aufgehängte Systemunterbrechung zu analysieren und entsprechende Schritte zu unternehmen. Wurde eine Endschleifenunterbrechung festgestellt, so erfolgt eine Verzweigung zum Schritt 113, wo die Maschinen-/Programm~Meßzähler gestoppt und die nachfolgenden Schritte 114 bis 117 ausgeführt werden, bevor das Programm in die Montrolroutine zur Analyse der gesammelten Daten einläuft.
Die Fign. 3A, 3B und .3C zeigen das MONTROL-Programm und die Vorgänge bei einer auftretenden Unterbrechung, die nicht auf eine Maschinenprüfung oder eine Start- bzw. Endschleifen-SVC-Äufhängung zurückzuführen ist. Im ersten Schritt 400 wird die Unterbrechungsart festgestellt. Im Schritt 401 werden üblicherweise Konstanten initialisiert, Basisregister eingestellt usw. Im Schritt 102 werden alle Maschinenzähler gestoppt. Wir befinden uns jetzt einfach im Meßsteuerprogramm und die Zähler brauchen nicht weiter zu laufen, während das Meßsteuerprogramm abläuft. Es wird die Frage gestellt - muß die Maschinenmessung auf das System zurückgekoppelt werden? Wenn die Antwort ja lautet, erfolgt bei 404 diese Rückkopplung. In jedem Fall erfolgt eine Verzweigung zur Ausführung einer zu dieser Unterbrechungsart gehörenden Routine . · Für eine E/A-Unterbrechung wird bei 405 ein Datensatz aufgebaut und dann folgt ein Ausgang zur Verarbeitung einer E/A-Unterbrechung der ersten Stufe (FLIH) bei 406. Darin ist die Rückkehr zum normalen Systembetrieb gegeben, gemäß der Darstellung am Ausgangspunkt IAl.
Ist die Unterbrechung auf einen Programmfehler zurückzuführen, wird der Datensatz bei .407 aufgebaut und dann läuft das Programm zur Unterbrechungsverarbeitung eines Programmfehlers auf der ersten Stufe (FLIH) bei 408 weiter für eine-Rückkehr zur normalen Ausführung.
409819/0760
Handelt es sich um eine externe Unterbrechung, wird die Frage gestellt - resultiert die Unterbrechung vom Taktgeber oder von einer externen betätigten Taste oder handelt es sich um. eine RDD-Unterbrechung? Handelt es sich um eine Unterbrechung vom Taktgeber oder von einer Taste, erfolgt bei 41O der Ausgang zur Verarbeitung einer externen Unterbrechung der ersten Stufe (FLIH) und zur normalen Ausführung. Resultiert die Unterbrechung aus der Abgabe einer RDD-Instruktion, erfolgt eine Verzweigung zum Rückkopplungssteuerprogramm (MSFCP) gemäß Darstellung bei 411, um die Rückkopplung zu analysieren und gegebenenfalls das System gemäß den Meßdaten zu modifizieren. Das Rückkopplungssfceuerprogramm wird später genauer beschrieben.
Wenn die aufgetretene jeweilige Unterbrechung schließlich eine aufgehängte Unterbrechung ist, erfolgt eine Verzweigung beim Schritt 412 zur Fig. 3B, um zu fragen, ob sich die Umgebung des von der Bedienungskraft angeforderten Meßsteuerprogrammes geändert hat. Zu diesem Zeitpunkt kann auf die Einstellroufcine in Fig. 4B Bezug genommen werden, wo beim Schritt 214 eine Hachricht abgegeben und ausstehen gelassen wurde. Diese Hachricht: war eine Anforderung zur Modifizierung des eine Zuordnung von Zählern zu bestimmten Tasks und andere Umweltbedingungen darstellenden Umgebungscode. So kann z.B. der Task A der Zähler 1, der Task B der Zähler 2 und der Task C der Zähler 3 zugeordnet werden. Im Lauf des Programmes kann die Bedienungskraft eine Zuordnungsänderung für die Zähler anfordern. Eine der Task kann z.B. abgeschlossen und der Zähler 1 der Task B neu zugeordnet werden. Die Umordnungsanforderung der Bedienungskraft ist eine Antwort auf die im Schritt 214 gegebene offene Hachrieht und wird im Schritt 412 als eine Änderung des Umgebungscode erkannt. Im Schritt 413 werden die Umgebungsänderungscodes analysiert. Der Umgebungsänderungscode H bezeichnet einen Stopp und veranlaßt das Aussetzen des Datensammelns,;resultiert jedoch nicht in einer Entfernung der Aufhänger. Der Umgebungsänderungscode R bezeichnet die Wiederaufnahme der Arbeit. Der Umgebungsänderungscode * bezeichnet die Betätigung eines Schalters, der anzeigt, daß das Meßprogramm beendet und alle Aufhänger entfernt werden sollen. Die
409819/0760
PO 970 053
Änderungscodes 1, 2 und 3 beziehen sich auf Zähler und der Änderungscode E auf eine Anforderung der Bedienungskraft zum Ändern der Position von Aufhängern durch Einsetzen neuer Aufhänger oder Entfernung alter.
Im Schritt 441 wird mit einer Prüfung festgestellt, ob der Code E gewählt ist. Wenn das der Fall ist, erfolgt eine Verzweigung zu dem in Fig. 4A gezeigten Schritt 2O3, wo die Bedienungskraft Programmidentifikationen und die Coderauster für Stellen einsetzt, in denen neue Aufhänger gesetzt oder alte gelöscht werden sollen. Die folgenden Schritte"204 bis 212 zur Einsetzung der Aufhänger wurden bereits oben beschrieben. Obwohl der Löschvorgang in Fig. 4ä nicht dargestellt ist, handelt es sich um denselben Vorgang mit Ausnahme der Löschung von Schritt 210 und einer Umkehrung des-Schrittes 211, d.h., der Aufhängercode wird durch den aus dem Schritt; 21O in den MCP geretteten Originalcode überlagert.
Im Schritt 213 wird jede Änderungsanforderung für die Zählerbezeichnung ausgeführt und eine neue offenbleibende Nachricht im Schritt 214 abgegeben. Durch den Schritt 218 und den Eingangspunkt 3B2 läuft das Programm zum Schritt 415 der Fig. 3B zurück, um die Verarbeitung einer Aufhängerunterbrechung abzuschließen.
Wenn bei der Prüfung im Schritt 441 festgestellt wird, daß ein von E verschiedener Umgebungsänderungscode vorliegt, wird die Änderung bei 414 verarbeitet und eine Verzweigung zum Schritt 214 in Fig. 4B für die Abgabe einer neuen offenen Nachricht an die Bedienungskraft vorgenommen. Wieder erfolgt die Rückführung des Programmes zum Schritt 415 in Fig. 3B durch den Schritt 218 für den Rest der Aufhängerverarbeitung.
Im Schritt 415 wird abgefragt, ob das Zeichen * in den Umgebungscode gesetzt wurde. Ist das der Fall, wird dadurch das Ende des Meßprogrammes angezeigt und es folgt eine Verzweigung zur Ausführung des Schrittes 416, in dem die Aufhänger entfernt und der Code in allen Systemsteuerprogrammen und Problemprogrammen wieder
po 97O O53 40 98 1 9/0780
-. 28 -
hergestellt wird, der für das uberwachungsschema verändert wurde. Als nächstes werden bei 417 die üblichen Endroutinen ausgeführt und das Programm zur Hauptablauflinie des Prozesses zurückgeführt.
Ungeachtet dessen, ob das Meßprogramm nun weiterlaufen soll oder nicht, wird im nächsten Schritt bei 418 gefragt, ob die Daten im Sammelpuffer ausgegeben werden müssen. Wenn ein Puffer gefüllt wurde, wird ein Anzeiger gesetzt und eine Verzweigung zur Ausführung der Schritte 419 und 420 zwecks Ausgabe des Inhaltes dieses Puffers vorgenommen. In jedem Fall wird der Schritt 421 als nächster ausgeführt und gefragt, ob eine Aufhängung aufgetreten ist. Im Falle der Beendigung des Meßprogrammes im Schritt 415 erfolgt eine Verzweigung zu diesem Punkt zwecks Fortsetzung des normalen Betriebes. Ein zu sammelnden Daten gehörender Aufhänger veranlaßt jedoch eine Verzweigung zum Schritt 422 zum Aufbau eines Datensatzes. Die aus verschiedenen Aufhängern resultierenden Aufzeichnungen sind in Fig. 10 zusammen mit einem Beispiel der möglichen Datensammlung bei einer E/A-Unterbrechung gezeigt. Diese Verzeichnisse sind einfache Beispiele möglicher . Sammlungen im OS/36O bei jedem dieser Vorgänge und stellen keinerlei Einschränkung der möglichen Datensammlungen dar.
Es folgen die Schritte-423 und 424 in Fig. 3G zur Übergabe der Steuerung an die entsprechende Aufbauroutine für den Datensatz mit den Verfolgungsdaten und zum Aufbauen des Verfolgungs-Datensatzes. Es folgt der Schritt 425 für alle Aufhänger mit Ausnahme der Taskumschaltaufhänger. Wenn ein solcher betroffen ist, folgt eine Verzweigung zur Ausführung des Schrittes 428.
Wenn man annimmt, daß als nächstes der Schritt 425 ausgeführt wird, so wird in diesem Schritt der Datensatz in den Ausgabepuffer gesetzt und im Schritt 426 werden alle geretteten Register zurückgestellt und das Ansgangs-PSW erstellt. Bei 427 wird der durch den Aufhänger ersetzte/überlagerte Code ausgeführt und es folgt die Rückkehr zum Rest des Programmes, d.h. zum Normalbetrieb, in das der Aufhänger gesetzt war. Handelt es sich bei dem Aufhän-
po 97O O53 409819/0760
- 29 - 2352S96
ger um einen Taskumschalter, folgt dem Schritt 424 ein Schritt 428, in welchem gefragt wird, ob eine zu überwachende Aufgabe vorher zugeteilt wurde. Lautet die Antwort nein, wird der durch den Aufhängemechanismus überlagerte bzw. ersetzte Code im Schritt 433 ausgeführt und das Programm zur Ausführung des restlichen aufgehängten Programmes in den Normalbetrieb zurückgeführt.
Wenn die Anfrage bei 428 ergibt, daß eine zu überwachende Task in der aktiven Warteschlange steht, dann wird im Schritt 429 gefragt, ob die von der Taskumschaltroutine als nächste auszuführende Task ausgewählte Task eine zu überwachende ist. Wenn die Antwort ja lautet, folgt eine Verzweigung zum Schritt 430, wo gefragt wird, ob dieser Aufgabe Zähler zugeordnet sind. Ist das der Fall, dann werden bei 431 diese Zähler zusammen mit den. Zählern gestartet, die dem System zugeordnet sind und bei 433 wird der ersetzte/überlagerte Code ausgeführt und das Programm zur normalen Ausführung zurückgeführt, die in diesem Fall aus dem Rest der Taskumschaltroutine besteht.
Wenn die Anfrage bei 430 eine negative Antwort erhält, werden alle Zähler mit Ausnahme der bestimmten Aufgaben zugeordneten Zähler gestartet. Danach wird der ersetzte/überlagert Code ausgeführt und das Programm zur Ausführung des Restes der Aufgabenumschaltroutine zurückgeführt.
Somit wurde ein Verfahren beschrieben, um Aufhänger in Anwendungsund Systemprogramme zu setzen und Maschinenmeßzähler unter Steuerung eines Meßprogrammes zu starten und zu stoppen. Die Aufzeichnung von Unterbrechungen bei ihrem Auftreten innerhalb des Systemes und ihre Analyse in den Meßroutinen zum Unternehmen entsprechender Schritte wurde vorgesehen. Zu diesen Unterbrechungen gehören auch externe Unterbrechungen, die aus der Abgabe einer direkten Leseinstruktion (RDD) resultieren und eine Rückkopplung der Maschinenmeßdaten ins System hervorrufen. Xvenn einmal alle Daten im System stehen,-kann eine Umordnung bzw. Veränderung des Systemes unter Berücksichtigung der Rückkopplungsdaten erfolgen.
po 970 053 4 0 9 819/0760
- 3O -
Das wurde im Schritt- 411 der Fig. 3A gezeigt und wird genauer im Zusammenhang mit den Fign. 6A, 6B und 6C beschrieben. Zuerst sollte -beachtet werden, daß die Vielzahl der möglichen Rück— kopplungsSteuerungen innerhalb eines allgemeinen Digitalrechners im starken Maß von den zur Steuerung ausgewählten Parametern und den gesammelten Daten abhängen. Während somit in den Fign. 6A bis 6C ein bestimmtes Rückkopplungssteuerprogramm gezeigt wird, sind viele anderen Arten der Rückkopplungssteuerung für die Ausführung an diesem Punkt denkbar. Während die Ausführung des Rückkopplungssteuerprogrammes als aus den RDD-ünterbrechungen resultierend und somit Sie maschinell gemessene Rückkopplung nutzend dargestellt wurde, können andere MSFCP-Routinen (Messungszusainmenfassungs- und Rückkopplungssteuerprogramm) z.B. in die Aufhängerunterbrechungsverzweigung der Fig. 3A gesetzt werden, um auch andere Aspekte des Wirkungsgrades des Systems über die Rückkopplung zu steuern, wenn z.B. die Rückkopplung von der Maschine relativ unwichtig ist.
Die als Beispiel in Fig. 6 gezeigte MSFCP-Routine soll eine bestimmte Leistungsstrategie verwirklichen, deren Hauptgesichtspunkte folgende sind: Die Anzahl gleichzeitiger Datenanforderungen an ein E/A-Untersystem soll möglichst groß sein; 2) die Datenübertragung über einen Kanal soll möglichst groß sein; 3) die gleichzeitige Hutzung von Prozessor/Speicher, d.h. die Überlappung zwischen Zentraleinheit und Kanal soll möglichst groß sein; 4) die Stapelzeit einer E/A-Anforderung in einer Warteschlange soll möglichst klein sein.
Zur Verwirklichung dieser Leistungsstrategie müssen verschiedene Messungen vorgenommen werden, einschließlich der Belegungs- und der Wartezeit der Zentraleinheit; diese Messungen werden durch Programmüberwachung des Instruktionsstromes in der oben beschriebenen Art durchgeführt und sind näher beschrieben in "System Measurement Facility option of OS/360", IBM Systems Reference Library, Nummer GC28--6712-6. Die Kanalbelegungszeit und die Suchzeit auf jedem an das System angeschlossene E/A-Gerät müssen
P0 970 053 409819/0760
ebenfalls gemessen werden. Beide Meßergebnisse sind durch Maschinenzähler zu erhalten. Die Länge der zu jedem E/A-Gerät, gehörenden Anforderungsschlangen, die■durchschnittliche und die maximale Warteschlangengröße'zusammen mit der zur Bedienung einer E/A-Anforderung nötigen Zeit müssen ebenfalls bekannt sein. Alle diese Werte werden durch Programme überwacht. Außerdem muß die Überlappungszeit von CPÖ und Kanal bekannt sein f die wiederum durch maschinen-Zprograirnntechnische Messung jeder dieser Aktivitäten verfügbar wird. Schließlich kann man über Programmierung die Zeit für die Taskausführung messen und feststellen/-welche Datensätze auf welchem E/A-Gerät adressiert werden und man kann die gesamte verstrichene Zeit messen.
Der Gesichtspunkt der Rückkopplung nach dem Erfindungsgedanken wird in einem einfachen System anhand einer angenommenen Konfiguration beschrieben. In dem in Fig. 1 gezeigten System ist ein einzelner Prozessor 10, ein Hauptspeicher 10 und nur zwei Steuereinheiten mit jedem Kanal verbunden. Fig. 1 zeigt drei an jede Steuereinheit angeschlossene E/A-Geräte und im vorliegenden Beispiel wird angenommen, daß alle E/A-Geräte Platteneinheiten mit direktem Zugriff sind. Der Begriff Untersystem umfaßt eine Steuereinheit und die daran angeschlossenen E/A-Geräte. Somit sind jLm Beispielsystem an jeden Kanal zwei Untersysteme angeschlossen. Schließlich läuft die angenommene Konfiguration in Multiprogrammierung.. Die Art der auf dem System auszuführenden Arbeiten wurde nicht besonders berücksichtigt, es wird jedoch angenommen, daß ein Job seinen eigenen Plattenstapel erfordert.
Das:-Beispiel wird unter Berücksichtigung eines System 360-Betriebssystemes entwickelt, worin die Zuteilungs(Dispatcher-)routine bestimmt t welche Task welchen Jobs als nächste ausgeführt wird. Der Zuteiler arbeitet auf Täsk-Warteschlangen von denen eine die aktive Schlange ist, welche die gegenwärtig ausgeführten Tasks enthält. Eine andere Schlange ist die Bereitschaftswarteschlange, die nach Belieben des Zuteilers ausgeführt werden kann und eine dritte eine Warteschlange, in der Tasks stehen, die nicht zugeteilt
po 970 O53 40 9819/0760
werden sollten, da irgendeine Tätigkeit, typischer Weise eine E/A-Tätigkeit, für die fortgesetzte Ausführung der Task noch nicht abgeschlossen ist.
Im beispielhaften MSFCP-Verfahren sind durch die maschinen- und programtatechnischen Meßeinrichtungen alle Daten gesammelt worden und im Schritt 117 der Fig. 2 ist eine RDD-Instruktion zur Übertragung der Messdaten in den Speicher abgegeben worden. Bei 112 erfolgt eine Verzweigung zur Überwachungssteuer-Routine der Fig. 3, wo beim Schritt 411 die RDD-Externe-Unterbrechungsverzweigung zur MSFCP-Routine erfolgt, die jetzt näher im Zusammenhang mit Fig. beschrieben wird.
Der erste Schritt bei der oben aufgezeigten Leistungsmeß-Strategie besteht in der Meßung eines Rechenfaktors, wie er bei 500 gezeigt ist. Der Rechenfaktor ist definiert als die zur Ausführung der gesamten Prozeßschleife des Programmes benötigte Zeit abzüglich der Zeit, in der die CPU aktiv war, dividiert durch die Gesamtzeit der Prozeßschleife. Wenn also die CPU in der Gesamtheit der Prozeßschleife aktiv ist, ist der Rechenfaktor gleich 0 und man sagt vom Computer, er sei CPU-gebunden. Wenn andererseits die CPU nur in einem sehr kleinen Teil der gesamten Prozeßschleife tätig ist, ist der Rechenfaktor sehr groß und man sagt vom Computer, er,sei E/A-gebunden. Nach der Bestimmung des Rechenfaktors bei 500 wird dem Programm bei 501 eine Priorität zugeordnet. Diese erhält man durch Multiplikation des Rechenfaktörs mit 255, welches einfach eine Geräteübereinkunft bei der Programmierung im Hexa-Dezimalschema des Systems 360 ist. Durch diese Multiplikation kann ein Jobprioritätsbereich definiert werden und er wird definiert für die Anwendung des MSFCP-Prοgrammes. Willkürlich wurde festgelegt, daß ein Jobprioritätsbereich zwischen O und 62 anzeigt, daß das Programm CPU-gebunden ist. Ein Prioritätsbereich von 193 bis 255 zeigt an, daß das Programm E/A-gebunden ist. Der Bereich von 63 bis 128 zeigt ein Dominieren der CPU an und der Bereich, von 129 - 192 ein Dominieren der E/A-Geräte. Somit kann jedes Programm bei. seiner Ausführung im System dahingehend klassifiziert
po 970 053 409819/0760
werden, ob es CPÜ-gebunden, oder E/A-gebunden ist.
Im nächsten Schritt des Rückkopplungssteuerverfahrens wird bei 502 angefragt, ob das Programm CPU-gebunden ist..Lautet die Antwort ja, wird die Überlappung zwischen CPU und Kanal abgefragt. Wenn CPU und Kanal über die Hälfte der Zeit gleichzeitig in Betrieb sind, heißt das, daß trotz Beherrschung der CPU durch das Programm die E/A-Tätigkeit immer noch rege genug ist. In einem solchen Fall arbeitet das System gut mit der oben ausgeführten Strategie zwischen CPU und Kanal und es folgt eine Verzweigung .zum Schritt 506 zur weiteren Verarbeitung anderer Gesichtspunkte der Leistungsstrategie.
Wenn jedoch angenommen wird,,daß das Programm die CPU beherrscht und die Tätigkeit auf den Kanälen sehr gering oder mindestens kleiner als 0,5 ist, dann folgt eine Verzweigung zum Schritt 507, wo die Job-Warteschlange so umgeordnet wird, daß eine Aufgabe, mit starker E/A-Tätigkeit in die Stelle mit höchster Priorität oben an die Liste gesetzt wird. Somit führte die Verwirklichung der mit Rückkopplungsinforraation arbeitenden Strategie zur Modifizierung der Systemoperation relativ zu den als nächste auszuführenden Jobs und machte das System wirkungsvoller. Es wurde also ein Systembetrieb mit geschlossener Regelschleife gezeigt.
.Im Schritt 502 wurde gefragt, ob das Programm CPU-gebunden ist. Wurde diese Frage negativ beantwortet so wird im Schritt 503 als nächstes gefragt, ob das Programm E/A-gebunden ist. Wenn das der Fall ist folgt eine Verzweigung zum Schritt 508 zur Umordnung der Warteschlange mit aktiven Jobs derart, daß der Job mit der niedrigsten Priorität oben in die aktive Warteschlange gesetzt wird. Somit wählt ein Zuteiler Jobs aus, die eine starke CPU-Tätigkeit mit sich bringen, um den Betrieb des Systemes wirksamer zu gestalten, das E/A-gebunden wurde. Wenn die Antwort auf die Frage im Schritt 503 negativ war, ist das Programm weder E/Agebunden noch CPU-gebunden. Für ein solches Programm wird im Schritt 504 weitergeprüft, ob die CPU-Wartezeit gleichzeitig mit
po 970 053 409819/0760
2352896
der Kanalbelegungszeit größer ist als die CPU-Belegungszeit gleichzeitig mit der Kanalbelegungszeit. Die Bedeutung dieser Ausdrücke ist in Fig. 9 gezeigt, wo die Überlappung von Wartezeit und Kanaltätigkeit ungefähr gleich der Zeit ist, in welcher die CPU und ' der Kanal überlappt aktiv sind. Wenn angenommen wird, daß die Frage bei 504 eine positive Antwort erhält, dann erfolgt eine Verzweigung zum Schritt 508 um oben in die aktive Warteschlange einen Job mit niedriger Priorität zu setzen, d.h. einen Job, der die CPU stark ausnutzt. Wenn die Antwort bei 5O4 negativ ist kann angenommen werden, daß das System richtig arbeitet und zur Verbesserung seiner Leistungfähigkeit nur wenig getan werden kann. Dann erfolgt eine Verzweigung zum Schritt 5O6, um in Verbindung mit der vorliegenden Leistungsstrategie weiterzuarbeiten.
Bei 506 wird gefragt, ob eine Anforderung nach Plattenspeicherzuordnung aussteht. Lautet die Antwort ja wird bei 509 festgestellt, welcher Kanal am wenigsten belegt ist, damit die Platte von einem an.den am wenigsten beschäftigten Kanal angeschlossenen Gerät gewählt werden kann. Bei 509 wird aus gesammelten Daten diese Entscheidung getroffen, die in einem einfachen Vergleich der Zeit besteht, in der jeder Kanal während der Datensammelperiode belegt war. Bei 510 wird der am wenigsten belegte Kanal bezeichnet und bei 511 auf gleichzeitige aktive Suchvorgänge des Zugriffsarms auf Plattenuntersystemen geprüft, die an diesen Kanal angeschlossen sind. Die Information bei 511 erhält man am besten durch in die Maschinen gesetzte Prüßmeßgeräte, über die die Bewegung der Magnetköpfe in den Platteneinheiten aufgezeichnet werden kann. Wenn auf keinem der an den am wenigsten belegten Kanal angeschlossenen Plattengeräte Suchoperationen laufen, erfolgt eine Verzweigung vom Schritt 512 zum Schritt 517, wo die Anzahl der austehenden E/A-Anforderungen auf Geräte-Warteschlangen untersucht wird. Nimmt man an, daß die Anzahl von ausstehenden Anforderungen auf jedem der an den Kanal angeschlossenen E/A—Geräte unterschiedlich ist, so wird darstellungsgeiaäß bei 519 dasjenige Plattenuntersystem mit der kleinsten Anzahl von ausstehenden E/A-Anforderungen ausgewählt. Als nächstes wird bei 520 und 521 eine zum Empfang
PO 970 053 409819/0760
2352698
einer neuen Datei bereite und fähige Platte identifiziert und zugeordnet. Dann folgt eine Verzweigung zurück zum Schritt 506 zur Verarbeitung weiter ausstehender Anforderungen nach Zuordnung von Plattenspeichern. Es wurde somit ein Verfahren zur Auswahl einer Platte auf demjenigen Untersystem mit der kleinsten Anforderungs-Warteschlange gezeigt, wobei keines der Untersysteme eine gleichzeitige Suchoperation laufen hat. Außerdem liegt diese Platte auf dem am wenigsten belegten Kanal.
Wird im Schritt 512 angenommener Weise festgestellt, daß auf mindestens einem an den am wenigsten belegten Kanal angeschlossenen Untersystem Suchvorgänge ablaufen, so folgt in diesem Fall einer Verzweigung zum Schritt 513, wo festgestellt wird, ob die Gleichzeitigkeit von Suchvorgängen nur auf einem oder auf mehreren Untersystemen gegeben ist. Findet sich ein Untersystem ohne eine Suche? so wird dieses darstellungsgemäß im Schritt 516 für die Plattenzuordnung ausgewählt. Dann folgt eine Verzweigung wie oben zu den Schritten 520 und 521.
Wenn jetzt angenommen wird, daß die Prüfung im Schritt 513 das Ergebnis hatte, daß beide oder alle an den am wenigsten belegten Kanal angeschlossenen Untersysteme Suchoperationen enthalten, so wird in diesem Fall beim Schritt 514 gefragt, ob die Anzahl von gleichzeitigen Suchvorgängen auf jeden der beiden Untersysteme gleich ist. Wenn die Antwort nein lautet, so wird das Plattenuntersystem mit der kleinsten Anzahl gleichzeitiger Suchvorgänge, gemäß Darstellung bei 515 ausgewählt, und es erfolgt eine Verzweigung zu den Schritten 52O und 521.
Ergibt die Prüfung im Schritt 514 eine gleiche Anzahl gleichzeitiger Suchen auf jedem der Untersysteme, folgt eine Verzweigung zum Schritt 517, um die. Anzahl von ausstehenden E/A-Anforderungen auf den Einheiten-Warteschlangen zu untersuchen. Nimmt man eine unterschiedliche Anzahl von ausstehenden Anforderungen jeder Schlange an, so wird das Plattenuntersystem mit der kleinsten Anzahl von E/A-Anforderungen im Schritt 519 ausgewählt und es
po 97O O53 4 0 9 819/0760
- 36 - 2352896
erfolgt eine Verzweigung zu den Schritten 520 und 521.
Wenn die Prüfung beim Schritt 518 anzeigt, daß die Anzahl .von ausstehenden Anforderungen auf den Warteschlangen gleich ist, folgt eine Verzweigung zum Schritt 522 für eine Bestimmung der durchschnittlichen Antwortzeiten auf die Bedienung von E/A-Anforderungen pro Untersystem. Diese Information erhält man durch Programmüberwachung, da Geräte-Warteschlangen im Programm des OS/360 gehalten werden. Im Schritt 523 wird dann dasjenige Plattenuntersystem mit der niedrigsten durchschnittlichen Antwortzeit ausgewählt und es folgt eine Verzweigung zur Ausführung der Schritte 52O und 521 zur Auswahl und Zuordnung einer Platte aus diesem Untersystem für die ausstehende Anordnung.
In manchen Fällen wird festgestellt, daß das für die Auswahl vorgesehene Untersystem keine Platte zur Bedienung der ausstehenden Anforderung für Zuordnung von Speicherplatz bereit hat. In diesem Fall folgt eine Verzweigung zur Fig. 6 C, wo die Anfrage im Schritt 524 gestellt wird, ob alle Untersysteme auf dem Kanal untersucht wurden. Wenn die Antwort nein lautet, wird das verbleibende Plattenunter sys tem darstellungsgemäß im Schritt 525 ausgewählt und die Verarbeitung läuft mit den Schritten 520 und 521 weiter und es wird eine bereite- Platte auf diesem System ausgewählt. Wenn auf einem an den Kanal angeschlossenen Untersystem zufällig keine Platte bereit ist, folgt eine Verzweigung vom Schritt 524 zum Schritt 526, wo gefragt'wird, ob alle Kanäle untersucht wurden. Lautet die Antwort nein, wird ein nächster Kanal im Schritt 527 ausgewählt und es erfolgt eine Verzweigung zum Schritt 511 der Fig. 6 A, um festzustellen, welches Untersystem auf diesem Kanal am besten zum Empfang der Zuordnungsanforderung geeignet ist. Wenn aus irgendeinem Grund sich keine zur Bedienung der Anforderung bereite Platte findet, folgt eine Verzweigung zum Dispatcher, um den Normalbetrieb des Systemes fortzusetzen und die Anforderung auf Plattenspeicher-Zuordnung wird .einfach unbedient gelassen..
liffii Belastungsausgleich der Eingabe/Äusgabe-Geräteder das Hiel 053 4 0 i 8 1 S / ©
des Rückkopplungssteuerprogrammes nach Darstellung in Fig. 6 vom Schritt 506 bis zur Beendigung der Routine ist, gibt es verschiedene Möglichkeiten. Ein anderes Verfahren für die Ausführung dieser Funktion wird z.B. beschrieben in der US--Patentanmeldung mit der Serien-Nr. 151 452. Außerdem wird verwiesen auf die US-Patentanmeldung mit der Serien-Nr. 282 529, die ein speziell zur Kanaldatensammlung gebautes Maschinenüberwachungs-Gerät beschreibt und auf die US-Patentanmeldung Nr. 3 627 995, in der ein überwachungsgerät beschrieben ist, welches den oben beschriebenen Geräten, IBM-Basic-Counter-Unit und System-Measurement-Instrument, ähnlich ist.
po 970 053 409819/0760

Claims (1)

  1. PATENTANSPRÜCHE
    Verfahren zur Registrierung interner Programm- und Betriebsabläufe in einer Datenverarbeitungsanlage, die unter der Steuerung eines Betriebssystems arbeitet und die mindestens eine Zentraleinheit, einen Hauptspeicher, mehrere Eingabe/Ausgabeuntersysteme sowie Hardware-Meßeinrichtungen umfaßt, gekennzeichnet durch folgende Schrittes
    a) Eingabe des zu untersuchenden Anwendungsprogramms ±n die Datenverarbeitungsanlage zusammen mit einem Meßsteuerprogramm (MCM, Fig. 2}f
    b) automatischer übergang der Systemkontrolle an das Meßsteuerprogramm bei der Ausführung bestimmter ausgewählter Punkte des Anwendungsprogramms und bestimmter Systemprogramme;
    c) automatisches Ingangsetzen und Stoppen der Hardware-Meßeinrichtung durch das Meßsteuerprogramm;
    d) Erstellen und Speichern von Datensätzen zur Charakterisierung der registrierten Ereignisse.
    2. Verfahren nach Anspruch lr dadurch gekennzeichnet, daß in einer Vorbereitungsphase des Registriervorgangs das Anwendungsprogramm und bestimmte Teile des Betriebssystems in folgender Weise abgeändert werden:
    a) An auswählbaren, besonders bezeichneten Stellen des Betriebssystems und des Anwendungsprogramms, beispielsweise Start und Ende der Programmausführüng, wird automatisch ein vorbestimmter Ausgangscode, ein sogenannter Aufhänger, eingesetzt, der bei Ausführung der Programme eine Unterbrechung hervorruft;
    b) Teile des Betriebssystems werden automatisch und/oder mit Hilfe des Systembedieners derart modifiziert, daß die von den Aufhängern erzeugten Unterbrechungen erkannt und danach die Kontrolle an das Meßsteuerprogramm abgegeben wird und daß weiterhin nach Beendigung des Meßvorgangs das Meßsteuerprogramm die Kontrolle
    po 970 053 409819/076 0
    ■wieder an das Betriebssystem abgibt, welches mit der normalen Ausführung des Anwendungsprogramms fortfährt«
    3. Verfahren nach Anspruch 1 und 2γ dadurch gekennzeichnet, -'-- daß die Hardware-Meßvorrichtung eine Vielzahl von Zählern umfaßt, die von dem Meßsteuerprograitim gesteuert werden • und die in wählbarer Weise dem System oder dem Anwendungsprogramm zugeordnet werden»
    ο Verfahren nach Anspruch I bis 3ff dadurch gekennzeichnet, daß beim Auftreten einer Unterbrechung während der Abarbeitung des Anwendungsprogramms folgende Schritte durchgeführt werden:
    a) Stoppen aller Zähler ?
    b) Prüfen., ob bei einer Unterbrechung durch einen Aufhänger' die Bedienungskraft die Modifikation des PrüfVorgangs ■verlangt hat, ob mit der Messung fortgefahren werden soll ©der ob der Meßvorgang beendet werden soll?
    c) Erstellen eines Datensatzes zur Charakterisierung des aufgetretenen Ereignissesι
    ■d) Einsetzen-· eines Aufhängers vor der Ober tragung der ■Kontrolle an die nächste Task zur WiederIngangsetzung der Zähler j ■.-■.."
    e) Wiederaufnahme der Ausführung des Anwendungsprogramms«,
    .""'""■ Verfahren nach den Anspruches 1 bis 4, dadurch gekennzeichnet, daß beim Vorliegen einer Endbedingung alle '." - - registrierten Daten aus den Sahlern· in den Hauptspeicher ;:; . oder in eKterne Speicher gerettet werden und daß weiterhin die Aufhänger aus dem Code des Anwendungsprogrammes entfernt werden.
    6ο -Verfahren nach den Ansprüchen 1 bis 5, dadurch gekennzeichnet. ? daß aach dem Ende eines Meßvorgangs wahlweise weiter© Meßvorgänge für dasselbe Anwendungsprogramm durchgeführt werden können. . .
    PO 97o Ο53 409819/07 6-0'
    7. Verfahren nach den Ansprüchen 1 bis 6, dadurch gekennzeichnet, daß neben oder anstelle der Hardware-Meßeinrichtung auch Software-Meßeinrichtungen vorhanden sind, die vom Meßsteuerprogramm gesteuert werden, wobei beide Einrichtungen entweder gleichzeitig oder getrennt unter Kontrolle des Meßsteuerprogramms eingesetzt werden können.
    8. Verfahren nach den Ansprüchen 1 bis 7, dadurch gekennzeichnet, daß nach Beendigung des einen oder mehrerer Meßvorgänge die gesammelten Meßdaten maschinenintern analysiert und die Parameter der Datenverarbeitungsanlage entsprechend dieser Analyse automatisch im Sinn einer Rückkopplung modifiziert werden, um eine möglichst hohe Ausnutzung und Leistungsfähigkeit der Datenverarbeitungsanlage zu erreichen.
    9. Verfahren nach Anspruch 8', dadurch gekennzeichnet, daß die Modifizierung der Parameter der Datenverarbeitungsanlage die maximale Überlappung der Arbeit von Zentraleinheit und Hauptspeicher anstrebt.
    10. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die Modifikation .der Parameter der Datenverarbeitungsanlage die möglichst gleichmäßige Verteilung des Datenverkehrs über alle Kanäle anstrebt.
    11. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß intern ein Rechenfaktor ermittelt wird, der die Belegzeit der Zentraleinheit während der Programmausführung im Verhältnis zur Gesamtzeit der Programmausführung angibt und daß bei Unterschreiten eines bestimmten vorgebbaren Minimalwerts des Rechenfaktors eine übermäßige Belastung der Zentraleinheit (CPU-gebunden) angenommen wird, während bei überschreiten eines ebenfalls willkürlich vorgebbaren Maximalwerts des Rechenfaktors eine Überlastung der Eingabe/Ausgabeeinheiten der Datenverarbeitungsanlage ange-
    po 970 053 409819/0760
    nommen wird und daß entsprechend dem Wert des Rechenfaktors bezüglich dieser beiden Grenzen die Auswahl neuer Tasks für die Verarbeitung im Betriebssystem gesteuert wird.
    12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß bei Vorliegen einer CPU-gebundenen Datenverarbeitungsanlage eine Neuverteilung der im System in Arbeit befindlichen Tasks vorgenommen und dabei Eingabe/Ausgabeintensive Tasks ausgewählt werden, sofern der Überlappungsfaktor zwischen Zentraleinheit und den Kanälen kleiner
    . ist als ein bestimmtes vorgebbares Verhältnis, beispielsweise 0,5.
    13. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß bei einer Eingabe/Aus.gabe-gebundenen Datenverarbeitungsanlage neue rechen-intensive Programme in der Anlage aktiviert werden.
    14. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß bei einem ausgewogenen Rechenfaktor, der weder eine CPU-gebundene noch eine Eingabe/Ausgabe-gebundene Anlage charakterisiert, nur dann neue Eingabe/Ausgabe-intensive Programme in der Anlage aktiviert werden, sofern die Überlappung zwischen Kanal und Zentraleinheit kleiner ist als die Überlappung zwischen Kanal und Systemwartezeit (Fig. 9).
    15. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß bei anstehenden Anforderungen nach Plattenspeicherplatz eine Platte desjenigen Plattenuntersystems ausgewählt wird, welches über den am geringsten belegten Kanal an die Datenverarbeitungsanlage angeschlossen ist und an welchem die wenigsten Suchvorgänge von Zugriffsarmen aktiv sind.
    PO 970 053
    409819/0760
    16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß bei gleicher Anzahl von Suchvorgängen dasjenige Plattenuntersystem ausgewählt wird, welches die geringste Zahl von Eingabe/Ausgabeanforderungen oder aber die geringste mittlere Antwortzeit aufweist.
    po 970 O53 409819/0760
DE19732352696 1972-10-31 1973-10-20 Registrierverfahren mit rueckkopplung fuer programmablaeufe Pending DE2352696A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US30244272A 1972-10-31 1972-10-31

Publications (1)

Publication Number Publication Date
DE2352696A1 true DE2352696A1 (de) 1974-05-09

Family

ID=23167749

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19732352696 Pending DE2352696A1 (de) 1972-10-31 1973-10-20 Registrierverfahren mit rueckkopplung fuer programmablaeufe

Country Status (3)

Country Link
JP (1) JPS4978455A (de)
DE (1) DE2352696A1 (de)
GB (1) GB1436428A (de)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0010570A2 (de) * 1978-10-30 1980-05-14 International Business Machines Corporation Verfahren und Einrichtung zur selbstadaptiven Zuordnung der Arbeitslast einer Datenverarbeitungsanlage
EP0372682A2 (de) * 1988-12-05 1990-06-13 Digital Equipment Corporation Verfahren zur System-Charakterisierung

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1226954A (en) * 1984-05-11 1987-09-15 Jan S. Herman Control sequencer with dual microprogram counters for microdiagnostics
US4841434A (en) * 1984-05-11 1989-06-20 Raytheon Company Control sequencer with dual microprogram counters for microdiagnostics

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0010570A2 (de) * 1978-10-30 1980-05-14 International Business Machines Corporation Verfahren und Einrichtung zur selbstadaptiven Zuordnung der Arbeitslast einer Datenverarbeitungsanlage
EP0010570B1 (de) * 1978-10-30 1983-11-02 International Business Machines Corporation Verfahren und Einrichtung zur selbstadaptiven Zuordnung der Arbeitslast einer Datenverarbeitungsanlage
EP0372682A2 (de) * 1988-12-05 1990-06-13 Digital Equipment Corporation Verfahren zur System-Charakterisierung
EP0372682A3 (de) * 1988-12-05 1991-07-17 Digital Equipment Corporation Verfahren zur System-Charakterisierung

Also Published As

Publication number Publication date
GB1436428A (en) 1976-05-19
JPS4978455A (de) 1974-07-29

Similar Documents

Publication Publication Date Title
DE3687805T2 (de) Ein-ausgabesteuersystem in einem virtuellen maschinensystem.
DE69031233T2 (de) Adaptive Arbeitsfolgeplanung für Mehrfachverarbeitungssysteme
DE4011745C2 (de)
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
DE60034170T2 (de) Protokoll zum Koordinieren der Verteilung von gemeinsamem Speicher
DE3607889C2 (de)
DE69028190T2 (de) Verfahren und Vorrichtung zur Softwareüberwachung und -entwicklung
DE10318622A1 (de) Hardwarebasierte Nutzungsmessung
DE69911026T2 (de) Synchronisation von prozessoren in einem fehlertoleranten multi-prozessor-system
EP0635792B1 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE2230119C2 (de) Einrichtung zur elektronischen Überwachung des Auftretens von Ereignissen innerhalb bestimmter Zeitabschnitte
DE2350884A1 (de) Datenverarbeitungssystem
DE2417795C2 (de) Datenverarbeitungsanlage
DE19728726A1 (de) Robotercontroller und dessen Steuerverfahren
DE2902465A1 (de) Datenverarbeitungsanordnung
DE112010004931T5 (de) Mehrphasige Wiederherstellung von Dateisystemen mit SelektiverBedarfsweiser Verfügbarkeit von Daten(
DE3842289C2 (de) Verfahren zur Entwicklung von Programmen für ein verteiltes Datenverarbeitungssystem
DE69923658T2 (de) Dynamische speicherplatzzuordnung
DE69937266T2 (de) Anwenderschnittstelle für Datenverarbeitungssystem mit Jobüberwachung
DE19617976A1 (de) Kommunikationssystem mit Mitteln zum Austausch von Softwareprozessen
DE102012224362B4 (de) Anpassung einer Testhäufigkeit für die Ressourcenauslastung
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
DE10115722A1 (de) Effiziente Echtzeitverwaltung von Speicherbetriebsmitteln

Legal Events

Date Code Title Description
OHJ Non-payment of the annual fee