DE2456534A1 - DATA PROCESSING SYSTEM - Google Patents

DATA PROCESSING SYSTEM

Info

Publication number
DE2456534A1
DE2456534A1 DE19742456534 DE2456534A DE2456534A1 DE 2456534 A1 DE2456534 A1 DE 2456534A1 DE 19742456534 DE19742456534 DE 19742456534 DE 2456534 A DE2456534 A DE 2456534A DE 2456534 A1 DE2456534 A1 DE 2456534A1
Authority
DE
Germany
Prior art keywords
semaphore
message
command
processes
queue
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.)
Granted
Application number
DE19742456534
Other languages
German (de)
Other versions
DE2456534C2 (en
Inventor
Jacques Bienvenu
Jean-Louis Bogaert
John Bradley
Claude Carre
Jean-Claude Cassonnet
Benjamin Franklin
Tuong Duc Luu
Philippe De Rivet
Henri Verdier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull SA
Original Assignee
Bull SA
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
Priority claimed from FR7342696A external-priority patent/FR2253423A5/fr
Priority claimed from FR7342712A external-priority patent/FR2253414A5/en
Priority claimed from FR7342697A external-priority patent/FR2253420A5/fr
Priority claimed from FR7342691A external-priority patent/FR2253418A5/fr
Application filed by Bull SA filed Critical Bull SA
Publication of DE2456534A1 publication Critical patent/DE2456534A1/en
Application granted granted Critical
Publication of DE2456534C2 publication Critical patent/DE2456534C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Description

COMPAGNIE HONEWELL BULL
94·ι Avenue Gambe ti?a
PARI 'S (20)/Frankreich
COMPAGNIE HONEWELL BULL
94 · ι Avenue Gambe ti? A
PARI 'S (20) / France

Unser Zeichen; H 1025Our sign; H 1025

DATENVERARBEJ/iOMGSSYSTEMDATA PROCESSING / iOMGSSYSTEM

Diese Erfindung bezieht sich allgemein auf Computer-Systeme und insbesondere auf ein System und ein Verfahren zur Steuerung von Computer-Prozessen in einem Mehrprogramm/Mehrprozessor-Betrieb. This invention relates generally to computer systems and, more particularly, to a system and method of control of computer processes in a multi-program / multi-processor operation.

Die Systeme der vierten Generation werden in der Lage sein, den folgenden Anforderungen zu entsprechen:The fourth generation systems will be able to to meet the following requirements:

1, "Das System wird als Kommuhikations-und Steuersystem1, "The system is called a communication and control system

klassifiziert v/erden und in der Lage sein, breitgestreute, vielfältige Prozessor-Anwendungen zu gewährleisten".classified and able to cater for wide and diverse processor applications ".

2. "Das System wird hauptsächlich durch Daten und nicht durch2. "The system is mainly through data and not through

Programme, wie dies bei früheren Maschinen der Fal3 war, gesteuert: d.h. die Systemsteuerung wird hauptsächlich durch eingegebene Informationen und nicht durch gespeicherte Befehle durchgeführt".Programs, as was the case with earlier Fal3 machines, controlled: i.e. the system control is mainly controlled by entered information and not by stored Commands carried out ".

509834/0830509834/0830

3. "Die Hardware wird die Kommunikations- und Steuerverfahren durchführen; die Verwendung von System-Steuerungsprogrammen wird wesentlich eingeschränkt oder abgeschafft» .3. "The hardware will do the communication and control procedures carry out; the use of system control programs is significantly restricted or abolished » .

4. "Der Hauptteil der Verarbeitung wird in Echtzeit durchgeführt; die Operationen werden bei der Eingabe von Daten mit einer Geschwindigkeit durchgeführt, die eine Ausgabe von Informationen innerhalb der erforderlichen Antwortzeit gewährleistet".4. "Most of the processing is done in real time; the operations are carried out as data is entered carried out at a speed that an output of information within the required response time guaranteed ".

5. "Das System wird für Erweiterungen vorbereitet sein.5. "The system will be prepared for expansion.

Hardware und Software v/erden von der Konzeption her funktionell modular sein"'.Hardware and software are designed to be functionally modular "'.

Die Verarbeitung in den Hardware/Software-Computer-Systemen der ersten Generation lief relativ "geradeaus" ab, wobei der "Job" oder das Programm als Basis-Verarbeitungseinheit betrachtet wurde. Bei jedem vom Benutzer ausgelosten "Job" oder Arbeitsvorgang, lief das Programm im allgemeinen mit wenigen oder keinen Unterbrechungen ab, bis der "Job" oder der Arbeitsgang zu Ende geführt war. Viele Hgeradeaus"-Jobs wie Kompilierung und Durchführung von Programmen in einer Hochleistungssprache wie FORTRAN, konnten als Einzelverfahren ablaufen. Schwierigere "Jobs" würden jedoch Multitask-Operationen erfordern und andere als die durchgeführten Prozesse erzeugen. ( Es ist zu bemerken, daß ein Prozeß ein Konzept darstellt, welches die Durchführung einer bestimmten Aktivität mit.sich bringt und nicht mit dem Konzept eines Programms verwechselt werden sollte, welches eine Aktivitätsbeschreibung ist und von einem oder mehreren Prozessen benutzt werden kann. Man kann daher entweder von einem Prozeß oder von einem Prozessor sprechen, der ein Programm durchführt. Siehe Erklärung der Definitionen) . Processing in the first generation hardware / software computer systems was relatively "straight forward" with the "job" or program considered to be the basic unit of processing. For each user-drawn "job" or operation, the program generally ran with little or no interruption until the "job" or operation was completed. Many H straight ahead "jobs, such as compiling and executing programs in a high-performance language such as FORTRAN, could run as a single process. However, more difficult" jobs "would require multitasking operations and produce processes other than those being performed represents a concept that involves performing a particular activity and should not be confused with the concept of a program, which is an activity description and can be used by one or more processes speaking who is running a program (see explanation of definitions).

50983&/G83O50983 & / G83O

Das Konzept eines Prozessors als Basis-Verarbeitungseinheit wurde entwickelt, um einen. Anspruch der Mehrprogramm/Mehrprozessor-Strukturen der dritten Computer-Generation zu entsprechen. In einer solchen Struktur, in der viele Benutzer gleichzeitig Dienstleistungen abrufen, ist es normal, Vielfach-Prozesse einzusetzen, die mit den Einrichtungen innerhalb des Computer-Systems konkurrieren. Jeder Prozeß besteht aus einem Programm (d.h. einer geordneten Sammlung von Befehlen und anderen, mit den Befehlen verbundenen Daten), welches vom Computer durchgeführt wird und Daten verarbeitet, um den "Job" des Benutzers oder eine' bestimmte Phase dieses "Jobs" durchzuführen. Dort, wo viele solcher Prozesse gleichzeitig die Benutzung des Systems erfordern, werden die Aufgabe der Kommunikation mit und zwischen derartigen Prozessen sowie die Aufgaben der Steuerung und Zuweisung der Hilfseinrichtungen für derartige Prozesse, insbesondere hinsichtlich der Anforderungen der vierten Computer-Generation extrem schwierig.The concept of a processor as a basic processing unit was designed to be a. Claim of the multi-program / multi-processor structures to correspond to the third generation of computers. In such a structure where many users access services at the same time, it is normal to use multiple processes with the Institutions within the computer system compete. Each process consists of a program (i.e. an ordered Collection of commands and others related to the commands Data), which is carried out by the computer and processed data in order to perform the "job" of the user or a 'specific Phase of this "job" to carry out. Wherever many such processes require the use of the system at the same time, become the task of communication with and between such processes as well as the tasks of controlling and assigning the auxiliary equipment for such processes, especially with regard to the requirements of the fourth Computer generation extremely difficult.

In einem Dokument mit dem Titel "Prozeßsteuerung und Kommunikation" von A.J. Bernstein, G.D.Detlefsen und R.H. Kerr, das in "ACM Symposium of Operating Systems" veröffentlicht wurde, wird "die Struktur von Prozessen und die in einem Allzweck-Operationssystem verwendeten Zwischenprozeß-Kommunikationseinrichtungen" beschrieben.In a document entitled "Process Control and Communication" by A.J. Bernstein, G.D. Detlefsen and R.H. Kerr, published in the ACM Symposium of Operating Systems, becomes “the structure of processes and those used in a general purpose surgical system Inter-Process Communication Devices "is described.

In diesem System kann ein Verfahren aus bis zu 4 Teilen bestehen, die als logische Segmente bezeichnet werden. Die Segmente können in räumlich getrennten Speicherplätzen sein, wenn sich der Prozeß im Speicher befindet. Das Yfiederauffinden und der Schutz dieser Segmente werden mit Hilfe von vier Registern durchgeführt.In this system, a procedure can consist of up to 4 parts called logical segments. the Segments can be in spatially separated memory locations if the process is in memory. That Find and protect these segments carried out with the help of four registers.

Im allgemeinen v/erden Prozesse durch ein Betriebssystem gesteuert, welches Primitiv-Befehle (d.h. Pseudobefehle) verwendet, die vom Prozeß erzeugt werden und auf einen Mechanismus zurückgreifen, der eine Kommunikation zwischen den Prozessen ermöglicht. Hauptsächlich besteht eine Kommunikation aus Geschehnissen, die dieselbe AIT-Eingabe benutzen (Active Items Table), welche eine einzige Eingabe für jede gerade eröffnete Datei enthält. Mit Hilfe dieser Struktur kann ein Prozeß eine "Benachrichtigung" (durch Ausgabe eines "Notify"-Primitiv~Befehls) abrufen, wenn das Geschehnis auftritt. Als Ergebnis erzeugt das Betriebssystem eine Eingabe zu der Ereignis-Schlange, die dem Ereignis zugeordnet ist, welches die Wartebenachrichtigung des Abrufprozesses identifiziert. An diesem Punkt kann der abrufende Prozeß die Durchführung fortsetzen oder durch Ausgabe eines Block-Primitiv-Befehls selber seine Durchführung unterbrechen. Das Geschehnis wird als aufgetreten bezeichnet, wenn irgendein anderer Prozeß für dieses Geschehnis einen "CAUSE"-Primitiv-Befehl erzeugt;das Geschehnis kann in der Leitstruktur katalogisiert und verarbeitet werden, die die gleichen. Primitiv-Befehle verwendet. Informationen können von einem Prozeß zu einem anderen übertragen werden oder die Prozesse arbeiten auf einer anderen V/eise zusammen, um eine bestimmte Aufgabe (Task) durchzuführen. Andere Primitiv-Befehle im Betriebssystem erzeugen und entwickeln Prozesse oder annullieren diese.In general, processes are controlled by an operating system which uses primitive instructions (i.e. pseudo instructions) which are generated by the process and use a mechanism that enables communication between enables the processes. A communication consists mainly of events that have the same AIT input (Active Items Table), which contains a single entry for each file that has just been opened. With the help of this Structure, a process can get a "notification" (by issuing a "Notify" primitive ~ command) when the Incident occurs. As a result, the operating system generates input to the event queue assigned to the Event is assigned, which identifies the waiting notification of the retrieval process. At this point you can the calling process can continue the execution or do its own thing by issuing a block primitive command Interrupt execution. The incident is said to have occurred when some other process a "CAUSE" primitive command for this event generated; the incident can be cataloged and processed in the lead structure, the same. Primitive commands used. Information can be transferred from one process to another or the processes work together in a different way to carry out a specific task. Other primitive commands in the Operating system create and develop processes or cancel them.

Diese Prozeß- und Kommunikations-Steuertechnik erzeugt keine geordnete dynamische Ablaufgeschichte des ablaufenden Programms; sie bringt jedoch einige Konzeptionen der Software-Multiplexierung von Prozessen und Ereignissteuerung zur Anwendung.This process and communication control technology does not generate an orderly dynamic process history of the running Program; however, it does bring some conceptions of software multiplexing from processes and event control to application.

In einer Mehrprogramm/Mehrprozessor-Struktur ist es vonIn a multi-program / multi-processor structure, it is from

S09834/0830S09834 / 0830

größter Wichtigkeit, daß das Zusammenwirken zwischen zwei oder mehreren sequentiellen Prozessen wirksam und schnell durchgeführt wird. In der Vergangenheit sind viele Lösungen für dieses Problem vorgeschlagen worden; die Technik der für die Computer der vierten Generation erforderlichen Prozeß' -Kommunikations-Steuerung ist jedoch bis jetzt noch nicht voll verwirklicht worden. Die Entwicklung der für Computer der vierten Generation erforderlichen Konzeptionen ist jedoch teilweise von E.W. Dijkstra in einem Dokument mit dem Titel "Cooperative Sequential Processes from Programming Languages" des NATO-Instituts für höhere Studien beschrieben worden, das von F.Genuys in Paris herausgegeben und von der "Academic Press" 1968 veröffentlicht wurde. In diesem Dokument stellt Dijkstra die Forderung nach einem "Semaphor-Basiskonzept", das zur Prozeß-Synchronisation verwendet werden kann, und nach P- und V-Befehlen, die das "Semaphor" beeinflussen. Unglücklicherweise schlägt Dijkstra für die Prozeßkommunikation- und-synchronisation nur ein Software-Prozeß vor und verlangsamt dadurch nicht nur die Operationszeit des Systems, sondern setzt ebenfalls die Wirksamkeit und die für ein solches System geforderte Gesamtauslastung herab. Noch wichtiger ist, daß Dijkstra keines der für einen wirksamen Betrieb eines Computers der vierten Generation erforderlichen Konzepte entwickelt, da er nur einen Basis-Vorschlag zur Prozeß-Synchronisation formuliert. Zum Beispiel ist die Übertragung von Meldungen von einem Prozeß zu einem anderen in Dijkstras Dokument weder angedeutet noch beschrieben. Für die vierte Generation ist ein System erforderlich, das automatisch die Prozeß-Kommunikation und -Steuerung integriert und so nicht nur die Betriebsleistung des Systems steigert, sondern auch ein ausreichende Flexibilität zur Bewältigung der zahlreichen Situationen, die sich aus der Informationsübertragung von einem Prozeß zu einem anderen ergeben, ermöglicht.it is of the utmost importance that the interaction between two or more sequential processes is efficient and rapid is carried out. Many solutions to this problem have been proposed in the past; the technology of however, process communication control required for the fourth generation computers is still up to now has not been fully realized. Developing the concepts required for fourth generation computers however, is partly from E.W. Dijkstra in a document entitled "Cooperative Sequential Processes from Programming Languages "of the NATO Institute for Advanced Studies edited by F. Genuys in Paris and published by the Academic Press in 1968. In In this document, Dijkstra calls for a "basic semaphore concept" which is used for process synchronization can be, and after P and V commands that affect the "semaphore". Unfortunately, Dijkstra hits only one for process communication and synchronization Software process and thereby not only slows down the Operating time of the system, but also determines the effectiveness and the overall utilization required for such a system down. More importantly, Dijkstra is not one of the fourth for the effective operation of a computer Generation necessary concepts developed, since he formulates only a basic proposal for process synchronization. For example, the transfer of messages from one process to another is not implied in Dijkstra's document still described. For the fourth generation, a system is required that automatically handles process communication and control integrated and thus not only increases the operating performance of the system, but also increases it sufficient flexibility to cope with the numerous situations that result from the transfer of information surrender from one process to another.

S09834/0830S09834 / 0830

Das Konzept der P- und V-Befehle ist bereits vorher von Edsger W.Dijkstra in dem vorher erwähnten Artikel behandelt worden. Diese Konzepte sind jedoch nur allgemein angegeben und ergeben keine für einen Computer der vierten Generation erforderliche Konfiguration. Weiterhin entwickelt Dijkstra kaum eine Software-Basis zur Entschlüsselung und Benutzung der P-und V-Befehle. Er beschreibt daher auch nicht die erforderliche Speicher-Organisation für den schnellen Zugriff zu Prozessen in Verbindung mit der Erzeugung einer systematischen WiederZuweisung des Daten-Prozessors.The concept of the P and V commands has been previously discussed by Edsger W Dijkstra in the aforementioned article been. However, these concepts are given only in general terms and do not make a statement for a fourth generation computer required configuration. Furthermore, Dijkstra hardly develops a software basis for decryption and using the P and V commands. It therefore does not describe the necessary storage organization for the fast Access to processes in connection with the creation of a systematic reallocation of the data processor.

Zweck der ErfindungPurpose of the invention

Ein Hauptzweck der Erfindung besteht darin, ein verbessertes System und ein verbessertes Verfahren zur Prozeß-Synchronisation in einer Mehrprogramm/Mehrprozessor-Struktur zu erreichen. A primary purpose of the invention is to provide an improved system and method for process synchronization in a multi-program / multi-processor structure.

Ein v/eiterer Zweck der Erfindung besteht in der Entwicklung eines Systems und eines Verfahrens zur Prozeß-Synchronisation mit Hilfe einer Befehls-Familie, die für die Reduzierung der Betriebsüberlastung bestimmt ist.Another purpose of the invention is to develop a system and method for process synchronization with the help of a family of commands designed to reduce operational congestion.

Ein weiterer Zweck der Erfindung besteht in der Entwicklung eines Systems und eines Verfahrens zur Prozeß-Synchronisation von Geschehnissen, die außerhalb des zentralen Verarbeitungs-Untersystems ablaufen, um die früheren Funktionsgrenzen zu überwinden.Another purpose of the invention is development a system and a method for process synchronization of events outside the central processing subsystem expire in order to overcome the previous functional limits.

Ein weiterer Zweck der Erfindung besteht in der Entwicklung eines Systems und eines Verfahrens zur Integration der Eingabe/ Ausgabe-Unterbrechung in die Funktion des zentralen Verarbeitungs-Untersystems, um Schaltungs- und Zeitaufwand herabzusetzen. Another purpose of the invention is to develop a system and method for integrating the input / Output interruption in the function of the central processing subsystem, to reduce circuit and time expenditure.

509834/0830509834/0830

Ein weiterer Zweck der. Erfindung besteht in der Entwicklung eines Systems und eines Verfahrens zur Initialisierung der "Semaphore", um auf diese Weise sowohl die Durchführungszeit wie auch die Gesamtgröße des erforderlichen Speicherraums zu reduzieren.Another purpose of the. The invention consists in the development of a system and a method for initializing the "Semaphore", in this way both the execution time and the total size of the required memory space to reduce.

Die vorstehenden Ziele werden gemäß einer Ausführungsform der Erfindung und ihrer Betriebsweise dadurch erreicht, daß in einem Datenverarbeitungssystem eine Befehls-Familie geschaffen wird, die Daten für weitere Prozesse erzeugt. Die Befehls-Familie erzeugt Informationen hauptsächlich durch zwei Operationen, d.h. durch die P-Operation, welche Informationen (Daten) benötigt und die V-Operation, die Informationen (Daten) erzeugt.The above objects are achieved in accordance with one embodiment the invention and its mode of operation achieved in that in a data processing system an instruction family that generates data for further processes. The command family primarily generates information by two operations, i.e. by the P operation, which Information (data) needed and the V operation that Information (data) generated.

Ein Prozeß, der einen P-Befehl ausführt, benötigt Daten, um die Operation fortzusetzen. Der P-Befehl adressiert eine "Semaphor11-Datenstruktur und dekrementiert deren Zahl-Feld um den numerischen Wert 1. Wenn der Ergebniswert des "Semaphor"-Zählfelds nicht negativ ist, setzt der Prozeß, der den P-Befehl ausführt, die Durchführung seines nächsten Befehls in seinem Segment-Verfahren fort; wenn der Ergebniswert jedoch negativ ist,--wird der Prozeß, welcher den P-Befehl durchführt, unterbrochen und auf dem*vom P-Befehl adressierten "Semaphor" in einen Warte-Status versetzt. Bis auf weiteres (d.h. eine V-Operation auf diesem selben "Semaphor") ist eine dynamische Fortsetzung des Prozesses, welcher den P-Befehl ausführt, logisch nicht zulässig und kein Prozessor wird diesem Prozeß zugewiesen.A process executing a P instruction needs data to continue the operation. The P command addresses a "Semaphore 11 data structure and decrements its number field by the numerical value 1. If the result value of the" Semaphore "count field is not negative, the process executing the P command continues its execution next command in its segment procedure; if the result value is negative, however, - the process which carries out the P command is interrupted and placed in a waiting status on the "semaphore" addressed by the P command furthermore (ie a V operation on this same "semaphore") a dynamic continuation of the process which is executing the P instruction is logically not permitted and no processor is assigned to this process.

Ein Prozeß, der einen V-Befehl durchführt, erzeugt Daten. Der V-Befehl adressiert ein "Semaphor" und inkrementiert den Wert des "Semaphor"-Zählfeldes um 1. Wenn der Ergebniswert des "Semaphor"-Zählfelds: positiv ist, ist der V-Befehl bei der Datenübertragung vollständig; wenn jedoch der ErgebniswertA process performing a V instruction generates data. The V command addresses a "semaphore" and increments the Value of the "semaphore" counter field by 1. If the result value of the "semaphore" count field: is positive, the V command in the data transfer is complete; but if the result value

509834/0830509834/0830

des "Semaphor"-Zählfelds nicht positiv ist, gibt der V-Befehl einen der im Wartezustand befindlichen und dem gleichen adressierten "Semaphor" zugeordneten Prozeß zusätzlich für den Wechsel in den Bereit-Status frei, d.h. die dynamische Fortsetzung des gerade aus dem Warte-Status abgerufenen Prozesses ist wieder logisch zulässig, und zum vorgesehenen Zeitpunkt, d.h. wenn ihm ein Prozessor zugeordnet worden ist, geht er in den Betriebs-Status über.of the "semaphore" count field is not positive, the V command issues one of the processes which are in the waiting state and which are assigned to the same addressed "semaphore" free for the change to the ready status, i.e. the dynamic continuation of the waiting status The called process is again logically permissible and at the intended time, i.e. when it is a processor has been assigned, it changes to the operating status.

Variationen der P- und V-Befehle beinhalten individuelle Befehle sowohl für "Semaphor"-Strukturen ohne Meldungen und für "Semaphor"-Strukturen mit Meldungen; jede Variante besitzt ebenfalls Test-Befehle, die Testbefehle geben die Fortsetzung des Verfahrens im Betriebsstatus frei, wenn die P- oder V-Befehle nicht durchgeführt werden können. Zwischen den Befehlen werden externe Geschehnisse, d.h. schwebende Eingabe-'Ausgabe-Unterbrechungen und bestimmte schwebende Ausnahmebedingungen verarbeitet. Dies wird von der System-Ereignisabrufeinheit (System Event Poller) durchgeführt, die normalerweise am Ende eines jeden Befehls von der Zentraleinheit eingegeben wird. Wenn sich die Zentraleinheit nicht in einem kritischen Übergangs-Modus befindet, werden alle Eingabe-Ausgabe-Unterbrechungen und bestimmte Ausnahmebedingungen abgerufen. Bei jedem externen Geschehnis erzeugt der "System Event Poller" im Auftrag des Eingabe-Ausgabe-Untersystems oder des zentralen Ausnahmemechanismus eine simulierte V-Operation zur Übertragung der entsprechenden Informationen. Zwischenzeitlich wird der selektive Abruf fortgesetzt, bis alle externen Geschehnisse verarbeitet worden sind. Nach der Verarbeitung aller schwebenden Eingabe-Ausgabe-Unterbrechungen und Ausnahmebedingungen, erfolgt eine Eingabe zur Dispatcher-Einheit (Zuteiler), um den nächsten Prozeß zu bestimmen, der die Steuerung der Zentraleinheit übernimmt.Variations of the P and V commands include individual ones Commands for both "semaphore" structures without messages and for "semaphore" structures with messages; each variant also has test commands, the test commands give the Continuation of the procedure in the operating status free if the P or V commands cannot be carried out. External events, i.e. pending input-output interruptions and certain pending exception conditions processed. This is done by the system event retrieval unit (System Event Poller), which is normally entered by the central unit at the end of each command. If the central processing unit is not in a critical transition mode, all input-output interrupts will be and retrieved certain exceptions. With every external incident, the "system Event Poller "on behalf of the input-output subsystem or the central exception mechanism a simulated V operation to transfer the relevant information. In the meantime, the selective retrieval is continued until all external events have been processed. After all pending input-output interrupts and exceptions have been processed, an Input to the dispatcher unit to determine the next process that will control the central unit takes over.

$09834/0830$ 09834/0830

Der "Semaphor"-Initialisierungsbefehl findet ein "Semaphor" mit Hilfe der Adreßentwicklung seiner Adreß-Silbe. Wenn das "Semaphor" keine Meldung enthält, empfängt das "Semaphor"-Zählfeld eine N-Nummer, die in einem allgemeinen Register des ablaufenden Verfahrens gespeichert ist. Venn das "Semaphor" eine Meldung enthält, wird das "Semaphor"-Zählfeld auf Null gelöscht. Bei einem Meldungs-"Semaphor" werden, wenn dessen vorhergehendes Zählfeld größer als Null war, alle Meldungsverkettungen in Q/M/S zum freien Meldungs-Verkettungs-11 Semaphor" FLS zurückgeleitet und mit Q/ML/FLS verkettet. Wenn das vorherige Zählfeld des "Semaphor" gleich Null ist, ist keine Übertragung der Meldungs-Verkettungen erforderlich und der Befehl ist vollständig. Wenn der Inhalt des vorherigen "Semaphor"-Zählfelds geringer als Null ist, wird der Befehl nicht durchgeführt.The "semaphore" initialization command finds a "semaphore" with the help of the address development of its address syllable. If the "semaphore" does not contain a message, the "semaphore" count field receives an N number which is stored in a general register of the process in progress. If the "semaphore" contains a message, the "semaphore" counter field is cleared to zero. In the case of a message "semaphore", if its previous counting field was greater than zero, all message chaining in Q / M / S are returned to the free message chaining 11 semaphore "FLS and chained with Q / ML / FLS. If the previous counting field of the "semaphore" is equal to zero, no transmission of the message chains is required and the command is complete.

Die für diese Erfindung charakteristischen neuartigen Einrichtungen, werden insbesondere in den beigefügten Patentansprüchen näher beschrieben. Die Erfindung selbst kann jedoch durch Einsichtnahme in die folgende Beschreibung in Verbindung mit den Zeichnungen, sowohl vom Organisationswie vom Operations-Standpunkt sowie hinsichtlich v/eiterer Ziele und Vorteile am besten verstanden werden:The novel facilities characteristic of this invention, are particularly described in more detail in the attached claims. The invention itself can however, by inspection of the following description in conjunction with the drawings, both by the organization and by the can be best understood from the operational point of view as well as with regard to other goals and advantages:

Fig.1 stellt das Blockdiagramm eines Mehrprogramm-Systems dar, in dem die Erfindung zur Anwendung kommt,Fig.1 shows the block diagram of a multi-program system represents in which the invention is used,

Fig.2 ist eine schematische Darstellung der verschiedenen, für die Erfindung verwendeten Hardware-Strukturen,Fig. 2 is a schematic representation of the various hardware structures used for the invention,

Fig.3 enthält eine Erläuterung der für die reservierten Speicherbereiche der in Fig.2 dargestellten Register verwendeten Ausdrücke,Fig.3 contains an explanation of the reserved for the Memory areas of the expressions used in the registers shown in Fig. 2,

809834/0830809834/0830

- ίο -- ίο -

Fig.4 ist ein schematisches Diagramm eines Prozeß-Steuerblocks, Fig. 4 is a schematic diagram of a process control block,

Fig.5 ist ein schematisches Diagramm eines Systems zur Adressierung eines Prozeß-Steuerblocks,Figure 5 is a schematic diagram of a system for Addressing a process control block,

Fig.6 ist ein schematisches Diagramm der Systembasis der Erfindung,FIG. 6 is a schematic diagram of the system base of FIG Invention,

Fig.7A und 7B sind jeweils systematische Darstellungen eines Stapelsegments und eines Stapelelements,7A and 7B are each systematic representations of a stack segment and a stack element,

Fig.8 ist ein schematisches Diagramm eines Systems zur Adressierung der G-Segmente und insbesondere der Prozeß-Schlange im GO-Segment,Figure 8 is a schematic diagram of a system for Addressing the G segments and especially the process queue in the GO segment,

Fig.9 ist ein schematisches Explosionsdiagramm eine GO-Segments und stellt die Prozeß-Schlange und Prozeß-Verkettung dar,Figure 9 is an exploded schematic diagram of a GO segment and represents the process queue and process chain,

Fig.10a bis 101 sind Blockdiagramme von Strukturen innerhalb des PCB,Figs. 10a to 101 are block diagrams of structures within of the PCB,

Fig.11a bis 11r sind Blockdiagranune von Strukturen innerhalb der Systembasis,Figures 11a through 11r are block diagrams of structures within the system base,

Fig.12 ist ein schematisches Diagramm der Adressierung von S-Schemata für Benutzer-und Systemsegmente, welche die ßystembasis- und PCB-Strukturen benutzen,FIG. 12 is a schematic diagram of the addressing of FIG S-Schemas for user and system segments using the system base and PCB structures,

Fig.13a, 13b und 13c sind schematische Diagramme der Steuereinheit,Figures 13a, 13b and 13c are schematic diagrams of the Control unit,

509834/0830509834/0830

Fig.14a bis I4i sind Flußdiagramme der Firmware-Dispatcher-Einheit, Fig. 14a to I4i are flow charts of the firmware dispatcher unit,

Fig.15 ist eine Explosionsdarstellung eines "Semaphor"-Descriptor-Segments und seines Aufbaus,Figure 15 is an exploded view of a "semaphore" descriptor segment and its structure,

Fig.i6a bis I6d sind Blockdiagramme von im System verwendeten 11 Semaphor"-Strukturen,Figs. I6a through I6d are block diagrams of 11 semaphore "structures used in the system;

Fig.17 ist ein schematisches Diagramm der "Semaphor"- Adreß_ entwicklung,Fig.17 is a schematic diagram of the "semaphore" address development,

Fig.18 ist ein schematisches Diagramm, in dem die BeziehungFig.18 is a schematic diagram showing the relationship

des "Semaphor"-Descriptor-Segments zu einem GO-. ' Segment dargestellt ist,of the "semaphore" descriptor segment to a GO-. 'Segment is shown,

Fig.19a und 19b sind schematische Explosionsdiagramme des "Scratch Pad"-Speichers der in Fig.13 abgebildeten logischen Speichereinheit und erläutert die Gesamtorganisation seiner Wortstruktur,19a and 19b are schematic exploded diagrams of the "Scratch Pad" memory of the one shown in Fig.13 logical storage unit and explains the overall organization of its word structure,

Fig.20a und 20b sind Flußdiagramme der für alle P - und V-Befehle benutzten "Semaphor"-Descriptor-Erfassungsunterroutinen, Figures 20a and 20b are flow charts for all of the P and V commands used "semaphore" descriptor acquisition subroutines,

Fig.21 ist ein Flußdiagramm des P-Befehls für "Semaphore" ohne Meldungen,Fig. 21 is a flow chart of the P command for "Semaphore" without reports,

Fig.22a bis 22e sind Flußdiagramme der P-Befehle für "Semaphore" mit Meldungen,Fig. 22a to 22e are flow charts of the P commands for "semaphore" with messages,

Fig.23a bis 23h sind Flußdiagramme der sowohl von den P-wie auch von den V-Befehlen aufgerufenen EVP-Unterroutinen zur Transferierung des laufenden Prozesses in den Warte-Status.Figures 23a through 23h are flow charts of both the P and the also called by the V commands EVP subroutines for transferring the current process in the waiting status.

509834/0830509834/0830

Fig.24a bis 24d sind Flußdiagramme der PMZ-Unterroutine zur Übertragung einer Meldung ohne Eingabe einer Warteschlange in ein "Semaphor".,Figures 24a through 24d are flow charts of the PMZ subroutine for Transmission of a message without entering a queue in a "semaphore".,

Fig.25a bis 25i sind Flußdiagramme des V-Befehls, der für ein "Semaphor" verwendet wird, wenn das SCT-FeId des "Semaphor" negativ ist,Figures 25a through 25i are flow charts of the V command used for a "semaphore" is used if the SCT field of the "semaphore" is negative,

Fig.26a bis 26j sind Flußdiagramme des V-Befehls, der für ein "Semaphor" verwendet wird, wenn das SCT-FeId des "Semaphor" positiv ist,Figures 26a through 26j are flow charts of the V command used for a "semaphore" is used if the SCT field of the "semaphore" is positive,

Fig.27 ist ein Flußdiagramm des am Ende des laufenden Befehls abgerufenen "System Event Poller",Fig. 27 is a flow chart of the instruction at the end of the current instruction called "System Event Poller",

Fig.28 ist ein Flußdiagramm des Eingabe/Ausgabe-Ereignis-Abhandlers, der vom System Event Poller eingegeben wird,Fig. 28 is a flow diagram of the input / output event handler; which is entered by the System Event Poller,

Fig.29 ist ein schematisches Diagramm einer Logikkanal-Tabelleneingabe und der Warteschlangen, in denen die Logikkanal-Tabelleneingaben verwendet werden,Figure 29 is a schematic diagram of a logical channel table entry and the queues in which the logical channel table entries are used,

Fig.30 ist ein Flußdiagramm des simulierten V-Befehls, der für ein Meldungs-"Semaphor" verwendet wird, wenn das SCT-FeId des Meldungs-"Semaphor" positiv ist und keine freien Meldungsverkettungen verfügbar sind, .Fig. 30 is a flow diagram of the simulated V command shown in FIG is used for a message "semaphore" if the SCT field of the message "semaphore" is positive and no free message chains are available,.

Fig.31 ist ein Flußdiagramm des simulierten V-Befehls, der für ein Meldungs- "Semaphor" verwendet wird, wenn eine freie Meldungs-Verkettung verfügbar gemacht worden ist,Fig. 31 is a flow chart of the simulated V command shown in the is used for a message "semaphore" if a free message chain has been made available,

509834/0830509834/0830

•und eine Warteschlange logischer Kanäle auf einem freien Verkettungs-"Semaphor" (Q/LC/FLS) erzeugt worden ist, .• and a queue of logical channels on one free concatenation "semaphore" (Q / LC / FLS) has been created is, .

Fig.32 ist ein Flußdiagramm des simulierten V-Befehls, der für ein Meldungs- "Semaphor11 verwendet wird, wenn das SCT-FeId des Meldungs-"Semaphor" Null ist und ein Q/LC/FLS vorhanden ist. ·Fig. 32 is a flow chart of the simulated V command used for a message "semaphore 11 when the SCT field of the message" semaphore "is zero and a Q / LC / FLS is present.

Beschreibung des bevorzugten Aufbaus Allgemeine DiskussionDescription of the Preferred Construction General Discussion

Die Erfindung wird typischerweise in einer nachstehend beschriebenen Hardware-Systemstruktur verwendet, die durch ein Hardware/Firmware/Software-Betriebssystem koordiniert wird. Die Untersysteme gemäß ?ig.1 sind das Prozessor-Untersystem 101, das Speicher-Untersystem 102 und eins oder mehrere -— bis zu 32 — Peripherie-Untersysteme 103. Das Prozessor-Untersystem enthält eine zentrale Verarbeitungseinheit (CPU) 104 und bis zu vier Eingabe/Ausgabe-Steuereinheiten (IOC) 105. Jedes Peripherie-Untersystem besteht aus einer Peripherie-Steuereinheit (PCU) 106, einer Anzahl von Geräte-Adaptern (DA) 107 und bis zu 256 Peripherie-Eingabe/Ausgabe-Geräten 108. Das Speicher-Untersystem 1o2 besteht aus., einem bis vier Halbleiter-Speichermodulen von jeweils 32 bis 512 Kilobytes.The invention is typically described in one of the following Hardware system structure used that is coordinated by a hardware / firmware / software operating system will. The subsystems according to FIG. 1 are the processor subsystem 101, the memory subsystem 102 and one or more several - up to 32 - peripheral subsystems 103. Das Processor subsystem includes a central processing unit (CPU) 104 and up to four input / output control units (IOC) 105. Each peripheral subsystem consists of a peripheral control unit (PCU) 106, a number of device adapters (DA) 107 and up to 256 peripheral input / output devices 108. The memory subsystem 1o2 consists of., One to four semiconductor memory modules of 32 to 512 kilobytes each.

I. Das Prozessor-UntersystemI. The processor subsystem

Im Prozessor-Untersystem 101 führt die CPU 104 die Verarbeitungs-Basisoperationen des Systems sowie die Interface-Funktionen mit dem Speicher 102 durch. Die IOC 105 steuert den gesamten Informationsaustausch zwischen dem Speicher-Untersystem und den Peripherie-Geräten 106.In the processor subsystem 101, the CPU 104 performs the basic processing operations of the system and the interface functions with the memory 102. The IOC 105 controls the entire exchange of information between the storage subsystem and the peripheral devices 106.

509834/0830509834/0830

A. Die Zentrale Verarbeitungseinheit CPUA. The central processing unit CPU

Die CPU beinhaltet einen Hauptspeicher-Synchronisator 109, einen Pufferspeicher 110, verschiedene Elemente, die die Recheneinheit 111 bilden, und zusätzliche Emulations-Uinrichtungen 112. Der Hauptspeicher-Synchronisator 109 löst Konflikte bezüglich der Benutzung des Hauptspeichers durch die Recheneinheit 111, den Pufferspeicher 110 und die IOC 109. Die Konflikte werden auf einer Prioritätsbasis gelöst: die IOC besitzt die höchste Prioritätsstufe, · darauf folgt der Schreib-Speicher (von der Recheneinheit aus) und dann der Lese-Speicher (in dem Puffer-Speicher), Die HauptCPU beinhaltet weiterhin die Adreßsteuer-Einheit ACU 131, welche die Adressierung des Hauptspeichers und des Assoziativspeichers AS 132 steuert, der zur Speicherung der aktuellsten, gerade benutzten Adressen des Hauptspeichers verwendet wird. Der Puffer-Speicher 110 ist ein kleiner Hochgeschwindigkeits-Pufferspeicher, der einen ausgewählten Bereich des Hauptspeichers reproduziert und über Interface-Funktionen mit der Recheneinheit verbunden ist, um die durchschnittliche Speicherzugriffszeit herabzusetzen. V/ährend jeder Speicher-Leseoperation erfolgt ein Zugriff sowohl zum Pufferspeicher wie auch zum Hauptspeicher. Wenn sich die abzugreifende Information bereits im Puffer-Speicher befindet, wird die Hauptspeicher-Leseoperation zu Ende gebracht und die Information aus dem Puffer-Speicher abgegriffen. Andernfalls wird der Hauptspeicher 102 gelesen. Jedesmal wenn dies geschieht, erfaßt die CPU 104 32 Bytes, welche die benötigten Informationen enthalten. Diese Informationen bleiben als zukünftige Speicherreferenzen im Puffer-Speicher. Da der Puffer-Speicher softwaretransparent ist, kann das Programm, das den-.-Computer zu jedem beliebigen Zeitpunkt steuert, nicht feststellen, ob die Informationen, die er gerade verarbeitet,aus dem Puffer-Speicher oder dem Hauptspeicher entnommen wurden.The CPU includes a main memory synchronizer 109, a buffer memory 110, various elements constituting the arithmetic unit 111, and additional emulation devices 112. Main memory synchronizer 109 resolves conflicts over main memory usage by the arithmetic unit 111, the buffer memory 110 and the IOC 109. The conflicts are resolved on a priority basis: the IOC has the highest priority level, this is followed by the write memory (from the arithmetic unit) and then the read memory (in the buffer memory), Die The main CPU also contains the address control unit ACU 131, which handles the addressing of the main memory and the associative memory AS 132 controls the one for storing the most recent, currently used addresses in the main memory is used. The buffer memory 110 is a small, high-speed buffer memory that has a selected one Area of the main memory reproduced and via interface functions is connected to the computing unit in order to reduce the average memory access time. During each memory read operation, both the buffer memory and the main memory are accessed. if if the information to be fetched is already in the buffer memory, the main memory read operation comes to an end brought and tapped the information from the buffer memory. Otherwise the main memory 102 is read. Each time this happens, the CPU 104 captures 32 bytes which contain the required information. This information remains in the buffer memory as future memory references. Since the buffer memory is software-transparent, the program that connects the -.- computer to any controls any point in time, does not determine whether the information which it has just processed, taken from the buffer memory or the main memory.

$09834/0830$ 09834/0830

Die Recheneinheit 111 führt die gesamte Datenverarbeitungsund Adreßerzeugung innerhalb der CPU durch. Ein typischer Steuerspeicher 130 innerhalb der Verarbeitungseinheit (siehe Broschüre mit dem Titel "Mikroprogramming: Principles and Practices" von Samir S.Husson, Prentice KaIl Inc.) beinhaltet Firmware zur Initialisierung des Systems, zur Steuerung der CPU 104 und IOC 105 und zur Entschlüsselung eines Befehlssatzes (nicht dargestellt) Wahlweise kann der Steuerspeicher wissenschaftliche Befehle, Testroutinen, Emulations-Packages oder Sonderzweckemerkmale aufweisen, welche die Fähigkeiten des Prozessor-Untersystems erweitern.The arithmetic unit 111 performs the entire data processing and Address generation within the CPU. A typical control store 130 within the processing unit (see brochure entitled "Microprogramming: Principles and Practices" by Samir S. Husson, Prentice KaIl Inc.) contains firmware for initializing the system, for controlling the CPU 104 and IOC 105 and for decryption an instruction set (not shown) Optionally, the control memory can contain scientific instructions, test routines, Have emulation packages or special purpose features that extend the capabilities of the processor subsystem.

Wahlweise führt die CPU die Emulation von anderen Systemen durch, die vom vorliegenden System abv/eichen. Die Emulatoren 112 sind Firmware-, Software- und in einigen Fällen Hardware-Komponenten. Optionally, the CPU emulates other systems that differ from the present system. The emulators 112 are firmware, software, and in some cases hardware components.

B. Eingabe/Ausgabe-SteuereinheitB. Input / output control unit

Die IOC 105 erzeugt als Teil des Prozessor-Untersystems einen Daten-Pfad zwischen jedem Peripherie-Untersystem 103 und dem Speicher-Untersystem 102. Dieser Pfad ermöglicht die Initialisierung von Peripherie-Befehlen und die Steuerung der sich daraus ergebenden Daten-Übertragungen. Ein IQC kann typischerweise bis zu 32 Kanal-Steuereinheiten steuern (nicht abgebildet).The IOC 105, as part of the processor subsystem, creates a data path between each peripheral subsystem 103 and the Memory subsystem 102. This path enables peripheral commands to be initialized and the resulting data transfers. One IQC can typically control up to 32 channel controllers (not illustrated).

C.Periphe'rie-UntersystemeC.Periphe'rie Subsystems

In einem Peripherie-Untersystem 103 (Fig.1) ist die PCU ein freistehender Mikroprogramm-Prozessor, der die CPU 104 durch Steuerung der Eingabe-Ausgabe-Geräte 108 während der Eingabe/Ausgabe-Operationen entlastet. Die PCU führt diese Funktion durch Ausführung von Befehlen durch,die in einem Kanal-Programm enthalten sind.. Aus diesem ProgrammThe PCU is in a peripheral subsystem 103 (FIG. 1) a free-standing microprogram processor that powers the CPU 104 by controlling the input-output devices 108 during the input / output operations are relieved. The PCU performs this function by executing commands that are specified in a channel program are included .. For this program

509834/0830509834/0830

ergeben sich arithmetische , logische, Übertragungs-, Verschiebungs- und Verzv/eigungs-Operationen, die in der PCU durchgeführt werden. Je nach Art der gesteuerten Geräte können mehrere Typen von PCU's vorhanden sein: Datenträger, Massen(Platten)- Speicher, Magnetband, Kommunikationen, etc..arithmetic, logical, transfer, shift and branch operations result, which are in the PCU to be carried out. Depending on the type of controlled device, there can be several types of PCUs: Data carriers, bulk (disks) - memory, magnetic tape, communications, etc ..

,Die Geräte-Adapter 107 vermitteln zwischen jeder PCU und den von ihr gesteuerten Geräten. Jeder Adapter enthält die · zur Durchführung der Kommunikation mit einem gegebenen Gerätetyp erforderliche Firmware und Logik. Je nach Typ kann ein DA 107 eines bis mehrere Geräte steuern., The device adapter 107 mediate between each PCU and the devices it controls. Each adapter contains the · to carry out communication with a given Device type required firmware and logic. Depending on the type a DA 107 can control one or more devices.

Die von einem Peripherie-Untersystem 103 durchgeführten Hauptfunktionen sind:The major functions performed by a peripheral subsystem 103 are:

1. Umwandlung der CPU-Befehle in eine Serie von Befehlen, die vom entsprechenden Peripherie-Gerät übernommen werden können.1. Conversion of the CPU commands into a series of commands that are accepted by the corresponding peripheral device can.

2. Stapeln und Entstapeln von Daten, in der für die CPU oder das entsprechende Peripherie-Gerät erforderliche Form.2. Stacking and destacking of data in the form required for the CPU or the corresponding peripheral device.

3.'Ständige Information der CPU über den Status des Untersystems und der unter seiner Steuerung befindlichen Geräte.3. 'Constant information of the CPU about the status of the subsystem and the devices under its control.

4. Unabhängige Initialisierung und Durchführung von Fehlerund Wiederstart-Verfahren;4. Independent initialization and execution of errors and Restart procedure;

5. Durchführung einer On-Line-Diagnose eines Geräts, ohne dabei die Gerät-Aufteilungsfähigkeiten des angeschlossenen Peripherie-Prozessors zu beeinträchtigen.5. Performing an on-line diagnosis of a device without doing it to impair the device division capabilities of the connected peripheral processor.

$09334/0830$ 09334/0830

Eine PCU löst Konflikte des Hauptspeichers bezüglich der an ihn angeschlossenen Geräte; die IOC löst jedoch Konflikte zwischen "' : A PCU resolves conflicts in the main memory with regard to the devices connected to it; however, the IOC resolves conflicts between '' :

II. Basisstruktur der Maschine ■ . II. Basic structure of the machine ■.

In dieser Hardware v/erden typls eherweise drei Basis-Datenstrukturen verwendet; Datenformate, spftwarez/ugän-gliche Register und Befehlsformate.In this hardware, types tend to have three basic data structures used; Data formats, spftwarez / accessible Registers and command formats.

A. DatenformateA. Data formats

Die Informationen v/erden zwischen dem Speicher und der CPU in Vielfachen von 8 Parallelbits übertragen. Jede 8-Bit-Informationseinheit wird als Byte bezeichnet. Paritäts-Qder Fehler-Korrekturdaten werden ebenfalls mit den Daten übertragen> sind jedoch nicht für die Software zugänglich. Daher schließt der Begriff "Daten" in der vorliegenden Beschreibung die entsprechenden Paritäts- oder Fehler-Korrekturdaten aus.The information is transferred between the memory and the CPU in multiples of 8 parallel bits. Any 8-bit information unit is called a byte. Parity Q of the error correction data is also included with the data transfer> are not accessible to the software. Therefore, the term "data" is included in the present Description of the corresponding parity or error correction data the end.

B. BytesB. Bytes

Die Bits innerhalb eines Bytes sind von links nach rechts mit 0 bis 7 bezeichnet. Die Bytes werden separat oder in Gruppen verarbeitet. Zwei Bytes bilden ein Halbwort, vierThe bits within a byte are from left to right denoted by 0 to 7. The bytes are processed separately or in groups. Two bytes form a half word, four

5098 34/0835098 34/083

Bytes ein Wart? acht Bytes ein Doppeiwort und 16 Bytes ein Vierfachwort. Dies sind die Basisformate für alle Daten einschließlich der Befehle.Bytes a wait ? eight bytes a double word and 16 bytes a quadruple word. These are the basic formats for all data including commands.

C.DatenaufbauC. Data structure

Alle Daten sind "binär, können jedoch in binär-dezimale oder alphanumerische Daten übersetzt werden. Die Datenbits werden· in Gruppen von 4 Bits als binärcodierte dezimale Daten,, in Gruppen von 8 Bits als alphanumerische oder in Gruppen von 16 bis 64 Bits als binäre Ziffern übersetzt. Die letzteren werden als markierte Ziffern mit "Vorzeichen ■ als Festkommaziffern oder als Gleitkommaziffern in Binär- Schreibweise übersetzt. Jede beliebige Anzahl nebeneinander-Hegender Bits bis zu einem Doppelwort kann als Kette verarbeitet werden. Der alphanumerische Zeichensatz ist in EBCDIC dargestellt/ASCII dient als Alternativ-Wechselcöde.All data is "binary" but can be in binary-decimal or alphanumeric data are translated. The data bits are in groups of 4 bits as binary-coded decimal data, in Groups of 8 bits translated as alphanumeric or in groups of 16 to 64 bits as binary digits. the the latter are marked as digits with "sign ■ translated as fixed point numbers or as floating point numbers in binary notation. Any number of people next to each other Bits up to a double word can be processed as a chain. The alphanumeric character set is in EBCDIC shown / ASCII serves as an alternative alternating code.

D . Byte-Adressen D. Byte address n

Die Byte-Positionen im Hauptspeicher werden beginnend bei 0, fortlaufend numeriert; jede Nummer ist die Adresse des Bytes. Eine Gruppe aufeinanderfolgender Bytes wird als Halbwort-,' Wort-, Doppelwort- oder Vierfachwort-Struktur betrachtet, wenn die Adresse des linken Bytes einer Gruppe jeweils das Vielfache von 2, 4, 8 oder 16 ist. Immer wenn ein Halbwort, Wort, Doppelwort oder Vierfachwort derart strukturiert ist, kann diese Einheit aus dieser Adresse abgegriffen werden. Die Position von Daten im Hauptspeicher wird durch den Daten-"Descriptor" spezifiziert, zu dem indirekt während derAdreßentwickluhg zugegriffen wird.The byte positions in the main memory are starting with 0, consecutively numbered; each number is the address of the byte. A group of consecutive bytes is called a halfword, ' Word, double word or quadruple word structure is considered if the address of the left byte of a group is a multiple of 2, 4, 8 or 16. Whenever a half word, word, double word or quadruple word is structured in this way this unit can be tapped from this address. The position of data in main memory is determined by the data "descriptor" specified to which indirectly during the address development is accessed.

E. Ablesbare RegisterE. Readable registers

Die CPU 104' enthält' 33 vom Benutzer ablesbare Register (Fir:. 1), deren Inhalte zusammen den Status der CPU angeben. Die CPUThe CPU 104 'contains' 33 registers that can be read by the user (Fir :. 1), the contents of which together indicate the status of the CPU. The CPU

§09834/08 30· · . , -.§09834 / 08 30 · ·. , -.

enthält vier Typen von Registern: (siehe Fig.2).contains four types of registers: (see Fig. 2).

i.Allgemeine Registeri.General registers

2.Basis-Register2. Basic register

3.Wissenschaftliche. Register (wahlweise) 4.Diverse Register,.3. Scientific. Register (optional) 4. Various registers.

F. Allgemeine Register " ■. F. General registers "■.

Die allgemeinen Register (GR) 201 werden zur Handhabung von binären Festkommaziffern und Bitketten verwendet. Die CPU 104 enthält typischerv/eise 16 allgemeine 32-Bit-Register, GR O bis GR 15. Die aligemeinen Register GR 8 bis GR 15 können ebenfalls -als Index-Register verwendet werden. Bei Verwendung als Indexregister werden sie mit XO bis X7 bezeichnet: die Indexierung erfolgt unter Benutzung des in einem Register enthaltenen 32 im Zweierkomplement dargestellten ganzen 3.2"-Bit-Zahl.The general registers (GR) 201 are used for handling used by binary fixed point digits and bit strings. The CPU 104 typically contains 16 general 32-bit registers, GR O to GR 15. The general registers GR 8 to GR 15 can also be used as an index register. When used as index registers, they are designated with XO to X7: the indexing is carried out using the 32 contained in a register and represented in two's complement 3.2 "whole bit number.

G. BasisregisterG. Base Register

Die Basisregister (BR) besitzen das gleiche Format wie die Befehlszähler,IC und- die Stapel-Register 202 bis 203. Die Basisregister werden während des Errechnens der Adresse verwendet, um einen Teil des Speichers zu definieren. Typischerweise sind 8 32-Bit-Basisregister BRo bis BR7 vorhanden.The base registers (BR) have the same format as the instruction counters, IC and the stack registers 202-203. The base registers are used during the calculation of the address to define part of the memory. There are typically 8 32-bit base registers BRo to BR7.

H. Wissenschaftliche RegisterH. Scientific Registers

Die wissenschaftlichen Register (SR) sind eine wahlweise verwendbare Ausstattung zur Verarbeitung mit Gleitkoinma-Binärzahlen. Typischerweise sind vier wissenschaftliche 8-Byte-Register vorhanden, die mit SRO bis SR3 bezeichnet sind. Die wissenschaftlichen Register besitzen das Format bis 205 von Fig.2. ■ .The Scientific Registers (SR) are optional equipment for processing floating coefficient binary numbers. There are typically four 8-byte scientific registers, labeled SRO through SR3 are. The scientific registers have the format up to 205 of Fig. 2. ■.

50983-4/08.30 -50983-4 / 08.30 -

I. Diverse RegisterI. Various registers

Die CPU beinhaltet fünf weitere Register:The CPU contains five further registers:

. Befehlszähler mit Format 202 bis 203. Command counter with format 202 to 203

. Status-Register mit Format 207. Status register with format 207

.. Stapel-Register (als T-Register bezeichnet), 202-203.. Stack Registers (referred to as T Registers), 202-203

. Adreß-Begrenzungsregister mit Format 206. Address delimitation register with format 206

. Hardware-Steuermasken-Register mit Format 108.. Hardware control mask register with format 108.

Der Befehlszähler (IC)-ist ein 32-Bit-Register, das die Adresse des gerade durchgeführten Befehls enthält. Das Status-Register (STR) 207 ist ein 8-Bit-Register, das Informationen bezüglich des gerade ablaufenden Verfahrens speichert,z.B., ob die gerade durchgeführte Operation einen Unterlauf erzeugt hat. Das auch als T-Register bekannte Stapel-Register ist ein 32-Bit-Register, das den Index der Spitze des Kellerspeicher-Stapels enthält, das sich auf die gerade ablaufende Prozedur bezieht. Die unten beschriebenen Stapel erzeugen eine Arbeitszone und einen Mechanismus zur Aufbewahrung örtlicher Variablen, zur Aufrechterhaltung der Prozedur-Eingaben und zur Informations-Rückleitung. Das Adreß-Begrenzungsregister (BAR) 206 ist ein 28-Bit-Register, welches die niedrigste absolute Hauptspeicheradresse spezifiziert, die für die Software zugänglich ist.The instruction counter (IC) - is a 32-bit register that stores the Contains address of the command just executed. The status register (STR) 207 is an 8-bit register that Stores information related to the current procedure, e.g. whether the operation being performed has a Created underflow. Also known as the T register, the stack register is a 32-bit register that contains the index at the top of the stack that relates to the procedure in progress. The one below described stacks create a work zone and a mechanism for storing local variables for Maintenance of the procedure inputs and for information return. The Address Limit Register (BAR) 206 is a 28-bit register which is the lowest absolute main memory address specified that is accessible to the software.

Dieses Register wird während der Systeminitialisierung geladen und kann nur von der Software gelesen werden. Das Hardware-Steuermasken-Register 208 ist ein 8-Bit-Register, das Maschinenstatus-Informationen speichert.This register is loaded during system initialization and can only be read by the software. That Hardware control mask register 208 is an 8-bit register that stores machine status information.

I. BefehlsformateI. Command formats

Etwa 200 Befehle sind vorhanden, obwohl mehr oder weniger verwendet werden können. Jeder Befehl besitzt eine der vierThere are around 200 commands, although more or less can be used. Each command has one of the four

509834/Q83Ö509834 / Q83Ö

verschiedenen Längen, die jedoch immer einer geraden Anzahl von Bytes entsprechen. Die Befehle werden in aufeinanderfolgenden Speicherplätzen gespeichert. Die Adresse des sich am weitesten links befindlichen Bytes ist ein Vielfaches von 2 und ist die Adresse des Befehls.different lengths, which always correspond to an even number of bytes. The commands are in sequential Storage locations saved. The leftmost byte address is a multiple of 2 and is the address of the command.

Die. acht höchstwertigsten Bits ( und in.einigen Fällen die Bits 8 bis 11 oder 12 bis 15) .eines Befehls, stellen den Operations-Code dar, wogegen die verbleibenden Bits einen oder mehrere Operanden darstellen. Ein Operand kann ein Register-Bezeichner, ein Verschiebungs-Bezeichner, eine Adreßsilbe (logische Adresse), ein Literal-¥ert, oder ein unmittelbarer Literal-Wert sein. Die Typen und Nummern der Operanden werden mit Hilfe des Befehls-Formats festgelegt.The. eight most significant bits (and in some cases the Bits 8 to 11 or 12 to 15) of a command represent the Opcode, while the remaining bits represent one or more operands. An operand can be a Register identifier, a relocation identifier, an address syllable (logical address), a literal ¥ ert, or a be an immediate literal value. The types and numbers the operands are specified using the command format.

III. System-OrganisationIII. System organization A. Job-Schritt und Aufgabe (task)A. Job step and task

Die von einem Computer-System durchzuführende Arbeit wird extern durch eine Serie von Job-Schritten mit Hilfe einer Job-Control-Sprache definiert.The work to be performed by a computer system is carried out externally through a series of job steps with the help of an Job control language defined.

Ein Job-Schritt ist eine Arbeitseinheit, der Hardware-Einrichtungen zugeordnet sind. .Typischerweise besteht ein Job-Schritt aus mehreren Aufgaben. Eine /ufgabe ist die kleinste Einheit der benutzerdefinierten Arbeit, die aus einem ohne Parallelität ausgeführten Befehlsfluß besteht.A job step is a unit of work that includes hardware facilities assigned. A job step typically consists of several tasks. A task is the smallest unit of custom work, which consists of an instruction flow executed without parallelism.

509834/0830509834/0830

B. AferarbeitungsverfahrenB. Processing method

Die benutzerzugänglichen Konzepte von Aufgabe und Job-Schritt werden hardwaremässig jeweils durch einen Prozeß oder eine Prozeßgruppe dargestellt. Ein Prozeß wird als geordnete Befehlssequenz definiert, die asynchron von der CPU durchgeführt werden kann (d.h. mehrere Prozesse können aktiv sein und die Einrichtungen unter sich aufteilen, zu einem Zeitpunkt läuft jedoch jeweils nur ein Prozeß ab). Eine Prozeßgruppe ist ein Satz ähnlich gearteter Prozesse, die zur Durchführung eines Job-Schritts erforderlich sind.The user-accessible concepts of task and job step are hardware-wise each by a process or a Process group shown. A process is defined as an ordered sequence of instructions that are performed asynchronously by the CPU can be (i.e. several processes can be active and divide the facilities among themselves, at one point in time however, only one process is running at a time). A process group is a set of similar processes that lead to Execution of a job step are required.

C. Prozeß-Steuerblock und System-BasisC. Process Control Block and System Base

Da die Prozesse während ihrer Ausführung zu verschiedenen Zeitpunkten ohne Steuerung durch die CPU ablaufen können, steht im Hauptspeicher eine Speicherzone für einen Prozeß zur Verfügung, mit dem der Status der CPU aufbewahrt wird. Diese Status-Information wird zur Vorkonditionierung; der CPU verwendet, bevor ein Prozeß wieder die Steuerung der CPU übernimmt.Since the processes can run at different times during their execution without being controlled by the CPU, a memory zone is available in main memory for a process with which the status of the CPU is retained. This status information is used for preconditioning; the CPU used before a process regains control of the CPU takes over.

Die einemProzeß zugewiesene Speicherzone wird in Fig.4 als Prozeß-Steuerblock (PCB) 400 bezeichnet. Die in einem PCB enthaltenen Daten beinhalten die Adressen von Speicherzonen (Adreßraum), die dem Prozeß zugeordnet sind, den Inhalt aller dazugehörigen Register und den Status des Prozesses. Daher dient ein PCB als Zwischenspeicherbereich für die zum Starten oder Wiederstarten eines Prozesses erforderlichen Informationen. Jeder PCB ist für Hardware und Firmware zugänglich und kann mit Hilfe einer Gruppe von Hardware-Firmware-Tabellen, die während der- Systern-Initialisierung entwickelt und während des Betriebs des Systems (Fig.5) geändert werden, vom Betriebssystem adressiert werden.The memory area allocated to a process is shown in FIG referred to as process control block (PCB) 400. The data contained in a PCB contain the addresses of Memory areas (address space) assigned to the process, the content of all associated registers and the status of the process. Therefore, a PCB serves as a buffer area for starting or restarting a process required information. Each PCB is accessible to hardware and firmware and can be configured with the help of a group of Hardware firmware tables created during system initialization developed and changed during the operation of the system (Fig. 5), addressed by the operating system will.

509834/0830509834/0830

_23 -_23 -

Eine absolute Hauptspeicher-Zone ist vorhanden, die als System-Basis (Fig.5 und 6) verwendet wird. Diese Zone wird von der Firmware entwickelt und ist über das Basis-Adreßregister (BAR) 501 zugänglich, das gelesen, jedoch nicht beschrieben v/erden kann. Die System-Basis 502 enthält eine Anzahl von System-Kriterien, die die Bezeichnung (J, P) des gerade ablaufenden Prozesses enthalten. Ein weiteres Kriterium in der System-Basis ist ein Index 505 für eine hardwaredefinierte I&enstruktur, die als J-Tabelle 503 bekannt ist. Diese,Tabelle enthält eine Eingabe für alle im System vorhandenen Job-Schritte.Jede Eingabe in die J-Tabelle 503 kennzeichnet eine mit ihr verbundene P-Tabelle 504, die ebenfalls eine hardwaredefinierte Datenstruktur ist. Diese Tabelle definiert eine Prozeßgruppe und enthält eine Eingabe für alle Verfahren der Verfahrensgruppe. Jede Eingabe der P-Tabelle 507 kennzeichnet ein PCB 400. ,There is an absolute main memory zone, which is available as a System base (Fig. 5 and 6) is used. This zone is developed by the firmware and is via the base address register (BAR) 501 accessible, read that, but not can be described. The system base 502 contains a number of system criteria that have the designation (J, P) of the current process. Another criterion in the system base is an index 505 for a Hardware-defined I & en structure, which is stored as J table 503 is known. This table contains one entry for all Job steps available in the system. Each entry in the J table 503 identifies a P table associated with it 504, which is also a hardware-defined data structure. This table defines a process group and contains an entry for all processes in the process group. Each entry in the P table 507 identifies a PCB 400.,

Gemäß Fig.5 gewährleistet der J-Tabellenindex 505, der über den arithmetischen Teil 506 der Recheneinheit 111 (Fig.i) mit der J-Nummer indexiert wurde, den Zugriff zu einer J-Tabellen-Eingabe 503. Diese Eingabe enthält einen P-Tabellenindex, der, wenn er über die Recheneinheit 506 mit der P-Nummer indexiert wurde, den Zugriff zur P-Tabelleneingabe 504 ermöglicht. Die P-Tabelleneingabe enthält einen Index 507 für den PCB 400 des gerade ablaufenden Prozesses. Daher kann das Betriebssystem unter Benutzung des Inhalts von BAR 501 auf den aktiven PCB und einen beliebigen anderen PCB zurückgreifen, wenn die entsprechende logische Bezeichnung (J, P) angegeben ist.According to FIG. 5, the J table index 505, which over the arithmetic part 506 of the arithmetic unit 111 (Fig.i) was indexed with the J number, access to a J table entry 503. This entry contains a P table index, which, if it has been indexed with the P number via the arithmetic unit 506, provides access to the P table entry 504 allows. The P table entry contains an index 507 for the PCB 400 of the currently running Process. Therefore, the operating system can be used of the contents of BAR 501 can access the active PCB and any other PCB, if the appropriate logical designation (J, P) is given.

D. Speicher-SegmentierungD. Memory segmentation

Eine Multiprozeß-Struktur enthält, wie hier beschrieben, zu einem bestimmten Zeitpunkt viele Prozesse im Speicher,,As described here, a multiprocess structure contains many processes in memory at a given time,

50 98 34/083 050 98 34/083 0

Diese Prozesse können größenmässig schwanken und Speicherplatz anfordern. Dies führt zu einem Speicher-Zuweisungsproblem,, Die Hardv/are löst in Verbindung mit dem (hier nicht abgebildeten) Betriebssystem das Problem durch dynamische Zuweisung des Speicherraums.These processes can vary in size and space request. This leads to a memory allocation problem, In conjunction with the operating system (not shown here), the hardv / are solves the problem through dynamic allocation of storage space.

Aufgrund der Direktzugriffs-Natur der Speicheranforderungen wird Speicherraum in Segmenten verschiedener Größe zugewiesen und die Speicherzuweisung kann während des Ablaufs des Prozesses restrukturiert werden.Daher kann einem Prozeß eine Anzahl nicht aneinander angrenzenden Speicher-' Segmente zugewiesen werden. Diese Speicher-Zuweisungsmethode wird als Segmentierung bezeichnet.Because of the random access nature of the memory requirements, memory space is allocated in segments of various sizes and memory allocation can be restructured during the course of the process. Therefore, a Process a number of non-contiguous memories Segments are assigned. This memory allocation method is known as segmentation.

Die Segmentierung führt insofern zu einem zusätzlichen Problem, als die Speicheradressen immer dann geändert werden müssen, wenn ein Teil oder die Gesamtheit des Prozesses wieder adressiert wird. Zur Erleichterung dieses Problems benutzt das hier beschriebene System eine Technik, in der die von einem Prozeß benutzten Adressen logische und nicht absolute Hauptspeicheradressen sind. Diese logischen /dressen werden zur Entwicklung der absoluten Adressen verv/endet.The segmentation leads to an additional problem in that the memory addresses are always changed must if part or all of the process is addressed again. To alleviate this problem the system described here uses a technique in which the addresses used by a process are logical and not are absolute main memory addresses. These logical addresses are used to develop the absolute addresses.

Die Segmentierung ermöglicht es weiterhin jedem Prozeß mit Hilfe eines Systems von Segment-"Descriptors" auf seine eigenen oder zugewiesenen Speichersegmente zurückzugreifen. Durch Zugriff zu einem Segment-Descriptor kann ein Prozeß die Adresse eines Segments erhalten. Die Segment-Descriptors befinden sich im Hauptspeicher und werden mit Hilfe des Betriebssystems aufrecht erhalten.Segmentation also enables any process to be based on a system of segment "descriptors" access its own or allocated memory segments. By accessing a segment descriptor, a Process get the address of a segment. The segment descriptors are located in the main memory and are called with Using the operating system.

5098 34/08305098 34/0830

Die Segmentierung kennzeichnet mehr als 200 Millionen Bytes des Adreßraums als verfügbar für den Prozeß. Diese Anzahl überschreitet die Kapazität des Hauptspeichers; daher wird in Verbindung mit dem Hauptspeicher, ein Sekundärspeicher (Magnet-Platte oder-Trommel) verwendet. Das Betriebssystem schafft die Illusion, daß der wirklich verfügbare Speicherplatz wesentlich größer als der Hauptspeicher ist. Dieses System wird als virtueller Speicher bezeichnet. IV. Prozeß-Steuerung und Synchronisation The segmentation marks more than 200 million bytes of address space as available to the process. This number exceeds the capacity of the main memory; therefore, a secondary memory (magnetic disk or drum) is used in conjunction with the main memory. The operating system creates the illusion that the actually available memory space is much larger than the main memory. This system is known as virtual memory. IV. Process control and synchronization

Das hier beschriebene System führt Multiprocessing-Operationen durch, die mittels eines Betriebssystems gesteuert werden, das auf eine Kombination von Software, Hardware und Firmware zurückgreift. Die Software erzeugt und annuliert Prozesse innerhalb des Systems, wogegen die Hard- und Firmware die Prozesse der CPU multiplexieren. Zusätzlich gewährleistet eine Kombination von Software,Hardware und Firmware die Synchronisation zwischen den Prozessen.The system described here performs multiprocessing operations that are controlled by an operating system, that uses a combination of software, hardware and firmware. The software creates and cancels processes within the system, whereas the hardware and firmware multiplex the processes of the CPU. Additionally guaranteed a combination of software, hardware and firmware die Synchronization between the processes.

Prozesse werden normalerweise, jedoch nicht immer, beim Start und am Ende von Eingabe/Ausgabe-Operationen während der Durchführung ähnlich gearteter "Jobs" und zu anderen Zeitpunkten aufgrund von Belangen des Betriebssystems gestartet und beendet. Daher ist zum wirskamen Starten und Beenden von ähnlich gearteten Prozessen und dem zwischen ihnen . stattfindenden Informationsaustausch ein Kommunikationssystem erforderlich. Das Hardware-System erzeugt hierbei interne Meldungen, die als "Semaphore" bezeichnet werden und die zwischen den Prozessen als Kommunikations-Bindeglieder verwendet werden.Processes are usually, but not always, during the start and end of input / output operations the execution of similar "jobs" and started at other times due to concerns of the operating system and finished. Therefore, it is essential to start and stop similar processes and that between them effectively. the exchange of information taking place a communication system necessary. The hardware system generates internal messages called "semaphores" and which are used as communication links between processes.

A. Prozess-FunktionszuständeA. Process functional states

Ein Prozeß kann sich zu jedem beliebigen Zeitpunkt in einem der vier möglichen Funktions-Zustände befinden: Ablauf, Eereit, Warte- oder Unterbrechungs-Zustand. Die Hardware erkerint diese vier möglichen Prozeß-Zustände und führt verschiedene Firmware-Prozeduren durch, um eine Prozeßaufteilung durch-A process can occur at any point in time of the four possible function states are: Process, Ready, Waiting or Interrupt state. The hardware detects these four possible process states and carries out various firmware procedures in order to carry out a process division.

509834/0830509834/0830

zuführen, Änderungen festzustellen und die auf einem Prozeß-Funktionsstatus beruhenden Datenstrukturen aufrecht zu erhalten. Der PCB beinhaltet ein Status-Feld, welches den aktuellen Status des ihm zugeordneten Prozesses kennzeichnet.to determine changes and those on a process functional status based data structures. The PCB contains a status field which shows the indicates the current status of the process assigned to it.

Ein Prozeß ist im Ablauf-Zustand, wenn er sich unter Steuerung der CPU befindet. Dieser Status bringt die Zuordnung eines Adreßraums (Segment-Tabelle) und einer Startadresse für die CPU mit sich. Die CPU führt danach Befehle in den Prozedur-Segmenten des Prozesses durch. Die. Prozeß-Bezeichnung J, P (logische Adresse) des PCB's des gerade ablaufenden Prozesses wird im aktuellen Prozeß-Wort (BAR + 56) innerhalb der Systembasis gespeichert (Fig.6). (Anmerkung: die in Fig.5 dargestellte Systembasis ist mit der in Fig.6 wiedergegebenen identisch; einige Einzelheiten sind jedoch ausgelassen worden).A process is in the flow state when it is under Control of the CPU is located. This status brings the assignment of an address space (segment table) and a start address for the CPU with it. The CPU then executes commands in the procedure segments of the process. The. Process name J, P (logical address) of the PCB of the currently running process is in the current process word (BAR + 56) stored within the system base (Fig. 6). (Note: the system base shown in Fig. 5 is with identical to that shown in Figure 6; however, some details have been left out).

Der Bereit-Status entspricht dem Ablauf-Status mit der Ausnahme, daß sich der Prozeß nicht unter der Steuerung der CPU befindet, da er nicht von der CPU erkannt worden ist. Ein im Bereit -Zustand befindlicher Prozeß ist für die CPU gleichrangig mit den anderen Bereit-Prozessen und dem laufenden Prozeß.The ready status is the same as the run status with the exception that the process is not under control the CPU is because it was not recognized by the CPU. A process that is in the ready state is for the CPU on a par with the other ready processes and the ongoing process.

Ein Prozeß befindet sich im Warte-Status, wenn er erst nach Auftreten eines spezifischen Geschehnisses, wie z.B. einer Meldung über ein "Semaphor" fortgesetzt werden kann. Ein wartender Prozeß befindet sich gegenüber der CPU nicht in einer Konkurrenzsituation, kann sich jedoch gegenüber anderen wartenden Prozessen hinsichtlich des erforderlichen Geschehnisses in einer Konkurrenzsituation befinden.A process is in the waiting status if it only starts after a specific event, e.g. a message can be continued via a "semaphore". A waiting process is not in competition with the CPU, but it can compared to other waiting processes with regard to the necessary incident are in a competitive situation.

Ein unterbrochener Prozeß ist ein Prozeß, der für eine bestimmte Dauer von der Software unterbrochen wurde,An interrupted process is a process that works for one was interrupted by the software for a certain period of time,

509834/0830509834/0830

und später fortgesetzt werden kann. Die Entscheidung, einen Prozeß zu unterbrechen und wieder aufzunehmen, erfolgt außerhalb des Prozesses.and can be continued later. The decision to have one Interrupting and resuming the process is done outside of the process.

Daher ist ein unterbrochener Prozeß inaktiv, er kann daher keine Informationen hinsichtlich des Auftretens von Geschehnissen aufnehmen und die CPU nicht benutzen.As a result, an interrupted process is inactive and therefore has no information regarding the occurrence of events and do not use the CPU.

Ein Prozeß wird unter den folgenden Bedingungen unterbrochen:A process is interrupted under the following conditions:

1. Durch Ausführung eines "Terminate"-Befehls (als Ergebnis der Durchführung all seiner Funktionen).1. By executing a "Terminate" command (as a result performing all of its functions).

2. Durch Ausführung eines "Suspend"-Befehls durch das Betriebssystem.2. By executing a "Suspend" command through the Operating system.

3. Durch Auftreten einer Ausnahme-*Bedingung, bei der die Steuerung auf das Betriebssystem übertragen wird.3. By the occurrence of an exception * condition in which the Control is transferred to the operating system.

B. Prozeß-ZuteilungB. Process Allocation

Prozesse können bewußt wahrend ihres Ablaufs von einem Status zu einem anderen übergehen, oder, "unbewußt" durch die Auswirkungen anderer Prozesse. Der als CPU-Firmware bekannte "Dispatcher" (Zuteiler) steuert den Transfer von Prozessen von einem Status zu einem anderen. Der "Dispatcher" benutzt eine Gruppe von(später beschriebenen )Warteschlangen, um die im Bereit- oder Warte-Status befindlichen Prozesse zu beeinflussen. Unterbrochene Prozesse werden von der Software gesteuert.Processes can be consciously carried out by one Passing status to another, or, "unconsciously" by the effects of other processes. The one as CPU firmware well-known "dispatcher" controls the transfer of processes from one status to another. The "dispatcher" uses a group of (described later ) Queues to influence the processes that are in the ready or waiting status. Interrupted Processes are controlled by the software.

In den Fig.6, 8 und 9 wird ein im Bereit- oder Warte-Status befindlicher Prozeß durch einen PCB und eine spezielle Warteschlangen-Eingabe dargestellt, die als Prozeß-Verkettung bezeichnet wird.In FIGS. 6, 8 and 9, a is in the ready or waiting status The process in progress is represented by a PCB and a special queue entry, which is called a process chain referred to as.

5O9834/Q83Q5O9834 / Q83Q

. - 28 -. - 28 -

Fig.9 enthält eine Explosions-Zeichnung des Inhalts des GO-Segments 802, der Prozeß-Verkettungen 803a-803b und 803c-803g aktiver Prozeß und die freien Prozeß-I£fcten 805a-805c. Jede Prozeßverkettung spezifiziert die Prozeßbezeichnung (J, P), die Prozeß-Priorität und enthält einen Index für die nächste, in der Warteschlange befindliche Prozeß-Verkettung. Ss gibt verschiedene Arten von Warteschlangen, wie z. B. die Warte schlange 8O3.a bis b, 803e - g und die Bereit -Warteschlange 803c - d.Fig. 9 contains an exploded view of the contents of the GO segment 802, the process chains 803a-803b and 803c-803g active process and the free process functions 805a-805c. Each process link specifies the process designation (J, P), the process priority and contains an index for the next process chain in the queue. There are different types of queues, such as B. the waiting queue 8O3.a to b, 803e - g and the Ready queue 803c - d.

Eine der J-Tabelle ähnliche Hardware-Einrichtung, die als G-Tabelle bekannt ist (Fig.6 und 8) enthält die (auf der Systemebene bekannten) Indexe für alle allgemeinen Segmente 802 bis 802n. Das erste Element GO, derG-Tabelle 801 weist auf das 802-Segment hin, welches die Dispatcher^Warteschlangen enthält. Ein G-Tabellenindex für die G-Tabelle 801 befindet sich in der Systembasis 502 von Fig.5.Gemäß den Figuren 8 und enthält die Systembasis weiterhin eine Eingabe, die als internes Prozeß-Warteschlangenwort (IPQW) 905 bezeichnet wird und den "Kopf" 803, der Bereit-Warteschlange 803c-803d desGO-Segments 802 identifiziert.A hardware device similar to the J-table, known as a G table is known (Fig. 6 and 8) contains the (on the System-level known) indexes for all common segments 802 to 802n. The first element GO, the G table 801, points to the 802 segment which the dispatchers ^ queues contains. A G table index for the G table 801 is located in the system base 502 of Figure 5. According to Figures 8 and The system base also includes an input referred to as the internal process queue word (IPQW) 905 and the "head" 803 identifying the GO segment 802 ready queue 803c-803d.

Daher kann der Dispatcher alle im Bereit-Status befindlichen Prozesse durch Überprüfung der Bereit-Warteschlange 803c-803d kontrollieren. Wenn der gerade ablaufende Prozeß eine Status-Änderung durchführt, entfernt der Dispatcher die am "Kopf" der Bereit-Warteschlange befindliche Prozeß-Verkettung und benutzt die J- und P-Bezeichnung zum Zugriff zu seinem PCB. Der von PCB definierte Prozeß wird nun der neue aktive Prozeß.Therefore, the dispatcher can check all processes that are in the ready state by checking the ready queue 803c-803d check. If the current process changes its status, the dispatcher removes the am Process chain located "head" of the ready queue and uses the J and P designations to access it its PCB. The process defined by PCB will now be the new one active process.

Da mehr als ein Prozeß auf das gleiche Ereignis warten kann, existiert eine Warteschlange von Warteprozessen 803a-803b für alle.Geschehnisse.Die wartenden Prozesse sind außerdem überSince more than one process can wait for the same event, there is a queue of processes 803a-803b for all.happenings.The waiting processes are also over

509834/0830509834/0830

2A5.653A .'2A5.653A. '

Prozeß-Verkettungen 804 (Fig.8) miteinander verbunden, die sich im GO-Segment,befinden. "Semaphor" 903 (wird später beschrieben),enthält einen Index, der den "Kopf" der Warteschlange kennzeichnet. Ein Prozeß kann auf eine Vielzahl von Geschehnissen warten; daher sind eine Anzahl von Warteschlagen vorhanden; jeder dieser Warteschlangen ist ein "Semaphor" 903, 904, zugewiesen. Die Anzahl der im Bereitoder Warte-Status befindlichenProzesse schwankt dynamisch. Daher schwankt ebenfalls die Anzahl der für die Bereit- und Warteschlangen erforderlichen Prozeß-Verkettungen. Diese Tatsache wirft für den Dispatcher ein Speicher-Verwaltungsproblem auf. -Process chains 804 (Fig. 8) connected to one another, that are in the GO segment. "Semaphore" 903 (will be later described), contains an index that is the "head" of the queue indicates. A process can wait for a multitude of occurrences; hence there are a number of queues available; a "semaphore" 903, 904 is assigned to each of these queues. The number of in the ready or Waiting status fluctuates dynamically. Therefore, the number of ready and Queues required process chains. This fact poses a memory management problem for the dispatcher on. -

Dieses Problem wird durch eine andere Warteschlange gelöst, die als Freiprozeß-Verketturigsschlange 805a bis c bezeichnet wird. Diese Schlange verkettet alle Prozeß-Verkettungen im GO-Segment miteinander, die nicht von den Bereit- oder Warteschlangen verwendet werden undzur Erweiterung einer speziellen Warteschlange von bereiten oder wartenden Prozessen benutzt werden kann. Ein Index 901 für den "Kopf" 902 der Freiprozeß-Verkettungsschlange 805 befindet sich in der Nähe des Anfangs des GO-Segments 802 (Fig.8 und 9.).This problem is solved by another queue, referred to as free process chaining queue 805a-c will. This queue concatenates all process chains in the GO segment that are not from the ready or Queues and to expand a special queue can be used by ready or waiting processes. An index 901 for the "head" 902 the free process chaining queue 805 is near the beginning of the GO segment 802 (Figures 8 and 9).

Um das Auftreten eines Geschehnisses zu kennzeichnen, benutzt ein Prozeß zwei "Semaphor"-Operationen. Eine Operation sendet ein Signal zu einem "Semaphor", die andere greift ein Signal von einem "Semaphor" ab. (Die Sendeoperation wird aucnals V-Operation bezeichnet; die Empfangsoperation wird als P-Operation bezeichnet). Die Sendeoperation ermöglicht einem Prozeß das Absenden von Daten oder eines Signals, um den Bereit-Status der Daten anzuzeigen. Das "Semaphor" speichert das Signal, bis ein anderer Prozeß bereit ist, dieses abzugreifen. Daher kann die Sendeoperation ablaufen, da sie die Daten abgesendet hat. Die Empfangsoperation überprüftTo mark the occurrence of an incident, a process uses two "semaphore" operations. Sends an operation one signal to a "semaphore", the other picks up a signal from a "semaphore". (The send operation will also be executed V operation denotes; the receive operation is called a P operation designated). The send operation enables a process to send data or a signal to the Display the ready status of the data. The "semaphore" stores the signal until another process is ready to tap it. Therefore, the send operation can proceed because it sent the data. Check the receive operation

509834/0830509834/0830

_ 30 ._ 30.

ein spezifiziertes "Semaphor" und greift das Signal ab. Wenn ein Signal anwesend ist, setzt die Empfangsoperation die Ausführung fort. Wenn jedoch am "Semaphor" kein Signal vorhanden ist, geht der Prozeß in den T&rtestatus über. Das "Semaphor" dient dann als Index für den "Kopf" einer V/arteschlange.a specified "semaphore" and picks up the signal. If a signal is present, the receive operation continues. However, if the "semaphore" no signal is detected, the process proceeds in the T & rtestatus. The "semaphore" then serves as an index for the "head" of a queue.

Der Prozeß verbleibt in der mit dem "Semaphor" verbundenen Wartestatus-Schlange, bis ein anderer Prozeß ein Signal zu diesem "Semaphor" sendet.Daher kann ein "Semaphor" ein Signal halten, bis dieses von einem Prozeß abgegriffen wird oder . ein Semaphor kann einen Prozeß halten, bis ein Signal zu diesem abgesendet wird.The process remains in the waiting status queue connected to the "semaphore" until another process gives a signal this "semaphore" sends. Therefore a "semaphore" can be a signal hold until this is tapped by a process or. a semaphore can hold a process until a signal is received this is sent.

Weiterhin ist es möglich,Meldungen von einem Prozeß zu einem anderen durchzugeben. Eine Meldung besitzt die gleichen vorhandenen oder nicht vorhandenen Eigenschaften wie ein Signal und enthält zusätzliche Informationen. Teile der Informationen werden von der Hardware geliefert und ein Teil von der Prozedur des Prozesses,der die Meldung abgesendet hat. Eine Meldung beinhaltet die Prozeß-Bezeichnung des zu sendenden Prozesses. Daher können viele Prozeß-Informationen über ein einzelnes "Semaphor" senden, das mit der Bezeichnung des Absenders versehen ist.It is also possible to send messages from a process to pass on to another. A message has the same existing or nonexistent properties like a signal and contains additional information. Part of the information is provided by the hardware and part of the procedure of the process that sent the message. A message contains the process name of the process to be sent. Hence a lot of process information send via a single "semaphore" labeled with the sender's name.

Ein MeldungsJßemaphor" kann über eine Schlange von Meldungen verfügen, die auf Erfassung durch eines der Prozesse warten. Wie bei Signal-Semaphores steigen und fallen die Anforderungen für Speicherplatz und stellen somit ein Speieher~Verwaltungsproblem dar. Nochmals wird dieses Problemmit einer Schlange von freien Meldungsverkettungen gelöst. Diese Verkettungen befinden sich in einer bekannten Position eines, bei Bedarf leicht zu findenden Segments, welches Meldungs-Verkettungen erzeugt oder aufnimmt.A message J ßemaphor "can have a queue of messages awaiting collection by one of the processes. As with signal semaphores rise and fall with the requirements for space and thus provide a Speieher ~ administrative problem. Once again this Problemmit is a queue of These chaining are in a known position in a segment that is easy to find if required and which creates or accepts message chaining.

509834/0830509834/0830

Da die "Semaphores" und die darauf aufgebauten ¥arteschlangen von verschiedenen Prozessen benutzt werden, ist die gesamte "Semaphor"-Struktur geschützt. Dies erfolgt mit Hardware- und Software-Vorrichtungen, die den Zugriff zu allen Segmenten einschränken, die "Semaphore" enthalten. Daher müssen sich die "Semaphore" in "Semaphor"-Descriptor-Segmenten befinden, von denen einige G-Segmente sein können (wenn System-Kommunikationen erforderlich sind). Alle G-Segmente (mit Ausnahme von GO) sind "Semaphor"-Descriptor-Segmente.Because the "semaphores" and the queues built on them are used by different processes, the entire "semaphore" structure is protected. This is done with hardware and software devices that have access to all Restrict segments that contain "semaphores". Therefore the "semaphores" must be in "semaphore" descriptor segments, some of which may be G-segments (if system communications required are). All G segments (with the exception of GO) are "semaphore" descriptor segments.

Jeder "Semaphor"-Descriptor enthält einen Index für ein "Semaphor". Die "Semaphor"-Adressen werden über einen "Semaphor"-Descriptor entwickelt und gewährleisten so einen zusätzlichen Schutz für das "Semaphor". Ein "Semaphor" kann logisch unter Benutzung einer Segmentnummer und einer relativen Position innerhalb des Segments oder direkt unter Benutzung der G und D-Nummer adressiert werden.Each "semaphore" descriptor contains an index for one "Semaphore". The "semaphore" addresses are developed via a "semaphore" descriptor and thus guarantee one additional protection for the "semaphore". A "semaphore" can logically using a segment number and a relative Position within the segment or directly using the G and D numbers.

Strukturen des Prozeß -»SteuerblocksStructures of the process - »control block

In Fig.4 ist das Format des Prozeß-Steuerblocks (PCB) dargestellt. Der Prozeß-Steuerblock 400 ist ein Speicherbereich desHauptspeichers, in dem der Prozeß den CPU-Status aufbewahrt. Die Adressierung eines PCB erfolgt,wie vorstehend in Verbindung mit Fig.5 "beschrieben wurde. Der PCB-Index 507 (Fig.5) indexiert ein Byte "0" des Prozeß-Steuerblocks PCB (Fig. 4) . Es ist zu bemerken, daß die Speicherr Positionen beim Vorgehen in einer abwärts gerichteten Richtung um 4 Bytes zunehmen, wogegen sie beim Vorgehen in einer.aufwärts gerichteten Richtung von Byte-Position "0" aus, jeweils um 8 Bytes zunehmen. Die nach unten gerichteten Speicherpositionen werden von 0 aus als positiv betrachtet, wogegen die nach oben gerichteten Positionen von 0 aus als negativ betrachtet werden. Die nach oben gerichteten Positionen hinter der PCB-Byte-In Fig. 4 the format of the process control block (PCB) is shown. The process control block 400 is a memory area of main memory in which the process has the CPU status kept. A PCB is addressed as above in connection with Fig.5 "was described. The PCB index 507 (FIG. 5) indexes a byte "0" of the process control block PCB (Fig. 4). It should be noted that the memory positions when operating in a downward direction Direction increase by 4 bytes, whereas they do when proceeding in an upward direction from byte position "0" off, increasing by 8 bytes each time. The memory positions facing down are from 0 as viewed positively, while the upward positions from 0 are viewed as negative. the upward positions behind the PCB byte

509834/0830509834/0830

adresse -16 sind wahlweise vorhanden und können in den Prozeß-Steuerblock integriert werden oder auch nicht; weiterhin sind die Positionen 148 bis 176 wahlweise vorhanden. (Es ist zu bemerken, daß die Nummern unter den Speicherpositionen die Verschiebung von der Referenzposition "0" des Prozeß-Steuerblocks PCB in Bytes ausdrucken und nicht mit den Referenz- Numerierungen verwechselt werden dürfen, die gewöhnlich zur Identifizierung von Teilen in einer Patentzeichnung verwendet werden). Beginnend bei Byte "0" bis, jedoch nicht einschließlich*. Byte 16, sind vier Prozeß-Hauptworte PMV/ 0 bis PMl'/ 3 gespeichert; die Länge jedes Prozeß-Hauptworts PM beträgt 4 Bytes. Das Prozeß-Hauptwort 0 belegt die Bytes 0 bis 3 und besteht aus vier Teilen: ein Fähigkeits-Byte, ein Prioritäts-Byte, ein Status-Byte und ein "Decor"-Erweiterungs-Byte DEXT. In den Fig. 10a bis 1Od sind Einzelheiten des Prozeß-Hauptworts PM mit weiteren Einzelheiten des inFig.1Ob dargestellten Fähigkeits-Bytes 1001 abgebildet. Gemäß Fig.10b entspricht das erste Bit 1005 dem Aufrechnungsmodus-Bit, mit dem angezeigt wird, ob (oder nicht) Zeitaufrechnungsfunktionen für den Prozeß durchgeführt werden.addresses -16 are optionally available and may or may not be integrated into the process control block; positions 148 to 176 are also optional. (Note that the numbers under the memory positions indicate the shift from the reference position Print out "0" of the process control block PCB in bytes and do not confuse it with the reference numbering commonly used to identify parts in a patent drawing). Starting with byte "0" up to, but not including *. Byte 16, are four process nouns PMV / 0 to PMl '/ 3 stored; the length of each process noun PM is 4 bytes. The process noun 0 occupies bytes 0 to 3 and consists of four parts: a capability byte, a priority byte, a status byte and a "Decor" extension byte DEXT. FIGS. 10a to 10d show details of the process noun PM with further ones Details of the capability byte 1001 shown in FIG. 10b are shown. According to FIG. 10b, the first bit corresponds to 1005 the accounting mode bit which indicates whether (or not) time accounting functions for the process be performed.

¥enn das Aufrechnungsmodus-Bit 1005 auf binär 0 positioniert ist, wird keine Zeitaufrechnungsfunktion für den Prozeß durchgeführt; wenn jedoch das Aufrechnungsmodus-Bit 1005 auf binär 1 positioniert ist, wird eine Zeitaufrechnung durchgeführt. Das Wissenschaftsmodus-Bit 1006 zeigt, wenn es auf 0 positioniert ist an, daß das wissenschaftliche Register der Maschine nicht eingespart wird und daß der Einsparungsbereich des wissenschaftlichen Registers, der sich auf den Bytes 148 bis 176 von Fig.4 befindet, nicht im Prozeß-Steuerblock PCB vorhanden ist. Wenn das Wissenschaftsmodus-Bit 1006 auf binär 1 ist, ist die wissenschaftliche Zusatzeinrichtung vorhanden und wird im Prozeß verwendet; der Einsparungsbereich der wissenschaftlichen Register wird,If the set-off mode bit 1005 is positioned on binary 0 no time-accounting function is performed for the process; however, if the set-off mode bit 1005 is on is positioned binary 1, a time calculation is carried out. Science mode bit 1006 shows when it is at 0 is positioned on that the scientific register of the machine is not saved and that the saving area of the scientific register that is based on bytes 148 to 176 of Figure 4 are not in the process control block PCB is present. When the science mode bit 1006 is a binary 1, it is scientific Optional equipment available and used in the process; the savings area of the scientific registers becomes,

50983A/083G50983A / 083G

wenn erforderlich, zur Aufbewahrung des Inhalts der wissenschaftlichen Register verwendet. Das Bit 1007 ist NFS (nicht funktionell).if necessary, to keep the contents of the scientific Register used. Bit 1007 is NFS (not functional).

Die restlichen Bits des Fähigkeits-Bytes werden auf Null gesetzt.The remaining bits of the capability byte are set to zero.

Einzelheiten des Prioritäts-Bytes 1002 sind in Fig.10c dargestellt.Gemäß "Fig.. 1Oc werden die ersten 4 Bits 1008 .des Prioritäts-Bytes 1002 zur Festlegung der Prioritätsstufe des diesem gegebenen Prozeß-Steuerblock,PCB zugeordneten Prozesses benutzt. Jedem Prozeß ist einer der 17 Prioritätsstufen zugeordnet, die zur Ordnung, konkurrierender Prozesse benutzt werden, d.h. (a) zur Auswahl des durchzuführenden Prozesses aus den bereiten Prozessen, (b) zur Einreihung von Prozessen in Warteschlangen. Die Prioritätsstufen nehmen von 0 bis 15 ab und für eine bestimmte Prioritätsstufe wird die FIFO-Regel (first in first out, erster herein, erster heraus) verwendet. Die nächsten vier Bits 1009 des Praoritäts-Bytes 1002 sind Nullen. .Details of the priority byte 1002 are shown in Figure 10c According to "Fig. 10c, the first 4 bits 1008 . of the priority byte 1002 for determining the priority level of the process control block, PCB assigned to this given Process used. Each process is assigned one of the 17 priority levels that are used to order competing processes can be used, i.e. (a) to select the one to be performed Process from the prepared processes, (b) for classification of processes in queues. Take the priority levels from 0 to 15 and for a certain priority level the FIFO rule (first in first out, first in, first out) used. The next four bits 1009 of priority byte 1002 are zeros. .

In Fig.1Od sind Einzelheiten des Status-Bytes 1003 dargestellt. Ein Status-Byte wird zur Erzeugung von Informationen hinsichtlich des dem Prozeß-Steuerblock PCB 400 zugeordneten Prozesses verwendet.Details of the status byte 1003 are shown in FIG. A status byte is used to generate information regarding the process associated with the process control block PCB 400 used.

Das Aktivfeld-Bit A 1010 wird auf binär 1 positioniert, wenn der Prozeß aktiviert ist. Das Unterbrechungs-Feld S 1011 "wird auf binär 1 positioniert, wenn der Prozeß unterbrochen ist. Das Unterstatus-Feld SS 1012 ist ein Zwei-Bit-Feld und definiert die folgenden Unterzustände des Prozesses: (a) bei binär 00 ist der Prozeß inaktiv; (b) bei binär 01 wartet der Prozeß in der Warteschlange des bereiten Prozesses (Q/PR/RDY), (c) bei binär 10 wartet der Prozeß an einem "Semaphor" in einer "Semaphor"-Warteschlange (Q/PR/S oder Q/PR/FLS); (d) bei binär 11 wird der Prozeß vom ProzessorThe active field bit A 1010 is positioned on binary 1 if the process is activated. The interrupt field S 1011 "is positioned at binary 1 when the process is interrupted is. The sub-status field SS 1012 is a two-bit field and defines the following sub-states of the process: (a) with binary 00 the process is inactive; (b) with binary 01 the process waits in the ready process queue (Q / PR / RDY), (c) at binary 10 the process is waiting on one "Semaphore" in a "Semaphore" queue (Q / PR / S or Q / PR / FLS); (d) at binary 11, the process is run by the processor

• 5Q8834/083G-• 5Q8834 / 083G-

durchgeführt. Das Mittel-Operationsfeld (MOI) 1013 wird auf binär 1 positioniert, wenn ein "Interrupt" auftritt und wird während der Durchführung eines Befehls überwacht, d.h. vor Beendigung des Prozesses. Das Bit "erweiterter Decor-Modus" EXTD 1014 wird auf 1 positioniert, wenn der Prozeß in einem erweiterten Decor-Modus, der ein Emulations-Modus der Maschine ist, arbeitet. Die Bits 1015 und 1016 werden auf 0 gesetzt.Das vierte Byte des Prozess-Hauptworts PMW 0 enthält die Decor-Erweiterungsnummer und wird verwendet, wenn sich das System im Emulations-Modus befindet. (Wenn gleich Eigen-Modus).carried out. The Central Operating Field (MOI) 1013 becomes positioned on binary 1 when an "interrupt" occurs and is monitored while a command is being carried out, i.e. before the end of the process. The bit "extended decor mode" EXTD 1014 is positioned at 1 if the Process operates in an extended decor mode which is an emulation mode of the machine. Bits 1015 and 1016 are set to 0. The fourth byte of the process main word PMW 0 contains the decor extension number and is used when the system is in emulation mode. (If equal to Eigen mode).

Das Prozeß-Hauptwort PMV/ 1 wird in den Bytes 4 bis 7 des Prozeß-Steuerblocks PCB gespeichert. Einzelheiten vonPMW 1 sind inFig.iOe dargestellt. Das Status-Byte 1016 ist das erste Byte in PMW 1 und speichert den Inhalt des Statusregisters. Das Multiprozessor-Byte MP 1018 ist in einer Multiprozessor-Architektur von Bedeutung, andernfalls ist dieses Feld gleich Null. Das zweite und vierte Byte des Prozess-Hauptwortes 1 stellt jeweils die MBZ-Felder 1017 und 1019 dar, die im Normalbetrieb logisch Null sein müssen.The process noun PMV / 1 is stored in bytes 4 through 7 of the process control block PCB. Details of PMW 1 are shown in Fig. The status byte 1016 is the first byte in PMW 1 and stores the content of the status register. The multiprocessor byte MP 1018 is in a Multiprocessor architecture matters, otherwise this is Field is zero. The second and fourth bytes of the process noun 1 represents the MBZ fields 1017 and 1019, which must be logic zero in normal operation.

Das Prozeß-Hauptwort PMW 2 belegt die Bytes 8 bis 11 des Prozeß-Steuerblocks und ist detaillierter in Fig.1Of dargestellt. Gemäß Fig. 1Of enthält das Feld von Bit 4 bis Bit die lokalen Bezeichnungen SEG, SRA 1021 des "Semaphor", mit dem der PCB verkettet ist, wenn sich der Prozeß im Warte-Status befindet oder mit dem der PCB im unterbrochenen Zustand während des Wartens verkettet war. Das Ausnahmeklassen-und Typenfeld 1023 enthält die Klasse und den Typ, wenn eine Prozeß-Interrupt-Ausnahme auftritt, und das Feld mit den Bits 0 bis 15 ist (NFS) 1022 (ohne Funktion). Wenn einProzeß einen anderen Status als den oben erwähnten besitzt, sind die Bits 0 bis 31 bedeutungslos.The main process word PMW 2 occupies bytes 8 to 11 of the Process control blocks and is shown in more detail in Fig.10f. 10f, the field contains from bit 4 to bit the local designations SEG, SRA 1021 of the "semaphore" to which the PCB is chained when the process is in the wait state or to which the PCB was chained while waiting. The exception class and type field 1023 contains the class and type when a process interrupt exception occurs occurs and the field with bits 0 to 15 is (NFS) 1022 (no function). When one process another Has status than that mentioned above, bits 0 to 31 are meaningless.

509834/6830509834/6830

Das Prozeß-Hauptwort PMW 3 belegt die Bytes 3 bis 15 in PCB 400 und kennzeichnet eine Decor-Erweiterungstabelle. In Fig.10g ist PMW 3 detailliert beschrieben? das DETSZ-FeId 1024 gibt die Nummer der Eingaben der Tabelle an, und wenn dieses- Feld Null ist, kann der Prozeß keine Decor-Erweiterung durchführen. The process noun PMW 3 occupies bytes 3 to 15 in PCB 400 and denotes a Decor extension table. In Fig.10g is PMW 3 described in detail? the DETSZ field 1024 is there the number of the entries in the table, and if this field Is zero, the process cannot do a decor expansion.

Das DETE-FeId 1025 ist die absolute Adresse der Decor-Erweiterungs-Tabelle,in Einheiten von 16 Bytes; es hat nur dann eine Bedeutung, wenn DETSZ nicht Null ist. Die Decor-Erweiterungstabelle besteht aus DETSZ-Eingaben. Jede Eingabe besitzt die Größe eines Bytes. Die DEXT-Singabe der Tabelle kennzeichnet die Fähigkeit des Prozesses, im Decor-Erweiterungsmodus DEXT zu funktionieren. Wenn das DEXT-Byte Null ist, ist die Decor-Erweiterungs-Nummer DEXT nicht gestattet; wenn das DEXT-Byte dagegen "1" ist, ist die Decor-Erweiterungssnummer DEXT zulässig. Andere DEXT-Werte als Null und 1 sind nicht zulässig.(Siehe Fig.iOa, DEXT-Nummer 1004 ).The DETE field 1025 is the absolute address of the decor extension table in Units of 16 bytes; it only has meaning if DETSZ is not zero. The Decor extension table consists of DETSZ entries. Each input is the size of one byte. The DEXT-Singabe the table indicates the ability of the process to DEXT in Decor expansion mode to work. If the DEXT byte is zero, the decor extension number is DEXT not allowed; on the other hand, if the DEXT byte is "1", the decor extension number is DEXT permissible. DEXT values other than zero and 1 are not permissible (see Fig. OK, DEXT number 1004).

Die Bytes 16 bis 23 von PGB 400 enthalten 2 Adreßraum-Worte, ASV/ 0 und ASW 1, und jedes ASW enthält einen Index für eine Matrix der Segmenttabellen-Worte. Sowohl ASW 0 als auch ASV/ besitzen das gleiche, in Fig.10h dargestellte Format. Die Größe der Matrix der Segmenttabellen-Worte wird durch die Nummer der Segment-Tabellen-Worte in einer Matrix definiert und beinhaltet typischerweise 7 für ASW 0 und 8 für ASW 1. Das STWSZ-FeId 1026 kennzeichnet die ,Größe der Matrix der Segmenttabellen-Worte. Das Segmenttabellen-Wortmatrixfeld STWA 1027 enthält die absolute Adresse STWA derMatrix in Einheiten von 16 "Bytes, d.h. die absolute Adresse der Matrix beträgt I6mal STWA in Bytes. -Bytes 16 to 23 of PGB 400 contain 2 address space words, ASV / 0 and ASW 1, and each ASW contains an index for one Matrix of segment table words. Both ASW 0 and ASV / have the same format shown in Figure 10h. The size the matrix of the segment table words is defined by the number of the segment table words in a matrix and typically contains 7 for ASW 0 and 8 for ASW 1. The STWSZ field 1026 indicates the size of the matrix of the segment table words. The segment table word matrix field STWA 1027 contains the absolute address STWA of the matrix in units of 16 "bytes, i.e. the absolute address of the matrix is 16 times STWA in bytes. -

Die Bytes 24-bis 27 des PCB enthalten ein Ausnahmewort EXIi, das in Fig.1Oi detaillierter beschrieben ist. Das Ausnahmewort beinhaltet-einen Index (SEG, SRA) 1029 für eine Ausnahme-Bytes 24 to 27 of the PCB contain an exception word EXIi, which is described in more detail in FIG. The exception word contains -an index (SEG, SRA) 1029 for an exception-

SÖ98 34/083 0SÖ98 34/083 0

klassen-Tabelle, welche die Tätigkeit angibt, die entsprechend einer Prozeß-Ausnahme gemäß ihrer Klasse,' die im Prozeß-Hauptwort PMW 2 gespeichert ist, durchgeführt werden muß (siehe Fig. 1Of). Das 14BZ-FeId 1028 des Ausnahme-Wortes EXV/ muß Null sein.class table, which indicates the activity, which accordingly a process exception according to its class, 'the one in the process noun PMW 2 is stored, must be carried out (see Fig. 10f). The 14BZ field 1028 of the exception word EXV / must Be zero.

Das in den Bytes 28 "bis 3Tdes PCB enthaltene Stapel-Wort SKV/ enthält den Wert der Spitze des T-Registers des Stapels des Verfahrens, wenn das Verfahren nicht abläuft (detaillierte Beschreibung siehe Fig.1Oj). Gemäß Fig.1Oj definieren die Bits 0 und 1 das TAG-FeId 1030. TAG kennzeichnet durch seinen Inhält den "Descriptor"-Typ und muß für SKW gleich Null sein. Die Bits 2 und 3 des SKW-Wortes enthalten das Ringfeld 1031, welches die der segmentierten Adresse des Stapels zu Schutzzwecken zugeordnete Ringnummer enthält, die in diesem Fall Null sein muß. Die Bits 4 bis 31 enthalten die Segmentnummer SEG und die relative Segmentadresse SRA 1032 und bilden ein Feld zur Identifizierung des in einer Segmenttabelle und der relativen Segmentadresse innerhalb des Segments beschriebenen Segments. Das Stapel-Wort SKW wird jedesmal dann vervoll ständigt,.wenn derProzeß den Funkt ions-Status verläßt. Es wird immer dann zum Erneuern des Inhalts von Register "T" verwendet, wenn die Verarbeitung des Prozesses beginnt. In diesem letzten Fall wird geprüft, daß TAG 1030 und RING 1031 auf Null sind; andernfalls tritt eine illegale PCB-Ausnahme auf.The stack word contained in bytes 28 "through 3T of the PCB SKV / contains the value of the top of the T-register of the stack of the procedure if the procedure does not run (detailed Description see Fig. 10j). According to Fig.10j define the bits 0 and 1 the TAG field 1030. TAG identifies by its content the "Descriptor" type and must be zero for SKW. Bits 2 and 3 of the SKW word contain the ring field 1031, which is the segmented address of the stack for protection purposes assigned ring number, which must be zero in this case. Bits 4 to 31 contain the segment number SEG and the relative segment address SRA 1032 and form a field for identifying the in a segment table and the relative segment address within the segment described segment. The stack word SKW becomes every time then complete when the process has reached the functional status leaves. It is used to refresh the contents of register "T" whenever the processing of the process begins. In this last case it is checked that TAG 1030 and RING 1031 are at zero; otherwise, an illegal PCB exception occurs.

Die Bytes 32 bis 35 von PCB 400 beinhalten das Befehlszähler-Inhaltswort ICW, das manchmal auch als ICC bezeichnet wird. In Fig.10k sind Einzelheiten des Befehlszähler-Worts ICW dargestellt; das TAG-FeId 1033 muß dabei 00 sein (d.h. andere Werte als Null im Befehlszähler sind illegal). Das aktuelle Ring-Feld 1034 belegt die Bits 2 und 3 und gibt die laufende Ring-Nummer des durchzuführenden Prozesses an, umBytes 32 through 35 of PCB 400 contain the instruction counter content word ICW, which is sometimes referred to as ICC. Refer to Figure 10k for details of the command counter word ICW shown; the TAG field 1033 must be 00 (i.e. values other than zero in the command counter are illegal). The current ring field 1034 occupies bits 2 and 3 and provides the sequential ring number of the process to be carried out in order to

509834/509834 /

die Zugriffsrechte zum Hauptspeicher festzulegen. Die Bits bis 31 geben die segment-Nummer und die relative Segmentadresse (SEG, SRA)' 1035 an, welche die Adresse des nächsten auszuführenden Befehls definieren.define the access rights to the main memory. Bits to 31 indicate the segment number and the relative segment address (SEG, SRA) '1035 which define the address of the next instruction to be executed.

Das MBZ-FeId in den Bytes 36 bis 39 muß Null sein (es ist zu bemerken, daß das MBZ-FeId immer ein Feld anzeigt, das Null sein muß). Das MBZ-Wort wird jedesmal dann getestet, wenn von der Bezeichnung J, P aus, eine Zusatzoperation zum PCB durchgeführt wird. Wenn das Wort nicht Null ist, tritt eine illegale PCB-Ausnahme auf.The MBZ field in bytes 36 to 39 must be zero (it is closed note that the MBZ field always shows a field that is zero have to be). The MBZ word is tested every time, starting with the designation J, P, an additional operation to the PCB is carried out. If the word is not zero, an illegal PCB exception occurs.

Die Stapel-Basisworte SBW 0-2 belegen die Bytes 40 bis im Prozeß-Steuerblock 400. Diese Worte besitzen das gleiche Format, das detaillierter in Fig.101 dargestellt ist. Sie werden während Stapel-Operationen verwendet und bei jedem Gebrauch muß ihr TAG-FeId 1036 und ihr RING-FeId 1037 Null sein, da andernfalls eine illegale PCB-Ausnahme auftritt. Die Bits 4 bis 31 enthalten die segmentierte Adresse (SEG, SRA) 1038 der ersten Bytes des Stapel-Segments, jeweils für Ring 0, 1 und 2.The stack base words SBW 0-2 occupy bytes 40 to in process control block 400. These words are the same Format which is shown in more detail in Fig. 101. They are used during batch operations and every time You must use your TAG field 1036 and your RING field 1037 zero otherwise an illegal PCB exception will occur. Bits 4 to 31 contain the segmented address (SEG, SRA) 1038 of the first bytes of the stack segment, each for ring 0, 1 and 2.

Die Bytes 52 bis 83 des Prozeß-Steuerblocks 400 stellen einen Raum dar, der für den Basisregister-Zwischenspeicherbereich (8 Worte) reserviert ist. Die Bytes 84 bis 147 stellen den Zwischenspeicherbereich dar, der zur Zwischenspeicherung derWerte aller allgemeinen Register (16 Worte) verwendet wird. Die Bytes 148 bis 179 stellen den Zwischenspeicherbereich dar, der zur Zwischenspeicherung des Inhalts der wissenschaftlichen Register ( 8 Worte) verwendet wird.Bytes 52 through 83 of process control block 400 are set represents a space reserved for the base register buffer area (8 words). Bytes 84 to 147 represent represents the buffer area which is used for buffering the values of all general registers (16 words). Bytes 148 to 179 represent the buffer area which is used to buffer the contents of the scientific Register (8 words) is used.

Im PCB 400 werden 5 Doppelworte über der PCB-Null-Adresse zu Aufrechnungszwecken erzeugt. Diese Worte befinden sich in denPCB-Adressen-8 bis -40. Jedes Wort beinhaltet in seinenIn PCB 400 there are 5 double words above the PCB zero address generated for offsetting purposes. These words are located in PCB addresses -8 through -40. Every word includes in his

£'99834/0830£ '99834/0830

ersten 52 Bits eine in Mikrosekunden-Einheiten ausgedrückte Zeit oder Zeitintervall;hierbei sind die Bits 52 bis 63 mit Nullen aufgefüllt. Das Restauslaufzeit-Doppelwort RTO (die ersten 8 Bytes oberhalb Null im PCB) enthält eine Angabe über die Zeit, die gegenwärtig vomProzessor für einen Prozeß aufgewandt wird, bevor eine Zeitau,slaufs-Ausnahme auftritt. Das RTO-Wort wird wie folgt vervollständigt: jedesmal, wenn der Prozeß den Funktions-Status verläßt, wird der Wert des Prozeß-Zeitgebers im RTO-Wort gespeichert. Jedesmal, wenn der Prozeß in den Funktions-Status übergeht, wird der Wert des Prozeß-Zeitgebers von RTO aus geladen.first 52 bits one expressed in microsecond units Time or time interval; bits 52 to 63 are padded with zeros. The remaining deceleration double word RTO (the first 8 bytes above zero in the PCB) contains an indication of the time currently used by the processor for a process is expended before a timeout exception occurs. The RTO word is completed as follows: each time the process leaves the functional state, the value of the process timer is stored in the RTO word. Every time the process goes into function status, the value of the process timer is loaded from RTO.

Das im PCB befindliche Laufzeit-Aufrechnungswort RUA (Byte-Adresse -16) ist ein Zeit-Zähler, der den Gesamtbetrag der Prozessor-Zeit angibt, die ein Prozeß im Funktions-Status benutzt hat. Die aufgerechnte Zeit ist die gegenwärtig vom Prozessor ausschließlich für den Prozeß verwendete Zeit. Das RUA-Wort wird wie folgt aktualisiert: jedesmal, wenn der Prozeß den Funktions-Zustand verläßt, wird der Wert des Prozeß-Zeitgebers PT abgelesen. Die Differenz der Inhalte von RTO und PT wird zu RUA addiert (danach wird· der PT-Wert in RTO gespeichert). Es ist noch hinzuzufügen, daß die Zeit, während der Prozeß unterbrochen ist, nicht gezählt wird. Die RTO- und RUA-Worte werden erst dann vervollständigt, wenn das Aufrechnungs-Modusbit auf Null ist. Die CET- RTA-ünd WTA-Worte (später beschrieben) werden nur dann dem Prozeß-Steuerblock zugeführt, wenn das Aufrechnungsmodus-Bit des Prozeß-Hauptworts PMW 0 auf 1 ist. Die Worte werden nur in diesem Fall vervollständigt.The runtime offset word RUA (byte address -16) is a time counter that indicates the total amount of processor time that a process is in the functional status used. The accumulated time is the time currently being used by the processor for the process only Time. The RUA word is updated as follows: every time the process leaves the functional state, the Read the value of the process timer PT. The difference in the contents of RTO and PT is added to RUA (then the PT value stored in RTO). It should be added that the time during which the trial is suspended does not is counted. The RTO and RUA words are only completed when the offset mode bit is at zero. the CET, RTA and WTA words (described later) are only used then supplied to the process control block when the accounting mode bit of the process main word PMW 0 is 1. The words will only completed in this case.

Das Wartezeit-Aufrechnungswort WTA, das sich auf Byte-Adresse im PCB befindet, ist ein Echtzeit-Zähler, der den Gesamtbetrag der Echtzeit angibt, die der Prozeß im V/arte-Status verbracht hat. Das WTA-Wort wird wie folgt vervollständigt: jedesmal, wenn der Prozeß den Warte-Status verläßt, wird vonThe waiting time accrual word WTA, located at byte address in the PCB, is a real-time counter that indicates the total amount of real-time that the process is in the V / arte state has spent. The WTA word is completed as follows: every time the process leaves the wait status, from

509834/0830509834/0830

einer Tageszeituhr (nicht abgebildet) der Tageszeitwert TOD abgelesen, und der Wert TOD minus dem Wert des CET-Wortes wird zum WTÄ-Wort addiert.a time of day clock (not shown) the time of day value TOD read, and the value TOD minus the value of the CET word is added to the WTÄ word.

Das in der PCB-Byte-Adresse -32 befindliche Bereitzeit-Aufrechnungswort ist ein als Echtzeit-Zähler ausgebildetes Doppelwort, das den Gesamtbetrag der Echtzeit angibt, die der Prozeß im Bereit-Status verbracht hat. Das RTA wird wie folgt vervollständigt: jedesmal, wenn der Prozeß den Bereit-Status verläßt, wird der Tageszeitwert TOD abgelesen, und der Inhalt von TOD minus dem Inhalt vonCET wird zur RTA-addiert. ,The ready-time offset word in PCB byte address -32 is a double word designed as a real-time counter that indicates the total amount of real-time that the process has spent in the ready status. The RTA is completed as follows: every time the process exits the ready status, the time of day value TOD is read and the contents of TOD minus the contents of CET are added to the RTA. ,

Das aktuelle Eingabezeit-Doppelwort CET befindet sich in der PCB-Byte-Adresse und enthält die Tageszeit zu der der Prozeß in einen der folgendenZustände übergegangen ist: Bereit-, Warte-, Funktions- und Unterbrechungs-Status.The current input time double word CET is located in the PCB byte address and contains the time of day at which the process went into one of the following states: Ready, Waiting, functional and interruption status.

Strukturen der Systembasis: . Structures of the system base:.

In Fig.6 ist das Format der Systembasis 600 dargestellt. Die Systembasis befindet sich im absoluten Hauptspeicher, sie wird von der Firmware entwickelt und ist über das Adreßbegrenzungs-Register (BAR) zugänglich, das gelesen, jedoch nicht beschrieben werden kann. Das Adreß-Begrenzungs-Register BAR befindet sich unter einer Hauptspeicherzone, die. für Hardware reserviert ist und trennt diese im Speicher für die Hardware reservierte Zone von der Systembasis 600. Gemäß Fig.6 enthält die Systembasis 600 eine Anzahl von Systemkriterien, welche die Prozeßbezeichnung (J, P) des aktuell ablaufenden Prozesses beinhalten. Aus der logischen Bezeichnung des Prozesses, J,P wird die absolute Adresse des entsprechenden Prozeß-Steuerblocks PCB entwickelt. Die Größe und Adresse der J-Tabelle werden vom Inhalt desThe format of the system base 600 is shown in FIG. The system base is located in the absolute main memory, it is developed by the firmware and is via the address limit register (BAR) that can be read but not written to. The address delimitation register BAR is located under a main storage zone, the. is reserved for hardware and separates it in memory for the hardware reserved zone of the system base 600. Referring to Figure 6, the system base 600 contains a number of System criteria that contain the process designation (J, P) of the currently running process. From the logical Name of the process, J, P becomes the absolute address of the corresponding process control block PCB. The size and address of the J table are determined by the content of the

509834/0830509834/0830

Tabellenwortes J (JTW) bestimmt. Dieses Wort befindet sich in der durch das BAR-Register angegebenen Adresse. Das Format des JTW ist in Fig.11a dargestellt. Die Große (JTSZ) 1101 der J-Tabelle 1204 in Fig.12 legt die Anzahl der Eingaben der J-Tabelle 1204 fest, die bis zu 255 Eingaben betragen kann. Die Größe JTSZ 1101 ist eine positive .ganze 8-Bit-Zahl; eine Ausnahme "außerhalb der J-Tabelle" tritt auf, wenn J gleich oder größer ist als JTSZ. Die absolute Adresse der J-Tabelle 1204 wird durch Multiplikation des J-Tabellenindex 1102 mit 16 erzielt.Die J-Tabelle 1204 enthält die J-Tabelleneingaben, deren Format detaillierter in Fig.11b dargestellt ist. Jede J-Tabelleneingabe definiert die absolute Adresse einer P-Tabelle 1205, die sich aus der Multiplikation des P-Tabellenindex 1104 mit 16 ergibt. Die Größe (PTSZ) 1103 der P-Tabelle gibt die Anzahl der Eingaben der P-Tabelle an. Die Größe PTSZ ist eine positive ganze 8-Bit-Zahl, die typischerweise zwischen 0 und 255 variieren kann und die Anzahl der Eingaben der P-Tabelle anzeigt. Eine Ausnahme "außerhalb der P-Tabelle" tritt auf, wenn P gleich oder größer als PTSZ ist. Jede Eingabe der P-Tabelle 1205 definiert die absolute Adresse eines Prozeß-Steuerblocks (PCB) 1206 durch Multiplikation des Prozeß-Steuerblockindex 110.7 mit 16. Ein Anwesenheits-Indikator P 1105 kennzeichnet, wenn er auf binär 0 positioniert ist, die Abwesenheit eines PCB 1206 und die Anwesenheit eines PCB, wenn er auf binär 1 positioniert ist.(Wenn der Anwesenheits-Indikator P 1105 auf Null ist, tritt eine Ausnahme "freie P-Tabelleneintragung" auf.) Die Bits 1 bis 7 des P-Tabellenindikators (Fig.11c) müssen Null sein (MBZ 1106, da andernfalls eine Ausnahme "illegale P-Tabelleneintragung" auftritt.Table word J (JTW). This word is in the address specified by the BAR register. The format of the JTW is shown in Figure 11a. The Great (JTSZ) 1101 of the J table 1204 in Fig. 12 specifies the number of entries in the J table 1204, which can have up to 255 entries. the Size JTSZ 1101 is an 8-bit positive whole number; an exception "Outside the J table" occurs when J is equal to or greater than JTSZ. The absolute address of the J table 1204 is obtained by multiplying the J table index 1102 by 16 The J table 1204 contains the J table entries the format of which is shown in more detail in FIG. 11b. Every J table entry defines the absolute address of a P table 1205, which results from the multiplication of the P table index 1104 with 16 results. The size (PTSZ) 1103 of the P table indicates the number of entries in the P table. The size PTSZ is a positive 8-bit integer, which can typically vary between 0 and 255, and the number of entries in the P-table indicates. An "outside of the P table" exception occurs when P is equal to or greater than PTSZ. Every input of P table 1205 defines the absolute address of a process control block (PCB) 1206 by multiplying the Process control block index 110.7 with 16. A presence indicator P 1105 indicates when it is positioned on binary 0 is, the absence of a PCB 1206 and the presence of a PCB if it is positioned on binary 1. (If the presence indicator P 1105 is at zero, an exception "free P-table entry ".) Bits 1 to 7 of the P-table indicator (Fig.11c) must be zero (MBZ 1106, otherwise an exception "illegal P-table entry" occurs.

Auf der BAR-Adresse plus 4 der Systembasis 600 befindet sich das Format-Byte eines G-Tabellenwortes (GTV/) das in Fig.11d detail--liert dargestellt ist. Die Größe und Adresse einer G-Segmenttabelle 1212 (Fig.12) wird vom Inhalt des G-TabellenwortesThis is located on the BAR address plus 4 of the system base 600 Format byte of a G table word (GTV /) that is detailed in Fig. 11d is shown. The size and address of a G segment table 1212 (Fig.12) is based on the content of the G table word

&Ö.983W083Q& Ö.983W083Q

festgelegt.Die Größe (GTSZ) .1108 der G-Tabelle 1212 legt die Anzahl von Eingaben ii die G-Tabelle fest, die typischerweise bis zu 255; Eingaben betragen kann. Die Größe GTSZ ist eine positive ganze 8-Bit-Zahl;, eine Ausnahme "auSr-. serhalb der G-Tabelle" tritt auf, wenn die G-Nummer gleich._. oder größer als GTSZ ist. Die absolute Adresse der G-Tabelle · 1212 wird durch Multiplikation des G-Tabellenindex 1109 mit 16 erzielt. Das Format der: G-Tabellen-Eingabe entspricht einem Doppelwort (8 Bytes) und wird ,als G-Segment- ■ . "Descriptor" bezeichnet. Das Format des G-Segment-"Descriptors" ist detailliert in den.Fig.11c und 11f dargestellt. Alle G-Segment-"Descriptors" sind direkt und &her muß das indirekte. Bit I, 1111 Null sein, da andernfalls eine Ausnahme "illegaler Segment-Descriptor" auftritt. Der Anwesenheits-Indikator P 1110 ist ein Ein-Bit-Feld, das/wenn es auf binär 1 positioniert ist, anzeigt, daß ein Segment im Hauptspeicher für die Segmentnummer definiert worden ist, der dieser "Descriptor" entspricht; wenn der Indikator dagegen auf Null gelöscht ist, wird kein Segment defiliert und eine Referenz des Segment-"Descriptors" löst eine Ausnahme "fehlendes Segment" aus. Das verfügbare Bit A 1112 ist ein Ein-Bit-Feld, welches anzeigt, ob das Segment verfügbar ist oder nicht; es wird nur überprüft, wenn dieses Segment definiert ist (d.h. P gleich binär 1) und wird andernfalls ignoriert. Das benutzte Markierungsfeld U 1113 zeigt an, ob eine Zugriffsoperation.zu dem Segment durchgeführt worden.ist oder nicht. Wenn das U-Bit auf binär positioniert ist, ist keine Zugriffsoperation zum Segment erfolgt; wenn das U-FeId dagegen-auf binär 1 positioniert ist, ist eine Zugriffsoperation zum Segment erfolgt. Das be-. schriebene Markierungsfeld W 1114 gibt an, ob die Daten im Segment verändert worden sind. Wenn W auf binär Null ist, ist keine Änderung der Segments-Daten erfolgt; wenn W dagegen auf binär 1 ist, sind die Segments-Daten geändert worden. DerThe size (GTSZ) .1108 of the G table 1212 defines the number of entries ii the G table, which is typically up to 255; Inputs can be. The size GTSZ is a positive whole 8-bit number; an exception "outside the G table" occurs if the G number is the same ._. or greater than GTSZ. The absolute address of the G table 1212 is obtained by multiplying the G table index 1109 by 16. The format of the : G table entry corresponds to a double word (8 bytes) and, as a G segment ■. "Descriptor" referred to. The format of the G-segment "descriptor" is shown in detail in FIGS. 11c and 11f. All G-segment "descriptors" are direct and so must be indirect. Bit I, 1111 must be zero, otherwise an "illegal segment descriptor" exception occurs. The presence indicator P 1110 is a one-bit field which / when positioned at binary 1 indicates that a segment has been defined in main memory for the segment number to which this "descriptor"corresponds; if, on the other hand, the indicator is cleared to zero, no segment is defiled and a reference of the segment "descriptor" triggers an exception "missing segment". The available bit A 1112 is a one-bit field which indicates whether the segment is available or not; it is only checked if this segment is defined (ie P equals binary 1) and is ignored otherwise. The flag U 1113 used indicates whether or not an access operation to the segment has been performed. If the U-bit is positioned to binary, no access operation to the segment has occurred; if, on the other hand, the U field is positioned on binary 1, an access operation to the segment has taken place. The loading. Written marking field W 1114 indicates whether the data in the segment has been changed. When W is binary zero, there has been no change to the segment data; on the other hand, if W is binary 1, the segment data has been changed. Of the

509334/0830509334/0830

Gatter-Indikator GS 1115 eines G-Segments- "Descriptors" muß auf binär 01 positioniert sein, da andernfalls eine Ausnahme "illegaler Segment-Descriptor" auftritt. Der Grund dafür besteht darin, daß ein G-Segment, mit Ausnahme des GO-Seg- , ments, immer Semaphore enthält (obwohl das Gegenteil nicht zutrifft, d.h. es ist nicht erforderlich, daß sich alle "Semaphore" in einem G-Segment befinden) und daß die Befehle für "Semaphore" den Binärwert QI des GS-Codes erfordern. Die absolute Basisadresse eines Segments 1214 wird im G-Segment-"Descriptor" von Fig.11e durch das 24-Bit-Basisfeld 1116 definiert; der Inhalt dieses Feldes wird zur Erzielung der absoluten Adresse mit 16 multipliziert. Das zweite Wort des G-Segment-"Descriptors" von Fig.11f belegt die Bitpositionen 32 bis 63 in derG-Tabelle 1212.Gate indicator GS 1115 of a G segment "descriptor" must must be positioned on binary 01, otherwise an "illegal segment descriptor" exception occurs. The reason for this consists in the fact that a G-segment, with the exception of the GO-Seg, ments, always contains semaphores (although not the opposite applies, i.e. it is not necessary that all "semaphores" are in a G segment) and that the commands require the binary value QI of the GS code for "semaphores". the absolute base address of a segment 1214 is in the G-segment "descriptor" defined by the 24-bit base field 1116 of Figure 11e; the content of this field is used to achieve the absolute address multiplied by 16. The second word of the G-segment "descriptor" of FIG. 11f occupies the bit positions 32 to 63 in G table 1212.

Das RS.U TeId 1117( die Bits 32 bis 39^> ist für Software zwecke reserviert und wird im allgemeinen ignoriert, wenn es als G-Segment-"Descriptor" benutzt wird, wie dies hier der Fall ist. Das MBZ-FeId 1118 muß Null sein, da andererseits eine Ausnahme "illegales Segment" auftritt. Da das MBZ-FeId 1118 die Bitpositionen 40 bis 51 belegt, setzt es das SIZS-FeId 1119, welches das Feld für ein kleines Segment-SIZE ist; daher müssen nun alle G-Segmente zum Typ "kleine Segmente" gehören.The RS.U TeId 1117 (bits 32 to 39 ^> is reserved for software use and is generally ignored when used as a G-segment "descriptor" is used, as is the case here is. The MBZ field 1118 must be zero, there on the other hand a Exception "illegal segment" occurs. Since the MBZ field 1118 occupies bit positions 40 to 51, it sets the SIZS field 1119, which is the field for a small segment SIZE; therefore all G-segments must now belong to the "small segments" type.

Das Segment-SIZE 1119 ist eine positive ganze 12-Bit-Zahl. Die Bytes-Anzahl im Segment ist gleich i6x(SIZE+i). Wenn das 12-Bit-Feld Null ist, beträgt die Segmentgröße 16 Bytes. Daher kann die Segmentgröße eines G-Segments 1114 nicht 2 Bytes (kleine Segmente) überschreiten.The segment SIZE 1119 is a positive whole 12-bit number. The number of bytes in the segment is equal to i6x (SIZE + i). if If the 12-bit field is zero, the segment size is 16 bytes. Therefore, the segment size of a G segment 1114 cannot exceed 2 bytes (small segments).

In Fig.6 ist die Systembasis 600 mit 9 System-Ausnahmezellworten dargestellt, die sich zwichen BAR plus 8 und BAR plus befinden. Das. Format der System-Ausnahmezellworte EXC ist in Fig.11g dargestellt. Da "Semaphore" zur Übertragung von Meldungen zu bestimmten Verfahren verwendet werden, befinden sich die Indexe für diese "Semaphore" in neun Speicherpositionen,In Figure 6, the system base 600 is with 9 system exception cell words shown, which are located between BAR plus 8 and BAR plus. That. The format of the system exception cell words is EXC shown in Fig.11g. Because "semaphores" are used to transmit messages related to certain procedures the indexes for these "semaphores" are in nine memory positions,

509834/0830509834/0830

- 43- .- 43-.

wenn eine Svstem*-Ausnahme auftritt. Jede dieser Positionen wird als System-Ausnahmezelie bezeichnet, eine pro System-Ausnahmeklasse. Das MBZ-FeId 1120 muß auf "binär Null sein, da andernfalls eine System-Prüfung (Check) auftritt. Jede Ausnahmezelle (EXC) be inhaltet j ewe ils die Systembe ze iehnungen G, D 1121 und 1122.if a Svstem * exception occurs. Any of these positions is referred to as a system exception cell, one for each system exception class. The MBZ field 1120 must be "binary zero, otherwise a system check (check) occurs. Each Exception cell (EXC) always contains the system designations G, D 1121 and 1122.

Die in BAR plus 44 der Systembasis 600 befindliche Kanal-Ausnahmezelle besitzt ein Format, das der bereits erwähnten System-Ausnahmezelle gleicht, und die System-Bezeichnung GD eines "Semaphor" enthält, das zur Übertragung von Meldungen zu bestimmten Prozessen benutzt wird, wenn eine Kanal-Ausnahme auftritt.The channel exception cell located in BAR plus 44 of the system base 600 has a format that is similar to the system exception cell already mentioned, and the system designation GD a "semaphore" that is used to transmit messages used for certain processes when a channel exception occurs.

Ein internes Prozessor-Warteschlangenwort IPQW beginnt bei BAR plus 48; Einzelheiten seines Formats snd in Eg.11h dargestellt. Das IPQW-Wort kennzeichnet, wie in Eg.9 mit den Referenznummern 905 und 803C dargestellt, den "Kopf" der Warteschlange von bereiten Prozessen (Q/PR/RDY). Die Warteschlange. der abrufbereiten Prozesse (Q/PR/RDY) verkettet alle Prozesse, die sich im Bereit-Status befinden. Auf diese Warteschlange bezieht sich der "Kopf" des Q/PD/RDY-Feldes 1124 (Fig.Hh) des IPQW-Wortes durch Kennzeichnung der Spitze der Warteschlange der abrufbereiten Prozesse. Der "Kopf" des Q/PR/RDY-Feldes 1124 enthält eine positive ganze 16-Bit-Zahl, welche die Verschiebung von der Basis der als GO-Segment bezeichneten G-Segmentnummer 0 zum ersten Byte von Q/PR/RDY darstellt. Wenn dieses Q/PR/RDY-Bitfeld Null ist, wird die Bereit-Warteschlange als leer beträchtet."Das MBZ-FeId 1123 muß Null sein, da andernfalls eine System-Prüfung (Check) auftritt.An internal processor queue word IPQW begins at BAR plus 48; Details of its format are shown in Eg.11h. As in Eg.9, the IPQW word identifies with the reference numbers 905 and 803C show the "head" of the queue of ready processes (Q / PR / RDY). The queue. of the ready-to-call processes (Q / PR / RDY) links all processes, that are in the ready state. On this queue refers to the "head" of the Q / PD / RDY field 1124 (Fig.Hh) of the IPQW word by marking the top of the queue of the ready-to-call processes. The "head" of Q / PR / RDY field 1124 contains a 16-bit positive integer, which represents the shift from the base of G segment number 0, called the GO segment, to the first byte of Q / PR / RDY. When this Q / PR / RDY bit field is zero, the ready queue becomes Considered empty. "The MBZ field 1123 must be zero otherwise a system check will occur.

Bei BAR plus 52 der Systembasis 600 ist die Speicherung der Initial- und laufenden Versuchswiederholungs-Zählungen dargestellt, deren Format detailliert in Fig.11i wiedergegeben sind. Das NFS-FeId 1125 ist ein nicht-funktioneiles Speicherfeld, das nicht von der Systembasis benutzt wird. Das Initial-Versuchs-Wiederholungs-Zählfeld 1126 und dasWith BAR plus 52 of the system base 600, the storage is the Initial and current retry counts shown, the format of which are shown in detail in Fig.11i. The NFS field 1125 is a non-functional one Memory field that is not used by the system base. The initial retry count field 1126 and the

50983A/083050983A / 0830

_ 44 -_ 44 -

laufende Versuchs-Wiederholungs-Zählfeld 1127 werden benutzt, um die Anzahl der automatischen Befehls-Wiederholungen zu steuern, die auftreten bevor ein Maschinen-Fehler eine Maschinenfehler-Ausnahmebedingung auslöst. Sie werden durch einen Ricksetz-¥iederholungs-Zählbefehl(nicht abgebildet) mit der gleichen Zahl geladen.Current attempt-retry count fields 1127 are used to control the number of automatic command repetitions that occur before a machine error occurs Machine Fault Exception Throws. They are set by a reset count command (not shown) loaded with the same number.

Das in Fig.11j dargestellte laufende Prozeß-Wort (RPW) ist in BAR plus 56 der Systembasis 600 gespeichert und wird zur Speicherung der Bezeichnung des laufenden Prozesses, und im Falle einer Monoprozessor-Architektur, zur Speicherung der Priorität, verwendet. Die NFS-Felder 1128 und.1131 sind jeweils nicht-funktionelle Speicherfelder und können von beliebigen Einrichtungen für beliebige Zwecke verwendet werden; von der Systembasis werden sie jedoch generell nicht benützt. Die Prioritätsstufe eines laufenden Prozesses wird im PRI-FeId 1129 gespeichert. Im AB-FeId 1130 ist ein asynchrones Sprung-Bit (trap bit) gespeichert; dagegen ist der asynchrone Sprung-Ring im ARN-FeId 1132 gespeichert.The current process word (RPW) shown in Fig. 11j is stored in BAR plus 56 of the system base 600 and is used to store the designation of the current process, and in the case of a monoprocessor architecture, used to store the priority. The NFS fields 1128 and 1131 are non-functional memory fields and can be used by any facility for any purpose will; however, they are generally not used by the system base. The priority level of a running process is saved in the PRI field 1129. In the AB field 1130 is an asynchronous trap bit is stored; on the other hand, the asynchronous jump ring is stored in the ARN field 1132.

Die logische Bezeichnung (J, P) des laufenden Prozesses im Falle einer Monoprozessor-Architektur ist im J-, P-FeId 1133 gespeichert.The logical designation (J, P) of the current process in the case of a monoprocessor architecture is in the J, P field 1133 saved.

Ein in Fig.11k dargestelltes Absolutierungs-Tabellen-Indexwort befindet sich bei BAR plus 60 in der Systembasis und wird beim Initial-Systemladevorgang zur Initialisierung der absoluten Adressen im Initial-Systemladeprogramm (ISL) durch Addition des Inhalts von BAR mit allen absoluten Adressen im ISL-Programm verwendet. Der Absolutierungs-Tabellenindex 1135 definiert die Position einer (nicht abgebildeten) Absolutierungs-Tabelle. Die Größe der Absolutierungs-Tabelle ist im ATSZ-FeId 1134 dargestellt.An absolute table index word shown in FIG. 11k is in the system base with BAR plus 60 and is used for initialization during the initial system loading process of the absolute addresses in the initial system loader (ISL) by adding the contents of BAR with all absolute addresses used in the ISL program. The absolute table index 1135 defines the position of an absolute table (not shown). The size of the absolute table is shown in ATSZ field 1134.

Das in Fig.111 dargestellte CPU-Seriennummernwort ist ein in BAR plus 64 befindliches 4-Byte-Wort, das die Seriennummer der CPU im CPU-Seriennummernfeld 1136 enthält.The CPU serial number word shown in Fig. 111 is an in BAR plus 64 located 4-byte word that contains the serial number of the CPU in the CPU serial number field 1136.

509834/0830509834/0830

Ein in Fig. 11m, dargestelltes oberes. Begrenzungswort des Hauptspeichers befindet sich in BAR plus 68 und. kennzeichnet die obere Grenze des Hauptspeichers durch Urzeugung der absoluten Adresse des ersten nicht verfügbaren Vierfachwortes. Es drückt ebenfalls (in Bytes) die Größe des verfügbaren Hauptspeichers aus.An upper one shown in FIG. 11m. The main memory delimitation word is in BAR plus 68 and. indicates the upper limit of the main memory by automatically generating the absolute address of the first unavailable quadruple word. It also expresses (in bytes) the size of the available main memory.

Bei BAR plus 72 befindet sich ein in Fig.11m dargestelltes Wort, mit dem die Kanalnummer des Initial-Systemladegerätes ISL (CN). 1140 und die Kanalnummer des Hardwaregerätes (CN) 1141 erzeugt werden. .At BAR plus 72 there is one shown in Figure 11m Word with which the channel number of the initial system charger ISL (CN). 1140 and the channel number of the hardware device (CN) 1141 can be generated. .

Typ und Untertyp des im Computer-System verwendeten Geräts werden durch das Hardwaregerät-Typenwort (Eig.11o).jeweils. in den Feldern 1143 und 1144 beschrieben; das RSU-FeId 1142 ist hierbei für Softwarezwecke reserviert.Dieses Wort befindet sich in der System-Basis bei BAR plus 7&. Ein in Fig.11p dargestelltes ähnliches Wort mit einem ähnlichen Typen-Format, enthält den Typ und Untertyp des beim Initial-Systemladevorgang benutzten Gerätes. Dieses Wort befindet sich bei BAR plus 80.The type and sub-type of the device used in the computer system are identified by the hardware device type word (Eig.11o). described in fields 1143 and 1144; the RSU-field 1142 is hereby ftwarezwecke for S o reserviert.Dieses word is in the system based at BAR plus 7 &. A similar word shown in FIG. 11p with a similar type format contains the type and sub-type of the device used during the initial system loading process. This word can be found at BAR plus 80.

Wenn die Wiederstart-Taste eines Computers betätigt wird, wird eine simulierte V-Operation an einem "Semaphor" durchgeführt und der Bereit-Status wird eingegeben. Ein Index für dieses "Semaphor" befindet sich bei BAR plus 84 der System-Basis 600 und wird als Wiederstart-Zellwort bezeichnet; sein Format ist in Fig·1Iq dargestellt. Sein Format ist der bereits beschriebenen System-Ausnahmezelle ähnlich und beinhaltet die Systembezeichnung G, D eines "Semaphor" jeweils im G-FeId 1149 und D-Feld 1150. Das "MBZ-FeId 1148 muß Null sein. "When the restart button on a computer is pressed, a simulated V operation is performed on a "semaphore" and the ready status is entered. A script for this "Semaphore" is located at BAR plus 84 of the system base 600 and is referred to as the restart cell word; its format is shown in Fig. 1Iq. Its format is that already described System exception cell similar and contains the system designation G, D of a "semaphore" in each case in G fields 1149 and D field 1150. The "MBZ field 1148 must be zero."

Wenn das Computer-Syätem über mehr als einen Prozessor verfügt, wird in der System-Basis bei BAR plus 88 ein Wort für die Multi-If the computer system has more than one processor, in the system base at BAR plus 88 a word for the multi-

509834/0830509834/0830

prozessing-Erweiterung erzeugt. Einzelheiten dieses Worts sind inFig.11r dargestellt.processing extension generated. Details of this word are shown in Fig. 11r.

Verwendungsbeispiele der System-Basis und des Prozeß-SteuerblocksUsage examples of the system base and the process control block

In Fig.12 ist ein Beispiel dargestellt, wie die System-Basis in Verbindung mit dem Prozeß-Steuerblock verwendet werden kann, um eine Adressierung und eine Zugriffsoperation zu einem Benutzer-Segment, einem System-Segment oder einer V/arteschlange von Prozeß-Bereitsegmenten (Q/PR/RDY) durchzuführen. Der Hauptspeicher 1200 besitzt einen Teil 1203 der für Hardwarezwecke reserviert ist. Ein Adreßbegrenzungs-Register BAR 1202 trennt . die System-Basis 1215 von dem für Hardwarezwecke reservierten Teil des Speichers 1203. Das Adreßbegrenzungs-Register BAR 1202 wird zur Adressierung von Feldern in der System-Basis 1215 durch Addition des Inhalts des Adreßbegrenzungs-Registers mit der Verschiebung in 4-Byte-Einheiten des in der System Basis erforderten Feldes verwendet. Diese Adresse kennzeichnet nun das erste Byte des Feldes, in der gewünschten System-Basis." In Fig.12 kennzeichnet BAR 1202 das J-Tabellenwort (JTT,'/). Das bereits erwähnte J-Tabellenwort besitzt einen Index, der die J-Tabelle 1204 kennzeichnet. Durch Indexierung der in Fig.5 dargestellten J-Nummer wird eine J-Tabelleneingabe 1216 erzielt.Bsi der J-Tabelleneingabe kennzeichnet ein P-TabaLenindex die absolute Adresse der P-Tabelle 1205. Durch Indexierung derP-Nummer (siehe Fig.5) innerhalb der P-Tabelle 1205 wird die absolute Adresse des Prozeß-Steuerblocks 1206 erzielt.Figure 12 shows an example of how the system base is used in conjunction with the process control block can to do an addressing and an access operation to one User segment, a system segment or a V / art queue of process ready segments (Q / PR / RDY). The main memory 1200 has a part 1203 for hardware purposes is reserved. An address limit register BAR 1202 disconnects. the system base 1215 from the one reserved for hardware purposes Part of the memory 1203. The address delimitation register BAR 1202 is used for addressing fields in the system base 1215 by adding the contents of the address delimitation register with the shift in 4-byte units of that in the system base required field is used. This address now marks the first byte of the field in the desired system base. " In Figure 12, BAR 1202 identifies the J table word (JTT, '/). The J table word already mentioned has an index that identifies the J table 1204. By indexing The J number shown in Fig. 5 becomes a J table entry 1216 achieved.Bsi the J table entry indicates a P-TabaLenindex the absolute address of the P-Table 1205. Through Indexing of the P number (see Fig. 5) within the P table 1205 the absolute address of the process control block 1206 is obtained.

509834/0830509834/0830

Wie bereits im Prozeß-Steuerblock PCB 1206 dargestellt, gibt es zwei Adreßraum -Worte ASW 0 und ASW 1. Die höherwertigen Bits des Segmenttabellen-Nummernfeldes STN im Basis-Register 1201 werden zumZugriff zu einem dieser Adreßraum-Worte benutzt; in diesem Fall ASVi 1,dessen Segment-TabellerL·Wortmatrix STA-Index die Segment-Tabellen-Wortmatrix STWA 1208 kennzeichnet. Zusammen mit der Segment -Tabellennummer STN des Basis-Registers 1201 wird auf eines der 8 Segments-Tabellenworts in STViA zugegriffen, die eine der 8 Segment-Tabellen 1210 kennzeichnen.As already shown in process control block PCB 1206, there are two address space words ASW 0 and ASW 1. The more significant Bits of the segment table number field STN in the base register 1201 become one of these for access Address space words used; in this case ASVi 1, whose Segment-TabellerL · Word matrix STA-Index the segment table word matrix STWA 1208 identifies. Together with the segment table number STN of the base register 1201 one of the 8 segment table words in STViA is accessed, which is one of the 8 segment tables Mark 1210.

Daraufhin wird die Segmenttabellen-Eingabe STE vom Basis-Register 1201 aus durchgeführt, um eine von 256 Eingaben der Segment -Tabelle 1210, in der sich ein Segment-Descriptor befindet, durchzuführen. Der Segment-Descriptor wird nun zum Zugriff zu einem Benutzer-Segment 1211 verwendet. The segment table entry STE is then taken from the base register 1201 carried out to one of 256 entries in the segment table 1210, in which there is a segment descriptor is to be carried out. The segment descriptor is now used to access a user segment 1211.

Um auf ein System-Segment 1214 zurückzugreifen, das zur Speicherung von "Semaphores" verwendet wird, wird ein G-Tabellenwort GTW im Basis-System 1215 verwendet. Die Adresse des G-Tabellenwortes wird durch Addition der Verschiebung des G-Tabellenwortes in der System-Basis zum Adreß-Begrenzungsregister BAR 1202 erzielt. (Siehe Fig.6). Das G-Tabellenwort GW beinhaltet einen G-Tabellenindex, der die G-Tabelle 1212 kennzeichnet. Durch Benutzung einer für das System verfügbaren G-Nummer und Indexierung in derG-Tabelle wird auf einen G-Segment-Descriptor zurückgegriffen, der zur Adressierung eines System-Segments 1214 benutzt wird.To access a system segment 1214 that is used for Storage of "semaphores" is used, a G table word is used GTW used in the basic system 1215. The address of the G table word is obtained by adding the shift of the G table word in the system base to the address delimitation register BAR 1202 is achieved. (See Fig. 6). The G table word GW contains a G table index that contains the G table 1212 indicates. Using one available for the system G number and indexing in the G table is based on a G segment descriptor which is used to address a system segment 1214.

In ähnlicher Weise wird die System-Basis 1215 zum Zugriff zur Warteschlange der Bereit-Prozesse (Q/PR/RDY) 1213 benutzt, in.dem ein internes Prozessor-Warteschlangenwort IPQW adressiertSimilarly, the system base 1215 becomes the access point used for the queue of the ready processes (Q / PR / RDY) 1213, in.dem addresses an internal processor queue word IPQW

509834/0830509834/0830

wird, welches das Q/PR/RDY-Segment T213 anzeigt. Steuereinheitwhich indicates the Q / PR / RDY segment T213. Control unit

In den Fig.13a bis 13c sind Einzelheiten der Steuereinheit dargestellt.DJe Steuer-Einheit ist, obwohl sie getrennt von der zentralen Verarbeitungs-Einheit CPU dargestellt ist, in Wirklichkeit ein Teil der CPU und besteht aus einer Steuer-Speicher-Einheit CSU 1301, einem Steuerspeicher-Interface-Adapter CIA 1302 und den dazugehörigen Untereinheiten, den Steuerspeicher-Loader CSL 1302 und der Steuer- undLade-Einheit CLU 1304.13a to 13c show details of the control unit The control unit is shown, although it is shown separately from the central processing unit CPU is actually part of the CPU and consists of a control storage unit CSU 1301, a control storage interface adapter CIA 1302 and the associated sub-units, the control store loader CSL 1302 and the Control and charging unit CLU 1304.

Die Steuerspeicher-Einheit CSU 1301„empfängt Mikrobefehle, vom Steuerspeicher-Loader CSL 1303 über die Steuer- und Lade-Einheit CLU 1304 und dem Steuerspeicher-Interface-Adapter CIA 1302. Unter normalen Funktionsbedingungen werden die Mikroprogramme während der System-Initialisierung von einer externen Quelle aus geladen und werden zu einer ständigen Steuerfunktion der Maschine. Die Steuerspeicher-Einheit CSU 1302 kann jedoch in einer Weise nachgeladen und initialisiert werden, daß eine Vielzahl von Betriebsarten der zentralen Verarbeitungs-Einheit CPU 1306 entstehen. Die folgenden Betriebsarten der CPU sind unter der Steuerung durch die CSU 1301 verfügbar: (a) Eigen-Modus; (b) Emulations-Modusf (c) gleichzeitige Eigen- und Emulations-Betriebsarten; (d) Diagnostik-Modus. Die Fähigkeit ist aufgrund der in der CSU befindlichen Mikrobefehle möglich; diese sind die Quelle der MikroOperationen, die zur Funktionssteuerung aller übrigen funktionellen CPU-Einheiten, wie der Emulations-Sinheit 1316, der arithmetischen Logik-Einheit ALU 1317, der Befehls-Erfassungs-Einheit IFU 1318, der Adreß-Steuer-Einheit ACU 1319The control storage unit CSU 1301 "receives microinstructions, from the control store loader CSL 1303 via the control and charging unit CLU 1304 and the control store interface adapter CIA 1302. Under normal operating conditions, the Microprograms are loaded from an external source during system initialization and become a permanent one Control function of the machine. The control store unit CSU 1302 can, however, be reloaded and initialized in a manner that a multiplicity of operating modes of the central processing unit CPU 1306 arise. The following Operating modes of the CPU are available under the control of the CSU 1301: (a) self mode; (b) Emulation mode f (c) simultaneous intrinsic and emulation modes; (d) Diagnostic mode. The ability is due to in the CSU existing microinstructions possible; these are the source of the micro-operations that control the functions of all the others functional CPU units, such as the emulation unit 1316, the arithmetic logic unit ALU 1317, the command acquisition unit IFU 1318, the address control unit ACU 1319

609834/0830609834/0830

und der Datenfluß-Steuereinheit DMU 1321 verwendet werden. Zusammen mit der zentralen Verarbeitungs-Einheit CPU 1J5O6 sind die bereits beschriebenen allgemeinen Register 1307, die Basis-Register 1308, die wissenschaftlichen Register 1309, die T-Register 1310, die Status-Register 1311, der Befehls-Zähler IC 1312 und das Hardware-Steuermasken-Register 1313 abgebildet. -and the data flow control unit DMU 1321 can be used. Together with the central processing unit CPU 1J5O6 are the general registers 1307 already described, the basic registers 1308, the scientific registers 1309, the T registers 1310, the status registers 1311, the command counter IC 1312 and the hardware control mask register 1313 pictured. -

Typischerweise ist die Steuerspeicher-Einheit CSU 1301 ein aus bipolaren integrierten Schaltungen aufgebauter programmierbarer gK-Festspeieher (PROM), der mit einem Lese/Schreib-Direktzugriffsspeicher (RAM) verbunden ist. Er besitzt einen typischen Lesezyklus von 150 Nanosekunden und einen Schreibzyklus von 450 Nanosekunden. Jede Position des Steuerspeichers speichert ein 84-Bit-Mikrobefehlswort (wird später vollständig beschrieben) und jedes Mikrobefehlswort steuert einen CPU-Zyklus. Wenn eine Position des Steuerepeichers der Steuerspeichereinheit CSU 1301 gelesen"wird, wird deren Inhalt von Mikrooperations-Decodern entschlüsselt,· die wiederum Mikrooperations-Steuersignale erzeugen, die jeweils eine ^ spezifische Operation innerhalb der CPU auslösen (wird später in Einzelheiten beschrieben).Typically, the control store unit CSU 1301 is a programmable one made up of bipolar integrated circuits gK read-only memory (PROM) with read / write random access memory (RAM) is connected. It has a typical read cycle of 150 nanoseconds and one write cycle of 450 nanoseconds. Each position of the control store stores an 84-bit microinstruction word (which will later be completed described) and each microinstruction word controls a CPU cycle. When a position of the control memory of the control memory unit CSU 1301 "is read, the content of which is decrypted by micro-operation decoders, which in turn Generate micro-operation control signals that each trigger a ^ specific operation within the CPU (will described in detail later).

Durch Zusammenfassung von Positionen innerhalb jedes Mikrobefehlswortes (wird später in Einzelheiten beschrieben), werden Steuerspeicher-Sequenzen erzeugt, die eine spezifische CPU-Operation oder einen Befehl durchführen können. Wenn ein Befehl von der CPU ausgelöst wird, werden bestimmte Bits innerhalb des Operations-Codes zur Festlegung der Start-Sequenz des Steuerspeichers verwendet. Das Überprüfen bestimmter (nicht abgebildeter) Flip-Flops, die durch die Befehls-Entschlüsselungsfunktionen positioniert oder gelöscht werden, ermöglicht die Verzweigung des SteuerSpeichers, wenn erforderlich, auf eine spezifischere Sequenz.By combining positions within each microinstruction word (will be described in detail later), control store sequences are generated that perform a specific CPU operation or perform a command. When a command is triggered by the CPU, certain bits used within the operation code to define the start sequence of the control memory. Checking certain Flip-flops (not shown) that are activated by the command decryption functions be positioned or deleted, allows branching of the control memory, if necessary to a more specific sequence.

509834/0830509834/0830

Der Steuerspeicher-Interface-Adapter CIA 1302 führt mit der Steuerspeicher-Einheit 1301, der Datenfluß-Steuereinheit CMU 1321, der Adreß-Steuereinheit ACU 1319 und der arithmetischen Logik-Einheit ALU 1317 einen Informationsaustausch durch, um die Funktion des Steuerspeichers 1333 von Fig.13"b zu steuern. Die CIA 1302 beinhaltet die Logik für Steuerspeicher-Adreßänderungen, Überprüfungen, Fehlerüberprüfungen und die Hardware-Adreßerzeugung. Die Hardware-Adreßerzeugung wird im allgemeinen zur Entwicklung rler Start-Adresse von Fehlersequenzen oder für die Initialisierungs-Sequenz verwendet.The control store interface adapter CIA 1302 carries out an information exchange with the control store unit 1301, the data flow control unit CMU 1321, the address control unit ACU 1319 and the arithmetic logic unit ALU 1317 in order to enable the function of the control store 1333 from FIG. to control 13 "b. the CIA 1302 includes the logic for control store address changes, checks, error checks and the hardware address generation the hardware address generation is generally used rler to develop start address of error sequences or for the initialization S e frequency. .

Die Datenfluß-Steuereinheit DMU 1321 bildet die Interface . zwischen der CPU 1306 und dem Hauptspeicher und/oder dem in Fig.1 dargestellten Puffer-Speicher.Die Datenfluß-Steuereinheit hat die Aufgabe festzustellen, welche Einheit die von anderen Einheiten benötigten Informationen enthält und diese Information zum richtigen Zeitpunkt den CPU-Registern zuzuleiten. Die Datenfluß-Steuereinheit führt ebenfalls Maskierungs-Funktionen während partieller Schreib-Operationen durch.The data flow control unit DMU 1321 forms the interface. between the CPU 1306 and the main memory and / or the buffer memory shown in FIG has the task of determining which unit contains the information required by other units and to send this information to the CPU registers at the right time. The data flow control unit leads also perform masking functions during partial write operations.

Die Befehls-Erfassungseinheit IFU 1318 ist über Interface-Funktionen mit der DMU1321, der ACU 1319, der .4LU 1317 und der CSU 1301 verbunden; sie ist für die ständige Versorgung der CPU mit Befehlen verantwortlich. Die Befehls-Erfassungseinheit hält den nächsten Befehl in ihren Registern bereit, bevor der gegenwärtige Befehl zu Ende gebracht ist. Um diese Fähigkeit zu ermöglichen^ ist die Befehls-Erfassungseinheit IFU 1318 mit einem (nicht abgebildeten) 12-Byte-Befehlsregister ausgestattet, das normalerweise mehr als einen Befehl enthält.Zusätzlich ruft die IFU unter Steuerung durch die CSU Informationen (Befehle) vom Hauptspeicher ab, bevor die Befehle tatsächlich benötigtThe command acquisition unit IFU 1318 has interface functions with the DMU1321, the ACU 1319, the .4LU 1317 and the CSU 1301 connected; it is responsible for the constant supply of the CPU with commands. The command acquisition unit holds the next instruction in its registers before the current instruction completes. To enable this capability ^ is the command acquisition unit IFU 1318 has a 12-byte command register (not shown), which is normally the Contains more than one command. In addition, the IFU, under the control of the CSU, calls information (commands) from main memory before the instructions are actually needed

509834/0850509834/0850

werden; daher ist ihr 12-Byte-Befehlsregister ständig auf dem neuesten Stand. Die Befehle v/erden daher mit Hilfe normalerweise nichtbenutzter Speicher-Zyklen vorabgegriffen. Die Befehls-Erfassungseinheit decodiert weiterhin alle Befehle und informiert die anderen Einheiten über die Länge und das Format des Befehls.will; therefore, its 12-byte command register is always up The commands are usually grounded with help unused memory cycles are pre-tapped. The command acquisition unit continues to decode all commands and informs the other units of the length and format of the command.

Die Adreß-Steuereinheit AGU 1319 führt mit der IFU, ALU, DMU und-der CSU über die CIA einen Informationsaustausch durch. Die ACU 1319 ist für alle Adreßentwicklungen in der CPU verantwortlich. Alle Operationen der ACU, einschließlich Übertragungen von, zu und innerhalb der Einheit, werden von der CSU-Mikrooperation und -Logik in der Einheit gesteuert, Die normale Funktion der ACU hängt von den Adreßtypen in den Befehlen und nicht von den Befehlstypen ab. Je nach Adreßtypen kann die ACU verschiedene Operationen für alle Adressen in den Befehlen durchführen. Die ACU enthält weiterhin einen Assoziativ-Speicher 1319a, der typischerweise die Basis-Adresse der acht gerade benutzten Speicher-Segmente zusammen mit'deren Segment-Nummern speichert. Jedesmal, wenn ein Speicherabruf durchgeführt wird, erfolgt eine Überprüfung der Segment-Nummer gegenüber dem Inhalt des Assoziativ-Speichers, um festzustellen, ob die Basis-Adresse des Segments bereits entwiekelt und gespeichert worden ist. Wenn sich die Basis-Adresse im Assoziativ-Speicher 1319a befindet, wird diese Adresse in der absoluten Adreßentwicklung verwendet und ein beträchtlicher Zeitaufwand wird eingespart. Vienn sich die Basis-Adresse nicht im Assoziativspeicher 1319a befindet, wird sie durch Zugriff zu den Hauptspeicher-Tabellen entwickelt. Nach Entwicklung der Basis-Adresse des Segments wird diese jedoch im Assoziativ-Speicher zusammen mit. der Segment-Nummer als zukünftige Referenz gespeichert. .The address control unit AGU 1319 performs with the IFU, ALU, DMU and the CSU exchange information via the CIA by. The ACU 1319 is responsible for all address developments in the CPU. All ACU operations, including Transfers to, from and within the unit are controlled by the CSU micro-operation and logic in the unit, The normal functioning of the ACU depends on the address types in the commands and not the command types. Depending on the address type, the ACU can perform different operations for all Carry out addresses in the commands. The ACU still contains an associative memory 1319a, which is typically the base address of the eight memory segments currently in use together with their segment numbers. Every time when a memory recall is made, the segment number is checked against the content of the Associative memory to determine if the base address of the segment has already been developed and saved is. If the base address is in the associative memory 1319a is located, this address is used in the absolute address expansion and takes a considerable amount of time saved. The base address is not in the associative memory 1319a, it is accessed by accessing the main memory tables developed. However, after the segment's base address has been developed, it is stored in the associative memory along with. the segment number is saved for future reference. .

50983^/083050983 ^ / 0830

Die arithmetische und Logik-Einheit ALU 1317 ist über Interface-Funktionen mit dem ACU, IPU, DMU und der CSU verbunden. Ihre Hauptfunktion besteht in der Durchführung der von der CPU verlangten arithmetischen Operationen und Datenverarbeitungs-Ojjerationen. Die Operationen der arithmetischen Logik-Einheit sind vollständig von Mikrooperations-Steuersignalen abhängig, die von der Steuerspeicher-Einheit CSU 1301 geliefert werden.The arithmetic and logic unit ALU 1317 has interface functions connected to the ACU, IPU, DMU and the CSU. Their main function is to carry out the CPU required arithmetic operations and data processing operations. The operations of the arithmetic logic unit are entirely of micro-operation control signals which are supplied by the control storage unit CSU 1301.

Mit der ALU 1317 undder CSU 1301 ist die »Scratch Pad"-Speichereinheit LSU 1315 (die manchmal als örtliche Speichereinheit bezeichnet wird) verbunden. Sie besteht typischerweise aus einem Festkörperspeicher mit 256 Speicherplätzen (32 Bits pro Speicherplatz) und der Auswahl und Lese/Schreib-Logik für diesen Speicher. Der "Scratch Pad" - Speicher 1315 wird zur Speicherung von CPU-Steuer- und Wartungsinformationen verwendet. Zusätzlich beinhaltet der "Scratch-Pad" -Speicher 1315 Arbeitspositionen, die hauptsächlich zur zweitweiligen Speicherung von Operanden und Teilresultaten während Datenmanipulationen verwendet werden. Weiterhin ist mit der ALU 1317 ein Hilfsspeicher 1317a verbunden, der typischerweise aus 64 Flip-Flops zur Speicherung verschiedener Betriebszustände des Computer-Systems dienen.With the ALU 1317 and the CSU 1301, the "scratch pad" is a storage unit LSU 1315 (sometimes referred to as the local storage unit). It typically exists from a solid-state memory with 256 storage locations (32 bits per memory location) and the selection and read / write logic for this memory. The "Scratch Pad "memory 1315 is used to store CPU control and maintenance information. Additionally included the "scratch pad" memory 1315 working positions, which are mainly used for the temporary storage of operands and partial results are used during data manipulation. Furthermore, an auxiliary memory 1317a is connected to the ALU 1317, which are typically made up of 64 flip-flops for storing various operating states of the computer system.

Die CPU enthält außerdem eine Taktgeber-Einheit 1320, die hauptsächlich aus zwei Taktgeber-Systemen in einem besteht: das erste Taktgeber-System erzeugt das Timing für den Steuer-Interface-Adapter CIA 1302 und das zweite Taktgeber-System erzeugt die Timing-Impulse für die Operationen der funktioneilen Einheit innerhalb der zentralen Verarbeitungseinheit.The CPU also includes a clock unit 1320 which mainly consists of two clock systems in one: the first clock system generates the timing for the control interface adapter CIA 1302 and the second clock system generate the timing pulses for the operations of the functional Unit within the central processing unit.

In Fig.13c ist das Format .des Kontrollspeicher-Worts 1325 dargestellt. Das Kontrollspeicher-Wort umfaßt typischerweise 84 Bits und ist in sechs Hauptfelder unterteilt:In Figure 13c, the format of the control store word is 1325 shown. The control memory word is typically 84 bits and is divided into six main fields:

S09834/083QS09834 / 083Q

a. Sequenztyp-Feld 1325 (3 Bits);a. Sequence Type Field 1325 (3 bits);

b.Verzweigung und/oder MikroOperationen 1327 (23 Bits); c.Konstanten-Erzeugung und -Bezeichnung 1328 (14 Bits); d.Daten zum Bus 1329 (8 Bits);b. branch and / or micro-operations 1327 (23 bits); c. constants generation and designation 1328 (14 bits); d. data on bus 1329 (8 bits);

e.MikroOperationen 1330 (32 Bits); und a .e.MicroOperations 1330 (32 bits); and a.

f.Überprüfung 1331 (4 Bits).for check 1331 (4 bits).

Das 3-Bit· E-FeId des Kontrollspeioher-Wortes 1325 wird als Sequenz-Steuerfeld benutzt. Es gibt typischerweise 7 verschiedene Sequenztypen und einen für das vorliegende Computersystem reservierten Typ. Gemäß Block 1335 von Fig.19b wird das Verzweigungsfeld A, B, C, D und L des Mikrobefehls 1335 zur Erzeugung der nächsten Adresse verwendet, wenn das E-FeId gleich binär Null, 1, oder 2 ist. Die ersten 6 Bits des KS-Registers 1337 werden zusammen mit dem B-Feld benutzt; hieraus ergibt sich ein C-Test, die D-Testresultate und das L-FeId erzeugen die nächste Adresse des nächsten Mikrobefehls, der nun in das Adreß-Register KS 1337 übertragen wird. Wenn das E-FeId auf binär 4 (siehe Block 1335) positioniert ist, wird die nächste ausgewählte Adresse vom Unterbrechungs-Rückkehrregister KA 1339 abgegriffen. Die im ΚΑ-Register gespeicherte Adresse ist diejenige, die von der nächsten Adreßerzeugungs-Logik erzeugt wird, wenn die Hardware-Unterbrechung auftritt. Wenn das E« Feld auf binär 5 positioniert ist, wird eine Verzweigung zur Initialisierung einer Teilrückkehr von einer Mikroprogramm-Unterroutine benutzt. Der Inhalt des Rücklaufregisters KR 1346 wird, wenn dieser benutzt wird, als nächste Steuerspeicher-Adresse verwendet. Das Rücklaufregister 1346 wird durch Ausgabe eines Steuerspeicher-Befehls geladen, der dieim KS-Register 1337 plus 1 befindliche gegenwärtige Steuerspeicher-Adresse vom Inkrementor 1338 aus in das KR-Register 1346 ladet. Eine Uin-Pegel-Verschachtelungs -'Unterroutine ist über das KT-Rücklaufverzweigungs-Register 1347 verfügbar.The 3-bit · E field of the control memory word 1325 is used as a Sequence control field used. There are typically 7 different ones Sequence types and one for the present computer system reserved type. Referring to block 1335 of Figure 19b, the branch field becomes A, B, C, D and L of microinstruction 1335 used to generate the next address if the E field is binary zero, 1, or 2. The first 6 bits of the KS register 1337 are used in conjunction with the B field; this results in a C-test, the D-test results and the L field generate the next address of the next Microinstruction, which is now in the address register KS 1337 is transmitted. If the E field is positioned at binary 4 (see block 1335), the next selected address will be tapped from interrupt return register KA 1339. The address stored in the ΚΑ register is the one generated by the next address generation logic when the hardware interrupt occurs. If the E « Field is positioned at binary 5, a branch is made to initialize a partial return from a microprogram subroutine used. The contents of the return register KR 1346 will be next, if this is used Control store address used. The return register 1346 is loaded by issuing a control store instruction which is the current one in KS register 1337 plus 1 Control store address from incrementor 1338 into KR register 1346 loads. A Uin level nesting subroutine is via the KT return branch register 1347 available.

509834/0830509834/0830

Jedesmal, wenn das KR-Register 1346 geladen wird, wird der alte Inhalt des KR-Registers zum KT-Register 1347 übertragen; jedesmal, wenn ein Mikroprogramm-Rücklauf abgerufen wird, erfolgt eine Übertragung des Inhalts des KT-Registers zum KR-Register. Die Versehachtelungs-Unterroutinen-Einrichtung des drittenPegels wird vom KU-Register 1340 erzeugt; und dieVerschachtelungs-Unterroutinen-Einrichtung des vierten Pegels wird vom KV-Rücklauf-Verzweigungsregister 1349 erzeugt. Y/enn das E-FeId des Steuerspeicherwortes auf binär 6 positioniert istj ist das nächste adressierte Steuerspeicher-Wort gleich der gegenwärtigen, in KS-Register 1337 plus 1 im Inkrementor 1338 enthaltenen Adresse. Wenn das E-FeId auf binär 7 positioniert ist, geht die CSU 1301 in den Diagnostik-Modus über und die nächste Adresse ist die gegenwärtige Adresse plus 1.Every time the KR register 1346 is loaded, the old contents of the KR register transferred to KT register 1347; every time a microprogram return is called, the contents of the KT register are transferred to the KR register. The Nesting Subroutine Facility the third level is generated by KU register 1340; and the fourth level nesting subroutine means is generated from KV return branch register 1349. Y / if the E field of the control store word is positioned on binary 6 istj is the next addressed control store word equal to the current address contained in KS register 1337 plus 1 in incrementor 1338. If the e-field is positioned on binary 7, the CSU 1301 goes into diagnostic mode and the next address is that current address plus 1.

Zusätzlich zur Sequenzsteuerung der Verzweigung zur nächsten KontioLlspeicher-Adresse, die bereits vorstehend beschrieben und in Block 1335 dargestellt wurde, wird in Block 1336 von Fig.13b eine hardware-erzeugte Sequenzsteuerung durchgeführt. (Anmerkung: Die Blöcke 1335 und 1336 sind in Wirklichkeit Hardware-Register, die so konzipiert sind, daß sie die verschiedenen Formen, die Mikrobefehls-Worte annehmen können, erfassen können). Die hardware-erzeugten Verzweigungen sind Übersprungs-Bedingungen (wie Fehler, Initialize, Kontrollspeicher-Abtastung, etc....), die das E-FeId unterdrücken und eine fixierte Adresse in das Adreß-Register KS 1337 des Kontrollspeichers übertragen. Die Verzweigung erfolgt durch Setzen einer Interrupt-Leitung auf logisch 1 (nicht dargestellt) während einer Taktperiode und Speicherung der Adresse, die unter Steuerung durch das E-FeId erzeugt worden wäre, in das KA-Unterbrechungs-Rückleitregister 1339. In das Adreßregister des Steuerspeichers wird eine hardware-erzeugteIn addition to the sequence control of the branch to the next continuous memory address, which has already been described above and has been shown in block 1335, a hardware-generated sequence control is carried out in block 1336 of FIG. (Note: Blocks 1335 and 1336 are actually Hardware registers designed to take the various forms that microinstruction words take can, can capture). The hardware-generated branches are skip conditions (such as errors, initialize, control memory scanning, etc ....), which suppress the E field and a fixed address in the address register KS 1337 of the control memory. The branch is made by setting an interrupt line to logical 1 (not shown) during a clock period and storage of the address generated under the control of the E-Field would be, in the KA interrupt return register 1339. In the The control memory address register is a hardware-generated one

509834/0830509834/0830

Hies;=!-Hies; =! -

Adresse übertragen. Bestimmte hardware- und firmware-erzeugte Unterbrechungen nehmen Priorität an, wenn das Interrupt-Block-Flip-Flop (nicht dargestellt) zusätzliche Unterbrechungen in deren Klasse verhindert, bis die Unterbrechungs-Bedingung erfüllt ist. Eine Firmware-Mikrooperation ist für die Steuerung des Löschens des Interrupt-Block-Flip-eFlops für diejenigen Sequenzen vorhanden, die unter Firmware-Steuerung stehen. Diejenigen Sequenzen, die unter Hardware-Steuerung stehen, erzeugen automatisch ein Löschen des .Block-Flip-Flops am Ende der Sequenz. In dieser Kategorie sind, nach Prioritäten aufgelistet, die folgenden Bedingungen vorhanden: (a) Laden des Steuerspeichers; (b) Abtasten des Steuerspeichers; (c) Hardware-Fehler; (d) Software-Fehler. Die verbleibenden Hardware-Bedingungen setzen nicht das Interrupt-Block-Flip-Flop, bewirken jedoch bei ihrer Erzeugung das Auftreten einer unmittelbaren Aktion. In dieser Kategorie sind, nach Prioritäten aufgelistet, die folgenden Bedingungen vorhanden:Transfer address. Certain hardware and firmware generated Interrupts take priority when the interrupt block flip-flop (not shown) prevents additional interrupts in their class until the interrupt condition is satisfied. A firmware micro-operation is for the controller of clearing the interrupt block flip-eFlop for those Sequences available that are under firmware control. Generate those sequences that are under hardware control automatic deletion of the block flip-flop at the end the sequence. In this category, listed according to priorities, the following conditions exist: (a) load control memory; (b) scanning the control memory; (c) hardware failure; (d) software failure. The remaining Hardware conditions do not set the interrupt block flip-flop, however, cause immediate action to occur when they are generated. In this category are, according to Priorities listed, the following conditions exist:

(a) Initialisierung; -(a) initialization; -

(b) Soft-Clear;(b) soft clear;

(c) Eingabe Wartungspult;(c) Entry of maintenance desk;

(d) Eingabe Wartungskanal;
(e.) Hardware-Ausgabe.
(d) Enter maintenance channel;
(e.) Hardware issue.

Ein InitialisErungs-Signal zwingt die CSU 1301 zur Verzweigung auf die B^näradresse 0, zur Löschung von Fehlern, die durch Hardware rückstellbar sind und zur Durchführung einer Steuerspeicher-Ladeoperation, auf die eine hardwaregesteuerte oteuerspeicher-Abtastsequenz folgt. Das Initialisieirungs-Signal führt ebenfalls die System-Initialisierung durch. Ein Soft-Clear-Signal zwingt die CSU 1301 zur Verzweigung auf die Binäradresse 0, zum Löschen von'hardwaremässig rückstellbaren Fehlern und Rücksetzen des Interrupt-Block-Flip-Flops. Ein Wartungspult-Eingabesignal forciert die CSU zur Verzweigung zu der an den Adreßschaltern des Wartungspults nicht dargestellt) der CSU eingestellten Adresse. ~"An initialization signal forces the CSU 1301 to branch to binary address 0, to delete errors that can be reset by hardware and to carry out a Control store load operation followed by a hardware controlled control store scan sequence. The initialization signal also carries out the system initialization. A soft clear signal forces the CSU 1301 to branch to the binary address 0 to delete 'hardware resettable errors and resetting of the interrupt block flip-flop. A maintenance desk input signal is forced the CSU for branching to the CSU set (not shown on the address switches of the maintenance desk) Address. ~ "

509834/0830509834/0830

Ein Wartungskanal-Eingabesignal forciert die CSU zur Verzweigung auf eine Adresse, die über den (nicht abgebildeten) Wartungskanal erzeugt wird. Die Adresse wird vom Wartungs-Bus QMB 1344 aus geladen, der ein Teil des Wartungs-Kanals und rechtsbündig ist. Ein Hardware-Ausgabe signal veranlaßt die CSU zur Verzweigung auf die. Binäradresse 2. Diese Sequenz wird als ¥artungseinrichtung benutzt. Am Ende der Sequenz wird durch Ausgabe einer E-FeId^-Verzweigung mit dem auf binär 4 gesetzten E-FeId ein Rücklauf eingeleitet.A maintenance channel input signal forces the CSU to branch to an address that has the (not shown) Maintenance channel is generated. The address is loaded from the QMB 1344 maintenance bus, which is part of the of the maintenance channel and is right-aligned. A hardware output signal causes the CSU to branch to the. Binary address 2. This sequence is used as a communication facility used. At the end of the sequence, an E-Field ^ branch is output with the E-Field a return initiated.

Ein Steuerspeicher -Ladesignal forciert die CSU zur Verzweigung auf die Binäradresse 0. Es schaltet ebenfalls das CSU-Lesezyklus-Flip-Flop (nicht abgebildet ) und den System-Taktgeber 1320 ab und es positioniert die CSU in den Ladestatus. Im Ladestatus kann die CSU vom Steuerspeicher-Loader CSL 1303, der IOC 1305, dem Hauptspeicher 102 oder dem Wartungspult 1355 aus geladen v/erden. Beim Laden vom CSL aus, wird ein automatischer Abtastvorgang am Ende der Ladeoperation erzeugt. Wenn die Ladeoperation von irgendeinem anderen Medium aus erfolgt, kann ein Abtastvorgang entv/eder durch Erzeugung eines Mikrooperationssignals oder durch Einstellen des Abtastschalters am Wartungspult ausgelöst werden. Ein Steuerspeicher-Abtastsignal forciert die CSU zur Verzweigung auf eine Binäradresse 0. Ein Steuerspei eher- Abtastvorgang befindet sich für die Dauer der Sequenz unter Hardware-Steuerung. Während des Abtastvorgangs ist der System-Taktgeber 1320 abgeschaltet und daher werden keine Befehle oder Tests ausgeführt. Am Ende der Abtast-Sequenz überträgt die Hardware den Inhalt des Interrupt-Rückleitregisters KA zum Adreß-Register KS, der System-Taktgeber wird eingeschaltet und die Steuerung wird an die Firmware zurückgegeben.A control store load signal forces the CSU to branch to binary address 0. It also switches the CSU read cycle flip-flop (not shown) and the system clock 1320 and it positions the CSU in the loading state. In the loading status, the CSU can from the control store loader CSL 1303, IOC 1305, main memory 102 or maintenance desk 1355 are loaded from v / ground. At the Load from the CSL, an automatic scan is generated at the end of the load operation. When the load operation is done from some other medium, scanning can either be done by generating a micro-operation signal or by setting the sampling switch on the maintenance desk. Forced a control store scan signal the CSU for branching to a binary address 0. A control memory rather- scanning is in progress for the duration of the Sequence under hardware control. During the scan, the system clock 1320 is turned off and therefore no commands or tests are executed. At the end of the scan sequence, the hardware transfers the contents of the interrupt return register KA to the address register KS, the system clock is switched on and the control is sent to the Firmware returned.

509834/0830509834/0830

Ein Hardware-Fehlersignal lögst eine Verzweigung der CSU auf eine binäre Adresse 4 aus. Im normalen Verarbeitungsmodus aktiviert ein in einer beliebigen Funktionseinheit der CPU festgesteliter Hardware-Fehler eine Hardware-Fehlerleitung (nicht abgebildet). Die erzeugte Steuerspeicher-Sequenz überprüft den Systemzustand , um die durchzuführende Aktion zu bestimmen. Im Diagnostik-Modus sind Fehlerbedingungen, die durch Hardware festgestellt werden können, für die Mikrodiagnostik zugänglich. Die Mikrodiagnostik überwacht die durchzuführende Tätigkeit. Ein Software-Fehlersignal bewirkt andererseits eine Verzweigung des Steuerspeichers auf die Binäradresse 1. Diese Adresse ist der Startpunkt der Software-Fehlerberichtse^quenz, die unter Mikroprgramm-Steuerung steht.A hardware error signal triggers a branch in the CSU to a binary address 4. In normal processing mode, an activates the in any functional unit CPU detected hardware error a hardware error line (not illustrated). The generated control store sequence checks the system status in order to carry out the Determine action. In diagnostic mode, error conditions that can be detected by hardware are for the microdiagnostics accessible. The microdiagnostics monitor the activity to be carried out. A software error signal on the other hand, causes the control memory to branch to binary address 1. This address is the starting point of the software error reporting sequence that is under microprogram control.

In Fig.13c ist das E-FeId 1326 dargestellt: Ein 3-Bit-FeId, das wie bereits beschrieben, für den Verzweigungs-· Code verwendet wird. Das Verzweigungs- und/oder Mikrooperationsfeld 1327 besteht aus den Feldern A, B, C, D . und L (ebenfalls bei Block 1335 von Fig.13b dargestellt), von denen das A-FeId die sechs oberen Bits der nächsten Adresse enthält, das B-Feld die mittleren 4 Bits der nächsten Adresse des Maskierungsfeldes der 64-tfeg-Verzweigung, das C-FeId ist ein 6-Bit-Testfeld für einen von 64 Tests, das D-Feld ist ein weiteres 6-Bit-Testfeld für einen der 64 Tests und das L-FeId ist das niedrigstwertige Bit. Das K-FeId 1328 ist ein 14-Bit-Feld, von dem 6 Bits für das Konstantenfeld benutzt werden, 4 Bits werden für ein Konstänten- oder Steuerfeld benutzt und 4 Bits sind ein Steuerfeld für eine Konstante. Das Daten-zum-Bus-Feld 1329 besteht aus dem QA-FeId, das über 4 Bits zur Steuerung von Informationen des QA-Teils des QMB-Bus 1344 verfügt und das QB-FeId besitzt 4 Bits zur Steuerung von InformationenIn Fig. 13c the E field 1326 is shown: A 3-bit field, which, as already described, is used for the branching code. The branch and / or micro-operation field 1327 consists of the fields A, B, C, D. and L (also shown at block 1335 of Figure 13b), of which the A field contains the six upper bits of the next address, the B field the middle 4 bits of the next Address of the masking field of the 64-tfeg branch, the C-field is a 6-bit test field for one of 64 tests, the D-field is another 6-bit test field for one of the 64 tests and the L field is the least significant bit. The K field 1328 is a 14-bit field, 6 bits of which are for the constant field can be used, 4 bits are used for a constant or control field and 4 bits are used for a control field for a constant. The data-to-bus field 1329 exists from the QA field, which has 4 bits for controlling information from the QA part of the QMB bus 1344 and the QB-Field has 4 bits for controlling information

50983A/083G50983A / 083G

im QB-Teil des QMB-Bus 1344. Das F-FeId 1330 ist ein 32-Bit-Feld, das zur Erzeugung von Mikrooperations-Unterbefehlen codiert wird. Das P-FeId 1331 besteht aus vier, für Prüfzwecke reservierten Bits.in the QB part of the QMB bus 1344. The F field 1330 is a 32-bit field encoded to generate micro-operation sub-instructions. The P field 1331 consists of four, bits reserved for test purposes.

Während des Betriebs werden die Mikrobefehls-Worte in der Steuerspeicher-Matrix 1333 gespeichert. Während eines Funktionszyklus wird die Steuerspeicher-Matrix vom Inhalt des KS-Adreß-Registers 1337 adressiert. Dies bewirkt eine Übertragung des Inhalts der durch die Adresse spezifizierten Position in die Gruppe der Lese-Speicher schaltungen 1357. Teile des Wort-Inhalts der Lese-Speicherschaltungen werden verteilt oder zu Speicher-Registern übertragen, die sich innerhalb aller Funktionseinheiten der CPU befinden. Jgde Funktionseinheit beinhaltet Decodierungs-Logikschaltungen zur Erzeugung der erforderlichen Unterbefehle, die sram Steuerspeicher-Wort unter Steuerung durch den System-Taktgeber spezifiziert wurden. Allgemein erfolgt die Decodierung innerhalb jeder Funktions-Einheit der CPU und nicht zentral. Dies geschieht, um die Decodierungszeit auf ein Minimum herabzusetzen und die Anzahl der Kabel, die normalerweise zur Übertragung von Befehlssignalen erforderlich wären, wenn die Decodierung zentral durchgeführt würde, zu verringern. Zusätzlich· erfolgt die Decodierung innerhalb jeder Einheit, um Timing-Probleme zu verhindern, die sich aus den Unterschieden derKabelverzögerungen ergeben wurden. Weiterhin brauchen durch die Entschlüsselung von Unterbefehlen in jeder Einheit, diejenigen Signale, die bestimmte, innerhalb der Funktionseinheit bestehende Bedingungen darstellen und zur Erzeugung bestimmter Unterbefehls-Signale erforderlich sind, nicht zur CIA-Einheit 1302 zurückgeleitet v/erden.During operation, the microinstruction words are stored in the control store array 1333. While the control store matrix is addressed by the content of the KS address register 1337 during a function cycle. this causes the content of the position specified by the address to be transferred to the group of read memories circuits 1357. Parts of the word contents of the read memory circuits are distributed or transferred to memory registers located within all functional units of the CPU. Each functional unit includes Decoding logic to generate the required sub-commands, the sram control store word under Control specified by the system clock. Generally, the decoding occurs within each Functional unit of the CPU and not centrally. This is done in order to reduce the decoding time to a minimum and the number of cables that would normally be required to carry command signals when decoding would be carried out centrally to decrease. Additionally · the decoding is done within each unit to avoid timing problems which would result from the difference in cable delays. Continue to need through the Decryption of sub-commands in each unit, those signals that are specific, within the functional unit represent existing conditions and are required to generate certain sub-command signals, not to the CIA unit 1302 returned to ground.

509834/0830509834/0830

In Fig.13t) ist eine typische Decodier-Einheit 1359 dargestellt, die verschiedene Felder von Mirkobefehls-Worten aufnimmt und die Mikrooperations-Signale a, c, c, d, ...q , r erzeugt. Ein typischer Mikrooperations-Decoder 1359 empfängt Befehle von einem Mikrobe fehl s-iJort. Das Feld des Mikrobefehlswortes wird entschlüsselt und s,etzt eine der verschiedenen Leitungen s, t, u, ...y, ζ auf logisch 1. Durch eine impedanzmässige Kopplung vorbestimmter Steuerleitungen mit den Leitungen s bis ζ an den Punkten c^ß,γ ..ψ,ω wird eine Matrix gebildet. Wenn das Feld eines Mikrobefehls entschlüsselt wird, wird typischerweise eine der Leitungen s bis ζ auf logisch 1 gesetzt. Gemäß den in der Matrix mit den griechischen Buchstaben α bis ω gekennzeichneten schwarzen Punkten, welche die Impedanz-Kopplung zwischen zwei Leitungsgruppen darstellen, werden alle elektrischen Signale, die irgendeine der horizontalen Leitungen durchlaufen durchgekoppelt, um eine der vertikalen Leitungen a bis r zu durchlaufen, bei denen eine Impedanz-Kopplung (schwarzer Punkt) angezeigt ist. Jede der vertikalen Leitungen a bis r kann nun als ein Eingang einem der UND-Gatter 1360 bis 1365 zugeführt werden. Andere Eingangssignale können ebenfalls den UND-Gattern I36O bis 1365 unter Miteinbeziehung des Timing-Signals t_ an der zentralen Timing-Einheit zugeführt werden. Immer wenn ein Timing-Signal t_ logisch 1 wird, werden diejenigen Gatter, bei denen alle anderen Eingangs-Signale logisch 1 sind, freigegeben und erzeugen Mikrobefehls-Signale für festgelegte Funktionseinheiten innerhalb der CPIi-. Wenn zum Beispiel ein Befehl 1341 von einerLese-Speicherschaltung 1357 entschlüsselt wird und eine horizontale Leitung auf "1" ist, werden die vertikalen Steuerleitungen a, b, c und q logisch 1 gesetzt und die UND-Gatter 1360, 1361, 1362 und 1364 werden freigegeben, wenn das Timing-Signal t_ sequentiell diesen Gattern zugeführt wird. Die Kombination, in der die vertikalen SteuerleitungenIn Fig. 13t) a typical decoding unit 1359 is shown, which takes up various fields of microcommand words and generates the micro-operation signals a, c, c, d, ... q, r. A typical 1359 micro-operation decoder receives commands from a micro-iJort. The field of the microinstruction word is decrypted and s, sets one of the different lines s, t, u, ... y, ζ to logical 1. Through an impedance-related coupling of predetermined control lines with lines s to ζ at points c ^ ß, γ ..ψ, ω formed a matrix. When the field of a microinstruction is decrypted, one of the lines s set to logical 1 up to ζ. According to the black ones marked in the matrix with the Greek letters α to ω Points that represent the impedance coupling between two groups of lines are all electrical signals that any of the horizontal lines are coupled through to one of the vertical lines a through r in which an impedance coupling (black point) is indicated. Each of the vertical lines a to r can now be fed to one of the AND gates 1360 to 1365 as an input. Other input signals can also the AND gates I36O to 1365 with inclusion of the timing signal t_ at the central timing unit are fed. Whenever a timing signal t_ becomes logical 1, those gates for which all other input signals are logical 1, enabled and generate microinstruction signals for defined functional units within the CPIi-. For example, if a command 1341 is decrypted by a read memory circuit 1357 and a horizontal line is "1", the vertical Control lines a, b, c and q are set to logical 1 and AND gates 1360, 1361, 1362 and 1364 are enabled, when the timing signal t_ is sequentially fed to these gates. The combination in which the vertical control lines

509834/0830509834/0830

an verschiedenen, mit den griechischen Buchstaben abisojgekennzeichneten Punkten mit der horizontalen Steuerleitung gekoppelt sind, stellt nun eine permanente Schaltmatrix zur Erzeugung von Mikrooperations-Signalen für die zentrale Verarbeitungseinheit CPU dar, die damit die Funktionseinheiten innerhalb der zentralen Verarbeitungseinheit mit Hilfe der von der Steuerspeicher-Matrix 1333 gelieferten Mikrobefehle steuert; Daher kann eine permanente Firmware mit veränderbarer Struktur in die Maschine dieser Erfindung eingebaut werden, indem lediglich die Mikrooperations-Sequenz spezifiziert wird, die als Fähigkeit des Computer-Systems^ verfügbar sein soll.are coupled to the horizontal control line at different points marked with the Greek letters abisojgekzeichen, now represents a permanent switching matrix for the generation of micro-operation signals for the central processing unit CPU, which thus the functional units within the central processing unit with the help of the control memory matrix Controls microinstructions supplied in 1333 ; Therefore, permanent firmware with a changeable structure can be built into the machine of this invention by merely specifying the micro-operation sequence that is to be available as the capability of the computer system.

Unter normalen Bedingungen v/erden Daten über das CPU-Schreib-Datenregister, das ebenfalls als örtliches Register YO 1343 bekannt ist, in die Steuerspeicher-Matrix 1333 eingeschrieben. Von der Steuer- und Ladeeinheit CLU 1304 werden der CIR/CSU Daten über den Wartungs-Bus QMB 1344 zugeführt, die vom örtlichen Speicherregister YO 1343 zwischengespeichert werden, bevor sie in die Steuerspeicher-Matrix 1333 eingeschrieben werden. Das örtliche Speicherregister 1343 wird einen Betrieb im Zeitteilverfahren sowohl als örtliches Lese- wie auch als örtliches Schreibregister benutzt. Der Multiplexer KQM 1345 kann entweder vom Wartungspult 1355 oder durch die MikroDiagnostik gesteuert werden und erzeugt einen Lesepfad, von den an ihn angeschlossenen Registern aus. Ein Vergleichsregister KP 1350 steht für nichtfunktionelle Zwecke zur Verfügung und wird hauptsächlich für Wartungszwecke in Verbindung mit der Vergleichslogik 1352 und der Decodier-Logik 1351 verwendet.Under normal conditions, data is grounded via the CPU write data register, this is also known as the local register YO 1343 is known, written into the control store matrix 1333. The CIR / CSU Data is supplied via the maintenance bus QMB 1344, which is provided by the local Storage register YO 1343 are temporarily stored before they are written into the control store matrix 1333 will. The local storage register 1343 will allow time division operation as both a local read and a local write register used. The multiplexer KQM 1345 can either from the 1355 maintenance desk or through the micro diagnostics and generates a read path from the registers connected to it. A comparison register KP 1350 is available for non-functional purposes And is mainly used for maintenance purposes in connection with the comparison logic 1352 and the decoding logic 1351 used.

Zuteiler (Dispatcher)-Firmware zur Steuerung von ProzessenDispatcher firmware to control processes

Der Zuteiler (dispatcher) ist eine Firmware/Hardware-Einheit, deren Hauptaufgabe in der Verwaltung der verschiedenen Prozeß-The dispatcher is a firmware / hardware unit whose main task is to manage the various process

509834/0830509834/0830

Warteschlangen und der Umschaltung zwischen Prozessen besteht. Er führt die Vervollständigung der Prozeß-Warteschlangen, der Prozeß-Steuerblöcke PCB, des aktuellen Prozeß-Wortes in der System-Basis und der Register eines neuen Prozesses durch. Er überträgt weiterhin Meldungen zu Prozessen, die sich gegenwärtig an einem "Semaphor" im Warte-Status befinden (nach einer V-Operation, eine simulierte V-Operation für die IOC oder die Ausnahme-Verarbeitungs-Einheit). Der Dispatcher überträgt ferner eineMeldung zu einem "Semaphor" nach einer P-Operation, die eine Meldungsverkettung freigegeben hat, wenn ein Prozeß an einem freien"Verkettungs-"Semaphor" auf Übernahme von dessen Meldung wartet.Queues and switching between processes. It carries out the completion of the process queues, the process control blocks PCB, of the current process word in the system base and the register of a new process. It continues to broadcast messages about processes that are currently underway on a "semaphore" are in the waiting status (after a V operation, a simulated V operation for the IOC or the exception processing unit). The dispatcher also transmits a message to a "semaphore" after a P operation that has released a message chaining when a process has a free "chaining" semaphore Acceptance of its message is waiting.

Der Dispatcher ruft weiterhin die Eigenmodus-Befehlsfirmware ab, nachdem ein im Eigenmodus ablaufender Prozeß eingespeichert worden ist oder nachdem eine "Streit" -Situation aufgetreten ist, wenn der gegenwärtige Prozeß weiter im Eigenmodus abläuft. Der Dispatcher ruft auch für die folgenden Zwecke die Decor-Erweiterungs-Firmware ab:The dispatcher continues to obtain the self-mode command firmware after a self-mode process is saved has been or after a "dispute" situation has occurred when the current process is still in its own mode. The dispatcher also calls the Decor extension firmware for the following purposes away:

(a) ein kurzzeitiger Abruf während des Ausspeicherns eines in dieser Decor-Erweiterung ablaufenden Prozesses;(a) a short-term retrieval while a the process going on in this decor extension;

(b) ein kurzzeitiger Abruf während des Einspeicherns eines in dieser Decor-Erweiterung ablaufendenProzesses;(b) a short-term retrieval while a the process going on in this decor extension;

(c) ein endgültiger Abruf am Ende der Einspeicherung eines in dieser Decor-Erweiterung ablaufenden Prozesses und(c) a final retrieval at the end of the saving of a process running in this decor extension and

(d) ein endgültiger Abruf nach einer "Streif-Situation, wenn der gegenwärtige Prozeß weiter in dieser Decor-Erweiterung abläuft. .(d) a final poll for a "streak" situation if the current process continues in that decor extension expires. .

509834/0830509834/0830

Weiterhin versetzt der Dispatcher das System in eine Leerlaufschleife, wenn kein Prozeß abläuft.Furthermore, the dispatcher puts the system in an idle loop, when no process is in progress.

Ein Eintreten in den Dispatcher oder ein Verlassen des Dispatchers ist auf verschiedene Weise möglich:Entering or exiting the dispatcher is possible in different ways:

(1) Die Initialisierungs-Prozedur (SIP) bewirkt ein Eintreten als letzen Schritt.(1) The initialization procedure (SIP) causes an entry as the last step.

(2) Der Start- und Unterbrechungs-Befehl bewirkt das Eintreten in den Dispatcher. Der Start-Befehl löst einen Prozeß aus, und der Unterbrechungs-Befehl beendet diesen.(2) The start and interrupt command causes the dispatcher to be entered. The start command triggers a process off, and the interrupt command terminates it.

(3) Die P- und V-Operationen bewirken ein Eintreten in den Dispatcher. Die P-Operation greift eine Meldung von einem "Semaphor" ab und wenn keine Meldung vorhanden ist, geht der Prozeß in denVferte-Status über.(3) The P and V operations cause the dispatcher to be entered. The P operation picks up a message from a "semaphore" and if there is no message is, the process goes into the Fete status.

Kurz, der Dispatcher ist der Hauptmechanismus zur Verwaltung von Prozessen und demzufolge entscheiden die Prozeß-Steuerblöcke PCB, welcher Prozeß durchzuführen ist, und sie bewirken die entsprechende Aktion, wie z.B. das Ausspeichern eines gerade ablaufenden Prozesses ( d.h. alle Informationen, die sich auf den gerade ablaufenden Prozeß beziehen und sich in den Hardware-Registern, dem "Scratch-Pad" - Speicher, etc. befinden, werden in den PCB geschrieben) und das Einspeichern eines neuen Prozesses (d.h. alle zur Durchführung des neuenProzesses erforderlichen Informationen werden vom PCB zu den verschiedenen Hardware-Registern, dem nScratch-Pad"-Speicher etc. übertragen).In short, the dispatcher is the main mechanism for managing processes and consequently the process control blocks PCB decide which process is to be carried out and they effect the appropriate action, such as saving a currently running process (i.e. all information relating to the currently running process current process and are located in the hardware registers, the "scratch pad" memory, etc., are written to the PCB) and the storage of a new process (ie all information required to carry out the new process is transferred from the PCB to the various hardware registers, the n scratch pad memory, etc.).

Die vom Dispatcher durchgeführten Funktionen sind in den Flußdiagrammen der Fig.i4a bis I4i dargestellt. Zum Beispiel stellt Block 1402 von Fig.i4a die Funktion des Dispatchers dar, bei der die Steuerspeicher-Einheit ein Mikroprogramm-The functions performed by the dispatcher are shown in the flow charts in FIGS. For example Block 1402 of Fig. 14a provides the function of the dispatcher in which the control storage unit is a microprogram

509834/08'30509834 / 08'30

- 63- ;- 63-;

Wort erzeugt und durch die Entschlüsselung mit Hilfe des Decoders 1359 die zu benutzenden Teile der CPU über eine entsprechende Serie von Mikrooperations-Signalen 1360, I36I usw. steuert, um den IPQW in der System-Basis des Speicher-Untersystems 102 zu lokalisieren und ihn in den "Scratch-Pad"-Speicher 1315 zu übertragen. Gleichzeitig ruft der Dispatcher (14O4) den GO-Segment-Descriptor (siehe Fig.12) aus der G-Tabelle ab, auf den das G-Tabellenwort GTV/ in der System-Basis hinweist. Die Bits 16 bis 31 des IPQW-Wortes enthalten eine positive ganze 16-Bit-Zahl, welche die Verschiebung der G-Segmentnummer 0, die als GO-Segment betrachtet wird, von der Basis zum "Kopf" (erstes Byte) der Q/PR/RDY-Warteschlange von Bereit-Prozessen darstellt. Wenn die Bits 1.6 bis 31 des IPQW-Wortes 0 sind, wird die Warteschlange 1403 als leer betrachtet. Wenn die Bereit-Warteschlange leer ist, bedeutet dies, daß in Q/PR/RDY gegenwärtig keinProzeß im Warte-Status ist und die Bereit-Warteschlange leer ist. Word is generated and, through the decryption with the aid of the decoder 1359, controls the parts of the CPU to be used via a corresponding series of micro-operation signals 1360, I36I, etc. in order to locate the IPQW in the system base of the memory subsystem 102 and store it in the "scratch pad" memory 1315 to transfer. At the same time, the dispatcher (1404) calls up the GO segment descriptor (see Fig. 12) from the G table, to which the G table word GTV / in the system base refers. Bits 16 to 31 of the IPQW word contain a positive whole 16-bit number, which indicates the shift of the G segment number 0, which is regarded as a GO segment, from the base to the "head" (first byte) of the Q / Represents PR / RDY queue of ready processes. If bits 1.6 through 31 of the IPQW word are 0, then queue 1403 is considered empty. If the ready queue is empty, it means that there is currently no process waiting in Q / PR / RDY and the ready queue is empty.

Die nächste im Entscheidungsblock 1405 zu entscheidende Frage ist ob gegenwärtig ein Prozeß in der Maschine abläuft oder nicht. Dies erfolgt durch Überprüfung, ob der Leerindikator gesetzt ist oder nicht. Wenn der Leer-Indikator gesetzt ist (d.h., gegenwärtig läuft kein Prozeß ab), geht die Maschine in den Leerlaufstatus 14O6 über, da vorher festgestellt worden war, daß kein Prozeß in der Bereit-Warteschlange auf die Benutzung des Prozessors wartete. Wenn zu diesem Zeitpunkt jedoch ein Prozeß in der Maschine abläuft, jedoch kein anderer Prozeß auf die Benutzung der Maschine wartet, greift der gerade ablaufende Prozeß seinen nächsten Befehl. 1407 ab.The next to be decided in decision block 1405 The question is whether a process is currently running in the machine or not. This is done by checking whether the blank indicator is set or not. If the empty indicator is set (i.e., no process is currently in progress), go the machine into the idle status 14O6, since before it had been determined that no process in the ready queue was waiting to use the processor. if at this point, however, a process is running in the machine, but no other process is in use the machine is waiting, the process currently running takes effect his next command. 1407 from.

Es sei nun wieder auf den Entscheidungsblock 1403 des Flußdiagramms von Fig.14a Bezug genommen; wenn in der Hinweiszone desIPQW-Wortes (d.h. Bits 16-31) eineReferring again to decision block 1403 of the flow chart of Figure 14a; if in the Notice zone of the IPQW word (i.e. bits 16-31) one

509834/0830509834/0830

positive ganze Zahl enthalten ist, dann wird der Kopfteil der Bereit-Warteschlange, auf den das IPQW-Wort im GO-Segment hinweist, in den"Scratch-Pad"-Speicher abgerufen. ( Um Wiederholungen und Unklarheiten zu veimeiden, werden die mit der Steuereinheit und der CPU verbundenen Zwischenfunktionen des Dispatchers ausgelassen; es versteht sich jedoch von selbst, daß Zwischenfunktionen, wie z.B, die bereits beschriebenen Funktionen typischerweise vorhanden sind). Bis zu diesem Punkt ist festgestellt worden, daß sich in der Bereit-Warteschlange ein Prozeß im Warte-Status befindet. Vor der Durchführung weiterer Aktionen muß festgestellt werden, ob gegenwärtig in der Zentraleinheit ein Prozeß abläuft. Diese Feststellung wird im Entscheidungsblock 1410 des Flußdiagramms getroffen, und wenn gerade kein Prozeß in der Zentraleinheit abläuft, (d..h. kein CJP) wird der Kopfteil der Bereit-Warteschlange verarbeitet (1412). Wenn jedoch in der Zentraleinheit ein Prozeß abläuft, muß der Dispatcher feststellen, welcher Prozeß Priorität besitzt, der gerade ablaufende Prozeß oder der Kopfteil der Bereit-Warteschlange. Demzufolge wird das sich im laufenden Prozeß-Wort der System-Basis PCB 400 befindliche Prioritäts-Byte des laufenden Prozesses (CJP) abgerufen (1413). Nun wird eine Entscheidung getroffen (1414), ob der gerade ablaufende Prozeß CJP eine niedrigere Priorität als der neue, im Kopfteil der Bereit-Warteschlange wartende Prozeß NJP besitzt oder nicht. (Siehe Entscheidungs-Block 1414). Wenn CJP keine niedrigere Priorität alsNJP besitzt, behält CJP die Kontrolle über die Zentraleinheit und der "Streif-Indikator 1415 wird gelöscht. (Der "Streif-Indikator ist immer auf Null, ausgenommen wenn ein oder mehrere neue Prozesse in die Bereit-Warteschlange eingereiht worden sind, da der Anfang des letzten-für CJP ausgeführten Befehls eineKonflikb-Möglichkeit schafft; unter diesen Bedingungen wird der "Streif-Indikator auf binär 1 positioniert). Bevor dem laufenden Prozeß CJP diepositive integer is included, then the header the ready queue to which the IPQW word in the GO segment indicates, retrieved into the "scratch pad" memory. (To avoid repetition and ambiguity, the intermediate functions of the dispatcher connected to the control unit and the CPU are omitted; it understands however, it goes without saying that intermediate functions, such as the functions already described, typically exist are). Up to this point it has been determined that there is a process waiting in the ready queue is located. Before carrying out any further actions, it must be determined whether there is currently a process in the central processing unit expires. This determination is made in decision block 1410 of the flowchart, if not a process is running in the central processing unit (i.e. not a CJP) the header of the ready queue is processed (1412). if However, a process is running in the central unit, the dispatcher must determine which process has priority, which process is currently running, or the header of the ready queue. As a result, the priority byte located in the current process word of the system base PCB 400 becomes of the running process (CJP) retrieved (1413). A decision is now made (1414) whether the just running process CJP has a lower priority than the new process waiting in the header of the ready queue NJP owns or doesn't. (See decision block 1414). If CJP has no lower priority than NJP, keep CJP takes control of the central unit and the "streak indicator 1415 is deleted. (The" streak indicator is always zero, except when one or more new processes are added to the ready queue have been since the beginning of the last-for CJP the executed command creates a conflict possibility; under these conditions the "streak" indicator is positioned on binary 1. Before the current process CJP die

509834/0830509834/0830

Fortsetzung und die Durchführung weiterer Befehle gestattet wird, wird festgestellt, ob CJP im Decor-Erweiterungsmodus 1415 abläuft oder nicht. Wenn CJP im Decor-Erweiterungsmodus abläuft, wird der nächste Befehl im Emulations-Modus (d.h. Decor-Erweiterung) ausgeführt und wenn CJP nicht im Decor-Erweiterungsmodus abläuft-, wird der nächste Befehl im Eigen-Modus ausgeführt. Wenn im Entscheidungs-Block 1414 NJP im Kopfteil der Bereit-Warteschlange eine höhere Priorität als CJP besitzt( d.h. seine Prioritätsnummer ist niedriger als die von CJP) wird der gegenwärtig ablaufende Prozeß CJP aus der Maschine ausgespeichert und der neue Prozeß NJP wird in die Maschine eingespeichert. Dementsprechend steuert eine Firmware-Prioritäts-Unterroutine PRIQ 1418 die Einreihung des laufenden Prozesses CJP in die Bereit-Warteschlange mit Hilfe der Priorität LIFO und der Prioritätsnummer durch ein erstes Ausspeichern des CJP unter Steuerung durch die Firmware-Unterroutine RLLO 1419. Die RLLO-Unterroutine steuert die Rückübertragung der Informationen des CJP, die in den allgemeinen Registern, den Basis-Registern, den wissenschaftlichen Registern, den T-Registern, den Status-Registern und im Befehls-Zähler gespeichert sind, zu den entsprechenden Speicherzonen des Verfahrens-Steuerblocks PCB im Hauptspeicher. RLLO steuert v/eiterhin die Aktualisierung von RUA.Zusätzlich wird die DEXT-Nummer des Prozeß-Hauptwortes 0 (PMWO) im PCB 400 aktualisiert (1420).Continuation and execution of further commands permitted a determination is made as to whether or not CJP is running in Decor expand mode 1415. When CJP is in Decor expand mode expires, the next command is executed in emulation mode (i.e. decor extension) and if CJP is not in decor extension mode expires-, the next command will be in Eigen mode executed. In decision block 1414, if NJP has a higher priority at the head of the ready queue than CJP (i.e., its priority number is lower than that of CJP) becomes the currently running process CJP is stored out of the machine and the new process NJP is stored in the machine. Accordingly controls a firmware priority subroutine PRIQ 1418 the inclusion of the current process CJP in the ready queue with the aid of the priority LIFO and the priority number by first saving the CJP under control through the firmware subroutine RLLO 1419. The RLLO subroutine controls the retransmission of the information from the CJP that is stored in the general registers, the basic registers, the scientific registers, the T-registers, the status registers and the command counter are stored to the corresponding memory areas of the process control block PCB in the main memory. RLLO still controls the update from RUA. In addition, the DEXT number of the process noun 0 (PMWO) in PCB 400 is updated (1420).

Der neue Prozeß NJP kann nun eingespeichert werden. Das Grenzadreß-Register BAR wird erfaßt (i422)und das laufende Prözeßwort wird aus der Adresse BAR plus 56 der System-Basis abgegriffen. Siehe Block 1423. Als nächstes wird die Bezeichnung des neuen Prozesses NJP in das laufende Prozeßwort RPW geschrieben, und da die Bezeichnung des neuen Prozesses NJP in die Prozeßverkettung PL von Q/PR/RDY eingeschrieben worden war, wird die Bezeichnung aus der ProzeßverkettungPL nun nach RPW übertragen (Block 1424).The new process NJP can now be saved. The border address register BAR is captured (i422) and the current process word is derived from address BAR plus 56 of the system base tapped. See block 1423. Next, the name of the new process is NJP in the current process word RPW written, and since the name of the new process NJP is written into the process link PL of Q / PR / RDY the designation from the process link PL is now transferred to RPW (block 1424).

509834/Ö83G509834 / Ö83G

Daher wird der NJP aus der Bereit-Warteschlange nun CJP, und er kann nun die Zentraleinheit steuern. Er wartet daher nicht mehr in der Q/PR/RDY; er muß durch Ablesen seiner Bezeichnung aus der Prozeßverkettung PL von Q/PR/RDY (Block 1425) aus der Warteschlange gelöst werden. Wenn dies durchgeführt ist, wird die Warteschlange der Bereit-Prozesse Q/PR/RDY von der Firmware-Unterroutine UQLK, 1425a, aktualisiert. Dementsprechend wird die JP-Nummer des gerade aus der Maschine ausgespeicherten Prozesses in eine Prozeßverkettung von Q/PR/RDY übertragen, da der Prozeß jetzt keine Kontrolle mehr über die Maschine besitzt und auf die Maschine warten muß (1426). Zu diesem Zeitpunkt sind der Vorgang der Übergabe dieser Stauerurg an den neuen Prozeß und die Einreihung des alten Prozesses in eine Bereit-Warteschlange abgeschlossen; da ein Prozeß (der neue CJP) die Zentraleinheit steuert, wird der Leer-Indikator auf 0 positioniert (1427)? wenn jedoch kein CJP die Kontrolle über die Zentraleinheit hat, wird der Leer-Indikator auf 1 positioniert. Zu diesem Zeitpunkt ist die Zuweisung des Prozessors abgeschlossen und ein neuer Prozeß befindet sich in der Zentraleinheit, wogegen der alte Prozeß in der Bereit-Warteschlange untergebracht worden ist; der neue Prozeß kann jedoch noch nicht ablaufen, da der Hardware der zentralen Verarbeitungseinheit 1306 von Fig.13a, wie z.B. den allgemeinen Registern Therefore, the NJP is now CJP from the ready queue and can now control the central unit. Expected therefore no longer in the Q / PR / RDY; he must by reading his designation from the process chain PL of Q / PR / RDY (block 1425) can be dequeued. When this is done, the queue becomes of the ready processes Q / PR / RDY updated from firmware subroutine UQLK, 1425a. Accordingly becomes the JP number of the process just saved from the machine in a process chain of Q / PR / RDY because the process no longer has control of the machine and has to wait for the machine (1426). At this point, the process of handing over these stevedores to the new process and the placement of the old one is on Process completed in a ready queue; since a process (the new CJP) controls the central unit, is the empty indicator positioned on 0 (1427)? however, if no CJP is in control of the central processing unit, the empty indicator is positioned at 1. To this At this point, the assignment of the processor is complete and a new process is located in the central unit, whereas the old process has been placed in the ready queue; however, the new process can still not expire because of the hardware of the central processing unit 1306 of Figure 13a, such as the general registers

1307, den Basis-Registern, 1308, den wissenschaftlichen Registern 1309, dem T-Register 1310, den Status-Registern 1311und dem Befehlszähler 1312 Steuerinformationen von Prozeß-Steuerungsblöcken des neuen Prozeßes zugeführt werden müssen. Dementsprechend steuert die Firmware-Unterroutine 1430 die CPU und überträgt zuerst PMW 3 vom PCB (Fig.4) zum "Scratch Pad"-Speicher 1315 und danach PMW 0. Das MBZ-FeId von PIW 0 wird überprüft (1433) und wenn es nicht binär ist, tritt eine Ausnahme "illegaler PCB" auf. Wenn das MBZ-FeId von PMW 0 jedoch Null ist, wird PMW 1 abgegriffen (1434). Wieder wird das MBZ-FeId von PMW 1 geprüft, um1307, the basic registers, 1308, the scientific registers 1309, the T register 1310, the status registers 1311 and the instruction counter 1312 is supplied with control information from process control blocks of the new process have to. Accordingly, the firmware subroutine 1430 controls the CPU and first transfers PMW 3 from the PCB (Fig. 4) to the "Scratch Pad" memory 1315 and then PMW 0. The MBZ field PIW 0 is checked (1433) and if it is not binary is, an "illegal PCB" exception occurs. However, if the MBZ field of PMW 0 is zero, PMW 1 is tapped (1434). The MBZ field is checked again by PMW 1 in order to

509834/0830509834/0830

-.67--.67-

• 245653A• 245653A

festzustellen, ob es binär 0 ist oder nicht. Wenn dieses Feld nicht binär 0 ist, tritt eine Ausnahme "illegaler PCB" aufj wenn es dagegen 0 ist, geht der Dispatcher zu C über.determine whether it is binary 0 or not. If this If the field is not binary 0, an "illegal PCB" exception occurs; if, on the other hand, it is 0, the dispatcher goes to C above.

Dementsprechend wird das AdreßraumWort 0 ASW 0 aus dem entsprechenden PCB-FeId abgegriffen und die Größe des Segment-Tabellenwortes SWSZ wird geprüft (1437), um festzustellen, ob es kleiner als 7 ist oder nicht. Wenn es kleiner als 7 ist, tritt ein "illegaler PCB" auf, wenn es gleich oder kleiner als 7 ,ist, wird ASW 1 aus dem PCB abgegriffen (Block 1438) und sein SWSZ-FeId wird geprüft (1439), um festzustellen, ob es gleich oder kleiner als 8 ist oder nicht. Wenn sein Feld größer als 8 ist, tritt ein. »illegaler PCB" auf; wenn sein STWSZ-FeId jedoch gleich oder kleiner als 8 ist, wird das Ausnahmewort EXW abgegriffen (1440) und sein IiBZ-FeId wird geprüft, um festzustellen, ob es gleich 0 ist oder nicht. Wenn sein MBZ-FeId nicht gleich 0 ist tritt ein "illegaler PCB" auf, wenn sein Feld jedoch gleich 0 ist, wird das Stapel-Wort SKW . abgegriffen (1442) und sein MBZ-FeId wird geprüft (1443), um festzustellen, ob es gleich 0 ist oder nicht. Wenn das MBZ-FeId nicht gleich Oist, tritt ein "illegaler PCB" auf; wenn es dagegen gleich 0 ist, wird das Befehlszähler-Wort ICW vom PCB aus in den Befehlszähler IC übertragen und sein TAG-FeId wird geprüft, um festzustellen, ob es gleich 0 ist oder nicht (1445). Wenn dasCorrespondingly, the address space word 0 ASW 0 is derived from the corresponding PCB field and the size of the segment table word SWSZ is checked (1437) to determine whether it is less than 7 or not. If it is less than 7 is, an "illegal PCB" occurs, if it is equal to or less than 7, ASW 1 is tapped from the PCB (Block 1438) and its SWSZ field is checked (1439), to see if it is equal to or less than 8 or not. If its field is greater than 8, occurs. »Illegal PCB"; however, if his STWSZ field is the same or is less than 8, the exception word EXW is tapped (1440) and its IiBZ field is checked to determine whether it is equal to 0 or not. If his MBZ field is not 0, an "illegal PCB" occurs, but if its field is 0, the stack word becomes SKW. tapped (1442) and its MBZ field is checked (1443) to determine whether it is equal to 0 or not. if the MBZ field is not the same as an "illegal" one PCB "; on the other hand, if it is 0, the instruction counter word ICW is transferred from the PCB to the command counter IC and its TAG field is checked to determine whether it is equal to 0 or not (1445). If that

TAG-FeId nicht gleich 0 ist, tritt ein"illegaler PCB" auf. Wenn das TAG-FeId dagegen gleich 0 ist, wird das MBZ-Wort abgegriffen (1446) und sein MBZ-FeId (Bits 0 bis 31) wird geprüft, um festzustellen, ob es gleich 0 ist oder nicht (1447). Wenn es nicht gleich 0 ist, tritt ein "illegaler PCB" auf; Venn es dagegen gleich 0 ist, werden die Stapel-TAG field is not 0, an "illegal PCB" occurs. If, on the other hand, the TAG field is equal to 0, the MBZ word is tapped (1446) and its MBZ field (bits 0 to 31) are checked to see if it is equal to 0 or not (1447). If it is not 0, an "illegal PCB" occurs; On the other hand, if it is equal to 0, the stacking

509834/0830509834/0830

Basisworte 0, 1 und 2 SBW 0, 1 und 2 abgegriffen (1148). Der Inhalt der acht Basisregister in der Zwischenspeicherzone der Basisregister des PCB wird daraufhin abgegriffen (1449) und in den Basisregistern der Maschine 1308 gespeichert. Daraufhin wird der Inhalt der 16 allgemeinen Register aus der Zwischenspeicherzone der allgemeinen Register des PCB abgegriffen (1450) und in den allgemeinen Registern der Maschine 1307 gespeichert. Vor dem Abgreifen des Inhalts der wissenschaftlichen Register wird jedoch mit Hilfe des Fähigkeits-Bytes eines ProzeßHauptwqrts 0 (PMW 0) eine Überprüfung durchgeführt,um festzustellen, ob der wissenschaftliche Modus verwendet werden soll oder nicht (1451). Wenn der wissenschaftliche Modus verwendet werden soll, wird der Inhalt der wissenschaftlichen Register aus der Speicherzone des PCB abgegriffen und gespeichert (1452). Die Firmware führt nun eine Überprüfung des Fähigkeits-Bytes vonPMW 0 durch, um festzustellen, ob der Aufrechnungs-Modus verwendet werden soll (1453) oder nicht. Wenn der Aufrechnungs-Modus verwendet werden soll (d.h. wenn das Aufrechnungs-Bit des Fähigkeits-Bytes auf binär 1 ist), sind die Aμfrechnungsworte im PCB vorhanden und das Bereitzeit-Aufrechnungswort RTA wird aktualisiert. Nun überprüft die Firmware, ob die DEXT-Nummer auf 0 ist (1454) oder nicht. Wenn diese Nummer nicht 0 ist, kennzeichnet dies, daß sich die Maschine im Emulatirms-Modus befinden kann (d.h. die Decor-Erweiterungseinrichtung wird benutzt), und dementsprechend wird die DEXT-Nummer von PMW 0 geprüft (1454) , um festzustellen, ob es größer oder kleiner als das DETSZ-FeId des Prozeß-Hauptwortes 3 ist oder nicht; wenn es größer als das DETSZ-FeId ist, tritt eine illegale PCB-Ausnahme 1456 auf, da die DEXT-Nummer kleiner als das DETSZ-FeId, jedoch nicht gleich 0 ist und sich die Maschine in einem legalen Emulations-Modus befindet und zu F übergeht. Wenn beim Entscheidungs-Block 1454 das DEXT Feld binär 0 ist, wird der Eigen-Modus durchgeführt, und dieBase words 0, 1 and 2 SBW 0, 1 and 2 tapped (1148). The contents of the eight base registers in the staging area the base register of the PCB is then tapped (1449) and stored in the base registers of the machine 1308. The contents of the 16 general registers are then removed from the general register buffer area of the PCB tapped (1450) and stored in the general registers of machine 1307. Before tapping the content the scientific register is however using of the capability byte of a process main word 0 (PMW 0) A review is done to see if the scientific Mode to be used or not (1451). If scientific mode is to be used, the contents of the scientific registers are tapped from the memory area of the PCB and stored (1452). The firmware will now check the capability byte of PMW 0 to see if the netting mode should be used (1453) or not. When the set-off mode is to be used (i.e. if the offset bit of the capability byte is binary 1), the offset words are present in the PCB and the ready time offset word RTA is updated. Now the firmware checks whether the DEXT number is 0 (1454) or not. If this number is not 0 this indicates that the machine can be in Emulatirms mode (i.e. the Decor extender is used), and accordingly the DEXT number of PMW 0 is checked (1454) to see if it is greater or is smaller than the DETSZ field of the process noun 3 or not; if it is larger than the DETSZ field, kick raises an illegal PCB exception 1456 because the DEXT number is smaller than the DETSZ field but not equal to 0 and the machine is in a legal emulation mode and goes to F. If at decision block 1454 the DEXT Field is binary 0, the Eigen mode is carried out and the

SQ9834/0830SQ9834 / 0830

Maschine greift die STW's ab (1457). Das Restlaufzeit-Wort RTO von PCB wird abgegriffen (1458) und der Prozeß-Zeitgeber wird mit der Maximalzeit geladen, die das CPJ im Funktions-Status verbringen kann.Machine picks up the STWs (1457). The remaining term word RTO from PCB is tapped (1458) and the process timer is loaded with the maximum time that the CPJ can spend in functional status.

Bis zu diesem Zeitpunkt wurde entweder (a) ein neuer Prozeß NJP eilgespeichert, um die Steuerung der CPU zu übernehmen, wenn sich ein alter Prozeß CJP in da?Maschine befand und der neue Prozeß NJP eine höhere Priorität als der alte Prozeß CJP besaß oder (b) kein CJP war vorhanden, der die CPU steuert, wobei dann der "Kopf" der Bereitschlange verarbeitet wurde. Kurz, unter Bedingung (a) wurde CJP aus dem RPW herausgenommen und in die Prozeß-Verkettung PL von Q/PR/RDY eingegliedert ,und der in einer Prozeß-Verkettung PL von Q/PR/RDY befindliche NJP wurde zu RPW übertragen; auf diese Weise erfolgte eine tatsächliche Positions-Umschaltung der beiden Prozesse, wobei die Steuerung dem NJP übergeben wurde, der nun zum CJP wurde, während dem alten CJP die Steuerung abgenommen wurde. Nun wurde eine Zugriffsoperation zum PCB des NJP durchgeführt, und die zum Betrieb von NJP (jetzt CJP) erforderlichen Informationen wurden im "Scratch Pad"-Speicher oder in der Register-Matrix der ACU gespeichert.Up to this point, either (a) has been a new process NJP saved to take control of the CPU if there was an old CJP process in the machine and the new process NJP had a higher priority than the old process CJP, or (b) no CJP existed that supported the CPU controls, and then the "head" of the ready queue has been processed. In short, under condition (a), the CJP became the RPW removed and incorporated into the process chain PL of Q / PR / RDY, and that in a process chain PL NJP located by Q / PR / RDY was transferred to RPW; in this way, the actual position of the both processes, with control being given to the NJP, which has now become the CJP, while the old CJP has control has been removed. An access operation to the PCB of the NJP has now been carried out, and that to operate the NJP (now CJP) required information was stored in the "scratch pad" memory or in the register matrix of the ACU.

Wenn kein CJP die Kontrolle über die CPU hatte (Bedingung (b)), wurde der "Kopf" der Bereit-Warteschlange verarbeitet, d.h. NJP wurde zu CJP, da der Dispatcher den Prozeß NJP aus der Prozeß-Verkettung PL des "Kopfes" der Bereit-Warteschlange abrief und ihn in das RPW-Wort übertrug. Durch diese Operation blieb eine Prozeß-Verkettung PL von Q/PR/RDY leer und mußte herausgezogen werden.If no CJP had control of the CPU (condition (b)), the "head" of the ready queue was processed, i.e. NJP became CJP because the dispatcher removed the process NJP from the process chain PL of the "head" of the ready queue and translated it into the RPW word. This operation left a process chain PL of Q / PR / RDY empty and had to be pulled out.

Beginnend mit dem Entscheidungsblock 1461 überprüft die Firmware nun, ob ein CJP die Kontrolle über die CPU hatte oder nicht und wenn eine freie Prozeß-Verkettung (FPLS) vorhanden war, wurde eine Zugriffsoperation auf sieBeginning with decision block 1461, check the Firmware now, whether a CJP had control over the CPU or not and if a free process chain (FPLS) was in place, an access operation was performed on it

$09834/0830$ 09834/0830

durchgeführt, und sie wurde eingereiht, worauf das Einschreiben eines CJP erfolgte. Wenn kein CJP die Kontrolle über die CPU hatte, wird das Status-Byte von PMW 0 des NJP aktualisiert (1460) und nochmals wird geprüft, ob sich ein CJP in der Maschine befand oder nicht (1463). Wenn kein CJP die Kontrolle über den Prozessor hatte, wird die Prozeß-Verkettung des NJP (der sich in Q/PR/RDY befand und nun die Kontrolle über die Maschine hat) aus Q/PR/RDY herausgezogen (1466) (d.h. von Q/PR/RDY getrennt) und wird zu einem freien Prozeß-Verkettungs-"Semaphor" FLSP und wird nun mit der freien Prozeß"Verkettungs-Warteschlange (Semaphor PLS) verkettet ' (805 in Fig.9) und wird zu einem Teil der freien Prozeß-Verkettungs-Warteschlange (i466a). Der Inhalt des Adreß-BegrenzungsregistersBAR wird abgegriffen (1464) und das laufende Prozeßwort RPW von NJP (jetzt CJP), das sich in BAR plus 56 der Systembasis befindet, wird durch Speicherung der NJP-Kennzeichnung im RPW aktualisiert (Block 1465). Der Leer-Indikator wird auf 0 positioniert, wenn kein CJP vorhanden war. Als nächstes wird der "Streit"-Indikator auf 0 positioniert (1467) und der Segment-Assoziator (AS 132 in Fig.1), der ein typischer inhaltsadressierbarer Speicher ist, wird gelöscht (1471)} nun wird der Prozeß-Modus eingegeben (1470). (Ein Prozeß-Modus kennzeichnet, daß Ausnahmen von dem im Prozessor ablaufenden Prozeß und nicht vom Betriebssystem verarbeitet werden). Die Firmware geht nun zum CAB-Block 1480 über, und das asynchrone Fallenbit AB wird überprüft, um festzustellen, ob es sich auf binär 1 befindet oder nicht (1481). Wenn das AB-Bit auf binär 1 ist, wird eine Überprüfung durchgeführt (1482), um festzustellen, ob die Prozeß-Ringnummer PRN gleich oder größer als das asynchrone Fallenbit-Feld ARN ist (AB und ARN befinden sich im Prioritäts-Byte des PCB eines jeden Prozesses; sie sind von Bedeutung, wenn sich der Prozeß im Funktions-conducted and it was enlisted, followed by a CJP enrollment. When no CJP is in control via the CPU, the status byte of PMW 0 of the NJP is updated (1460) and it is checked again whether a CJP was or was not in the machine (1463). If not If CJP had control of the processor, the process chaining of the NJP (which was in Q / PR / RDY and now the Control of the machine) is pulled out (1466) (i.e. separated from Q / PR / RDY) from Q / PR / RDY and becomes a free one Process-chaining "semaphore" FLSP and is now used with the free Process 'concatenation queue (semaphore PLS) concatenated' (805 in Figure 9) and becomes part of the free process chaining queue (i466a). The contents of the address delimiting register BAR is tapped (1464) and the current process word RPW from NJP (now CJP), which is in BAR plus 56 of the system base is updated by storing the NJP identifier in the RPW (block 1465). The empty indicator is positioned at 0 if there was no CJP. Next up is the "dispute" indicator positioned on 0 (1467) and the segment associate (AS 132 in Fig. 1), which is a typical content addressable Memory is cleared (1471)} now the process mode is entered (1470). (A process mode indicates that there are exceptions to the process running in the processor and not to the operating system are processed). The firmware now goes to the CAB block 1480, and the asynchronous trap bit AB is checked, to determine whether or not it is at binary 1 (1481). When the AB bit is at binary 1, will a check is made (1482) to see if the process ring number PRN is equal to or greater than that asynchronous trap bit field ARN is (AB and ARN are in the priority byte of the PCB of each process; they are important when the process is functional

509834/0830509834/0830

Status befindet; AB und ARN werden aus dem bei BAR plus der Systembasis befindlichen RPVi entwickelt). Unter der Voraussetzung, daß PRN gleich oder größer als ARN ist, werden AB und ARN in BAR plus 56 des RPW gelöscht, da der nächste Schritt 1484 in einer asynchronen Fallen-Routine besteht, welche die Bedingungen, die eine Positionierung des asynchronen Fallenbits oder der asynchronen Ringnummer an die erste Stelle veranlassen, gewährleisten würde.Wenn AB und ARN erst beim nächsten Schritt durch die Firmware gelöscht würden, würde eine Anzeige auftreten, nach der eine Bedingung nicht in Ordnung wäre, obwohl zu diesem Zeitpunkt keine Fehlerbedingungen vorhanden sind, und der Schritt zur asynchronen Fallenroutine 1484 würde immer wieder erfolgen, die Routine jedoch nicht durchgeführt werden. Wenn in den Entscheidungs-Blöcken 1481 und 1482 das AB-Bit nicht gesetzt .oder das AB-Bit gesetzt uirLPRN kleiner als ARN wäre, würde die Firmware überprüfen, in welcher Betriebsart der.Prozessor arbeitet, im-Normal-Modus oder im Emulations-Modus. Demzufolge wird die. DEXT-Nummer überprüft, um festzustellen, ob sie sich auf 0 befindet oder nicht; wenn sie sich auf 0 befindet, wird der Normal-Modus der Maschine durchgeführt (1487). Wenn die DEXT-Nummer nicht auf " 0 ist, wird jedoch der Emulations-Modus durchgeführt (i486).Status is located; AB and ARN are developed from the RPVi, which is the system base at BAR plus). Under the Assuming that PRN is equal to or greater than ARN, AB and ARN are deleted in BAR plus 56 of the RPW, there the next step 1484 is an asynchronous trapping routine which sets the conditions that a positioning of the asynchronous trap bit or the asynchronous ring number in the first position AB and ARN would not be deleted by the firmware until the next step, a display would appear after which a condition would be wrong even though there are no error conditions at this point, and the step for asynchronous trap routine 1484 would occur again and again, but the routine would not be performed. if in decision blocks 1481 and 1482, the AB bit does not set. or the AB bit set uirLPRN smaller than ARN the firmware would check in which operating mode the.Processor is working, in normal mode or in Emulation mode. As a result, the. Checks DEXT number to see if it is 0 or not; if it is at 0, the normal mode of the machine is performed (1487). If the DEXT number does not match " Is 0, however, the emulation mode is performed (i486).

'fSsmaphor"'fSsmaphor "

Es ist bereits erklärt worden, daß Prozesse Programmsegmente und zusätzlich Datensegmente gemeinsam benutzen können. Aufgrund dieser ineinandergreifenden Struktur müssen Prozesse in der Lage sein, miteinander zusammenzuarbeiten, und zu diesem Zweck enthält das vorstehend beschriebene System eine Anzahl von Prozeß-Synchronisationsfunktionen. Diese Funktionen benutzen die als " Semaphore" bezeichneten Datenstrukturen.It has already been explained that processes are program segments and can also share data segments. Because of this interlocking structure, processes be able to cooperate with one another and for this purpose the system described above includes one Number of process synchronization functions. These functions use data structures called "semaphores".

509834/0830509834/0830

245653A245653A

Das "Semaphor" ist eine gemeinsam benutzte Datenstruktur, die von der Adreß-Basis aller zusammenarbeitenden Verfahren indexiert wird. Als gemeinsam benutzte Datenstruktur wird ein "Semaphor" zur Verbindung eines Prozesses und eines Geschehnisses, die nicht gleichzeitig auftreten, verwendet. Ein Geschehnis ist, wie bereits erklärt, irgendeine Beobachtung, die von einem Prozeß gemacht wurde und für irgendeinen anderen Prozeß von Bedeutung sein kann. Das Geschehnis kann zum Beispiel der Abschluß einer asynchronen Operation, oder die Verfügbarkeit einer Hilfsquelle sein. Ein Geschehnis kann entweder dadurch eintreten, daß ein anderer Prozeß einen bestimmten Ausführungszustand erreicht oder dadurch,' daß eine Meldung eintrifft. Ein "Semaphor" muß daher in der Lage sein, die Anwesenheit von Geschehnissen oder Hilfsquellen zu speichern, die auf Verfahren warten. Andrerseits kann ein Prozeß einen bestimmten Punkt in seiner Durchführung erreichen, bevor das Geschehnis auftritt.The "semaphore" is a shared data structure used by the address base of all collaborative processes is indexed. As a shared data structure, a "semaphore" is used to connect a process and an event, which do not occur at the same time. As already explained, an incident is any observation which was made by one process and may be relevant to any other process. The incident for example, the completion of an asynchronous operation or the availability of a resource. An incident can occur either because another process reaches a certain execution state or because ' that a message arrives. A "semaphore" must therefore be able to detect the presence of events or resources to save pending proceedings. On the other hand, a process can have a certain point in its implementation reach before the incident occurs.

In dieser Situation muß das "Semaphor" in der Lage sein, den auf dieses Ereignis wartenden Prozeß zu speichern. Daher muß ein"Semaphor" die doppelte Fähigkeit besitzen, das frühere Auftreten sowohl eines Prozesses, der auf ein Geschehnis wartet, um fortgesetzt zu werden, wie auch das Auftreten eines Geschehnisses, das auf einen Prozeß wartet, um mit diesem assoziiert zu werden, zu speichern.In this situation the "semaphore" must be able to store the process waiting for this event. Therefore, a "semaphore" must have the double ability of both the earlier occurrence of both a process that is based on a Incident is waiting to proceed, as is the occurrence of an incident awaiting trial, to be associated with it.

Um das "Semaphor" vollständig darzustellen, werden zuerst seine bereits beschriebenen Beziehungen und sein Vorhandensein im Mechanismus des Systems erläutert und danach werden seine verschiedenen Datenformate in Einzelheiten überprüft; anschließend wird sein Gebrauch und Betrieb innerhalb des Systems erläutert.In order to fully represent the "semaphore", its relationships and existence are described first explained in the mechanism of the system and then its various data formats are checked in detail; then its use and operation within the system is explained.

509834/0830509834/0830

2A565342A56534

In Fig.8 ist die räumliche Konfiguration,des Hauptspeichers als logische Zusammenfassung von Segmenttabellen dargesM.lt. Diese, als G-Segmente bezeichneten Tabellen, werden zur Speicherung von "Semaphores" und den dazugehörigen Informationen verwendet. Insbesondere sind diese G-Tabellen in zwei von der Konzeption her unterschiedliche Segmente aufgeteilt, von denen eines das GO-Segment und das andere eine Vielzahl von SD-Segmenten ist.In Fig.8 is the spatial configuration of the main memory as a logical summary of segment tables presentedM.lt. These tables, known as G segments, are used to store "semaphores" and related information used. In particular, these G tables are divided into two conceptually different segments divided, one of which is the GO segment and the other is a plurality of SD segments.

Das GO-Segment wird zur Aufnahme einer Vielzahl von Prozeß-? Verkettungen (PL) und eines Prozeß-Verkettungs-'^emaphor" (PLS.) des Systems verwendet. Jede Prozeß-Verkettung beinhaltet vier Felder, von denen eines die Bezeichnung seines ' Prozessesbeinhaltet. Das zweite Feld kennzeichnet die Priorität des Prozesses und beinhaltet ebenfalls AB und ARN, das dritte Feld ist eine Verbindungs-Verkettung zur nächsten Eingabe und das vierte Feld enthält eine relative Segment-Adresse. Das Bezeichnungs-Feld ist eine JP-Bezeichnung, die der JP-Bezeichnung des Prozess-Steuerblocks (PCB) entspricht. Daher erzeugt jede Prozeß-Verkettung des GO-Segments einen Zweiwort-Wert für das PCB, da jede Prozeß-Verkettung den PCB bezeichnet, den sie darstellt. Das Prioritäts-Feld ist eine vollständige Kopie des Prioritäts-Feldes des PCB. Das Verkettungs-Feld wird zur Einreihung von Prozeß-Verkettungen in eine Warteschlange verwendet, so daß der Dispatcher diese in einer sequentiellen Anordnung vorfindet. Daher bildet das GO-Segment einen einfachen Mechanismus, mit dem der Dispatcher alle gegenwärtig aktiven Prozesse überwachen kann, da jeder Prozeß über eine Zweiwort-Prozess-Verkettung verfügt, die ihn mit seinem PCB verbindet.The GO segment is used to accommodate a variety of process? Chaining (PL) and a process chaining - '^ emaphor " (PLS.) Of the system is used. Each process chain contains four fields, one of which is the name of its' Process includes. The second field identifies the Priority of the process and also contains AB and ARN, the third field is a connection chain to the next Input and the fourth field contains a relative segment address. The designation field is a JP designation that corresponds to the JP designation of the process control block (PCB). Hence, each process chain creates the GO segment a two-word value for the PCB, since each process chain identifies the PCB it represents. That Priority field is a full copy of the PCB's priority field. The concatenation field becomes a queuing Used by process chaining in a queue so that the dispatcher puts them in a sequential order finds. Therefore, the GO segment is a simple mechanism with which the dispatcher can monitor all currently active processes, since each process has a two-word process chain that connects it to its PCB.

Es ist bereits erwähnt worden, daß ein Prozeß sich in einem der vier Betriebszustände befinden kann, d.h. Funktions-,It has already been mentioned that a process can be in one of the four operating states, i.e. functional,

509334/0830509334/0830

Bereit-, Warte- oder Unterbrechungs-Status (gegenwärtig nicht aktiv). Alle Prozesse mit Ausnahme des im Funktions-Status befindlichen Prozesses, die gerade aktiv sind, werden durch die Prozess-Bezeichnung und durch eine Warteschlange, in der sich die Prozeß-Verkettung befindet, welche die Prozeßbezeichnung beinhaltet, in das GO-Segment übertragen. Daher werden diese Funktionszustände nicht nur vom PCB angezeigt, sondern die Prozeß-Verkettungen des GO-Segments ermöglichen eine Warteschlangen-Organisation, so daß der Dispatcher leicht Zugriffs- und Änderungs-Operationen durchführen kann. Jeder gerade aktive Prozeß besitzt eine andere Kennzeichnung und seine Bezeichnung in der Prozeß-Verkettung; jede Prozeß-Verkettung gehört zu einer Vielzahl von Warteschlangen im GO-Segment. Daher kann eine Prozeßbezeichnung nur in einer Prozeß-Verkettung auftreten und eine Prozeß-Verkettung kann sich gleichzeitig nur auf eine Warteschlange beziehen.Zur Änderung des Prozeß-Status braucht der Dispatcher nur die Prozeß-Verkettung zu einer anderen Warteschlange zu übertragen, die dem Status des Prozesses entspricht. Auf diese Weise werden durch Änderung der internen Zuordnung der Prozeß-Verkettung im GO-Segment leichte Durchführungen von Status-Änderungen ermöglicht.Ready, waiting or interrupted status (currently not active). All processes with the exception of the process in the functional status that are currently active will be by the process designation and by a queue in which the process chain is located, which is the process designation is transferred to the GO segment. Therefore, these functional states are not only derived from the PCB displayed, but the process chains of the GO segment allow a queue organization so that the Dispatcher can easily perform access and change operations. Every currently active process has one other designation and its designation in the process chain; each chain of processes belongs to a multitude of queues in the GO segment. A process designation can therefore only appear in a process chain and a process chain can only refer to one queue at a time. To change the process status the dispatcher only needs to transfer the process chain to another queue that corresponds to the The status of the process. In this way, by changing the internal assignment of the process chain enables easy implementation of status changes in the GO segment.

Da sich nur einProzeß im Funktions-Status befinden kann, ist für diesen Prozeß keine Warteschlangen-Organisation erforderlich.Mehrere Prozesse können sich jedoch entweder im Bereit- oder im Warte-Status befinden.Since only one process can be in the functional status, there is no queue organization for this process required; however, multiple processes can occur are either ready or waiting.

Weiterhin kann ein Prozeß in viele verschiedene Warte-Zustände übergehen, da ein Prozeß in der Lage ist, eines von vielen verschiedenen Geschehnissen abzuwarten. Hieraus ergibt sich das Vorhandensein einer Bereit-Warteschlange für die Prozesse, die zur Übernahme der Hilfsquellen derFurthermore, a process can go into many different wait states, since a process is capable of one to be seen of many different happenings. This means that there is a ready queue for the processes involved in taking over the resources of the

50333^/083050333 ^ / 0830

Maschine bereit sind, d.h. Q/PR/RDY, und eine Vielzahl von Warteschlangen für diejenigen Prozesse, die auf ein Geschehnis oder eine Hilfsquelle warten, um ihren Ablauf fortsetzen zu können, d.h. Q/PR/S oder Q/PR/FLS. Wie bereits erklärt wuiu·., ist ein unterbrochener Prozeß kein gegenwärtig aktiver Prozeß und daher sind keine Warteschlangen für diese unterbrochenen Prozesse vorhanden.Machine ready i.e. Q / PR / RDY, and a multitude of queues for those processes that respond to an incident or wait for an auxiliary source to continue, i.e. Q / PR / S or Q / PR / FLS. As already explains wuiu ·., an interrupted process is no current active process and therefore there are no queues for it interrupted processes.

Fig.9 enthält die Explosionsdarstellung eines GO-Segments. Das System enthält nur ein GO-Segment. Das GO-Segment erzeugt alle Prozeß-Verkettungen, d.h.Zweiwort-Funktionen ("Standins") für alle Prozesse, die vom System durchgeführt werden können.Fig. 9 contains the exploded view of a GO segment. The system contains only one GO segment. The GO segment is generated all process links, i.e. two-word functions ("standins") for all processes that can be carried out by the system.

Jeder im Bereit-Status befindliche Prozess ist' über gemeinsame Verkettungs-Felder in der als Bereit-Warteschlange bezeichneten Warteschlange Q/PR/RDY 803c und d mit den anderen Verfahren verbunden. Die Bereit-Warteschlange muß einen "Kopf" und einen "Schwanz" besitzen, d.h. eine bestimmte Begrenzung der ersten und der letzten Prozeß-Verkettung in der Warteschlange. Dies erfolgt, wie bereits beschrieben, mit Hilfe eines "nächster Prozeß"-Verkettungsfeldes. Der "Schwanz" derWarteschlange, d.h. 803d, ist dadurch gekennzeichnet, daß er ein nächstes Verkettungsfeld mit einem .Nullwert besitzt. Der "Kopf" von Q/PR/RDY wird von einem Feld in der System-Basiszone bezeichnet, dji. durch ein vom internen Prozeß-Warteschlangenwort (IPQW) abgerufenes Wort, welches einen Hinweis für die Prozeß*-Verkettung enthält, die dem "Kopf" der Bereit-Warteschlange entspricht. Der Dispatcher hat daher die Übersicht über alle Bereit-Prozesse, indem er den"Kopf" der Bereit-Warteschlange über IPQW lokalisiert und danach alle Prozeßverkettungen in Q/PR/RDY gemäß ihren "nächsten Verkettungsfeldern" sequentiellEvery process that is in the ready state is' over shared Concatenation fields in the queue called the ready queue Q / PR / RDY 803c and d with the connected to other procedures. The ready queue must have a "head" and a "tail", i.e. a certain delimitation of the first and the last Process chaining in the queue. This is done as already described, using a "next process" link field. The "tail" of the queue, i.e. 803d, is characterized by having a next concatenation field with a null value. The "head" of Q / PR / RDY becomes designated by a field in the system base zone, dji. by a word retrieved from the internal process queue word (IPQW), which contains a note for the process * chaining, which corresponds to the "head" of the ready queue. The dispatcher therefore has an overview of all ready processes by having the "head" of the ready queue above it IPQW localizes and then all process links in Q / PR / RDY according to their "next link fields" sequentially

509834/0830509834/0830

aufreiht. Wenn der gerade laufende Prozeß in einen anderen Status, z.B. den V/arte status übergeht, wählt der Dispatcher die Prozeß-Verkettung im "Kopf" von Q/PR/RDY aus, greift diese aus der Warteschlange ab und benutzt die JP-Bezeichnung, um seinen eigenen Prozeß-Steuerblock aufzufinden. Dieser Prozeß wird nun der neue laufende Prozeß und geht unter Steuerung durch den Dispatcher vom Bereit-Status zum Funktionsstatus über.lines up. If the currently running process in another Status, e.g. ignores the V / arte status, the dispatcher selects the process chain in the "head" of Q / PR / RDY, takes effect picks it up from the queue and uses the JP designation to find its own process control block. This process becomes the new running process and changes from the ready status to the functional status under the control of the dispatcher.

Der im Funktions-Status befindliche Prozeß ist nicht durch eine Prozeß-Verkettung im GO-Segment repräsentiert. Anstelle dessen befindet sich ein anderes Wort in der Systembasis-Zone, das als aktuelles Prozeßwort oder RPW bezeichnet wird und zwei Felder beinhaltet. Ein Feld ist die JP-Bezeichnung eines gerade ablaufenden Prozesses, das andere ist eine Kopie des im PCB befindlichenPrioritätsfeldes dieses Prozesse. Wenn eine Situation auftritt, in der der Dispatcher den "Kopf" der Bereit-Warteschlange mit dem gerade ablaufenden Prozeß vergleicht, um festzustellen, welcher Prozeß die Steuerung der zentralen Verarbeitungseinheit übernehmen soll, würde er das RPW mit der Prozeß-Verkettung vergleichen und dann zu einer anderen Operation übergehen.The process in the functional status is not represented by a process chain in the GO segment. Instead of there is another word in the system base zone called the current process word or RPW and includes two fields. One field is the JP designation of a process that is currently running, the other is a copy of the priority field of this process located in the PCB. If a situation arises in which the dispatcher has the "head" compares the ready queue with the process in progress to determine which process take control of the central processing unit should, it would compare the RPW with the process chain and then move on to another operation.

Prozesse im Warte-Status warten auf ein Signal oder eine Meldung, daß ein bestimmtes Geschehnis aufgetreten ist.Da mehr als ein Prozeß auf das gleiche Signal oder die gleiche Meldung warten kann, kann eine Warteschlange solcher Prozesse erforderlich sein. Dementsprechend sind alle im Warte-Status befindlichen Prozesse im GO-Segment durch eine Zweiwort-Prozeß-Verkettung dargestellt und diese Prozeßverkettungen sind in einer Warteschlange zusammengefaßt. Da sich bei mehr als einem "Semaphor"-Prozeß im Wartestatus befinden können, ist 03 möglich, daß zahlreiche Q/PR/S durch Zusammenfassungen von Prozeß-Verkettungen im GO-Segment dargestellt werden. Zur Veranschaulichung sind zwei Prozeß-Warteschlangen in den Figuren vProcesses in the waiting state wait for a signal or a message that a certain event has occurred more than one process can wait for the same signal or message, a queue of such processes can be to be required. Accordingly, all processes in the waiting status in the GO segment are linked by a two-word process chain and these process links are combined in a queue. Since more than a "semaphore" process can be on hold, 03 it is possible that numerous Q / PR / S by aggregations of Process chains are shown in the GO segment. To illustrate, two process queues are shown in FIGS

509834/0830509834/0830

803a und b und 'Figuren. 803e bis g dargestellt. Der "Kopf" eines solchen Q/PR/S wird, wie noch beschrieben wird, von seinem eigenen Semaphor gekennzeichnet. Dies steht im Gegensatz zu der einen Bereit-Warteschlange, die durch das interne Prozessor-Warteschlangenwort in der Systembasis gekennzeichnet ist. Sowohl Q/PR/RDY wie auch Q/PR/S sind Warteschlangen von Prozeß-Verkettungen, die von der Dispatcher-Hardware und, bei einer Prozeß-Statusänderung, von den P- und V-Befehlen verarbeitet werden. Der Dispatcher bzw. der P- oder V-Befehl kann einen Prozeß aus einer dieser 'Warteschlangen herausziehen und ihn in eine andere Warteschlange einreihen, und der Dispatcher kann einen Prozeß in den Funktions-Status versetzen oder ihn aus diesem Status herausführen.803a and b and 'figures. 803e through g. The head" such a Q / PR / S is, as will be described, from marked with its own semaphore. This is in contrast to the one ready queue created by the internal Processor queue word is marked in the system base. Both Q / PR / RDY and Q / PR / S are queues of process chains created by the dispatcher hardware and, in the event of a process status change, by the P and V commands are processed. The dispatcher or the P or V command can select a process from one of these 'queues pull it out and put it on another queue and the dispatcher can put a process on the Move function status or lead him out of this status.

Die Prozeß-Verkettungen für die wartenden Prozesse Q/PR/S sind vom Format her mit den Prozeß-Verkettungen von Q/PR/RDY identisch; der "Schwanz" der Warteschlange wird durch die Prozeß-Verkettung gekennzeichnet, die im Feld "nächste Verkettung" den Wert 0 enthält. Ein Hinweis auf den"Kopf" der Warteschlange der wartenden Prozesse befindet sich in einer besonderen ,Datenstruktur, die als "Semaphor" bezeichnet wird und zur Anzeige von Geschehnissen benutzt wird. Dieses "Semaphor",das später detaillierter beschrieben wird, enthält einen Prozeßwarteschlangenkopf-Hinweis PHQP, der die Kopf-Prozeßverkettung in der Warteschlange der am"Semaphor" wartenden Prazesas kennzeichnet, d.h. Q/PR/S.The format of the process chains for the waiting processes Q / PR / S is the same as the process chains of Q / PR / RDY identical; the "tail" of the queue is identified by the process chaining in the field "next chaining" contains the value 0. An indication of the "head" of the queue of waiting processes is located in a special data structure called a "semaphore" that is used to display events will. This "semaphore" will be described in more detail later contains a process queue header note PHQP, of the head process chaining in the queue of the indicates prazesas waiting at the "semaphore", i.e. Q / PR / S.

Wenn ein Prozeß vom Bereit-oder Warte-Status in den Funktionsoder Unterbrechungsstatus übergeht, läßt er seine Prozeß-Verkettung im GO-Segment zurück. Dieser Raum ist nun für andere Zwecke verfügbar. Wenn andererseits ein unterbrochener oder laufender Prozeß in den Bereit- oderWhen a process goes from the ready or waiting state to the functional or interrupted state, it leaves its own Process chaining back in the GO segment. This room is now available for other purposes. If on the other hand a interrupted or running process in standby or

50983A/083050983A / 0830

* - 78 -* - 78 -

Warte-Status übergeht, muß er aus dem GO-Segment eine Prozeß-Verkettung abrufen. Daher tritt im GO-Segment ein Speicher-Verwaltungsproblem auf. Der Dispatcher muß in der Lage sein, schnell Zweiwort-Prozeß-Verkettungen abzurufen und freizugeben. Um dieses Problem zu lösen, enthält das GO-Segment bereits eine andere Warteschlange, die automatisch von der Hardware verarbeitet wird. Diese Warteschlange enthält alle freien Prozeß-Verkettungen, die benutzt werden können, wenn ein neuer. Prozeß gestartet wird. Immer, wenn eine Prozeß-Verkettung von der Benutzung freigegeben wird, d.h. die Unterbrechung eines im Bereitöder Warte-Status befindlichen Prozesses, wird der Warteschlange der freien Prozeß-Verkettungen eine freigegebene Prozeß-Verkettung hinzugefügt. Immer wenn eine neueProzeß-Verkettung ,zur Kennzeichnung einer Prozeßbewegung in den Bereit- oder Warte-Status erforderlich ist, wird diese aus der Warteschlange der freien Prozeß-Verkettungen abgegriffen. Diese Tätigkeiten werden hauptsächlich vom Dispatcher durbhgeführt,· es können jedoch auch p- und V-Befehle oder Start- und Unterbrechungs-Befehle verwendet werden. Das GO-Segment muß zu jedem Zeitpunkt genügend Prozeß-Verkettungen beeinhalten, um die Bezeichnungen aller Prozesse zu speichern, die gegenwärtig aktiv sind.Waiting status passes, it must call up a process chain from the GO segment. Hence occurs in the GO segment a memory management problem. The dispatcher must be able to quickly create two-word process chains retrieve and share. To solve this problem, the GO segment already contains another queue, which is automatically processed by the hardware. This queue contains all free process chains, which can be used when a new one. Process is started. Whenever a process chain of use is released, i.e. the interruption of a process in the ready or waiting status, becomes the queue A released process chain has been added to the free process chain. Whenever there is a new process chain , is required to identify a process movement in the ready or waiting status, this is turned off tapped from the queue of the free process chains. These activities are mainly carried out by the dispatcher, but p and V commands or Start and interrupt commands are used. The GO segment must have enough process links at all times to save the names of all processes that are currently active are.

Die freien Prozeß-Verkettungen werden in gleicher Weise wie bei Q/PR/RDY und Q/PR/S zusammengefaßt, und der "Schwanz" der Warteschlange wird durch eine Verkettung gekennzeichnet, die im Feld "nächste Verkettung" den Wert 0 enthält. Der "Kopf" der freienProzeß-Verkettungs-Warteschlange wird durch ein Feld in einer speziellen Datenstruktur gekennzeichnet, die als Prozeß-Verkettungs-"Semaphor" (PLS) 901 bezeichnet wird und sich im vorderen Teil des GO-Segments befindet.The free process chains are combined in the same way as with Q / PR / RDY and Q / PR / S, and the "tail" the queue is identified by a link that contains the value 0 in the "next link" field. Of the "Head" of the free process chaining queue is identified by a field in a special data structure, which is referred to as the Process Chaining "Semaphore" (PLS) 901 and is located in the front part of the GO segment is located.

509834/083Q509834 / 083Q

Das Prozeß-Verkettungs-Semaphor befindet sich in einer bekannten Position des GO-Segments und daher kann der Dispatcher es problemlos lokalisieren. Daher werden alle Prozeß-Verkettungen innerhalb des GO-Segments auf verschiedene Weisen entweder mit der Bereit-Warteschlange, einer beliebigen anderen Warteschlange, oder der freien Prozeß-Verkettungs-Warteschlange verbunden.The process chaining semaphore is in a known position of the GO segment and therefore the dispatcher locate it easily. Therefore, all process chains within the GO segment are different Assign either with the ready queue, any other queue, or the free one Process chaining queue connected.

Es ist jedoch zu bemerken, daß sich in der Prozeß-Verkettung selbst kein Element befindet, das die Warteschlange in der es sich befindet, identifiziert. Wenn man eine Prozeß-Verkettung im GO-Segment betrachtetj erkennt man nur eine Prozeß-Bezeichnung, eine Priorität und ein Verkettungs-Feld, das eine der nächsten Verkettungen tibernimmt, d.h. keine rückwärtsgerichtete Verkettung oder andere Indentifizierungs-Informationen sind vorhanden. Beim Betrachten von Prozeß-Verkettungen ist es nicht möglich, den aktuellen Status des Systems festzustellen.It should be noted, however, that in the process chaining there is no element itself that identifies the queue in which it is located. if a process chain is considered in the GO segment you can only see a process name, a priority and a link field, which is one of the next links is taken over, i.e. no backward chaining or other identification information is available. At the Looking at process chains, it is not possible to determine the current status of the system.

Es ist bereits eiELärt worden, daß ein Semaphor zusätzlich die Fähigkeit zur Speicherung eines Geschehnisses besitzt, das auf einen Prozeß wartet, um in diesen eingegliedert zu werden. Zur Durchführung dieser Funktion wird die verbleibende Mehrzahl der G-Segmente verwendet. Die verbleibenden G-Segmente werden als ."Semaphor-Descriptor"-Segmente (SD) bezeichnet und bestehen aus den Gn-Segmenten 802n. Ein SD-Segment ist ein Segment, das "Semaphore" und Warteschlangen von Meldungsverkettungen enthal ten kann, die von "Semaphore" und "Semaphor-Descriptor" gesteuert werden. Auf die "Semaphor-Descriptor"-Segmente wird Bezug genommen, wenn das normale Segment, das sich in der örtlichen Adreßbasis eines·JP-Prozesses befindet, ein "Semaphor-Descriptor"-Segment enthält, dessen GS-Bits gleich 01 sind. Diese GS-BitsIt has already been made clear that a semaphore should be added has the ability to store an incident waiting for a process to be incorporated into it to become. The remaining majority of the G-segments are used to perform this function. The remaining G segments are called "semaphore descriptor" segments (SD) and consist of Gn segments 802n. An SD segment is a segment that can contain "semaphores" and queues of message chains sent by "Semaphore" and "Semaphore Descriptor" are controlled. Reference is made to the "semaphore descriptor" segments, if the normal segment residing in the local address base of a · JP process is a "semaphore descriptor" segment whose GS bits are 01. These GS bits

509834/0830509834/0830

werden später in Verbindung mit dem "Semaphor-Descriptor"-Segment beschrieben. Weiterhin können zwei G-Segmente nicht die gleiche absolute Adresse starten. Daher hat das GO-Segment im ersten Segment und das verbleibende SD-Segment, d.h. G1 bis Gn, jeweils ihre eigenen absoluten Startadressen. Der Aufbau eines "Semaphor-Descriptor"-Segments (SD) ist in Figur : 15 dargestellt. Demzufolge muß das erste Wort des "Semaphor-Descriptor"-Segments das folgende 32-Bit-Format besitzen. Die ersten beiden Bits sind das TAG-FeId, das als 11-Bit-Codierung den sogenannten TAG-Fehler anzeigt. Diese Fehleranzeige ist lediglich ein Hardware-Mechanismus zur Begrenzung des Zugriffs zu einem Wort eines SD-Segments. Die nächsten beiden Bits,d.h. Bits 2 und 3, stellen die VR-Ringnummer dar.will be described later in connection with the "semaphore descriptor" segment. Furthermore, two G segments cannot start the same absolute address. Therefore the GO segment in the first segment and the remaining SD segment, ie G1 to Gn, each have their own absolute start addresses. The construction of a "semaphore Descriptor" segment (SD) is shown in FIG: shown 15th Accordingly, the first word of the "semaphore descriptor" segment must have the following 32-bit format. The first two bits are the TAG field, which shows the so-called TAG error as 11-bit coding. This error display is just a hardware mechanism for limiting access to a word of an SD segment. The next two bits, i.e. bits 2 and 3, represent the VR ring number.

Die Ringnummer VR kennzeichnet den höchsten Verarbeitungsring, in dem eine V-Operation an "Semaphores" über "Semaphor-De scriptor" im Segment zulässig ist. Die nächsten beiden Bits, d.h. Bits 4 und 5 stellen die PR-Ringnummer dar, die den höchsten Ring kennzeichnen, in dem eine P-Operation an "Semaphores" über die Semaphor-Descriptors im Segment zulässig ist. Die Bits 6 und 7 bilden die IR-Ringnummer, welche den höchsten Ring kennzeichnen, in dem eine initialisierte "Semaphor"-Zähloperation an "Semaphores" über die im Segment enthaltenen "Semaphor-Descriptors" zulässig ist. Die Werte VR, PR und IR eines "Semaphor-Descriptor"-Segments beziehen sich nicht notwendigerweise auf "Semaphores" innerhalb dieses Segments, sondern nur auf die "Semaphor-Descriptors" 502 (diese werden später beschrieben), die sich in diesem Segment befinden,djh.die über diese "Descriptors" abgegriffenen "Semaphores". Daher können sich die "Semaphores" in einem anderen Segment als diesem "Semaphor-The ring number VR identifies the highest processing ring in which a V operation on "Semaphores" via "Semaphore-De scriptor "is permitted in the segment. The next two bits, i.e. bits 4 and 5 represent the PR ring number, which mark the highest ring in which a P operation to "semaphores" via the semaphore descriptors in the segment. Bits 6 and 7 form the IR ring number, which identify the highest ring in which an initialized "semaphore" counting operation is performed on "semaphores" via the im The "semaphore descriptors" contained in the segment is permitted. The values VR, PR and IR of a "semaphore descriptor" segment do not necessarily refer to "semaphores" within this segment, but only to the "semaphore descriptors" 502 (these will be described later), which are located in this segment, i.e. those via these "descriptors" tapped "semaphores". Therefore the "semaphores" can be in a different segment than this "semaphore

509834/0830509834/0830

Descriptor"-Segment befinden.Die Bits 8 bis 15 müssen mit MBZ gekennzeichnet und 0 sein. Die Bits 16 bis 31 sind ein freier Verkettungs-"Semaphor"-Hinweis, FLSP, der eine relative Adreßverschiebung im"Semaphor-Descriptor-Hinweis führt zwei Funktionen im System durch. Dieser Hinweis wird zuerst als obere Adreßbegrenzung der "Semaphor"-Descriptors im "Semaphor-Descriptor-Segment" betrachtet.Descriptor "segment. Bits 8 to 15 must begin with MBZ marked and 0. Bits 16 through 31 are a free concatenation "semaphore" hint, FLSP, which is a relative address shift in the "Semaphore Descriptor Notice performs two functions in the system. This notice is first used as the top Address limitation of the "semaphore" descriptors considered in the "semaphore descriptor segment".

Mit anderen Worten muß die relative Segmentadresse eines beliebigen "Semaphor-Descriptors" im Segment niedriger als FLSP sein. Wenn die relative Adresse eines beliebigen "Semaphor-Descriptors" in diesem Segment nicht niedriger als FLSP ist, bezeichnet der "Semaphor-Descriptor" nicht ' das in diesem Segment befindliche "Semaphor".Zweitens kennzeichnet der Hinweis das freie Verkettungs-"Semaphor" (FLS), das später beschrieben wird. Gemäß Fig. 15 bezieht sich die Nummer 1500 auf das erste Wort des "Semaphor"-Descriptor-Segment und die Nummer 502 auf einen der vielen "Semaphor"-Descriptors.In other words, the relative segment address of any "semaphore descriptor" in the segment must be lower to be as FLSP. If the relative address of any "Semaphore Descriptors" in this segment is not lower than FLSP, the "Semaphore Descriptor" does not designate ' the "semaphore" located in this segment. Second the note identifies the free concatenation "semaphore" (FLS), which will be described later. According to Fig. 15 the number 1500 refers to the first word of the "semaphore" descriptor segment and the number 502 to one of the many "semaphore" descriptors.

Der FLSP des ersten Wortes des "Semaphor^-Descriptor-Segments liefert die relative Adresse desauf die "Semaphor-Descriptors" 5.02 folgenden freien Verkettungs-"Semaphor" 1504. Das freie Verkettungs-»Semaphor" FLS kontrolliert die Warteschlange der freien Meldungsverkettungen Q/ML/FLS in diesem Segment, wenn es FLS vorhanden ist. Das freie Verkettungs-"Semaphor" muß vorhanden sein, wenn das SD-Segment "Semaphores" mit Meldungen enthält. Zusätzlich kann FLS zum Festhalten von Prozessen verwendet werden, d.h. Q/PR/FLS, wenn alle freien Meldungs-Verkettungen gerade in Gebrauch sind.The FLSP of the first word of the "Semaphore ^ descriptor segment supplies the relative address of the free concatenation "semaphore" 1504 following the "semaphore descriptors" 5.02. The free Concatenation »semaphore" FLS controls the queue of the free message chains Q / ML / FLS in this segment, if FLS is available. The free concatenation "semaphore" must be present if the SD segment "Semaphores" with Contains messages. In addition, FLS can be used to hold processes, i.e. Q / PR / FLS if all are free Message chains are currently in use.

Wenn keine "Semaphor-Descriptors" vorhanden wären, wäre 1502 leer. Wären keine freien Meldungs-Verkettungen vorhanden, wäre das als 1504 dargestellte "Semaphor" FLS nicht erforderlich. If there were no "semaphore descriptors", 1502 would be empty. If there were no free message chains, the "semaphore" FLS represented as 1504 would not be required.

509834/0830509834/0830

In Fig.15 kennzeichnet 1506 die Position der "Semaphore". Die "Semaphore", die sich in diesem Teil des Speichers "befinden, werden in den Figuren 16a und 16b beschrieben. Der Block 1508 enthält die Meldungs-Verkettungen und die freien Meldungs-Verkettungen. Jede dieser Verkettungen ist im SD-Segment in gleicher Weise wie die Verfahrens-Verkettungen im GO-Segment enthalten. Diese Meldungszone kann andere Daten als alle anderen Segmente enthalten; die Zone würde jedoch normalerweise Meldungen enthalten, die sich auf die verschiedenen "Semaphores" im Segment be-, ziehen.In FIG. 15, 1506 identifies the position of the "semaphore". The "semaphores" located in this part of the memory "are described in FIGS. 16a and 16b. Block 1508 contains the message chains and the free message chains. Each of these concatenations is contained in the SD segment in the same way as the process chains in the GO segment. This message zone may contain different data than any other segment; however, the zone would normally contain messages which refer to the various "semaphores" in the segment.

Jede Meldungs-Verkettung 1508 besteht aus vier Worten, die eineMeldung bilden(siehe 1508a). Die ersten 48 Bits bilden die Meldungs-Vorsatz-Zone und die letzten 84 Bits die eigentliche Meldungszone. Der Meldungs-Vorsatz enthält eineinhalb Worte, d.ho die Bits 0 bis 47; die eigentliche Meldung beansprucht den verbleibenden Raum der Verkettung, d.h. zweieinhalb Worte oder die Bits 4 bis 127.Each message chain 1508 consists of four words that make up a message (see 1508a). Make up the first 48 bits the message header zone and the last 84 bits the actual message zone. The message prefix contains one and a half Words, i.e. bits 0 to 47; the actual message claimed the remaining space of the concatenation, i.e. two and a half words or bits 4 to 127.

Das Format des Meldungs-Vorsatzes besitzt die Bits 0 bis 15 als "nächstes Verkettungs"-Feld. Er enthält in diesem Fall die relative Adresse der nächsten Meldungs-Verkettung der Warteschlange im "Semaphor-Descriptor"-Segment, ausgenommen, wenn die Verkettung die letzte einer Warteschlange ist, in diesem Fall kennzeichnet eine 0 im "nächsten Verkettungs"-Feld das Ende dieser Warteschlange. Die Bits 16 bis 23 stellen das Begründungs-Feld dar, das den Grund für die Meldung angibt. Es wird nur in den Situationen benutzt, in denen Eingabe-Ausgabe-Meldungen auftreten und ist sonst ohne Bedeutung. Die Bits 24 bis 27 kennzeichnen den Meldungs-Prioritäts-Pegel (MPL). Dieses Feld wird in Verbindung mit Meldungs-"Semaphores" verwendet, der niedrigste Viert des Meldungs-Prioritäts-Pegels entspricht der höchsten Priorität. Die Bits 28 bis 31 stellen das Meldungs-TAGThe format of the message header has bits 0 to 15 as the "next concatenation" field. He contains in this In the case of the relative address of the next message chain of the queue in the "semaphore descriptor" segment, with the exception of if the concatenation is the last one in a queue, in this case a 0 indicates in the "next concatenation" field the end of this queue. Bits 16 to 23 represent the reason field, which is the reason indicating for the message. It is only used in situations where input-output messages occur and is otherwise irrelevant. Bits 24 to 27 identify the message priority level (MPL). This field is in Connection with message "semaphores" used, the lowest Fourth of the message priority level corresponds to the highest priority. Bits 28 to 31 represent the message TAG

509834/0830509834/0830

dar. Dieses Feld enthält Basis-Informationen über die Art der Meldung. Eine TAG-Me !dung 0000 kennzeichnet, daß die Meldung durch P-oder V-Befehle erzeugt wurde. Bei einem Meldungs-TAG von 1000 ist bekannt, daß der IOC die Meldung pzeugt hat. Die Bits 32 bis 48 geben die Bezeichnung des Absenders an. Je nach Meldung enthält dieses Feld die JP-Bezeichnung des Prozesses,der die Meldung absendet oder die Kanal-Nummer bei IOC-Meldungen oder O in allen anderen Fällen.This field contains basic information about the species the message. A TAG message 0000 indicates that the Message generated by P or V commands. At a Message TAG of 1000 is known to the IOC to receive the message has pzeugt. Bits 32 to 48 identify the sender at. Depending on the message, this field contains the JP designation of the process that sends the message or the Channel number for IOC messages or O in all other cases.

Meldungen sind in den "Semaphor-Descriptor"-Segmenten,-jedoch nicht im GO-Segment enthalten. In Fig.17 sind die internen Beziehungen der Meldungs-Verkettungen zu den "Semaphores" und das freie Verkettungs-"Semaphor" dargestellt. Meldungen werden in den allgemeinen Registern 0 bis 3 eines PCB's erzeugt. Daher würde ein Prozeß, der eine V-Operation durchführt, die eigentliche Meldung in den allgemeinen Registern 1 bis 3 abspeichern, und die System-Hardware würde in den allgemeinen Registern 0 bis den Meldungs-Vorsatz erzeugen. Die Benutzung der allgemeinen Register anstelle des Raums eines Daten-Segments erleichtert der Hardware das Absenden der Meldung. Wenn sich ein Prozeß in einem Wartestatus befindet, werden seine Register im Prozeß-Steuerblock leicht adressiert und die Meldungsfelder in den Registern werden mit großer Leichtigkeit überprüft, wenn der Prozeß in den Funktions-Status zurückkehrt.Messages are in the "semaphore descriptor" segments, but not included in the GO segment. In Fig.17 the internal relationships of the message chains to the "Semaphores" and the free concatenation "Semaphore" are shown. Messages are generated in the general registers 0 to 3 of a PCB. Hence a process that would performs a V operation, stores the actual message in general registers 1 to 3, and the System hardware would generate the message prefix in the general registers 0 through. The use of general registers instead of the space of a data segment makes it easier for the hardware to send the message. If a process is in a wait state, will its registers in the process control block are easily addressed and the message fields in the registers are large Ease of checking when the process is in the functional status returns.

Die Meldungs-Verkettungen und freien Meldungs-Verkettungen sind ebenfalls warteschlangenorganisiert. Wenn dieMeldungs-Verkettungen mit einem "Semaphor" verbunden sind, wird eine Warteschlange von Meldungen am "Semaphor" (Q/M/S) erzeugt. Wenn die Meldungs-Verkettungen gerade nicht benutzt werden, werden sie mit dem FLS-"Semaphor" 1504 verbunden und eine Warteschlange von Meldungs-Verkettungen am freien Verkettungs-The message chains and free message chains are also organized in queues. If the message concatenations are connected to a "semaphore", a queue of messages is generated on the "semaphore" (Q / M / S). If the message chains are not currently being used, they are connected to the FLS "semaphore" 1504 and a Message chaining queue at the free chaining

SG983£/fi83GSG983 £ / fi83G

"Semaphor" O/ML/FLS wird erzeugt. Die Struktur desQ/ML/FLS ist, wenn keine Meldungen erzeugt werden, analog zu der Q/PR/PLS-Struktur; es fallen jedoch wesentliche, oben erklärte, Unterschiede auf."Semaphore" O / ML / FLS is generated. The structure of the Q / ML / FLS is if no messages are generated, analogous to the Q / PR / PLS structure; however, there are significant differences, as explained above.

Das oben Genannte erzeugt die Basis-Speicherzuweisung,in der das "Semaphor" vorhanden ist. Vor der Beschreibung der Operationen der Strukturen von Fig.9 und 15, wie in den Figuren 17 und 18 dargestellt, wird eine Untersuchung aller "Semaphor"-Datenstrukturen durchgeführt.The above creates the basic memory allocation, in which the "semaphore" is present. Before describing the operations of the structures of Figs. 9 and 15 as shown in Figs Referring to Figures 17 and 18, an examination of all "semaphore" data structures is performed.

In Fig.16 sind die Datenstrukturen, die die Verbindung von Prozessen und Geschehnissen ermöglichen, dargestellt. Insbesondere sind in Fig.16 fünf "Semaphor"-Typen dargestellt, die im bereits beschriebenen System verwendet werden. Diese "Semaphore" sind: ein "Semaphor" 1600 ohne Meldung, das in Fig.16a dargestellt ist, ein "Semaphor" 1602 mit Meldung, das in Fig.16b dargestellt ist und von dem zwei Typen verwendet werden, ein freies Prozeßverkettungs-"Semaphor" 901, das im GO-^Segment verwendet wird (Fig.i6c) und ein freies Verkettungs-"Semaphor" 1504, das in den SD-Segmenten verwendet wird ^Fig.i6d).In Fig. 16 are the data structures that make the connection of Enable processes and events. In particular, five "semaphore" types are shown in FIG can be used in the system already described. These "semaphores" are: a "semaphore" 1600 with no message that is shown in Fig.16a, a "semaphore" 1602 with message, which is shown in Fig.16b and of which two types are used , a free process chaining "semaphore" 901, which is used in the GO- ^ segment (Fig.i6c) and a free concatenation "semaphore" 1504, which is used in the SD segments (Fig.i6d).

Es ist bereits erwähnt worden, daß ein "Semaphor" die Verbindung zv/ischen einem Prozeß und einem Geschehnis oder einer Hilfsquelle herstellt. In den Fällen, in denen ein "Semaphor" nur benutzt wird, um das Auftreten eines Geschehnisses zu kennzeichnen und nicht zur Kennzeichnung einer Übertragung besonderer Informationen bezüglich des Auftretens eines Geschehnisses benutzt wird, wird eine "Semaphor"-Meldungs-Datenstruktur (Fig.i6a) verwendet. "Semaphor" 1600 kann zum Beispiel Eingabe/Ausgabe-Geräten wie Platteneinheiten zugeordnet sein. Alle Informationen, die die Verfügbarkeit von Platteninheiten betreffen, z.B. ein Abruf der Platte oderIt has already been mentioned that a "semaphore" is the connection between a process and an incident or an auxiliary source. In those cases where a "semaphore" is only used to indicate the occurrence of an incident to be marked and not to mark a transmission of special information regarding the occurrence When an incident is used, a "semaphore" message data structure (Fig.i6a) is used. "Semaphore" 1600 for example, it may be associated with input / output devices such as disk units. All information related to availability of disk units, e.g. a retrieval of the disk or

509834/0830509834/0830

eine Anzeige, daß die Plattenoperation beendet ist., wurden einem besonderen "Semaphor" 16OO gemeldet. Andere "Semaphore" 1600 können zur Kennzeichnung anderer Eihgabe/Ausgabe-Einheiten oder anderer Einheiten verwendet werden, die die Eigenschaft" vorhanden" oder "nicht vorhanden" besitzen. Jede dieser Einheiten kann ein eigenes "Semaphor" I6OO besitzen. Das "Semaphor" I6OO besteht aus einem Doppelwort, d.h. 64 Bits. Sein Format ist wie folgt aufgebaut: die ersten 4 Bits, d.h. Bits 0 bis 3, stellen das "Semaphor"-TAG-FeIddar (STAG) und werden in allen Semaphores zur Kennzeichnung des besonderen "Semaphor"-Typs benutzt. Bei einem "Semaphor" ohne Meldung besitzt das STAG-FeId die Codierung 0000. Die Bits 4 bis 15 von "Semaphor" I6OO werden zur Anzeige des"Semaphor"-Zählraaximums (SMC) verwendet. Das SMC-FeId gibt die maximale Anzahl der Hilfsquellen an, die auf ® einem "Semaphor" aufgebaut werden oder mit ihm verbunden werden können. Die Bits 16 bis 31 enthalten ein "Semaphor"-Zählfeld (SCT), das zur Anzeige der Anzahl der gerade am "Semaphor" im Warte-Status befindlichen Prozesse oder der Anzhl der zu diesem Zeitpunkt am "Semaphor" wartenden Hilfsquellen benutzt wird. Das Verhältnis zwischen den Feldern SMC und SCT ist so gestaltet, daß der Wert des SCT-Feldes aus später geklärten Gründen nie größer als der Wert· des SMC-Feldes sein kann.an indication that the disk operation is complete have been reported to a special "semaphore" 16OO. Other "semaphores" 1600 can be used to identify other input / output units or other units which have the property "present" or "not present". Each of these units can have its own "semaphore" 160. The "semaphore" I6OO consists of a double word, ie 64 bits. Its format is structured as follows: the first 4 bits, ie bits 0 to 3, represent the "semaphore" -TAG field (STAG) and are used in all semaphores to identify the particular "semaphore" type. In the case of a "semaphore" without a message, the STAG field has the code 0000. Bits 4 to 15 of "semaphore" I6OO are used to display the "semaphore" maximum count (SMC). The SMC field indicates the maximum number of auxiliary sources that can be built up on a "semaphore" or connected to it. Bits 16 to 31 contain a "semaphore" counter field (SCT) which is used to display the number of processes currently waiting on the "semaphore" or the number of resources waiting at the "semaphore" at that time. The relationship between the fields SMC and SCT is designed so that the value of the SCT field can never be greater than the value of the SMC field for reasons that will be clarified later.

Die Bits 32-47 sind der Kopf-Hinweis einer Prozeß-Warteschlange (PQHP). Der Kopf-Hinweis einer Prozeß-Warteschlange ist eine relative 16-Bitr-Verschiebung, die den Kopf der im GO Segment mit dem "Semaphor" verbundenen Prozeß-Verkettung anzeigt. Der Kopf-Index der Prozeß-Verkettung ist 0, wenn der Zählerstand von SCT 0 oder positiv ist, da am "Semaphor" keine Prozesse warten und keine Prozeß-Verkettung zu kennzeichnen ist. Wenn der SCT-Zählrstand negativ ist, zeigt das Feld PQHP den ersten am " Semaphor" eingereihtenBits 32-47 are the head of a process queue (PQHP). The header of a process queue is a 16-bit relative shift that is the head of the in the GO Segment with the "semaphore" linked to the process chain. The head index of the process chain is 0 if the counter reading of SCT is 0 or positive, since there are no processes waiting at the "semaphore" and no process chaining to be carried out is to mark. If the SCT count is negative, the PQHP field shows the first one in the "semaphore"

50 9834/083 0 ORIGINAL INSPECTED50 9834/083 0 ORIGINAL INSPECTED

Prozeß an. Die Bits 48 bis 62 bilden die Prozeß-Bezeichnung TEP. Dieses Feld beinhaltet die JP-Bezeichnung des letzten Prozesses, der eine erfolgreiche P-Operation am "Semaphor" durchgeführt hat. Dies bedeutet, daß das TEP-FeId die Bezeichnung des letzten Prozesses kennt, der erfolgreich eine Hilfsquelle vom "Semaphor" erhalten hat. Da nur eine Anzeige des Auftretens eines Geschehnisses angegeben ist, d.h. ein Signal, kennzeichnet die TEP-Bezeichnung den letzten Prozeß als den der das Signal empfangen hat.Process on. Bits 48 to 62 form the process designation TEP. This field contains the JP designation of the last Process that performed a successful P operation on the "semaphore". This means that the TEP field is the designation of the last process that successfully received a resource from the "semaphore". There is only one Indication of the occurrence of an incident is indicated, i.e. a signal, the TEP designation indicates the last one Process as the one who received the signal.

Um·festzustellen, ob ein "Semaphor" die Anwesenheit von Geschehnissen oder Hilfsquellen oder die Anwesenheit von Prozessen speichert oder nicht, ist der Zählwert des SCT-Feldes des "Semaphor" bestimmend. Wenn das SCT-FeId positiv ist, zeigt der SCT-Wert die Anzahl der auf Prozesse wartenden Hilfsquellen an. Andererseits, wenn SCT negativ ist, zeigt der absolute Wert von SCT die Anzahl der auf Hilfsquellen wartenden Prozesse an. Wenn das SCT-FeId gleich 0 ist, wartet zu diesem Zeitpunkt kein Prozeß oder keine Hilfsquelle am "Semaphor".To · determine whether a "semaphore" indicates the presence of Events or resources or the presence of processes stores or not, is the count of the SCT field determining the "semaphore". If the SCT field is positive, the SCT value shows the number of processes waiting resources. On the other hand, when SCT is negative, the absolute value of SCT shows the number of times Resources waiting processes. If the SCT field is 0, no process is waiting at this time or no source of help on the "semaphore".

Das SCT-FeId wird in Verbindung mit den P-und V-Operationen am "Semaphor" verwendet, um den Zählwert entweder zu inkrementieren oder zu dekrementieren. Daher dekrementiert eine P-Operation, über die ein Prozeß eine Hilfsquelle von einem festgelegten "Semaphor" abruft, bei Ausführung das SCT-FeId um 1. Andrerseits inkrementiert eine V-Operation, welche die Verfügbarkeit einer Hilfsquelle an den "Semaphor" meldet, das SCT-FeId des "Semaphor" um 1. Obwohl keine Meldungen mit "Semaphores" ohne Meldungen verbunden sind, werden die jeweiligen Basis-Inkrementierungan- und-Dekrementierungen durch V-bzw.P-Operationen der SCT-Felder sowohl auf "Semaphore" ohne Meldungen wie auf "Semaphore" mit Meldungen angewendet.The SCT field is used in conjunction with the P and V operations at the "semaphore" used to increment the count value either or to decrement. Therefore, a P operation through which a process decrements an auxiliary source from a specified "Semaphore" retrieves the SCT field by 1 when executed. On the other hand, a V operation increments which the availability of a resource to the "semaphore" reports, the SCT field of the "semaphore" at 1. Although no messages are associated with "semaphores" without messages, become the respective base incrementation and decrementation by V or P operations of the SCT fields both applied to "semaphores" without messages as to "semaphores" with messages.

509834/0830509834/0830

Wenn die Übertragung spezieller Informationen, die das Auftreten eines Geschehnisses betreffen, erforderlich ist, wird1 ein "Semaphor" 1602 mit einer Meldung verwendet. Wie in der Situation des "Semaphor" ohne Meldungen sind alle "Semaphore" mit einerMeldung einem bestimmten Ereignis zugeordnet, beispielsweise dem Abzug des Sozialversicherungsbetrags oder der Steuer bei einer Lohnvorauszahlung. Daher ist jedes "Semaphor" festgelegt und das Betriebssystem erzeugt die Adreßsilbe zur Lokalisierung des speziellen "Semaphor", wenn das spezielle Geschehnis auftritt.When the transmission of specific information relating to the occurrence of an event, is required, a "semaphore" 1602 1 used with a message. As in the situation of the "semaphore" without messages, all "semaphores" with a message are assigned to a specific event, for example the deduction of the social security amount or the tax on an advance wage payment. Therefore, each "semaphore" is fixed and the operating system generates the address syllable to locate the particular "semaphore" when the particular occurrence occurs.

Das TAG-FeId des Meldungs-"Semaphor" (STAG) ist als Bits 0 bis 3 dargestellt.Abhängig von der Codierung zeigt das STAG-FeId an, ob das "Semaphor" zu einem von zwei Typen gehört, d.h. ein Meldungs-Verwaltungs-"Semaphor" oder ein Meldungs-"Semaphor". Bei dem "Semaphor" mit einer Meldung kennzeichnet das STAG-FeId den Verkettungstyp der Meldung. Wenn das STAG -Feld 0001 ist, werden die Meldungen nach einem FIFO-Verfahren verkettet (first in first out). Wenn das STAG-FeId einen TAG von 0010 besitzt, werden nur LIFO-Meldungen (last in first out) am "Semaphor" verkettet. Wenn das STAG-FeId 0011 ist,' ist eine F1FO- oder LIFO-Meldungsverkettung zulässig.The TAG field of the message "semaphore" (STAG) is represented as bits 0 to 3. Depending on the coding, the STAG field indicates whether the "semaphore" belongs to one of two types, ie a message management "Semaphore" or a message "semaphore". In the case of the "semaphore" with a message, the STAG field identifies the chaining type of the message. If the STAG field is 0001, the messages are chained according to a FIFO procedure (first in first out). If the STAG field has a TAG of 0010, only LIFO messages (last in first out) are chained to the "semaphore". If the STAG field is 0011, 'F 1 FO or LIFO message chaining is permitted.

Das Meldungs-Verwaltungs-"Semaphor" besitzt ein STAG-FeId von 0101, welches anzeigt, daß die Meldungs-Verkettung durch die Priorität des Prozesses erfolgt und für jede Prioritätsstufe werden die Regeln des FlFo-Verfahrens angewendet. Das Meldungs-Verwaltungs.-"Semaphor" unterscheidet sich vom Meldungs-"Semaphor" durch die Benutzung von Prioritätsstufen, die eine schnellere Übertragung wichtiger Meldungen zulassen.The message management "semaphore" has a STAG field from 0101, which indicates that the message chaining is done by the priority of the process and for each Priority level, the rules of the FlFo procedure are applied. The message management "semaphore" differs from the message "semaphore" in the use of Priority levels that allow important messages to be transmitted more quickly.

509834/0830509834/0830

In Wort 1602 identifizieren die Bits 4 bis 15 den maximalen "Semaphor-Zählwert" SMC, und die Bits 16 bis 31 identifizieren den SCT-Zählwert und sind mit Wort 1600 identisch. Daher besitzt eine Meldung, die eine andere Form von Daten als die Signale darstellt, die gleiche Eigenschaft des Vorhandenseins oder Nichtvorhandenseins, wie das in "Semaphores" ohne Meldungen benutzte Signal. Daher wird das SCT-FeId in der . gleichen Weise von Meldungen im Meldungs-"Semaphor" benutzt, wie die Signale in den Semaphores ohne Meldungen.In word 1602, bits 4-15 identify the maximum "semaphore count" SMC, and bits 16-31 identify the SCT count and are identical to word 1600. Therefore a message that represents a different form of data than the signals has the same property of being present or nonexistence, such as the signal used in "Semaphores" without messages. Therefore, the SCT field in the. the same way of messages in the message "semaphore" is used as the signals in the semaphores without messages.

Die Bits 32 bis 47 enthalten entweder einen Meldungs-Warteschlangenkopf-Hinweis (MQHP) oder einen Prozeß-Warteschlangenkopf-Hinweis (PQHP). Wenn der SCT-Zählwert positiv ist, gibt SCT die Anzahl der am "Semaphor" verketteten Meldungen an.Bits 32 through 47 contain either a message header indication (MQHP) or a process queue notice (PQHP). When the SCT count is positive, there are SCT shows the number of messages linked to the "semaphore".

In diesem Fall würde' der Meldungs-Warteschlangenkopf-Hinweis auf die erste Meldung in der Meldungs-Warteschlange hinweisen. Die Bits 48 bis 63 enthalten einen Meldungsschlangen-Schwanz-Hinweis (MQTP), der auf die letzte Meldung der Meldungs-Warteschlange hinweist, wenn derSCT-Zählwert positiv ist. Wenn der SCT-Zählwert negativ ist, gibt der absolute Wert des SCT-Zählwerts die Anzahl der am "Semaphor" verketteten Prozesse an. In dieser Situation deutet PQHP auf den Kopf der Prozeß-Verkettungs-Warteschlange und der Meldungs- · Warteschlangen-Schwanz-Hinweis ist 0, da offensichtlich keine Meldungen vorhanden sind. In derSituation, in der der "Semaphor"-Zählwert gleich 0 ist, sind PQHP, MWQHP und MQTP auf 0, da keine Meldungen oder Prozesse identifiziert werden.In this case 'would be the message header hint indicate the first message in the message queue. Bits 48 through 63 contain a message queue tail pointer (MQTP), which indicates the last message in the message queue if the SCT count is positive. If the SCT count is negative, the absolute value of the SCT count gives the number of chained on the "semaphore" Processes. In this situation, PQHP points to the head of the process chaining queue and the message Queue Tail Hint is 0 as obvious there are no messages. In the situation in which the "Semaphore" count is 0, PQHP, MWQHP, and MQTP to 0 because no messages or processes are identified.

Die "Semaphores" in den Fig. 16a und 16b stellen den Signalisie rungs-Mechanismus für die Durchführung der Prozeß-Synchronisation dar. Diese sind in den SD-Segmenten bei 1506The "semaphores" in FIGS. 16a and 16b represent the signaling mechanism for carrying out the process synchronization These are in the SD segments at 1506

509834/0830509834/0830

_ 89 -_ 89 -

gespeichert. Sie werfen jedoch zusätzlich ein Problem hinsichtlich des Bedarfs an Speicherplatz auf, der entweder zur Speicherung-von Prozessen oder von Meldungen benutzt wird. Um dieses Speicher-Verwaltungsproblem zu erleichtern, werden die in Fig.i6d dargestellten freien Verkettungs-11 Semaphore" und die in Fig.16c dargestellten Prozeß-Verkettungs-"Semaphore" erzeugt. Jedes dieser "Semaphore" kontrolliert die verfügbare Anzahl freier Meldungsverkettungen, oder freier Prozeß-Verkettungen, wie nachstehend beschrieben wird.saved. However, they also pose a problem with regard to the need for memory space that is used either for storing processes or for messages. In order to alleviate this memory management problem, the free chaining 11 "semaphores" shown in FIG. 16d and the process chaining "semaphores" shown in FIG. 16c are generated. Each of these "semaphores" controls the available number of free message chaining, or free process chains, as described below.

Fig.16c stellt die Datenstruktur eines Prozeß-Verkettungs-"Semaphores" PLS 901 dar. Das Prozeß-Verkettungs-"Semaphor" verbindet alle nicht benutztenProzeß-Verkettungen miteinander, d.h. die Prozeß-Verkettungen ohne Prozeßbezeichnung. Wenn der Status eines Prozesses in den Bereit-Status umgeändert wird, ergibt sich die erste nicht benutzte Prozeß-Verkettung aus dem Prozeß-Verkettungs-"Semaphor". Diese Prozeß-Verkettung nimmt dann, unter anderen Feldern, die Bezeichnung des neu aktivierten Prozesses auf.Fig. 16c shows the data structure of a process chaining "semaphore" PLS 901. The process chain "semaphore" connects all unused process chains with one another, i.e. the process links without a process name. When the status of a process is changed to the ready status, the first unused process chaining results from the process chaining "semaphore". This process chaining takes then, among other fields, the name of the newly activated process.

Wenn andererseits ein Prozeß unterbrochen, beendet oder in den Funktions-Status versetzt wird, wird die in der Warteschlangen-Verkettung enthaltene Prozeßbezeichnung abgegriffen und das Verkettungsfeld wird nun so geändert, daß die Verkettung zwischen allen nicht benutzten Prozeß-Verkettungen aufrecht erhalten wird. Daher ermöglicht die Organisation eine Steuerung der Prozeß-Verkettungs-Warteschlange, ohne räumliche Veränderung einer Verkettung im GO-Segment, da es einfach genug ist, den Inhalt "nächstes Verkettungsfeld" einer Verkettung zu ändern. Hieraus ergibt sich, daß die Prozeß-Verkettungen von Warteschlange zu Warteschlange übertragen werden. Da alle Prozeßbezeichnungen im GO-SegmentOn the other hand, if a process is interrupted, terminated, or in the function status is changed, the process name contained in the queue chain is tapped and the link field is now changed so that the link between all unused process links is maintained. Therefore, the organization enables control of the process chaining queue, without changing the location of a link in the GO segment, since it is easy enough to change the content of the "next link field" of a link. It follows from this that the process chaining from queue to queue be transmitted. Since all process names in the GO segment

509834/0830509834/0830

- .90-- .90-

ge spei chert sind, ist das Prozeß-Verkettungs-"Semaphor" von wesentlicher Bedeutung als Reservespeicher für die ProzeßVerkettungen, die von neu in das System eingegebenen Prozessen erfordert werden. Zusätzlich enthält das Prozeß-Verkettungs-"Semaphor" einen Prozeß-Verkettungs-Warteschlangenkopf-Hinweis (PLQP) in den Bitpositionen 48 bis 63, der die relative Adresse der ersten Prozeßverkettung der Warteschlange in Bezug auf die GO-Segmentbasis anzeigt. Jede Prozeß-Verkettung enthält ein Feld "nächste Verkettung", das die nächste Prozeß-Verkettung indexiert, die mit dem Prozeß-Verkettungs-"Semaphor" verbunden ist. Daher werden bei Eingabe und Beendigung von Prozessen die Prozeß-Verkettungen im GO-Segment wieder aufgebaut; nur die erste Prozeß-Verkettung muß jedoch bekannt sein, da von ihr aus alle übrigen Prozeß-Verkettungen lokalisiert werden können.are saved, the process chaining "semaphore" of essential importance as reserve memory for the process links that are newly entered into the system Processes are required. In addition, the process chaining "semaphore" contains a process chaining queue head indication (PLQP) in bit positions 48 to 63, which indicates the relative address of the first process chain of the queue with respect to the GO segment base. Each process chain contains a "next chain" field, that indexes the next process chain associated with the process chain "semaphore". Hence be the process links in the GO segment are rebuilt when processes are entered and terminated; only the first Process linkage must, however, be known, since all other process links can be localized from it.

Das in Fig.i6d dargestellte freie Verkettungs-"Semaphor" FLS ist insofern analog zum Prozeß-Verkettungs-"Semaphor", daß es alle unbenutzten freien Meldungs-Verkettungen des Segments miteinander verbindet. Die freien Meldungs-Verkettungen sind jedoch nicht im GO-Segment sondern in den bereits beschriebenen SD-Segmenten enthalten. Das FLS besitzt eine Datenstruktur mit einer Länge von drei Worten; sie hat das folgende Format,The free concatenation "semaphore" shown in Fig.i6d In this respect, FLS is analogous to the process chaining "semaphore", that it connects all unused free message chains of the segment with one another. The free message chains are not included in the GO segment but in the SD segments already described. The FLS owns a data structure three words in length; it has the following format,

Die Bits 0 bis 3 stellen das STAG-FeId dar, das den "Semaphor"-Typ kennzeichnet. Bei einem freien Meldungs-Verkettungs-"Semaphor" ist dieses STAG-FeId 0000.Die Bits 4 bis 15 müssen, wie durch MBZ angezeigt, 0 sein. Die Bits 16 bis 31 sind der Zählwert eines freien Verkettungs-"Semaphors" (FLSCT) und dieses Feld gibt die Anzahl der Prozesse an, die auf eine freie Meldungs-Verkettung Q/PR/FLS warten. Diese negative Zahl wird dekrementiert, wenn Prozesse mit dem freien Verkettungs-"Semaphor" verbunden werden. Wenn dieBits 0 to 3 represent the STAG field, which is the "semaphore" type indicates. In the case of a free message concatenation "semaphore", this STAG field is 0000. Bits 4 to 15 must be 0 as indicated by the MBZ. Bits 16 to 31 are the count value of a free concatenation "semaphore" (FLSCT) and this field indicates the number of processes waiting for a free message chain Q / PR / FLS. This negative number is decremented when processes start with the free concatenation "semaphore". If the

§09834/0830§09834 / 0830

FLSCT-Nummer O ist, warten keine Prozesse auf eine freie Meldungs-Verkettung. Die Bits 32 bis 47 sind die Prozeß-Warte schlangen-Kopf -Hinweise PQHP und die Bits 48 bis 63 der freie Meldüngs-Verkettungs-Warteschlangen-Hinweis FLQP* Der Prozeß-Warteschlangen-Kopf-Hinweis ist bereits beschrieben worden; das "Semaphor11 mit Meldungen und der freie Meldungsverkettungs-Warteschlangenkopf-Hinweis ist ein Hinweis auf die erste mit dem freien Verkettungs-"Semaphor" assoziierten Meldungs-Verkettung. Die freien Meldungs-Verkettungen werden LIFO-Reihenfolge unter Benutzung ihres nächsten Wrkettungsfeldes zusammengefaßt. Die Bits 64 bis 71 müssen 0 sein und die Bits 72 bis 79 sind die allgemeine Bezeichnung (G-Bezeichnung) des freien Verkettungs-"Semaphor". Die Bits 81 bis 95 stellen den Zählwert des Logikkanals (CCT) dar, der die Anzahl der Logikkanäle angibt, die auf eine freie Meldungs-Verkettung warten. Dies tritt in Eingabe/Ausgabe-Operationen auf, in denen eine Einheit über ihre Logikkanäle auf eine freie Meldungs-Verkettung wartet, um mit einemProzeß über ein "Semaphor" in Verbindung zu treten, und keine freien Meldungs-Verkettungen sind verfügbar. FLSCT number is O, no processes are waiting for a free message chaining. Bits 32 to 47 are the process queue head indications PQHP and bits 48 to 63 are the free message chaining queue indication FLQP * The process queue head indication has already been described; the "semaphore 11 with messages and the free message chain queue header hint is an indication of the first message chain associated with the free chain" semaphore ". The free message chains are grouped in LIFO order using their next chain field Bits 64 through 71 must be 0 and bits 72 through 79 are the general designation (G designation) of the free concatenation "semaphore." Bits 81 through 95 represent the count of the logic channel (CCT), which is the number of logic channels This occurs in input / output operations in which a unit waits on its logical channels for a free message chain in order to communicate with a process via a "semaphore", and no free message chains are available.

Wenn eine V-Operation von einem Prozeß an einem "Semaphor" mit einer Meldung im SD-Segment von FLS durchgeführt wird, wird die erste von FLQP angezeigte Meldungs-Verkettung zur Speicherung der Meldung verwendet. FLQP wird daraufhin geändert, um die nächste verfügbare freie Meldungs-Verkettung anzuzeigen. Wenn andererseits an einem "Semaphor" mit einer Meldung im SD-Segment von FLS eine P-Operation durchgeführt wird, erfolgt eine Freigabe der Meldungskette, die vorher die Informationen enthielt und eine Rückleitung an die mit FLS verbundene Warteschlange. Nur wenn keine Meldungs-Verkettungen verfügbar sind und eine Verkettung erforderlich ist, wird der PQHP von FLS benutzt, da dieser angibt, daßWhen a V operation is performed by a process on a "semaphore" is carried out by FLS with a message in the SD segment, the first message chain displayed by FLQP becomes Used to store the message. FLQP is then changed to the next available free message chain to display. If, on the other hand, a "semaphore" with a message in the SD segment of FLS is performed a P operation the message chain that previously contained the information is released and returned to the queue associated with FLS. Only if no message chains are available and a chain is required the PQHP is used by FLS because it indicates that

509834/0830509834/0830

ein Prozeß ohne Erfolg versucht hat, eine Meldung zu übertragen. Daher ist FLS eine Speicherverwaltungslösung der Speicherraum-Einschränkungen eines SD-Segments durch Auffinden aller im Segment verfügbaren freien Meldungs-Verkettungen. a process attempted to transmit a message without success. Therefore, FLS is a storage management solution for the Storage space restrictions of an SD segment by finding it all free message chains available in the segment.

Nach der hier erfolgten Beschreibung der System-Konfiguration, in der das "Semaphor" arbeitet und der Beschreibung der "Semaphore" selbst, wird eine Analyse der Operationen und Funktionen der "Semaphore" durchgeführt. Zur Unterstützung der Beschreibung ist in Fig.17 die Adressierung des "Semaphor" dargestellt, und die Fig.17 und 18 stellen die verschiedenen "Semaphore" und die mit ihnen zu verbindenden Warteschlangen dar. Aus den Fig.17 und 18 ergibt sich die Beziehung der "Semaphore" und der Warteschlangen-Struktur zur Konzeption des Gesamtsystems.According to the description of the system configuration in which the "semaphore" works and the description the "semaphore" itself, an analysis of the operations and functions of the "semaphore" is carried out. For support 17 of the description, the addressing of the "semaphore" is shown, and FIGS. 17 and 18 represent represents the various "semaphores" and the queues to be connected to them. FIGS. 17 and 18 show the relationship of the "semaphore" and the queue structure to the design of the overall system.

In Fig.17 ist die Entwicklung der "Semaphor"-Position mit Hilfe des oben beschriebenen segmentierten Mechanismus (Fig.5) dargestellt. Insbesondere werden die "Semaphore" durch Prozeß-Synchronisations- und! -Multiplexierungs-Befehle adressiert, z.B. P-oder V-Befehle, die eine 20-Bit-Adreßsilbe (AS) besitzen, deren Auflösung ein Durchsuchen der Struktur der Adressierungstabellen 503 und 504 erfordert und eine Auswahl des Prozeß-Steuerblocks 400 durch die JP-Nummern des laufenden Prozesses bewirkt. Daraufhin werden die "Werte STN 1700 und STE 1702 zur Auffindung des Segment-"Descriptors" verwendet, der die relative Adresse des SD-Segments definiert. Die SRA (relativeSegmföntadresse) ergibt sich aus der Addition der Verschiebung (in der Adreßsxilbe spezifiziert), mit dem "OFFSET" innerhalb des Basisregisters 202 von Fig.2 (auch in AS angegeben).FIG. 17 shows the development of the "semaphore" position with the aid of the segmented mechanism described above (FIG. 5). In particular, the "semaphores" are made possible by process synchronization and! -Multiplexing commands addressed, e.g. P or V commands that have a 20-bit address syllable (AS), the resolution of which requires a search through the structure of the addressing tables 503 and 504 and a selection of the process control block 400 by the JP Numbers of the running process causes. The "values STN 1700 and STE 1702" are then used to find the segment "descriptor" which defines the relative address of the SD segment. The SRA (relative segment address) results from the addition of the shift ( specified in the address x ilbe) , with the "OFFSET" within the base register 202 of FIG. 2 (also indicated in AS).

509834/0830509834/0830

Anschliessend wird eine Errechnung der absoluten Adresse durchgeführt,um die Position des "Semaphor"-Descriptors im Speicher festzulegen. Der "Semaphor"-Descriptor (Res.Fig.15, Punkt 1505a) enthält die segmentierte Adresse (d.h. STN,STE und SRA) des "Semaphor", auf der der PORV-Befehl durchgeführt werden soll. Für die anderen Prozesse innerhalb des Systems,2uderEnein Prozeß eine "Semaphor"-Adresse übertragen soll und die eine Rückmeldung über ein solches "Semaphor" erwarten, &h. ein Eingabe/Ausgabe-Prozeß, wird die Adresse des "Semaphor" über dessen GD-Adresse angegeben, da die GD-Adresse auf systemweiter Basis und nicht auf einer engen JP-Prozeßbasis verwendet werden kann. Hieraus ergeben sich zwei "Semaphor"-Adressierverfahren, da die "Semaphore" und die auf ihnen aufgebauten Strukturen sich notwendigerweise im aufgeteilten Teil der Adreß-Basis verschiedener Prozesse befinden und daher für jedes W1-fahren zugänglich sein müssen.The absolute address is then calculated in order to determine the position of the "semaphore" descriptor in the memory. The "semaphore" descriptor (Res.Fig.15, point 1505a) contains the segmented address (ie STN, STE and SRA) of the "semaphore" on which the PORV command is to be carried out. For the other processes within the system, no process should transmit a "semaphore" address and which are expecting a response via such a "semaphore", & h. an input / output process, the address of the "semaphore" is specified via its GD address, since the GD address can be used on a system-wide basis and not on a narrow JP process basis. This results in two "semaphore" addressing methods, since the "semaphore" and the structures built on them are necessarily located in the divided part of the address base of different processes and must therefore be accessible for every W 1 drive.

Wie bereits in Verbindung mit Fig.16 erläutert wurde, gibt es zwei Basis-Semaphore die über P-oder V-Befehle adressiert werden, dh. "Semaphore" 16OO ohne Meldungen und "Semaphore" 1602 mit Meldungen. Zuerst wird das "Semaphor" ohne Meldung überprüft und anschliessend wird das "Semaphor" mit Meldung übernommen.Die abgegebene Befragung wird einige Zeit nach der System-Initialisierung übernommen. Die "Semaphor"-Strukturen haben bereits einen bestimmten Entwicklungsstatus erreicht, der in den Fig.18 und 17" dargestellt ist.As has already been explained in connection with FIG there are two basic semaphores which are addressed via P or V commands be, ie. "Semaphore" 16OO without messages and "Semaphore" 1602 with messages. First the "semaphore" Checked without a message and then the "semaphore" is accepted with the message. The survey submitted is carried out Taken over some time after system initialization. The "semaphore" structures already have a specific one Reached development status, which is shown in Figs. 18 and 17 " is shown.

Wenn ein neuer Prozeß vom System eingegeben wird, d.h. wenn ein Wechsel vom Unterbrechungs-Status zu einem Funktions-Status erfolgt, wird die Prozeß-Bezeichnung in die Prozeß-Verkettung 805a bis c des GO-Segments 802 eingeschrieben.When a new process is entered by the system, i.e. when If there is a change from the interrupt status to a function status, the process designation is included in the process chain 805a to c of the GO segment 802.

509834/0830509834/0830

Diese Prozeß-Verkettung ergibt sich aus der mit dem "Semaphor" PLS 901 verbundenen Warteschlange; d.h. der freien Prozeß-Verkettungs-Warte schlange. Daher würde die erste Verkettung, auf die sich das PLS-Semaphore bezieht, für die neue Prozeß-Bezeichnung benutzt, und der PLQP des PLS-"Semaphor" würde geändert, um auf die nächste freie Verkettung in seiner Warteschlange hinzuweisen. Das Verschiebungsfeld PLQP in Fig.18 würde so geändert, daß es nicht mehr auf 805a, sondern auf 805b hinwiese. Andererseits würde die Verkettung 805a in die Bereit-Warteschlange Q/PR/RDY eingereiht, da der Prozeß gestartet worden ist und zur Übernahme der Hilfsquelle der Maschine bereit ist. Wenn die Prozeß-Verkettung 805a in die Bereit-Warteschlange eingereiht ist, würde sie jedoch gemäß ihrer Priorität vom Dispatcher in die LIFO-Reihenfolge eingereiht werden. Daher kann sich diese Prozeß-Verkettung entweder im "Kopf" von Q/PR/RDY oder höchstens in der sechstenPosition innerhalb der gegebenen Konfiguration der Warteschlange befinden.This process chain results from the "semaphore" PLS 901 connected queue; i.e. the free process chaining queue. Hence the first concatenation, to which the PLS semaphore refers, used for the new process designation, and the PLQP of the PLS "semaphore" would be changed to indicate the next free link in its queue. The displacement field PLQP in Fig. 18 would be changed so that it no longer refers to 805a, but pointed to 805b. On the other hand, the concatenation 805a would be placed in the ready queue Q / PR / RDY, because the process has started and is ready to take over the machine's resource. When the process chaining 805a is queued in the ready queue, however, it would be assigned to the dispatcher according to its priority be included in the LIFO sequence. Therefore can this process chaining either in the "head" of Q / PR / RDY or at most in the sixth position within the given Configuration of the queue.

Wenn sich der Prozeß einmal in der Bereit-Warteschlange befindet, würde er seinen Abruf abv/arten, bis' er die Kontrolle über das zentrale Verarbeitungs-Untersystem erhält.Nach Durchführung dieser Operation wäre er in der Lage, die zentrale Verarbeitungseinheit zur Verarbeitung seiner Prozedur-Se,gmente einschließlich ναι Kommunikations-Sjgialm üba·· die P-oder V-Bef ehle zu veranlassen. Wenn ein P-Befehl an einem "Semaphor" ohne Meldung durchgeführt wird, d.h. ein Prozeß, der ein Signal von einem anderenProzeß benötigt, bevor er ablaufen kann, würde der System-Mechanismus die Adreßsilbe verwenden, um ein bestimmtes "Semaphor" 1600 ohne Meldung zu ermitteln, das benutzt werden soll.Bei der Lokalisierung dieses "Semaphor" wird überprüft, ob das STAG-FeId 0000 ist und das SCT-FeId würde überprüft, um festzustellen, ob der Zählbetrag größer als 0, kleiner als 0 oder gleich 0 war.Once the process is in the ready queue, he would read his call until he got control of the central processing subsystem. After execution With this operation he would be able to set the central processing unit to process his procedure sequence including ναι communication signals about the P or V commands to cause. When a P command is performed on a "semaphore" without notification, i.e. a process that has a Signal from another process before it can run, the system mechanism would use the address syllable to determine a certain "semaphore" 1600 without a message that is to be used. During localization this "semaphore" is checked whether the STAG field is 0000 and the SCT field would be checked to see if the Count amount was greater than 0, less than 0 or equal to 0.

509834/0830509834/0830

Wenn das SCT-FeId größer als O war, gibt das entsprechende "Semaphor" ohne Meldung an, daß eine bestimmte mit ihm verbundene Hilfsquelle für den abrufendenProzeß verfügbar ist. Der Prozeß würde daraufhin die verlangte Hilfsquelle übernehmen und die folgenden Operationen freigeben. Er würde zuerst den Zahlbetrag des SCT-Feldes um 1 dekrementieren, um anzuzeigen, daß er einenP-Befehl durchführt und als nächstes seine Bezeichnung in das TEP-FeId übertragen, das nun das "Semaphor" ohne Meldung beinhaltet und anzeigt,, daß eine erfolgreiche Operation an einem "Semaphor" durchgeführt worden ist.If the SCT field was greater than 0, the corresponding "Semaphore" without notification that a particular auxiliary resource associated with it is available for the calling process is. The process would then take over the requested resource and enable the following operations. He would first decrement the payment amount of the SCT field by 1, to indicate that it is executing a P command and next to transfer its designation to the TEP field, which now contains the "semaphore" without a message and indicates that a successful operation was performed on a "semaphore".

Wenn das SCT-FeId des "Semaphor" 1600 ohne Meldung niedriger oder gleich 0 wäre, würde dies bedeuten, daß die mit dem "Semaphor"verbundene Hilfsquelle nicht verfügbar ist. Daher würde der Prozeß , welcher einenP-Befehl an einem "Semaphor" ohne Meldung durchführt, in die Warteschlange Q/PR/S geleitet, d.h. da er die P-Befehle nicht durchführen .konnte, da keine Hilfsquellen verfügbar waren, würde er selbst den Funktions-Status verlassen und sich selbst mit dem "Semaphor" ohne Meldung verketten. Dieses "Semaphor" würde den Prozeß melden, wenn die von ihm erforderte Hilfsquelle verfügbar wird. Auf diese Weise geht der Prozeß aufgrund seiner eigenen Tätigkeit bei der Durchführung des P-Befehls vom Funktions- in den-Warte-Status über. Dies ist in Fig.17 (1600) dargestellt, in der diese Situation zweimal aufgetreten ist und zwei Prozesse auf das "Semaphor" ohne Meldung warten. Bei Nummer 1602 ist festzustellen, daß der Prozeß-Warteschlangenkopf-Hinweis PQHP auf den ersten Prozeß 1720 hinweist, der vom "Semaphor" 1600 aufgebaut ist, dessen nächstes ■Verkettungs-Feld wiederum auf den zweiten Prozeß 1722 hinweist, der vom "Semaphor" aufgebaut ist; das Feld "nächste Verkettung" des zweiten Prozesses enthält "0" und kennzeichnet, daß keine weiteren Prozesse aufIf the SCT field of the "Semaphore" 1600 is lower without a message or equal to 0, this would mean that the auxiliary source associated with the "semaphore" is not available. Therefore the process which performs a P command on a "semaphore" without a message would be put into the queue Q / PR / S, i.e. because he could not carry out the P commands, because none If resources were available, he would himself the functional status leave and concatenate itself with the "semaphore" without a message. This "semaphore" would start the process report when the resource they require becomes available. In this way the process goes on on its own Activity when executing the P command from function to wait status. This is in Fig.17 (1600), in which this situation has occurred twice and two processes on the "semaphore" without Message waiting. At 1602, note that the process header pointer PQHP points to the first Process 1720, which is set up by the "semaphore" 1600, whose next ■ concatenation field again points to the second process 1722 constructed by the "semaphore"; contains the "next chain" field of the second process "0" and indicates that no further processes are on

509834/0830509834/0830

dem "Semaphor" 16OO ohne Meldung aufgebaut sind. Wenn der Prozeß selbst seine Übertragung zu Q/PR/S durchgeführt hat, würde er das SCT-FeId dekrementieren, jedoch nicht seine Bezeichnung in das TEP-FeId übertragen, da keine erfolgreiche Operation an einem "Semaphor" I6OO durchgeführt worden ist.the "semaphore" 16OO are built up without a message. if the process itself has carried out its transfer to Q / PR / S, it would decrement the SCT field, but not its designation transferred to the TEP field, since no successful operation was carried out on a "semaphore" I6OO has been.

Wenn der Prozeß einen V-Befehl an einem "Semaphor" I6OO ohne Meldung durchführen würde, d.h.der Prozeß hat die Benutzung der Hilfsquelle eingestellt und erzeugt ein dies anzeigendes Signal, das er dem Semaphor abgeben will, dann würde das SCT-FeId nochmals überprüft werden, um denStatus des "Semaphor" festzustellen. Wenn der SCT-Zählwert des "Semaphor" größer als 0 wäre, d.h. daß zwei Hilfsquellen verfügbar sind, oder gleich 0 wäre, würde der Zählwert um 1 inkrementiert, um anzuzeigen, daß die Hilfsquellen, die vom Prozeß benutzt wurden, zur Benutzung durch einen anderen Prozeß zur Verfügung stehen. Der den V-Befehl durchführende Prozeß würde daraufhin im Funktions-Status weiterlaufen.When the process sends a V command to a "semaphore" I6OO would perform without a message, i.e. the process has stopped and created the use of the auxiliary source a signal indicating this, which he wants to give to the semaphore, then the SCT field would be checked again, to determine the status of the "semaphore". If the SCT count of the "semaphore" were greater than 0, i.e. that two Resources are available or equal to 0, the count would be incremented by 1 to indicate that the resources used by the process are available for use by another process. The den The process executing the V command would then continue to run in the function status.

Wenn der SCT-Zählwert jedoch kleiner als 0 wäre (siehe Fig.17) und dadurch anzeigen würde, daß ein weiterer Prozeß in Q/PR/S auf eine Hilfsquelle wartet, würde diese durch die Freigabe mittels des V-Befehls dem ersten Prozeß 1720 zur Verfügung gestellt werden, das mit dem "Semaphor" in der Warteschlange Q/PR/RDY verbunden ist; zusätzlich würde der SCT-Zählwert um 1 inkrementiert.Der Dispatcher würde das Signal vom "Semaphor" aufnehmen und den PCB des am "Semaphor" wartenden Prozesses 1720 in den Bereitstatus versetzen. Wenn ein Prozeß in den Bereit-Status übergegangen ist, befindet er sich in einer· Warteschlange Q/PR/RDY. Diese Warteschlange verkettet alle Prozesse, dieHowever, if the SCT count value were less than 0 (see Fig. 17) and would thereby indicate that another process in Q / PR / S is waiting for an auxiliary source, this would be through the Release to the first process 1720 by means of the V command which is connected to the "semaphore" in the queue Q / PR / RDY; Additionally the SCT count would be incremented by 1. The dispatcher would pick up the signal from the "semaphore" and the PCB the process 1720 waiting at the "semaphore" is put into the ready state. When a process is in the ready status has passed over, it is in a · queue Q / PR / RDY. This queue concatenates all processes that

50983^/083050983 ^ / 0830

sich im Bereit-Status befinden, d.h. die auf die Verfügbarkeit der CPU wartet. Prozesse sind in der Prioritäts-Reihenfolge in Q/PR/RDY aufgereiht und auf jeder Prioritätsstufe werden die Regeln FIFO oder LIFO angewendet. Die FIFO-Regeln werden angewendet, wenn sich der Prozeß vor der Einreihung im Warte-Status befand und die LIFO-Regeln werden angewendet, wenn sich der Prozeß vor der Einreihung im Funktions-Status befand. Der laufende Prozeß im Funktions-Status würde nun auf Priorität gegenüber dem im "Kopf" der Bereit-Warteschlange befindlichen Irozeß überprüft. Es ist zu bemerken, daß der "Kopf-Prozeß der Bereit-Warteschlange mit dem Prozeß identisch sein kann (oder nicht, der vorher1 an dem "Semaphor" gewartet hat, der gerade in den Bereit-Status versetzt worden ist. Ein Test würde durchgeführt, um festzustellen, welcher Prozeß , d.h. der laufende Prozeß oder der im "Kopf" der Warteschlange befindliche Prozeß, die höhere Priorität besitzt und der Prozeß mit der höheren Priorität wird der neue Prozeß im Funktions-Status. Demzufolge wurde gemäß Fig.17 eine V-Operation an "Semaphor" 1600 durchgeführt, der auf die Prozeß-Verkettung 1720 hinweisende Kopf-Hinweis würde anzeigen,■ daß dieser Prozeß das Signal empfangen soll. Die Prozeßverkettung 1720 würde nun in die Bereit-Warteschlange eingereiht und der SCT-Zählwert von "Semaphor" 1600 würde auf minus 1(-1) inkrementiert. Weiterhin würde der PQHP-Hinweis von "Semaphor" 1600 anzeigen, daß die Prozeß-Verkettung 1722 als nächster Prozeß das Signal erhält, wenn eine Hilfsquelle verfügbar wird.are in the ready status, ie waiting for the CPU to be available. Processes are lined up in the order of priority in Q / PR / RDY and the rules FIFO or LIFO are applied at each priority level. The FIFO rules are used when the process was in the wait state prior to the enqueue and the LIFO rules are used when the process was in the functional state prior to the enqueuing. The current process in the function status would now be checked for priority compared to the process in the "head" of the ready queue. Note that the "head" process of the ready queue may or may not be the same as the process that previously waited 1 on the "semaphore" that just got ready. A test would is carried out to determine which process, ie the current process or the process located in the "head" of the queue, has the higher priority and the process with the higher priority becomes the new process in the functional status V operation performed on "semaphore" 1600, the header hint pointing to process chain 1720 would indicate that this process should receive the signal. Process chain 1720 would now be placed in the ready queue and the SCT count of "Semaphore" 1600 would be incremented to minus 1 (-1). Furthermore, the PQHP indication from "Semaphore" 1600 would indicate that the process chain 1722 will be the next process to receive the signal when an auxiliary source becomes available.

Die "Semaphore" 1602 des Typs mit Meldungen sind bei 1706 in Fig.17 und bei 1806 in Fig.18 dargestellt. Wenn ein P-Befehl an einem "Semaphor" mit Meldung durchgeführt wird, erfolgt eine Überprüfung des SCT-Feldes, um den Status des "Semaphor" selbst festzustellen. Wenn der Zählwert größer als Null ist, kennzeichnet dies eine V/arteschlangeThe "semaphores" 1602 of the type with messages are at 1706 shown in Fig.17 and at 1806 in Fig.18. if a P command is carried out on a "semaphore" with a message the SCT field is checked to determine the status of the "semaphore" itself. When the count is greater than zero, this indicates a V / art queue

509834/0830509834/0830

von Meldungen am "Semaphor" Q/M/S.Dies ergibt sich daraus, daß vorher ein Prozeß eine V-Operation am"Semaphor" durchgeführt hat und dadurch eine Meldung an das "Semaphor" weitergeleitet hat und zwischenzeitlich eine Inkrementierung seines Zählwertes von 0 zu einer positiven Zahl erfolgt ist. of messages on the "semaphore" Q / M / S. This results from the fact that a process previously carried out a V operation on the "semaphore" and thereby passed a message to the "semaphore" and, in the meantime, an increment of its count value of 0 to a positive number.

Da mit dem "Semaphor" 1706 die Meldungen 1708 und 1710 verbunden sind, wird eine Kopie der Meldung 1708 in die allgemeinen Register des laufendenProzesses durchgeführt, der diesen P-Befehl durchführt.Zusätzlich zur Übertragung des Inhalts der Meldung, wird die Meldungs-Verkettung 1708 in die Meldungs-Warteschlange des freien Verkettungs-"Semaphor" Q/ML/FLS eingereiht, da die Informationen, die sich in der Meldungs-Verkettung 1708 befanden, freigegeben worden sind. Der Zählwert von Semaphor 1706 würde um 1 auf plus 1. (+1) dekrementiert; der Meldungs-Warteschlangen-Kopfhinweis würde verändert, um anzuzeigen, daß die Meldungs-Verkettung 1706 die nächste mit dem "Semaphor" 1706 zu verkettende Meldung ist, und der Meldungs-Warteschlangen-Schwanzhinweis würde sich nicht ändern, da 1710 die letzte Meldung in der Meldungs-Verkettung ist. Wenn jedoch eine Angliederung einer Meldung an Q/M/S von I706 erfolgte, würde das SCT-FeId um 1 inkrementiert, der Meldungs-Warteschlangen-Kopfhinweis würde unverändert bleiben, und der Meldungs-Warteechlangen-Schwanzhinweis würde die Meldung anzeigen, die mit der Meldungs-Verkettung verbunden wird, die eine FIFO-Einreihung durchführt. Bei Anzeige von LIFO oder Einreihung . mit Vorrang, würde die sich hieraus ergebende Warteschlange die entsprechende Reihenfolge ausdrücken. Since with the "semaphore" 1706 the messages 1708 and 1710 are connected, a copy of message 1708 is made in the general registers of the current process, who carries out this P command, in addition to the transmission of the content of the message, the message chaining 1708 is placed in the message queue of the free chaining "semaphore" Q / ML / FLS queued because the information that was in the message chain 1708 has been released have been. The count of semaphore 1706 would be decremented by 1 to plus 1. (+1); the message queue header would be changed to indicate that the message chain 1706 would do the next with the "semaphore" 1706 is message to be chained and the message queue tail hint would not change because 1710 is the last message in the message chain. if However, if a message was attached to Q / M / S from I706, the SCT field would be incremented by 1, the Message queue header would remain unchanged and the message queue tail would be the Display the message associated with the message chain that is performing a FIFO enqueuing. When displayed by LIFO or classification. with precedence, the resulting queue would express the appropriate order.

Wenn eine Meldungs-Verkettung in die Warteschlange Q/ML/SLS eingegliedert wird, werden Tests an dem FLS-"Semaphor" durchgeführt, das dem allgemein als 802n dargestellten SD-Segment entspricht, diese Tests stellen fest, ob ein ProzeßWhen a message chain is in the Q / ML / SLS is incorporated, tests are performed on the FLS "semaphore," which is the SD segment shown generally as 802n these tests determine whether a process

509834/0830509834/0830

auf eine freie Meldungs-Verkettung gewartet hat. Da eine Meldungs-Verkettung vom derzeit laufenden Prozeß freigegeben worden ist, kann, wenn ein anderer Prozeß auf eine freie Meldungs-Verkettung gewartet hat, die Meldung, die dieser andere Prozeß enthält, nun in der freien Meldungs-Verkettung kopiert werden.waited for a free message chaining. There one Message chaining has been released by the currently running process if another process is on a free message chain was waiting, the message that this other process contains is now in the free one Message chain can be copied.

In diesem Beispiel ist gezeigt worden, daß freie Meldungs-Verkettungen verfügbar gewesen sind, d.h. 1712, 1714 und 1716 sind freie Meldungs-Verkettungen, und daß daher kein Prozeß auf freie Meldungs-Verkettungen wartet. Dieser Schritt wird jedoch nicht durchgeführt.In this example it has been shown that free message chains have been available, i.e. 1712, 1714 and 1716 are free message chains, and therefore none Process is waiting for free message chains. However, this step is not carried out.

Wenn der SCT-Zählwert geringer als 0 wäre, wenn der P-Befehl an einem "Semaphor" mit einer Meldung durchgeführt wurde, würde dies anzeigen, daß eine Q/PR/S bereits erstellt worden ist. Daher würde der Prozeß, der die P-Operation durchführt zu einem weiteren der am "Semaphor." wartenden Prozesse werden und sich selbst in die Warteschlange einreihen. So würde der Prozeß gemäß Fig.18 und "Semaphor" 1800 mit Meldung, eine freie Prozeß-Verkettung von GO-Segment 802 erhalten und sich selbst mit der Prozeß-Verkettung 1802 integrieren, die mit "Semaphor" 1800 . verbunden ist und in die Q/PR/S-Warteschlange an "Semaphor" 1800 eingereiht. (SCT würde außerdem auf minus 5 dekrementiert werden.)If the SCT count were less than 0 when the P command was performed on a "semaphore" with a message, this would indicate that a Q / PR / S has already been created has been. Therefore, the process performing the P operation would become another one of the "semaphore." waiting processes and enqueue themselves. The process according to FIGS. 18 and "Semaphore" 1800 with message that a free process chain has been received from GO segment 802 and itself with the process chain 1802 integrate that with "semaphore" 1800. connected and in the Q / PR / S queue at "Semaphore" Listed in 1800. (SCT would also be decremented to minus 5.)

Wenn der· SCT-Zählwert, wie von "Semaphor" 1704 in Fig.17 dargestellt, 0 wäre , würde am "Semaphor" eine Warteschlange von Prozessen Q/PR/S ,gebildet, da die P-Operation den SCT-Zählwert auf minus eins (-1) dekrementieren und den PQHP von "Semaphor" 1704 so ändern, würde, daß dieser dieses "Semaphor" anzeigt. Es ist zu bemerken, daß bei dieeer Prozedur Schwankungen auftreten können, die davon abhängen,When the · SCT count, as indicated by "Semaphore" 1704 in Fig. 17 If 0 were shown, there would be a queue at the "semaphore" formed by processes Q / PR / S, as the P operation decrements the SCT count to minus one (-1) and would change the PQHP of "Semaphore" 1704 so that this this "semaphore" indicates. It should be noted that there may be fluctuations in this procedure which depend on

S09834/G830S09834 / G830

ob Prozeß-Verkettungen verfügbar sind oder nicht; dies braucht jedoch für die Erfindung nicht beschrieben zu werden.whether or not process chains are available; this however, need not be described for the invention.

In der Situation, in der ein Prozeß eine V-Operation an einem Meldungs-"Semaphor" durchführt, wartet der Prozeß auf seine Fortsetzung im Funktions-Status, doch muß er sich der Meldung, die er enthält, entledigen. Diese Meldung enthält die Prozeßbezeichnung des Prozesses, die diese Meldung in andere Felder übertragen hat.In the situation where a process is performing a V operation on a Message "semaphore" executes, the process waits for its Continuation in functional status, but it has to get rid of the message it contains. This message contains the Process name of the process that transferred this message to other fields.

Daher können viele Prozesse Informationen über ein einzelnes "Semaphor" senden, wenn sie mit der Bezeichnung des Absenders versehen sind und nicht einfach Signale, sondern Meldungen übertragen. Diese Meldungen unterscheiden sich voneinander, und der Speicherraum 1508 des SD-Segments kann zu ihrer Speicherung verwendet werden.Therefore, many processes can send information through a single "semaphore" when labeled with the sender are provided and do not simply transmit signals, but messages. These messages differ from one another, and SD segment storage space 1508 can be used to store them.

Genauer noch, bei der Ausführung eines V-Befehls wartet ein Prozeß 802b, wenn das SCT-FeId kleiner als 0 ist, und dies ist die Situation bei "Semaphor" 1800 von Fig.18, auf die Freigabe der Meldung. Daher würde die Meldung des Prozesses, der den V-Befehl ausführt in den PCB geschrieben, auf den die Prozeß-Verkettung 1802b hinweist, die mit "Semaphor" 1800 verbunden ist, an dem der V-Befehl durchgeführt wurde. Der Prozeß,der die Meldung enthält, würde daraufhin in die Bereit-Warteschlange Q/PR/RDY 803 übergehen und der laufende Prozeß, der den V-Befehl durchführte, würde weiter ablaufen,wenn er eine höhere Priorität besäße als der Prozeß im "Kopf" der Bereit-Warteschlange. Der Zählwert von "Semaphor" 1800 würde um eine auf minus drei (-3) inkrementiert, und derPQHP würde so geändert werden, daß er auf die Prozeß-Verkettung 1802a hinweist.To be more precise, a waits when executing a V command If the SCT field is less than 0, process 802b is the situation at "semaphore" 1800 of Fig.18 to which Release of the message. Therefore, the message of the process executing the V command would be written to the PCB, pointed to by the process chain 1802b connected to "semaphore" 1800 at which the V-instruction was carried out. The process containing the message would then go to the ready queue Q / PR / RDY 803 and the current process that performed the V command would would continue if it had a higher priority than the process in the "head" of the ready queue. The count from "semaphore" 1800 would be incremented by one to minus three (-3), and the PQHP would be changed to point to process chaining 1802a.

509834/0830509834/0830

Wenn der SCT-Zählwert gleich oder größer als 0 wäre, dies ist-der Fall bei den Meldungs-»Semaphores" 1704 und 1706 in Fig.17, würde angezeigt, daß keine Prozesse auf Meldungen warten. Anders gesagt, es sind Meldungen vorhanden, die auf Prozesse warten, um mit diesen assoziiert zu werden. Daher würde die Meldung* die vom gerade ablaufenden Prozeß erzeugt ■vird, eine Q/M/S aufbauen, wenn sie dem "Semaphor" 1704 zugeführt wurde, oder bei "Semaphor" 1706 der bereits entwickelten Q/M/S hinzugefügt.If the SCT count was equal to or greater than 0, this is the case with the message "semaphores" 1704 and 1706 in Figure 17, it would indicate that there are no processes waiting for messages. In other words, there are messages that point to Processes wait to be associated with them. Therefore the message * would be generated by the current process ■ will set up a Q / M / S when fed to the "semaphore" 1704 was added, or in "Semaphore" 1706 the already developed Q / M / S was added.

In beidenSituationen würde die Firmware einen Test durchführen, ob von Q/ML/FLS eine freie Meldungs-Verkettung verfügbar ist oder nicht.Da zu diesem Zeitpunkt drei freie Meldungs-Verkettungen, d.h. 1712, 1714 und 1716 verfügbar sind, kann der Prozeß seine Meldungen über die Operation leiten. Daher würde er die erste freie Prozeß-Verkettung· , d.h. 1712 übernehmen und seine Meldung in dieser freien Meldungs-Verkettung abspeichern. Diese Meldungs-Verkettung würde daraufhin in die Warteschlange Q/M/S des adressierten "Semaphor" eingereiht und der Prozeß, welcher die V-Operation durchführt und die Meldung erzeugt, würde weiter ablaufen. Das SCT-FeId des adressierten "Semaphors" würde nun um Eins inkrementiert.In both situations the firmware would test whether a free message chaining is available from Q / ML / FLS is or not. Because at this point in time three free message chains, i.e. 1712, 1714 and 1716 are available the process can route its messages about the operation. Therefore it would be the first free process chain, i.e. 1712 and take over his message in this free Save the message chain. This message chaining would then be placed in the Q / M / S queue of the addressed "Semaphore" and the process that performed the V-operation executes and generates the message, would continue to run. The SCT field of the addressed "semaphore" would now be one incremented.

Wenn jedoch keine freien Meldungs-Verkettungen verfügbar waren (nach Fig.18:FLQP=O, 1504), könnte der Prozeß, welcher den V-Befehl durchführt, nicht die Meldung erzeugen. Es ist möglich, daß Prozesse in Q/P .. C/FLS in Wartestellung sind, auch wenn freie Meldungsverkettungen in der Warteschlange Q/ML/FLS eingereiht sind. Daher muß dieser Prozeß in den Warte-Status übergehen^: bis eine freie Meldungs-Verkettung verfügbar ist. In dieser Situation würde eine Prozeß-Verkettung vom GO-Segment 802 abgegriffen und mit dem freien Verkettungs-Semaphor 1504 in Q/PR/FLS (18O4) verkettet.Durch die Verkettung mit FLS wird angezeigt, daßHowever, if no free message chains were available (according to Fig. 18: FLQP = 0.1504), the process could which executes the V command do not generate the message. It is possible that processes in Q / P .. C / FLS are on hold even if free message chains are queued in the Q / ML / FLS queue. Therefore, this process must be in skip the wait status ^: until a free message chain is available. In this situation, a process chain would be tapped from GO segment 802 and with it the free concatenation semaphore 1504 in Q / PR / FLS (18O4) Concatenating with FLS indicates that

509834/0830509834/0830

keine freien Meldungs-Verkettungen verfügbar waren, als der Prozeß versuchte, seine Meldung abzusenden. Wenn anschliessend eine freie Meldungs-Verkettung verfügbar wird, wird der im "Kopf" von Q/PR/FLS befindliche Prozeß in den Bereit-Status versetzt. Er muß dann später seine V-Operation erneut ausführen. Daher sollte man die Fig.17 und 18 gleichzeitig betrachten, da mit dem freien Verkettungs-"Semaphor" Prozesse verbunden sind, weil keine freien Meldungs-Verkettungen verfügbar sind, wogegen in Fig.17 freie Meldungs-Verkettungen verfügbar sind, die mit dem FLS-"Semaphor" verbunden sind. Auf diese Weise kennzeichnet das FLQP-FeId in Fig.17 die erste verfügbare freie Meldungs-Verkettung, wogegen in Fig.18 keine freien Verkettungen verfügbar sind und FLQP gleich Null ist. Das PQHP-FeId kennzeichnet den ersten mit dem FLS-11 Semaphor" verbundenen Prozeß.no free message chains were available when the process tried to send its message. If a free message chain then becomes available, the process in the "head" of Q / PR / FLS is set to the ready status. He will then have to perform his V operation again later. 17 and 18 should therefore be considered at the same time, since processes are connected to the free chaining "semaphore" because no free message chaining are available, whereas in Fig. 17 there are free message chaining available which are connected to the FLS - "Semaphore" are connected. In this way, the FLQP field in FIG. 17 identifies the first available free message chain, whereas in FIG. 18 no free chains are available and FLQP is equal to zero. The PQHP field identifies the first process connected to the FLS- 11 semaphore ".

In den Fig.17 und 18 sind mehrere Meldungs-Semaphores dargestellt. Da jedes "Semaphor"Prozesse im Warte-Status besitzen kann, können zahlreiche Q/PR/S-Warteschlangen vorhanden sein, von denen jede durch Warteschlangen von Prozeßverkettungen im GO-Segment dargestellt ist. Dies ist graphisch als 1802, 1804 und 1808 in Fig.18 dargestellt, in der Prozeß-Verkettungen im GO-Segment mit den "Semaphores" verbunden sind. Zusätzlich können andere SD-Segmente (nicht abgebildet) "Semaphore" besitzen, die ebenfalls in der Lage sind, die im GO-Segment befindlichen ProzeßWerkettungen einzureihen.Several message semaphores are shown in FIGS. Since any "semaphore" can have processes waiting, there can be numerous Q / PR / S queues each of which is represented by queues of process links in the GO segment. this is shown graphically as 1802, 1804 and 1808 in Fig. 18, with process chaining in the GO segment the "semaphores" are connected. In addition, other SD segments (not shown) can use "semaphores" that are also able to include the process chains in the GO segment.

Es ist bereits erläutert worden, daß ein "Semaphor" die doppelte Fähigkeit besitzen muß, entweder einen Prozeß zu speichern, der zur Fortsetzung auf ein Geschehnis wartet oder andererseits ein Geschehnis zu speichern, das auf einen Prozeß wartet, um mit diesem assoziiert zu werden. Diese Konzepte sind jeweils durch Q/PR/S undIt has already been explained that a "semaphore" must have the dual capability of being either a process to save waiting for an event to continue or otherwise to save an event, waiting for a process to be associated with it. These concepts are respectively through Q / PR / S and

50983Λ/083050983Λ / 0830

Q/M/S dargestellt worden. Beim Betrachten der Beziehung dieser Warteschlangen zum "Semaphor" ist zu erkennen, daß die Meldungs-Warte schlange an einem "Semaphor" und die Prozeß-Warteschlange an einem "Semaphor" diametral entgegengesetzte Konzepte sind. Die Datenstruktur ,d.h. das "Semaphor" enthält das eine oder das andere.Wenn ein Prozeß einen P-Befehl durchgeführt hat und kein Geschehnis oder keine Hilfsquelle zur Vervollständigung des in der P-Operation erfolgten Abrufs verfügbar ist, erstellt das "Semaphor" eine Prozeß-Warteschlange am "Semaphor" Q/PR/S. Wenn andererseits ein Geschehnis oder eine Hilfsquelle verfügbar wird und kein Prozeß auf dieses Geschehnis oder diese Hilfsquelle wartet, erstellt das "Semaphor" eine Meldungs-Warteschlange am "Semaphor" Q/M/S. Diese werden jeweils durch das SCT-FeId im "Semaphor" angegeben. Wenn also der SCT-Zählwert des "Semaphor" positiv ist, so kennzeichnet dies, daß Meldungen auf Prozesse warten und eine Meldungs-Warteschlange^ am "Semaphor" aufgebaut worden ist. Wenn derSCT-Zählwert des •Eemaphor" negativ ist, bedeutet dies, daß Prozesse auf eine Meldung oder ein Geschehnis warten und eine Prozeß-Warteschlange am "Semaphor" aufgebaut worden ist. Wenn der "Semaphor"-Zählbetrag Null ist, so bedeutet dies, daß weder wartende Prozesse noch wartende Meldungen noch eine Warteschlange vorhanden sind.Q / M / S has been shown. When looking at the relationship of this Queues to the "semaphore" can be seen that the message waiting queue at a "semaphore" and the process queue at a "semaphore" diametrically opposite Concepts are. The data structure, i.e. the "semaphore" contains one or the other. If a process has performed a P instruction and has no incident or no resource to complete of the call made in the P operation is available, the "semaphore" creates a process queue at the "semaphore" Q / PR / S. If on the other hand an incident or a resource becomes available and not a process waiting for this event or this resource, the "semaphore" creates a message queue on "Semaphore" Q / M / S. These are indicated by the SCT field in the "semaphore". So if the SCT count of the "semaphore" is positive, this indicates that messages are waiting for processes and a message queue ^ has been set up on the "semaphore". If the SCT count of the • Eemaphor ”is negative, it means that processes are on a Message or event waiting and a process queue has been set up on the "semaphore". When the "semaphore" count is zero, it means that there are neither waiting processes nor waiting messages nor a queue.

Die Q/ML/FLS und Q/PR/FLS sind im allgemeinen nur in einfacher Ausführung am FLS-Semaphor 1504 vorhanden. Wenn Meldungs-Verkettungen vorhanden sind, die nicht' von den "Semaphores" im SD-Segment benutzt werden, enthält das freie Verkettungs-"Semaphor" eine V/arteschlange mit freien Meldungs-Verkettungen. Dies würde dadurch angezeigt, daß im FLS-"Semaphor» ein FLQP-FeId nicht auf Null ist. Wenn das freie Verkettungs-"Semaphor" ein FLQP-FeId mit "0"The Q / ML / FLS and Q / PR / FLS are generally just simple Execution on FLS semaphore 1504 available. If there are message chains that are not 'from the "Semaphores" are used in the SD segment, the free concatenation "semaphore" contains a queue with free message chains. This would be indicated by the fact that in the FLS "semaphore" a FLQP field is not at zero. If the free concatenation "semaphore" is a FLQP field with "0"

S09834/083GS09834 / 083G

enthält, welches anzeigt, daß keine freien Meldungs-Verkettungen verfügbar sind, baut FLS eineProzeß-Warteschlange Q/PR/FLS auf, wenn eine freie Meldungsverkettung von einer V-Operation angefordert wird.which indicates that no free message chains are available, FLS builds a process queue Q / PR / FLS on when a free message chaining is requested by a V-operation.

Hinsichtlich der begrenzten Meldungs-Verkettungen in einem "Semaphor"-Descriptor-Segment, muß eine Einrichtung vorhanden sein, die ein Meldungs-*Semaphor" daran hindert, alle freien Meldungs-Verkettungen aufzunehmen. Dies erfolgt dadurch, daß jedes Meldungs-"Semaphor", wie in Fig.16b dargestellt, ein Maximum-Zählfeld enthält.Dieses Feld, d.h. die Bits 4 bis 15, begrenzt die Länge der Meldungs-Warteschlange. Wenn also bei Meldungen, die an das "Semaphor" angegliedert sind, der Wert des SCT-Feldes den SMC-Wert überschreitet, tritt eine Ausnahmebedingung auf. Diese Einrichtung hilft nicht nur bei der Verwaltung des Speicherraums, sondern gewährleistet auch, daß ein "Semaphor" nicht alle oder eine bedeutende Anzahl freier Meldungsverkettungen, die im SD-Segment verfügbar sind, aufnimmt. (Anmerkung: Im "Semaphor" ohne Meldung (Fig.16a) begrenzen die gleichen Bits 4 bis 15 die Anzahl der Ereignisse (VOPS), die unter Benutzung dieses "Semaphor" gespeichert werden können).With regard to the limited message concatenations in a "semaphore" descriptor segment, a facility must be in place which prevents a message * semaphore "from accepting all free message chains. This is done by that each message "semaphore", as shown in Figure 16b, contains a maximum count field. This field, i.e. bits 4 to 15, limits the length of the message queue. if So for messages that are attached to the "semaphore", the value of the SCT field exceeds the SMC value, an exception occurs. This facility not only helps in managing the storage space, but also ensures that a "semaphore" does not contain all or a significant number of free message chains contained in the SD segment are available. (Note: In the "semaphore" without a message (Fig. 16a) the same bits limit 4 to 15 the number of events (VOPS) that can be stored using this "semaphore").

Allgemeine Beschreibung der P-und V-BefehleGeneral description of the P and V commands

Es ist bereits erläutert worden, wie Prozesse in der Hardware dargestellt werden (PCB) und welche Funktions-Zustände sie einnehmen können; weiterhin ist die Dispatcher-Einheit beschrieben worden, die zur Steuerung der Funktions-Zustände und Bewegungen der Prozesse benutzt wird. Zusätzlich ist die Prozeß-Synchronisations-Funktion mit der Datenstruktur eines "Semaphor11 dargestellt und erläutert worden.It has already been explained how processes are represented in the hardware (PCB) and which functional states they can assume; Furthermore, the dispatcher unit has been described, which is used to control the functional states and movements of the processes. In addition, the process synchronization function with the data structure of a "semaphore 11" has been shown and explained.

S09834/083QS09834 / 083Q

Mit der Dispatcher-Einheit und den "Semaphores" zur Steuerung der Prozeß-Synchronisation sind die Operationen am "Semaphor" integriert. Zwei Basis-Operationen am "Semaphor" sind erforderlich, wenn Prozesse, das "Semaphor" als Signal-Mechanismus benutzen wollen. Eine Operation, die V-Operation oder V-Befehl, sendet ein Signal^ zu diesem Semaphor. Die andere Operation, die P-Operation oder B-Befehl, erfaßt ein Signal vom "Semaphor".With the dispatcher unit and the "semaphores" for controlling the process synchronization, the operations on the "semaphore" integrated. Two basic operations on the "semaphore" are required when processes that use the "semaphore" as a signaling mechanism want to use. An operation, the V-Operation or V-Instruction, sends a signal ^ to this semaphore. The other Operation, the P operation or the B command, captures a signal from the "semaphore".

Der V-Befehl kann als Sende-Operation betrachtet werden, die vom gerade ablaufendenProzeß benutzt werden kann, welcher über einige Daten verfügt und diese zu einem anderen Prozeß oder einer beliebigen Gruppe von Prozessen senden möchte. Der V-Befehl ermöglicht dem Prozeß das Absenden dieser Daten (d.h. ein Signal oder eine Meldung) an einem Zwischenpunkt. Das "Semaphor" speichert die Daten bis ein weiterer Prozeß bereit ist, diese abzugreifen. In der Zwischenzeit wird der den V-Befehl durchführende Prozeß zum Ablauf freigegeben, da die Daten abgesendet worden sind.The V command can be viewed as a send operation that can be used by the process who has some data and this to another process or any group of processes want to send. The V instruction enables the process to do that Sending this data (i.e. a signal or a message) to an intermediate point. The "semaphore" saves the data until another process is ready to access it. In the meantime, the will do the V command The executing process is released because the data has been sent.

Der P-Befehl kann als Empfangsoperation betrachtet werden, die von dem Prozeß benutzt wird, der Daten entweder von einem besonderen Prozeß oder von einem von vielen Prozessen benötigt. Der P-Befehl ermöglicht dem Prozeß das Empfangen von Daten (d.h. ein Signal oder eine Meldung) vom Ά·Semaphor 1J.The P instruction can be viewed as a receive operation used by the process that requires data from either a particular process or from one of many processes. The P instruction enables the process to receive data (i.e. a signal or a message) from the Ά · Semaphore 1 J.

Wenn Daten vorhanden sind, läuft der Prozeß, der den P-Befehl ausführt, weiter ab. Wenn die Daten jedoch nicht im "Semaphor" gespeichert werden, geht der Prozeß , welcher den P-Befehl durchführt, .in den Warte-Status. Das "Semaphor" hält den Prozeß in diesem Falle anstelle der Daten fest. Der Prozeß wird vom "Semaphor" im Warte-Status festgehalten, bis ein anderer Prozeß den Grund für den Aufenthalt diesesIf there is data, the process executing the P instruction continues. However, if the data is not in the "semaphore" are stored, the process which executes the P instruction goes into the waiting status. The "semaphore" holds the In this case, process instead of the data. The process is held in wait status by the "semaphore" until another process the reason for staying this one

SQ9834/0830SQ9834 / 0830

Prozesses im Warte-Status aufhebt, d.h. das Absenden von Daten für denProzeß über das gleiche "Semaphor". Diese· Funktion wird von einem V-Befehl durchgeführt.Process in the waiting status, i.e. the sending of data for the process via the same "semaphore". These· The function is carried out by a V command.

Daher versucht ein Prozeß, der für seine eigene Fortsetzung auf Daten (d.h. ein Signal oder eine Meldung) von einem anderen Prozeß wartet, das Signal durch Ausführung eines P-Befehls an einem vorher festgelegten "Semaphor" zu erhalten. Andererseits versucht ein Prozeß, der Daten (d.h. ein Signal oder eine Meldung) zu einem anderen Prozeß absendet, bevor er weiter ablaufen kann, diese Daten durch Ausführung eines V-Befehls an einem "Semaphor" zu übertragen. Der Grund für den Aufenthalt im Warte-Status wird annulliert,wenn sich der die Daten empfangende Prozeß im Warte-Status befindet. Daher ermöglicht der V-Befehl ebenfalls die Transferierung desProzesses, v/elcher die Meldung angefordert hat, in den Bereit-Status. Auf diese Weise werden die vom V-Befehl erzeugten Daten im PCB des Prozesses gespeichert, der die Daten abruft, und sie v/erden anschliessend überprüft, wenn der Prozeß von dem Dispatcher Mechanismus in den Funktions-Status versetzt wird.Therefore, a process waiting for data (ie a signal or a message) from another process to continue on its own will attempt to obtain the signal by executing a P instruction on a predetermined "semaphore". On the other hand, a process that sends data (ie a signal or a message) to another process before it can continue to run tries to transfer this data by executing a V command on a "semaphore". The reason for being in the waiting status is canceled if the process receiving the data is in the waiting status. Therefore, the V command also enables the process that requested the message to be transferred to the ready state. In this way, the data generated by the V command are stored in the PCB of the process that is calling up the data, and they are then checked when the process is put into the functional status by the dispatcher mechanism.

Da zwei verschiedene Typen von "Semaphores" vorhanden sind, d.h. "Semaphores" mit Meldungen und "Semaphores" ohne Meldungen, sind auch zwei Typen von P- und V-Befehlen vorhanden. Jeder Typ eines P- und V-Befehls kann nur an einem "Semaphore" des gleichen Typs durchgeführt werden. Daher muß jeder Befehl einem "Semaphor" mit den eigenen TAG-Bits zugeleitet werden, d.h. P- und V-Befehle mit Meldungen können nur "Semaphores" zugeleitet werden, die von ihren TAG-Bits als Meldungs-"Semaphores" gekennzeichnet werden, und P- und V-Befehle, die für "Semaphores" ohne Meldungen bestimmt sind, können nur zu Nicht-Meldungs-"Semaphores" geleitet werden, die durch ihre TAG-Bits als solche charakterisiert werden. ZusätzlichSince there are two different types of "semaphores", i.e. "semaphores" with messages and "semaphores" without messages, there are also two types of P and V commands. Each type of a P and V command can only be carried out on a "semaphore" of the same type. Therefore every command must a "semaphore" with its own TAG bits, i.e. P and V commands with messages can only be "semaphores" which are sent by their TAG bits as message "semaphores" and P and V commands intended for "semaphores" without messages can only be routed to non-message "semaphores" which are characterized as such by their TAG bits. Additionally

509834/083509834/083

zu den oben erwähnten Anwendungsregeln können sowohl Meldungs- wie auch Nicht-Meldungs-P-Befehle auch als P-Test-Befehle ausgeführt werden. Ein Testbefehl ermöglicht die Fortsetzung eines laufendenProzesses, auch wenn die vom Befehl vorgesehene Aktion nicht durchgeführt worden ist. Daher gibt es vier P-Befehle.V-Befehle mit Meldungenkönnen eine LlFO-oder FIFO-Einreihung abrufen und auch als V-Test-Befehle durchgeführt werden. Hieraus ergeben sich vier Typen von V-Befehlen mit Meldungen, plus ein V-Befehl ohne Meldung, also insgesamt fünf V-Befehle.to the rules of application mentioned above, both Message as well as non-message P commands also as P test commands are executed. A test command enables the continuation of an ongoing process, even if the action intended by the command has not been carried out. Therefore there are four P commands. V commands with messages can Retrieve an LlFO or FIFO queue and also as V-Test commands be performed. This results in four types of V commands with messages, plus a V command without messages, so a total of five V commands.

Die folgende mnemonisehen Bezeichnungen sind in den Flußdiagrammen dargestellt und werden zur Beschreibung der folgenden Befehle verwendet:The following mnemonics are in the flowcharts and are used to describe the following Commands used:

SEP Ein P-Befehl für ein Nicht-Meldungs-Semaphor. Dieser Befehl greift entweder ein Signal vom "Semaphor" ab oder bewirkt eine Versetzung des laufendenProzesses in den Warte-Status und eine Einreihung in Q/PR/S.SEP A P command for a no message semaphore. This command either picks up a signal from the "semaphore" or causes the ongoing process in the waiting status and a queuing in Q / PR / S.

SEPM Ein P-Befehl für ein Meldungs-Semaphor. Dieser Befehl greift entweder eine Meldung vom "Kopf" von Q/M/S des "Semaphor" ab oder bewirkt eine Versetzung des ablaufenden Prozesses in den Warte-Status und.seine Einreihüng in Q/PR/S. Wenn eine Meldung aus Q/M/S abgeholt worden ist, wird die Meldungs-Verkettung zu Q/ML/SLS zurückgeleitet und die Zählfelder im FLS-"Semaphor" werden überprüft.SEPM A P command for a message semaphore. This command either picks up a message from the "head" of Q / M / S of the "semaphore" or causes it a transfer of the running process to the waiting status and its inclusion in Q / PR / S. When a Message has been fetched from Q / M / S, the message chain is returned to Q / ML / SLS and the Counting fields in the FLS "semaphore" are checked.

Wenn ein Eingabe/Ausgabe-Prozess (logischer Kanal) sich im Warte-Status befindet, wird für das System sofort eine freie Verkettung verfügbar gemacht für die Durchführung einer V-Operation. Wenn dies nicht der Fall ist, If an input / output process (logical channel) is in the wait state, the system will immediately a free chaining made available for performing a V operation. If not,

5098 34/08305098 34/0830

wird eine Überprüfung durchgeführt, um festzustellen, ob in Q/PR/FLS ein wartender Prozeß vorhanden ist. A check is made to see if there is a waiting process in Q / PR / FLS.

Wenn ein Prozeß in Q/PR/FLS auf eine freie Meldungs-Verkettung wartet, wird dieser Prozeß wieder in den Bereit-Status zurückversetzt und kann seinen V-Befehl am FLS-"Semaphor" durchführen.If a process in Q / PR / FLS is waiting for a free message chain, that process will is set back to the ready status and can execute its V command on the FLS "semaphore".

SEPT Ein P-Test an einem Nicht-Meldungs-"Semaphor". Dies ist der gleiche Befehl wie SEP, mit der Ausnahme, daß, wenn einSemaphor kein Signal erhält, keine Versetzung des ablaufenden Prozesses in den Wartestatus erfolgt.SEPT A P-test on a no-message "semaphore". This is the same command as SEP, except that if a semaphore does not receive a signal, no transfer of the process in progress to the Waiting status takes place.

SEPTM Ein P-Test an einem Meldungs-Semaphor. Mit SEPM identisch, mit der Ausnahme, daß der ablaufende Prozeß nicht in den Warte-Status versetzt wird, wenn das "Semaphor" keine Meldung erhält.SEPTM A P-test on a message semaphore. Identical to SEPM, with the exception that the current process is not placed in the waiting status if the "semaphore" does not receive a message.

SEV Ein V-Befehl an einem Nicht-Meldungs-Semaphor. Dieser Befehl erzeugt ein Signal, das im Semaphor gespeichert wird. Wenn am "Semaphor" eine Prozeß-Warteschlange auf das Signal wartet, Q/PR/S, empfängt der erste Prozeß der Warteschlange das Signal und geht vom Warte-Status in den Bereit-Status über.SEV A V instruction on a non-message semaphore. This command generates a signal that is stored in the semaphore. If there is a process queue on the "semaphore" waiting for the signal, Q / PR / S, the first process in the queue receives the signal and changes from the waiting status to the ready status.

SEVF V-Befehle für ein Meldungs-Semaphor.SEVF V commands for a message semaphore.

SEVL Jeder Befehl erzeugt eine Meldung zum Semaphor. Wenn sich am "Semaphor" eine Warteschlange von Prozessen befindet, Q/PR/S, empfängt der erste Prozeß in der Warteschlange die Meldung und geht vom Warte-Status in den Bereit-Status über. Wenn kein Q/PR/S vorhanden ist, wird die Meldung in Q/M/S entweder in FIFO- (SEVF) oder LIFI -(SEVL) Reihenfolge, gespeichert. Wenn kein Q/PR/S vorhanden ist,SEVL Every command generates a message to the semaphore. If there is a queue of processes at the "semaphore", Q / PR / S, the first process in the queue receives the message and changes from the waiting status to the ready status. If there is no Q / PR / S, the message is stored in Q / M / S in either FIFO (SEVF) or LIFI (SEVL) order. If there is no Q / PR / S,

509834/0830509834/0830

und keine Meldungs-Verkettung aufgefunden werden kann, in die die Meldung eingereiht'werden könnte, geht der laufende Prozeß in den Warte-Status über und wird mit Q/PR/FLS verkettet. Der B.efehls-Zähler des Prozesses, welcher den V-Befehl ausführt, bleibt bei seinem aktuellen Zählwert, so daß eine nochmalige Ausführung des V-Befehls versucht werden kann, wenn sich der Prozeß wieder im Funktions-Status befindet.and no message chain can be found in which the message could be included, the current process goes into the waiting status and is chained with Q / PR / FLS. The B. command counter of the Process which executes the V instruction remains at its current count value, so that a repeated Execution of the V command can be attempted when the process is back in the function status.

SEVTF V-Testbefehle für Meldungs-"Semaphores".SEVTF V test commands for message "semaphores".

,SEVTL Diese Befehle sind mit SEVE und SEVL identisch, mit der Ausnahme, daß beim Nichtauffinden einer freien · Meldungsverkettung in der freien Meldungs-Verkettungs-"Semaphor"-Warteschlange keine Versetzung des Prozesses, welcher den V-Befehl durchführt, in den Warte-Status erfolgt., SEVTL These commands are identical to SEVE and SEVL, with the exception that if a free one is not found Message chaining in the free message chaining "semaphore" queue the process which is executing the V instruction is not placed in the waiting state he follows.

Jeder der vorstehend beschriebenen Befehle befähigt bei der Ausführung die Steuerspeicher-Einheit 130 zur Durchführung einer festgelegten Gruppe von Funktionen. Die Darstellungen der verschiedenen Funktionen befinden sich in den Flußdiagrammen der Fig.20 bis 26. Die Durchführung dieser Funktionen entspricht den im Zusammenhang mit der Dispatcher-Einheit (Fig.14) beschriebenen Funktionen und greift auf die gleichen, in Fig.13 dargestellten, Operations-Elemente zurück. Um die allgemeine Informations-Übertragung präzise zu erklären, werden nur die Haupt-Blöcke der Operations-Einheiten beschrieben. Um Wiederholungen zu vermeiden und im Interesse der Klarheit der Beschreibung werden die Zwischenfunktionen der Steuerspeicher-Einheit in Verbindung mit den P- und V-Befehlen und die zentrale Verarbeitungseinheit ausgelassen; es versteht sich jedoch von selbst, daß solche Zwischenfunktionen, wie sie hinsichtlich Fig.14 beschrieben wurden, typischerweise auch vorhanden sind.Each of the commands described above, when executed, enables the control store unit 130 to execute a defined group of functions. The various functions are shown in the flow charts 20 to 26. The implementation of these functions corresponds to that in connection with the dispatcher unit (Fig. 14) and accesses the the same operational elements shown in FIG return. In order to explain the general information transfer precisely, only the main blocks of the operation units are presented described. To avoid repetition and in the interests of clarity of description, the intermediate functions omitted the control store unit in connection with the P and V instructions and the central processing unit; it goes without saying, however, that such intermediate functions, as they are with regard to Fig. 14 are typically also present.

509834/0830509834/0830

Zusätzlich ist in Fig.19 ein detaillierteres Diagramm eines Teils der ALU-Einheit 1315 dargestellt, die in der CPU 104 von Fig.13 enthalten ist. So sind in Fig.19a die 256 Worte dargestellt, die innerhalb der LSU 1315 befindlichen "Scratch Pad-Speicher" gespeichert werden,, und in Eig.19b werden einige der in 19a abgebildeten Arbeitspositionen dargestellt, die sich spezifisch auf die Funktion der zu diskutierenden P-und V-Befehle beziehen. Jede dieser detaillierten Darstellungen wird in Verbindung mit ien Fig.20 bis 26 klar verständlich, diese Figuren beinhalten Erklärungen ihrer Aufgaben in der Gesamtfunktion des CPU-Systems.In addition, there is a more detailed diagram in FIG of a portion of the ALU unit 1315 contained in the CPU 104 of FIG. So are in Fig. 19a the 256 words are shown which are stored in the "scratch pad memory" in the LSU 1315, and in Fig. 19b some of the shown in Fig. 19a Working positions shown that specifically relate to the function of the P and V commands to be discussed. Each of these detailed representations can be clearly understood in conjunction with FIGS. 20 to 26, these figures contain Explanations of their tasks in the overall function of the CPU system.

Entwicklung von "Semaphores" für P- und V-BefehleDevelopment of "semaphores" for P and V commands

Die Fig.20 stellt insbesondere die "Semaphor"-Descriptor-Abgriffsoperations-Funktionen dar, die von allen der P- und V-Befehle durchgeführt werden, und in den Fig.21 bis 26 sind die verschiedenen P- und V-Befehle und die Funktionen, die sie ausführen, dargestellt.Figure 20 specifically illustrates the "semaphore" descriptor tap operation functions that are performed by all of the P and V commands, and in Figures 21 to 26 the various P and V commands and the functions they perform are shown.

Spezifischer ist in Fig.20, Block 2000, die Einrichtung der "Semaphor-Descriptor"-Abgriffroutine dargestellt, die von allen der vorstehend erwähnten P- und V-Befehle ermöglicht wird. Jeder Befehl beinhaltet einen Operations-Code (OP) in den Bits 0 bis 7, einen Komplementär-Code in den Bits 8 bis 11 und eine 20-Bit-Adresse in den Bits bis 31. Der Operations-Code kennzeichnet für das System den Befehls-Typ, d.h. P oder V und deren Variationen. Der Komplementär-Code kennzeichnet eine spezifische Information hinsichtlich des Befehls; z.B. ob eine LIFO- oder FIFO-Einreihung stattfindet, ob ein Testbefehl etc...auftritt. DieIn Figure 20, block 2000, the device is more specific of the "Semaphore Descriptor" tap routine used by all of the aforementioned P and V instructions is made possible. Each command contains an operation code (OP) in bits 0 to 7, a complementary code in bits 8 through 11 and a 20-bit address in bits through 31. The operation code identifies the system the command type, i.e. P or V and their variations. The complementary code identifies specific information regarding the command; E.g. whether a LIFO or FIFO queue takes place, whether a test command occurs etc ... the

509834/0830509834/0830

Adreßsilbe dient zur Identifizierimg des"Semaphor"-Descriptors. Die Auflösung der Adreßsilbe erfordert eine Durchsuchung der Struktur der Adreßtabellen mit den JP-Nummern des laufenden Prozesses zur Auswahl des PCB (siehe Fig.4 und 17) und der Werte STN und STE, damit die Segmenttabelle und möglicherweise die indirekte Adressierung, auf die letztlich, wenn erforderlich, die Indexierung folgt, die relative Segment-Endadresse SRA innerhalb des Segments aufgefunden werden. Zuletzt wird eine absolute Adreßberechnung durchgeführt, die die Position des "Semaphor"-Descriptors im Speicher festlegt. Auf diese Weise entwickelt sich die Adreßsilbe eines P- oder V-Befehls zur Adresse des "Semaphor"-Descriptors.Address syllable is used to identify the "semaphore" descriptor. The resolution of the address syllable requires a Searching the structure of the address tables with the JP numbers of the ongoing process to select the PCB (see Fig. 4 and 17) and the values STN and STE, thus the segment table and possibly the indirect Addressing to which ultimately, if necessary, the Indexing follows, the relative segment end address SRA can be found within the segment. Last will an absolute address calculation is carried out which determines the position of the "semaphore" descriptor in memory. This is how the address syllable of a P- or V command to the address of the "semaphore" descriptor.

Zusätzlich zum Abgreifen und Testen des "Semaphor"-Descriptors greift die Unterroutine 2000 weiterhin das adressierte "Semaphor" ab und ermöglicht eine Verzweigung entweder zum P-, oder V-Befehl, der am "Semaphor" durchgeführt werden soll. Daher wird vor der Ausführung einer solchen SF-Unterroutine 2000 der Operations- und der Komplementär-Code analysiert, so daß bekannt ist, daß ein "Semaphor"-Descriptor abgegriffen wird. In Schritt 2001 lautet die Frage, ob das Hardware-Gatter verriegelt ist. Das Hardware-Gatter gehört zur Hardware-Kontrollmarke 1313 und kennzeichnet einen kritischen System-Status, wenn es gesperrt ist. Das Betriebssystem muß sich in einem kritischen Status befinden, wenn eine Firmware-Verarbeitung von Prozessen und Warteschlangen auftritt, da jegliche Unterbrechungen einen unwiderruflichen Informationsverlust innerhalb des Systems bewirken können. Wenn daher das Harware-Gatter den Wert Eins hat und kennzeichnet, daß der Ablauf von Prozessen Und Warteschlangen weiter läuft,In addition to tapping and testing the "semaphore" descriptor subroutine 2000 continues to access the addressed "semaphore" and enables a branch to either to the P or V command carried out on the "semaphore" shall be. Therefore, prior to executing such an SF subroutine 2000, the operation and complement codes are made parsed so that it is known to be a "semaphore" descriptor is tapped. In step 2001 the question is whether the hardware gate is locked. The hardware gate belongs to hardware control mark 1313 and identifies a critical system status if it is locked. The operating system must be in a critical state Status when firmware processing of processes and queues occurs because of any interruptions can cause an irreversible loss of information within the system. Therefore, if the hardware gate has the value one and indicates that the flow of processes and queues continues,

50.9834/083050.9834 / 0830

können bestimmte Befehle, einschließlich der P- und V-Befehle, nicht durchgeführt werden, da diese in die Durchführung dieser Operationen eingreifen würden. Wenn die Antwort auf Frage 2001 "Ja" lautet, wird das Hardware-Gatter gesperrt und Schritt 2002 durchgeführt. Dies löst einen "System Check" aus, der im wesentlichen eine andere kritische Operation erkannt hat, z.B. eine beliebige Ausnahmebedingung (die normalerweise eine Unterbrechung der laufenden Operation und ein Auslösen des zentralen Ausnahmemechanismus bewirken würde ) und startet eine modellabhängige Diagnostik-Sequenz, die das System an der Fortsetzung seines Betriebs in einem Funktions-Status hindert, der als "krank" bezeichnet wird.Zusätzlich (IFHG =1) startet jeder Versuch, einen Synchronisationsoder Prozeß-Steuerungsbefehl durchzuführen, der einen Austausch des laufenden Prozesses verursachen könnte, einen "System Check" in Schritt 2002. Sowohl die Überprüfung des Hardware-Gatters in Schritt 2001 wie auch der "System Check" in Schritt 2002 werden von der Hardware durchgeführt, die sich innerhalb der Befehls-Erfassungseinheit 1318 befindet.Certain commands, including the P and V commands, cannot be carried out because they are in the process of being carried out of these operations would intervene. If the answer to question 2001 is yes, then the hardware gate will locked and step 2002 performed. This triggers a "system check", which is essentially a has detected another critical operation, such as any exception (which is usually an interrupt the current operation and triggering the central exception mechanism) and starts a Model-dependent diagnostic sequence that the system continues to operate in a functional status which is referred to as "sick". In addition (IFHG = 1), any attempt to carry out a synchronization or process control command that requires an exchange the running process could cause a "system check" in step 2002. Both the check of the hardware gate in step 2001 as well as the "system check" in step 2002 are carried out by the hardware that is located within the command acquisition unit 1318.

Die Schritte 2003 und 2004 sind Hardware-Tests, die ebenfalls von der Befehls-Erfassungs-Einheit 1318 durchgeführt werden. Im Schritt 2003 lautet die Frage, ob (oder nicht) die Ausführung eines SECIN-Befehls (Beschreibung siehe unten) angefordert wird. Dieser SECIN-Befehl muß eine Prozeß-Ringnummer besitzen, die gleich Null ist, um durchgeführt werden zu können. Daher überprüft der Schritt 2004, wenn die Antwort "Ja" lautet, die Prozeß-Ringnummer des Befehls. Wenn die Ringnummer nicht Null ist, tritt eine Privileg-Befehlsausnahme 2004 auf. Bei P- und V-Operationen wird die Antwort auf Frage 2003 jedoch "Nein" lauten und daher wird Schritt 2005 durchgeführt, in dem die Frage lautet, ob eine Indexierung der Adreßsilbe des, P- oder V-Befehls erforderlich ist.Steps 2003 and 2004 are hardware tests that are also carried out by the command acquisition unit 1318. In step 2003 the question is whether (or not) the execution of a SECIN command (see description below) is requested. This SECIN command must have a process ring number which is equal to zero in order to be able to be carried out. Therefore, step 2004 checks if the answer is "yes", the process ring number of the command. If the ring number is not zero, a privilege command exception occurs 2004 on. However, for P and V operations, the answer to question 2003 will be "No" and therefore will Step 2005 carried out, in which the question is whether an indexing of the address syllable of the, P or V command is necessary is.

509834/0830509834/0830

245^534245 ^ 534

An diesem Punkt ist die normale Entwicklung der Adreßsilbe aufgetreten. Auf diese Weise sind die relative Segmentadresse SRA und eine Segmentnummer SEG (vorstehend beschrieben) festgelegt worden.- Die in Schritt 2005 gestellte Frage lautet, ob ein Bit in der Adreßsilbe die Indexierung anzeigt. Wenn die Antwort "Ja" lautet, addiert Schritt 2006 den Inhalt eines allgemeinen Registers, das von der Adreßsilbe gekennzeichnet wurde, zu SRA. In Schritt 2007 wird die Übertragung des IST-Worts 1500 des SD-Segments vom Hauptspeicher in die Position WCO des "Scratch Pad"-Speichers durchgeführt (Fig.19b). Dieses erste Wort beinhaltet die TAG- und Ringfelder für die P- und V-Befehle und legt fest, ob diese ausgeführt werden können oder nicht. Es ist zu bemerken, daß eine Abgriffsoperation vom Hauptspeicher 102 über die Datenflußsteuereinheit DMJ 1321 zur arithmetischen und Logik-Einheit (ALU) 1317 durchgeführt wird und umgekehrt eine Hauptspeicher-Schreiboperation von der ALU 1317 über die DMU 1321 zum Hauptspeicher"102 durchgeführt wird.At this point normal development of the address syllable has occurred. That way are the relative segment addresses SRA and a segment number SEG (described above) have been set. The question asked in step 2005 is whether a bit in the address syllable indicates indexing. If the answer is yes, step 2006 adds that Contents of a general register identified by the address syllable for SRA. In step 2007 becomes the transmission of the actual word 1500 of the SD segment from the main memory to the position WCO of the "scratch pad" memory (Fig.19b). That first word contains the TAG and ring fields for the P and V commands and determines whether these are executed may or may not. It should be noted that a tap operation from main memory 102 via the data flow control unit DMJ 1321 is carried out to the arithmetic and logic unit (ALU) 1317 and vice versa a main memory write operation is performed from the ALU 1317 to the main memory "102 via the DMU 1321 will.

In Schritt 2008 werden einige Vor-Uberprüfungen von der ALU 1317 durchgeführt, um zu kontr&lieren, ob tatsächlich eine Zugriffoperation zu einem gültigen "Semaphor"-Segment durchgeführt worden ist.Spezifischer noch, in Schritt 2008 muß das GS-Bit im Segment-Descriptor selbst auf 01 sein. Das"G" bedeutet Gatter-Segment und das"S" bedeutet "Semaphor"-Segment, daher muß das "Semaphor" -Segmentbit positioniert werden, um den Zugriff zum "Semaphor"-Segment zu ermöglichen. Weiterhin wird eine Kontrolle durchgeführt, um festzustellen, ob STN gleich oder größer als 8 ist, da die "Semaphor"-Segmente "kleine" Segmente sind, für die diese Einschränkung gültigIn step 2008, some preliminary checks are carried out by the ALU 1317 in order to check whether an access operation to a valid "semaphore" segment has been performed. More specifically still, in step 2008 the GS bit in the segment descriptor itself must be 01. The "G" means gate segment and the "S" means "semaphore" segment, therefore the "semaphore" must Segment bits must be positioned to enable access to the "semaphore" segment. Will continue performed a check to see if STN is equal to or greater than 8 as the "semaphore" segments There are "small" segments for which this restriction applies

509834/0830509834/0830

ist. In Schritt 2008 wird eine dritte Kontrolle durchgeführt, um festzustellen, ob SRA ein Vielfaches von Vier ist, da SRA auf einen aus vier Bytes bestehenden wortorganisierten "Descriptor" hinweist. Wenn das GS-Bit nicht auf 01 gesetzt ist und STN gleich oder größer als 8 ist, wird eine illegale Segment-"Descriptor"-Ausnahraeunterroutine 2008a ausgelöst. Wenn SRA kein Vielfaches von 4 ist, wird, wie in Schritt 2008b dargestellt, eine illegale System-Objektadreß-Unterroutine ausgelöst. Wenn nicht anders, wie bei den Schritten 2001 bis 2004 , angegeben, führt die ALU 1317 alle Testoperationen durch.is. In step 2008, a third check is made to see if the SRA is a multiple of four there SRA indicates a four-byte word-organized "descriptor". If the GS bit is not set to 01 and STN is equal to or greater than 8, an illegal segment "descriptor" exit subroutine 2008a triggered. If SRA is not a multiple of 4, as shown in step 2008b, it becomes an illegal system object address subroutine triggered. Unless otherwise stated, as in steps 2001 to 2004, ALU 1317 performs all test operations.

In Schritt 2009 wird das erste Wort des "Semaphor"-Segments (SD) d.h. Wort 1500 in Fig.15, überprüft. Dieses Wort ist vom gerade überprüfen Segment-"Descriptor" identifiziert worden. Genauer, die Bits 0 und 1 des TAG-Feldes werden daraufhin kontrolliert, ob sie die Codierung 11 enthalten, es wird kontrolliert, ob alle Bits 8 bis des MBZ-Feldes auf 0 sind und ob die Bits 16 bis 31 des FLSP-Feldes ein Vielfaches von 8 sind (d.h. die letzten drei Bits sind 0). Wenn dieser Datenstruktur-Status nicht auftritt, wird in Schritt 2009 ein illegales SD-Segment angezeigt; andernfalls ist die Datenstruktur korrekt und der nächste Schritt 2010 wird durchgeführt.In step 2009 the first word of the "semaphore" segment (SD) i.e. word 1500 in Figure 15 is checked. This Word has been identified by the segment "descriptor" just examined. More precisely, bits 0 and 1 of the TAG field are then checked whether they contain the code 11, it is checked whether all bits 8 to of the MBZ field are at 0 and whether bits 16 to 31 of the FLSP field are a multiple of 8 (i.e. the last three bits are 0). If this data structure status does not occur, an illegal SD segment is displayed in step 2009; otherwise the data structure is correct and the next step 2010 is carried out.

Nach Lokalisierung des SD-Segments und der Feststellung, daß das erste Wort korrekt ist, werden als nächstes die Position und der Inhalt des "Semaphor"-Descriptors im Hauptspeicher überprüft.Daher wird in Schritt 2010 die in Schritt 2006 entwickelte SRA überprüft , um zu gewährleisten, daß sie niedriger als FLSP ist, d.h., die Bits 16 bis 31 von Wort 1500. Die Struktur des in Fig.15 dargestellten SD-Segments macht diesen Schritt erforderlich. Wie dort angegeben, werden die "Semaphor"-Descriptors, die durch die relative Verschiebung von SRA adressiert wordenAfter locating the SD segment and determining that the first word is correct, the next will be the The position and the content of the "semaphore" descriptor in the main memory are checked. Therefore, in step 2010 the in Step 2006 developed SRA checks to ensure that it is lower than FLSP, i.e. bits 16 to 31 of word 1500. The structure of the SD segment shown in FIG. 15 makes this step necessary. As indicated there, the "semaphore" descriptors that have been addressed by the relative displacement of SRA

509834/0830509834/0830

sind, in Block 1502 erzeugt·. FLSP weist zu dem Block 1504, der sich sequentiell auf einer höheren Adresse im Hauptspeicher als die "Semaphor"-Descriptors in Block 1502 befindet. Daher muß sich der SRA, der aus der Adreßsilbe des P- oder V-Befehls entwickelt wurde, auf einen der "Semaphor"- Descriptors in Block 1502 beziehen, der von der Konzeption her, niedriger als die relative Adresse FLSP sein muß, die zum Block 1504 hinweist. Daher dient FLSP zwei Zwecken; einer besteht in der Lokalisierung des freien Verkettungs-"Semaphore und der andere in der Festlegung der oberen Grenzen für die "Semaphor"Descriptors 1502. Wenn diese Bedingungen nicht erfüllt werden, wird Schritt 2010a durchgeführt. Dieser Schritt ist eine Ausnahme-Unterroutine, die anzeigt, daß eine illegale System-ObQektadresse entwickelt worden ist. Der Schritt 2010 bewirkt ausserdem Ringschutz-Uberprüfungen. Auf diese Weise wird das EAR-FeId daraufhin überprüft, ob es gleich oder kleiner als das XR-FeId ist, XR identifiziert das erste Wort 1500 und ist entweder VR,PR oder IR, je nachdem, ob ein V-Befehl, ein P-^Befehl oder ein SECIN-Befshl durchzuführen ist. Wenn die EAR-Ringnummer, die die Ringnummer für das Segment ist, großer als das individuelle Ringschutzfeld ist, wird in Schritt 2010b eine Ausnahmebedingung durchgeführt. are generated in block 1502. FLSP points to block 1504, which is sequentially located at a higher address in main memory than the "semaphore" descriptors in block 1502 is located. Therefore, the SRA, which was developed from the address syllable of the P or V instruction, must point to one of the Obtain "semaphore" descriptors in block 1502, which is by design, lower than the relative address FLSP which points to block 1504 must be. Therefore, FLSP serves two purposes; one is the localization of the free concatenation "semaphore and the other in the definition the upper limits for the "semaphore" descriptors 1502. If these conditions are not met, it will Performed step 2010a. This step is an exception subroutine, indicating that an illegal system object address has been developed. The step 2010 also effects Ring protection reviews. In this way, the EAR field is checked to see whether it is equal or smaller as is the XR field, XR identifies the first word 1500 and is either VR, PR, or IR, depending on whether a V command, a P ^ command or a SECIN command is. If the EAR ring number, which is the ring number for the segment, is greater than the individual ring protection field is, an exception is made in step 2010b.

In Schritt 2011 wird der "Semaphor" Descriptor 1502 aus dem SD-Segment 802n des Hauptspeichers abgegriffen und in die Position WC1 des "Scratch-Pad"Speichers 1900 übertragen. In Schritt 2012 wird eine Serie von Tests am "Semaphor"-Descriptor 1502 durchgeführt. Diese Tests sind den in Schritt 2008 am Segment-Descriptor durchgeführten ähnlich. Diese Tests werden an den Bits 0 und 1 des TAG-Feldes durchgeführt, die auf o1 sein müssen; anIn step 2011 the "semaphore" descriptor 1502 is made the SD segment 802n of the main memory tapped and in the position WC1 of the "scratch pad" memory 1900 transfer. Step 2012 will be a series of tests performed on "semaphore" descriptor 1502. These tests are similar to those performed on the segment descriptor in step 2008. These tests are performed on bits 0 and 1 of the TAG field, which must be on o1; at

den Bits 2 und 5 des Ringfeldes, die auf 00 sein müssen; an den STN-Bits 4 bis 7, die gleich oder größer als 8 sein müssen; und an den Bits 16 bis 31 des SRA-Feldes, die einbits 2 and 5 of the ring field, which must be set to 00; at the STN bits 4 to 7, which must be equal to or greater than 8; and at bits 16 to 31 of the SRA field which are a

509834/0830509834/0830

Vielfaches von 8 enthalten müssen. Das SRA-FeId des "3emaphor"-Descriptors" 1502 indexiert das gegenwärtig adressierte "Semaphor". Da das"Semaphor" Doppelwort-Größe ist, muß es eine Doppelwortbegrenzung enthalten und daher zu.· Adressierungszwecken ein Vielfaches von 8 sein. Venn einer dieser Tests ein negatives Resultat ergibt, wird eine AusnahiiEKJnterroutine 2012a durchgeführt, welche kennzeichnet, daß ein illegales Segment-"Descriptor"-Format festgestellt worden ist.Da sich die Ausnahme-Unterroutinen auf einen Test mit negativem Resultat beziehen, das vom System korrigiert werden muß, werden diese Situationen nicht weiter erläutert.Must contain multiples of 8. The SRA field of the "3emaphor" descriptor "1502 currently indexes this addressed "semaphore". Because the "semaphore" is double word size it must contain a double word limit and therefore be a multiple of 8 for addressing purposes. If one of these tests gives a negative result, an exception subroutine 2012a is carried out, which indicates that an illegal segment "descriptor" format has been detected. Since the exception subroutines refer to a test with a negative result that must be corrected by the system, these Situations not further explained.

Nach Festlegung eines geeigneten Segment~"Descriptors", bestehen die nächsten Operationen darin, das gegenwärtige "Semaphor" selbst zu entwickeln. In Schritt 2015 lautet die Frage, ob sich die "Semaphor»-Segmentnummer im Assoziat"/-Speicher 1319a der Adreß-Steuereinhelt 1319 befindet oder nicht. Der Grund dieser Frage besteht darin, daß das "Semaphor"-¥ort aus dem Hauptspeicher abgegriffen wird; wenn es sich jedoch innerhalb des Assoziativ-Speichers 1319a befindet, erfolgt kein Zugriff zum Hauptspeicher. Wenn also die Antwort auf die Frage 2013 "Nein"· lautet, löst der Schritt 2014 eine SDF-Unterroutine aus, die den Segment-Descriptor in den Assoziator lädt.After defining a suitable segment ~ "Descriptor", the next operations are to develop the current "semaphore" yourself. In step 2015 is the question of whether the "semaphore" segment number is in the Association "/ - memory 1319a of the address control unit 1319 is located or not. The reason for this question is that the "semaphore" location is tapped from main memory will; however, if it is within associative memory 1319a, main memory is not accessed. if so the answer to question 2013 is "no" · step 2014 triggers an SDF subroutine that loads the segment descriptor into the associator.

In Schritt 2015 wird wieder ein Test durchgeführt, um festzustellen, ob das GS-Bit des neuen Segments gleich 01 is ^. Im allgemeinen bezieht sich der "Semaphor"-Descriptor auf ein "Semaphor" innerhalb seines eigenen SD-Segments. Diese Bedingung kann jedoch nicht vorhanden sein und der "Semaphor"-Descriptor kann ein neues SD-Segment indexiert haben und nun wird ein Test durchgeführt, um festzustellen, ob die GS-Bits gleich 01 sind.In step 2015 a test is carried out again to determine whether the GS bit of the new segment is 01 is ^. In general, the "semaphore" descriptor refers to to a "semaphore" within its own SD segment. However, this condition may not be present and the "Semaphore" descriptor may have indexed a new SD segment and a test is now carried out to determine whether the GS bits are equal to 01.

509834/0830509834/0830

In Schritt 2016 wird das bereits beschriebene Schreiberlaubnis-Bit WF überprüft, um festzustellen, ob es gleich 1 ist und dadurch anzeigt, daß es in den Speicher eingeschrieben werden darf. In Schritt 2017 wird das geschriebene Bit (W-Bit) im Segment-Descriptor getestet, um festzustellen, ob es gleich ist. Wenn die Antwort auf diese Frage "ja" lautet, wird Schritt 2020 durchgeführt;. wenn die Antwort "Nein" lautet ruft Schritt 2018 eine WUP-Unterroutine ab, die das W-Bit schreibt und vervollständigt.Dies wird durchgeführt, da im Speicher eine Schreiboperation erfolgt und das W-Bit daher aktualisiert werden muß, wenn dies noch nicht geschehen ist. Alle diese Operationen werden am bereits beschriebenen "Semaphore-Descriptor 1502 durchgeführt. In step 2016, the already described write permission bit WF checks to see if it equals 1, indicating that it is in memory may be. In step 2017 the written bit (W bit) in the segment descriptor is tested to see if it is equal to is. If the answer to this question is "yes", then step 2020 is performed; if the answer is no, step calls 2018 executes a WUP subroutine that writes and completes the W bit is performed because a write operation is taking place in memory and the W bit must therefore be updated, if this has not already been done. All of these operations are performed on the "semaphore descriptor 1502" already described.

Es ist bereits erklärt worden, daß zwei mögliche Methoden zur Adressierung von "Semaphores" verwendet werden können, eine Methode benutzt die P- und V-Befehle. Die ander© Methode zur Adressierung von "Semaphores" ist in Schritt 2019 dargestellt und aktiviert an diesem Punkt , wenn sie zur Anwendung kommt, den Entwicklungs-Prozeß, d.h. das Flußdiagramm. Die andere Methode besteht in der Eingabe-Ausgabe-Einheit oder der System-Adressierung des "Semaphor", die eine absolute GD-Adresse erzeugt.It has already been explained that two possible methods can be used to address "semaphores", one method uses the P and V commands. The other © method for addressing "semaphores" is shown in step 2019 and, at this point, activates the Development process, i.e. the flowchart. The other method is to use the input-output unit or system addressing of the "semaphore", which generates an absolute GD address.

In beiden Schritten erfaßt Schritt 2020, unabhängig von der benutzten Adressier-Methode des "Semaphor" beide Worte des "Semaphor". Diese Worte würden vom Assoziator 1319a abgegriffen und in die Positionen WC4 und WC5 des "Scratch Pad"-Speichers übertragen. Für diese Positionen führt die ALU 1317 verschiedene Tests am "Semaphor" durch.In both steps, step 2020 detects both words of the "semaphore", regardless of the addressing method used for the "semaphore" "Semaphore". These words would be tapped from the associator 1319a and placed in positions WC4 and WC5 of the "scratch pad" memory transfer. The ALU 1317 carries out various tests on the "semaphore" for these positions.

Bevor diese Tests jedoch,durchgeführt werden, überprüft der Schritt 2021 den Operations- und den Komplementär-Code des Befehls, um festzustellen, ob es sich um einen SECIN-Befehl ' handelt ("Semaphor^-Zählinitialisierung) oder nicht. ImFaIIeHowever, before these tests are performed, the Step 2021, the operation code and the complementary code of the instruction to determine whether it is a SECIN instruction 'acts ("semaphore ^ -count initialization) or not. If

S09834/0830S09834 / 0830

eines SECIN-Befehls wird eine Verzweigung zu der Unterroutine durchgeführt, welche den SECIN-Befehl freigibt. Wenn es sich nicht um einen SECIN-Befehl handelt, sondern um eine P-oder V-Operation, wird mit Schritt 2023 das STAG-FeId des "Semaphor" überprüft. Dieses STAG-FeId ist inFig.16 dargestellt, in der verschiedene "Semaphore" abgebildet sind, an denenP- und V-Befehle durchgeführt werden.a SECIN instruction branches to the subroutine carried out, which enables the SECIN command. If it is not a SECIN command, but a P or V operation, the STAG field is displayed in step 2023 of the "semaphore" checked. This STAG field is shown in Fig. 16, in which various "semaphores" are mapped on which P and V commands are carried out.

In Schritt 2024 wird das SCT-FeId in Position WC4 des "Semaphor" um 1 inkrementiert und in Position WC7 gespeichert.-Dieser Schritt ist eine Vorwegnahme, die sich aus der Tatsache ergibt, daß die Durchführung bei einem V-Befehl für den Betrieb des Systems kritischer ist. Durch die Ausführung des Inkrementierungs-Schrittes in 2024 wird das in einer V-Operation benutzte Timing unterstützt. Wenn der Vorwegnahme-Schritt falsch ist, korrigieren die Unterroutinen, welche die P-Befehle verarbeiten, diese Situation. In Schritt 2025 wird das SMC-FeId in die ALU 1317 positioniert; hierdurch wird die Durchführung einer V-Operation und daher die Überprüfung von SCT gegenüber SMC vorweggenommen. Zusätzlich wird in der arithmetischen Logik-Einheit 1317a ein mit PMO bezeichnetes Flip-Flop positioniert. Dieses Flip-Flop zeigt an,daß entweder eine P-Operation oder SCT gleich "0 ist. Wenn diese Bedingung nicht vorhanden ist, erfolgt später eine Änderung.In step 2024 the SCT field in position WC4 of the "Semaphore" is incremented by 1 and saved in position WC7.-This one Step is an anticipation resulting from the fact that the execution at a V instruction is necessary for operation of the system is more critical. By performing the incrementing step in 2024 the timing used in a V-operation is supported. If the anticipation step is wrong correct the subroutines which process the P commands, this situation. In step 2025 the SMC field is positioned in the ALU 1317; this will make the implementation a V-operation and therefore the verification of SCT against SMC anticipated. In addition, the arithmetic Logic unit 1317a positions a flip-flop labeled PMO. This flip-flop indicates that either a P operation or SCT equals "0. If this condition is not is available, a change will be made later.

Zu diesem Zeitpunkt müssen die Funktionen zum Start eines P- oder V-Befehls durchgeführt sein. In Schritt 2026 wird der Befehl in der IFU-Einheit 1318 überprüft, um festzustellen, ob seinOperations-und sein Komplementär-Code eine V-Operation anzeigen. Wenn die Antwort auf diese Frage "ja" lautet, wird eine Verzweigung zur V-Befehlssequenz 2027 durchgeführt; andernfalls wird eine Verzweigung zur P-Befehlssequenz 2028 durchgeführt. At this point in time, the functions for starting a P or V command must have been carried out. In step 2026, the Checked command in IFU unit 1318 to determine whether its operational code and its complementary code are a V-operation Show. If the answer to this question is "yes", a branch is made to the V instruction sequence 2027; otherwise a branch to the P instruction sequence 2028 is carried out.

509834/0830509834/0830

Die Unterroutine 2000 in Fig.20 hat den Abgriff und die Überprüfung des Segment-"Descriptors", des ersten Worts 1500 des "Semaphor"-Descriptor-Segments 802n, des "Semäphor11-Descriptors" 1502 und des gegenwärtigen "Semaphor" 1506 durchgeführt, an dem die V- oder P-Opejration durchgeführt wird. Dementsprechend sind die erforderlichen Vorbereitungsarbeiten für die eigentliche Durchführung eines beliebigen dieser Befehle durchgeführt worden, und die Firmware zeigt an, daß der Befehl korrekt durchgeführt werden kann.Subroutine 2000 in Figure 20 has tapped and checked the segment "descriptor", the first word 1500 of the "semaphore" descriptor segment 802n, the "semaphore 11 descriptor" 1502, and the current "semaphore" 1506 on which the V or P operation is performed. Accordingly, the necessary preparatory work for the actual execution of any of these commands has been made, and the firmware indicates that the command can be performed correctly.

P-BefehleP commands

Wenn der Schritt 2028 von Fig.20 durchgeführt worden ist, ist die nächste Funktionsgruppe diejenige, die in Fig.21 dargestellt ist. Genauer gesagt, in Fig.21 sind sowohl die zuerst mit den P-Befehlen durchgeführten Gesamtfunktionen, wie auch die danach bei P-Befehlen an "Semaphores" durchgeführten Funktionen dargestellt.If step 2028 of Fig. 20 has been carried out, the next functional group is the one shown in Fig.21. More precisely, in Fig. 21 both the first overall functions performed with the P commands, as well as those performed afterwards with P commands on "semaphores" Functions shown.

Da die Antwort auf die Frage in Schritt 2026 "nein" lautete, wird in Schritt 2101 der neue "Semaphor"-Zählwert (NSCT) auf den Wert des alten "Semaphor"-Zählwertes minus 1 gesetzt. Dies ergibt sich daraus, daß eine P-Operation Daten abruft und der "Semaphor"-Zählwert anzeigen sollte, daß am "Semaphor" eine Information weniger vorhanden ist. Zusätzlich unterläßt dieser Schritt den Vorwegnahme-Schritt 2024, in dem SCT inkrementiert wurde. Daher wird das alte SCT-FeId, das in Position WC4 gespeichert ist, und nicht der inkrementierte SCT, der im Scratch Pad-Speicher bei Position WC7 bezeichnet ist, aufgesucht. Dieser SCT wird nun dekrementiert und ergibt so den neuen "Semaphor"-Zählwert NSCT, der in die Position WC7 des Scratch Pad-Speichers eingeschrieben wird.Since the answer to the question in step 2026 was "no", the new "semaphore" count (NSCT) is raised in step 2101 the value of the old "semaphore" counter value minus 1 is set. this it results from the fact that a P operation is calling up data and the "semaphore" count value should indicate that the "semaphore" one less information is available. Additionally, this step omits anticipation step 2024, in the SCT has been incremented. Therefore, the old SCT field that is used in Position WC4 is stored, and not the incremented SCT, which is identified in the scratch pad memory at position WC7. This SCT is now decremented and so results the new "semaphore" count NSCT, which is in position WC7 of the scratch pad memory.

509834/0830509834/0830

A. P-Befehle für Kicht-Meldungs-SemaphoreA. P commands for Kicht message semaphores

In Schritt 2102 lautete die Frage,_ ob es sich um eine P-Operation an einem Nicht-Meldungs-Semaphor handelt. Dies ergibt sich daraus, daß alle P-Befehle zuerst durch die Unterroutine 2028 · analysiert werden. In Schritt 2102 werden der Operations- und der Komplementär-Code aller dieser Befehle wieder in der IFU 1318 überprüft, um festzustellen, ob eine Verzweigung zu Fig.22 und der PM-Unterroutine 2103 durchgeführt werden soll. Diese Verzweigung wird durchgeführt, wenn es sich um einen Befehl für ein Semaphor mit Meldungen handelt; wenn der Test einen Befehl für ein Nicht-Meldungs-Semaphor anzeigt, wird der verbleibende Teil der PNM-Unterroutine vervollständigt.In step 2102 the question was whether it was a P operation acts on a no-message semaphore. This results from the fact that all P commands are first carried out by subroutine 2028 to be analyzed. In step 2102 the op and complement codes of all of these commands are returned to the IFU 1318 is checked to determine whether a branch to FIG. 22 and the PM subroutine 2103 should be carried out. These Branch is performed if it is a command for a semaphore with messages; when the test is a command for a no notification semaphore, the remainder of the PNM subroutine is completed.

Wenn man annimmt, daß die Antwort auf die Frage in 2102 "ja" lautet, ist die von diesemP-Befehl verlangte Information ein Signal, das z.B. anzeigen kann, daß eine Einrichtung, die eine Bandeinheit oder Magnetplatte sein kann,verfügbar ist. Der Schritt 2104 überprüft das SCT-FeId des Nicht-Meldungs-Semaphor und stellt dieFrage, ob der im SCT-FeId enthaltene Wert kleiner oder gleich 0 ist. Wenn die Antwort "nein" lautet, d.h. wenn der "Semaphor"-Zählbetrag größer als Null ist , so zeigt dies an, daß eine Einrichtung für den Prozeß verfügbar ist, welcher den P-Befehl durchführt; nun kennzeichnen die Schritte 2105 bis 2114 die erfolgreiche Durchführung eines P-Befehls an einem Semaphor ohne Meldungen. Genauer gesagt, der Schritt 2105 überprüft das PQHP-FeId des Nicht-Meldungs-Semaphor, d.h. die Bits 32 bis 47 von "Semaphor" 1600, um zu gewährleisten, daß dieses Feld Null ist. Dieser Status muß vorhanden sein, da keine Prozesse diesem Semaphor zugeordnet sind. Wenn diese Bedingung nicht erfüllt ist, tritt eine illegale Semaphor-Ausnahmebedingung 2105a auf und die Kontrollspeicher-Einheit 130 verarbeitet diese, Ausnahmbedingung.Assuming the answer to the question at 2102 is "yes", the information required by this P instruction is on Signal which can indicate, for example, that a device, which can be a tape unit or magnetic disk, is available. Of the Step 2104 checks the SCT field of the no-message semaphore and asks whether the value contained in the SCT field is less than or equal to 0. If the answer is "no", i.e., if the "semaphore" count is greater than zero, it indicates that a facility is available for the process is which executes the P command; now the steps 2105 to 2114 mark the successful implementation of a P command on a semaphore without messages. More precisely, step 2105 checks the PQHP field of the non-message semaphore, i.e. bits 32 through 47 of "Semaphore" 1600 to ensure that this field is zero. This Status must exist, as no processes are assigned to this semaphore. If this condition is not met, an illegal semaphore exception condition 2105a occurs and the control memory unit 130 processes this, Exception condition.

509834/0830509834/0830

In Schritt 2106 lautet die Frage, ob es sich um einen P-Testbefehl handelt. Wie bereits erklärt,bewirkt ein Test-, befehl immer das Verbleiben des Prozesses im Funktions-Status. Da unter den jetzigen Bedingungen ein Nicht-Testbefehl erfolgreich durchgeführt werden kann, da die gewünschte Einrichtung vom Semaphor verfügbar ist, setzt der Testbefehl einen Bedingungs-Code und arbeitet daraufhin als Nicht-Testbefehl, um die Einrichtung zu übernehmen. Dies ist in Schritt 2107 dargestellt, in dem das SCT-FeId auf einen Wert von 1 hin überprüft wird. Wenn diese Bedingung gegeben ist, löst der Schritt 2108 die Übertragung eines Bedingungs-Codes "0" zum Status-Register 1311 aus. Wenn das SCT-FeId nicht gleich 0 ist, bedeutet dies, daß das.SCT-FeId größer als 1 sein muß, da inr"Schritt 2104 festgestellt wurde, daß das SCT-FeId größer als 0 war. In dieser Situation wird der Schritt 2109 durchgeführt, indem ein Bedingungs-Code im Status-Register 1311 auf 2 positioniert .wird, um anzuzeigen, daß mehr als ein Signal verfügbar ist.In step 2106 the question is whether it is a P-test command acts. As already explained, a test command always causes the process to remain in the functional status. Since, under the current conditions, a non-test command was successful can be performed since the desired facility is available from the semaphore, the test command sets a condition code and then works as a non-test command to take over the setup. This is shown in step 2107, in which the SCT field checks for a value of 1 will. If this condition is met, step 2108 releases the transmission of a condition code "0" to the status register 1311 from. If the SCT field is not equal to 0, this means that the SCT field must be greater than 1, since inr "step In 2104 it was found that the SCT field was greater than zero. In this situation, step 2109 is performed by a condition code is positioned at 2 in status register 1311 .will to indicate that more than one signal is available.

In beiden Situationen wird der Schritt 2110 durchgeführt, unabhängig davon, ob es sich um einen P-Testbefehl für ein Nicht-Meldungs-Semaphor oder lediglich um einen P-Befehl für ein Nicht-Meldungs-Semaphor handelt. Da der SCT-Zählwert des P-Befehls positiv ist, ist bekannt, daß der P-Befehl aufgrund der vorhergehenden Schritte erfolgreich am Semaphor durchgeführt werden kann. Dieser Schritt führt den Scratch-Pad-Registern WC4 und WC5 die Informationen zu, die schließlich in den Hauptspeicher geschrieben werden. In Schritt 2110 enthält das TEP-FeId, d.h. die Bits 48 bis 63 in der WC5-Position des "Scratch-Pad-Speichers" die JP-Bezeichnung des Prozesses, welcher den darin geschriebenenP-Befehl ausführt. Dies kennzeichnet, daß hinsichtlich der diesem Semaphor zugeordneten Hilfsquelle, der gerade die Hilfsquelle benutzende Prozeß derjenige ist, dessenJP-Bezeichnung im TEP-FeId enthalten ist. Andererseits wird nun das in Schritt 2101 entwickelte NSCT-FeIdIn both situations, step 2110 is carried out, regardless of whether it is a P test command for a non-message semaphore or just a P command acts for a no-message semaphore. Since the SCT count of the P command is positive, it is known that the P command can be carried out successfully on the semaphore due to the preceding steps. This step runs the scratch pad registers WC4 and WC5 share the information that is eventually written to main memory. In step 2110 the TEP field, i.e. bits 48 to 63 in the WC5 position of the "scratch pad memory" contains the JP designation of the process, which executes the P command written therein. This indicates that in terms of the associated semaphore Auxiliary source, the process currently using the auxiliary source is the one whose JP designation is contained in the TEP field. On the other hand, the NSCT field developed in step 2101 now becomes

509834/0830509834/0830

von der Position WC7 aus als SCT in die Position WC4 des Scratch-Pad-Speichers eingeschrieben. Auf diese Weise ist die Aktualisierung der beiden Felder, die eine erfolgreiche P-Operation kennzeichnen, durchgeführt worden.from position WC7 as SCT to position WC4 of the scratch pad memory enrolled. This way, the update of the two fields is what makes a successful P operation mark, has been carried out.

Im Schritt 2111 ist das Hardware-Gatter gesperrt; es kennzeichnet dadurch, daß eine kritische Systemoperation, die eine unteilbare Aktion mit sich bringt, auftritt.In Schritt 2112 kennzeichnen die aktualisierten Felder des Semaphor einen erfolgreichen P-Befehl und der Inhalt der Positionen WC4 und WC5 des Scratch-Pad-Speichers wird über die DMU 1321 in das SD-Segment des Hauptspeichers 102 übertragen. Diese Felder ersetzen die vorherigen Felder des Semaphor. In Schritt 2113 ist das Hardware Gatter freigegeben und kennzeichnet,daß der kritische Status ■vorüber ist und der Befehlszähler 1312 inkrementiertworden ist. Daher wird der nächste Befehl des laufenden Prozesses (CJP) durchgeführt.In step 2111 the hardware gate is disabled; it indicates that a critical system operation involving an indivisible action is occurring. In step 2112 the updated fields of the semaphore indicate a successful P command and the contents of positions WC4 and WC5 of the scratch pad memory are transferred via the DMU 1321 in the SD-S e gment transfer of the main memory 102nd These fields replace the previous fields of the semaphore. In step 2113 the hardware gate is enabled and indicates that the critical status ■ is over and the command counter 1312 has been incremented. Therefore, the next command of the current process (CJP) is executed.

Wenn das SCT-FeId des Nicht-Meldungs-Semaphor in der Antwort von Schritt 2104 gleich oder kleiner als 0 war, tritt eine Verzweigung zu Schritt 2115 auf. In diesem Status verfügt das Semaphor, das vom P-Befehl des laufenden Prozesses adressiert wird, über keine Hilfsquellen. Daher ist der P-Befehl, der die Hilfsquelle abruft, ohne Erfolg. In Abhängigkeit vomP-Befehl, wird der laufende Prozeß entweder in den Warte-Status versetzt, d.h. er muß solange warten, bis das Semaphor die Hilfsquelle erhält, oder er kann weiter ablaufen, wenn es sich um einen P-Testbefehl handelt. In Schritt 2115 lautet die Frage, ob das SCT-FeId gleich Null ist. Wenn dies zutrifft, bedeutet dies, daß keine Meldungen oder Prozesse am Nicht-Meldungs-Semaphor verkettet sind und nun wird mit Schritt 2117 eine Überprüfung durchgeführt, um sicherzustellen, daß derIf the SCT field of the non-message semaphore is in the response from step 2104 was equal to or less than 0, a branch to step 2115 occurs. Has this status the semaphore addressed by the P command of the current process does not have any auxiliary sources. Therefore the P command is who calls the resource, to no avail. Depending on the P command, the current process will either be in the waiting state offset, i.e. it must wait until the semaphore receives the auxiliary source, or it can continue to run if it is a P test command. In step 2115 the question is whether the SCT field is equal to zero. If so, this means that no messages or processes are linked to the non-message semaphore a check was carried out to ensure that the

509834/0830509834/0830

Prozeß-Warteschlangen-Kopfhinweis gleich Null ist.Wenn der SCT-Zählwert ungleich Null ist, bedeutet dies, daß er geringer als Null ist und zeigt so an, daß am Nicht-Meldungs-Semaphor Prozesse verkettet sind.^In diesem Fall wird Schritt 2116 durchgeführt, um zu überprüfen, ob der PQHP ungleich Null und auch ein Vielfaches von 8 ist. Der PQHP ist ungleich Null, da er den ersten Prozeß,identifiziert, der mit diesem Semaphor verkettet ist. Da die mit dem Prozeß verbundenen Prozeß-Verkettungen 8 Bytes lang sind, ist der PQHP ein Vielfaches von 8, um auf das erste Byte der Prozeß-Verkettung hinzuweisen, welches die Informationen bezüglich des am Semaphor wartenden Prozesses beinhaltet.Process queue header is zero. If the SCT count is not equal to zero, this means that it is less than zero and thus indicates that the non-message semaphore Processes are chained. ^ In this case, step 2116 done to check if the PQHP is nonzero and is also a multiple of 8. The PQHP is nonzero because it identifies the first process that started with this Semaphore is concatenated. Since the process chains associated with the process are 8 bytes long, the PQHP is a Multiple of 8 to refer to the first byte of the process chain, which contains the information regarding the am Semaphore waiting process.

Wainbeide Tests erfolgreich ablaufen, ist bekannt, daß das Semaphor geeignet ist.In Schritt 2118.lautet die Frage, ob es sich um einen ablaufenden P-Testbefehl handelt. Wenn dies .zutrifft, wird wie in Schritt 2119 dargestellt, ein Bedingungs-Code "1" gesetzt. Dieser Bedingungs-Code kennzeichnet, daß wenn der P-Befehl durchgeführt worden wäre, der laufende Prozeß in den Warte-Status übergegangen wäre. Daher empfängt das Status-Register 1311 den Bedingungscode 1.Zusätzlich wird Schritt 2120 durchgeführt, um die JP-Bezeichnung des letzten Prozesses zu·bestimmen, der eine erfolgreiche P-Operation an diesem Nicht-Meldungs-Semaphor durchgeführt hat. Es ist zu bemerken, daß der ablaufende Prozeß nicht seine JP-Bezeichnung in das TEP-FeId von Semaphor 1600 überträgt, da keine erfolgreiche P-Operation durchgeführt wurde. Die' Bezeichnung des letzten Prozesses, der erfolgreich eine P-Operation an diesem Semaphor durchgeführt hat, wird jedoch gespeichert, da dieser Prozeß die, vom gerade ablaufenden Prozeß angeforderte Hilfsquelle belegt. Dies ist in Schritt 2120 dadurch dargestellt, daß die JP-Bezeichnung in die letzten 16 Bits des GRO des ablaufenden Prozesses eingeschrieben wurde. Alle ersten 16 Bits enthalten Nullen.If both tests pass, it is known that the Semaphore is appropriate. In step 2118 the question is whether it is an active P-test command. If so, as shown in step 2119, a condition code is provided "1" is set. This condition code indicates that if the P command had been carried out, the current one Process would have entered the waiting status. Therefore the status register 1311 receives the condition code 1 Step 2120 is performed to find the JP designation of the last Process to · determine which is a successful P-operation performed on this no-message semaphore. It should be noted that the process in progress does not have its JP designation transferred to the TEP field of semaphore 1600, since no successful P operation was carried out. The' Designation of the last process that successfully performed a P operation on this semaphore but stored, since this process occupies the resource requested by the current process. This is represented in step 2120 by placing the JP designation in the last 16 bits of the GRO of the current process was enrolled. All first 16 bits contain zeros.

509834/0830509834/0830

Wenn der Prozeß, welcher den P-Testbefehl durchführt, eine höhere Priorität als der über die Hilfsquelle verfügende Prozeß und außerdem seine JP-Bezeichnung im TEP-FeId besitzt, kann der gegenwärtig ablaufende Prozeß die Unterbrechung desjenigen Prozesses beschliessen,der die Hilfsquelle benutzt. In jedem Fall wird jedoch der Befehlszähler 1312 inkrementiert und der nächste Befehl des laufenden Pro zesses, der einen P-Testbefehl durchgeführt hat, wird wie im Schritt 2114 dargestellt, durchgeführt.When the process performing the P test command has a higher priority than the process that has the resource and also its JP designation in the TEP field the process currently in progress may decide to interrupt the process that is the resource used. In either case, however, the instruction counter 1312 is incremented and the next instruction of the current pro Process that performed a P test command is performed as shown in step 2114.

Wenn es sich nicht um einen Testbefehl gehandelt hatte, d.h. der Operations-Code im Schritt 2118 zeigte an, daß es sich umd einenP-Befehl an einem Nicht-Meldungs-Semaphor handelte, wird eine Unterroutine E von VP 2121 durchgeführt, die den gerade ablaufenden Prozeß in den Warte-Status versetzt. Auf diese Weise befindet sich der gerade ablaufende Prozeß nicht mehr im Funktions-Status und eine Prozeß-Verkettung, welche die Bezeichnung J, P beinhaltet, wird mit dem vom P-Befehl adressierten Semaphor verbunden.If it was not a test command, i.e. the operation code in step 2118 indicated that it was about a P command on a non-message semaphore, a subroutine E of VP 2121 is performed, which the currently running process placed in the waiting status. The process in progress is not in this way more in the function status and a process chain, which contains the designation J, P, is addressed with the one addressed by the P command Semaphore connected.

Vor der Betrachtung von Schritt 2121, der den ablaufenden Prozeß in den Warte-Status versetzt, wird die Verzweigungs-Unterroutine PM 2103 von Frage 2102 betrachtet, da diese die Unterroutine für die P-Operation an einem Meldungs-Semaphor abruft. Diese Unterroutine besitzt ebenfalls eine Verzweigung zu E von VP 2121, wenn der ablaufende Prozeß eines P-Befehls an einem Meldungs-Semaphor in den Warte-Status versetzt werden soll. Zu diesem Zeitpunkt wird die Erläuterung des E der VP-Unterroutine 2121 durchgeführt.Before considering step 2121 which is the ongoing process pending status, consider branch subroutine PM 2103 of question 2102 as this is the Retrieves subroutine for the P operation on a message semaphore. This subroutine also has a branch to E from VP 2121, when the current process puts a P command on a message semaphore into the waiting status shall be. At this time, the explanation of the E of the VP subroutine 2121 will be performed.

.Β« P-Befehl an einem Meldungs-Semaphor.Β «P command on a message semaphore

Wenn der Operations-Code in Schritt 2102 anzeigte, daß ein P-Befehl an einem Meldungs-Semaphor durchgeführt wurde, wirdIf the op code indicated in step 2102 that a P command was performed on a message semaphore, then

$09834/0830$ 09834/0830

eine Verzweigung zu Fig.22a und Schritt 2200 durchgeführt. In Fig.20 ist das Semaphor bereits erfaßt worden und befindet sich in den Positionen WC4, WC5 des Scratch-Pad-Speichers. In Schritt 2200 lautete die Frage, ob das SCT-FeId, d.h. die Bits bis 31 kleiner als Null ist, d.h. ob Prozesse ; dem Meldungs-Semaphor zugeordnet sind, das in Fig.16 als 1602 dargestellt ist.Wenn die arithmetische Logik-Einheit 1317 das SCT-FeId daraufhin überprüft, ob es kleiner als Null ist, führt der Schritt 2201 die Überprüfung der PQHP- und MQTP-Felder im Meldungs-Semaphor durch, um festzustellen, ob diese korrekt sind.a branch to FIG. 22a and step 2200 is carried out. In FIG. 20, the semaphore has already been recorded and is located in positions WC4, WC5 of the scratch pad memory. In step 2200 the question was whether the SCT field, ie the bits up to 31, is less than zero, ie whether processes ; are assigned to the message semaphore, which is shown in Fig. 16 as 1602. When the arithmetic logic unit 1317 checks the SCT field to see whether it is less than zero, step 2201 checks the PQHP and MQTP Fields in the message semaphore to see if they are correct.

Genauer gesagt, der Meldimgs-Warteschlangen-Schwanzhinweis' MQTP, d.h. die Bits 48 bis 63, muß gleich Null sein, da die Prozesse und nicht Meldungen mit diesem Meldungs-Semaphor verbunden sind. Die Bits 32 bis 47 bilden den Prozeß-Warteschlangen-Kopf hinweis, der den ersten Prozeß, der mit diesem Semaphor verbunden ist, identifiziert, und diese 16 Bits werden sowohl darauf, ob sie ungleich Null sind als auch darauf, ob sie ein Vielfaches von 8 sind, getestet. Der erste Test wird durchgeführt, um festzustellen, daß eine Prozeß-Verkettung, die aus zwei Worten besteht mit dem Semaphor verbunden ist, und der zweite Test kennzeichnet die Hinv/eisung auf das erste Byte der beiden Worte der Prozeß-Verkettung. Auf diese Weise wurde mit Hilfe dieser Tests in 2101 festgestellt, daß eine Prozeß-Warteschlange am Semaphor Q/PR/S vorhanden ist und daß die Anzeige,nach der das SCT-FeId niedriger als. Null ist, korrekt ist.More precisely, the message queue tail indication 'MQTP, ie bits 48 to 63, must be zero because the processes and not messages are associated with this message semaphore. Bits 32 through 47 form the process queue header which identifies the first process associated with this semaphore, and these 16 bits are used both for non-zero and a multiple of 8 are tested. The first test is performed to determine that a two word process chain is associated with the semaphore, and the second test indicates the reference to the first byte of the two words in the process chain. In this way, with the aid of these tests in 2101, it was established that a process queue is present at the semaphore Q / PR / S and that the indication according to which the SCT field is lower than. Zero is correct.

In Schritt 2202 lautet die Frage, ob es sich um eineil P-Testbefehl für ein Meldungs-Semaphor handelt. Da ein Testbefehl keinen gerade ablaufenden Prozeß in den Warte-Status versetzen kann,ergibt sich die gleiche Situation, die bereits bei Schritt 2118 in Fig.21 auftrat. Daher wird das Statur-Register 1.311 auf. einen. Bedingungs-Code 1 positioniert, welcherIn step 2202, the question is whether it is an ILP test command is for a message semaphore. Since a test command does not put a currently running process in the waiting status can move, the same situation arises that already occurred in step 2118 in FIG. Hence the stature register 1.311 on. a. Condition code 1 positioned which

509834/0830509834/0830

anzeigt, daß der P-Befehl für ein Meldungs-Semaphor nicht ausgeführt wird, und der Befehlszähler des ablaufenden Prozesses wird um 1 inkrementiert (Schritt 2203) und gibt die Ausführung des nächsten Befehls für den gerade ablaufenden Prozeß frei (Schritt 2204).Wenn der P-Befehl für ein Meldungs-Semaphor kein Testbefehl ist, würde der ablaufende Prozeß, der den P-Befehl startet eine Meldung anfordern. Da keine verfügbar ist, muß der gerade ablaufende Prozeß auf die Meldung warten, und die Unterroutine Ξ von VP 2121 versetzt den gerade laufenden Prozeß in denVferte-Status. Dies ist auch in Fig.21 dargestellt,·indicates that the P command for a message semaphore has not been executed and the instruction counter of the current process is incremented by 1 (step 2203) and indicates execution of the next instruction free for the currently running process (step 2204). If the P instruction for a message semaphore is not a test command, the running process that starts the P command would request a message. Since none available is, the currently running process must wait for the message, and the subroutine Ξ of VP 2121 offsets running process in the default status. This is also in Fig.21 shown,

C.Versetzen eines laufenden Prozesses in den T.farte-StatusC. Set a running process to the T .farte status

Das E der VP-Unterroutine wird für solche Situationen beansprucht, in denen der laufende Prozeß nicht weiter ablaufen kann und in den Warte-Status versetzt werden muß. Daher werden die beiden oben beschriebenen Situationen, die Nicht-Meldungs-Semaphore 1600 und Meldungs-Semaphore 1602 benutzen, in gleicher Weise bearbeitet, da eine Q/PR/S formiert ist. Später, bei der Diskussion der V-Befehle, kann man feststellen, daß das E der VP-Unterroutine ebenfalls benutzt wird, wenn keine freien Meldungs-Verkettungen verfügbar sind. In dieser Situation kann der Prozeß nicht seine Meldung absenden, und er wird daher in eine Warteschlange am Semaphor FLS 901 eingereiht, um auf eine freie Meldungs-Verkettung Q/PR/SLS zu warten. Alle diese Bedingungen ergeben, daß. die Firmware, wie in Fig.23 dargestellt, dieselben Funktionen durchführt.The E of the VP subroutine is used for situations in which the current process cannot continue and must be put into the waiting status. Hence be the two situations described above, the non-message semaphores Use 1600 and message semaphore 1602, in the same way Wise edited because a Q / PR / S is formed. Later, when discussing the V commands, it can be seen that the E the VP subroutine is also used when no free message chains are available. In this situation the process cannot send its message and it is therefore placed in a queue at the semaphore FLS 901, to wait for a free message chain Q / PR / SLS. All of these conditions result in that. the firmware as in Fig.23 shown, performs the same functions.

Genauer gesagt, da der in den Warte-Status zu versetzende Prozeß Bich gegenwärtig im Funktions-Status befindet, muß eine Prozeß-Verkettung, wie in den Fig.16c und 18 dargestellt, vom PLS-Semaphor 901 abgerufen werden. In Fig.18 weist das PLS-Semaphor 901 im GO-Segment 802 auf die Prozeß-VerkettungMore precisely, since the one to be put on hold Process Bich is currently in the functional status, a process chain, as shown in Fig. 16c and 18, can be retrieved from the PLS semaphore 901. In Fig. 18 the PLS semaphore 901 in GO segment 802 on the process chain

509834/0830509834/0830

805a hin, die wiederum die verbleibenden Prozeß-Verkettungen der Reihe nach kennzeichnet, wobei alle Prozeß-Verkettungen in einer Warteschlange sind, die mit dem Prozeß-Verkettungs-Semaphor 901 verbunden ist. In Schritt 2301 von Fig.23a erfaßt die APLS-Unterroutine die mit dem PLS-Semaphor 901 verbundene Prozeß-Verkettung 805a. Die APLS-Unterroutine ist in Fig.23c dargestellt. -805a, which in turn contains the remaining process chains identifies sequentially, with all process chains in a queue, those with the process chaining semaphore 901 is connected. In step 2301 of Figure 23a, the APLS subroutine detects the one associated with the PLS semaphore 901 Process chaining 805a. The APLS subroutine is shown in Figure 23c. -

Gemäß Fig.23c besteht der erste Schritt der APLS-Unterroutine darin, auf eine FGO-Unterroutine 2321 zurückzugreifen. Die in Fig.23d dargestellte FGO-Unterroutine entwickelt die Adresse des PLS-Semaphor 901, der konstant ist, da das PLS-Semaphor immer das erste Vort im GO-Segment ist. Der erste Schritt der FGO-Unterroutine 2330 zeigt an, daß die Firmware die Adresse erzeugt, d.h. Segment-Nummer, die das PLS-Semaphor im GO-Segment-Descriptor lokalisiert. Dies erfolgt durch Auswahl eines Registers in der Position WC9 des Scratch-Pad-Speichers und durch die nachstellend beschriebene Entwicklung einer 12-Bit-Nummer. Die ersten vier Bits werden auf 0111 gesetzt, um zu kennzeichnen, daß es sich um eine G-Nummer handelt, und die letzten 8 Bits werden auf Null gesetzt, um zu kennzeichnen, daß es sich um das Null-Segment der G-Nummer handelt. Diese Segment-Nummer kennzeichnet auf diese Weise die Position des PLS-Semaphor im GO-Segment. Diese Segment-Nummer wird nun im Schritt 2331 in den Assoziativspeicher 1319a übertragen, um festzustellen, ob der Assoziativ-Speicher den Segment-Descriptor der SegmentrNummer und daher auch die Basis-Adresse des Segments enthält oder nicht. Wie bereits erklärt, ist der Assoziator ein Speicher mit kurzer Zugriffszeit, der das System davon entlastet, im Hauptspeicher Informationen abzurufen. In Schritt 2332 lautet die Frage, ob ein Treffer erfolgt ist, d.h. ob der Assoziativspeicher 1319aReferring to Figure 23c, the first step of the APLS subroutine is to access an FGO subroutine 2321. The FGO subroutine shown in FIG. 23d develops the address of the PLS semaphore 901, which is constant since the PLS semaphore is always the first before in the GO segment. The first step of the FGO subroutine 2330 indicates that the firmware is generating the address, ie segment number, which the PLS semaphore locates in the GO segment descriptor. This is done by selecting a register in position WC9 of the scratch pad memory and by developing a 12-bit number as described below. The first four bits are set to 0111 to indicate that it is a G number and the last 8 bits are set to zero to indicate that it is the zero segment of the G number . This segment number identifies the position of the PLS semaphore in the GO segment. This segment number is now in step 2331 i n the associative memory 1319a transmitted to determine whether the associative memory contains the descriptor segment of SegmentrNummer and therefore the base address of the segment or not. As already explained, the associator is a memory with short access time, which relieves the system from having to call up information in the main memory. In step 2332 the question is whether a hit has occurred, ie whether the associative memory 1319a

509834/0830509834/0830

die während des Schritts 2330 entwickelte Segment-Nummer enthält oder nicht. Wenn der Assoziativ-Speicher diese Adresse enthält, stellt der Schritt 2333 die Frage "Ist das geschriebene Bit im Segment-Descriptor gesetzt?" Dieser Test wird durchgeführt, da in der gegenwärtigen Situation der laufende Prozeß an ein Semaphor angegliedert werden soll und daher das Schreiben spezieller Informationen, d.h. nächster Verkettungs-Index etc. erfordert. Das geschriebene Bit ist bereits erläutert worden. Wenn das geschriebene Bit noch nicht positioniert worden ist, wird in Schritt 2334 eine Verzweigung zur SGW-Unterroutine durchgeführt und gleichzeitig das W-Bit sowohl in den Assoziativ-Speicher 1319a wie auch in den Hauptspeicher geschrieben.Wenn das geschriebene Bit jedoch gesetzt worden ist, besteht keine Veranlassung, es zu schreiben, und Schritt 2335 wird nun durchgeführt.includes or does not contain the segment number developed during step 2330. If the associative memory contains this address, the step 2333 asks the question "Is the written bit set in the segment descriptor?" This test is carried out because in the current situation the current process is to be attached to a semaphore and therefore the writing special information, i.e. next chaining index etc. required. The bit written has already been explained been. If the bit written has not yet been positioned, step 2334 branches to the SGW subroutine performed and at the same time the W bit is written both in the associative memory 1319a and in the main memory. If however, the written bit has been set, there is no need to write it, and step 2335 is now carried out.

Wenn der Assoziator nicht die in Schritt 2330 erzeugte Segment-Nummer enthielt, d.h. in Schritt 2332 wurde keine Verzweigung durchgeführt, wird eine Unterroutine FGSG 2336 durchgeführt, die die Segment-Nummer in den Assoziator überträgt, so daß beim nächsten Mal die in 2330 erzeugte Segment-Nummer dem Assoziator 1319a gemeldet wird und eine Treffer-Bedingung auftritt. Diese Unterroutine setzt ebenfalls die U- und W-Bits der Segment-Nummer sowohl im Assoziator als auch im Hauptspeicher.If the associator does not match the segment number generated in step 2330 contained, i.e. in step 2332 no branch was carried out, a subroutine FGSG 2336 is carried out, which transfers the segment number to the associator, so that the next time the segment number generated in 2330 is transferred to the associator 1319a is reported and a hit condition occurs. This subroutine also sets the U and W bits of the segment number both in the associator and in the main memory.

Auf alle Fälle wird der Schritt 2335 durchgeführt, der zur späteren Verwendung die Segment-Basis und die Segment-Grenze festlegt. Dieser Schritt überträgt hauptsächlich die Segment-Basis-Adresse und Segment-Begrenzung vom Segment-Descriptor, der sich nun im Assoziativ-Speicher befindet, in die Arbeitsregister der Adreß-Steuereinheit 1319. Die Segment-Grenze kennzeichnet die End-Adresse im Speicher. Die Ausnahmeroutine "außerhalb des Segments" wird durchgeführt, wenn die abzuleitende Adresse die Segment-Grenze überschreitet.In any event, step 2335 is performed which sets the segment base and segment boundary for later use specifies. This step mainly transfers the segment base address and segment delimitation from the segment descriptor, which is now in the associative memory, into the working register of the address control unit 1319. The The segment boundary marks the end address in the memory. The exception routine "outside the segment" is carried out if the address to be derived exceeds the segment limit.

509834/0830509834/0830

Während der Durchführung von Schritt 2335 wird eine Rückkehr zur.APLS-Unterroutine in Fig.23c durchgeführt. Der Schritt 2323 wird durchgeführt.Es ist jedoch zu bemerken, daß der Schritt 2322 eine Abweichung der APLS-Unterroutine kennzeichnet; die keinen Abruf der. FGO-Unterroutine erfordert. Diese Situation tritt auf, wenn vorhergehend eine Zusatzoperation zur PLS-Semaphör-Adresse durchgeführt wurde und daher die Benutzung der FGO-Unterroutine überflüssig wäre. Mit der APLS-Unterroutine überträgt der Schritt 2323 das PLS-Semaphor zur arithmetischen Logik-Einheit 1317, in der bestimmte Tests durchgeführt werden. In Schritt 2324 wird ein Test an den beiden Worten des PLS-Semaphor 901 (Fig.16c) durchgeführt. Auf diese Weise wird das STAG-FeId, die Bits 0 bis 3, überprüft, um festzustellen, ob alle Bits auf Null sind; die Bits bis 15 des SMC-Feldes werden überprüft, um zu gewährleisten, daß alle auf Null sind; die Bits 16 bis 31 des MBZ-Feldes werden überprüft, um zu gewährleisten, daß alle auf Null sind, und das PLQP-FeId, das auf die nächste Prozeß-Verke'ttüng hinweist^ wird überprüft, um sowohl festzustellen, ob es ein Vielfaches von 8 ist, da alle Prozeß-Verkettungen eine Länge von zwei Worten haben, als auch festzustellen, ob es nicht Null ist, da der PLQP auf das erste Byte der Prozeß-Verkettung hinweist.While step 2335 is being performed, a return is made to the APLS subroutine in Figure 23c. Step 2323 is performed. Note, however, that step 2322 indicates a deviation in the APLS subroutine ; which does not retrieve the. FGO subroutine required. This situation occurs if an additional operation was previously carried out for the PLS semaphore address and therefore the use of the FGO subroutine would be superfluous. With the APLS subroutine, step 2323 transfers the PLS semaphore to the arithmetic logic unit 1317 in which certain tests are performed. In step 2324 a test is carried out on the two words of the PLS semaphore 901 (FIG. 16c). In this way the STAG field, bits 0 through 3, is checked to see if all bits are zero; bits 15 through 15 of the SMC field are checked to ensure that they are all zero; bits 16 through 31 of the MBZ field are checked to ensure that they are all zero, and the PLQP field, which indicates the next process link, is checked to determine whether it is a multiple of 8, since all process chains are two words long, as well as determining whether it is not zero, since the PLQP points to the first byte of the process chain.

Wenn diese Tests mit Erfolg durchgeführt werden, überprüft der Schritt 2325 den Zugriff zur erstenProzeß-Verkettung amProzeß-Verkettungs-Semaphor durch Ausführung einer Speicher-Abgriffsoperation der 8 Bytes der Verkettung. Wenn die Verkettung nicht im richtigen Speicher ist, tritt als Resultat dieser Speicher-Zusatzoperation eine Ausnahme auf. Wenn der Test mit Erfolg durchgeführt wird, wird die absolute Adresse der Verkettung in der Position W30 des Scratch-Pad-Speiehers gespeichert. Wenn der PLQP-Index Null war,bedeutet dies, daß keine Prozeß-Verkettungen zur Zeit verfügbar sind.If these tests pass with success, check step 2325 accesses the first process chain on the process chain semaphore by performing a memory tap operation of the 8 bytes of the concatenation. When the concatenation is not in the correct memory, the result occurs this overhead memory operation raises an exception. If the test is successful, the absolute address will be the chaining in position W30 of the scratch pad memory saved. If the PLQP index was zero, it means that no process chains are currently available.

509834/0830509834/0830

Anders ausgedrückt, allen im System verfügbarenProzeß-Verkettungen sind Prozesse zugeordnet, die sich entweder im Warte- oder im Bereit-Status befinden, und für neue, zu startende Prozesse, sind keine weiteren Prozeß-Verkettungen verfügbar.Wenn diese Bedingung auftritt, wird eine Ausnahme 2325a "fehlende Prozeß-Verkettung" durchgeführt. Wenn diese sehr ungewöhnliche Situation auftritt, können mehrere vorhandene Prozesse unterbrochen werden, damit ihre Prozeßverkettungen für das System verfügbar werden. Wenn jedoch alle diese Tests erfolgreich sind, wird die APLS-Unterroutine vervollständigt, so daß wieder eine Rückkehr zu Fig.23a und zum Schritt 2302 erfolgt.In other words, all the process chains available in the system are assigned to processes that are either waiting or ready, and for new ones, to starting processes, no further process chains are available. If this condition occurs, an exception is raised 2325a "missing process chaining" performed. When this very unusual situation occurs, there may be more than one existing Processes are interrupted so that their process links are available to the system. But when all of these tests are successful, the APLS subroutine is completed, so that again a return to Fig. 23a and to step 2302 takes place.

In Schritt 2302 lautet die Frage "Ist dies ein P-Befehl?". Wenn die Antwort "nein" lautet, d.h.wenn es sich um einen V-Befehl handelt, wird die Unterroutine MTT 2303 durchgeführt, die, wie in Fig.15 dargestellt, den Meldungs-Vorsatz schreibt. In der gegenwärtigen Situation lautet die Antwort jedoch "Ja", und Schritt 2304 der PRIQ-Unterroutine wird durchgeführt. At step 2302 the question is "is this a P command?" If the answer is "no", i.e. if it is a V command, the MTT 2303 subroutine is carried out, which, as shown in Fig. 15, writes the message header. In the current situation, however, the answer is "Yes" and step 2304 of the PRIQ subroutine is performed.

Die PRIQ-Unterroutine legt die Position der mit dem gerade ablaufenden Prozeß, der in den Warte-Status versetzt werden soll, verbundenen Prozeß-Verkettung fest. Diese Positionierung erfolgt auf Prioritäts-Basis in die Wartes/chlange eines Semaphor. Die Prioritäts-Positionierung ist für alle Prozesse erforderlich, die eingegliedert werden sollen oder für Meldungen an einem Semaphor, das über ein STAG-FeId verfügt, welches Prioritäts-Eingliederung anzeigt. Die PRIQ-Unterroutine vergleicht die Priorität entweder der Prozeß-oderder Meldungs-Verkettung, die prioritätsbezogen in die Semaphor-Verkettungen eingereiht werden soll und gewährleistet je nach Prioritäts-Einreihungstyp, d.h. FIFO oder LIFO seine Eingliederung. Zwischenzeitlich benutztThe PRIQ subroutine sets the position of the straight running process that is to be put into the wait status. This positioning occurs on a priority basis in the queue of a semaphore. Priority positioning is required for all processes that are to be integrated or for messages to one Semaphore that has a STAG field, which priority integration indicates. The PRIQ subroutine compares the priority of either the process or the message chain, which is to be classified in the semaphore chains based on priority and ensures, depending on the priority classification type, i.e. FIFO or LIFO its incorporation. Used in the meantime

509834/0830509834/0830

die UQLK-Unterroutine die von der PRIQ-Ünterroutine entwickelten Informationen und schreibt eine neue Verkettung in die Warteschlange und ändert zusätzlich, wenn erforderlich, beliebige Informationen von anderen Verkettungen..the UQLK subroutine developed by the PRIQ subroutine Information and queues a new chain, and additionally changes any if necessary Information from other chains.

Zu Veranschaulichungszwecken wird die PRIQ-Unterroutine in Verbindung mit einer Situation beschrieben, in der ein P-Befehl ohne Erfolg an einem Semaphor abgelaufen ist, d.h. die Ergebnisse der Fig.20 und 21. Weiterhin wird, da die PRIQ-Unterroutine 2304 eine Anzahl von Varablen mit sich zieht, eine allgemeine, nicht mit dem Resultat der Bezeichnung der Flußdiagramme übereinstimmende Bezeichnung, angegeben. Zum Beispiel bedeutet die Bezeichnung PL in den Fig.23e und 23f die einzureihende Verkettung, die Verkettung, die in der Lage ist, entweder eine Prozeß-Verkettung oder eine Meldungs-Verkettung zu sein. Die Bezeichnung QHP steht für eine Warteschlangen-Kopf verschiebung, die der PQHP oder MQHP für das Semaphor sein kann,Die Bezeichnung in Unterroutine 2304 (I) wird verwendet, um zu kennzeichnen , ob eine FIFO-Verkettung mit Priorität oder eine LIFO-Verkettung mit Priorität verwendet werden soll, und zu diesem Zweck wird im Hilfsspeicher 1317a ein Flip-Flop positioniert. Die Bezeichnung SNL ist das nächste Verkettungsfeld der einzugebendenProzeß-Verkettung. Die Prozeß-Verkettung oder Meldungs-Verkettung, die entwickelt wurde, befindet sich an irgendeiner Stelle in der Warteschlange. Daher identifiziert SNL die nächste unmittelbar darauffolgende Prozeß-oder Meldungs-Verkettung.Der erste Verkettungs-Indikator gibt an,.ob die neue Verkettung in den Kopf der Warteschlange eingereiht werden soll oder nicht, d.h. wenn die Unterroutine beendet ist und der erste Verkettungs-Indikator immer noch gleich Eins ist, daß dann die hinzugefügte Prozeß-oder Meldungs-Verkettung die Kopf-Verkettung der Warteschlange ist.ULK steht für die Prozeß-oder Meldungs-Verkettung, die unmittelbar vorFor purposes of illustration, the PRIQ subroutine will be described in connection with a situation where a P command has expired on a semaphore without success, i.e. the results of FIGS. 20 and 21. Furthermore, since the PRIQ subroutine 2304 involves a number of variables, one general, not with the result of naming the flowcharts matching designation given. For example, the designation PL in Figures 23e and 23f means the one to be classified Concatenation, the concatenation that is capable of either a process or a message chain to be. The designation QHP stands for a queue head shift, which can be the PQHP or MQHP for the semaphore, will be the designation in subroutine 2304 (I) used to indicate whether a FIFO chaining is used with priority or a LIFO chaining with priority is to be, and for this purpose in the auxiliary memory 1317a a flip-flop positioned. The name SNL is the next chaining field of the process chaining to be entered. The process chaining or message chaining that evolves is somewhere in the queue. Therefore, SNL identifies the next immediately following process or message chain. The first chain indicator indicates .ob the new concatenation in the head of the queue should be enqueued or not, i.e. when the subroutine has ended and the first chaining indicator is still the same One thing is that the added process or message chain is then the head chain of the queue. ULK stands for the process or message chaining that is immediately preceding

509834/0830509834/0830

der neu einzugliedernden Verkettung auftritt und daher muß nun ihr Feld "nächste Verkettung " ergänzt werden, um die Position der neu hinzugefügten Verkettung zu identifizieren. Das Feld "nächste Verkettung" von ULK wird durch SREL indentifiziert.SREL ist der Wert des nächstenVerkettungsfeldes im ULK. Wenn daher die Einfügung der Prozeß- oder Meldungs-Verkettung in die Mitte der Warteschlange erforderlich ist, wird die unmittelbar vor der neu eingefügten Verkettung befindliche Verkettung geändert und erhält den SREL-Wert. Zusätzlich kennzeichnet die neu eingefügte Prozeß- oder Meldungs-Verkettung die nachfolgende Verkettung, die vorher von ULK identifiziert wurde.of the new concatenation to be integrated occurs and therefore your "next concatenation" field must now be supplemented with the Identify the position of the newly added chain. The "next concatenation" field of ULK is identified by SREL.SREL is the value of the next link field in the ULK. If therefore the insertion of the process or message chain is required in the middle of the queue, the immediate The chaining before the newly inserted chaining is changed and receives the SREL value. In addition, indicates the newly inserted process or message chain the subsequent chain previously identified by ULK became.

Um die gegenwärtig von der CRIQ 2304 durchgeführte Umwandlung besser verständlich zu machen, wird nochmals auf Fig.18 und insbesondere auf die q/PR/S5 verwiesen, an die die Prozeß-Verkettungen 808a, 808b und 808c angegliedert sind. In diese Warteschlange'wird prioritätfebezogen die Prozeß-Verkettung 805a vom PLS-Semaphor eingegliedert. Zu Darstellungszwecken wird die Prozeß-Verkettung 805a als Z und ihr Feld u nächste Verkettung " als SML gekennzeichnet.Die Prozeß-Verkettungen 1808a, 1808b und 1808c werden später als Prozeß-Verkettungen A, B und C gekennzeichnet, Auf diese Weise wird die Prozeß-Verkettung A ein Feld "nächste Verkettung" enthalten, welches auf B hinweist, und eine Prozeß-Verkettung B wird ein Feld "nächste Verkettung" enthalten, welches auf C hinweist, wobei das auf C folgende Feld "nächste Verkettung" Null ist. Da die Priorität der Prozeß-Verkettung Z der Priorität des laufenden Prozesses, der in den Warte-Status versetzt werden soll, entspricht, sind die Positionen der Prozeß-Verkettung in dieser Warteschlange wie auch die an den anderenProzeß-Verkettungen A, B, C und/oder Semaphor S5 durchzuführenden Änderungen dargestellt.In order to make the conversion currently carried out by the CRIQ 2304 easier to understand, reference is again made to FIG. 18 and in particular to q / PR / S5, to which the process chains 808a, 808b and 808c are attached. The process chain 805a from the PLS semaphore is incorporated into this queue with regard to priority. For purposes of illustration, the process chain 805a is identified as Z and its field u next chain "as SML. The process chains 1808a, 1808b and 1808c are later identified as process chains A, B and C. Concatenation A will contain a "next concatenation" field indicating B, and a process chain B will contain a "next concatenation" field indicating C, with the "next concatenation" field following C being zero Priority of the process chain Z corresponds to the priority of the current process that is to be put into the waiting status, are the positions of the process chain in this queue as well as those at the other process chains A, B, C and / or Semaphore S5 shows the changes to be made.

509834/0830509834/0830

Genauer ausgedrückt, der Schritt 2340 von Fig.23e kennzeichnet, daß SNL gleich dem Kopfhinweis der Warteschlange gesetzt ist, d.h. gleich der ersten Prozeß-Verkettung in der Warteschlange. Der Hinweis »erste Verkettung" wird auf 1 positioniert; zwischenzeitlich wird der erste .Verkettungs-Indikator, wenn feststeht, daß nicht die erste Verkettung geändert werden soll, in Null umgeändert. ■More precisely, the step 2340 of FIG. 23e characterizes that SNL is set equal to the header of the queue, i.e. equal to the first process chain in the queue. The note »first chaining" is positioned on 1; in the meantime If it is established that the first chaining should not be changed, the first .linkage indicator becomes zero changed. ■

LK, die gegenwärtige Verkettung, die zu diesem Zeitpunkt überprüft wird, wäre dann das Feld "nächste Verkettung" der Prozeß-Verkettung Λ. Daher ist LK ursprünglich eine Prozeß-Verkettung A und ULK und die zu aktualisierende Verkettung wäre ebenfalls eine Prozeß-Verkettung Ji.. LK, the current chaining that is being checked at this point in time would then be the "next chaining" field of the process chaining Λ. Therefore, LK is originally a process chain A and ULK and the chain to be updated would also be a process chain Ji ..

In Schritt 2341 lautet die nächste Frage, ob der Warteschlangen-Kopfhinweis gleich Null ist. Wenn die Antwort "ja" lautet, kennzeichnet dies eine leere Warteschlange und der Schritt 2342 wird durchgeführt, Das Feld ".nächste Verkettung" von Z, d.h.·' SNL, würde auf Null gesetzt, um zu kennzeichnen, daß keine weiteren Verkettungen in der Warteschlange vorhanden sind und der Prozeß-Warteßchlangenkopfhinweisdes Semaphor würde beschrieben, um auf die Prozeß-Verkettung hinzuweisen, die in die Warteschlange eingegliedert werden soll. Wenn die Verkettung eine ^eldungs-Verkettung wäre, würde der Meldungs-Verkettungs-Warteschlangenschwanzhinweis ebenfalls positioniert, um auf die Meldungs-Verkettung hinzuweisen., da diese die einzige Verkettung in der Warteschlange wäre. Dieses wäre, wie in Schritt 2343 dargestellt, das Ende der PRIQ-Unterroutine. Daher würde bei diesem Beispiel die Verkettung Z, d.h. 805a, die einzige Verkettung in der am Semaphor angegliederten Warteschlange darstellen.At step 2341 the next question is whether the queue header equals zero. If the answer is yes, then this indicates an empty queue and step 2342 is carried out, the field ". next concatenation" of Z, i.e. · ' SNL, would be set to zero to indicate that there were no more concatenations in the queue and the process queue header of the semaphore would to indicate the process chaining to be added to the queue. If the concatenation would be a message chaining, the message chaining queue would indicate also positioned to indicate the message chain, as this is the only one Would be chaining in the queue. This would be like in Step 2343 shows the end of the PRIQ subroutine. Therefore, in this example, link Z, i.e. 805a, would be the only link in the queue attached to the semaphore represent.

In der vorher erwähnten besonderen Situation hinsichtlich Semaphor S3, sind jedoch drei Prozeß-Verkettungen diesem Semaphor zugeordnet, und daher wäre die Antwort auf die Frage in 2341 "nein". Daher würde das erste \.rortf d.h.In the aforementioned particular situation regarding semaphore S3, however, three process chains are associated with this semaphore, and therefore the answer to the question in 2341 would be "no". Hence the first \. r ort f dh

509834/0830509834/0830

Wort 0 der Prozeß-Verkettung A abgegriffen. In Schritt 2345 lautet die Frage, ob die Priorität der Prozeß-Verkettung Z niedriger als die Priorität der Prozeß-Verkettung A ist. Wenn die Antwort auf die Frage in 2345 "ja" lautet, d.h. die Priorität der Prozeß-Verkettung Z ist die höchste in der Warteschlange, würde dies bedeuten, daß die Prozeß-Warteschlange Z vor die Prozeß-Verkettung A gesetzt würde. Daher ist nun die Position für die Prozeß-Verkettung neu festgelegt. Zwischenzeitlich würde eine Unterroutine UQLK diese, imScratch-Pad-Speicher in den Positionen V/DB, WDC, WED und WDE befindlichen Informationen abgreifen und das Semaphor vervollständigen.Word 0 of process chain A tapped. In step 2345 the question is whether the priority of the process chain Z is lower than the priority of process chain A. If the answer to the question at 2345 is "yes", i. the priority of the process chain Z is the highest in the queue, this would mean that the process queue Z would be placed in front of process chain A. Therefore the position for the process chain has now been redefined. In the meantime, a subroutine UQLK would in the scratch pad memory in positions V / DB, WDC, WED and Pick up information from the WDE and complete the semaphore.

Wenn die Priorität der Prozeß-Verkettung Z jedoch niedriger als die der Prozeß-Verkettung A wäre, würde der Schritt 2346 durchgeführt.In Schritt 2346 lautet die Frage, ob die Priorität von Z gleich der Priorität von A ist. Wenn diese Situation auftritt, stellt Schritt 2347 die Frage, ob der in Schritt 2304 gesetzte I-Parameter gleich 1 ist. Wenn der I-Parameter gleich 1 ist, kennzeichnet dies eine LIFO-Eingliederung, d.h. bei gleicher Prioritätsstufe "letzter herein, erster heraus". Als Ergebnis würde die Verkettung Z an den Kopf der Warte-.schlange plaziert, und der Schritt 2343 würde zur Beendigung der Unterroutine durchgeführt. Wenn der I-Parameter jedoch nicht gleich 1 ist, kennzeichnet dies eine FIFO-Einreihung, d.h. "erster herein, erster heraus", die durchgeführt werden muß. Anschließend würde Schritt 2348 durchgeführt. Es ist zu bemerken, daß bei einer Priorität der Verfahrens-Verkettung Z, die größer als die Priorität der Verfahrens-Verkettung A wäre, der Schritt 2348 automatisch, wie im "nein'·'-Ausgang von Schritt 2346 dargestellt, durchgeführt würde.However, if the priority of the process chain Z is lower than that of process chain A, step 2346 would be performed. In step 2346 the question is whether the priority of Z is equal to A's priority. When this situation occurs, step 2347 asks whether the in step 2304 set I-parameter is equal to 1. If the I parameter is equal to 1, this indicates a LIFO inclusion, i.e. at same priority level "last in, first out". As a result, the concatenation Z would be at the head of the queue and step 2343 would be performed to terminate the subroutine. However, if the I parameter is not equal to 1, this indicates FIFO queuing, i.e., "first in, first out", which are being performed got to. Step 2348 would then be performed. It should be noted that if the process chaining priority Z, which would be greater than the priority of the process chain A, the step 2348 automatically, as in the "no '·' -output of Step 2346 would be performed.

Demzufolge lautet die Frage in Schritt 2348 §owohl .für FIFO wie auch für die Eingliederung niedriger Priorität (numerisch größerer Wert): "Ist die nächste Verkettung gleich Null ?".Accordingly, the question in step 2348 is §both for FIFO as well as for the inclusion of lower priority (numerically higher value): "Is the next concatenation equal to zero?".

509834/0830509834/0830

Dies bezieht sich auf das Feld "nächste Verkettung" von A. Wenn die Antwort "ja" lautet, kennzeichnet dies, daß keine weiteren Prozeß-Verkettungen mit der Warteschlänge des "Semaphor" verbunden sind, d.h. daß nur die Prozeß-Verkettung A mit dem Semaphor verbunden war. Daher würde die Z-Prozeß-Verkettung -mit der Α-Prozeß-Verkettung verbunden v/erden und würde zur neuen End-Verkettung der Warteschlange. Wenn diese Bedingung erfüllt ist, schreibt der Schritt 2349 bestimmte Informationen in die Positionen WDB, WDC und WDD des Scratch-Pad-Speichers. Dies wird von der UQLK-Unterroutine durchgeführt. Diese in Schritt 2349 gespeicherten Informationen sind die folgenden: Der SNL von Z würde auf Null gesetzt, da keine weiteren Verkettungen in der V/arteschlange vorhanden sind. Der SREL ist das Feld""nächste Verkettung" von A und nimmt den Viert auf,- der auf die Prozeß-Verkettung Z hinweist. So würde SREL zu PL. Zusätzlich würde die erste Verkettung auf Null geändert, um zu kennzeichnen, daß die erste Verkettung der Warteschlange unverändert ist. Schließlich würde der MQTP des Semaphor, wenn dies eine Meldungsverkettung wäre, geändert, um zu kennzeichnen, daß die Z-Meldungs-Verkettung die letzte Meldungs-Verkettung ist.In der besonderen, hier überprüften Situation ist Z jedoch eine Prozeß-Verkettung und keine Meldungs-Verkettung und daher würde MQTP auf Null bleiben. Dies würde durch ein anderes Flip-Flop im Assoziativspeicher 1317a angezeigt werden, welches anzeigen würde, ob ein Prozeß in den Warte- oder Bereit -Status versetzt wurde oder nicht oder ob eine Meldung in die Warteschlange eingegliedert wurde oder nicht. Das Ende des PRIQ wäre dann, wie in 2343 dargestellt, gekennzeichnet.This refers to the "next concatenation" field of A. If the answer is "yes", this indicates that there are no further process chains with the queue of the "semaphore" connected, i.e. that only the process chain A was connected to the semaphore. Hence the Z process chaining - connected to the Α-process chain v / earth and would become the new end chaining of the queue. If this condition is met, step 2349 writes certain ones Information in the WDB, WDC and WDD positions of the scratch pad memory. This is done by the UQLK subroutine. This information stored in step 2349 is the following: The SNL of Z would be set to zero because there are none there are further links in the queue. The SREL is the "" next chaining "field of A and contains the fourth - which points to the Z process chaining. So SREL would become PL. In addition, the first chain would be changed to zero to indicate that the first chain was the queue is unchanged. Eventually the MQTP would send the semaphore if this was a message chaining would be changed to indicate that the Z message chaining is the last message chain. In the particular situation examined here, however, Z is a process chain and no message chaining and therefore MQTP would stay at zero. This would be done by another flip flop in the associative memory 1317a which would indicate whether a process is placed in the wait or ready state was or not or whether a message was queued incorporated or not. The end of the PRIQ would then be marked as shown in 2343.

Wenn das Feld "nächste Verkettung" jedoch nicht gleich Null wäre, was der üblichen Situation entspricht, da die Prozeß-Verkettungen B und C überprüft werden sollen, wird Schritt 2350However, if the "next concatenation" field is not zero would be what corresponds to the usual situation, since the process chains B and C are to be checked, step 2350

509834/0830509834/0830

durchgeführt. Um die verschiedenen, nun erwähnten Verkettungen zu verfolgen, wird die Verkettung A, die LK ist, nun in ULK geändert und die Verkettung B, die die nächste Verkettung war, wird nun LK und kennzeichnet, daß die Prozeß-Verkettung B zu denen gehört, die überprüft werden sollen. In Schritt 2351 würde das erste Wort der Prozeß-Verkettung B aus dem Hauptspeicher abgegriffen und in die Position ¥32 des Scratch-Pad-Speichers übertragen. Dieses Feld "nächste Verkettung" der Prozeß-Verkettung B wird nun überprüft, um festzustellen, ob es ein Vielfaches von 8 beinhaltet und ob es sich, wie jeweils durch die Schritte 2351a und 2351b dargestellt, innerhalb des GO-Segments befindet. Wenn diese Bedingungen erfüllt sind, wird Schritt 2353, Fig.23*, durchgeführt. In diesem Schritt wird die Priorität der Prozeß-Verkettung Z mit der der Prozeß-Verkettung B verglichen. Wenn die Priorität der Prozeß-Verkettung Z niedriger als die der Prozeß-Verkettung B ist. kennzeichnet der Schritt 2351, daß die Prozeß-Verkettung Z vor die Prozeß-Verkettung B und hinter die Prozeß-Verkettung A positioniert wird. Daher werden die Informationen, wie bei Schritt 2349 dargestellt, in die Positionen WDB bis WDE des Scratch-Pad-Speichers geschrieben, und in Schritt 234-3 ist die Unterroutine PRIQ beendet. Daher, würde der Hinweis A "nächste Verkettung" auf die Prozeß-Verkettung Z hinweisen und der Hinweis "nächste Verkettung" "der Prozeß-Verkettung Z würde auf die Prozeß-Verkettung B hinweisen. Dies geschieht wie folgt: SNL, d.h. das Feld "nächste Verkettung" von Z nimmt den Wert ULK auf, d.h. die Position der Prozeß-Verkettung B. Daher weist nun die Prozeß-Verkettung Z atf die Prozeß-Verkettung B. SREL, d.h. das Feld "nächste Verkettung" von A, nimmt den Wert von PL auf, d.h. die Position der Prozeß-Verkettung Z. Zusätzlich wurden derPQHP, der MQHP und der MQTP unverändert bleiben.carried out. In order to keep track of the various concatenations now mentioned, concatenation A, which is LK, is now changed to ULK changed and the link B, which was the next link, now becomes LK and indicates that the process link B belongs to those to be checked. In step 2351, the first word of process chain B would be from main memory tapped and transferred to position ¥ 32 of the scratch pad memory. This field "next chaining" The process chain B is now checked to see whether it contains a multiple of 8 and whether it is how represented by steps 2351a and 2351b, respectively, is located within the GO segment. If these conditions are met are, step 2353, Fig. 23 * is performed. In this step the priority of the process chain Z is compared with that of the process chain B. When the priority of the process chaining Z is lower than that of the process chain B. the step 2351 indicates that the process chain Z is positioned in front of process chain B and behind process chain A. Hence, the information will be like at Step 2349 is written in positions WDB to WDE of the scratch pad memory, and in step 234-3 is that PRIQ subroutine ended. Therefore, the hint A "next chaining" would refer to the process chaining Z and the hint "Next chaining" "of the process chaining Z would refer to the process chaining B. This happens as follows: SNL, i.e. the "next chaining" field of Z takes the value ULK, i.e. the position of the process chaining B. Therefore, points Now the process link Z atf the process link B. SREL, i.e. the "next link" field of A, takes the value of PL on, i.e. the position of the process link Z. In addition, the PQHP, the MQHP and the MQTP would remain unchanged.

Wenn die Priorität von Prozeß-Verkettung Z gleich oder größer als die der Prozeß-Verkettung B war, wird eine Verzweigung zu Schritt 2354 durchgeführt. Dieser ist demSchritt 2346If the priority of process chain Z was equal to or greater than that of process chain B, a branch is made to step 2354 performed. This is step 2346

509834/0830509834/0830

ähnlich, bei dem die Frage lautete, ob die Priorität von Schritt 2345 die gleiche wie die von Schritt 2347 war. Wenn also die Priorität von Z gleich der Priorität von B in der Antwort auf die Frage 2354 ist, und wenn das Flip-Flop in ALU 1317a anzeigt, daß eine LIFO-Einreihung durchzuführen ist, wird Schritt 2353 durchgeführt und die Informationen in den Scratch-Pad-Speicher eingeschrieben. Wenn der I-Wert jedoch auf Null gesetzt ist und eine FIFO-Einreihung anzeigt oder wenn die Priorität von Z niedriger als die von B ist, wird Schritt 2356 durchgeführt. Dies ist eine Rückkehr in die Schleife bei Schritt 2348, um festzustellen, ob die Prozeß-Verkettung B die letzte Verkettung der Warteschlange ist. Wenn dies nicht der Fall ist, wird die Prozeß-Verkettung C in Sehritt 2350 abgegriffen und, wie bereits erklärt wird, die Ergänzung von Feldern durchgeführt. Wenn also die Priorität der Prozeß-Verkettung Z hinsichtlich der anderen Verkettungen in der Warteschlange, wie in 1808a, 1808b und 1808c dargestellt, festgelegt worden ist, nehmen die>Zwischenregister die entsprechenden Informationen in den Positionen WDB-WDE des Scratch-Pad-Speichers auf, die anschliessend von der UQLK-Unterroutine in denHauptspeicher geschrieben werden.similarly, the question was whether the priority of step 2345 was the same as that of step 2347. if so the priority of Z is equal to the priority of B in the answer to question 2354, and if the flip-flop is in ALU 1317a indicates that a LIFO queue is to be performed, step 2353 is performed and the information written into the scratch pad memory. If the I value however, it is set to zero and a FIFO enqueue indicates or if the priority of Z is lower than that of B, step 2356 is performed. This is a return loops at step 2348 to determine if process chain B is the last chain of the queue is. If this is not the case, the process chain C is tapped in step 2350 and, as already explained, the Completion of fields carried out. So if the priority of the process chain Z with respect to the other chains in the queue as shown in 1808a, 1808b and 1808c, has been determined, the> intermediate registers take the appropriate Information in the positions WDB-WDE of the scratch pad memory, which is then processed by the UQLK subroutine written into main memory.

Auf diese Weise stellt die PRIQ-Unterroutine fest, ob entweder die Prozeß-Verkettung bei einem Q/PR/S oder Q/PR/FLS oder die Meldungs-Verkettung bei Q/M/S, Q/ML/FLS in die Warteschlange eingereiht wird. Die PRIQ-Unterroutine speichert diese Informationen in den Zwischenregistern des Scratch-Pad-Speichers. Die Unterroutine UQLK greift später auf diese Zwischenregister zurück und die Informationen werden daraufhin in den Hauptspeicher zusammen mit allen Verkettungen in der Warteschlange geschrieben, so daß ein logisches Aufeinanderfolgen gewährleistet ist.In this way, the PRIQ subroutine determines whether either the process chaining with a Q / PR / S or Q / PR / FLS or the message chaining with Q / M / S, Q / ML / FLS in the queue is classified. The PRIQ subroutine stores this information in the temporary registers of the scratch pad memory. The subroutine UQLK later accesses these intermediate registers and the information is then stored in main memory along with all the concatenations in the queue written so that a logical sequence is guaranteed.

Bei Abschluß der PRIQ-Unterroutine wird eine Rückkehr zu E der VP-Unterroutine 2121 von Fig.23a durchgeführt. GenauerUpon completion of the PRIQ subroutine, a return is made to E of the VP subroutine 2121 of Figure 23a is performed. More accurate

509834/0830509834/0830

gesagt, wird der Schritt 2305 als nächster durchgeführt. In Schritt 2305 werden die Prozeß-Verkettung 805a, die sich aus dem GO-Segment ergeben hat und die JP-Bezeichnung, den Prioritätswert und den SRA-Wert des gerade laufenden Prozes«· ses hat, in die Prozeß-Verkettung 805a im Hauptspeicher eingeschrieben. Said step 2305 is performed next. In Step 2305 is the process chain 805a that resulted from the GO segment and the JP designation, the Priority value and the SRA value of the currently running process «· ses has written into process chain 805a in main memory.

NachErhalt einer Prozeß-Verkettung muß der gerade ablaufende Prozeß die verfügbaren Informationen speichern, so daß beim Yfiedereintritt in den Funktions-Status kein Verlust von Kontinuität auftritt. Daher muß als nächster Schritt die Speicherung der gegenwärtig für den laufenden Prozeß verfügbaren Informationen durchgeführt werden. Dies ist in Schritt 2306 dargestellt, der auf die in Fig.23g .dargestellte Unterroutine RLLO verweist.After a process chain has been obtained, the currently running process must save the available information so that the When entering the functional status, no loss of Continuity occurs. Therefore, the next step must be to store what is currently available for the current process Information to be carried out. This is shown in step 2306, which corresponds to the one shown in FIG Subroutine RLLO refers.

Die RLLO-Unterroutine überträgt die aktuellen Informationen in einen in Fig.4 dargestellten PCB. Bei der Durchführung dieser Operation wird Schritt 2360 durchgeführt, der eine URUA-Unterroutine ist. Dies ist eine Aufrechnungs-Unterroutine, welche die Laufzeit des Prozesses jeweils auf den neuesten Stand bringt, der in Begriff ist, den Funktions-Status zu verlassen. Die URUA-Unterroutine gibt die Summe der benutzten Computerzeit an, und daher den Geldbetrag, der dem Benutzer in Rechnung gestellt werden muß.The RLLO subroutine transfers the current information in a PCB shown in Figure 4. In performing this Operation is performed in step 2360 which is a URUA subroutine is. This is an offsetting subroutine which brings the runtime of the process up to date, which is about to leave the functional status. The URUA subroutine reports the total amount of computer time used, and therefore the amount of money that the user wished in Must be billed.

Die Schritte 2361 bis 2368 geben den Inhalt der allgemeinen Register in der zentralen Verarbeitungseinheit 104 zur Übertragung zum oben beschriebenen PCB frei. Daher überträgt Schritt 2361 den Inhalt des Status-Registers 1311 zum PCB-Byte-Adreßwort 4 des Prozeß-Steuerblocks. Der Schritt 2362 speichert den Inhalt des T-«-Registers 1310 in Adresse 28 des PCB1S ab. Der Schritt 2363 errechnet die segmentierte Adresse des nächstenSteps 2361 to 2368 enable the contents of the general registers in the central processing unit 104 for transmission to the PCB described above. Therefore, step 2361 transfers the contents of status register 1311 to PCB byte address word 4 of the process control block. The step 2362 stores the contents of the T - "- register 1310 from 1 S to address 28 of the PCB. Step 2363 computes the segmented address of the next

509834/0830509834/0830

im Register 1312 enthaltenen zu sequenzierenden Befehls und überträgt diese segmentierte Adresse, wie in Schritt 2364 dargestellt, in die Adresse 32 des Prozeß-Steuerblocks. In Schritt 2365 -werden die allgemein bei 1308 gekennzeichneten Basisregister zu den Adressen 52 und 80 des Prozeß-Steuerblocks übertragen; Schritt 2366 übertr.ägt die, als 1307 dargestellten, allgemeinen Register zu den Adressen 84 bis/144 des Prozeß-Steuerblocks. In Schritt 2367 erfolgen ein Zugriff auf das Fähigkeits-Byte des PCB und eine Kontrolle, um festzustellen, ob die wissenschaftliche Einrichtung benutzt wurde. Wenn dies der Fall ist, wird der Inhalt der wissenschaftlichen Register 1309 in den Adressen 148 bis 176 des Prozeß-Steuerblocks gespeichert, und die Speicherung der aktuellen Informationen durch die Unterroutine ist beendet. Wenn jedoch'keine Benutzung der wissenschaftlichen Einrichtungen erfolgte, ist die RLLO-Unterroutine bereits zu Ende gebracht worden. Daher wird der gegenwärtige Status des laufenden Prozesses d«h. des Prozesses, der sich im Funktions-Status befand und nun in den Warte-Status versetzt wird, in denProzeß-Steuerblock übertragen. Wenn die vom Prozeß über. den.. P.-Befehl verlangten Informationen verfügbar sind, wird der Prozeß anschliessend wieder in den Funktions-Status versetzt, und kein verlust von Kontinuität tritt auf.command to be sequenced contained in register 1312 and transfers this segmented address, as shown in step 2364, to address 32 of the process control block. At step 2365 the base registers identified generally at 1308 are transferred to addresses 52 and 80 of the process control block; Step 2366 transfers the general registers shown as 1307 to addresses 84 through / 144 of the process control block. In step 2367, the capability byte of the PCB is accessed and a check is made to determine if the scientific facility has been used. If so, the contents of scientific registers 1309 are stored in addresses 148 through 176 of the process control block and the subroutine completes its storage of current information. However, if the scientific facilities have not been used, the RLLO subroutine has already been completed. Therefore, the current status of the ongoing process, i. E. of the process that was in the function status and is now placed in the wait status is transferred to the process control block. When the process is over. the .. P. command requested information is available, the process is then restored to the function status, and no v erlust of continuity occurs.

Bei Beendigung der Informations-Übertragung zum Prozeß-Steuerblock wird die Unterroutine P von VP 2121 (Fig.21a) wieder eingegeben. In Schritt 2307, der als nächster ausgeführt wird, wird das. bereits beschriebene Hardware-Gatter gesperrt und kennzeichnet bo, daß das System in einen kritischen Status übergegangen ist. Während dieser Zeit wird die Aktualisierung der Hauptspeicher-Informationen zusätzlich zum laufenden Prozes*- ses durchgeführt, der in den Warte-Status übergeht.At the end of the information transfer to the process control block the subroutine P of VP 2121 (Fig.21a) is again entered. In step 2307, which is executed next, the hardware gate already described is blocked and flagged bo that the system has passed into a critical status. During this time, the Main memory information in addition to the current process * - ses carried out, which changes to the waiting status.

509834/0830509834/0830

In Schritt 2308 ergibt sich die Prozeß-Verkettung 805a aus dem PLS-Semaphor 901 im GOJ-Segment, das abgetrennt und daher freigegeben wurde. In Schritt 2309 wird das Status-Byte des Prozeß-Steuerblocks geändert, um anzuzeigen, daß sich der Prozeß nun imWarte-Status anstelle des Funktions-Status befindet. Dies erfolgt im PM Nummer Null, der als Byte 3 in Fig.4 für die Adresse 0 des Prozeß-Steuerblocks dargestellt ist. In Schritt 2310 enthält die Adresse 8 des Prozeß-Steuerblocks, d.h.PM-Nr.2-Wort, die relative Segmentadresse und die Segment-Nummer des Semaphor, das hier adressiert und eingeschrieben wurde. Auf diese Weise erhält der PCB die Informationen, die erforderlich sind, um das Semaphor, an dem der Prozeß wartet, zu lokalisieren.In step 2308, the process chain 805a results from the PLS semaphore 901 in the GOJ segment, which is separated and was therefore released. In step 2309 the status byte of the process control block is changed to indicate that the process is now in the waiting status instead of the functional status is located. This is done in PM number zero, which is byte 3 in FIG. 4 for address 0 of the process control block is shown. In step 2310, address 8 of the process control block, i.e. PM # contains 2 words, the relative segment address and the segment number of the semaphore that was addressed and written here. In this way, the PCB receives the information it needs to set the semaphore on which the process is running waiting to locate.

Anschließend wird Schritt 2311 (Fig.23h), welcher die UQLK-Unterroutine darstellt,· durchgeführt.Vorher hat die PRIQ-Unterroutine die Position angegeben, in der die Prozeß-Verkettung innerhalb der Semaphor-Warteschlange gespeichert wird. Die UQLK-Unterroutine führt die Schreiboperation durch und vervollständigt so den Inhalt des Hauptspeichers, um den Status des Systems wiederzugeben.Then step 2311 (Fig. 23h), which the UQLK subroutine represents performed. Before the PRIQ subroutine specified the position in which the Process chaining within the semaphore queue is saved. The UQLK subroutine performs the write operation, thus completing the contents of the Main memory to reflect the status of the system.

In Schritt 2370, der in Fig.23h als erster Schritt der UQLK-Unterroutine dargestellt ist, wird das einzugebende Feld "nächste Verkettung" der Prozeß-Verkettung 805a (SNL) von einer Position TOB des "Scratch-Pad^-Speichers in das nächste Feld des Hauptspeichers übertragen. In Schritt 2371 wird der Indikator "erste Verkettung" überprüft, um festzustellen, ob er auf 1 ist, d.h. ob sich die zu aktualisierende Verkettung im Kopf der Warteschlange befindet. Wenn diese Antwort "ja'1 lautet, wird der Schritt 2372 durchgeführt, in dem die Frage lautet: "Ist diese Kopf-Prozeß-In step 2370, which is shown as the first step of the UQLK subroutine in FIG field transfer of main memory. in step 2371, the indicator is "the first concatenation" checked to determine if it is to 1, that is, whether that is to be updated chaining the head of the queue. If this answer is "yes' is 1, is the Step 2372 is performed in which the question is, "Is this head process-

509834/0830509834/0830

Verkettung der Kopf-der Bereit-Warteschlange Q/PR/RDY?". Diese Frage wird gestellt, da der V-Befehl später die PRIQ- und UQLK-Unterroutinen benutzt, um einenProzeß nach Q/PR/RDY zu übertragen. Wenn die Antwort "ja" lautet, wird das oben beschriebene IQW-Y/ort geändert, so daß es nun auf die Position der in Schritt 2373 einzugebenden Prozeß-Verkettung hinweist, was die UQLK-Unterroutine abschließt. Chaining of the head of the ready queue Q / PR / RDY? ". This question is asked because the V command will later change the PRIQ and UQLK subroutines to transfer a process to Q / PR / RDY. If the answer is "yes", the above-described IQW-Y / ort is changed so that it now corresponds to the position of the one to be entered in step 2373 Process chaining indicates what the UQLK subroutine completes.

In der hier aufgeführten besonderen Situation lautet dis Antwort jedoch "nein" und in Schritt 2375 wird die Frage gestellt: "Ist dies eine Meldungs-Verkettung?11. Wenn die Antwort "Ja" lautet, wird der Meldungs-Warteschlangenkopfhinweis in Schritt 2376 aktualisiert, wobei diePosition der Prozeß-Verkettung eingegeben wird und die Unterroutine beendet wird.In the particular situation listed here, however, the answer is "no" and the question is asked at step 2375: "Is this a message chaining? 11. If the answer is" yes ", the message queue header is updated at step 2376, whereby the position of the process chain is entered and the subroutine is ended.

509834/0830509834/0830

Wenn die Antwort auf die Frage in Schritt 2375 "nein" lautet, wird eine Prozeß-Verkettung aktualisiert und Schritt 2377 aktualisiert den PQHP-Hinweis des "Semaphor" mit der Adresse der Prozeß-Verkettung PL aus der Speicherposition W31 des Scratch-Pad-Speichers.If the answer to the question in step 2375 is "no", a process chain is updated and Step 2377 updates the PQHP indication of the "semaphore" with the address of the process chain PL from the memory location W31 of the scratch pad memory.

Wenn die Antwort auf die Frage in Schritt 2371 "nein" lautete, würde dies anzeigen, daß die einzugebende Verkettung sich nicht beim Kopf der Warteschlange befand, und Schritt 2378 würde das Feld "nächste Verkettung" zum Hauptspeicher übertragen. Daher würde das Feld "nächste Verkettung" SREL der Verkettung, die die einzugebende Verkettung kennzeichnet, geändert, und das Feld "nächste Verkettung" SNL der eingegebenen Verkettung würde das PL-Feld aufnehmen. Anders ausgedrückt, das Feld "nächste Verkettung" der in die Warteschlange einzureihenden Prozeß-Verkettung Z nimmt SREL auf. Diese Informationen werden jeweils von den Positionen WDC und WDE des Scratch-Pad-Speichers aus übertragen. Wenn dies eine Q/M/S ist, wird der MQTP ebenfalls vervollständigt und die- UQLK-Unterroutine wird so zum Abschluß gebracht.If the answer to the question at step 2371 was "no", this would indicate that the link to be entered was not at the head of the queue, and step 2378 would transfer the "next chaining" field to main memory. Therefore the field would be "next Concatenation "SREL of the concatenation that identifies the concatenation to be entered has been changed, and the" Next "field Concatenation "SNL of the entered concatenation would contain the PL field. In other words, the" next field Chaining "of the process chain Z to be added to the queue takes up SREL. This information are transmitted from the positions WDC and WDE of the scratch pad memory. If this is a Q / M / S, the MQTP is also completed and the UQLK subroutine is thus completed.

Rückblickend auf Figur 23b, in Schritt 2312, wird das SCT- oder FLSCT-FeId, falls es sich um ein freies Verkettungs-Semaphor handelt, nun in die Position WC4 des Scratch-Pad-Speichers geschrieben. Der NSCT-Zählwert wurde bereits in Schritt 2101 von ' Figur 21 festgestellt und in der Position WC7 des Scratch-Pad-Speichers abgespeichert. In Schritt 2313 wird der gesamte Inhalt des Semaphor, der in den Positionen WC4 und WC5 des Scratch-Pad-Speichers gespeichert ist, in den Hauptspeicher zur Aktualisierung des Semaphor übertragen. Bei Beendigung dieser Informations-Umwandlung wird das Hardware-Gatter in Schritt 2314 geöffnet, um zu kennzeichnen, daß der kritische Status nun vorüber ist undLooking back at Figure 23b, in step 2312, the SCT or FLSCT field is created if it is a free concatenation semaphore is now written in position WC4 of the scratch pad memory. The NSCT count has already been determined in step 2101 of FIG. 21 and in position WC7 of the scratch pad memory saved. In step 2313, the entire content of the semaphore that is in positions WC4 and WC5 of the Scratch pad memory is transferred to main memory to update the semaphore. Upon completion of this information conversion, the hardware gate is opened in step 2314 to identify that the critical status is now over and

509834/0830509834/0830

lind das unbesetzte Gatter im ALU 1317a nun in Schritt 2315 auf binär Eins positioniert wird, um anzuzeigen, daß der laufende Prozeß aus dem Funktions-Status herausgenommen wurde. In Schritt 2316 wird die Steuerung des Systems auf die Dispatcher-Einheit übertragen ( " Figur' 14), um den nächsten Prozeß zu bestimmen, der in den Funktions-Status übergehen soll.The unoccupied gate in ALU 1317a is now in step 2315 is positioned to binary one to indicate that the current process has been taken out of functional status became. In step 2316 control of the system is transferred to the dispatcher unit ("FIG. 14) in order to control the next process to determine who is in the functional status should pass over.

Hierdurch wird die Operation der Unterroutine E von VP 2121 abgeschlossen, die den Status des laufenden Prozesses in den Warte-Status umändert. Wie in den Figuren : 20 und 21 dargestellt, versuchte der laufende Prozeß einen P-Befehl an einem Nicht-Meldungs-Semaphor oder einem Meldungs-Semaphor durchzuführen. Da der Prozeß dazu nicht in der Lage ist, kann er solange nicht weiter ablaufen, bis ihm die Daten zugeführt werden, und nun geht er aus eigener Initiative in den Warte-Status über. ·This completes the operation of subroutine E of VP 2121, which shows the status of the ongoing process changed to the waiting status. As in the figures: 20 and 21, the current process attempted a P instruction on a no-message semaphore or a message semaphore perform. Since the process is unable to do this, it cannot continue until it the data are supplied, and now it goes into the waiting status on its own initiative. ·

In ' Figur j 22a, Block 2200, wo der SCT-Zählwert daraufhin überprüft wurde, ob er niedriger als Null ist und dadurch anzeigte, daß ein P-Befehl an einem Meldungs-Semaphor einen Wechsel des laufenden Prozesses in den Warte-Status erforderte, würde bei Beantwortung der Fragen mit "nein" eine Verzweigung zu Schritt 2205 durchgeführt. In Schritt 2205 lautet die Frage, ob das SCT-FeId gleich Null ist. Wenn die Antwort auf diese Frage "ja" lautet, wird eine Verzweigung zu 2206 der in Figur 24a dargestellten PMZ-Unterroutine durchgeführt.In 'figure, j 22a block 2200 where the SCT count was checked to determine whether it is lower than zero, thus indicating that a P-command on a message semaphore required a change of the current process in the waiting status, a branch to step 2205 would be carried out if the questions were answered with “no”. In step 2205 the question is whether the SCT field is equal to zero. If the answer to this question is "yes", a branch is made to 2206 of the PMZ subroutine shown in Figure 24a.

509834/083Q509834 / 083Q

D. MELDUNGSÜBERTRAGUNG OHNE BENUTZUNG EINER WARTESCHLANGED. TRANSMISSION OF MESSAGES WITHOUT USING A QUEUE

Die PMZ-Unterroutine ist eine spezielle Unterroutine, die für einen Test- oder Nicht-Test P-Befehl abgerufen wird, der an einem Meldungs-Semaphor durchgeführt wird, wenn das SCT-FeId des Semaphor gleich Null ist. Zu diesem Zeitpunkt stellt die Unterroutine fest ob ein vorhergehender Prozeß gegenwärtig auf eine freie Meldungs-Verkettung wartet ocüer nicht, um seine Meldung zu einem Semaphor zu übertragen. Dieses würde in der Situation auftreten, in der alle freien Meldungs-Verkettungen vorher benutzt wurden und keine weiteren freien Meldungs-Verkettungen zur Durchführung von Prozessen verfügbar sind, die Meldungen absenden wollen. In dieser, später beschriebenen Situation würde der laufende Prozeß, der versucht, eine Meldung abzusenden, in den Warte-Status versetzt, da er die Meldung nicht absenden kann. Der laufende Prozeß, der einen P-Befehl durchführt und zuerst eine Meldung abfordert, versucht festzustellen, ob die oben erwähnte Situation aufgetreten ist, bevor er aus eigener Initiative in den Warte-Status übergeht. Wenn die Situation aufgetreten ist, wird der Prozeß, welcher versucht hat eine Meldung abzusenden, von seiner Meldung befreit, so daß auf diese Weise sein Ausführungshindernis beseitigt wird; außerdem empfängt der gerade ablaufende Prozeß, welcher den P-Befehl ausführt, die Meldung, so daß er im Funktions-Status bleiben kann. Daher tritt in dieser besonderen Situation weder das Absenden einer Meldung zu einer Meldungs-Verkettung mit Hilfe eines vorhergehenden V-Befehls auf, noch empfängt der gerade ablaufende Prozeß die Meldung von einem Semaphor. Es tritt also eher eine Mischsituation auf, in der der gerade ablaufende Prozeß über seinen PCB die Meldung von einem Prozeß erhält, der sich im Warte-Status befindet.The PMZ subroutine is a special subroutine called for a test or non-test P instruction, which is carried out on a message semaphore if the SCT field of the semaphore is equal to zero. To this At this point, the subroutine determines whether a previous process is currently on a free message chain ocüer does not wait to send his message to a Transmit semaphore. This would occur in the situation in which all free message chains were previously were used and no further free message chains are available for carrying out processes who want to send messages. In this situation, described later, the ongoing process, the tries to send a message, put in the waiting status because it cannot send the message. Of the running process that executes a P instruction and first requests a message, tries to determine whether the above-mentioned situation occurred before entering the wait status on its own initiative. When the situation has arisen, the process which attempted to send a message becomes its own Message exempt, so that in this way its execution obstacle is removed; in addition, he is currently receiving running process, which executes the P command, the message so that it can remain in the function status. Therefore In this particular situation, the sending of a message for a message chain does not occur With the help of a previous V command, the process currently running is still receiving the message from a semaphore. So there is more of a mixed situation in which the process currently running is reporting via its PCB to a process that is pending.

509834/0830509834/0830

- 145 - ■ - ·' ■- 145 - ■ - · '■

Genauer gesagt, werden in Schritt 2400 .von Figur · 24a der Meldungs-Warteschlangen-Schwanzhinweis MQTP und der Meldungs-Warteschlangen-Kopfhinweis MQHP des Meldungs-Semaphor überprüft, um festzustellen, ob sie auf Null sind, oder nicht. Da das SCT-FeId des Semaphor den Wert "Null" beinhaltet, müssen beide Bedingungen vorhanden sein, da andernfalls die Bedingung eines illegalen "Semaphor" 2400a auftritt. Nach dieser Überprüfung führt der Schritt 2401 eine Unterroutine durch, um ein freies Verkettungs-Semaphor abzugreifen (FLSC ist in ' Figur 24b dargestellt). Diese Unterroutine greift das freie Verkettungs-Semaphor ab und führt eine Serie von Tests durch, um dessen Status festzustellen. ,More specifically, in step 2400. Of Figure 24a the message queue tail pointer MQTP and the Message queue header MQHP checks the message semaphore to see if it's zero are, or not. Since the SCT field of the semaphore has the value Contains "zero", both conditions must be present, otherwise the condition of an illegal one "Semaphore" 2400a occurs. After this check, step 2401 executes a subroutine to find a free To tap the concatenation semaphore (FLSC is shown in 'Figure 24b shown). This subroutine uses the free concatenation semaphore and run a series of tests to determine its status. ,

Genauer ausgedrückt, wird in Schritt 2420 von .Figur 24b das erste Wort des Semaphor-Descriptor-Segments, das ein freies Verkettungs-Semaphor enthält, das benutzt werden soll, aus dem Hauptspeicher abgegriffen und in die Position WD2 des Scratch-Pad-Speichers übertragen. Dieses erste Wort ist in . Figur - 15 als Nummer 1500 darge- ' stellt. In Schritt 2421 werden die folgenden Tests von der ALU 137 am ersten Wort durchgeführt. Das TAG-FeId, d.h. die Bits 0 bis 1 werden überprüft,um festzustellen, ob ihr Wert 11 ist, die Bits 8 bis 15 des MBZ-Feldes werden daraufhin überprüft, ob sie "Null" sind und die Bits 16 bis 31, d.h. das FLSP-FeId, werden überprüft, um festzustellen, ob sie ein Vielfaches von 8 enthalten, da sie auf das erste Byte im freien Verkettungs-Semaphor 1504 hinweisen, das im Diagramm des SD-Segments in . Figur dargestellt ist. ■ "" ..More specifically, in step 2420 of. Figure 24b the first word of the semaphore descriptor segment that contains a free concatenation semaphore to be used should, tapped from the main memory and into the position WD2 of the scratch pad memory transferred. That first word is in. Figure - 15 shown as number 1500 ' represents. In step 2421 the following tests are performed by the ALU 137 on the first word. The TAG field, i.e. bits 0 to 1 are checked to determine whether its value is 11, bits 8-15 of the MBZ field become then checked whether they are "zero" and bits 16 to 31, i.e. the FLSP field, are checked to determine whether they contain a multiple of 8, since they refer to the first byte in the free concatenation semaphore 1504 that is indicated in the diagram of the SD segment in. Figure is shown. ■ "" ..

In Schritt 2422 wird das durch FLSP indexierte und in Figur . ^6d als 1504 dargestellte freie Verkettungs-Semaphor abgegriffen. Diese drei Worte werden nun jeweilsIn step 2422, the FLSP indexed and in Figure. ^ 6d free concatenation semaphore represented as 1504 tapped. These three words are now respectively

5098 3 4/0 8305098 3 4/0 830

in den Positionen WCB, WCC und WCD des Scratch-Pad-Speichers gespeichert, so daß der folgende Test in der arithmetischen Logik-Einheit 1317 durchgeführt werden kann. In Schritt 2423 wird das STAG-FeId, d.h. die Bits bis 3 überprüft, um zu kontrollieren, ob alle Null sind. In Schritt 2424 wird das CCT-FeId, d.h. die Bits 80 bis sowie das FLSCT-FeId, d.h. die Bits 16 bis 31 des in Fig.16 dargestellten FLS 1504 überprüft um festzustellen, ob sie größer als Null sind. Weder FLSCT noch CCT können jemals größer als Null sein. Diese Felder werden im allgemeinen auf Null gelöscht, wenn freie Meldungs-Verkettungen verfügbar sind, und sie können negativ werden, wenn keine freien Meldungs-Verkettungen verfügbar sind. Der absolute Wert dieser Felder zeigt die Anzahl der Prozesse an, die auf den Empfang freier Meldungs-Verkettungen warten, d.h. die Anzahl der in Q/PR/SLS eingegliederten Prozesse. Daher muß eine Überprüfung durchgeführt werden, ob diese größer als Null sind, um festzustellen, ob die geeignete Codierung für das freie Verkettungs-Semaphor durchgeführt wurde oder nicht.in positions WCB, WCC and WCD of the scratch pad memory is stored so that the following test can be performed in the arithmetic logic unit 1317 can. In step 2423 the STAG field, i.e. bits through 3, is checked to see if all are zero. In step 2424 the CCT field, i.e. bits 80 to as well as the FLSCT field, i.e. bits 16 to 31 of the in Fig. 16 The FLS 1504 illustrated is checked to see if it is greater than zero. Neither FLSCT nor CCT can ever be greater than zero. These fields are generally cleared to zero if free message chains are available and they can become negative if no free message chains are available. The absolute The value of these fields indicates the number of processes waiting to receive free message chains, i.e. the number of processes integrated in Q / PR / SLS. A check must therefore be carried out to determine whether this is larger are zero to determine whether or not the appropriate coding was performed for the free concatenation semaphore not.

In Schritt 2425 wird das FLSCT-FeId daraufhin überprüft, ob es kleiner als Null ist, da, wenn es kleiner als Null ist, ein Q/PR/SLS an ein freies Verkettungs-Semaphor angegliedert ist. Wenn die Antwort "ja" lautet, überprüft der Schritt 2426 das PQHP-FeId, d.h. die Bits 32 bis 37 werden daraufhin überprüft, ob sie ungleich Null sind und außerdem ein Vielfaches von 8 enthalten. Wenn SLSCT gleich Null ist, was die einzige andere Möglichkeit ist, kennzeichnet dies, daß freie Meldungs-Verkettungen verfügbar sein können. Daher sollte der PQHP-Hinweis des freien Verkettungs-Semaphor gleich Null sein; dies entspricht dem in Schritt 2427 durchgeführten Test.In step 2425 the FLSCT field is checked to see if whether it is less than zero, since if it is less than zero, a Q / PR / SLS is attached to a free concatenation semaphore is. If the answer is "yes", step 2426 checks the PQHP field, i.e. bits 32-37 are then checked to see whether they are not equal to zero and also contain a multiple of 8. if SLSCT is zero, which is the only other possibility, this indicates that free message chaining may be available. Therefore, the PQHP hint of the free concatenation semaphore should be zero be; this corresponds to the test performed in step 2427.

509834/0830509834/0830

Wenn einer dieser Tests ohne Erfolg durchgeführt wird, tritt eine Ausnahmebedingung "illegales Semaphor" auf.If any of these tests are unsuccessful, an "illegal semaphore" exception occurs on.

In Schritt 2428 wird das SMC-FeId, Bits 415, (das in Fig.16c auch als MBZ-FeId bezeichnet wird) überprüft, um festzustellen, ob es gleich Null ist. Dies ist die Eigen-Begrenzung des freien Verkettungs-Semaphor, da es niemals Meldungs-Verkettungen speichern kann. Nur freie Meldungs-Verkettungen werden an ein FLS angegliedert. Daher wird das SMC-FeId auf Null gelöscht, da der Zählwert des freien Verkettungs-Semaphor nie einen positiven Wert besitzen sollte.In step 2428 the SMC field, bits 415, (the one shown in Fig. 16c also known as MBZ field) to see if it is equal to zero. This is the self-limitation of the free Concatenation semaphore, as it can never store message concatenations. Only free message chains are activated an FLS attached. The SMC field is therefore cleared to zero as the count value of the free concatenation semaphore should never have a positive value.

In Schritt 2429 von Fig.24c wird der freie Verkettungs-Hinweis, d.h. die Bits 48 bis 63, der auf die erste freie Meldungs-Verkettung hinweist, überprüft, um zu gewährleisten, daß er ein Vielfaches von 8 enthält, da FLQP die erste freie Meldungs-Verkettung identifiziert, die eine Länge von vier Worten besitzt. In Schritt 2430 wird das CCT-FeId, d.h. die Bits 80 bis 95, überprüft," um festzustellen, ob es niedriger als Null ist.Vorher wurde in Schritt 2424 überprüft, ob dieses Feld größer als Null ist und dieser Test drückt durch eine "nein"-Antwort aus, daß es gleich Null ist, und nun wird die FLS-Unterroutine 2431 zu Ende gebracht. Wenn die Antwort auf die Frage von 2430 "ja" lautet, wird der Schritt 2432, mit dem das MBZ-FeId überprüft wird, d.h. die Bits 64 bis 71, durchgeführt, und die .FLSC-Unterroutine wird beendet. Auf diese Weise überprüft die FLSC- Unterroutine nicht nur das freie Verkettungs-Semaphor, um zu gewährleisten, daß es sich innerhalb der Konzeptioneauflagen von Fig.i6d befindet, sondern es speichert auch die drei Worte des freien Verkettungs-Semaphor zum späteren Gebrauch in den Positionen WCB, WCC und WCD des Scratch-Pad-Speichers.In step 2429 of FIG. 24c, the free concatenation hint, i.e. bits 48 to 63, which indicate the first free message concatenation, are checked to ensure that it contains a multiple of 8, since FLQP is the first Identifies free message concatenation that is four words long. In step 2430 the CCT field is i.e. bits 80 through 95 checked "to determine whether it is lower than zero. Previously, it was checked in step 2424 whether this field is greater than zero and this Test expresses with a "no" answer that it is the same Is zero and now the FLS subroutine 2431 is completed. If the answer to question by 2430 is "yes" is, step 2432, with which the MBZ field is checked, i.e. bits 64 to 71, is carried out, and the .FLSC subroutine exits. In this way, the FLSC subroutine doesn't just check the free one Concatenation semaphore to ensure that it is within the conceptual requirements of Figure i6d, it also stores the three words of the free concatenation semaphore for later use in positions WCB, WCC and WCD of the scratch pad memory.

5Q9834/Q83Q5Q9834 / Q83Q

Bei Beendiglang der FLSC-Unterroutine 2401 wird der Schritt 2402 in Fig.24a durchgeführt. In Schritt 2402 lautet die Frage, ob CCT kleiner als Null ist. Wenn die Antwort "ja" lautet, kennzeichnet dies, daß kein Eingabe/Ausgabe-Kanal auf eine freie Meldungs-Verkettung wartet. In Schritt 2403 lautet die Frage,ob FLSCT gleich Null ist. Wenn dies nicht der Fall ist, befindet sich ein Prozeß im Warte-Status Q/PR/FLS, und daher wird die SPLQ-Unterroutine 2404 durchgeführt. Upon exiting FLSC subroutine 2401, step 2402 in Figure 24a. In step 2402 the question is whether CCT is less than zero. If the answer is "yes" is, this indicates that no input / output channel is waiting for a free message chaining. In step 2403 the question is whether FLSCT is zero. If this is not the case, a process is in the waiting state Q / PR / FLS, and therefore the SPLQ subroutine 2404 is performed.

Die SPLQ-Unterroutine sucht die freie Prozeß-Verkettungs-Warteschlange, um festzustellen, ob sich in Q/PR/FLS ein Prozeß befindet, der die Durchführung einer V-Operation, d.h. Absenden einer Meldung, am gleichen Semaphor versucht, für den der gegenwärtig laufende Prozeß einen P-Befehl, d.h. eine Meldungs-Abfrage, durchführt. Anders ausgedrückt, es wird überprüft, ob vorher eine Freigabe der vom P-Befehl angeforderten Meldung versucht wurde, die ohne Erfolg blieb, da keine freien Meldungs-Verkettungen verfügbar waren. Diese Situation tritt auf, wenn ein vorher laufender Prozeß versuchte, eine Meldung zu dem SD-Segment auszusenden, welches das freie Verkettungs-Semaphorbeinhaltete. Der Prozeß war nicht in der Lage, dieses durchzuführen, da keine freien Meldungs-Verkettungen verfügbar waren. Daher wird der Prozeß in den Warte-Status versetzt und in Q/PR/FLS durch E der VP-Unterroutine eingegliedert, mit dem Ergebnis, daß er später die Meldung zum entsprechenden Semaphor überträgt. Diese Situation kann jedoch nicht auftreten, wenn der laufende Prozeß einen P-Befehl durchführt, der der gleichen Meldung zugeführt werden kann. Die Unterroutine SPLQ 2404 überprüft, ob diese Situation aufgetreten ist.The SPLQ subroutine searches for the free process chaining queue, to determine whether there is a process in Q / PR / FLS that requires the performance of a V-operation, i.e. sending a message, tried on the same semaphore for which the currently running process issued a P command, i.e. a message query. Expressed differently, It is checked whether a release of the message requested by the P command was attempted beforehand, which was unsuccessful remained because no free message chains were available. This situation occurs when there is a previously running process tried to send a message to the SD segment which contained the free concatenation semaphore. Of the Process was unable to do this because no free message chains were available. Therefore the process is placed on hold and incorporated into Q / PR / FLS by E of the VP subroutine, with the result that it later transmits the message to the corresponding semaphore. However, this situation cannot occur if the current process is executing a P command which can be applied to the same message. The subroutine SPLQ 2404 checks whether this situation has occurred.

Genauer, in Fige24d bezieht sich die SPLQ-Unterroutine auf alle Prozeß-Verkettungen, die in Q/PR/FLS eingegliedert sind,More specifically, in Figure 24d, the e SPLQ subroutine refers to any process concatenations, the PR / FLS are incorporated in Q /,

509834/0830509834/0830

- Ϊ49- Ϊ49

um festzustellen, ob die Verschiebungs-Felder einer Prozeß-Verkettung, d.h. die Bit-Felder 48 bis 63 einer jeden Prozeß-Verkettung gleich dem Verschiebungs-Feld des gegenwärtig laufenden Prozesses sind, das den P-Befehl durchführt. Wenn eine Übereinstimmung festgestellt wurde, d.h. wenn die Verschiebungs-Felder gleich sind, wird die Meldung des vorher laufenden Prozesses in den gegenwärtig laufenden Prozeß übertragen und der gegenwärtig laufende Prozeß, der denP-Befehl ausführt, bleibt im Funktions-Status. Wenn die Werte der Verschiebungs-Felder jedoch nicht gleich sind, wird der gegenwärtig laufende Prozeß, der denP-Befehl durchführt, in den Warte-Status versetzt.to determine whether the displacement fields of a process chain, i.e. bit fields 48 through 63 of each process chain equal to the displacement field of the current one running process that is executing the P command. If a match is found, i.e. if the Displacement fields are the same, the message from the previously running process is carried over to the currently running process and the currently running process executing the P instruction remains in the functional state. If the values of the However, displacement fields are not the same, the currently running process executing the P instruction will be included in the Waiting status moved.

In Fig.24d initialisiert der Schritt 2440 ein Flip-Flop im Hilfsspeicher 1317a, welches kennzeichnet, daß die erste Verkettung in Q/PR/FLS indexiert worden ist.Dieses Flip-Flop legt fest, ob das PQHP-FeId des freien Verkettungs-SEmaphor geändert werden soll. Wenn der Status des Flip-Flop gleich bleibt, kennzeichnet dies, daß'das Verschiebungs-Feld der ersten Prozeß-Verkettung bei Q/PR/FLS gleich dem P-Befehl ist und daß daher eine Meldung abgegriffen wurde. Wenn der Status des Flip-Flops geändert wurde, bleibt der PQHP des freien Verketfcungs-Semaphor unverändert. Auf diese Weise werden in Schritt 2440 die Variablen PL und UPL initialisiert. Diese Variablen werden in die Positionen W31 und WE8 des Scratch-Pad-Speichers geschrieben und identifizieren jeweils die Prozeß-Verkettung bzw. die aktualisierte Prozeß-Verkettung. Hinsichtlich der zu überprüfenden Verkettung des anfänglichen Prozesses,identifizieren sowohl PL wie auch UPL den gleichen Prozeß-Warteschlangen-Hinweis der Prozeß-Verkettung.In Figure 24d, the step 2440 initializes a flip-flop in the auxiliary memory 1317a, which indicates that the first Chaining has been indexed in Q / PR / FLS. This flip-flop determines whether the PQHP field of the free chaining SEmaphor should be changed. If the status of the flip-flop remains the same, it indicates that 'the shift field the first process chain with Q / PR / FLS is the same as the P command and that a message has therefore been tapped. If the status of the flip-flop has been changed, the PQHP of the free concatenation semaphore remains unchanged. To this Thus, in step 2440, the variables PL and UPL are initialized. These variables are in the positions W31 and WE8 of the scratch pad memory and identify the process chain or the updated process chain. Regarding the to be checked Chaining the initial process, both PL and UPL identify the same process queue hint the process chaining.

In den Schritten 2441 und 2442 wird jeweils das erste und das zweite Wort der Prozeß-Verkettung, die die Kopf-Prozeß-Verkettung von Q/PR/FLS sein kann, vom Hauptspeicher in dieIn steps 2441 and 2442, the first and the second word of the process chain, which is the head-to-process chain from Q / PR / FLS, from main memory to the

509834/0830509834/0830

ALU 1317 übertragen. Im Schritt 2443 wird das Feld "nächste Verkettung", d.h. die Bits 0 bis 15 der Prozeß-Verkettung überprüft, um festzustellen, ob es ein Vielfaches von 8 ist, da jede Prozeß-Verkettung, die es adressiert, eine Zweiwort-Größe darstellt. In Schritt 2444 wird das D-Feld der Prozeß-Verkettung, d.h. die Bits 48 bis 63 mit SRA des gegenwärtig laufenden Prozesses verglichen, um festzustellen, ob sie gleich sind oder nicht. Wenn die Antwort "nein" lautet, wird in Schritt 2445 die Frage gestellt, ob das Feld "nächste Verkettung" der Prozeß-Verkettung gleich Null ist. d.h. ob zusätzliche Prozesse vorhanden sind, deren Prozeß-Verkettungen an das freie Verkettungs-Semaphor angegliedert sind. Wenn die Antwort "nein" lautet, wird Schritt 2446 durchgeführt, um den Indikator "erste Verkettung" auf Null zu löschen und dadurch anzuzeigen, daß der PQHP des freien Verkettungs-Semaphor nicht geändert zu werden braucht, da die Kopf-Prozeß-Verkettung die gleiche bleibt.Zusätzlich wird die ergänzte Prozeß-Verkettung UPL in der Position WE8 des Scratch-Pad-Speichers auf den alten PL-lfert positioniert, und,PL, d.h. die Prozeß-Verkettung, wird nun geändert, um das Feld "nächste Verkettung" zu identifizieren, welches die nächste Prozeß-Verkettung wäre , die in Q/PR/FLS eingegliedert würde. Anschliessend werden nochmals die Schritte 2441 bis 2444 an dieser zweiten Prozeß-Verkettung durchgeführt, um festzustellen, ob das in der Prozeß-Verkettung enthaltene Verschiebungsfeld gleich der relativen Segment-Adresse (SRA) des gerade laufenden Prozesses .ist, das einen.-'P-Befehl ausführt oder nicht.ALU 1317 transferred. In step 2443 the field becomes "next chaining" i.e. bits 0-15 of the process chaining checks to see if it is a multiple of 8, since each process chain it addresses is a two-word size represents. In step 2444 the D-field of the process chain, i.e., bits 48 through 63 are compared to the SRA of the currently running process to see if they are the same or not. If the answer is "no", a question is asked in step 2445 whether that is The "next chaining" field of the process chaining is zero. i.e. whether there are additional processes, their process chaining to the free chaining semaphore are affiliated. If the answer is no, step 2446 is performed to reset the indicator Clear "first concatenation" to zero, thereby indicating that the PQHP of the free concatenation semaphore does not need to be changed, since the head-process chain remains the same. In addition, the Process chaining UPL is positioned in position WE8 of the scratch pad memory on the old PL supply, and, PL, i.e. the process chaining, is now changed to identify the "next chaining" field, which is the The next process chain would be incorporated into Q / PR / FLS. Then the steps are repeated 2441 through 2444 are performed on this second process chain to see if this is in the process chain Contained displacement field is equal to the relative segment address (SRA) of the current one Process. Which executes a .- 'P command or not.

Wenn diese Bedingung vorliegt, d.h. die Frage in Schritt 2444 mit "ja" beantwortet wird, erfolgt die Durchführung von Schritt 2447, der im Hilfsspeicher 1317a einen Indikator auf Null löscht, um so anzuzeigen, daß eine Prozeß-VerkettungIf this condition is met, i.e. answered "yes" to the question in step 2444, then the execution takes place from step 2447, which is in auxiliary memory 1317a an indicator clears to zero to indicate that a process chaining

5098 34/08 305098 34/08 30

festgestellt wurde, die das gleiche Verschiebungsfeld besaß, und die aktualisierte nächste Verkettung, d.h. UNL, wird gleich der nächsten Verkettung in der Warteschlange gesetzt. Das in Position WEG des Scratch-Pad-Speichers enthaltene UNL-FeId bewirkt eine Umänderung des Feldes "nächste Verkettung" der unmittelbar vor der entfernten Prozeß-Verkettung befindlichen Prozeßverkettung auf den Wert der Prozeß-Verkettung, die das gleiche Verschiebungsfeld besitzt. Daher enthält die Warteschlange eine kontinuierliche Folge von Hinweisen für alle Prozeß-Verkettungen, die an das freie Verkettungs-Semaphor angegliedert sind. Wenn dies abgeschlossen ist, wird der Schritt 2448, das Ende der SPLQ-Unterroutine, durchgeführt. Es ist zu bemerken, daß der Schritt 2447 die Informationen für die nachfolgend beschriebene UPLQ-Unterroutine liefert, die zum Einschreiben der neuen Informationen im Q/PR/FLS verwendet werden.was found that had the same displacement field, and the updated next link, i.e. UNL, is set equal to the next link in the queue. The UNL field contained in position WEG of the scratch pad memory changes the "next chaining" field to the one immediately before the removed process chaining Process link to the value of the process link that has the same displacement field. Therefore, the Queue a continuous sequence of notices for all process chaining that are attached to the free chaining semaphore. When that is done, the Step 2448, the end of the SPLQ subroutine, is performed. Note that step 2447 provides the information for the UPLQ subroutine described below that is used to write the new information into the Q / PR / FLS will.

Wenn das D-Feld (er) der mit Q/PR/FLS verbundenen Prozeß-Verkettungen nicht gleich dem SRA des gegenwärtig laufenden Prozesses ist, welcher den P-Befehl durchführt, setzt der Schritt 2449 das im Schritt 2447 beschriebene Flip-Flop auf Eins und kennzeichnet so, daß alle Prozeß-Verkettungen von Q/PR/FLS überprüft wurden und in keiner die Meldung vorhanden war, welche der P-Befehl anforderte. Daher wird das Ende der SPLQ-Unterroutine durchgeführt und die UPLQ-Unterroutine schreibt die Variablen UPL und PL nicht in die Q/PR/FLS-Warteschlange.If the D field (s) of the process chains connected to Q / PR / FLS is not equal to the SRA of the currently running process which is executing the P instruction, the Step 2449 displays the flip-flop described in step 2447 One and indicates that all process chaining of Q / PR / FLS were checked and none of the messages contained the message requested by the P command. Hence the end of the SPLQ subroutine performed and the UPLQ subroutine does not write the variables UPL and PL to the Q / PR / FLS queue.

Bei Abschluß der SPLQ-Unterroutine 24o4 wird der Schritt 2405 durchgeführt, in dem die Frage lautet, ob der Prozeß aufgefunden wurde. Diese Frage besagt häuptsächlich, ob der Prozeß aufgefunden worden ist, welcher einen V-Befehl an dem Semaphor versuchte, von dem der P-Befehl eine Meldung abrief. Wenn die Antwort "ja" lautet, d.h. wenn das Flip-FlopUpon completion of the SPLQ subroutine 24o4, the step becomes 2405, asking if the process was found. This question mainly says whether the Process has been found which attempted a V command on the semaphore from which the P command retrieved a message. If the answer is yes, i.e. if the flip-flop

50983^/083050983 ^ / 0830

24585342458534

in Schritt 2447 gleich Null ist, stellt der Schritt 24o6 die Frage, ob dies ein P-Testbefehl war; wenn die Antwort "ja" lautet, setzt 2407 einen Bedingungs-Code im Status-Register 1311 auf Null, um anzuzeigen, daß der P-Befehl durchgeführt wird. Unabhängig von der in Schritt 2406 gestellten Frage, ruft der Schritt 2408 die RNP-Unterroutine ab, die dem neuen Bereit-Prozeß entspricht. Daher wird unabhängig davon, ob ein P-Testbefehl oder ein P-Befehl ausgeführt wurde, die Meldung zum gerade laufenden Prozeß übertragen, der den P-Befehl ausführt. Zusätzlich wird der Prozeß, der versuchte einen V-Befehl auszuführen von der Unterroutine RNT 2408 in den Bereit-Status versetzt. Schritt 2409 ist eine Übertragung zu dem in Fig.14 beechriebenen Dispatcher.is zero in step 2447, step 2406 asks whether this was a P test command; if the answer If "yes", 2407 sets a condition code in the status register 1311 to zero to indicate that the P instruction is being performed. Regardless of the one set in step 2406 Question, step 2408 calls the RNP subroutine which is assigned to the corresponds to the new ready process. Therefore, regardless of whether a P test command or a P command was executed, the Message transmitted to the process currently running that is executing the P command. Additionally, the process that tried one becomes Execute V command from subroutine RNT 2408 to ready status offset. Step 2409 is a transmission to the dispatcher described in FIG.

Wenn die Antwort auf die Frage in Schritt 2405 besagt, daß kein Prozeß gefunden wurde, stellt Schritt 2410 die Frage, ob es sich um einen T-Testbefehl handelt. Wenn die Antwort "ja" lautet, wird nun in Schritt 2411 ein Bedingungs-Code im Status-Register 1311 auf Eins positioniert, um anzu? zeigen, daß der Befehl nicht durchgeführt wird; in Schritt 2412 wird der Befehlszähler 1312 inkrementiert, und der gerade laufende Prozeß führt seinen nächsten Befehl durch.If the answer to the question in step 2405 is that no process was found, step 2410 poses the Ask if it's a T-test command. If the If the answer is "yes", a condition code in the status register 1311 is now positioned to one in step 2411 in order to indicate? show that the command will not be carried out; in step 2412 the command counter 1312 is incremented, and the current one current process is executing its next instruction.

Wenn sich in Schritt 24.10 ein P-Befehl für ein Meldungs-Semaphor befand und der gerade ablaufende Prozeß keine Meldung empfing, wird eine Verzweigung zu E der VP-Unterroutine 2121 in Fig.23a durchgeführt, welche den gerade ablaufenden Prozeß in den Warte-Status versetzt und dem Dispatcher die Möglichkeit gibt, den neuen Prozeß auszuwählen, der in den Funktions-Status versetzt werden soll.If there is a P command for a message semaphore in step 24.10 was found and the process in progress received no message, a branch is made to E of the VP subroutine 2121 carried out in Fig.23a, which puts the currently running process in the waiting status and the dispatcher the possibility to select the new process to be placed in the functional state.

Wenn in Schritt 2403 die Antwort auf die Frage, ob der FLSCT des freien Verkettungs-Semaphor gleich Null ist, "ja" lautete, und dadurch anzeigte, daß keine Prozeß-Verkettungen am freien Verkettungs-Semaphor vorhanden waren, d.h. daß keine früherenIf in step 2403 the answer to the question of whether the FLSCT of the free chaining semaphore is zero, read "yes", thereby indicating that there were no process chaining to the free chaining semaphore existed, i.e. that no earlier

5098 34/085098 34/08

Prozesse die Durchführung eines V-Befehls versuchten und keine freien Meldungs-Verkettungen verfügbar waren, wird Schritt 2413 durchgeführt, in dem die Frage lautet: "Ist dies ein Testbefehl?". Wenn die Antwort "ja" lautet, wird wieder ein Bedingungs-Code im Schritt 2414 auf Eins gesetzt. Zusätzlich wird der Befehlszähler 1312 des gerade ablaufenden Prozesses, der den P-Befehl ausführt, in Schritt 2415 inkrementiert, und in Schritt 2409 wird der nächste Befehl ausgeführt. Wenn die Antwort auf die Frage in Schritt 2413 "nein" lautete, d.h. ein Befehl ohne Test an einem Meldungs-Semaphor vorlag, wird der gerade ablaufende Prozeß, wie von E der VP-Unterroutine 2121 angegeben, in den Warte-Status versetzt.Processes attempted to execute a V command and no free message chains were available, step 2413 is performed where the question is: "Is Is this a test command? ". If the answer is" yes, "a condition code is again set to one in step 2414. In addition, the command counter 1312 of the current process that is executing the P command is incremented in step 2415, and in step 2409 the next instruction is executed. If the answer to the question in step 2413 was "no", i.e. there was a command without a test on a message semaphore, as indicated by E of VP subroutine 2121, the process in progress is placed in the waiting state.

In Fig.24a wurde zuerst angenomen, daß das Ergebnis der Antwort auf Frage 2402 "nein" lautete. Wenn die Antwort jedoch "^a" lautete und dadurch anzeigte,daß Prozesse vorhanden waren, die eine Meldung von den Eingabe/Ausgabe-Einheiten aus übertragen wollten, würde eine Unterroutine 2416 durchgeführt. Dieses wäre im wesentlichen die gleiche Operation, die bereits vorstehend für die "nein" -Antwort beschrieben wurde, mit der Ausnahme, daß direkt von der Eingabe/ Ausgabe-Einheit und nicht von Q/LC/FLS abgesendet würde. Wenn keine abzusendende Meldung vorhanden wäre, würde der gegenwärtig ablaufende Prozeß in den Warte-Status übergehen und auf die für die Ausführung des P-Befehls erforderliche Meldung warten.In Fig. 24a it was first assumed that the result of The answer to question 2402 was "no". However, if the answer was "^ a" indicating that processes there would be a subroutine that wanted to transmit a message from the input / output units 2416 carried out. This would be essentially the same operation that was described above for the "no" answer with the exception that it would be sent directly from the input / output unit and not from Q / LC / FLS. If there was no message to be sent, the currently running process would go into the waiting state and to that required for the execution of the P command Message waiting.

E. P-Befehl für ein Semaphor mit einer Meldung, deren SCT größer als Null ist.E. P command for a semaphore with a message whose SCT is greater than zero.

Wenn in Fig.22a bei Schritt 2205 festgestellt wurde, daß das SCT-FeId des P-Befehls für ein Meldungs-Semaphor nicht gleich Null war, d.h.' daß das SCT-FeId größer als Null war, ist bekannt,If it was found in Fig. 22a at step 2205 that the SCT field of the P command is not the same for a message semaphore Was zero, i.e. ' that the SCT field was greater than zero is known,

509834/0830509834/0830

daß die vom laufendenProzeß angeforderte Meldung verfügbar ist. Daher wird der Anfrage des P-Befehls entsprochen und der laufende Prozeß kann weiter ablaufen. Genauer gesagt, wird als Antwort auf die Frage in 2205 eine Verzweigung des Schritts 2207 durchgeführt. In Schritt 2207 lautet die Frage, ob es sich um einen Testbefehl handelt. An diesem Punkt ist bekannt, daß der P-Befehl durchgeführt werden kann; für einen Testbefehl muß jedoch ein Bedingungs-Code positioniert werden. Wenn daher die Antwort 11Ja" lautet, wird in Schritt 2208 eine weitere Frage danah gestellt, ob das SCT-FeId des Meldungs-Semaphor, für den der P-Befehl bestimmt ist, gleich Eins ist. Wenn die Antwort "ja" lautet, wird im Status-Register 1311 der Bedingungs-Code auf Null gesetzt; wenn die Antwort "nein" lautet, wird im Status-Register 1311 wie jeweils in den Schritten 2209 und 2210 dargestellt, der Bedingungs-Code "2" positioniert. Diese Bedingungs-Codes kennzeichnen die Anzahl der Meldungen in Q/M/S, auf die sich der P-Befehl bezieht.that the message requested by the current process is available. Therefore, the request of the P command is complied with and the current process can continue. More precisely, a branch to step 2207 is carried out in response to the question in 2205. In step 2207 the question is whether it is a test command. At this point it is known that the P command can be performed; however, a condition code must be positioned for a test command. Therefore, if the answer 11 is yes ", a further question is asked in step 2208 whether the SCT field of the message semaphore for which the P command is intended is equal to one. If the answer is" yes ", the condition code is set to zero in the status register 1311; if the answer is "no", the condition code "2" is positioned in the status register 1311 as shown in steps 2209 and 2210, respectively. Codes identify the number of messages in Q / M / S to which the P command relates.

Wenn die Antwort auf die Frage in Schritt 2207 hinein" oder umgekehrt, "ja" lautete und die Bedingungs-Codes positioniert wurden, wird der Schritt 2211 durchgeführt. An diesem Punkt ist bekannt, daß am· Semaphor (Q/M/S) eine Meldungs-Warteschlange vorhanden ist und bestimmte Tests werden am Semaphor durchgeführt, um dessen Legalität festzustellen. Daher müssen in Schritt 2211 sowohl der Meldungs-Warteschlangen-Kopfhinweis MQHP und der Meldungs-Warteschlangen-Schwanz-Hinweis MQTP des Semaphor ungleich Null und ein Vielfaches von 8 sein. In Schritt 2212 wird die Meldungs-Verkettung, die sich im Kopf von Q/M/S befindet aus der Warteschlange herausgelesen und die Meldung wird in die allgemeinenRegister 1307 der zentralen Verarbeitungs-Einheit 104 übertragen. Der Inhalt der allgemeinen Register wird, gemäß Fig.19a, in die Positionen 00 bis 03 des Scratch-Pad-Speichers übertragen.If the answer to the question in step 2207 is "or vice versa, was "yes" and the condition codes have been positioned, step 2211 is performed. At this point it is known that there is a message queue on the semaphore (Q / M / S) is present and certain tests are carried out on the semaphore to determine its legality. Therefore must in step 2211 both the message queue head MQHP and the message queue tail MQTP des Semaphore must be non-zero and a multiple of 8. In step 2212, the message chain that is in Head of Q / M / S is read out of the queue and the message is in the general register 1307 of the central Processing unit 104 transferred. The contents of the general registers are, according to Fig. 19a, in positions 00 to 03 of the Scratch pad memory transferred.

509834/0830509834/0830

Als nächstes wird Schritt 2401 (Fig.22b) durchgeführt, der die bereits in Verbindung mit Fig.24b beschriebene FLSP-Unterroutine abruft. Diese Unterroutine greift das freie Verkettungs-Semaphor ab und.überprüft seinen gegenwärtigen Status. Diese Unterroutine wird durchgeführt, da eine Meldungs-Verkettung freigegeben wurde, die nun in die Warteschlange der freien Meldungs-Verkettungen eingereiht wird, die durch.FLS, Q/ML/FLS indexiert wurde. In Schritt 2213 wird das Hardware-Gatter gesperrt, um so zu kennzeichnen, daß im System ein kritischer Status auftritt. Das Einschreiben des kritischen Status in"den Speicher wird mit Hilfe der in Fig.22e dargestellten Unterroutine RML, 2214 , durchgeführt.Next, step 2401 (FIG. 22b) is performed, which the FLSP subroutine already described in connection with FIG. 24b retrieves. This subroutine takes the free concatenation semaphore and checks its current one Status. This subroutine is carried out as a message chain has been released, which is now queued in the queue of the free message chains that are sent by .FLS, Q / ML / FLS has been indexed. In step 2213, the hardware gate becomes locked to indicate that a critical status occurs in the system. The inscription of the critical Status in "the memory is shown with the help of the in Fig.22e Subroutine RML, 2214, performed.

Die Unterroutine RML gibt, die Meldtmgsverkettung frei, deren Meldung in den gerade laufendenprozeß, der den P-Befehl ausführt, übertragen wird und aktualisiert zusätzlich das "Semaphor" und die Q/M/S, in dem sich vorher die Meldungs-Verkettung befand. Dies wird von den Schritten 2230 bis 2234 in Fig.22e dargestellt. Genauer gesagt, der Schritt 2230 trennt die in Q/M/S befindliche Meldungs-Verkettung ab.Diese Ab;trenn«Gperation; verändert den Meldungs-Warteschlangen-Kopfhinweis. des -Semaphor,das sich in der Position WC5 des Scratch-Pad-Speichers befindet, in das Feld "nächste Verkettung" der ersten Meldungs-Verkettung am Semaphor um. In Schritt 2231 wird der in der Scratch-Pad-Position WC7 befindliche dekrementierte Semaphor-Zählbetrag in die Position WC4 des Scratch-Pad-Speichers übertragen, um so zu kennzeichnen, daß nun eine Meldungs-Verkettung weniger am Meldungs-Semaphor O/M/S angegliedert ist. In Schritt 2232 wird der Inhalt der Positionen WC4, WC5 des Scratch-Pad-Speichers in den Hauptspeicher übertragen, so daß das imHauptspeicher befindliche , Semaphor nun seinen aktuellen Status enthält. Auf diese Weise gibt die Hauptspeicher-Position nun an, daß das Semaphor, dessen neuer Warteschlangen-Kopfhinweis die erste Meldungs-Verkettung identifiziert; in Schritt 2233 wird die freie .Meldungs-Verkettung nun gemäß der LIFO-Regel in die Q/ML/FLS-The subroutine RML enables the message chaining, whose Message in the currently running process that is executing the P command, is transmitted and also updates the "semaphore" and the Q / M / S in which the message chain was previously located. This is illustrated by steps 2230 through 2234 in Figure 22e. More specifically, step 2230 separates that in Q / M / S Message concatenation. This separation «Gperation; changed the Message queue header. of the semaphore that is is in position WC5 of the scratch pad memory, in the field "next chaining" of the first message chaining on Semaphore around. In step 2231, the is in the scratch pad position WC7 in the decremented semaphore count amount in the position WC4 of the scratch pad memory to indicate that there is now one message chain less on the message semaphore O / M / S is affiliated. In step 2232, the contents of positions WC4, WC5 of the scratch pad memory are transferred to main memory transferred so that the Semaphore now contains its current status. In this way the main memory position now indicates that the semaphore, whose new queue header identifies the first message chain; in step 2233 the free Message chaining now according to the LIFO rule in the Q / ML / FLS

509834/0830509834/0830

Warteschlange eingereiht. Dies erfordert eine Änderung des FLQP-Hinweises des freien Verkettungs-Semaphor, um auf diese Meldungs-Verkettung hinzuweisen, d.h. die Information der FLSC-Unterroutine 2401 wird nun geschrieben. Zusätzlich wird der vorherige"FLQP-Inhalt, der die erste Verkettung in der Warteschlange der freien Meldungs-Verkettungen kennzeichnete, in das Feld "nächste Verkettung " der freien Meldungs-Verkettung übertragen, die in die Q/ML/FLS-Warteschlange eingereiht wird. Auf diese Weise bleibt die logische Struktur der freien Meldungs-Verkettung intakt. In.Schritt 2234 wird das Hardware-Gatter freigegeben, um zu kennzeichnen, daß der kritische System-Status vorüber ist, und die RML-Unterroutine ist beendet.Queued up. This requires changing the FLQP hint of the free concatenation semaphore to refer to this Indicate message chaining, i.e. the information of the FLSC subroutine 2401 is now written. Additionally will the previous "FLQP content, which is the first concatenation in the Queue of free message chaining marked in the field "next chaining" of the free message chaining transferred to the Q / ML / FLS queue will. In this way, the logical structure of the free message chain remains intact. In step 2234 the hardware gate enabled to indicate the critical system status is over and the RML subroutine is completed.

In Schritt 2215 von Fig.22b wird der Befehlszähler des laufendenProzesses inkrementiert. Dies beendet normalerweise den P-Befehl, da jedoch eine freie Meldungs-Verkettung für Q/ML/FLS verfügbar geworden ist und diese freie Meldungs-Verkettung die erste freie Meldungs-Verkettung innerhalb der Warteschlange sein kann, tritt eine Sonder-Situation auf. Diese Situation ergibt sich daraus, daß ein vorheriger Prozeß versucht haben kann, einen V-Befehl zum Absenden einer Meldung zum SD-Segment des FLS-Semaphor auszuführen, jedoch dazu nicht in der Lage war.Daher ist es nun erwünscht, die Übertragung der Meldung freizugeben.At step 2215 of Figure 22b, the instruction counter becomes the current process incremented. This normally ends the P command, but it is a free message chain for Q / ML / FLS has become available and this free message chaining can be the first free message chain within the queue, a special situation occurs. These Situation arises from the fact that a previous process may have tried a V command to send a message to the SD segment of the FLS semaphore, but was unable to do so, so it is now desirable to transfer the Release message.

Daher wird in Schritt 2216 die Frage gestellt, ob ein Übertrag des neuen Befehls-ZählwertsimB3fehlszähler1312 aufgetreten ist; diese Frage wird immer gestellt, wenn der Befehlszähler inkrementiert worden ist. Wenn die Antwort "ja" lautet, zeigt der Schritt 2217 einen Überlauf der relativen Segmentadresse an und positioniert das SRA des Befehlszählers auf einen Blind-Wert (simulierterWert) von Null und löst ,zusätzlich eine Ausnahme "Segment-Begrenzungsüberschreitung" aus. Dies erfolgt ebenfalls bei jeder Inkrementierung des Befehlszählers, z.B. Schritt 2203 (Fig.22a).Therefore, in step 2216, the question is asked whether a carry the new command count has occurred in theB3error counter 1312; this question is asked whenever the instruction counter has been incremented. If the answer is "yes", the shows Step 2217 overflows the relative segment address and positions the command counter SRA to a dummy value (simulated value) from zero and also raises an exception "Exceeded segment limit". This is also done each time the command counter is incremented, e.g., step 2203 (Fig.22a).

509834/0830509834/0830

Wenn die Antwort auf die Frage in 2216 "nein" lautete, stellt Schritt 2218 die Frage, ob CGT kleiner als Null ist. In dieser Situation ist es erforderlich, das freie Verkettungs-Semaphor zu überprüfen, um festzustellen, ob eine Eingabe/Ausgabe-Einheit eine freie Meldungs-Verkettung an der Q/ML/FLS abgerufen hat. Wenn die Antwort "nein" lautet, d.h. der CCT-Zählwert ist gleich NULL, wird Schritt 2220 (Fig.22c) durchgeführt. Dieser stellt die Frage, ob FLSCT des freien Verkettungs-Semaphor gleich NULL ist. Wenn dies der Fall ist,weist dies darauf hin, daß kein Prozeß an der gerade in das freie Verkettungs-Semaphor eingegliederten freien Prozeß-Verkettung wartet. Daher wird der nächste Befehl 2221 deslaufenden Prozesses durchgeführt. Wenn die Antwort in Schritt 2220 "nein" lautet, d.h. Prozesse darauf wairten, Meldungen absenden zu können, wird in 2222 der System-Modus gesetzt. Durch den System-Modus wird festgestellt, daß der Befehl abgelaufen ist. Wenn weiterhin ein Fehler auftritt, wird der gerade durchgeführte Befehl als erfolgreich ausgeführt erkannt. In Schritt "2223 wird die FAR-Unterroutine (abgegriffene und Bereit-Adresse, Fig.25b) durchgeführt. Hierdurch wird ein früherer Prozeß, welcher die Durchführung eines V-Befehls versuchte, in die Bereit-Warteschlange Q/PR/RDY eingegliedert und als Ergebnis wird der Dispatcher in Schritt 2224 angezeigt. Wenn CCT in Schritt 2218 jedoch kleiner als Null war, d.h. eine Eingabe/Ausgabe-Einheit vorhanden war, die versuchte, eine Meldung abzusenden und keine freien Meldungs-Verkettungen verfügbar waren, wird Schritt 2225 durchgeführt, um den System-Modus zu positionieren, da der Befehl zu Ende gebracht wurde. Schritt 2226 in Fig.22d ruft nun die RLCM-Unterroutine ab, die der Eingabe/Ausgabe-Einheit die Aufnahme der gerade freigegebenen Meldungs-Verkettung ermöglicht und Schritt 2227 löscht den System-Modus und ermöglicht die Durchführung des nächsten Befehls in 2228. Daher waren in den Fig.22b bis 22d nicht nur die P-Befehle beim Anfordern von Meldungen erfolgreich, sondernIf the answer to the question in 2216 was "no", step 2218 asks whether CGT is less than zero. In this situation it is necessary to have the free Check the concatenation semaphore to see if an input / output unit a free message chain at the Q / ML / FLS. If the answer is "no" is, i.e. the CCT count is equal to ZERO, step 2220 (Fig. 22c) is performed. He asks whether FLSCT of the free concatenation semaphore is NULL. If so, it indicates that there is no process at the moment waiting in the free process chaining incorporated in the free chaining semaphore. Therefore, the next instruction becomes 2221 carried out during the current process. If the answer to step 2220 is "no", i.e. processes were waiting to To be able to send messages, the system mode is set in 2222. System mode determines that the command has expired. If an error persists, the command that was just being executed is recognized as successfully executed. In step "2223, the FAR subroutine (tapped and Ready address, Fig. 25b) carried out. This becomes an earlier process which requires the execution of a V-instruction tried to put Q / PR / RDY in the ready queue and as a result, the dispatcher is displayed in step 2224. However, if CCT was less than zero in step 2218, i. there was an input / output unit that tried to send a message and no free message chains were available, step 2225 is performed to enter system mode to position because the command has been completed. Step 2226 in Figure 22d now calls the RLCM subroutine which enables the input / output unit to accept the message chain that has just been released and step 2227 deletes it the system mode and enables the execution of the next command in 2228. Therefore, in FIGS. 22b to 22d there were not only the P commands when requesting messages are successful, but

509834/0830509834/0830

_ 158 __ 158 _

auch die freie Meldungs-Verkettung, die vorher die abgesendete Meldung speicherte, ist entweder zu einem freien Verkettungs-Semaphor oder zum Semaphor, an dem ein nicht-erfolgreicher V-Befehl versucht wurde, übertragen worden.also the free message chaining that was previously sent The message saved is either to a free concatenation semaphore or to the semaphore on which an unsuccessful one V command was attempted, has been transmitted.

Hierdurch wird die P-Operation an einem Meldungs-Semaphor abgeschlossen und die verschiedenen Situationen, die auftreten können, hängen sowohl vom Status des Semaphor wie auch vom Status des freien Verkettungs-Semaphor ab.This makes the P operation on a message semaphore completed and the various situations that can arise depend on both the status of the semaphore and the Status of the free concatenation semaphore.

V-Befehle für SemaphoresV commands for semaphores

Wenn die Antwort auf die in Schritt 2026 (Fig.20b) gestellte Frage "ja" lautete, d.h. eine V-Operation wurde durchgeführt, tritt eine Übertragung zur VNJtfnterroutine 2027 auf (Fig.25a). Es folgt nun eine Beschreibung der verschiedenen V-Befehlsformen, die vom gerade laufenden Prozeß durchgeführt werden.If the answer to that asked in step 2026 (Fig.20b) If the question was "yes", i.e. a V-operation was performed, a transfer to VNJtfnterroutine 2027 occurs (Fig. 25a). There now follows a description of the various forms of V commands performed by the process in progress.

Es wird nochmals daran erinnert, daß das Semaphor in Fig.20 abgegriffen wurde und daß eine Vor-Festiegung durchgeführt wurde, daß eine V-Operation durchgeführt werden soll. In Schritt 2500 lautet die Frage, ob der alte SCT-Wert , der in Position WC4 des Scratch-Pad-Speichers gespeichert ist, kleiner als Null ist, d.h. ob mit dem Semaphor, das.erfaßt wurde, Prozesse verbunden sind.It is reminded again that the semaphore in Fig. 20 was tapped and that a pre-fortification was carried out became that a V operation should be performed. In step 2500 the question is whether the old SCT value, the is stored in position WC4 of the scratch pad memory, is less than zero, i.e. whether with the semaphore that detects processes are connected.

Daher betrifft diese Frage nicht den neuen Semaphor-Zählwert, der in Fig.20 vorweggenommen wurde und in einer Scratch-Pad-Position WC7 gespeichert ist. Wenn die Antwort auf die Frage in 2500 "nein" lautet, reiht der V-Befehl, wenn möglich, ein anderes Signal oder eine andere Meldung in die Semaphor-Warteschlange ein.Therefore, this question does not concern the new semaphore count, which was anticipated in Fig. 20 and in a scratch pad position WC7 is stored. If the answer to the question in 2500 is "no", then the V command, if possible, queues another signal or message in the semaphore queue a.

Genauer gesagt, in Schritt 2501 werden der Operations-Code und der Komplementär-Code des V-Befehls überprüft, um fest-More precisely, in step 2501, the operation code and the complementary code of the V command are checked to determine

509834/0830509834/0830

zustellen, ob ein V-Testbefehl durchgeführt werden soll. Wenn die Antwort einen Nicht-Test-V-Befehl angibt, überprüft Schritt 2502, ob der maximale Zählwert des Semaphor (SMC) gleich oder größer als der neue Semaphor-Zählwert ist, der in Schritt 2025 im Scratch-Pad-Speicher abgespeichert wurde. Wenn der maximale Zählwert des Semaphor niedriger als der neue Semaphor-Zählwert ist, kennzeichnet dies, daß mehr Daten als vom System vorweggenommen wurden, in ein Semaphor eingegliedert wurden, und daher wird in 2502a eine Ausnahmebedingung ausgelöst. Wenn das Semaphor jedoch anzeigt, daß weitere Daten gespeiöhert werden können, wird eine Verzweigung zu Schritt 2503 der VP-Unterroutine durchgeführt, d.h. eine V-Positiye. Vor der Erläuterung dieser Verzweigung werden die Schritte 2504 bis 2507 durchgeführt.indicate whether a V-test command should be carried out. If the response indicates a no-test V command, check Step 2502, whether the maximum count of the semaphore (SMC) is equal to or greater than the new semaphore count that was stored in the scratch pad memory in step 2025. If the semaphore maximum count is less than the new semaphore count, it indicates that more data than were anticipated by the system have been included in a semaphore, and therefore an exception is made in 2502a triggered. However, if the semaphore indicates that more Data that can be saved will branch to it Step 2503 of the VP subroutine is performed, i.e., a V position. Before explaining this branch, steps 2504 to 2507 are carried out.

In Schritt 2504 ist festgestellt worden, daß es sich um einen · Testbefehl handelte. Danach wird, wie bei Schritt 2502, die Frage gestellt, ob der maximale Zählwert des Semaphor gleich oder größer als der neue Zählwert des in Schritt 2025 vorweg*- genommenen Semaphor-Zählfelds ist. Wenn die Antwort "nein" lautet, d.h. wenn SCT größer ist, kann der V-Befehl nicht zu Ende geführt werden. Daher wird .in Schritt 2505 ein Bedingungs-Code "3" in das Status-Register 131I übertragen und in 2506 wird der Befehls-Zähler des laufenden Prozesses inkrementiert, um den nächsten Befehl durchzuführen. Wenn die Antwort auf die Frage in 2504 "ja" lautet,- bedeutet dies, daß das Semaphor zusätzliche Daten speichern kann und eine Verzweigung zur V-Positiven-Unterroutine tritt in Schritt 2503 auf. Die in Fig.26 dargestellte V-Positive-Unterroutine ermöglicht die Eingliederung zusätzlicher Meldungen oder Signale in das Semaphor,In step 2504 it has been determined that it is a Test command acted. Thereafter, as in step 2502, the question is asked whether the maximum count of the semaphore is equal to or greater than the new count of the in advance in step 2025 * - semaphore count field taken. If the answer is "no", i.e. if SCT is greater, the V command cannot be End to be led. Therefore, in step 2505, it becomes a condition code "3" is transferred to the status register 131I and to 2506 the command counter of the current process is incremented in order to carry out the next command. If the answer to the Question in 2504 is "yes" - this means that the semaphore store additional data and a branch to the V-positive subroutine occurs at step 2503. the V-positive subroutine shown in Figure 26 enables the integration of additional messages or signals in the semaphore,

509834/0830509834/0830

A, V-Befehl für Semaphores mit positivem SCT-FeldA, V command for semaphores with a positive SCT field 24565342456534

In Schritt 2600 (Fig.26) werden in der Befehls-Erfassungs-Einheit 1318 der Operations-Code und der Komplementär-Code des V-Befehls überprüft, um festzustellen, ob es sich um eine V-Operation an einem Nicht-Meldungs-Semaphor handelt oder nicht. Wenn die Antwort auf die Frage in 2600 "ja" lautet wird eine Verzweigung zu Schritt 2600a durchgeführt. Der Schritt 2600a überprüft dasPHQP-Feld daraufhin, ob sein Wert gleich NULL ist. Wenn, die Antwort "nein" lautet, tritt in Schritt 2600d eine Ausnahme "illegales Semaphor" auf. Wenn die Antwort auf die in Schritt 2600a gestellte Frage "ja " lautet, wird eine Verzweigung zu Schritt 2601 durchgeführt. In Schritt 2601 wird der in Schritt 2024 von Fig.20b entwickelte inkrementierte SCT-Zählwert innerhalb der Scratch-Pad-Pesition WC7 lokalisiert und in die Position WC4 des Scratch-Pad-Speichers übertragen. In Schritt 2602 wird das Hardware-Gatter gesperrt und in Schritt 2603 wird der inkrementierte SCT-Zählwert in das im Hauptspeicher befindliche Semaphor eingeschrieben, um auf diese Weise zu kennzeichnen, daß ein anderes Signal am Nicht-Meldungs-Semaphor verfügbar ist. In Schritt 2604 wird das Hardware-Gatter freigegeben, um das Ende des kritischen System-Status und den Abschluß des BefaRls zu kennzeichnen.In step 2600 (FIG. 26), the operation code and the complementary code of the V command are checked in the command acquisition unit 1318 in order to determine whether it is a V operation on a non-message semaphore act or not. If the answer to the question in 2600 is "yes", a branch is made to step 2600a. Step 2600a checks the PHQP field to see if its value is equal to NULL. If the answer is "no", an "illegal semaphore" exception occurs in step 2600d. If the answer to the question asked in step 2600a is "yes", a branch is made to step 2601. In step 2601, the incremented SCT count developed in step 2024 of FIG. 20b is located within the scratch pad position WC7 and transferred to position WC4 of the scratch pad memory. In step 2602 the hardware gate is disabled and in step 2603 the incremented SCT count is written into the semaphore in main memory to indicate that another signal is available on the no message semaphore. In step 2604 the hardware gate is enabled to mark the end of critical system status and the completion of the issue.

Wenn der V-Befehl in Schritt 2600 jedoch ein Meldungs-Semaphor ist, wird Schritt 2605 durchgeführt. In Schritt 2605 wird die Frage gestellt, ob das SCT-FeId größer als Null ist. Es ist bereits festgestellt worden, daß der Semaphor^Zählwert nicht kleiner als Null ist und daher, wenn er nicht größer als Null ist, gleich Null ist. Wenn die Antwort "nein" lautet, werden daher in Schritt 2606 die Felder des Meldungs-Warteschlangen-Schwanz· hinweises MQTP und des Meldungs-Warteschlangen-Kopfhinweises MQHP des vom V-Befehl adressierten Meldungs-Semaphor auf Nullen überprüft, da keine Q/M/S vorhanden sein sollten.However, if the V command in step 2600 is a message semaphore, step 2605 is performed. In step 2605 the question is asked whether the SCT field is greater than zero. It has already been established that the semaphore ^ count is not less than zero and therefore, if it is not greater than zero, it is equal to zero. If the answer is "no", the fields of the message queue tail MQTP and the message queue header MQHP of the message semaphore addressed by the V command are therefore checked for zeros in step 2606, since no Q / M / S should be present.

509834/0830509834/0830

Wenn die Antwort auf Schritt 2605 jedoch "ja" lautet, d.h. am Semaphor, befinden sich Meldungen, wird Schritt 2607 durchgeführt, der sowohl MQTP wie auch MQHP überprüft, um festzustellen, ob sie, wie bereits beschrieben , ungleich Null und ein Vielfaches von 8 sind. Wenn diese Bedingung gegeben ist, wird Schritt 2401 , die FLSC-Unterroutine durchgeführt. Diese Unterroutine überprüft , wie bereits in Fig.24b erläutert, das freie Verkettungs-Semaphor und speichert es in den Positionen WCB, WCC und WCD des Scratch-Pad-Speichers ab.However, if the answer to step 2605 is "yes", i.e. am Semaphore, if there are messages, step 2607 is carried out, which checks both MQTP and MQHP to see if they are nonzero, as described earlier and are a multiple of 8. If this condition is met, step 2401, the FLSC subroutine, is performed. As already explained in FIG. 24b, this subroutine checks the free concatenation semaphore and stores it in the positions WCB, WCC and WCD of the scratch pad memory.

Bei Rückkehr von der Unterroutine wird in Schritt 2608 der Operations-Typ überprüft. Wenn es sich um einen V-Befehl für ein Meldungs-Semaphor, SEVFL, SEVTL, handelt, wird Schritt 2609 durchgeführt. Wenn dies nicht der Fall ist, d.h. es handelt sich um einen Eingabe-Ausgabe-Befehl, einenP-Befehl oder eine Ausnahmeverarbeitungs-V-Operation, werden der Schritt 2608a und die SVP-Unterroutine durchgeführt. Diese Unterroutine gestattet dieZuführung von Meldungen zum "Semaphor".Upon returning from the subroutine, the type of operation is checked in step 2608. If it's a V command for a message semaphore, SEVFL, SEVTL, step 2609 is performed. If this is not the case, i. E. if it is an input-output instruction, a P instruction or an exception processing V operation, the Step 2608a and the SVP subroutine are performed. This subroutine allows messages to be sent to the "semaphore".

Wenn es sich jedoch um einen V-Befehl des ablaufenden Prozesses handelt, wird in Schritt 2609 das FLQP-FeId des freien Verkettungs-Semaphor überprüft, um festzustellen, ob es gleich Null ist.Es ist zu bemerken, daß sowohl das Semaphor wie auch das freie Verkettungs-Semaphor auf Legalität überprüft worden sind. Wenn der FLQP-Index nicht gleich Null ist, kennzeichnet dies, daß immer noch freie Verkettungen verfügbar sind. Daher lautet die in Schritt 2610 gestellte Frage, ob es sich um einen Test-V-Befehl handelt. Wenn die Antwort "ja" lautet, wird in Schritt 2611 ein Bedingungs-Code auf "2" gesetzt und in beiden Fällen, d.h. ob es sich um einen Test-V-Befehl handelt oder nicht, wird Schritt 2612 (Fig.26b) durchgeführt.If, however, it is a V command of the current process, the FLQP field of the free Check the concatenation semaphore to see if it is zero. Notice that both the as well as the free concatenation semaphore have been checked for legality. When the FLQP index is not zero this indicates that free links are still available. Therefore, the one asked in step 2610 is Ask if it's a Test-V command. If the answer is "yes", then in step 2611 a condition code is generated is set to "2" and in both cases, i.e. whether it is a test V command or not, step 2612 is taken (Fig.26b) carried out.

509834/0830509834/0830

245653A245653A

In Schritt 2612 wird eine Überprüfung durchgeführt, um festzustellen, ob'sich die Meldungs-Verkettung innerhalb'des SD-Segments befindet. An diesem Punkt ist das freie Verkettungs-Semaphor dabei, eine freie Meldungs-Verkettung freizugeben, um die Meldung des laufenden Prozesses, der den V-Befehl durchführt, zu schreiben. Es muß festgestellt werden, ob sich die freie Meldungs-Verkettung innerhalb der räumlichen Begrenzungen des SD-Segments befindet oder nicht. Wenn sich die Meldungs-Verkettung innerhalb des Segments befindet, wird die Priorität deslaufenden Prozesses in die Bits 24 bis 27 der freien Meldungs-Verkettung übertragen. Wenn dies erfolgt ist, führt Schritt 2613 eine TAML-Unterroutine durch, die den Zugriff zu den Meldungs-Verkettungen überprüft und bei positivem Ergebnis die Meldungs-Verkettung in die Semaphor-Warteschlange Q/M/S einreiht.A check is made at step 2612 to determine whether the message chaining is within the SD segment is located. At this point the free chaining semaphore is about to release a free message chaining, to report the running process that is executing the V command, to write. It must be determined whether the free message chaining is within the spatial limits of the SD segment or not. If the message chain is within the segment, the priority of the current process is transferred to bits 24 to 27 of the free message chain. When this happens is, step 2613 performs a TAML subroutine which is the Access to the message chains is checked and, if the result is positive, the message chain to the semaphore queue Q / M / S queues.

Die TAML-Unterroutine ist inFig.26c dargestellt und in Schritt 2630 wird noch spezifischer die Frage gestellt, ob es sich um einen V-Befehl für ein Meldungs-Semaphor handelt, in dem die Meldung unter dem Gesichtspunkt der Priorität eingereiht ist. Daher überprüft diese Frage das STAG-FeId des in der Position WC4 des Scratch-Pad-Speichers befindlichen Semaphor.Wenn dieser Test als Ergebnis einPrioritäts-Semaphor ausweist, wird dieFrage gestellt, ob der SCT-Wert in Schritt 2631 gleich Null ist oder nicht.The TAML subroutine is shown in Figure 26c and in step 2630 the question is asked even more specifically whether it is a V command for a message semaphore in which the message is ranked from the point of view of priority. Therefore this question checks the STAG field in the position WC4 of the scratch pad memory located semaphore this test shows a priority semaphore as the result, the question is asked whether the SCT value in step 2631 is equal to zero or not.

Wenn der Zählwert des Semaphor nicht gleich Null ist, kennzeichnet dies., daß mit der Semaphor-Warteschlange Q/M/S Meldungsverkettungen verbunden sind und daher wird die in Fig.23e dargestellte Unterroutine PRIQ 2304 dargestellt. Die PRIQ-Unterroutine legt, wie bereits erläutert, die Prioritätsstelle der Meldung in der Meldungs-Verkettung fest und überprüft die Gültigkeit der angrenzenden Meldungs-Verkettung. Diese InformationIf the count of the semaphore is not equal to zero, indicates this. That message chains are connected to the semaphore queue Q / M / S and therefore the one shown in FIG. 23e The illustrated subroutine PRIQ 2304 is shown. The PRIQ subroutine defines, as already explained, the priority point of the message in the message chain and checks the Validity of the adjacent message chain. This information

509834/0830509834/0830

' -.163-'-.163-

wird in den Scratch-Pad-Positionen WDB bis WDE von der PRIQ-Unterroutine gespeichert, so daß die UQLK-Unterroutine anschließend die Information in den Hauptspeicher einschreibt. Wenn die Antwort auf die Frage in 2630 "nein" lautet, d.h. daß kein Meldungs-Semaphor prioritätsbezogen eingereiht ist, oder wenn die Antwort in 2631 "Ja" lautet, ist der SCT-Zählwert Null und zeigt an, daß keine Meldungen an das Semaphor angegliedert sind, wird die gegenwärtige Position der Meldungs-Verkettung später festgelegt. In Schritt 2632 wird die erste freie Meldungs-Verkettung eines freien Verkettungs-Semaphor Q/ML/FLS, aus dem Hauptspeicher in die ALU 1317' übertragen. Diese freie Meldungs-Verkettung wäre diejenige, die vom FLQP-Hinweis des FLS-Semaphor gekennzeichnet würde. In Schritt 2633 wird das Feld "nächste Verkettung" der freien Meldungs-Verkettung zu einer Position W32 im Scratch-Pad-Speicher übertragen, nachdem überprüft wurde, ob sie ein Vielfaches von Seht ist. Dieses Feld "nächste Verkettung" wird schließlich zurückübertragen und als FLQP-Hinweis des freien Verkettungs-Semaphor geschrieben. Daher identifiziert das FLS-Semaphor die zweite freie Meldungs-Verkettung als die freie Kopf-Meldungs-Verkettung der Warteschlange, da die erste freie Meldungs-Verkettung vom V-Befehl benutzt wird. Anschließend an den Schritt 2633 ist die Unterroutine abgelaufen, und es erfolgt eine Rückkehr zu Schritt 2614 (Fig.26b). is stored in the scratch pad positions WDB to WDE by the PRIQ subroutine, so that the UQLK subroutine then writes the information into main memory. If the answer is "no" to the question in 2630, ie that no message semaphore is queued priority relative, or if the answer in 2631 "Y es", it is the SCT count zero and indicates that not report to the Semaphore are attached, the current position of the message chain is determined later. In step 2632 the first free message concatenation of a free concatenation semaphore Q / ML / FLS is transferred from the main memory to the ALU 1317 '. This free message chain would be the one that would be identified by the FLQP notice of the FLS semaphore. In step 2633, the "next chaining" field of the free message chaining is transferred to a position W32 in the scratch pad memory after checking whether it is a multiple of vision. This "next concatenation" field is finally transmitted back and written as the FLQP indication of the free concatenation semaphore. Therefore, the FLS semaphore identifies the second free message chain as the free head message chain of the queue, since the first free message chain is used by the V instruction. Subsequent to step 2633, the subroutine has run, and there is a return to step 2614 (FIG. 26b).

Der Schritt 2614 kennzeichnet die MTT-Unterroutine, die in Fig.23a mit 2303 bezeichnet wurde. Die MTT-Unterroutine bezeichnet· eine Bewegungs-Funktion und wird zur Übertragung einiger Felder der Meldung in den Zwischen-Speicherbereich der Arbeitszone verwendet. Dies erfolgt daher, weil das erste Eineinhalb-Wort d.h. der in Fig.15 bei 1508 dargestellte Meldungs-Vorsatz, erstellt werden muß. Die eigentliche Meldung, die aus den nächsten Zweieinhalb-Worten der Meldungsverkitung besteht, wird vom laufenden Prozeß erzeugt.Step 2614 identifies the MTT subroutine shown in Fig. 23a was designated by 2303. The MTT subroutine denotes a movement function and is used for transmission some fields of the message in the buffer area used in the work zone. This is because the first word and a half, i.e. the one shown in Fig. 15 at 1508 Message prefix, must be created. The actual message, made up of the next two and a half words of the message wiring is generated by the running process.

509-834/0830509-834 / 0830

Genauer gesagt, inFig,26d, Schritt 2640 wird das STAG-FeId d.h. die Bits 0 bis 3 des Meldunge-Semaphore überprüft. Wenn das STAG-FeId anzeigt, daß es sich nicht um ein Prioritäts-Semaphor handelt, wird Schritt 2641 durchgeführt, der das MPL-FeId , d.h. die Bits 28 bis 31, des Meldungs-Vorsatzes auf 1111 setzt dies zeigt an, daß es sich nicht um eine Prioritäts-Meldung handelt. Wenn das STAG-FeId dagegen anzeigt, daß es sich um eine Prioritäts-Meldung handelt, liest Schritt 2642 aus dem allgemeinen Register mit derNummer 1309, die Priorität des Prozesses ab, der den V-Befehl durchführt. Diese Priorität wird nun in das Meldungs-Prioritäts-Feld, Bits 24 bis 27, geschrieben.Gleichzeitig wird eineÜberprüfung an den Bits 28 bis 31 der Meldungs-Verkettung durchgeführt, um festzustellen, ob ein Wert Null in diesen vier Bits enthalten ist. Wenn dies nicht der Fall ist, tritt, wie in der in Schritt 2642a erzeugten Ausnahmebedingung dargestellt, eine Ausnahme "illegale Daten" auf. In beiden Fällen erstellt der Schritt 2643 die TAG-Meldung , d.h. die Bits 20 bis 23.Zu diesem besonderen Zeitpunkt wären alle Meldungs-TAG's gleich Null, da es sich nicht um eine Eingabe/Ausgabe-Operation handelt. Daher überträgt der Schritt 2643 die Bezeichnung des laufenden Prozesses in die Bits 32 bis 47 und kennzeichnet so den Prozeß, der den V-Befehl ausgeführt hat. In Schritt 2644 wird die vom V-Befehl abzugebende Meldung nun in die Speicher- ' ' . Positionen WE4 bis WE7 der Zwischenspeicher-Register übertragen. Diese Meldung würde den nächsten Zweieinhalb- in die Meldungs-Verkettung einzugliedernden Worten, d.h. den Bits 48 bis 127, entsprechen. In Schritt 2645 wird der nun in den Zwischenspeicher-Registern befindliche Meldungs-Vorsatz in die allgemeinen Register Null übertragen und die ersten 16 Bits des allgemeinen Registers 1 des laufenden Prozesses. Auf diese Weise befindet sich nun eine vollständige Meldung, die der Meldungs-Verkettung zugeführt werden soll, in denMore specifically, in Fig. 26d, step 2640 becomes the STAG field i.e. bits 0 to 3 of the message semaphore checked. if the STAG field indicates that it is not a priority semaphore step 2641 is performed which sets the MPL field, i.e. bits 28 to 31, of the message header to 1111 this indicates that it is not a priority message. If, on the other hand, the STAG field indicates that it is a Priority message, step 2642 reads from general register number 1309 the priority of the process executing the V command. This priority is now used in the message priority field, bits 24 through 27, is written. Simultaneously a check is made on bits 28 through 31 of the message chain to see if there is a zero value in these four bits. If not, occurs as in the exception generated in step 2642a shown an exception "illegal data". In either case, step 2643 creates the TAG message, i.e. bits 20 through 23. At this particular point in time, all would be message TAGs equals zero because it is not an input / output operation. Therefore, step 2643 transmits the designation of the current process in bits 32 to 47 and thus identifies the process that carried out the V instruction. In step 2644, the message to be issued by the V command is now stored in the memory ″. Positions WE4 to WE7 of the buffer register are transferred. That message would be the next two and a half in the Message concatenation correspond to the words to be incorporated, i.e. bits 48 to 127. In step 2645, the is now in the cache registers The message prefix is transferred to the general register zero and the first 16 General register 1 bits of the current process. In this way there is now a complete message, which is to be fed to the message chain, in the

509834/0830509834/0830

allgemeinen Registern O bis 3 der allgemeinen Register 1309. Wenn es sich ergeben hätte, daß keineIfcldungs-Verkettung verfügbar war, wäre der gerade ablaufende Prozeß in den Warte-Status versetzt worden und seine allgemeinen Register hätten die Meldung in den allgemeinen Registern Null bis Drei seines PCB festgehalten. Auf diese Weise entwickelt die MTT-Unterroutine nicht nur Meldungen, sondern gewährleistet auch deren Abspeicherung für den späteren Gebrauch·*general registers 0 to 3 of general registers 1309. If it would have been found that no iff chaining was available the process in progress would have been put on hold and its general registers would have the message held in the general registers zero to three of his PCB. That way, the MTT subroutine doesn't just evolve Messages, but also ensures that they are saved for later use *

Bei Abschluß der MTT-Unterroutine wird Schritt 2616 in Fig.26b durchgeführt.Dieser Schritt speichert die absolute Adresse der Meldungs-Verkettung.Da sich die relative Adresse aus dem freien Verkettungs-Warteschlangen-Kopfhinweis FLQP, ergibt, wird die absolute Adresse hieraus entwickelt und in der Position ¥30 des Zwischenspeicher-Registers abgespeichert. In Schritt 2617 wird die TTM- Unterroutine durchgeführt. Diese Unterroutine überträgt die Informationen, die in Form eines Doppelwortes aufgereiht und in den Positionen WE4 bis WE7 des Zwischenspeicher -Bereichs enthalten sind, in den Haptspeicher. Auf diese Weise überträgt die TTM-Unterroutine die Meldungs-Verkettung in die absolute Adresse des Hauptspeichers.Upon completion of the MTT subroutine, step 2616 in Figure 26b This step saves the absolute address of the Message chaining. Since the relative address is derived from the free Concatenation queue header FLQP, results, the absolute address is developed from this and in position ¥ 30 of the buffer register. In step 2617 the TTM subroutine is performed. This subroutine transmits the information, which is lined up in the form of a double word and in positions WE4 to WE7 of the buffer Area are contained in the haptic memory. In this way the TTM subroutine transmits the message chaining into the absolute address of the main memory.

Die TTM- Unterroutine ist in Fig.26e dargestellt, und sie beinhaltet insbesondere den Schritt 2648, der aus den Positionen WE4 und WE5 des Zwischenspeicher-Registers, das erste Doppelwort der Meldungs-Verkettung herauszieht und es in den Hauptspeicher überträgt, sowie den Schritt 2649, der aus den Scratch-Pad-Positionen WE6 und WE7 das zweite Doppelwort der Meldungs-Verkettung herauszieht und es in den Hauptspeicher einschreibt.The TTM subroutine is shown in FIG. 26e, and in particular it includes step 2648 which is derived from positions WE4 and WE5 of the buffer register, pulls out the first double word of the message chain and transfers it to main memory, as well as step 2649, which is the second from scratch pad positions WE6 and WE7 Pulls out the double word of the message chain and puts it in writes to the main memory.

Nach Erstellen der Meldungs-Verkettung aus den entsprechenden Informationen, sperrt Schritt 2618 das Hardware-Gatter und kennzeichnet dadurch die Durchführung einer kritischen OperationAfter creating the message chain from the corresponding Information, step 2618 locks the hardware gate, thereby indicating that a critical operation is being performed

509834/0830509834/0830

und Schritt 2619 führt die QML-Unterroutine durch, mit der die in derTAML-Unterroutine 2613 vorbereitete Meldungs-Verkettung übertragen wird. Der Grund für das Vorhandensein von zwei Unterroutinen ist der, daß eine ungeteilte Operation für das Einschreiben im Hauptspeicher erforderlich ist und daher eine Blockierung des Hardware-Gatters durchgeführt werden muß. Die Vorbereitung der Informationen stellt keine kritische Operation dar und kann unterbrochen werden. Daher wird eine getrennte Unterroutine durchgeführt, um die Informationen vor dem Einschreiben in den Hauptspeicher zu überprüfen und wenn das Hardware-Gatter gesperrt ist, führt die zweite Unterroutine, wie in QML 2619 in Fig.26f dargestellt, die eigentliche Schreiboperation durch.and step 2619 executes the QML subroutine, with which the message chaining prepared in the TAML subroutine 2613 is transmitted. The reason for having two subroutines is that there is an undivided operation for the writing is required in the main memory and therefore a blocking of the hardware gate must be carried out. The preparation The information is not a critical operation and can be interrupted. Hence it becomes a separate subroutine carried out to the information before being registered in the Check main memory and if the hardware gate is locked, the second subroutine executes, as in QML 2619 in Fig.26f shown, the actual write operation by.

Genauer gesagt, trennt die QML-Unterroutine die freie Meldungs-Verkettung von Q/ML/FLS ab und gliedert die befreite Meldungs-Verkettung dem Meldungs-Semaphor an. Die freigegebene Meldungs-Verkettung wird also entweder in die Meldungs-Warteschlange am Semaphor Q/M/S eingereiht oder bildet die erste Meldungs-Verkettung in der Semaphor-^Warteschlange. Auf diese Weise wird in Schritt 2650 die erste freie Verkettung des freien Verkettungs-Semaphor abgetrennt . Dies geschieht, indem aus der Position ¥32 des Scratch Pad-Speichers das Feld "nächste Verkettung" der gerade freigegebenen Meldungs-Verkettung zum FLQP-Hinweis des FLS-Semaphor in die Scratch-Pad-Position WCC übertragen wird. In Schritt 2651 wird dem Semaphor, dem ein V-Befehl zugeleitet wird, die Frage gestellt:"Ist das Semaphor leer", d.h. befinden sich bereits Meldungs-Verkettungen am Semaphor? Wenn die Antwort "ja" lautet, sind in die Warteschlange dieses Semaphor keine zusätzlichenMeldungs-Verkettungen eingereiht, in diesem Fall gibt der Schritt 2652 an, daß derMeldungs-Warteschlangen-Kopfhinweis und Meldungs-Warteschlangen-Schwanz-Hinweis des Seffiaphor geändert werden sollten, um die relative Adresse der in Schritt 2650 erfaßten Meldungs-Verkettung anzuzeigen. Zusätzlich wird das Feld "nächste Verkettung" dieser Meldungs-Verkettung auf Null gelöscht,More specifically, the QML subroutine breaks the free message chaining from Q / ML / FLS and attaches the released message chain to the message semaphore. The released message chain is therefore either added to the message queue at the semaphore Q / M / S or forms the first message chain in the semaphore ^ queue. That way will in step 2650, the first free concatenation of the free concatenation semaphore is severed. This is done by starting from position 32 yen of the scratch pad memory the field "next chaining" of the just released message chaining to the FLQP notice of the FLS semaphore is transferred to the scratch pad position WCC. In step 2651, a V command is passed to the semaphore the question is asked: "Is the semaphore empty", i.e. are there already message chains on the semaphore? If the answer is "yes", there are no additional message chains queued for this semaphore enqueued, in which case step 2652 indicates that the message queue header and message queue tail notice of the Seffiaphor changed should be to the relative address of the acquired in step 2650 Display message chaining. In addition, the "next chaining" field of this message chaining is cleared to zero.

509834/0 830509834/0 830

Qa es sich um die einzige Meldungs-Verkettung handelt, die mit dem Semaphor in Q/M/S verbunden ist.Zwischenzeitlich wird in Schritt 2653 das inkrementierte SCT-FeId desSemaphor aus der Position WC7 des Scratch-Pad-Speichers abgegriffen und in die Position ¥C4 übertragen. In Schritt 2654 wird der gesamte Inhalt der Speicher-Positionen WC4 und WC5 des Scratch-Pad-Speichers zu den freigegebenen Meldungs-Verkettungen (Schritt 2650) in den Hauptspeicher übertragen. Daher wird nicht nur die Meldung in die Meldungs-Verkettung des Hauptspeichers eingeschrieben, sondern das "Semaphor", das auf die Meldungs-Verkettung hinweist, wird über Schritt 2654 aktualisiert.Qa it is the only message chain that starts with is connected to the semaphore in Q / M / S. In the meantime, in Step 2653 the incremented SCT field of the semaphore from the Position WC7 of the scratch pad memory tapped and transferred to position ¥ C4. In step 2654, the entire Contents of the memory positions WC4 and WC5 of the scratch pad memory to the enabled message chains (step 2650) in main memory. Hence will not only the message in the message chain of the main memory instead, the "semaphore" indicating the message chain is updated via step 2654.

Wenn die Antwort auf die Frage in Schritt 2651 "nein" lautet, d.h. daß zusätzliche Meldungs-Verkettungen. an dieses Semaphor angegliedert waren, stellt Schritt 2655 die Frage, ob es sich um einen Befehl handelt, der an einem Prioritäts-Semaphor ausgeführt wird, oder nicht. Wenn die Antwort "nein" lautet, stellt Schritt 2656 die Frage, ob es sich um einen FIFO-V-Befehl handelt. Dies wird durch die Überprüfung des Operations- und des Komplementär-Codes festgestellt, d.h. der-ersten 12 Bits des V-Befehls in der Befehlserfassungs-Einheit 1318. Wenn die Antwort "ja" lautet, d.h. wenn es sich um eine FIFO-Einreihung handelt, kennzeichnet dies, daß die Meldungs-Verkettung innerhalb der Wärteschlange die letzte Position einnehmen wird. Daher vervollständigt der Schritt 2657 den Meldungs-Warteschlangen-Schwanzhinweis des Semaphor und löscht das Feld "nächste Verkettung" der am Semaphor einzureihenden Meldungs-Verkettung auf Null, da sie die letzte innerhalb der Warteschlange ist. Nun werden die Schritte 2653 und 2654 durchgeführt, um sowohl das Semaphor wie auch die Meldungs-Verkettung zu ergänzen?If the answer to the question in step 2651 is "no", i. that additional message chains. attached to this semaphore were, step 2655 asks whether it is an instruction executed on a priority semaphore will or not. If the answer is no, step 2656 asks if it is a FIFO V command acts. This is determined by checking the opcode and the complementary code, i.e. the first 12 bits of the V command in the command acquisition unit 1318. When the The answer is yes, i.e. if it is a FIFO queue this indicates that the message chain will take the last position within the queue. Therefore Step 2657 completes the message queue tailing of the semaphore and deletes the "next chaining" field of the message chaining to be added to the semaphore to zero because it is the last one in the queue. Steps 2653 and 2654 are now performed to both to add the semaphore as well as the message chaining?

Wenn die Antwort auf die Frage in 2656 "nein" lautet, wird eine LIFO-Einreihung angezeigt und Schritt 2658 vervollständigt den Meldungs-Warteschlangen-Kopfhinweis des Semaphor und überträgt den alten, im Semaphor enthaltenen Meldungs-Warteschlangen-Kopfhinweis in das Feld "nächste Verkettung", der in das Semaphor eingegliederten Meldungs-Verkettung. Dies ergibt sich daraus,If the answer to the question at 2656 is "no", a LIFO ranking is displayed and step 2658 completes that Message queue header of the semaphore and transmits the old message queue header information contained in the semaphore in the "next chaining" field, the message chaining incorporated in the semaphore. This results from

509834/0S30509834 / 0S30

daß die vom V-Befehl des gerade ablaufenden Prozesses erzeugte Meldung die erste ist, die zu einem P-Befehl übertragen wird, der sich auf das gleiche Semaphor bezieht. Daher wird sie an die Spitze von Q/M/S plaziert. Anschließend werden die bereits beschriebenen Schritte 2653 und 2654 durchgeführt.that the generated by the V command of the currently running process Message is the first to be transmitted to a P command that refers to the same semaphore. Therefore it is sent to the Tip placed by Q / M / S. The steps 2653 and 2654 already described are then carried out.

Wenn in Schritt 2655 die Antwort auf die Frage, ob eine Priorität s-Einreihung erforderlich war, "ja" lautete, sind die für' die Einreihung erforderlichen Informationen bereits von der TAML-Unterroutine 2613 (Fig.26e) und, insbesondere von der PRIQ-Unterroutine 2304 entwickelt worden, auf die sich die TAML-Unterroutine bezieht. Daher wird die in Fig.23h-mit 2311 beschriebene UQLK-Unterroutine durchgeführt, und sie schreibt diese Informationen für die Prozeß-Verkettungsfelder in dem Hauptspeicher vor. Diese Situation tritt auf, wenn es erforderlich sein kann, die Meldungs-Verkettung an irgendeiner Stelle in die Mitte der Meldung einzufügen, die mit dem Semaphor verbunden ist. Die UQLK-Unterroutine 2311 ordnet die Meldungs-Warteschlange nach Prioritäten, so daß eine sequentielle Aufreihung der Felder "nächste Verkettung" gewährleistet ist. Die Schritte 2653 und 2654 übertragen diese Informationen für die Semaphores, derenMeldungs-Verkettungen nach Prioritäten aufgereiht sind, in die Hauptspeicher-Positionen. Bei Abschluß der QML-Unterroutine zeigt Fig.26b an, daß der Schritt 2620 als nächster durchgeführt wird und das Hardware-Gatter freigibt, welches kennzeichnet, daß der kritische System-Status vorüber ist.Nach Schritt 2620 kennzeichnet Schritt 2621,daß der Befehlszähler 1312 des laufenden Prozesses inkrementiert und der nächste Befehl von 2622 weitergeführt wird.If at step 2655 the answer to the question of whether priority s ranking was required was "yes", then those for ' the information required by the TAML subroutine 2613 (FIG. 26e) and, in particular, from the PRIQ subroutine 2304, to which the TAML subroutine relates. Therefore, the one in Fig. 23h-with 2311 UQLK subroutine described, and it writes this information for the process link fields in the Main memory. This situation occurs when it may be necessary to chain messages at any point to be inserted in the middle of the message associated with the semaphore. The UQLK subroutine 2311 arranges the message queue according to priorities, so that a sequential order of the fields "next chaining" is guaranteed. the Steps 2653 and 2654 transmit this information for the Semaphores, the message chains of which are lined up according to priority, in the main memory positions. Upon completion of the QML subroutine, Figure 26b indicates that step 2620 is carried out next and enables the hardware gate, which indicates that the critical system status is over After step 2620, step 2621 indicates that the instruction counter 1312 of the current process is incremented and the next instruction from 2622 is continued.

509834/0830509834/0830

B. V-Befehl für Meldungs-Semaphores, wenn keine freien Meldungs-Verkettungen verfügbar sind.B. V command for message semaphores if no free message chains are available.

Wenn in Fig.26a die Antwort auf die Frage in Schritt 2609 "ja" lautete, d.h. daß der FLQP-Hinweis des FLS-Semaphor gleich Null war und anzeigte, daß keine freien Verkettungen verfügbar waren, stellt der Schritt 2623 die Frage, ob es sich um einen Testbefehl handelt oder nicht. Wenn es sich um einen V-Test befehl handelt, zeigt der Schritt 2624 an, daß der Bedingungs-Code im Status-Register 1311 auf Eins gesetzt ist und der Befehlszähler 1312 wird inkrementiert und in Schritt 2622 wird der nächste Befehl durchgeführt. Wenn die Antwort in Schritt 2623 "nein" lautet, besitzt der Prozeß, der den V-Befehl durchführt, keinen Bezugspunkt zum Absenden seiner Meldung, da keine freien Meldungs-Verkettungen vom freien Verkettungs-Semaphor des SD-Segments verfügbar sind, das in Fig.15 dargestellt ist.Daher wird in Schritt 2625 das FLS-Semaphor so geändert, daß es einem MeldungSrSemaphor entspricht und einenProzeß aufnehmen kann. Dies entspricht einem Semaphor mit einem negativen SCT-FeId, in dem ein P-Befehl durchgeführt wird. Daher kann der V-Befehl vom gerade ablaufenden Prozeß nicht ausgeführt werden und aus diesem Grund hält das freie Verkettungs-Semaphor den gerade ablaufenden Prozeß fest, der in den Warte-Status übertragen wird. Da dies eine typische P-Operation ist, ermöglicht der Schritt 2625 eine Änderung der Information des freien Verkettungs-Semaphor und der Schritt 2121, eine E-Unterroutine von VP, verarbeitet das FLS-Semaphor in gleicher Weise wie ein Meldungs-Semaphor, das einen P-Befehl empfängt. In Schritt 2625 wird der freie Verkettungs-Semaphor-Hinweis FLSP zur relativen Semaphor-Adresse, d.h. zum SRA-Semaphor. Der FLSCT-Zählwert, der Null oder kleiner als Null war, da vorher keine freien Meldungs-Verkettungen verfügbar waren, wird nun um Eins dekrementiert (d.h. minus 1) um zu kennzeichnen, daß das freie Verkettungs-nemaphor die absolute Anzahl von FLSCT-Prozessen beinhaltet, die nicht in der LageIf in FIG. 26a the answer to the question in step 2609 is "yes" read, that is, the FLQP indication of the FLS semaphore was zero, indicating that no free concatenations were available were, step 2623 asks whether it is a test command or not. If it is a V-Test command is, step 2624 indicates that the condition code in status register 1311 is set to one and the Instruction counter 1312 is incremented and in step 2622 the next instruction is performed. If the answer is in If step 2623 is "no", the process performing the V command has no reference point for sending its Message because no free message chaining is available from the free chaining semaphore of the SD segment that is shown in Fig.15. Therefore, in step 2625 the FLS semaphore changed so that it corresponds to a messageSrSemaphor and start a process. This corresponds to a semaphore with a negative SCT field in which a P command is carried out will. Therefore, the V command cannot be executed by the process in progress and for this reason the free one holds The concatenation semaphore defines the currently running process which is transferred to the waiting status. As this is a typical P operation is, step 2625 allows the information of the free concatenation semaphore to be changed, and step 2121, an E subroutine of VP, processes the FLS semaphore in the same way as a message semaphore that processes a P command receives. In step 2625 the free concatenation semaphore indication FLSP becomes the relative semaphore address, i.e. the SRA semaphore. The FLSCT count that was zero or less than zero because no free message chains were previously available are now decremented by one (i.e. minus 1) to indicate that the free concatenation nemaphore is the absolute Includes number of FLSCT processes that are unable

5.0.9034/08 305.0.9034 / 08 30

sind, Meldungen abzusenden.Wie auch graphisch dargestellt, wird das freie Verkettungs-Semaphor zu einem Semaphor. Nach Schritt 2625 wird das E der VP-Unterroutine 2121 durchgeführt, die bereits mit Hinweis auf Fig.23a beschrieben wurde und im wesentlichen eine Prozeß-Warteschlange am freien Verkettungs-Semaphor Q/PR/FLS bildet, indem sie eine Prozeß-Verkettung aus dem in Fig.17 dargestellten GO-Segment herauszieht und den gerade ablaufenden Prozeß in den Warte-Status versetzt. Hierdurch werden V-Befehle für Semaphores abgeschlossen, deren SCT-Felder größer als Null sind.are to send messages. As shown graphically, is the free concatenation semaphore to a semaphore. After step 2625, the E of the VP subroutine 2121 is performed which has already been described with reference to FIG. 23a and essentially a process queue at the free concatenation semaphore Q / PR / FLS forms by extracting a process chain from the GO segment shown in FIG currently running process placed in the waiting status. This completes V commands for semaphores, their SCT fields are greater than zero.

C.V-Befehle für ein Semaphor mit einem negativen SCT-FeIdC.V commands for a semaphore with a negative SCT field

Wenn die Antwort auf die Frage in Schritt 2500 von Fig.25a, ob der alte SCT-Wert niedriger als Null war, "ja" lautete, kennzeichnet dies, daß vorher Prozesse vom Semaphor Daten abgerufen haben. Da das Semaphor keine Daten beinhaltete, wurden die Prozesse in den Warte-Status versetzt, bis Daten verfügbar waren. Da nun ein V-Befehl am Semaphor durchgeführt wird, empfängt nicht nur der vorherige Prozeß die erforderlichen Daten, um den Warte-Status zu verlassen, sondern der gegenwärtig ablaufende Prozeß ist außerdem in der Lage, seine Meldung abzusenden und daher im Funktions-Status zu verbleiben.Daher beschreiben die restlichen Teile von Fig.25 Funktionen,, die sowohl im gerade ablaufenden Prozeß wie auch in einemProzeß durchgeführt werden, der in den Warte-Status versetzt wurde, da keine Daten verfügbar waren.If the answer to the question in step 2500 of Figure 25a, whether the old SCT value was less than zero was "yes", this indicates that processes previously fetched data from the semaphore to have. Since the semaphore did not contain any data, the processes were placed in the wait state until data was available was. Since a V command is now being carried out on the semaphore, not only does the previous process receive the data required to exit the wait state, but the present process The running process is also able to send its message and therefore remain in the functional status describe the remaining parts of Fig.25 functions ,, the be carried out both in the process that is currently running and in a process that has been placed in the waiting status, since no data was available.

Genauer gesagt, entwickeln die Schritte 2508 bis 2512 sowohl Meldungs- als auch Nicht-Meldungs-Semaphore, und der Schritt 2513 überträgt die Information vom gerade ablaufenden Prozeß, der einen V-Befehl durchführt zu dem am Semaphor befindlichen Prozeß, der die Daten abgerufen hat. Daher stellt Schritt 2508 die Frage, ob es sich um eine V-Operation an einem Nicht-Meldungs-Semaphor handelt oder nicht. Wenn die Antwort "ja" lautet, bedeutet dies, daß sich eine War1?eschlange von ProzessenMore specifically, steps 2508-2512 develop both message and no-message semaphores, and step 2513 transfers the information from the process currently running, which is executing a V command, to the one on the semaphore Process that obtained the data. Therefore, step 2508 asks whether this is a V operation on a no-message semaphore act or not. If the answer is yes, it means there is a queue of processes

509334/0830509334/0830

am Nicht-Meldungs-Semaphor befindet, d.h. Q/PR/S, der Prozeß-Warte schlangen-Kopfhinwe is des Semaphor wird in Schritt 2509 überprüft, um festzustellen, ob er ein Vielfaches von 8 und ungleich Null ist oder nicht. Wenn die Antwort auf die Frage, ob es sich um eine V-Operation an einem Meldungs-Semaphor handelte, "nein" lautete, stellt der Schritt 2510 die Frage, ob es sichjom einen Test-V-Befehl für ein Meüungs-Semaphor handelt .Wenn es sich um einen Testbefehl handelt, wird ein Bedingungs-Code in Schritt 2511 auf Null gesetzt und kennzeichnet, daß der SCT-Wert nicht nur negativ ist, sondern daß " außerdem derProzeß bei der Durchführung des V-Befehls in den Warte-Status versetzt wird. In beiden Fällen, d.h. ob es sich um einen Test-Befehl handelt oder nicht, wird Schritt 2512 durchgeführt, um zu überprüfen, ob sowohl der Meldungs-Warteschlangen-Schwänzhinweis gleich Null ist, da es sich um eine Q/PR/S handelt, als auch der Prozeß-Warteschlangen-Kopfhinweis nicht gleich Null und aus bereits erwähnten Gründen ein Vielfaches von 8 ist.is on the no-message semaphore, i.e. Q / PR / S, the process wait The semaphore's snake header is checked in step 2509 to see if it is a multiple of 8 and is non-zero or not. If the answer to the question of whether it is a V operation on a message semaphore if it was "no", step 2510 asks whether it is a test-V command for a training semaphore If it is a test command, a Condition code set to zero in step 2511 and indicates that the SCT value is not only negative, but that "also the process of executing the V instruction in the Waiting status is put. In both cases, i.e. whether it is a test command or not, step 2512 is carried out, to verify that both the message queue tail indicator is zero because it is a Q / PR / S, and the process queue header is not zero either and for reasons already mentioned is a multiple of 8.

Wenn das Semaphor legal ist," wird in Schritt 2513 die FAR-Unterroutine , d.h. der Erfassungs- und Bereit-Prozeß durchgeführt. Eli-ese Unterroutine überträgt die Meldung zum Kopf-Prozeß am Semaphor und führt so den V-Befehl für das Meldungs-Semaphor zu Ende. Zusätzlich ändert:diese Unterroutine denPCB des Prozesses, der die Meldung empfängt, so daß der Dispatcher den Prozeß in die Bereit-Warteschlange einreihen kann.If the semaphore is legal, then in step 2513 the FAR subroutine becomes , i.e. the acquisition and readiness process is carried out. Eli-ese subroutine transfers the message to the head process at the semaphore and thus executes the V command for the message semaphore over. Additionally: this subroutine changes the PCB of the process that receives the message so that the dispatcher can put the process on the ready queue.

Die FAR-Unterroutine 2513 ist in Fig.25b dargestellt. Genauer ausgedrückt, dient der erste Schritt der FAR-Unterroutine zum Zugriff zur bereits in Verbindung mit Fig.23d beschriebenen FGO-Unterroutine 2321. Die FGO-Unterroutine entwickelt den Kopf-The FAR subroutine 2513 is shown in Figure 25b. More accurate In other words, the first step of the FAR subroutine is used to access the functions already described in connection with FIG. 23d FGO subroutine 2321. The FGO subroutine develops the head

Index für das GO-Segment. In Schritt 2520 erfolgt ein Zugriff zur ersten Verkettung des Semaphor, das den Prozeß beinhaltet (Q/PR/S). Auf diese Weise wird der Prozeß-Warteschlangen-Kopfhinweis des Semaphor mit der Adresse addiert, die aus der FGO-Unterroutine entwickelt wurde, um die erforderliche Prozeß-Verkettung zu erzeugen. Es ist zu bemerken, daß die Prozeß-Verkettung im Falle eines freien Verkettungs-Semaphor aus dem PQHP-FeId entwickelt wurde, das zu der Adresse des GO-Segments in Schritt 2520 addiert würde. Anschließend erfolgt in Schritt 2521 eine Zusatzoperation zur RNP-Unterroutine und die FAR-Unterroutine wird zu Ende gebracht.Index for the GO segment. In step 2520, the first concatenation of the semaphore containing the process is accessed (Q / PR / S). In this way, the process queue becomes the header of the semaphore is added to the address developed from the FGO subroutine to create the required process chaining to create. It should be noted that, in the case of a free concatenation semaphore, the process chaining is derived from the PQHP field which would be added to the address of the GO segment in step 2520. Then takes place at step 2521 an additional operation to the RNP subroutine and the FAR subroutine is brought to an end.

Die Unterroutine RNP 2521 ist in Fig.25c dargestellt.Ihre Aufgabe besteht darin, densich im Warte-Status befindlichen Prozeß in den Bereit-Status zu versetzen.Diese Unterroutine wurde auch in Schritt 2408 von Fig.24a durchgeführt, als
ein am FLS-Semaphor befindlicher Prozeß seine Meldung
absendete .Es wird noch einmal daran erinnert, daß
die Situation den gerade ablaufenden Prozeß, welcher
einenP-Befehl durchführte, zum Anfordern einer Meldung
zwang. Diese Meldung wurde nicht abgesendet, da zu diesem Zeitpunkt keine freien Meldungs-Verkettungen verfügbar
waren. Daher wurde die Meldung übertragen und der Prozeß, der nicht in der Lage war seine Meldung abzusenden, wurde daraufhin aus dem Wartestatus herausgenommen und in die
Bereit-Warteschlange eingereiht. Zu diesem Zeitpunkt wurde die Erläuterung der RNP-Unterroutine aufgeschoben.
The RNP subroutine 2521 is shown in Figure 25c. Its purpose is to bring the waiting process to the ready state. This subroutine was also performed in step 2408 of Figure 24a when
a process on the FLS semaphore sends its message
It is reminded once again that
the situation the current process, which
performed a P instruction to request a message
force. This message was not sent because no free message chains are available at this point in time
was. Therefore the message was transmitted and the process that was unable to send its message was then taken out of the waiting status and into the
Queued ready. At this point, explanation of the RNP subroutine has been postponed.

Zusätzlich zu den oben erwähnten Eunktionenkann die RNP-Unterroutine als Ergebnis der Dispatcher-Funktion den
gerade ablaufendenProzeß ausspeichern, wenn der am
Kopf der Bereit-Warteschlange befindliche Prozeß
eine höhere Priorität besitzt. Dies wird detaillierter
in Fig.14 erläutert.
In addition to the functions mentioned above, the RNP subroutine can, as a result of the dispatcher function, the
Save the currently running process if the
Process headed by the ready queue
has a higher priority. This will be more detailed
explained in Fig. 14.

509834/0830509834/0830

Da die RNP-Unterroutine in Verbindung mit einem anderen als dem gerade im Funktions-Status befindlichen Prozeß abläuft, muß sie zuerst diesen anderen Prozeß lokalisieren. Daher ruft Schritt 2522 die PCBA-Unterroutine ab, die in Fig.25h dargestellt ist. Diese Unterroutine erfaßt die absolute Adresse des Prozeß-Steuerblocks, welcher den sich im Warte-Status befindlichen Prozeß enthält. Genauer ausgedrückt, in Schritt 2560 wird der P-Tabellen-Hinweis, der die J-Nummer benutzt,abgegriffen. Dies führt gemäß den Fig.5 und 17 dazu, daß sich die J-Tabelle aus der System-Basis ergibt und nun wird die TabelLe mit der J-Nummer indexiert, um einen Hinweis für die P-Tabelle zu entwickeln.Because the RNP subroutine is in connection with a process other than the one currently in the functional state expires, it must first locate this other process. Therefore, step 2522 calls the PCBA subroutine described in Fig.25h is shown. This subroutine acquires the absolute address of the process control block which the Contains a pending process. More specifically, in step 2560, the P-table hint, who uses the J number is tapped. According to FIGS. 5 and 17, this leads to the J table being derived from the System basis results and now the TabelLe is indexed with the J number to provide a hint for the P table to develop.

In Schritt 2561 wird auf den Hinweis für die P-Tabelle Bezug genommen und die P-Nummer wird nun indexiert und mit dem Hinweis addiert, um aus der P-Tabelle die Adresse des Prozeß-Steuerblocks zu entwickeln. Die Adresse des Prozeß-Steuepblocks wird nun vom Hauptspeicher in die arithmetische Logik-Einheit 1317 übertragen. In Schritt 2562 wird das erste Bit überprüft, um zu kennzeichnen, daß sich der Prozeß-Steuerblock im Speicher befindet, d.h. daß es sich nicht um einen leeren Prozeß-Steuerblock handelt, der hätte unterbrochen werden können. Zusätzlich werden Tests an den Bits 1 bis 7 durchgeführt, um festzustellen, ob alle auf Null sind. Die verbleibenden Teile des ersten Worts werden nun mit Schritt 2563 in die Scratch-Pad-Speicherposition NJA, Fig.19a, übertragen, da diese 24 Bits die absolute Adresse für den Prozeß-Steuerblock darstellen.At step 2561, the reference to the P table is referenced and the P number is now indexed and added with the note to develop the address of the process control block from the P table. The address of the Process control blocks are now transferred from main memory to arithmetic logic unit 1317 transferred. In step 2562 the first bit is checked to identify that the process control block is in memory, i.e. that it is not an empty process control block acts that could have been interrupted. In addition, tests are performed on bits 1 to 7 to determine whether all are at zero. The remaining parts of the first word are now transferred to step 2563 in the scratch pad memory position NJA, Fig. 19a, transferred, since these 24 bits are the absolute address for the process control block represent.

Nach Abschluß der UnterroutinePCBA 2522 wird Schritt 2523 von Fig.25c durchgeführt. In Schritt 2523 werden der Opera* tionsCode und der Komplementär-Code des Befehls überprüft.Upon completion of subroutine PCBA 2522, step 2523 becomes of Fig. 25c performed. In step 2523 the Opera * tionsCode and the complementary code of the command are checked.

509834/0830'509834/0830 '

Wenn es sich um einen Eingabe/Ausgabe-Befehl handelt, wird Schritt 2524 durchgeführt, welcher die eine Meldung darstellenden Daten erfaßt und sie in der PCB-Adresse plus 84 speichert, die die Adresse des allgemeinen Registers O im PCB ist. Wenn es sich um einen Meldungs-V-Befehl oder einen Test-Meldungs-V-Befehl handelt, überträgt Schritt 2525 die in GRO bis GRj5 des allgemeinen Registers gespeicherten Informationen des laufenden Prozesses mittels der MTT-Unterroutine, die in Fig.26d als 2614 gekennzeichnet ist, in den Zwischenspeicher-Bereich. Der Schritt 2524 überträgt nun wieder die Meldung zur PCB-Adresse plus 84.If it is an input / output command, step 2524 is performed which gives the one message representative data and stores them in the PCB address plus 84 which is the address of the general register O is in the PCB. If it is a message V command or is a test message V command, step transmits 2525 the information of the current process stored in GRO to GRj5 of the general register by means of the MTT subroutine, identified as 2614 in Figure 26d is in the cache area. Step 2524 now retransmits the message to PCB address plus 84.

In beiden Fällen wird die TTM-Unterroutine, Schritt 2617, durchgeführt, um eine Meldung in den Hauptspeicher einzuschreiben. Diese Übertragung wird von den Zwischenspeicher-Positionen WE4 bis WE7 aus zum Prozeß-Steuerblock durchgeführt. In either case, the TTM subroutine, step 2617, performed to write a message into main memory. This transfer is made by the cache positions WE4 to WE7 carried out to the process control block.

Wenn in Schritt 2523 die Überprüfung des Operations-Codes anzeigte, daß an einem Nicht-Meldungs-Semaphor ein V-Befehl vorhanden war, wäre eine Speicherung von Meldungen in den Positionen +84 des Prozeß-Steuerblocks nicht erforderlich. In jedem Fall wird jedoch Schritt 2527 durchgeführt, der das interne Warteschlangen-Wort erfaßt, welches den Kopf der Bereit-Warteschlange identifiziert. Es muß bemerkt werden, daß an diesem Punkt eine zusätzliche Eingabe von 2528 aus dargestellt ist, die die Verzweigung von einem Start-Befehl aus kennzeichnet. Der Start-Befehl erfordert nur eine Übertragung einiger Prozesse in die Bereit-Warteschlange, und er erfordert daher die Lokalisierung des IQW-Wortes.If, in step 2523, the opcode check indicated that a no-message semaphore had a V command was present, it would not be necessary to store messages in positions +84 of the process control block. In either case, however, step 2527 is performed which detects the internal queue word which identified the head of the ready queue. It must be noted that at this point an additional Input from 2528 is shown indicating branching from a start instruction. The start command only requires a few processes to be transferred to the ready queue and therefore requires localization of the IQW word.

§09834/0830§09834 / 0830

"- 175-"- 175-

Nach dem Abgreifen des internen Prozeß-Warteschlangenwortes wird die in. Fig.23e beschriebene Unterroutine PRIQ 2304 durchgeführt. Diese Unterroutine stellt fest, ob der Prozeß vorher.eine P-Operation am Semaphor durchgeführt hat, d.h. ein nun im Warte-Status befindlicher Prozeß, wird der Bereit-Warteschlange gegenübergestellt, . Q/PR/RDY. Die PRIQ-Unterroutine überprüft die Priorität der in der Bereit-Warteschlange befindlichen Prozesse mit Hilfe der in denProzeß-Verkettungen befindlichen Prioritätsfeldern, um die Speicherposition der Prozeß-Verkettung innerhalb der Bereit-Warteschlange festzulegen. Die PRIQ-Unterroutine führt keine effektive Speicher-Schreiboperation durch.After the internal process queue word has been tapped, the subroutine PRIQ described in FIG. 23e 2304 carried out. This subroutine determines if the process previously performed a P operation on the semaphore has, i.e. a process that is now in the waiting status, is compared to the ready queue,. Q / PR / RDY. The PRIQ subroutine checks the priority of the processes in the ready queue with the help of those in the process chains Priority fields to determine the storage position of the process chain within the ready queue. The PRIQ subroutine does not perform an effective memory write operation by.

In Schritt 2529, Fig.25d, wird die UACW-Unterroutine durchgeführt, welche die Aufrechnungs-Worte im Prozeß-Steuerblock aktualisiert.Diese Unterroutine errechnet die Gesamtzeit die derProzeß im Warte-Status verbracht hat. In Schritt 2530 wird wieder der Operations-Code des in der Befehlserfassungs-Einheit 1318 befindlichen V-Befehls überprüft, um festzustellen, ob ein Start-Befehl durchgeführt wird. Wenn es sich um einen Start-Befehl handelt, wird eine Verzweigung zu Schritt 2531 durchgeführt, in dem die Prozeß-Bezeichnung und das Prioritäts-Byte des initialisierten Prozesses in einer Prozeß-Verkettung abgespeichert werden. In Schritt 2532 wird die Priorität des sich im PCB befindlichen Terfahrens in die Prozeß»Verkettung übertragen. Daher aktualisiert dieser Schritt das Prioritäts-Byte, das vom Scratch-Pad-Speicher übertragen wurde, wenn eine Prioritäts-Änderung des Prioritäts-Bytes aufgetreten war.In step 2529, Fig. 25d, the UACW subroutine is performed, which updates the accounting words in the process control block. This subroutine calculates the total time that the process has been waiting for. In step 2530, the operation code is again in the command acquisition unit 1318 is checked to see if a start command is being performed. If it is a start command, a Branch taken to step 2531, in which the Process designation and the priority byte of the initialized process are stored in a process chain will. In step 2532 the priority of the PCB the current proceedings in the process »concatenation. Therefore, this step updates the priority byte transferred from the scratch pad memory when a Priority change of the priority byte had occurred.

Wenn es sich jedoch nicht um einen Start-Befehl handelt, wird derProzeß aus dem Warte-Status herausgenommen, d.h.However, if it is not a start command, the process is taken out of the wait status, i.e.

50983^/083050983 ^ / 0830

es ist bereits eine Prozeß-Verkettung vorhanden-. Daher wird in Schritt 2533 die Priorität des Prozesses, der sich, wie durch die Prozeß-Verkettung angezeigt, im Warte-Status befand, in die NJP-Position (Fig.19a) des Scratch-Pad-Speichers übertragen. Dies wird durchgeführt, da die Priorität im Prozeß-Verkettungs-Feld eines Prozesses die letzte Version der gegenwärtigen Priorität ist. Wenn daher einePrioritäts-Änderung erfolgte, während sich der Prozeß im Warte-Status befand, würde dies nicht vom Prozeß-Verkettungs-Feld angezeigt.a process chain already exists. Therefore In step 2533, the priority of the process which, as indicated by the process chain, is in the Waiting status was transferred to the NJP position (Fig. 19a) of the scratch pad memory. This is done since the priority in the process link field of a process is the latest version of the current priority is. Therefore, if there was a priority change while if the process was in the waiting status, this would not be indicated by the process link field.

In Schritt 2534, Fig.25e, wird der Operations-Code nochmals überprüft ,um festzustellen, ob es sich um einen P-Befehl, entweder Test- oder Nicht-Test-Befehl, für ein Meldungs-Semaphor handelt, dessen SCT-FeId gleich Null ist. Dies ergibt sich aus der Verzweigung von der PMZ-Unterroutine aus, Fig.24a, die in Schritt 2408 die RNP-Unterroutine abrief. Wenn diese Bedingung vorhanden ist, wird in Schritt 2535 der Inhalt des Prozeß-Steuerblocks des Pro "-zesses, der sich im Warte-Status befand, d.h. die Werte in der Adresse plus 84, in die Positionen GRO bis GR3 der allgemeinen Register des- gerade den P-Befehl durchführenden Prozesses übertragen. Es wird nochmals darauf hingewiesen, daß der PCB des sich im Warte-Status befindlichen Prozesses . eine Meldung enthält, da keine freien Meldungs-Verkettungen verfügbar waren. Daher wurde der Prozeß in Q/PR/FLS eingegliedert. Nun wird ein P-Befehl durchgeführt und die PNZ-Unterroutine hat festgestellt, daß die Verschiebungsfelder gleich sind. Daher wird eine Übertragung der Meldung von dem in Q/PR/FLS befindlichen Prozeß aus durchgeführt. Anschließend wird in Schritt 2536 das Hardware-Gatter gesperrt, um so anzuzeigen, daß das System in einen kritischen Funktions-Status übergegangen ist und in Schritt 2537 wird die UPLQ-Unterroutine durchgeführt. Diese Unterroutine entfernt eine.Prozeß-Verkettung und aktualisiert so, wie in Fig.25i dargestellt, die Q/PR/FLS.In step 2534, Fig. 25e, the operation code is checked again to determine whether it is a P command, either test or non-test command, for a message semaphore whose SCT field is zero. this results from the branching from the PMZ subroutine from FIG. 24a, the RNP subroutine in step 2408 called. If this condition is present, in step 2535 the contents of the process control block of the pro "process, which was in the waiting status, i.e. the values in the address plus 84, in the positions GRO to GR3 of the general register of the process currently executing the P command. It'll point again indicated that the PCB of the pending process. Contains a message because there are no free message chains were available. Therefore the process was incorporated into Q / PR / FLS. A P command is now carried out and the PNZ subroutine has determined that the displacement fields are the same. Therefore, transmission of the message is made from the process in Q / PR / FLS carried out. Then, in step 2536, the hardware gate locked to indicate that the system has passed into a critical functional status and in step 2537 the UPLQ subroutine is performed. This subroutine removes a. Process chain and updates the Q / PR / FLS as shown in Figure 25i.

509834/0830509834/0830

Daher wird in Schritt 2580 ein Test durchgeführt, um festzustellen, ob der erste Verkettungs-Indikator gleich Null ist, d.h. ob dies die im Kopf der Warteschlange befindliche Prozeß-Verkettung ist, die entfernt v/erden soll. Wenn dies der Fall . ist,kennzeichnet Schritt 2581, daß die Prozeß-Verkettungen den Kopf der Warteschlange bilden und nun wird der Prozeß-Verkettungs-Kopf hinweis in der Position WE5 des Scratch-Pad-Speichers mit dem Inhalt des in der Scratch-Pad-Position WE9 gespeicherten UML aktualisiert. Wenn es sich jedoch nicht um den Kopf der Warteschlange handelt, ist in Schritt 2582 der alte Prozeßwarteschlangen-Kopfhinweis gleich dem neuen Prozeß-Warte schlangen-Kopfhinweis und das Feld "nächste Verkettung" der' entfernten Prozeß-Verkettung wird in die unmittelbar davor befindliche .Verkettung übertragen. Auf diese Weise identifiziert die unmittelbar vorhergehende Verkettung, die vorher durch die entfernte Prozeß-Verkettung identifizierte Prozeß-Verkettung und gewährleistet so eine logische Verbindung aller Prozeß-Verkettungen in Q/PR/FLS.Drese Verkettungs-Information entspricht den von der SPLQ-Unterroutine in denScratch-Pad-Positionen WE8 und WE9 abgespeicherten Informationen.Therefore, a test is performed in step 2580 to determine whether the first chaining indicator is equal to zero, i.e. whether this is the process chaining located at the head of the queue that should be removed from the ground. If it does. is, step 2581 indicates that the process chains form the head of the queue and now becomes the process link head Note in the position WE5 of the scratch pad memory with the content of the in the scratch pad position WE9 saved UML updated. However, if it is not the head of the queue, in step 2582 it is the old one Process queue header is the same as the new process queue header and the "next chaining" field The 'removed process link is transferred to the link immediately in front of it. In this way identifies the immediately preceding chaining, the process chaining previously identified by the removed process chaining, and thus ensures a logical connection of all process chains in Q / PR / FLS.Drese chain information corresponds to that of the SPLQ subroutine in the scratch pad positions WE8 and WE9 stored information.

Wenn die Antwort auf die Frage in 2534 "nein" lautete und dadurch kennzeichnete, daß keine Sonderbedingung vorhanden war, wird eine Verzweigung auf Schritt 2538 durchgeführt. Da sich aus einer Antwort "nein" eine Vielzahl von Befehlen, ergeben können, wird in Schritt 2538 die Frage gestellt, ob es sich um einen SECIN-,Start- oder P-oder P-Test-Befehl für ein Meldungs-Semaphor handelt. Wenn die Antwort "ja" lautet, wird eine Verzweigung zu 2539 durchgeführt. Diese Verzweigung wird durchgeführt,da das Abtrennen von einer Q/PR/S oder Q/PR/FLS des Schritts 2555 verzögert wird (Fig.25g). Wenn die Antwort auf die Frage 2538 jedoch "nein" lautet, wieIf the answer to the question at 2534 was "no", indicating that no special condition was present, a branch is made to step 2538. Since a number of commands can result from a "no" answer, the question is asked in step 2538 whether it is a SECIN, start, or P or P test command for a message semaphore. If the answer is yes, a branch is taken to 2539. This branch is performed because the disconnection from a Q / PR / S or Q / PR / FLS of step 2555 is delayed (FIG. 25g). However, if the answer to question 2538 is no, how do you do it?

509834/0830509834/0830

dies bei V-Befehlen der Fall wäre, sperrt der Schritt 2540 das Hardware-Gatter und Schritt 2541 trennt die Prozeß-Verkettung vom Semaphor Q/PR/S oder Q/PL/FLS ab, d.h. die Prozeß-Verkettung wird aus der Warteschlange abgegriffen, in der sie sich befindet. Die entfernte Verkettung wird ebenfalls zu Q/PR/RDY addiert. In Schritt 2542 wird das adressierte Semaphor mit einem neuen SCT-FeId sowohl in den. Scratch -Pad-Speicher wie auch in den Hauptspeicher geschrieben. Dies kennzeichnet den neuen Status des Semaphor. Der Schritt 2542 wird ebenfalls durchgeführt, wenn die PMZ-Unterroutine abgerufen worden ist. Anschließend wird in Schritt 2543 das Hardware-Gatter freigegeben, um zu kennzeichnen, daß die unteilbare kritische Operation vorbei ist.if this were the case with V commands, step 2540 disables that Hardware gate and step 2541 separates the process chaining from the semaphore Q / PR / S or Q / PL / FLS, i.e. the process chaining is tapped from the queue in which it is located is located. The concatenation removed is also added to Q / PR / RDY. In step 2542 the addressed semaphore with a new SCT field both in the. Scratch pad memory like also written to main memory. This marks the new status of the semaphore. Step 2542 is also performed when the PMZ subroutine has been called. The hardware gate is then enabled in step 2543, to indicate that the indivisible critical operation is over.

An diesem Punkt hat der vorher vom Semaphor festgehaltene Prozeß die Daten erhalten, die er vorher angefordert hat. Wenn jedoch eih P-Befehl nicht durchgeführt werden kann, bleibt der Inhalt des Befehlszählers des laufenden Prozesses der gleiche wie in dem Fall, in dem der Prozeß in den Warte-Status versetzt wird. Wenn daher ein Prozeß in den Funktions-Status zurückkehrt,zeigt der Befehlszähler an, daß einP-Befehl durchzuführen ist. Da der P-Befehl des Prozesses nun durchgeführt worden ist, d.h. seine Meldung empfangen hat,muß der in PCB gespeicherte Inhalt des Befehlszählers um vier inkrementiert werden«, Dadurch wird derProzeß beim nächsten Befehl vor der Ausführung seines P-Befehls gestartet,, Die Schritte 2544 bis 2547 führen diese Änderung im Inhalt des Befehls-Zählers durch.At this point the process previously held by the semaphore has received the data it previously requested. But when If the P command cannot be carried out, the content of the command counter of the current process remains the same as in the case where the process is put on hold. Therefore, when a process returns to the functional status, shows the instruction counter indicates that a P instruction is to be performed. Since the P command of the process has now been executed, i. has received its message, the content stored in PCB must of the command counter can be incremented by four «, this will the process at the next instruction before executing its P instruction started, steps 2544 through 2547 perform this Change in the content of the command counter.

In Schritt 2544 wurde das MBZ-FeId des Befehlszahlerwortes daraufhin überprüft, ob es Null war. In Schritt 2545 wird die im Befehlszähler gespeicherte relative Adresse um vier erhöht und ermöglicht so dem Befehlszähler, den nächsten durchzuführenden Befehl anzuzeigen. In Schritt 2546, Fig.25f, wird diese neue Adresse für das Befehlszählerwcrtin den Prozeß-Steuerblock des Prozesses eingeschrieben, der den P-Befehl durchgeführt hat,In step 2544 the MBZ field became the instruction payer word then checked to see if it was zero. In step 2545 the relative address stored in the instruction counter is increased by four thus enabling the instruction counter to indicate the next instruction to be performed. In step 2546, FIG. 25f, this new Address for the command counter input in the process control block of the Enrolled in the process that carried out the P command,

509834/0830509834/0830

lind in Schritt 2547 wird eineüberprüfung durchgeführt, um festzustellen, ob die inkrementierte Adresse das Segment überschritten hat oder nicht. Diese Situation kann auftreten, wenn der Befehlszähler inkrementiert wird. Daher ist der aus dem Warte-Status herausgenommene Prozeß nun in der Lage, im Funktions-Status zu funktionieren, wenn der Dispatcher es übertragen hat.A check is made at step 2547 to determine determine whether the incremented address has crossed the segment or not. This situation can occur when the command counter is incremented. Therefore, the process taken out of the wait status is now able to function in the functional state when the dispatcher has transmitted it.

Schritt 2548 wird durchgeführt, wenn die Verzweigung von Schritt 2539 aus, die das Auftreten eines SECIN-, Start- oder P-oder Test-P-Befehls an einem Meldungs-Semaphor anzeigt oder gemäß der Inkrementierung des Befehlszählers des Prozesses, der sich im Warte-Status befand. In Schritt 2548 wird das Hardware-Gatter wieder gesperrt, um zu kennzeichnen, daß wieder ein kritischer System-Status auftritt und in Schritt 2549 wird das Status-Byte des Prozesses, der gerade ergänzt worden ist, in den Bereit-Status positioniert, so daß der Dispatcher es in die Bereit-Warteschlange einreihen kann.Step 2548 is performed if the branch from Step 2539 which indicates the occurrence of a SECIN, Start, or P or Test-P command on a message semaphore or according to the increment of the command counter of the process that was in the waiting state. In step 2548 the hardware gate is blocked again to identify that a critical system status occurs again and in step 2549 the status byte of the process that is currently has been added, positioned in the ready state so that the dispatcher can put it on the ready queue can.

In Schritt 2550, Fig.25g, wird nochmals die Frage gestellt, ob es sich um einen Start-Befehl handelt. Wenn die Antwort "ja" lautet, wird in Schritt 2551 die Prozeß-Verkettung, die die Informationen bezüglich des initialisierten Prozesses enthält, aus der Warteschlange der Prozeß -Verkettungen am Prozeß-Verkettungs-Semaphor Q/PE/PL'S herausgenommen und der Streit-Indikator wird auf Eins positioniert. Der Streit-Indikator wird positioniert, wenn ein oder mehrere Prozesse seit dem Beginn des letzten vom gerade .laufendenProzess- durchgeführten Befehls in die Bereit-Warteschlange eingereiht worden sind. Der Streit-Indikator identifiziert die Möglichkeit eines Konfliktes des Kopf-Prozesses der Bereit-Warteschlange mit.dem gerade laufenden Prozeß hinsichtlich des Funktions-Status. Anschliessend wird in Schritt 2311 die bereits in Verbindung mit Fig.23h beschriebene Unterroutine UQLK durchgeführt, die die von PRIQ-In step 2550, FIG. 25g, the question is asked again, whether it is a start command. If the answer is "yes", then in step 2551 the process chain that contains the Contains information regarding the initialized process from the queue of the process links at the process link semaphore Q / PE / PL'S removed and the dispute indicator is positioned at one. The dispute indicator is positioned if one or more processes have been carried out by the currently running process since the beginning of the last one Command have been placed in the ready queue. Of the Dispute indicator identifies the possibility of a conflict between the head process of the ready queue and the current one ongoing process in terms of function status. Subsequently, in step 2311, the process already described in connection with FIG. 23h UQLK described subroutine is carried out, which the PRIQ-

509834/0830509834/0830

_ 180-_ 180-

Unterroutine angegebenen Prozeß-Verkettungen ergänzt. In Schritt 2553 wird das Hardware-Gatter wieder freigegeben,Process chains specified in the subroutine have been added. In step 2553 the hardware gate is released again,

j.j.

da die kritische System-Operation nun vorüber ist. Außerdem ist die RNP-Unterroutine zu Ende.Daher kann man bei dieser Verzweigung feststellen, daß bei RNP-Unterroutine sowohl der gerade ablaufende Prozeß , der einen V-Befehl durchführte, als auch der Prozeß, der vom gerade laufenden Prozeß gestartet wurde, vervollständigt ist.since the critical system operation is now over. Also, the RNP subroutine has ended, so this Branch determine that in the RNP subroutine both the currently running process that carried out a V instruction, as well as the process that was started by the currently running process is completed.

Wenn die Antwort auf die Frage in 2550 jedoch "nein" lautete, wird in Schritt 2554 die bereits in Schritt 2534 gestellte Frage nochmals gestellt, d.h. ob es sich um einen SECIN-, oder einenP-oder einen Test-oder einen Nicht-Test-Befehl an einem Meldungs-Semaphor handelt, dessen SCT-Zahlbetrag gleich Null ist. Für die P-Befehle ist diese Einreihung bereits von der UPLQ-Unterroutine durchgeführt worden. Daher wird eine Verzweigung zu Schritt 2552 durchgeführt, da ein Prozeß in die Bereit-Warteschlange eingereiht wurde und ein Vergleich der Prioritäten des laufenden Prozesses mit dam in- "Kopf" von Q/PR/RDY befindlichen Prozeß durchgeführt wird. Daher ist bei dieser Verzweigung zu erkennen, daß die RNP-Unterroutine sowohl den gerade ablaufenden Prozeß, der einen P-Befehl an einem Meldungs-Semaphor durchführte, als auch den im Warte-Status befindlichen Prozeß, der mit dem freien Verkettungs-Semaphor assoziiert war, aktualisierte, da keine freien Meldungs-Verkettungen verfügbar waren.However, if the answer to the question in 2550 was "no", becomes the question already asked in step 2534 in step 2554 asked again, i.e. whether it is a SECIN, or a P or a test or a non-test command on a The message semaphore has an SCT amount equal to zero is. For the P commands, this ranking has already been carried out by the UPLQ subroutine. Hence it becomes a branch to step 2552 because a process is in the ready queue and a comparison of the priorities of the ongoing process with what is in the "head" of Q / PR / RDY Process is carried out. Therefore, at this branch it can be seen that the RNP subroutine as well as the currently running Process that sends a P command to a message semaphore performed and updated the pending process associated with the free concatenation semaphore, since no free message chains were available.

Wenn die Bedingungen der Frage in 2554 jedoch nicht erfüllt worden sind, d.h. wenn der SCT-Zählwert ungleich Null ist, oder es sich nicht um einen der oben aufgeführten Befehle handelte, wird Schritt 2555' durchgeführt, der die neue Prozeß-Verkettung aus der V/arteschlänge entfernt, d.h. entweder Q/PR/S oder Q/PR/FLS, und in Schritt 2556 wird der ergänzte SCT-Wert aus der Position WC7 des Scratch-Pad-SPeichers abgegriffen und in die Prozeß-Verkettung übertragen. In Schritt 2557 wird die Frage gestellt, ob es sich um einen V-Befehl für ein Nicht-Meldungs-Semaphor handelt oder nicht.However, if the conditions of the question in 2554 have not been met, i.e. if the SCT count is not equal to zero, or it was not one of the commands listed above, step 2555 'is performed which is the new Process chaining removed from the V / art loop, i.e. either Q / PR / S or Q / PR / FLS, and in step 2556 the supplemented SCT value is taken from position WC7 of the scratch pad memory tapped and transferred to the process chain. At step 2557 the question is asked whether it is is or is not a V instruction for a no-message semaphore.

509834/0830509834/0830

Wenn dies der Fall ist, schreibt Schritt 2558 die Bezeichnung des Prozesses, dessen Prozeß-Verkettung gerade aus Q/PR/S entfernt wurde, in das Halte-Feld des Semaphor, d.h. wie in Fig.16 dargestellt, die Bits 48 bis 63. Zusätzlich aktualisiert Schritt 2558 das Semaphormit allen in den Positionen WC4 und WC5 des Scratch-Pad-Speichers enthaltenen Informationen, d.h. das neue, in 2556 erzeugte aktualisierte SCT und alle geänderten Warteschlangen-Hinweise, die vorher aufgetreten sein können. Wenn das Nicht-Meldungs-Semaphor vollständig aktualisiert ist, wird in Schritt 2552 der Streit-Indikator auf Eins gesetzt, um zu kennzeichnen, daß ein neuer Prozeß in die Bereit-Warteschlange eingereiht wurde, da der letzte Befehl des gerade ablaufenden Prozesses durchgeführt wurde. Die bereits erwähnten Schritte, d.h. die Schritte 2311 und 2553 werden nun durchgeführt und bewirken einen Abschluß der RNP-Unterroutine. Daher kann man bei dieser Verzweigung sehen, daß eine RNP-Unterroutine sowohl den gerade laufenden Prozeß, der einen V-Befehl an einem Nicht-Meldungs-Semaphor ausführt, als auch den im Warte-Status befindliche!Prozeß, der mit dem Nicht-Meldungs-Semaphor verbunden wurde, aktualisiert.If so, step 2558 writes the name of the process whose process chaining is being removed from Q / PR / S in the hold field of the semaphore, i.e. as shown in Fig. 16, bits 48 through 63. In addition, step 2558 updates the semaphore with all in positions WC4 and WC5 of the scratch pad memory, i.e. the new updated SCT generated in 2556 and all changed queue notices that may have occurred previously. When the non-message semaphore is fully updated the controversy indicator is set to one in step 2552 to indicate that a new process is in the ready queue queued because the last command of the current process was executed. The ones already mentioned Steps, i.e., steps 2311 and 2553, are now performed and cause the RNP subroutine to be terminated. Therefore At this branch you can see that an RNP subroutine contains both the process currently running and a V instruction on a no-message semaphore, as well as the waiting! process that uses the no-message semaphore connected, updated.

Wenn die Antwort auf die Frage in Schritt 2557 jedoch "nein" lautete und dadurch kennzeichnete, daß es sich um einen V-Befehl für ein Meldungs-Semaphor handelte, würde der Schritt 2559 in das im Hauptspeicher befindliche Semaphor einen neuen Kopf-Hinweis, der Q/PR/S ändert und ein neues Zählfeld einschreiben und die Schritte 2552 (die bereits erläuterte Positionierungs-Sequenz) durchgeführt. Daher ist zu erkennen, daß bei dieser Verzweigung die RNP-Unterroutine sowohl den gerade ablaufenden Prozeß, der einen V-Befehl an einem Meldungs-Semaphor durchführt, als auch einen im Warte-Status befindlichen Prozeß, der dem Meldungs-Semaphor zugeordnet wurde, aktualisiert.However, if the answer to the question in step 2557 is "no" and indicated that it was a V instruction for a message semaphore, then step 2559 would in the semaphore located in the main memory a new header note that changes Q / PR / S and writes a new counting field and steps 2552 (the positioning sequence already discussed) are performed. It can therefore be seen that with this Branch the RNP subroutine as well as the current process that is executing a V instruction on a message semaphore, as well as a pending process associated with the message semaphore.

Bei Abschluß der RNP-Unterroutine wird eine Rückkehr zu Schritt 2514, Fig.25a durchgeführt, in der der BefehlszählerUpon completion of the RNP subroutine, a return is made to step 2514, Fig. 25a, in which the instruction counter

509834/0830509834/0830

für den gerade ablaufenden Prozeß inkrementiert wird. In Schritt 2515 wird der Dispatcher abgerufen, der eine Übertragung des vorher aktualisierten Prozesses in die Bereit-Warteschlange ermöglicht und außerdem dem Dispatcher die Möglichkeit gibt festzulegen, welcher Prozeß sich im Funktions-Status befinden sollte, d.h. auf den auf "1" positionierten "Streif-Indikator ansprechen sollte.is incremented for the currently running process. In In step 2515, the dispatcher is called and the previously updated process is transferred to the ready queue and also gives the dispatcher the ability to determine which process is in the functional status should be located, i.e. should respond to the "streak" indicator positioned at "1".

Semaphor-Initialisierungs-BefehlSemaphore initialization command

Die Strukturen eines Semaphor und aller Felder, die zur Durchführung der Prozeß-Synchronisation benutzt werden, sind bereits erklärt worden. Wenn ein Semaphor das Zurückhalten einer ungewöhnlich großen Anzahl von Geschehnissen kennzeichnet, d.h. Meldungen für ein Meldungs-Semaphor und Hilfsquellen für ein Nicht-Meldungs-Semaphor, kann innerhalb des Prozessors eine kritische Situation auftreten. Wenn zum Beispiel ein Meldungs-Semaphor eine große Anzahl von Meldungen aufnimmt und daher eine entsprechende Anzahl von Meldungs-Verkettungen anfordert, sind die in den Fig.15, 17 und 18 dargestellten freien Meldungs-Verkettungen innerhalb des SD-Segments nicht für die anderen Meldungs-Semaphores innerhalb desselben SD-Segments verfügbar. Diese Situation kann z.B. einen Zusammenbruch innerhalb der Kommunikations-Struktur anzeigen. Um ein einwandfreies Funktionieren des Semaphor zu gewährleisten oder andererseits, das Semaphor in seinen ursprünglichen Status zurückzuführen, wird ein Semaphor-Initialisierungs-Befehl (SECIN) benutzt. Dieser Befehl versetzt das Semaphor in einen festgelegten Status, in dem er sein SCT-Zählfeld entweder auf Null, oder bei einem Nicht-Meldungs-Semaphor auf einen · Wert setzt, der der Anzahl der ursprünglich beabsichtigten Hilfsquellen entspricht.The structures of a semaphore and all fields that are used to carry it out process synchronization have already been explained. When a semaphore is holding back identifies an unusually large number of events, i.e. messages for a message semaphore and resources for a non-message semaphore, within the processor can be a critical situation occur. For example, if a message semaphore accepts a large number of messages and therefore requests a corresponding number of message chains, are the free message chains shown in FIGS. 15, 17 and 18 within the SD segment not for the other message semaphores within the same SD segment available. This situation can, for example, indicate a breakdown within the communication structure. To a flawless Ensure the functioning of the semaphore or, on the other hand, return the semaphore to its original status a semaphore initialization command (SECIN) is used. This command puts the semaphore in a defined status in which he has either his SCT count field to zero or, in the case of a no-message semaphore, to a value that corresponds to the number of originally intended Resources.

509834/0830509834/0830

Es wurde bereits erläutert, daß ein negatives SCT-FeId des Semaphor die Anzahl der mit dem Semaphor verbundenen Prozesses angibt. Der SECIN-Befehl initialisiert kein Semaphor, mit dem Prozesse verbunden sind, da diese Operation den Prozeß .; selbst zerstören würde . Dies ergibt sich daraus, daß sich jeder mit dem Semaphor verbundene Prozeß im Warte-Status befindet und auf das Auftreten eines Geschehnisses wartet. Da der SECIN-Befehl dieses Geschehnis nicht erzeugt, kann der Prozeß daher nicht in den Bereit-Status versetzt werden. Daher würde sich der Prozeß in einem als "krank" definierten Status befinden und nicht vom Prozessor akzeptiert werden. Daher würde der Job, den der Prozeß durchführen ·· sollte, nie ausgeführt und die spätere Durchführung von Prozessen würde verhindert.It has already been explained that a negative SCT field of the Semaphore specifies the number of processes associated with the semaphore. The SECIN command does not initialize a semaphore with associated with the process, since this operation is the process.; would destroy itself. This results from the fact that every process connected to the semaphore is in the waiting state and is waiting for an incident to occur. Since the SECIN command does not generate this incident, the Process cannot be put into the ready state. Hence the process would define itself as "sick" in one Status and not accepted by the processor. Therefore, the job that the process was supposed to do ·· never would executed and the later execution of processes would be prevented.

Die gleiche Situation würde nicht auftreten, wenn das Semaphor eine Warteschlange von Meldungen oder Einrichtungen besitzen würde. Durch das Entfernen vonMeldungen oder Hilfsquellen werden nur laufende Daten zerstört. Diese laufenden Daten können die Ursache der Fehlerbedingung gewesen sein. Wichtiger noch, da keiner der Prozesse zerstört wurde, ist es daß eine Rückkehr in einen früheren Status und der weitere Ablauf von Prozessen nicht verhindert ist.The same situation would not occur if the semaphore would have a queue of messages or facilities. By removing messages or resources only current data is destroyed. This running data may have caused the error condition. More importantly, there none of the processes has been destroyed, it is a return to an earlier state and the further expiry of Processes is not prevented.

Insbesondere bei einem Meldungs-Semaphor, wird das SCT-FeId des Semaphor nach und nach auf Null gelöscht; auf diese Weise wird Q/M/S geleert und alle damit verbundenen Meldungen und Meldungs-Verkettungen werden freigegeben. Das SCT-FeId wird nie für eine Positions-Nummer initialisiert, da dies die Eingliederung unbekannter Meldungen in die Warteschlange erfordern würde. Diese Situation kann jedoch nicht auf Nicht-Meldungs-Semaphores angewendet werden, welche Hilfsquellen bezeichnen können. Es ist möglich, für Prozesse eine festgelegte Anzahl verfügbarer Hilfsquellen bereitzuhalten. Daher kann die Anzahl der verfügbaren Hilfsquellen in das SCT-FeId der Nicht-In the case of a message semaphore in particular, the SCT field the semaphore is gradually cleared to zero; this way Q / M / S will be emptied and all related messages and Message chains are released. The SCT field never will initialized for a position number, as this requires the inclusion of unknown messages in the queue would. However, this situation cannot apply to non-message semaphores which can denote auxiliary sources. It is possible to have a specified number of available To have resources ready. Therefore, the number of available sources of help can fall into the SCT field of non-

5098 34/08 305098 34/08 30

- Ί84-- Ί84-

Meldungs-Sempahores bei der Initialisierung übertragen werden, so daß die Prozesse diese Hilfsquellen bei Bedarf benutzen können.Message sempahores are transmitted during initialization, so that the processes use these resources when needed can.

Diese Eigenschaften sind leichter zu verstehen, wenn man die F^g.27a und 27b betrachtet, in denen die Funktionen dargestellt sind, die bei der Ausführung eines SECIN-Befehls auftreten.These properties are easier to understand by looking at Figs. 27a and 27b, in which the functions are shown that occur when executing a SECIN command.

In Fig.20 ist die allgemeine Unterroutine .zur Entwicklung eines Semaphor-Descriptors dargestellt worden. Diese Semaphor-Descriptor-Erfassungs-Unterroutine 2000 ist für den Operations-Code, den Komplementär-Code und die Adreßsilbe des SECIN-Befehls zugänglich. Als Reaktion auf den Operations- und Komplementär-Code des SECIN-Befehls wurde bei Schritt 2022 eine Verzweigung zur SECIN-Unterroutine durchgeführt. Daher wurden bei der Eingabe der SECIN-Unterroutine in Fig.27a, der Segment-Descriptor, der Semaphor-Descriptor und das Semaphor selbst, aus dem Hauptspeicher abgegriffen und auf mögliche Fehler überprüft. Die . SECIN-Unterroutine wird am Semaphor selbst wirksam.In Fig. 20 is the general subroutine for developing a Semaphore descriptors have been represented. This semaphore descriptor acquisition subroutine 2000 is for the operation code, the complementary code and the address syllable of the SECIN command accessible. In response to the operation and complement codes of the SECIN instruction, a branch was made at step 2022 to the SECIN subroutine. Therefore, when entering the SECIN subroutine in Fig. 27a, the segment descriptor, the Semaphore descriptor and the semaphore itself, from main memory tapped and checked for possible errors. The . SECIN subroutine takes effect on the semaphore itself.

Genauer gesagt, vird in Schritt 2701 das SCT-FeId des Semaphor überprüft, um festzustellen, ob es gleich oder größer als Null ist. Wenn es kleiner als Null ist, kennzeichnet dies, daß mit dem Semaphor Prozesse verbunden sind. Der SECIN-Befehl bewirkt keine Änderung eines Semaphor, das eine Prozeß-Warteschlange besitzt, da dieses den späteren Ablauf derartiger Prozesse unterbinden würde.Daher tritt, wenn SCT kleiner alsNull ist, eine illeagle Semaphor-Initialisierungs-Ausnahme 2702 auf. Wenn das SCT-FeId jedoch gleich oder größer als Null war, wird Schritt 2703 durchgeführt, um das STAG-FeId des Semaphor auf seine Gültigkeit zu überprüfen. Die Codierungen des STAG-Feldes sind bereits in Fig.16 dargestellt worden. In Schritt 2704 lautet die Frage, ob es sich um ein Nicht-Meldungs-Semaphor handelt. Wenn das STAG-FeId anzeigt, daß es sich um ein Nicht-Meldungs-Semaphor handelt, wird eine Verzweigung zu Schritt 2705 durchgeführt.More specifically, in step 2701, the SCT field of the semaphore becomes checked to see if it is equal to or greater than zero. If it is less than zero, this indicates that processes are associated with the semaphore. The SECIN command does not change a semaphore, the one Process queue, as this is the later sequence such processes. Therefore, if SCT is less than zero, an illeagle semaphore initialization exception occurs 2702 on. However, if the SCT field was equal to or greater than zero, step 2703 is performed to set the STAG field to check the semaphore for its validity. The codings of the STAG field have already been shown in FIG. In Step 2704 is the question of whether it is a no-message semaphore acts. If the STAG field indicates that it is a no-message semaphore, a branch is made performed to step 2705.

509834/0830509834/0830

- 185 - ■ · .- 185 - ■ ·.

Bei einem SECIN-Befehl für ein Nicht-Meldungs^Semaphor, ist ein allgemeines Register des Prozesses, das den SECIN-Befehl ausführt, mit einer Nummer "N" geladen worden. Da ein Nicht-Meldungs-Semaphor eine Anzahl von Hilfsquellen identifizieren kann, kann die in das allgemeine Register des laufenden Prozesses geladene Nummer gleich der ursprünglich angeforderten Anzahl von Hilfsquellen sein, die vom Semaphor dargestellt wird. Daher wird in Schritt 2705 der Inhalt des bereits geladenen allgemeinen Registers überprüft, um festzustellen, ob sein Wert niedriger als Null ist. Wenn die Antwort "ja" lautet, tritt eine illegale Semphor-Initialisierungsausnahme 2705a auf, da ein negativer Zählwert etwas nicht Mögliches, d.h. eine Anzahl negativer Hilfsquellen angibt.In the case of a SECIN command for a non-message ^ semaphore, is a general register of the process executing the SECIN instruction has been loaded with a number "N". Because a non-message semaphore Can identify a number of resources that can be found in the general register of the ongoing process The loaded number must be the same as the originally requested number of resources, which is represented by the semaphore. Hence will in step 2705 the contents of the already loaded general register are checked to see if its value is lower than is zero. If the answer is "yes", an illegal occurs Semphore initialization exception 2705a because a negative Counter value something that is not possible, i.e. indicates a number of negative sources of help.

Wenn die Antwort auf Schritt 2705 jedoch "nein" lautet, wird in Schritt 2706 der im allgemeinen Register gespeicherte Wert überprüft, um festzustellen, ob er niedriger als der Inhalt des maximalen Zählfeldes SMC des Semaphor ist. Da die Zahl im allgemeinen Register die Zahl des SCT-Feldes wird, werden die in Fig.16 angegebenen Erfordernisse abgerufen. Es wird nochmals daran erinnert, daß der SCT-Zählwert gleich oder kleiner als der SMC-Zählwert sein mußte, um die Verwaltung des Speicherplatzes zu erleichtern. Wenn also der SCT-Zählwert größer ist, ist eine illegale Bedingung für das Semaphor vorhanden, da sich am Semaphor mehr Hilfsquellen als vorgesehen befinden würden0 Wenn diese Situation aufträte , würde jedesmal, wenn das Semaphor benutzt wird, eine Ausnahmebedingung erzeugt. Wenn daher die im allgemeinen Register enthaltene Zahl größer als das SMC-FeId ist, tritt eine illegale Semaphor-Initialisierungs-Ausnahme 2705a auf»However, if the answer to step 2705 is "no", then in step 2706 the value stored in the general register is checked to see if it is less than the contents of the maximum count field SMC of the semaphore. Since the number in the general register becomes the number of the SCT field, the requirements indicated in Fig. 16 are retrieved. Recall that the SCT count had to be equal to or less than the SMC count to facilitate management of memory space. So if the SCT count is larger, there is an illegal condition for the semaphore because there would be more resources on the semaphore than intended. 0 If this situation occurred, an exception would be generated every time the semaphore is used. Therefore, if the number contained in the general register is greater than the SMC field, an illegal semaphore initialization exception 2705a occurs »

Wenn man jedoch annimmt, daß der Wert im allgemeinen Register niedriger oder gleich dem des maximalen Semaphor-Zählfeldes ist, werden in Schritt 2707 die initialisierten Informationen des Semaphor in dessen Hauptspeicher-Position eingeschrieben. GenauerHowever, assuming that the value in the general register is less than or equal to that of the maximum semaphore count field, the initialized information of the semaphore is written into its main memory position in step 2707. More accurate

509834/0830509834/0830

ausgedrückt, empfängt das SCT-PeId des Semaphor den Inhalt des allgemeinen Registers, und es wird daher entweder auf Null oder auf die vom allgemeinen Register angegebene positive Zahl gesetzt; der Prozeß-Warteschlangen-Kopfhinweis, die Bits bis 47, wird gleich Null gesetzt, da mit diesem Nicht-Meldungs-Semaphor keine Prozeß-Warteschlange verbunden ist; schließlich wird das TEP-FeId , die Bits 48 bis 63, gleich Null gesetzt, da kein Prozeß einen V-Befehl am Semaphor durchgeführt hat. Die letztgenannte Bedingung ergibt sich daraus, daß das Semaphor gerade initialisiert wurde, und daher werden nun die vorher mit Erfolg am Semaphor durchgeführten V-Befehle vernachlässigt. Auf diese Weise wird <hs Nicht-Meldungs-Semaphor initialisiert und enthält nun die Informationen, die für einen P-oder V-Befehl erforderlich sind, der sich auf dieses Semaphor bezieht.In other words, the semaphore's SCT-PeId receives the contents of the general register and is therefore set either to zero or to the positive number indicated by the general register; the process queue header, bits through 47, is set to zero, since no process queue is associated with this non-message semaphore; Finally, the TEP field, bits 48 to 63, is set to zero, since no process has performed a V command on the semaphore. The last-mentioned condition results from the fact that the semaphore has just been initialized, and therefore the V commands previously successfully executed on the semaphore are now neglected. In this way, the <hs non-message semaphore is initialized and now contains the information required for a P or V command that relates to this semaphore.

Nach Initialisierung des Semaphor inkrementiert der Schritt 2708 den Befehlszähler für den Prozeß, der den SECIN-Befehl durchführt und in Schritt 2709 wird der nächste Befehl ausgeführt.After the semaphore is initialized, step 2708 increments the instruction counter for the process performing the SECIN instruction and in step 2709 the next instruction is executed.

Wenn die Antwort auf die Frage in Schritt 2704 "nein" lautete, d.h., das adressierte Semaphor war ein Meldungs-Semaphor, entfernt der SECIN-Befehl alle MeIdungs-Verkettungen, die mit dem Semaphor verbunden sind.Genauer gesagt, setzt der Schritt 2710 im Status-Register 1311 einen Bedingungs-Code auf einen Wert von 3.Wenn festgestellt wird, daß der Semaphor-Zählwert anfänglich Null war, bleibt dieser Bedingungs-Code "3- am Ende des Befehls erhalten. 2711 überprüft nun das SCT-FeId des Meldungs-Semaphor, um festzustellen, ob das SCT-FeId gleich Null ist, d.h. ob Meldungs-Verkettungen mit dem Semaphor verbunden sind. Wenn keine Meldungs-Verkettungen vorhanden sind, d.h. wenn die Antwort "ja" lautet, wird das Feld des Meldungs-Warteschlangen-Schwanzhinweis MQTP und das Feld des Meldungs-Warteschlangen-Kopfhinweis MQHP des Meldungs-Semaphor überprüft, um festzustellen, ob sie Meldungs-Verkettungen enthalten.If the answer to the question in step 2704 was "no", i.e., the addressed semaphore was a message semaphore, removed the SECIN command all message chains that start with the More specifically, step 2710 sets a condition code in status register 1311 to a value of 3. If the semaphore count is found to be initial Was zero, this condition code "3-" is retained at the end of the command. 2711 now checks the SCT field des Message semaphore to determine whether the SCT field is equal to zero, i.e. whether message chains are connected to the semaphore are. If there are no message chains, i.e. if the answer is yes, the Message Queue Tail Hint field becomes MQTP and the Message Queue Header field MQHP checks the message semaphore to see if they contain message chains.

509834/0830509834/0830

Da der Schritt 2711 angab, daß keine vorhanden sein sollten, müssen beide Felder Nullen enthalten.-Anschließend wird der Befehlszähler für den Prozeß, der den SECIN-Befehl'ausführt, nochmals mittels des Schrittes 2708 inkrementiert und der nächste Befehl wird ausgeführt. Wenn daher das SCT-FeId bereits auf Null ist, braucht der SECIN-Befehl keine Meldungen zu entfernen, und ein Bedingungs-Code "3" kennzeichnet diese Situation.Since step 2711 indicated that none should be present, both fields must contain zeros. Then the Instruction counter for the process that executes the SECIN instruction, incremented again by means of step 2708 and the next command is executed. Therefore, if the SCT field is already is at zero, the SECIN command does not need to remove any messages, and a condition code "3" indicates this situation.

Wenn der SCT-Zählwert jedoch ungleich Null ist, d.h. die Antwort auf die Frage 2711 lautet "nein" , ist bekannt,-daß der SCT-Zählwert größer als Null ist und keine Meldungs-Verkettungen über Meldungen verfügen, die mit dem Semaphor verbunden sind. Daher wird eine Verzweigung zu Schritt 2713, Fig.27b durchgeführt. In Schritt 2714 werden die Felder MQHP und MQTP des Meldungs-Semaphor überprüft.Da mit dem Semaphor Meldungs-Verkettungen verbunden sind, müssen sowohl MQHP wie auch MQTP ungleich Null und ein Vielfaches von 8 sein. Nach Überprüfung der Legalität des Semaphor in Schritt 2714 wird eine Verzweigung zu der in Fig.24b dargestellten Unterroutine FLSC 2401 durchgeführt. Diese Unterroutine überprüft nicht nur das freie Verkettungs-Semaphor, um zu gewährleisten, daß es sich innerhalb der Konzeptions-Auflagen von Fig.16D befindet, sondern speichert auch in den Positionen WDB, WDC und WDD des Scratch-Pad-Speichers die drei Worte des freien Verkettungs-Semaphor. Dieses freie Verkettungs-Semaphor wird die freizugebende Meldungs-Verkettung aufnehmen.However, if the SCT count is non-zero, i.e. the The answer to question 2711 is "no", it is known that the SCT count is greater than zero and no message chaining have messages associated with the semaphore. Therefore, a branch is made to step 2713, Fig.27b performed. In step 2714 the MQHP and MQTP fields of the message semaphore are checked. Da with the semaphore Message chains are connected, both MQHP and MQTP must be non-zero and a multiple of 8. To Checking the legality of the semaphore in step 2714, a branch is made to that shown in Fig. 24b FLSC 2401 subroutine performed. This subroutine checks not just the free concatenation semaphore to ensure that it is within the conceptual requirements 16D, but also stores the three words in positions WDB, WDC and WDD of the scratch pad memory of the free concatenation semaphore. This free concatenation semaphore will include the message chain to be released.

Nach Abruf der Unterroutine FLSC 2401 in Schritt 2715 wird das Zählfeld des in der Scratch-Pad-Position WC4, Fig.20, gespeicherten Semaphor, um Eins dekrementiert und in die Position WC7 des Scratch-Pad-Speichers übertragen. Dies wird durchgeführt, da damit zu rechnen ist, daß eine Meldungs-Verkettung vom Semaphor freigegeben wird. In Schritt 2716 wird die vom MQHP-FeId des Semaphor bezeichnete Meldungs-Verkettung adressiertAfter subroutine FLSC 2401 is called in step 2715 the counting field of the in the scratch pad position WC4, Fig. 20, stored semaphore, decremented by one and transferred to position WC7 of the scratch pad memory. This is done since it is to be expected that a message chain from Semaphore is released. In step 2716, the MQHP field of the semaphore designated message chain is addressed

50 9834/08 3 050 9834/08 3 0

und in die Scratch-Pad-Position ¥31 übertragen. Diese Meldungs-Verkettung ist diejenige, die aus der am Semaphor Q/M/S befindlichenMeldungs-Warteschlange freigegeben werden soll.and transferred to the scratch pad position ¥ 31. This chain of messages is the one from the message queue at the semaphore Q / M / S should be released.

Nach Erhalt der freizugebenden Meldungs-Verkettung und des freien Verkettungs-Semaphor, das die freie Meldungs-Verkettung aufnehmen soll, wird das Hardware-Gatter in Schritt 2717 gesperrt, um anzuzeigen, daß eine kritische System-Operation durchgeführt wird. Diese kritische System-Operation besteht in der Neu- Einschreibung des freien Verkettungs-Semaphor und des Semaphor, das die Meldungs-Verkettung beinhaltet, in den Hauptspeicher. Dies wird, wie bereits in Fig.22e dargestellt, von der RML-Unterroutine (Schritt 2214) durchgeführt. Die RML-Unterroutine trennt die Meldungs-Verkettung aus Q/M/S ab, indem sie das Feld "nächste Verkettung" der Meldungs-Verkettung so ändert, daß sie in die Warteschlange des freien Verkettungs-Semaphor, Q/ML/FLS, eingereiht wird. Zusätzlich aktualisiert die RML-Unterroutine die Felder des Meldungs-Semaphor, so daß die freigegebene Meldungs-Verkettung nicht mehr mit Q./M/S verbunden ist. Dies beinhaltet das Schreiben des neuen Semaphor-Zählwertes NSCT, der in Schritt 2715 entwickelt wurde, in die Position ¥C4 des Scratch-Pad-Speichers und das Ergänzen von MQHP, um die nächste Meldungs-Verkettung in Q/M/S zu kennzeichnen. An diesem Punkt ist die erste Meldungs-Verkettung aus Q/M/S freigegeben worden.After receipt of the message chaining to be released and the free chaining semaphore that the free message chaining is to receive, the hardware gate is disabled in step 2717 to indicate that a critical system operation is being performed will. This critical system operation consists of rewriting the free concatenation semaphore and the Semaphore, which contains the message chaining, in the main memory. As already shown in FIG of the RML subroutine (step 2214) is performed. The RML subroutine separates the message chain from Q / M / S by it changes the "next concatenation" field of the message concatenation so that it is placed in the queue of the free concatenation semaphore, Q / ML / FLS, is classified. In addition, the RML subroutine updates the fields of the message semaphore so that the released message chain is no longer connected to Q./M/S. This includes writing the new one Semaphore count NSCT developed in step 2715 to position ¥ C4 of the scratch pad memory and adding from MQHP to identify the next message chain in Q / M / S. At this point is the first message chain released from Q / M / S.

Da eine freie Meldungs-Verkettung dem freien Verkettungs-Semaphor in Schritt 2718 zugeführt wurde, wird nun die Frage geste. It, ob der Kanal-Zählwert des freien Verkettungs-Semaphor, d.h. die Bits 80 bis 95, kleiner als Null ist. Diese Frage stellt in Schritt 2718 fest, ob ein Eingabe/Ausgabe-Prozeß auf die gerade freigegebene freie Meldungs-Verkettung gewartet hat. Wenn der CCT-Zählwert geringer als Null ist, hat ein Eingabe/Ausgabe-Prozeß auf eine freie Meldungs-Verkettung gewartet, und die Schritte 2719 bis 2721 werden durchgeführt.Since a free message chain was applied to the free chain semaphore in step 2718, the Question gesture. It, whether the channel count of the free concatenation semaphore, i.e. bits 80 to 95, is less than zero. This question determines in step 2718 whether there is an input / output process has been waiting for the free message chain that has just been released. If the CCT count is less than zero, has a Input / output process waited for a free message chaining, and steps 2719 through 2721 are performed.

509834/0830509834/0830

In Schritt 2719 wird im Status-Register 1311 der Bedingungs- Code auf 2 gesetzt, um zu kennzeichnen, daß eine Eingabe-Ausgabe-Operation eine freie Meldungs-Verkettung aufgenommen hat. In Schritt 2720 wird eine RLCM-Unterroutine durchgeführt. Die RLCM-Unterroutine überträgt durch Simulation eines V-Befehls eine Meldungs-Verkettung zum Eingabe/Ausgabe-ProzeS.In step 2719, the condition code in status register 1311 is set to 2 to indicate that an input-output operation has included a free message chain. In step 2720 an RLCM subroutine is performed. The RLCM subroutine transmits a message chain to the input / output process by simulating a V command.

Bei Abschluß der RLCM-Unterroutine wird eine Verzweigung 2721 durchgeführt, die eine nochmalige Überprüfung des Semaphor in seinem neuen Status auslöst. Daher wird in Schritt 2722 die Frage gestellt, ob der SCT-Zählwertdes Semaphor nun gleich Null ist. Wenn dies der Fall ist, d.h. wenn keine zusätzlichenMeldungs-Verkettungen mit dem Semaphor verbunden sind, wird die Legalität des Semaphor mit Schritt 2712 überprüft und der nächste Befehl für den laufenden Prozeß wird durchgeführt. Wenn dies nicht der Fall ist, wird eine weitere Meldungs-Verkettung des Semaphor,wie durch die Verzweigung in Schritt 2713 dargestellt, freigegeben.At the end of the RLCM subroutine, branch 2721 is taken, which checks the semaphore again triggers in its new status. Therefore, at step 2722, the question is asked whether the semaphore's SCT count is now equals zero. If this is the case, i.e. if no additional message chains are connected to the semaphore the semaphore is checked for legality at step 2712 and the next instruction for the current process is performed. If this is not the case, another message chain is created of the semaphore, as represented by the branch in step 2713, is released.

Wenn die Antwort auf die Frage in Schritt 2718 jedoch "nein" lautete, wird ein Bedingungs-Code "1" gesetzt, um zu kennzeichnen, daß die Meldungs-Verkettung zu Q/ML/FLS übertragen wurde. Anschließend wird in Schritt 2725 die Frage gestellt, ob der Zählwert des freien Verkettungs-Semaphor, das FLSCT-FeId, kleiner als Null ist. Diese Frage stellt fest, ob sich eine Prozeß-Warteschlange, am freien Verkettungs-Semaphor Q/PR/FLS, befindet, d.h. ob ein Prozeß ohne Erfolg die Durchführung eines V-Befehls versucht hat und in den mit Q/PR/FLS verbundenen Warte-Status versetzt wurde. An diesem Punkt ist bekannt, daß eine Meldungs-Verkettung freigegebenwurde. Daher kann der Prozeß, der ohne Erfolg die Durchführung eines V-Befehls versucht hat, diesen nun durchführen, da eine freie Meldungs-Verkettung an das freie Verkettungs-Semaphor angegliedert wurde. Wenn die Antwort auf die Frage in Schritt 2725 daher"ja11 lautet, wird die Unterroutine FAR 2513 durchgeführt. Diese Erfassungs- und Bereit-However, if the answer to the question at step 2718 was "no", a condition code "1" is set to indicate that the message chain has been transmitted to the Q / ML / FLS. The question is then asked in step 2725 whether the count value of the free concatenation semaphore, the FLSCT field, is less than zero. This question determines whether there is a process queue at the free concatenation semaphore Q / PR / FLS, ie whether a process has tried to execute a V command without success and is in the control room connected to Q / PR / FLS Status has been moved. At this point it is known that message chaining has been released. Therefore, the process that attempted to execute a V command without success can now execute it because a free message chaining has been attached to the free chaining semaphore. Therefore, if the answer to the question in step 2725 is "yes" 11 , the FAR subroutine 2513 is performed.

509834/0830509834/0830

. 190 >. 190>

Unterroutine ist bereits in Fig.25 beschrieben worden und versetzt im wesentlichen den wartenden Prozeß in den Bereit-Status und in die Q/PR/RDY, so daß er nochmals versuchen kann, seinen V-Befehl am Meldungs-Semaphor durchzuführen. Daher kann die gerade durch den SECIN-Befehl freigegebene freie Meldungs-Verkettung nun zur Ausführung eines vorher versuchten V-Befehls benutzt werden.The subroutine has already been described in Fig. 25 and essentially puts the waiting process into the ready state and into the Q / PR / RDY so that he can try again to execute his V command on the message semaphore. Therefore can use the free one that has just been released by the SECIN command Message chaining can now be used to execute a previously attempted V command.

Wenn die Antwort auf die Frage in Schritt 2725 jedoch "nein" lautete und dadurch anzeigte, daß kein Prozeß auf eine freie Meldungs-Verkettung wartete, würde die freie Meldungs-Verkettung in die freie Meldungs-Verkettungs-Warteschlange Q/ML/FLS eingegliedert. Nun würde der Schritt 2726 einen Bedingungs-Code im Status-Register auf Null setzen. Anschließend stellt der Schritt 2722 die Frage, ob zusätzliche Meldungs-Verkettungen am Semaphor angegliedert sind. Wenn die Antwort "ja" lautet, d.h. keine weiteren Meldungs-Verkettungen sind am Semaphor angegliedert, wird nochmals die Legalität des Semaphor überprüft und der nächste Befehl wird, wie in Fig.27a dargestellt, ausgeführt. Wenn die Antwort "nein" lautet, wird die nächste Meldungs-Verkettung überprüft und eine weitere Meldungs-Verkettung wird freigegeben. Die gleichen Schritte, d.h. die Schritte 2714 bis 2725 werden durchgeführt, bis keine weiteren Meldungs-Verkettungen mit dem Meldungs-Semaphor verbunden sind.However, if the answer to the question in step 2725 is "no" and thereby indicated that no process was waiting for a free message chain, the free message chain would become incorporated into the free message chaining queue Q / ML / FLS. Now step 2726 would set a condition code in the status register to zero. Then the Step 2722 the question of whether additional message chains are attached to the semaphore. If the answer is "yes", i.e. no further message chains are attached to the semaphore, the legality of the semaphore is checked again and the next command is executed as shown in Fig. 27a. If the answer is "no", the next will Message chaining checked and another message chaining is released. The same steps i.e. the Steps 2714 through 2725 are performed until there are no more Message chains are connected to the message semaphore.

Auf diese Weise ermöglicht der SECIN-Befehl bei Meldungs-Semaphores eine Freigabe der am Semaphor Q/M/S angegliederten Meldungs-Verkettungen zur Singliederung in die freie Meldungs-Verkettungs-Warte schlange Q/ML/FLS. Zusätzlich plaziert der Befehl die gleiche Anzahl von Prozessen, wie in Q/PR/FLS in die Bereit-Warteschlange Q/PR/RDY, da jede freigegebene Meldungs-Verkettung eine potentielle Verkettung für einen vorher nicht erfolgreichen V-Befehl darstellt. Weiterhin werdenThis is how the SECIN command enables message semaphores a release of the message chains attached to the semaphore Q / M / S for single classification in the free message chain control room snake Q / ML / FLS. In addition, the instruction places the same number of processes as in Q / PR / FLS into the ready queue Q / PR / RDY, since each released message chain is a potential chain for a represents previously unsuccessful V command. Continue to be

509834/0830509834/0830

die Felder SCT, MQHP und MQTP auf Null initialisiert. Bei einem Nicht-Meldungs-Semaphor initialisiert der SECIN-Befehl das FCT-FeId entweder auf Null oder auf einen positiven Wert und das TEP-FeId auf Null.the fields SCT, MQHP and MQTP are initialized to zero. At a Non-message semaphore, the SECIN command initializes the FCT field either to zero or to a positive value and the TEP field to zero.

Allgemeine Beschreibung von Geschehnissen außerhalb des die Zentraleinheit kontrollierenden Prozesses.General description of events outside of the process controlling the central unit.

Es ist bereits erläutert worden, daß einProzeß eine Arbeitseinheit ist, auf deren Niveau die Systemhilfsquellen zugeteilt werden. Während sich viele Prozesse in einem aktiven Status befinden können, hat jeweils nur ein einziger Prozeß die Kontrolle über die Zentraleinheit. Wenn dieser Prozeß zur Abarbeitung seiner Prozedur zusätzliche Hilfsquellen benötigt, führt er mit Hilfe eines P-Befehls, der sich auf ein der Hilfsquelle zugeordnetes Semaphor bezieht, einen Abruf der Hilfsquelle durch. Dieses Semaphor zeigt daraufhin die Verfügbarkeit der Hilfsquelle an. Zusätzlich wird die Verfügbarkeit der Hilfsquelle von einem V-Befehl an dem entsprechenden Semaphor gegeben, wobei das Semaphor anzeigt, ob ein Prozeß auf die Hilfsquelle wartet. Die P- und V-Befehle können auch zur Übertragung von Informationen benutzt werden, die sich auf bestimmte sogenannte interne Geschehnisse zwischenProzessen beziehen( interne Geschehnisse sind diejenigen, die von Prozessen erzeugt und empfangen werden, die der Zentraleinheit bekannt sind und von den Prozeß-Steuerblöcken angegeben.sind PCB1S).It has already been explained that a process is a unit of work at the level of which the system resources are allocated. While many processes can be in an active state, only one process at a time has control over the central processing unit. If this process requires additional resources to process its procedure, it calls up the resources using a P command that refers to a semaphore assigned to the resource. This semaphore then shows the availability of the resource. In addition, the availability of the auxiliary source is given by a V command on the corresponding semaphore, the semaphore indicating whether a process is waiting for the auxiliary source. The P and V commands can also be used to transfer information relating to certain so-called internal events between processes (internal events are those generated and received by processes known to the central unit and by the process control blocks are PCB 1 S).

Zuvor ist von internen Geschehnissen geschrieben worden, daß sie von dem Prozeß, der die Kontrolle über die Zentraleinheit hat, mit Hilfe der Durchführung eines V-Befehls übertragen werden,It has previously been written of internal events that them from the process that is in control of the central processing unit has to be transferred by executing a V command,

509834/0830509834/0830

Es besteht jedoch eine weitere Möglichkeit, wie externe Geschehnisse zu Prozessen des zentralen Verarbeitungs-Untersystems übertragen werden können. Wenn diese Übertragung erforderlich ist, wird von der Hardware/Firmware der Datenverarbeitungs-Maschine über einen Mechanismus, der als System-Geschehniss-Abfragemechanismus bezeichnet wird, ein Abruf durchgeführt. Dieser Abruf wird zwischen der Verarbeitung von Befehlen des aktiven Prozesses, der die Kontrolle über die Zentraleinheit hat, registriert und bewirkt eine simulierte V-Operation, die Informationen bezüglich des externen Geschehnisses an einen aktiven Prozeß weiterleitet.However, there is another possibility, such as external events can be transferred to processes of the central processing subsystem. If this transfer is required is, is from the hardware / firmware of the data processing machine via a mechanism called the system event query mechanism called, a poll is performed. This call is made between the processing of commands by the active process that has control over the central processing unit, registers and causes a simulated V-operation, the Relays information regarding the external incident to an active process.

Diese externen Geschehnisse, die zwischen den Befehlen verarbeitet werden, beziehen sich nicht direkt auf den aktiven Prozeß, der die Kontrolle über die Zentraleinheit hat. Genauer gesagt, sind diese Geschehnisse für gewöhnlich Eingabe/Ausgabe-Unterbrechungen oder bestimmte Ausnahmebedingungen.These external happenings that are processed between commands do not relate directly to the active process that has control over the central unit. More accurate in other words, these occurrences are usually input / output interruptions or certain exceptions.

Ein Zentral-Ausnahmemechanismus führt die Kommunikationen hinsichtlich der Ausnahmebedingungen durch. Wenn eine unterbrechungsähnliche Bedingung oder eine System-Ausnahmebedingung auftritt, wird eine simulierte V-Operation durchgeführt, um die Kommunikation zu einem geeignetenProzeß in der Zentraleinheit zu übertragen. Diese Kommunikation informiert den entsprechenden Prozeß über die Art und Ursache der Ausnahmebedingung und ermöglicht eine Fortsetzung des Betriebs des Datenverarbeitungs-Systems, wobei die der Ausnahme· bedingung entsprechende Aktion durchgeführt wird,die sowohl durch die relative Wichtigkeit der Ausnahmebedingung als auch durch den Status des zentralen Verarbeitungs-Untersystems bestimmt wird.A central exception mechanism manages the communications regarding the exception conditions. When a break-like condition or system exception occurs, a simulated V-operation is performed, to transfer the communication to an appropriate process in the central unit. This communication informs the relevant process of the type and cause of the exception and enables the Operation of the data processing system, the action corresponding to the exception condition being carried out, which includes both by the relative importance of the exception as well as the status of the central processing subsystem is determined.

509834/0830509834/0830

Zusätzlich zur Kommunikations-Verarbeitung der Ausnahme-Geschehnisse führt der System-Geschehnis-Abfragemechanismus ebenfalls Kommunikationen hinsichtlich der Eingabe/Ausgabe-Unterbrechungen durch. Die Bezeichnung Eingabe/Ausgabe-Unterbrechung kennzeichnet alle Informationsübertragungen, die ihren Ursprung im Eingabe/Ausgabe-Untersystem haben. Dies beinhaltet Kommunikationen von terEingangs/Ausgangs-Steuereinheit (IOC) und allen Peripherie-Einheiten ('1/O). ■In addition to the communication processing of the exception events the system occurrence polling mechanism also maintains communications regarding the input / output interrupts by. The term input / output interruption identifies all information transfers that originated in the input / output subsystem. This includes communications from the entry / exit control unit (IOC) and all Peripheral units ('1 / O). ■

Das Eingabe-/Ausgabe-Untersystem führt asynchrone Eingabe-Ausgabe-Operationen durch und gewährleistet einen hohen Überlappungsgrad mit denOperationen der Zentraleinheit.Daher beinhaltet das Eingabe/Ausgabe-Untersystem die Gruppierung aller Einrichtungen, die zur Übertragung der in einem Peripherie-Untersystem erzeugten Informationen zwischen dem Hauptspeicher derZentraleinheit und einer beliebigen Peripherie-Einheit erforderlich sind. Das Eingabe/Ausgabe-Untersystem wird nicht detailliert beschrieben, da viele bekannte Ausführungen verwendet werden können. Es erfolgt jedoch eine kurze Einführung in den Betrieb des Eingabe/Ausgabe-Untersystems, um die Abgabe einer Meldung zur Zentraleinheit zu erläutern.The input / output subsystem performs asynchronous input-output operations and ensures a high degree of overlap with the operations of the central unit the input / output subsystem is the grouping of all devices used to transmit data in a peripheral subsystem generated information between the main memory of the central unit and any peripheral unit required are. The input / output subsystem will not as many known designs can be used. However, there is a brief introduction in the operation of the input / output subsystem to handle the delivery to explain a message to the central unit.

Genauer ausgedrückt, arbeitet das Eingabe/Ausgabe-Untersystem asynchron mit der. Zentraleinheit. Hieraus ergibt sich, daß das Eingabe/Ausgabe-Untersystem seine eigenen nachstehend als Kanal-Programme bezeichneten Programme besitzt, die aus einem vollständigen Befehlssatz und Adressierungs-Informationen zur Durchführung der gewünschten Eingabe/Ausgabe-Operationen bestehen. Die Kanal-Programme bestehen aus einem Kanal-Programm-Vorsatz und enthalten die Kanalnummer eines logischen Kanals, zu dem das Programm geleitet wird und einen Satz von Kanal-Befehl seingaben, die die Elementarbausteine eines Kanal-Programms darstellen. Zur Durchführung der Kommunikation mit Hilfe eines IOC von einer •Eingabe/Ausgabe-Einheit aus zurMore specifically, the input / output subsystem operates asynchronously with the. Central unit. It follows from this that the input / output subsystem has its own programs, hereinafter referred to as channel programs, consisting of a complete instruction set and addressing information for performing the desired input / output operations. The channel programs consist of a channel program header and contain the channel number of a logical channel, to which the program is directed and a set of channel command input, which are the basic building blocks of a channel program represent. To carry out communication with the aid of an IOC from an input / output unit to the

509834/0830509834/0830

Zentraleinheit, wird ein logischer Kanal benutzt. Ein logischer Kanal ist von der Konzeption her ein Kommunikations-Pfad zwischen dem Hauptspeicher und einer einzelnen Peripherie-Einheit im Eingabe/Ausgabe-Untersystem. Ein logischer Kanal wird dabei zur Durchführung von einer oder mehreren Operationen benutzt, die sich auf eine Peripherie-Einheit beziehen.Ein logischer Kanal wird durch seine Kanal-Nummer LC gekennzeichnet.Central unit, a logical channel is used. A logical channel is conceptually a communication path between main memory and a single peripheral in the input / output subsystem. A logical channel is used to carry out one or more operations that relate to a peripheral unit logical channel is identified by its channel number LC.

Da das Eingabe/Ausgabe-Untersystem und das zentrale Verarbeitungs Untersystem während der Ausführung eines Kanal-Programms unabhängig voneinander arbeiten, können verschiedene Geschehnisse auftreten, die zur Zentraleinheit übertragen werden müssen. Da diese Geschehnisse während oder beim Abschluß der Durchführung des Kanal-Programms auftreten können, wird das Kanal-Programm unterbrochen und das Eingabe/Ausgabe-Untersystem erzeugt eine Geschehnis-Bezeichnungsmeldung, die eine dem Kanal-Programm entsprechende LC-Nummer beinhaltet.As the input / output subsystem and the central processing Subsystems can work independently of one another during the execution of a channel program occur that have to be transmitted to the central unit. As these happenings during or at the end of the implementation of the channel program can occur, the channel program is interrupted and the input / output subsystem generates an Event description message that contains an LC number corresponding to the channel program.

Diese Eingabe-Ausgabe-Bezeichnungsmeldungen können die folgenden Geschehnisse identifizieren: erstens die Geschehnisse, die sich auf die Durchführung desKanal-Programmsbeziehen und die anschließend als Zwischen- oder Abschluß-Geschehnisse bezeichnet werden; zweitens die Geschehnisse, die sich auf eine spezifische Peripherie-Einheit beziehen, jedoch nicht direkt in die Ausführung des Kanal-Programms mit eingezogen werden und hier als Markierungs-Geschehnisee bezeichnet werden; drittens, diejenigen Geschehnisse, die eine Änderung der Funktions-Bedingungen von Eingabe/Ausgabe-Hardware-Elementen auslösen können und nachfolgend als räumliche Kanal-Ausnahmen oder Eingabe/Ausgabe-Fehlfunktions-Ausnahmen bezeichnet werden. Die zuletzt aufgeführten Ausnahmebedingungen werden jedoch hier nicht näher behandelt.These input-output label messages can identify the following occurrences: first, the occurrences which relate to the implementation of the channel program and which are subsequently as intermediate or final events to be designated; second, the events that relate to a specific peripheral unit, however are not included directly in the execution of the sewer program and are referred to here as marking events; thirdly, those events which trigger a change in the functional conditions of input / output hardware elements may and hereinafter be referred to as spatial channel exceptions or input / output malfunction exceptions. However, the exception conditions listed last are not dealt with in more detail here.

509834/0830509834/0830

Die Meldungs-Bezeichnung von Eingabe/Ausgabe-Geschehnissen wird folgendermaßen einem in der Zentraleinheit befindlichen Prozeß gegeben: Beim Erkennen einer Eingabe/Ausgabe-Meldung wird auf den Mechanismus mit der Bezeichnung System-Geschehnis-Abfragemechanismus zurückgegriffen, der als ein PseudoProzeß abläuft. Dieser Mechanismus sorgt dann für eine simulierte V-Operation an einem Meldungs-Semaphor, um die Meldung an einen Prozeß innerhalb der Zentraleinheit weiterzuleiten. Daher können die Eingabe/Ausgabe-Unterbrechungen als Prozesse im gleichen Sinne wie Prozesse innerhalb der Zentraleinheit betrachtet werden, d.h. sie tauschen Informationen mit dem Prozeß der Zentraleinheit über Meldungs-Semaphores und simulierte Synchronisations-Primitivbefehle aus.Zusätzlich überträgt die simulierte V-Operation die Meldung mittels eines logischen Kanals in der gleichen Weise, wie ein V-Befehl die Meldung mittels eines die Zentraleinheit kontrollierenden Prozesses überträgt.The message designation of input / output events is located in the central unit as follows Process given: When an input / output message is detected, the mechanism called the system incident query mechanism is accessed which runs as a pseudo-process. This mechanism then ensures a simulated V operation on a message semaphore to get the message to a process within the central processing unit. Therefore, the input / output interruptions can be considered processes in the same sense as processes within the central processing unit be viewed, i.e. they exchange information with the Process of the central unit via message semaphores and simulated synchronization primitive commands the simulated V-operation transmits the message via a logical channel in the same way as a V-command transmits the message by means of a process controlling the central unit.

Bei einer Eingabe/Ausgabe-Unterbrechung erzeugt das Eingabe-Ausgabe-Untersystem ein Signal, das ein Flip-Flop positioniert, um anzugeben, daß eine Meldung durch irgendein Eingabe/Ausgabe-Geschehnis erzeugt wurde. Dieses Sondersignal wird von der Zentraleinheit als Feststellung erkannt, daß eine Geschehnis-Bezeichnungsmeldung auf die Angliederung an ein Semaphor wartet. Dieses Flip-Flop, das positioniert wurde und ein Interface zwischen dem Eingabe/Ausgabe-Untersystem und der Zentraleinheit darstellt, wird in diesem Text als Interface-Flop bezeichnet. Wenn dieses Interface-Flop positioniert ist, erkennt die Zentraleinheit, daß eine simulierte V-Operation durchgeführt werden muß. Am Ende des laufenden Befehls wird der in Fig.27 dargestellte System-Geschehnis-Abfragemechanismus von der Zentraleinheit eingegeben.In the event of an input / output interrupt, the input-output subsystem generates a signal that positions a flip-flop to indicate that a message is due to some input / output incident was generated. This special signal is recognized by the central unit as a determination that an incident designation message waiting to be attached to a semaphore. This flip-flop, which has been positioned and is an interface between the input / output subsystem and the central processing unit, is referred to in this text as an interface flop. When this interface flop is positioned, the central unit recognizes that a simulated V operation must be performed. At the end of the current command, the one shown in FIG System incident query mechanism entered by the central unit.

509834/0830509834/0830

System-Ge schehnis-Abfraceme chani smusSystem-incident-abfraceme chani smus

Der System-Geschehnis-Abfragemechanismus ist ein Hardware-Mechanismus, der wie in Fj_g.27 dargestellt, einen Satz von Operationen ermöglicht. Der Abfragemechanismus kann entweder eine Hardware- oder eine Firmware-Struktur besitzen, die Fachleuten bekannt ist. Der Abfragemechanismus arbeitet wie folgt:The system incident query mechanism is a hardware mechanism which, as shown in Fig. 27, comprises a set of Operations enabled. The polling mechanism can be either hardware or firmware structure which would be familiar to those skilled in the art is known. The query mechanism works as follows:

In Schritt 2700 wird der Abfragemechanismus von der Zentraleinheit am Ende des laufenden Befehls der vom aktiven Prozeß durchgeführt wird, angegeben. Die erste vom Abfragemechanismus gestellte Frage ist die, ob externe Geschehnisses, die während der Ausführung des ersten Befehls aufgetreten sein können,abgerufen werden können. Dies wird mit Schritt 2702 durchgeführt,der überprüft, ob das Hardware-Gatter gesperrt ist. Wenn das Hardware-Gatter , wie oben, gesperrt ist, kennzeichnet dies die Durchführung einer kritischen Operation. Durch Positionierung des Hardware-Gatters wird eine unteilbare Aktion durchgeführt.In step 2700 the interrogation mechanism is activated by the central processing unit at the end of the current command that is being executed by the active process. The first one asked by the query mechanism Question is whether external incident occurred during execution of the first command occurred. This is carried out with step 2702, which checks whether the hardware gate is locked. If the hardware gate is locked, as above, this marks the implementation of a critical operation. An indivisible action is performed by positioning the hardware gate.

piese unteilbare Aktion kann zum Beispiel in der Übertragung von Informationen in den Hauptspeicher oder in der Übertragung von Meldungen zu Semaphores bestehen. Wenn das Hardware-Gatter gesperrt ist, d.h.« wenn es auf binär Eins gesetzt ist, wird eine Verzweigung zu Schritt 2704 durchgeführt, in der der nächste Befehl des gerade aktivenProzesses ausgeführt wird. Daher legt das Datenverarbeitungssystem, wenn das Hardware-Gatter gesperrt ist, fest, daß der gerade durchgeführte Prozeß wichtiger als die Kommunikation eines Eingabe/Ausgabe-Geschehnisses ist.piese indivisible action can for example be in the transfer of information in the main memory or in the transmission of messages to semaphores. If the hardware gate is disabled, i.e., if it is set to binary one, a branch is made to step 2704, in which the next instruction of the currently active process will be executed. Therefore, the data processing system specifies when the hardware gate is locked, states that the process being carried out is more important than the communication of an input / output event is.

Wenn das Hardware-Gatter jedoch nicht gesperrt ist, wird eine Verzweigung zu Schritt 2706 durchgeführt und der System-Modus wird eingegeben. Dieser Schritt in 2706 initialisiert ein Flip-Flop imHilfsspeicher 1317a, das die Durchführung einer System-Kontrolloperation anzeigt. Der AbfragemechnismusHowever, if the hardware gate is not locked, will a branch is made to step 2706 and the system mode is entered. This step in 2706 initializes a flip-flop in auxiliary memory 1317a that the execution a system control operation. The query mechanism

509834/0830509834/0830

ist der Mechanismus, der diese System-Kontrolloperation durchführt. Genauer gesagt, der Abfragemechanismus ruft alle Eingabe-Ausgabe-Unterbrechungen und Ausnahme-Bedingungen ab und gibt die Verarbeitung dieser Geschehnisse frei.is the mechanism that performs this system control operation. More specifically, the polling mechanism calls all input-output interrupts and exception conditions and enables the processing of these events.

In Schritt 2708 überprüft der Abfragemechanismus das Interface-Flip-Flop des Eingabe/Ausgabe-Untersystems, um festzustellen, ob es positioniert ist. Wenn dies der Fall ist, ist eine Eingabe/Ausgabe-Unterbrechung vorhanden, und eine Verzweigung zu Schritt 2710 wird durchgeführt. Dieser Schritt gibt den Eingabe-ZAusgabe-Geschehnist-Verarbeitungsmechanismus frei, der in Fig.28 dargestellt und beschrieben ist.In step 2708, the query mechanism checks the interface flip-flop the input / output subsystem to determine whether it is positioned. If so, there is an input / output interrupt and a branch to step 2710 is performed. This step enables the input-output-event processing mechanism, which is shown and described in Fig.28.

Wenn das Interface-Flip-Flop jedoch nicht positioniert wurde, wird in Schritt 2712 ein Test durchgeführt, um festzustellen, ob eine Ausnahme-Bedingung festgestellt worden ist.Wenn dies der Fall ist, wird in Schritt 2714 eine Verzweigung zum Zentral-Ausnahme-Mechanismus durchgeführt.However, if the interface flip-flop has not been positioned, a test is made at step 2712 to see if an exception condition has been encountered. If so is the case, in step 2714 a branch is made to the central exception mechanism carried out.

Der Zentral-Ausnahme-Mechanismus gibt die Verarbeitung der Ausnahme-Bedingung frei und informiert eine Ausnahme-Verarbeitungs-Einrichtung. The central exception mechanism enables the processing of the exception condition and informs an exception processing facility.

Sowohl für die Eingabe/Ausgabe-Geschehnis-Verarbeitungs-Einheit wie auch für den Zentral-Ausnahme-Mechanismus wird bei Beendigung der Verarbeitung eines bestimmten abgerufenen Geschehnisses eine Rückverzweigung zum Abfragemechanismus und spezifischer zu Schritt 2708 durchgeführt. Aufgrund dieser Operation werden alle Eingabe/Ausgabe-Unterbrechungen und alle Ausnahmebedingungen verarbeitet, bevor der nächste Befehl des gerade aktiven Prozesses in der Zentraleinheit verarbeitet wird.Both for the input / output event processing unit and for the central exception mechanism at the end of the processing of a certain retrieved event, a branch back to the query mechanism and more specifically performed to step 2708. Because of this operation, all input / output interruptions and processed all exception conditions before the next instruction of the currently active process in the central processing unit is processed.

5O9834/Ö8305O9834 / Ö830

Da sowohl die Eingabe-ZAusgabe-Geschehnis-Verarbeitungs-Einheit wie auch der zentrale Ausnahme-Mechanismus als Teil ihrer Verarbeitung externer Geschehnisse eine simulierte V-Operation durchführen, können eine oder mehrere Meldungen in die entsprechenden Prozesse innerhalb der Zentraleinheit übertragen worden sein. Je nach Konfiguration der Semaphore, die über die simulierte V-Operation eine Meldung erhalten haben, können ein oder mehrere Prozesse der Zentraleinheit von der Semaphor-Meldungs-Warteschlange (O/M/S) in eine Bereit-Warteschlange (Q/PR/RDY) übertragen worden sein. Daher wird in Schritt 2716 der Dispatcher gestartet. Der in Fig.i4 dargestellte Dispatcher legt nun den Prozeß fest, der die Steuerung der Zentraleinheit übernehmen soll. Daher werden die Meldungen externer Ereignisse mit den internen Meldungen der Zentraleinheit integriert.Je nach Priorität der innerhalb der Bereit-Warteschlange befindlichen Prozesse, werden die wichtigeren Kommunikationen zuerst verarbeitet. "Wie ersichtlich ist, werden alle Meldungen der Zentraleinheit bedingt zugeführt. Diejenigen Meldungen, die entsprechend den nun im zentralen Verarbeitungs-Untersystem vorhandenen Bedingungen die größere Wichtigkeit besitzen, werden nun verarbeitet.Since both the input-output-event-processing unit as well as the central exception mechanism as part of their processing of external events Performing a simulated V-operation can send one or more messages to the corresponding processes within have been transferred to the central unit. Depending on the configuration of the semaphore that is simulated via the V-Operation have received a message, one or more processes of the central processing unit can use the semaphore message queue (O / M / S) must have been transferred to a ready queue (Q / PR / RDY). Hence, in step 2716 the dispatcher started. The one shown in Fig.i4 Dispatcher now defines the process that is to take control of the central unit. Hence the Messages of external events integrated with the internal messages of the central unit, depending on the priority of the processes in the ready queue, the more important communications are processed first. "As can be seen, all messages are conditionally fed to the central unit. Those messages that are accordingly the conditions now present in the central processing subsystem are of greater importance, are now being processed.

Eingabe/Ausgabe-Geschehnis-VerarbeitungseinheitInput / output event processing unit

Gemäß Fig.28 wird die Eingabe/Ausgabe-Geschehnis-Verarbeitungseinheit 2710 gestartet, wenn der Abfragemechanismus das Vorhandensein einer schwebenden Eingabe/ Ausgabe-Geschehnis-Meldung feststellt. Dies würde durch das Störungs-Flip-Flop gekennzeichnet, das wiederum eine Eingabe auslösen würde, die in einer Warteschlange logischer Kanäle für ein Geschehnis eingereiht würde, d.h. Q/LC/EVQ, s.Fig.19b. Diese Geschehnis-Meldungen werdenAs shown in Fig. 28, the input / output event processing unit 2710 started when the query mechanism detects the presence of an input / output incident message pending. This would go through the fault flip-flop, which in turn would trigger an input that is more logical in a queue Channels for an incident would be assigned, i.e. Q / LC / EVQ, see Fig. 19b. These incident messages will be

5-09834/U8305-09834 / U830

an ein Meldungs-Semaphor angegliedert, das sich im Hauptspeicher des zentralen Verarbeitungs-Untersystems befindet. Vor der Diskussion über die von der Eingabe/Ausgabe-Geschehnis-Verarbeitungseinheit 2710 durchgeführten Funktionen, würden die vom Eingabe/Ausgabe-Untersystem hinsichtlich der simuliertenV-Operation benutzten Tabellen beschrieben.attached to a message semaphore that is located in the main memory of the central processing subsystem. Before discussing that of the input / output event processing unit 2710 would be those of the input / output subsystem tables used with regard to the simulated V operation.

Nach der Erzeugung von Geschehnisbeschreibungs-Meldungen im Eingabe/Ausgabe-Untersystem, werden diese in einer geeigneten Logikkanal-Tabelle (LCT) gespeichert, die eine Vielzahl von Logikkanal-TabeLLeneintragungen besitzt (LCTE). Jede LCTE enthält eine Geschehnisbeschreibungsmeldung, die zu einem Prozeß in der Zentraleinheit mit Hilfe der simulierten V-Operation übertragen werden muß. Jede LCTE kann zwei Felder in einer Geschehnisbeschreibungs -Warteschlange Q/LC/EVQ besitzen. Für alle logischen Kanäle im Eingabe/Ausgabe-Untersystem ist eine einzige Q/LC/EVQ-Warteschlange vorhanden. Wenn zumindest eine Meldung aufgetreten ist, wird die Warteschlange gebildet, und ein Signal wird erzeugt, mit dem das Interface-Flop gesetzt wird, um das Auftreten eines Eingabe/Ausgabe-Geschehnisses anzuzeigen. Wenn die Warteschlange leer ist, ist kein Signal vorhanden, und das Interface-Flop befindet sich auf logisch Null. Wenn das Interface-Flop auf logisch Eins ist, gibt der Abfragemechanismus so viele simulierte V-Operationen zur Durchführung frei, wie zur Entleerung der Q/LC/EVQ-Warteschlange erforderlich sind; danach wird das Interface-Flop auf logisch Null gesetzt.After incident description messages are generated in the input / output subsystem, they are stored in a suitable logic channel table (LCT), which stores a large number of logic channel table entries owns (LCTE). Each LCTE contains an incident description message, which lead to a process in the central unit must be transferred using the simulated V operation. Each LCTE can have two fields in an incident description -Own queue Q / LC / EVQ. For all logical channels in the input / output subsystem there is a single Q / LC / EVQ queue. If at least one message has occurred, the A queue is formed and a signal is generated to set the interface flop to signal the occurrence an input / output event. If the queue is empty, there is no signal, and the interface flop is at logic zero. If the interface flop is a logical one, the interrogation mechanism gives as many simulated V-operations free to perform as to empty the Q / LC / EVQ queue required are; then the interface flop is set to logic zero.

Die vom Eingabe/Ausgabe-Untersystem zur LCTE übertragenen Meldungen werden in der Reihenfolge ihrer Ankunft in der Q/LC/EVQ-Warteschlange aufgereiht; d.h. entsprechend der Regel "erste herein, erste heraus" (FIFO). JedeThose transmitted from the input / output subsystem to the LCTE Messages are queued in the order in which they arrive in the Q / LC / EVQ queue; i.e. accordingly rule "first in, first out" (FIFO). Every

509834/0330509834/0330

simulierte V-Operation führt mehrere Funktionen an der eingereihtenMeldung durch. Zuerst wird die anfängliche Geschehnisbeschreibungs-Meldung aus Q/LP/EVQ entfernt. Danach versucht die simulierte V-Operation entweder diese Meldung an das, einer der Semaphor-Systembezeichnungen entsprechende Semaphor anzugliedern, d.h. Gi, Di für Zwischen- oder Abschluß-Meldungen, und Ga, Da für Markierungs-Meldungen oder um die Meldung an einen wartenden Prozeß weiterzuleiten, der von diesem Semaphor angegeben wird. Drittens, wenn die Meldung entweder an das Semaphor angegliedert oder an einen wartenden Prozeß gesendet, werden kann, wird sie aus Q/LC/EVQ und dem entsprechenden Speicherbereich der entsprechenden LCTE zurückgezogen. Viertens, wenn eine Meldung daran gehindert wird, sich aufgrund des Mangels an freien Meldungs-Verkettungen innerhalb des entsprechenden SD-Segments, an das entsprechende Semaphor anzugliedern, wird die Meldung aus Q/LC/EVQ zurückgezogen und an das freie Meldungs-Verkettungs-Semaphor des SD-Segments angegliedert, das dem ursprünglich mit der Meldung verbundenen Semaphor (Gi, Di) oder(Ga, Da) entspricht. Die Meldung verbleibt im Speicherbereich der LCTE, die Meldungs-Verkettungen werden jedoch ausgewechselt, d.h. diejenigen LCTE's, die mit den freien Meldungs-Verkettungs-Semaphores verbunden sind, werden in eine neue Warteschlange eingereiht, Q/LC/FLS, d.h. in die Warteschlange der logischen Kanäle am freien Verkettungs-Semaphor.Beide Warteechlangen, Q/LC/EVQ und Q/Lc/FLS, sind in Verbindung mit Fig.29a, in der die LCTE erklärt wird, leichter zu verstehen.simulated V-operation performs several functions on the queued message. First, the initial incident description message is removed from Q / LP / EVQ. After that, the simulated V-operation will either try this Message to the semaphore corresponding to one of the semaphore system names, i.e. Gi, Di for Intermediate or final reports, and Ga, Da for marking reports or to send the report to a forward the waiting process specified by this semaphore. Third, if the message is either attached to the semaphore or to a waiting one Process can be sent, it is made up of Q / LC / EVQ and the corresponding memory area of the corresponding LCTE withdrawn. Fourth, when a message is prevented from getting due to lack of free Message chains within the corresponding SD segment to be attached to the corresponding semaphore, the message is withdrawn from Q / LC / EVQ and attached to the free message chaining semaphore of the SD segment, which corresponds to the semaphore originally associated with the message (Gi, Di) or (Ga, Da). The message remains in the memory area of the LCTE, but the message chains are exchanged, i.e. those LCTEs that are connected to the free message concatenation semaphores are placed in a new queue, Q / LC / FLS, i.e. in the queue of the logical channels at the free concatenation semaphore. Q / LC / EVQ and Q / Lc / FLS, are easier to understand in connection with Fig. 29a, in which the LCTE is explained.

Das Eingabe/Ausgabe-Untersystem benutzt spezifische Tabellen, von denen eine den verschiedenen Logikkanälen entspricht, die einen Kommunikations-Pfad zum Hauptspeicher darstellen. Die Eingabe/Ausgabe-Tabellen befinden sich hinter derThe input / output subsystem uses specific tables, one of which corresponds to the different logic channels, which represent a communication path to the main memory. The input / output tables are located behind the

SQ933V/083QSQ933V / 083Q

absoluten Adresse 0, jedoch vor dem bereits in F±g.12 dargestellten Basis-Adreßregister (BAR). .Die in Fig.29a dargestellte LCTE ist jedoch, wie in Fig.29b dargestellt, eine Eingabe in die logischen Kanaltabellen (LCT).absolute address 0, but before that already in F ± g.12 Basic Address Register (BAR) shown. The one shown in Fig. 29a However, as shown in FIG. 29b, LCTE is an entry in the logical channel tables (LCT).

Jede Logikkanal-Tabelleneintragung besteht aus 16 Worten und wird benutzt, um Informationen bezüglich des Logikkanals zusätzlich zu Informationen, die das Kanalprogramm identifizieren, Zwischen-oder Geschehnis-Abschlußmeldungen und Markierungs-Meldungen zu speichern.Each logic channel table entry consists of 16 words and is used to provide information relating to the logical channel in addition to information relating to the channel program identify, store intermediate or incident completion messages, and marker messages.

Nur diejenigen Felder der LCTE, die in den Rahmen dieser Erfindung gehören, werden hier erläutert.Daher werden die vom Programm unabhängigen Informationen in Wort 1 gespeichert und beinhalten im ersten Byte den LC-Status und die Bezeichnung des Markierungs-Semaphor Ga, Da in den Bytes bis 3 von Wort 1.Only those fields of the LCTE that are within the scope of this Invention are explained here. Therefore, the Information that is independent of the program is stored in word 1 and contain the LC status and the designation of the marker semaphore Ga, Da in the bytes in the first byte to 3 of word 1.

In den Worten 8 bis 11 ist die zu übertragende Zwischen- oder Geschehnis-Abschlußmeldung dargestellt. Genauer ausgedrückt, sind die ersten beiden Bytes von Wort 8 der Hinweis "nächste Verkettung" (NL) der die Warteschlange identifiziert, in der sich die Logikkanal-Täbelleneintragung befindet. Wie bereits beschrieben kann es sich hierbei entweder um die Geschehnis-Bezeichnungs-Warteschlange Q/L/EVQ handeln, die auftritt, wenn eine Meldung zu Anfang in die Tabelle übertragen wird, oder um eine freie Verkettungs-Semaphor-Warteschlange Q/LC/FLS, die aufgebaut wird, weil die Meldung nicht im entsprechenden Semaphor gespeichert werden kann. Das Byte 2 von Wort 8 definiert den Geschehnis-Typ, der einem in Fig.16 beschriebenen Begründungs-Feld für Eingabe/Ausgabe-Operationen entspricht. Das Begründungs-FeId gibt die Art undIn words 8 to 11, the intermediate message to be transmitted is or event completion message. More precisely, the first two bytes of word 8 are the Note "next chaining" (NL) which identifies the queue in which the logic channel table entry is located is located. As already described, this can either be the event designation queue Q / L / EVQ, which occurs when a message is initially transferred to the table, or at a free concatenation semaphore queue Q / LC / FLS, which is built up because the message cannot be saved in the corresponding semaphore. Byte 2 of Word 8 defines the event type, which is a reason field described in Fig. 16 for input / output operations is equivalent to. The justification field gives the type and

509834/0830509834/0830

_ 202 ._ 202.

Weise an, in der die Eingabe/Ausgabe-Operation zu beenden ist; eskann außerdem Informationen für einen normalen oder nicht normalen Abschluß enthalten. Im vierten Byte von Wort ist die erste Hälfte des Bytes die Meldungs-Priorität, die der in der Eingabe /Ausgabe-Operation beschriebenen Kanal- · Programm-Priorität entspricht. Wenn diese Meldung einem Meldungs-Semaphor zugeführt wird, dessen Warteschlange hinsichtlich der Priorität festgelegt ist, identifiziert das Feld die Position der Meldung innerhalb der Q/M/S-iiarteschlange. Das nächste Hälbbyte ist das TAG-PeId, welches kennzeichnet, daß diese Meldung das Ergebnis einer Eingabe/ Ausgabe-Operation ist. Das Wort 9 von LCTE enthält spezifische Informationen zur Kennzeichnung der Logikkanal-Nummer (LC) und anderer Informationen, die nicht in den Rahmen dieser Erfindung fällen. Das Wort 10 enthält den Kanalbefehl-Eingabehinweis,der die Zwischen- oder Abschluß-Geschehnis-Bezeichnungsmeldung erzeugt.Way in which to end the input / output operation is; it can also provide information for a normal or not included normal closure. In the fourth byte of Word, the first half of the byte is the message priority, the corresponds to the channel · program priority described in the input / output operation. If this message is a Message semaphore is fed to its queue with regard to the priority is set, the field identifies the position of the message within the Q / M / S ii queue. The next half-byte is the TAG-PeId, which indicates that this message is the result of an input / Output operation is. Word 9 of LCTE contains specific information to identify the logic channel number (LC) and other information that does not fall within the scope of this invention. The word 10 contains the Channel command entry hint that contains the intermediate or final occurrence label message generated.

Das Wort 11 kann den Status sowohl der Eingabe/Ausgabe-Einheit als auch den des IOC enthalten.Word 11 can contain the status of both the input / output unit and the IOC.

Die Worte 8 bis 11 beinhalten die Meldung, die mit Hilfe der simulierten V-Operation zu einem Semaphor übertragen wird, das die System-Adresse Gi, Di besitzt. Die Worte 12 bis 15 beinhalten eine Markierungs-Meldung, die einem Semaphor zugeführt wird, dessen Syst^n-Adresse Ga, Da in Wort 1 der LCTE-Tabelle angegeben ist.The words 8 through 11 contain the message, the V-operation is transferred to a semaphore simulated using de r, the system address Gi, Di has. Words 12 to 15 contain a marking message which is fed to a semaphore whose system address Ga, Da is specified in word 1 of the LCTE table.

In der Markierungs-Meldung im ersten Halbwort befindet sich ein Feld "nächste Verkettung", das seine Position innerhalb der LCTE angibt und über die Tatsache Aufschluß gibt, ob es sich in der Q/LC/EVQ-oder Q/LC/FLS-WartescMange befindet. Das Begründungs-Feld, d.h. Byte 3 von Wort 12, hat mit der dargestellten Codierung 10001101 eine festgelegte Abschluß-Meldung. Dieses Feld kennzeichnetIn the marking message is located in the first half-word a "next concatenation" field, which indicates its position within the LCTE and provides information about the fact indicates whether it is in the Q / LC / EVQ or Q / LC / FLS waiting area is located. The reason field, i.e. byte 3 of word 12, has the code 10001101 shown a defined completion message. This field indicates

509834/0830509834/0830

diese Semaphor-Meldung als Markierungs-Typ-Meldung. Das Prioritäts-Feld, das aus den ersten vier Bits des vierten Bytes besteht, wird auf eine Codierung 1111 positioniert, die die höchste Priorität kennzeichnet. Das Meldungs-TAG ist das gleiche wie die Zwischen- oder Abschlußmeldung, da dies eine Eingabe/Ausgabe-Meldung kennzeichnet In Wort 13 sind die ersten beiden Bytes die gleichen, wie bei den bereits beschriebenenMeldungen; die letzten beiden Bytes kennzeichnen jedoch die Bezeichnung der Einheit, die die Markierungs-Meldung erzeugt. Da eine Markierungs-Meldung ein Geschehnis kennzeichnet, das einer spezifischen Peripherie-Einheit zugeordnet ist, jedoch nicht zur Kanalprogramm-Ausführung zurückgeleitet wird, sind die im Zwischen- oder Abschluß-Geschehnis erzeugten Felder, nämlich das Restzählwert-Feld und das laufende LCTE-Adreß-Feld nicht erforderlich.Die Bezeichnung der Einheit ist jedoch erforderlich, und 'wort 13 identifiziert die Einheit. Das Wort 15 ist mit dem oben beschriebenen Wort 11 identisch. Bei Markierungs-Meldungen werden alle erforderlichen Informationen in nur drei Worten (den hier dargestellten Worten 12, 13 und 15) erzeugt. Daher wird Wort 14 zur Speicherung des Semaphor verwendet, das sich auf das Zwischen- oder Abschlußgeschehnis bezieht und sich daher in den letzten drei Bytes befindet.this semaphore message as a marker type message. The priority field, consisting of the first four bits of the fourth Bytes is positioned on coding 1111, which indicates the highest priority. The message TAG is the same as the interim or final message, as this indicates an input / output message In word 13 the first two bytes are the same as in the messages already described; the last two However, bytes identify the designation of the unit that generated the marking message. There is a marking message identifies an event that is assigned to a specific peripheral unit, but not for Channel program execution is returned, are the fields generated in the intermediate or final event, namely the residual count field and the current LCTE address field are not required Unit is required, however, and 'word 13 identifies the unit. The word 15 is similar to that described above Word 11 identical. In the case of marking messages, all the required information is given in just three words (the words 12, 13 and 15 shown here) are generated. Therefore word 14 is used to store the semaphore, the refers to the intermediate or final event and is therefore in the last three bytes.

Alle nun beschriebenen LCTE-Eihgaben bilden anfänglich ein oder zwei Felder in der Geschehnis-Bezeichnüngs-Warteschlange Q/LC/EVQ, d.h. Markierungs- und/oder Zwischen-Abschluß-Typen. Jede Eingabe kennzeichnet das Auftreten eines Eingabe/Ausgabe-Geschehnisses, das eine Kommunikation zu einemProzeß in der Zentraleinheit erfordert. Diese Kommunikation kann mit Hilfe der Worte 8 bis 11 oder der Worte 12 bis 15 je nach Art des zu meldenden Geschehnisses durchgeführt werden. Bei einer Zwischen-All of the LCTE gifts now described form initially one or two fields in the event designation queue Q / LC / EVQ, i.e. marking and / or Intermediate degree types. Every entry marks that Occurrence of an input / output event that requires communication to a process in the central processing unit. This communication can be carried out using words 8 to 11 or words 12 to 15 depending on the type of message to be reported Incident to be carried out. In an interim

609834/0830609834/0830

oder Abschlußmeldung wird die simulierte V-Operation am Gi-Di-Semaphor durchgeführt. Bei einer Markierungs-Meldung wird die V-Operation am Ga-Da-Semaphor durchgeführt. Auf diese Weise kennzeichnet die Systembe-" zeichnung Gi, Di das Semaphor, an das alle Meldungen bezüglich des Kanalprogramms zu senden sind. Die System bezeichnung Ga, Da kennzeichnet das Semaphor, an das alle Meldungen bezüglich einer spezifischen Peripherie-Einheit zu senden sind.or the final message will be the simulated V-operation on Gi-Di semaphore performed. In the event of a marking message, the V operation is carried out on the Ga-Da semaphore. In this way, the system designation Gi, Di identifies the semaphore to which all messages are to be sent with regard to the channel program. The system designation Ga, Da denotes the semaphore to which all messages relating to a specific peripheral unit are to be sent.

In Fig.29b ist eine Vielzahl von Logikkanal-Tabelleneintragungen dargestellt. Da die LCT-alle LCTE-Eintragungen enthält, sind sowohl die Q/LC/EVQ wie auch die Q/LC/FLS abgebildet. Die Warteschlange Q/LC/EVQ ist bereits erläutert worden und enthält eine Geschehnis-Bezeichnungs-Meldungs-Warteschlange Q/LC/EVQ, die erfaßt wird. Wie in Fig.19a dargestellt, wird eine Eingabe in die Position 2F des Scratch-Pad-Speichers durchgeführt, die den Kopf von Q/LC/EVQ kennzeichnet. Daher ist diese Eingabe ein Hinweis auf die erste LCTE-Eintragung in der Warteechlange. Diese absolute Adresse wird aus der Position 2E abgegriffen und ihre Adresse wird zum Zugriff auf die erste Logikkanal-Tabelleneintra.gung verwendet. Der Hinweis war in den Scratch-Pad-Speicher übertragen worden, als das asynchrone Eingabe/Ausgabe-Untersystem eine Meldung in die Warteschlange eingereiht hatte.In Fig. 29b is a plurality of logic channel table entries shown. As the LCT all LCTE entries contains, both the Q / LC / EVQ and the Q / LC / FLS are shown. The Q / LC / EVQ queue has already been explained and contains an incident label message queue Q / LC / EVQ that is captured. As shown in Fig. 19a, an input is made in the position 2F of the scratch pad memory, which identifies the head of Q / LC / EVQ. Hence this input a reference to the first LCTE entry in the Waiting line. This absolute address is picked up from position 2E and its address is used for access used on the first logic channel table entry. The notice had been transferred to the scratch pad memory as the asynchronous input / output subsystem had a message queued.

Gemäß Fig.2B wird in Schritt 2802 die Frage gestellt, ob es sich um ein Markierungs-Geschehnis handelt. Wenn dies der Fall ist, wird in Schritt 2804 die Ga-Da-Adresse des Semaphor, für das die Meldung bestimmt ist, aus LCTE abgegriffen. Wenn es sich nicht um eine Markierungs-, Meldung handelt, wird in Schritt 2806 die Gi-Di-Bezeichnung des Semaphor, für das die Meldung bestimmt ist, aus Wort 14 der LCTE abgegriffen.According to FIG. 2B, the question is asked in step 2802, whether it is a marking incident. If so, in step 2804 becomes the Ga-Da address of the semaphore for which the message is intended, tapped from LCTE. If it is not a marking, Message is, in step 2806 the Gi-Di designation of the semaphore for which the message is intended is selected Word 14 of the LCTE tapped.

50983Λ/083050983Λ / 0830

In Schritt 2808 wird die erste LCTE aus der Q/LC/EVQ-Warteschlange abgetrennt,indem die Position LE des Scratch-Pad-Speichers geändert wird, um einen neuen Kopf der LCTE- Tabelle zu kennzeichnen und indem das Feld "nächste Verkettung" von LCTE erfaßt wird. Daher ist die LCTE-Eintragung entfernt worden und ihre Meldung muß an das von der GD-Systembezeichnung gekennzeichnete Meldungs-Semaphor angegliedert werden. In Schritt 2810 wird die Meldung in die Positionen ¥C4 bis WC7 des Scratch-Pad-Speichers übertragen.Wenn es sich um eine Zwischenmeldung handelt, werden die Worte 8 bis 11 in diese Position übertragen; wenn es sich dagegen um eine Markierungs-Meldung handelt, werden die Worte 8 bis 15 dorthin übertragen.In step 2808, the first LCTE is removed from the Q / LC / EVQ queue separated by the position LE of the Scratch pad memory is changed to identify a new header of the LCTE table and the "Next concatenation" field is captured by LCTE. Therefore the LCTE entry has been removed and theirs Message must be attached to the message semaphore identified by the GD system name. In In step 2810 the message is transferred to positions ¥ C4 to WC7 of the scratch pad memory. If If it is an interim message, words 8 to 11 are transferred to this position; if if, on the other hand, it is a marking message, words 8 to 15 are transferred there.

In Schritt 2812 wird die Meldung nun zu dem entsprechenden Semaphor übertragen, das über eine simulierte V-Operation von der Systembezeichnung her gekennzeichnet wurde. Bei Abschluß der V-Operation wird der Abfragemechanismus wieder gestartet,und seine nächste LCTE-Eingabe (wenn vorhanden) wird übertragen.At step 2812 the message now becomes the appropriate one Semaphore transmitted via a simulated V-operation was identified by the system designation. When the V operation is completed, the polling mechanism restarted and its next LCTE entry (if any) is transmitted.

Fig.28 ermöglicht eine Übersicht der bei einer Geschehnisbezeichnungsmeldung durchgeführten Schritte, wenn eine Kommunikation mit einem Prozeß in der Zentraleinheit erforderlich ist. Die in Fig.28 dargestellten Schritte werden detaillierter in den Fig.30 bis 32 erklärt, die zusammen mit den Fig.20 bis 26 die Operationen darstellen, die zur Umwandlung der Meldung des entsprechenden Prozesses erforderlich sind.FIG. 28 enables an overview of the event designation report steps performed when communication with a process in the central processing unit is required is. The steps illustrated in Fig. 28 are explained in more detail in Figs. 30 to 32, which together with FIGS. 20 to 26 show the operations which are required for converting the message of the corresponding process are.

Simulierte V-Operation an einem Semaphor mit positivem SCT-FeIdSimulated V operation on a semaphore with a positive SCT field

Es wird nochmals daran erinnert, daß ein V-Befehl eine Sendeoperation ist, die eine Übertragung einer Meldung zu einemIt is recalled again that a V command is a send operation is that a transmission of a message to a

509834/0830.509834/0830.

Zwischenpunkt ermöglicht, der als Semaphor bezeichnet wird. Das Semaphor speichert die Daten, bis ein anderer Prozeß in der Lage ist, diese aufzugreifen. Vorher wurde der V-Befehl von dem Prozeß durchgeführt, der die Kontrolle über die Zentraleinheit besaß·. Eine simulierte V-Operation ist fast identisch mit dem V-Befehl, da sie Informationen zu einem anderen Prozeß oder einer beliebigen Gruppe von Prozessen in der Zentraleinheit sendet. Sie unterscheidet sich vom V-Befehl insofern, als der Prozeß, der die Zentraleinheit steuert, ein Pseudo-Prozeß ist, d.h. der 'V-Befehl wird entweder vom Abfragemechanismus oder vom allgemeinen Ausnahme-Mechanismus durchgeführt. Da zwischen V-Operationen und V-Befehlen nur ein Semantik-Befehl vorhanden ist, wird dieser aus Zeitgründen als V-Befehl betrachtet, wenn der Mechanismus versucht, die Meldung zu übertragen.Allows intermediate point, which is referred to as a semaphore. The semaphore stores the data until another Process is able to take it up. Previously, the V command was performed by the process that is controlling possessed via the central unit ·. A simulated V operation is almost identical to the V instruction in that it contains information about another process or any group of Processes in the central unit. It differs from the V instruction in that the process that created the Central unit controls, is a pseudo-process, i.e. the 'V command is either from the query mechanism or from the general exception mechanism implemented. Between V-operations and V-commands only one semantic command is present, this is regarded as a V command for reasons of time when the mechanism tries to receive the message transferred to.

Die wesentlichen Besonderheiten der vom Abfragemechanismus simulierten V-Operation sind: (1) die Status-Aktualisierung des Logikkanals bei erfolgreicher Durchgabe der Meldung, im Gegensatz zur Status-Aktualisierung des Prozesses, der von demProzeß durchgeführt wurde, der die Kontrolle über die Zentraleinheit hatte ; (2) die Eingliederung des Logikanals in Q/LC/FLS, wenn keinProzeß aufgefudnen wird, der am entsprechenden Semaphor wartet und keine verfügbaren freien Meldungs-Verkettungen mit dem freien Verkettungs-Semaphor (Q/FL/FLS) im entsprechenden SD-Semaphcr verbunden sind, im Gegensatz zur Eingliederung eines Prozesses in Q/PR/FLS bei der Feststellung, daß keine freien Meldungs-Verkettungen verfügbar waren, und (3) das Überprüfen des G-Feldes des freien Verkettungs-Semaphor im entsprechenden SD-Segment, wennThe main peculiarities of the V-operation simulated by the query mechanism are: (1) the status update of the logic channel on successful transmission of the message, in contrast to the status update the process performed by the process that was in control of the central unit; (2) the integration of the logic channel in Q / LC / FLS, if no process is found that is connected to the corresponding Semaphore waiting and no available free message chains are connected to the free concatenation semaphore (Q / FL / FLS) in the corresponding SD semaphore, in contrast for the integration of a process in Q / PR / FLS when it is determined that no free message chains are available and (3) checking the G field of the free concatenation semaphore in the corresponding SD segment, if

509834/0830509834/0830

das Zählfeld des Logikkanals (CCT) niedriger als Null ist. In den Fig.20 bis 26 wurde bereits angegeben, daß das Feld überprüft wurde; die Operation, wurde jedoch nicht beschrieben. the count field of the logic channel (CCT) is lower than zero. In FIGS. 20 to 26 it has already been indicated that the field has been checked; the operation, however, has not been described.

Zusätzlich sind sowohl hinsichtlich des Eingabe/Ausgabe-Geschehnisses als auch der Ausnahmebedingungen zwei zusätzliche Unterschiede festgestellt worden. Der erste Unterschied besteht darin, daß der Inhalt der Meldung erzeugt und von der simulierten V-Operation durchgegeben wird. Der Inhalt der Meldung für die Eingabe/Ausgabe-Unterbrechung ist hinsichtlich Fig.29 und der Beschreibung der LCTE-Tabelle beschrieben worden. Zweitens besteht ein Unterschied zwischen der Adresse des Semaphor und der für die P- und V-Befehle beschriebenen Adresse. Jedes Semaphor kann zwei Bezeichnungen besitzen, d.h. eine örtliche Bezeichnung SEG, SRA und eine System-Bezeichnung G, 0. Es wird nochmals daran erinnert, daß die örtliche Bezeichnung SEG, SRA zur Identifizierung des Semaphor für den Prozeß verwendet wurde, der die Kontrolle über die Zentraleinheit besaß . Für die Zwischen-Abschluß- und Markierungs-Meldungen ist eine GD-System-Bezeichnung verfügbar.In addition, both in terms of the input / output event and the exception conditions, two additional differences were found. The first difference consists in that the content of the message is generated and passed on by the simulated V-operation. The content of the message for the input / output interruption is with regard to Fig. 29 and the description of the LCTE table. Second, there is a difference between the address of the semaphore and the address described for the P and V commands. Each Semaphore can have two names, i.e. a local name SEG, SRA and a system name G, 0. It is recalled that the local designation SEG, SRA is used to identify the semaphore was used for the process that was in control of the central processing unit. For the interim and marking messages, a GD system designation is available.

Die System-Bezeichnung eines Semaphor ist die GD-Adresse des Semaphor im entsprechenden SD-Segment. Dies ergibt sich daraus, daß wie in den Fig. 4, 12 und 17 dargestellt, die G-Segmenttabelle (G-Tabelle) G-Segment-Descriptors enthält. Die G-Segment-Descriptors besbhreiben die allgemeinen System-Segmente. Da sich nur eine G-Segment-Tabelle im Datenverarbeitungs-System befindet, werden die Größe und Adresse der G-Segment-Tabelle vom Inhalt des G-Tabellenwortes (GTW) bestimmt. Dieses Wort befindet sich in der Adresse BAR + 4 in der System-Basis.The system designation of a semaphore is the GD address of the semaphore in the corresponding SD segment. This gives derives from the fact that, as shown in FIGS. 4, 12 and 17, the G-segment table (G-table) has G-segment descriptors contains. The G-segment descriptors describe the general system segments. Since there is only one G-segment table is located in the data processing system, the size and address of the G-segment table are determined by the content of the G-table word (GTW) determined. This word is in the address BAR + 4 in the system base.

509834/08 30509834/08 30

Der ebenfalls in der System-Basis befindliche G-Tabellenhinweis gibt die absolute Adresse der G-Tabelle an. Beim Zugriff zu dieser G-Tabelle ermöglicht die G-Nummer die Verschiebung in die G-Segment-Tabelle. In der G-Segment-Tabelle kennzeichnet der identifizierte G-Segment-Descriptor das benutzte SD-Segment. Die D-Nummer ermöglicht die Verschiebung zum SD-Segment und die Auswahl des entsprechenden Semaphor, für welches die Meldung bestimmt ist.The G table note also in the system base indicates the absolute address of the G table. When accessing this G table, the G number enables the shift in the G-segment table. In the G-segment table the identified G segment descriptor identifies the SD segment used. The D number enables the shift to the SD segment and the selection of the corresponding semaphore for which the message is determined.

Da die System-Bezeichnung G, D wie in Fig.17 dargestellt, unabhängig von der Örtlichen Verfahrens-Bezeichnung SEG, SRA entwickelt wird, erfolgt die Eingabe eines simulierten V-Befehls über einen anderen Eingabepunkt,Fig.20, als die Entwicklung der Semaphor-Adresse aus der JP-Bezeichnung.Since the system designation G, D as shown in Fig. 17, Regardless of the local process designation SEG, SRA is developed, the input is a simulated one V command via a different input point, Fig. 20, than the Development of the semaphore address from the JP designation.

Fig.20 beschreibt genauer die Semaphor-Descriptor-Erfassungsroutine, die von jedem P- und V-Befehl ausgelöst wird. Zum Zeitpunkt, zu dem diese Unterroutine abgerufen wird, ist ein Operations-Code in die Befehls-Erfassungseinheit 1318 übertragen worden, um einen simulierten V-Befehl zu kennzeichnen. Da die Systembezeichnung für die Eingabe/Ausgabe-Unterbrechung oder die Ausnahme? bedingung bereits erzeugt wurde, ist keine Überprüfung und Erfassung des Semaphor-Descriptors erforderlich. Daher wird die Semaphor-Erfassungsroutine bei Schritt 2019 (Fig.20b) mit der absoluten Adresse des Semaphor eingegeben, für das die Meldung bestimmt ist. Diese absolute Adresse ist die Systembezeichnung G, D. In Schritt 2020 werden, wie in Fig.i6b dargestellt, beide Worte des Meldungs-Semaphor aus dem Hauptspeicher abgegrifffen und in die Positionen WC4 und WC5 des Scratch-Pad-Speichers übertragen. Die gleichen Schritte 2021 bis 2026 werden wie bei einem V-Befehl durchgeführt und die Antwort auf die Frage in Schritt 2026 lautet "ja" und ermöglichtFIG. 20 describes in more detail the semaphore descriptor acquisition routine which is triggered by each P and V command. At the time this subroutine is called, an operation code has been transferred to the command acquisition unit 1318 to identify a simulated V command. As the system name for the input / output interruption or the exception? condition has already been generated, the semaphore descriptor does not need to be checked and recorded. The semaphore detection routine is therefore entered in step 2019 (FIG. 20b) with the absolute address of the semaphore for which the message is intended. This absolute address is the system designation G, D. In step 2020, as shown in Fig.i6b, both words of the message semaphore are tapped from the main memory and transferred to positions WC4 and WC5 of the scratch pad memory. The same steps 2021 to 2026 are performed as for a V command, and the answer to the question in step 2026 is "yes" and enabled

509834/0830509834/0830

so die Durchführung von Schritt 2500 von Fig.25a.thus performing step 2500 of FIG. 25a.

Wenn vorausgesetzt wird, daß das Meldungs-Semaphor einen SCT-Zählwert besitzt, der geringer als Null ist, wird eine Verzweigung zu Schritt 2508 durchgeführt. Da der simulierte V-Befehl für ein Meldungs-Semaphor bestimmt ist, würde Schritt 2508 mit "nein" beantwortet. Daher wird Schritt 2510 durchgeführt und würde ebenfalls mit "nein" beantwortet, da der simulierte V-Befehl kein Testbefehl ist. Ein simulierter V-Befehl kann kein Testbefehl sein, da er nicht negiert werden kann, wenn das SCT-FeId des Semaphor positiv ist.If the message semaphore is assumed to have a SCT count that is less than zero a branch is taken to step 2508. Since the If the simulated V command is intended for a message semaphore, step 2508 would be answered with "no". Hence, step 2510 and would also be answered with "no", since the simulated V command is not a test command. A simulated V command cannot be a test command because it does not negate if the SCT field of the semaphore is positive.

In der FAR-Unterroutine, Schritt 2513 wird die Meldung, die bereits in die Positionen WE4 bis WE7 des Scratch-Pad-Speichers übertragen wurde, in die allgemeinen Register GRO bis GR3 des Prozesses übertragen, der sich im Kopf der Warteschlange der am Semaphor (Q/pR/S) v/artenden Prozesse befindet. Zusätzlich wechselt die FAR-Unterroutine den Prozeß-Üteuerblock des Prozesses ., der die Meldung empfängt, so daß der Dispatcher in Schritt 2515 diesen Prozeß in die Bereit-Warteschlange Q/PR/RDY einreihen kann. Die Priorität dieses Prozesses wäre dann bestimmend für die Zwecke des Prozesses, der die Kontrolle über die Zentraleinheit übernimmt.In the FAR subroutine, step 2513, the message that has already been transferred to positions WE4 to WE7 of the scratch pad memory is transferred to the general registers GRO to GR3 of the process that is located in the head of the queue of the semaphore ( Q / pR / S) v / related processes. In addition, the FAR subroutine changes the Process Ü expensive block of the, process. Which receives the message, so that the dispatcher may be classified in step 2515 the process in the ready queue Q / PR / RDY. The priority of this process would then determine the purposes of the process that takes control of the central unit.

Nach Abschluß der FAR-Unterroutine in Schritt 2513 würde vor der Ausführung von Schritt 2514 ein Test durchgeführt. Dieser Schritt würde ein Flip-Flop im Hilfsspeicher 1319 überprüfen, um festzustellen, ob der simulierte V-Befehl eine Eingabe/Ausgabe simulierte V-Operation war. Wenn das Flop positioniert wird, wird eine Rückverzweigung zu Q/LC/EVQ durchgeführt, bei der die nächste Logikkanal-Tabelleneintragung abgegriffen wird, auf die von dem in der Position LE des Scratch-Pad-Speichers enthaltenen Kopfhinweises hingewiesen wird.After completing the FAR subroutine in step 2513, a test would be performed prior to performing step 2514. This step would check a flip-flop in auxiliary memory 1319 to see if the simulated V command was an input / output simulated V-operation. If that If the flop is positioned, it will branch back to Q / LC / EVQ carried out at which the next logical channel table entry is tapped, referred to by the header contained in the position LE of the scratch pad memory will.

S09834/0830S09834 / 0830

_ 210 -_ 210 -

Simulierte V-Operation an einem Semaphor mit einem nicht-positiven SCT-FeIdSimulated V operation on a semaphore with a non-positive SCT field

Wenn die Antwort in Schritt 2500 von Fig.25a anzeigte, daß das SCT-FeId des Meldungs-Semaphor entweder gleich oder größer als Null war, wird eine Verzweigung zur V-positiven Unterroutine (Fig.26a) durchgeführt. An diesem Punkt ist bekannt, daß das Semaphor keine Warteschlange von Prozessen besitzt, die auf eine Meldung warten, d.h. Q/PR/S und kann eine Warteschlange von Meldungen beinhalten, Q/M/S, wenn der Zählwert seines SCT-Feldes größer als Null ist. In Flg.16a würde die erste Frage in Schritt 2600 mit "nein" beantwortet werden, da es sich um einen V-Befehl für ein Meldungs-Semaphor handelt.Daher werden die Schritte 2605 und 2608 durchgeführt. In Schritt 2608 wird ein Flop im Hilfsspeicher 1317 überprüft, um festzustellen, ob es sich um einen simulierten V-Befehl handelt. Wenn dies der Fall ist, wird eine Verzweigung zu Schritt 2608a und der in Fig.30.dargestellten SVP-Unterroutine durchgeführt. Diese. Unterroutine gibt ein Absenden der Meldung zum Semaphor und der Q/M/S-Warteschlange frei.If the answer in step 2500 of Figure 25a indicated that the SCT field of the message semaphore is either the same or was greater than zero, a branch to the V-positive subroutine (Fig. 26a) is carried out. At this point it is known that the semaphore is not a queue of processes that are waiting for a message, i.e. Q / PR / S and may contain a queue of messages, Q / M / S if the Count of its SCT field is greater than zero. In wing 16a the first question in step 2600 would be answered with "no" since it is a V command for a message semaphore Therefore, steps 2605 and 2608 are performed. In step 2608 a flop in auxiliary memory 1317 is checked to see if it is a simulated V command acts. If so, a branch is made to step 2608a and the SVP subroutine shown in FIG carried out. These. Subroutine enables the message to be sent to the semaphore and the Q / M / S queue.

In der in Fig.30 dargestellten simulierten V-positiven Unterroutine stellt der Schritt 3000 die Frage, ob freie Meldungs-Verkettungen verfügbar sind, d.h. ob FLQP des freien Verkettungs-Semaphor gleich Null ist. Vorher wurde das freie Verkettung-Semaphor des SD-Segments bei Schritt 2401 von der FLSC-Unterroutine (Fig.26a) erfaßt. Das FLQP-FeId ist in der Scratchpad-Position WCC gespeichert worden und wird nun von Schritt 3000 überprüft. Wenn freie Meldungs-Verkettungen verfügbar sind, d.h. die Antwort lautet "nein", wird eine simulierte V-Operation durchgeführt, die genau dem V-Befehl entspricht, d.h. eine Verzweigung zu B vom VP wird durchgeführt, die in Fig.26b als Schritt 2612 dargestellt ist. Durch dieseIn the simulated V-positive subroutine shown in FIG Step 3000 asks whether free message chains are available, i.e. whether FLQP of the free chain semaphore equals zero. Previously, the SD segment free chaining semaphore was obtained by the FLSC subroutine at step 2401 (Fig.26a) detected. The FLQP field is in the scratchpad position WCC has been saved and is now checked by step 3000. If free message chains are available are, i.e. the answer is "no", a simulated V operation is carried out, which corresponds exactly to the V command, i.e. a branch to B from the VP is carried out, which in 26b is shown as step 2612. Through this

509834/0830509834/0830

Verzweigung wird die Meldung, die entweder in der LCTE oder im zentralen Ausnahme-Mechanismus erzeugt wurde, von den Scratch-Pad-Positionen WE4 bis WE7 zu der verfügbaren freien Meldungsverkettung übertragen. Zwischenzeitlich wird die -Meldungs-Verkettung zur Semaphor-¥arte schlange O/M/S übertragen, in der sie auf einen Prozeß wartet, der Informationen anfordert. Auf diese Weise überträgt die simulierte V-positive Unterroutine durch diese Verzweigung die Meldung zum Semaphor. In Schritt 2622 (Fig.26b) würde der nächste Befehl eine Rückkehr zum System-Geschehnis-Abfragemechanismus bewirken, der, wenn vorhanden, die nächste simulierte V-Operation durchführt. Wenn keine weiteren simulierten V-Befehle. vorhanden sind, wird der nächste Befehl des Prozesses durchgeführt, der die Kontrolle über die Zentraleinheit besitzt.Branch is the message that is either in the LCTE or was generated in the central exception mechanism from the scratch pad positions WE4 to WE7 are transferred to the available free message chain. In the meantime, the message chaining to the semaphore ¥ arte queue O / M / S, where it waits for a process requesting information. on this way the simulated V-positive subroutine transmits through this branch the message to the semaphore. In step 2622 (Fig. 26b), the next instruction would cause a return to the system incident query mechanism, which, if present, performs the next simulated V-operation. If no further simulated V commands. are present, the The next command of the process that has control of the central processing unit is carried out.

Simulierte V-Operation an Semaphores, wenn keine freien Meldungs-Verkettungen verfügbar sind.Simulated V operation on semaphores if there are no free ones Message chains are available.

Wenn die Antwort auf die Frage in 3000 (Fig.30a) "ja" ist, und dadurch angezeigt wird, daß keine freien Meldungs-Verkettungen verfügbar sind, wird Schritt 3004 durchgeführt. Schritt 3004 stellt die Frage, ob es sich um eine Eingabe/ Ausgabe-Operation handelt. Wenn dies nicht der Fall ist, muß es sich um eine Operation des zentralen Ausnahme-Mechanismus handeln. Da der zentrale Ausnahme-Mechanismus keine freien Meldungs-Verkettungen zur Eingliederung der Meldung erzeugt, tritt in Schritt 3OO6 eine Ausnahme "fehlende Meldungs-Verkettung" auf.Dies ist eine System-Ausnahme, da der System-Modus in Schritt 2706 von Fig.27 gestartet wurde, und Schritt 3006 erzeugt einen "System Check"-Status, der modellabhängige Diagnostiken erzeugt. Auf diese Weise beendet Schritt 3006 die simulierten V-Befehle für Ausnahme-Bedingungen. Der Rest der zu diskutierenden Angaben bezieht sich nur auf Eingabe/Ausgabe-simulierte V-Operationen.If the answer to the question in 3000 (Fig.30a) is "yes", and this indicates that there are no free message chains are available, step 3004 is performed. Step 3004 asks whether this is an input / Issue operation. If this is not the case, it must be an operation by the central exception mechanism Act. Since the central exception mechanism does not have any free message chains to integrate the If this message is generated, an exception "missing" occurs in step 3006 Message concatenation ". This is a system exception because the system mode was started in step 2706 of FIG. 27, and step 3006 generates a "System Check" status that is model dependent Diagnostics generated. In this way, step 3006 ends the simulated V commands for exception conditions. Of the The rest of the information to be discussed relates only to input / output simulated V-operations.

509834/0830509834/0830

¥enn die Antwort auf Schritt 3004 "ja" lautet, d.h. ein Flop im Hilfsspeicher ist positioniert, um eine Eingabe/Ausgabe-Operation zu kennzeichnen, wird in Schritt 3008 die G-Systembezeichnung aus dem Hauptspeicher abgegriffen und in die Position WCO des Scratch-Pad-Speichers übertragen. Es wird nochmals daran erinnert, daß das FLS-Semaphor, wie in Fig.i6 dargestellt, das Wort Nummer 2 enthält, welches in den Bits 72 bis 79 das G-FeId und in den Bits 80 bis 95 das CCT-FeId beinhaltet. Bei den bereits beschriebenen P- und V-Befehlen werden diese Felder nicht benutzt, da keine Eingabe/Ausgabe-Operation erfolgte und daher keine Logikkanal-oder Systembezeichnung initialisiert wurde. Diese Felder werden jedoch nun bei der Angliederung des Logikkanals. an das freie Verkettungs-Semaphor verwendet, so daß die von der G-Bezeichnung angegebene Meldung in die freie Meldungs-Verkettung des freien Verkettungs-Semaphor übertragen wird, wenn eine freie Meldungs-Verkettung für dieses SD-(oder G-) Segment dem freien Verkettungs-Semaphor zugführt wird.If the answer to step 3004 is yes, i.e. a flop in auxiliary memory is positioned to do an input / output operation to identify, the G-System designation is tapped from the main memory in step 3008 and placed in the position WCO of the scratch pad memory transferred. It is reminded again that the FLS semaphore, as shown in Fig.i6, contains word number 2, which contains the G field in bits 72 to 79 and the CCT field in bits 80 to 95. With the P and V commands already described, these fields are not used because there is no input / output operation took place and therefore no logic channel or system designation was initialized. However, these fields are now used in the Incorporation of the logic channel. used to the free concatenation semaphore, so that the specified by the G designation Message in the free message chaining of the free chaining semaphore is transmitted if a free message chaining for this SD (or G) segment corresponds to the free chaining semaphore is supplied.

In Schritt 3010 wird der Kanal-Zählwert (CCT) des freien Verkettungs-Semaphor überprüft, das in der Scratch-Pad-Position WDO gespeichert ist. Wenn das CCT-FeId gleich Null ist, d.h. die Antwort auf die Frage lautet "ja", wird in Schritt 3012 die G-Systembezeichnung, d.h. die Bits 72 bis 79 von Wort 2, das in Schritt 3008 abgegriffen wurde, in das G-FeId des freien Verkettungs-Semaphor geschrieben. Dies identifiziert die G-Segment-Numraer des Logikkanals, der eine freie Meldungs-Verkettung angefordert hat. Wenn das CCT-FeId jedoch kleiner als Null ist und angibt, daß vorher eine Eingabe/Ausgabe-simulierte V-0peration am gleichen SD-Segment durchgeführt wurde und daß in diesem Fall keine freien Meldungs-Verkettungen verfügbar waren, wird in Schritt 3014 die in Schritt 3008 abgegriffene G-Systembezeichnung mit der im freien Verkettungs-Semaphor enthaltenen G-Systembezeich-In step 3010, the channel count (CCT) becomes the free one Checked chaining semaphore, which is stored in the scratch pad position WDO. If the CCT field is the same Is zero, i.e. the answer to the question is "yes", then in step 3012 the G-System designation, i.e. bits 72, becomes to 79 of word 2, which was tapped in step 3008, are written into the G field of the free concatenation semaphore. This identifies the G-segment number of the logic channel that requested free message chaining. If that However, CCT field is less than zero and indicates that before an input / output simulated V operation on the same SD segment has been carried out and that in this case no free message chains were available is shown in step 3014 the G system designation tapped in step 3008 with the G system designation contained in the free concatenation semaphore

509834/0830509834/0830

nung verglichen. Die in Schritt 3008 erfaßte G-Systembezeichnung muß mit der im freien Verkettungs-Semaphor enthaltenen G-System-Bezeichnung identisch sein, da jedes SD-Segment seine eigene und einzige G-Adresse besitzt. Da sich innerhalb des SD-Segments verschiedene Semaphore befinden, an denen simulierte V-Operationen durchgeführt werden können, würde dies durch ein anderes Verschiebungsfeld d.h. die Ε-Nummer angezeigt, die gleiche G-Systembezeichnung würde jedoch bestehen bleiben. Wenn daher die G-Systembezeichnung nichtmit der im freien Verkettungs-Semaphor enthaltenen Systembezeichnung identisch ist, tritt in Schritt 3014a eine illegale Semaphor-Ausnahme auf.compared. The G-system designation acquired in step 3008 must be identical to the G-System designation contained in the free concatenation semaphore, as each SD segment has its own and owns only G address. Since there are various semaphores within the SD segment on which simulated V-surgeries can be performed this would through Another shift field, i.e. the Ε number, is displayed, but the same G system designation would remain. Therefore, if the G-system designation is not identical to the system designation contained in the free concatenation semaphore an illegal semaphore exception occurs in step 3014a on.

Wenn jedoch vorausgesetzt wird, daß mit der G-Systembezeichnung keine Probleme auftreten, wird in Schritt 3016 das Hardware-Gatter gesperrt, um die Durchführung einer kritischen System-Operation anzuzeigen.If, however, it is assumed that with the G system designation If no problems occur, the hardware gate is locked in step 3016 in order to carry out a critical Display system operation.

In Schritt 3018 wird das CCT-FeId des in der Scratch-Pad-Position V/CD gespeicherten freien Verkettungs-Semaphor um Eins dekrementiert. Der absolute Wert des CCT-Feldes gibt seine Anzahl von Logikkanälen an, die auf- freie Meldungs-Verkettungen warten. In Schritt 3020 wird der Inhalt der Positionen WCB bis WCD des Scratch-Pad-Speichers in den Hauptspeicher und zur Adresse des freien Verkettungs-Semaphor übertragen, die über die FLSC-Unterroutine entwickelt wurde, so daß der gegenwärtige Status des freien Verkettungs-Semaphor angegeben wird. Ih Schritt 3022 wird eine EWLC-Unterroutine durchgeführt.Diese EWLC-Unterroutine gliedert die Meldung des Logikkanals in eine Warteschlange Q/LC/FLS ein und wird in Fig.3Ob dargestellt.In step 3018, the CCT field becomes the scratch pad position V / CD stored free concatenation semaphore is decremented by one. The absolute value of the CCT field gives its Number of logic channels that are waiting for free message chains. In step 3020 the content the positions WCB to WCD of the scratch pad memory in the main memory and transferred to the address of the free concatenation semaphore developed via the FLSC subroutine to indicate the current status of the free concatenation semaphore. Step 3022 becomes a EWLC subroutine performed. This EWLC subroutine integrates the message of the logic channel into a queue Q / LC / FLS and is shown in Fig.3Ob.

Zu diesem Zeitpunkt ist bekannt, daß die aus der Q./LC/EVQ-Warteschlange abgegriffene Meldung nicht an ihr entsprechendesAt this point it is known that those from the Q./LC/EVQ queue tapped message not to its corresponding one

509834/0830509834/0830

Semaphor angegliedert werden konnte, entweder an Gi, Di oder an Ga, Da, da im SD-Segment nicht genügend freie Meldungs-Verkettungen vorhanden waren. Zusätzlich sind die Schritte durchgeführt worden, die vorläufig die Meldung mit dem freien Verkettungs-Semaphor dieses SD-Segments verbinden, indem die G-Systembezeichnung in das FLS-Semaphor übertragen und der CCT-Zählv/ert, der in den Schritten 3010 bis 3020 dargestellt ist, dekrementiert wurde. Nun muß die Meldung so abgespeichert werden, daß sie in die neu verfügbare freie Meldungs-Verkettung übertragen v/erden kann, wenn ein P-Befehl eine Meldungs-Verkettung im SD-Segment verfügbar macht.Semaphore could be attached either to Gi, Di or to Ga, Da, because there were not enough free message chains in the SD segment. In addition, the steps are carried out which provisionally connect the message with the free concatenation semaphore of this SD segment by adding the Transfer the G system designation to the FLS semaphore and the CCT count shown in steps 3010-3020 is, has been decremented. The message must now be saved in such a way that it is included in the newly available free message chain can be transmitted / grounded when a P command is a message chain makes available in the SD segment.

Zu diesem Zweck wird eine Q/LC/FLS-Warteschlange aufgebaut, in der die Meldung im Warte-Status gespeichert wird, bis eine freie Meldungs-Verkettung im G-Segment verfügbar ist. Die Q/LC/FLS-Warteschlange führt die gleiche Funktion wie Q/PR/FLS bei V-Befehlen durch. Eine Q/LC/FLS-Warteschlange verkettet alle Logikkanäle, die auf eine freie Meldungs-Verkettung in einem SD-Segment warten, daher befindet sich nur eine Q/LC/FLS für alle freien Verkettungs-Semaphores imHauptspeicher. Diese Q/LC/FLS besitzt eine Vielzahl verschiedener Systembezeichnungen, die die verschiedenen freien Verkettungs-Semaphores in den SD-Segmenten identifizieren. Die Q/LC/FLS-Warteschlange besitzt einen Hinweis und eine absolute Adresse, die wie inFig.19a dargestellt, in die Position 2F des Scratch-Pad-Speichers übertragen werden. Dieses Wort identifiziert sowohl den Kopf und den Schwanz der Warteschlange. Wenn überprüft wird, welche Verkettung in der Warteschlange mit dem freien Verkettungs-Semaphor verbunden ist, wird die im freien Verkettungs-Semaphor gespeicherte G-Bezeichnung mit der in Q/LC/FLS befindlichen G-Bezeichnung verglichen.Wenn eine Verkettung aus Q/LC/FLS entfernt wird, wird das Feld "nächste Verkettung" der vorhergehenden LCTE geändert, so daß sie dieA Q / LC / FLS queue is set up for this purpose, in which the message is stored in the waiting status until a free message chain is available in the G segment. The Q / LC / FLS queue performs the same function as Q / PR / FLS with V commands. A Q / LC / FLS queue concatenates them all Logic channels that wait for a free message chaining in an SD segment, therefore there is only one Q / LC / FLS for all free concatenation semaphores in main memory. This Q / LC / FLS has a variety of different system names, the the various free concatenation semaphores identify in the SD segments. The Q / LC / FLS queue has a note and an absolute address, as shown in Fig. 19a, in position 2F of the scratch pad memory be transmitted. This word identifies both the head and the tail of the queue. if checking which concatenation in the queue is connected to the free concatenation semaphore, the The G designation stored in the free concatenation semaphore is compared with the G designation in Q / LC / FLS If the concatenation is removed from Q / LC / FLS, the "next concatenation" field of the previous LCTE is changed to include the

509834/0830509834/0830

Verkettung identifiziert, auf die von der entfernten Verkettung hingewiesen wurde. Wenn LCTE die erste Verkettung ist, wird der Kopf-Hinweis in Position F geändert.Identifies the concatenation pointed to by the removed concatenation. If LCTE is the first concatenation, will the header note in position F changed.

In Fig.3Ob wird bei Schritt 3030 die Logikkanal-Tabelleneintragung, die aus Q/LC/EVQ abgegriffen wurde, nun in Q/LC/FLS eingegliedert. Wenn vorher eine Eingabe in diese Y/art eschlange erfolgt wäre, würde diese gemäß der FIFO-Regel mit der vorhergehenden LCTE-Eingabe verbunden. Wenn vorher keine LCTE-Eingaben vorhanden waren, wird die Warteschlange in Betrieb gesetzt. Daher würde in Schritt 3030 der Schwanzihinv/eis der absoluten Adresse im Hauptspeicher geändert, um zu kennzeichnen, daß die neue, gerade in Q/LC/FLS eingereihte LCTE nun der Schwanz der Warteschlange ist.In Fig.3Ob, the logic channel table entry is made at step 3030, which was tapped from Q / LC / EVQ, now incorporated into Q / LC / FLS. If an entry is made in this Y / type queue beforehand would have occurred, this would be in accordance with the FIFO rule with the previous one LCTE input connected. If there were no LCTE entries before, the queue is put into operation. Therefore, in step 3030, the tail would be the changed absolute address in main memory to indicate that the new LCTE now the tail of the queue is up.

In Schritt 3032 wird das Logikkanal-Statusbyte aktualisiert. Obwohl die Meldung nicht dem entsprechenden Prozeß zugeleitet wurde, wird das Status-Byte geändert, um zu kennzeichnen, daß gegenwärtig ein simulierter V-Befehl durchgeführt wird. Dies ergibt sich daraus, daß die Meldung in Q/LC/FLS eingereiht wurde. Da die Meldung jedoch nicht den entsprechenden Prozeß erreichte, würden die Status-Bytes anzeigen, daß die simulierte V-Operation ohne Erfolg durchgeführt wurde. In step 3032 the logic channel status byte is updated. Although the message was not forwarded to the appropriate process the status byte is changed to indicate that a simulated V command is currently being performed. this results from the fact that the message was placed in Q / LC / FLS. However, since the message is not the corresponding process reached, the status bytes would indicate that the simulated V operation was unsuccessful.

Hierdurch wird die EWLC-Unterroutine beendet, und nun wird eine Rückverzweigung zu Schritt 3024 durchgeführt. Schritt 3024 gibt das Hardware-Gatter frei, um zu kennzeichnen, daß die unteilbare Funktion von Datenschreiben- und_überträgen durchgeführt worden ist. In Schritt 3026 wird, wenn vorhanden, die nächste simulierte V-Qperation durchgeführt.This terminates the EWLC subroutine and now a branch back to step 3024 is performed. Step 3024 enables the hardware gate to indicate that the indivisible function of data write and transfer carried out has been. In step 3026, the next simulated V operation is performed, if any.

Übertragung einer Meldung von Q/LC/FLS zum Semaphor, wenn eine freie Meldungs-Verkettung verfügbar wird.Transmission of a message from Q / LC / FLS to the semaphore when a free message chain becomes available.

Nach demAufbau oder der Entwicklung einer Q/LC/FLS muß nun beschrieben werden, wie die in die Warteschlange eingegliederteAfter the construction or the development of a Q / LC / FLS must now Described as the queued

509834/0830509834/0830

Meldung zum entsprechenden Semaphor übertragen wird, ^ur diese Situation ist ein P-Befehl für ein Meldungs-Semaphor erforderlich, um eine Meldungs-Verkettung freizugeben. Diese befreite Meldungs-Verkettung wird nun zum freien Verkettungs-Semaphor im SD-Segment zurückgeleitet,in dem sie zur Speicherung der in Q/LC/FLS enthaltenen Meldung verwendet werden kann. Dies würde auftreten, wenn das CCT-PeId des freien Verkettungs-Semaphor kleiner als Null wäre.__Message is transmitted to the corresponding semaphore, ^ ur this Situation, a P command for a message semaphore is required, to enable a message chain. This released message chaining now becomes a free chaining semaphore returned in the SD segment where it can be used to store the message contained in Q / LC / FLS. this would occur if the CCT-PeId of the free concatenation semaphore would be less than zero .__

Fig.22a enthält eine genauere Beschreibung eines P-Befehls für ein Meldungs-Semaphor. Wenn dieSituation, in der eine Freigabe einer Meldungs-Verkettung erforderlich ist, auftritt, wird eine Verzweigung von Schritt 2200 zu Schritt 2205 und Schritt 2207 in Betracht gezogen, da dies einen SCT-Zählwert des Meldungs-Semaphor erfordert, der größer als Eins ist. Der P-Befehl wird am Semaphor durchgeführt und gibt eine Meldungs-Verkettung durch Empfang einer Meldung vom Semaphor frei. In Schritt 2205 ist zu bemerken, daß beim Zählwert Null des SCT-Feldes keine freie Meldungs-Verkettung verfügbar gemacht würde. Diese Situation wird später beschrieben.Fig.22a contains a more detailed description of a P command for a message semaphore. When the situation in which message chaining is required to be released occurs, will a branch from step 2200 to step 2205 and Consider step 2207 as it requires an SCT count of the message semaphore greater than one. Of the The P command is carried out on the semaphore and enables a message chain by receiving a message from the semaphore. In Note at step 2205 that if the SCT field counts zero, no free message chaining is made available would. This situation will be described later.

Zur Vereinfachung wird angenommen, daß Schritt 2218 in Fig.22b erreicht würde, da hier die Situation auftritt, bei der in Wort Nummer 2 der Kanal-Zählwert des freien Verkettungs-Semaphor geprüft wird, um festzustellen, ob er kleiner als Null ist. Wenn dieser Wert kleiner als Null ist, bedeutet dies, daß für dieses freie Verkettungs-Semaphor konzeptionsmässig eine Q/LC/FLS vorhanden ist. Daher wird in Schritt 2225 der Systemmodus gesetzt und eine Verzweigung zu Fig.22d und Schritt 2226 wird durchgeführt. Dies ist die in Fig.31a dargestellte RLCM-Unterroutine. RLCM-Unterroutine bedeutet: "Freigabe von Meldungs-Verkettungen für den Logikkanal". Diese Unterroutine identifiziertFor the sake of simplicity, it is assumed that step 2218 in FIG. 22b would be reached, since the situation occurs here where in word number 2 the channel count of the free concatenation semaphore is checked to see if it is less than zero. If this value is less than zero, it means that this is a free concatenation semaphore a Q / LC / FLS is conceptually available. The system mode is therefore set in step 2225 and a branch is made to FIG. 22d and step 2226 is carried out. This is the RLCM subroutine shown in Figure 31a. RLCM subroutine means: "Release of message chains for the logic channel ". This subroutine identifies

509834/0830509834/0830

die LCTE-Eingabe, das Semaphor,für welches die Meldung bestimmt ist und überträgt die Meldung zu diesem Semaphorethe LCTE input, the semaphore for which the message is determined and transmits the message to this semaphore

Somit wird in Schritt 3100 (Fig.31a) eine FLC-Unterroutine "Abruf des Logikkanals" durchgeführt, wie in Fig.31b dargestellt ist. In Schritt 3120 wird die Q/LC/FLS abgesucht, um das Semaphor zu identifizieren, das die gleiche Bezeichnung trägt, wie das freie Verkettungs-Semaphor im SD-Segment. Daher wird der Kopfhinweis von Q/LC/FLS benutzt, um die erste LCTE-Eintragung und die entsprechende G-Bezeichnung zu überprüfen. Wenn die G-Bezeichnung in der ersten LCTE-Eintragung nicht gleich der G-Bezeichnung im freien^ferkettungs-Semaphor des SD-Segments ist, wird die nächste LCTE-Eintragung erfaßt, in der der gleiche Vergleich durchgeführt wird. Wenn die gesamte Q/LC/FLS überprüft wird, und keine identische G-Bezeichnung gefunden wurde, tritt in Schritt 3120 eine illegale Semaphor-Ausnahme auf. Wenn jedoch die erste G-Bezeichnung identifiziert wird, wird Schritt 3122 durchgeführt.Thus, in step 3100 (Figure 31a) it becomes an FLC subroutine "Retrieval of the logic channel" carried out, as shown in Fig.31b. In step 3120 the Q / LC / FLS is searched for identify the semaphore that has the same name as the free concatenation semaphore in the SD segment. Therefore the Q / LC / FLS header is used to create the first LCTE entry and check the corresponding G designation. If the G designation in the first LCTE entry is not equal to the G designation in the free ^ chaining semaphore of the SD segment the next LCTE entry is detected in which the same comparison is made. If the entire Q / LC / FLS is checked and no identical G designation is found, an illegal semaphore exception occurs in step 3120 on. However, if the first G label is identified, step 3122 is performed.

Es ist zu bemerken, daß die Q/LC/FLS mehrere identische G-Bezeichnungen beinhalten kann, die dem absoluten Wert des Kanal-Zählwertes im FLS-Semaphor entsprechen. Wenn z.B. der Kanal-Zählwert des Semaphor "2" ist, müßten zwei LCTE-Eintragungen zur Q/LC/FLS vorhanden sein, die in eine freie Meldungs-Verkettung des freien Verkettungs-Semaphor im SD-Segment gespeichert werden müssen. Zu diesem Zeitpunkt ist jedoch nur die erste Eintragung mit der G-Bezeichnung eingegliedert, da nur eine freie Meldungs-Verkettung vom gegenwärtig durchgeführten P-Befehl freigegeben wird.It should be noted that the Q / LC / FLS have several identical G designations that correspond to the absolute value of the channel count in the FLS semaphore. If e.g. If the channel count of the semaphore is "2", there should be two LCTE entries for the Q / LC / FLS in a free one Message concatenation of the free concatenation semaphore must be stored in the SD segment. At this point it is however, only the first entry with the G designation incorporated, as only a free message chain from the current one executed P command is released.

In Schritt 3122 wird die Systembezeichnung aus der LCTE abgegriffen und in die Position WD4 desScratch-Pad-SpeichersIn step 3122 the system name is derived from the LCTE tapped and in position WD4 of the scratch pad memory

509.83Λ./0830509.83Λ. / 0830

übertragen. In Schritt 3124 wird das Hardware-Gatter gesperrt, um zu kennzeichnen, daß eine kritische System-Operation mit einer unteilbaren Aktion durchgeführt wird. In Schritt 3126 wird der Kanal-Zählwert (CCT) des freien Verkettungs-Semaphor in der Position WCD des Scratch-Pad-Speichers um Eins inkrementiert, um zu kennzeichnen, daß ein Logikkanal LC weniger auf eine freie Meldungs-Verkettung wartet. In Schritt 3128 wird die Logikkanal-Tabelleneintragung von Q/LC/FLS entfernt. Dieser Schritt zieht Änderung des Feldes "nächste Verkettung" der vorherigen LCTE nach sich, um eine seriell geordnete Warteschlange zu bilden. Dies erfolgt weitestgehend in der gleichen Weise wie das Erfassen einer Meldungs-oder ' Prozeß . -Verkettung aus einer vorstehend beschriebenen Q/M/S oder Q/PL/PLS.transfer. In step 3124 the hardware gate is disabled to indicate that a critical system operation is occurring an indivisible action is carried out. In step 3126 the channel count value (CCT) of the free concatenation semaphore in position WCD of the scratch pad memory is incremented by one, to indicate that a logic channel LC is less waiting for a free message chaining. In step 3128 the logic channel table entry is removed from Q / LC / FLS. This step pulls change in the "next chaining" field the previous LCTE to form a serially ordered queue. This is done largely in the same way Way like capturing a message or 'process. -Chainment from a Q / M / S or Q / PL / PLS described above.

Nach Durchführung der kritischen Operation in der Warteschlange Q/LC/FLS gibt Schritt 3130 das Hardware-Gatter frei.In Schritt 3132 wird die bereits erwähnte absolute Adresse des Semaphor entwickelt. Da sich der P-Befehl, der die Meldungs-Verkettung freigab, auf ein anderes Semaphor beziehen kann, als das durch die System-Bezeichnung identifizierte Semaphor, muß Schritt 3132 durchgeführt werden. In Schritt 3134 wird die in der ausgegliederten LCTE enthaltene Meldung in die Positionen WE4 bis WE7 des Scratch-Pad-Speichers übertragen, und die FLC-Unterroutine ist beendet.After the critical operation has been performed on the Q / LC / FLS queue, step 3130 returns the hardware gate In step 3132 the aforementioned absolute address of the semaphore is developed. Since the P command, the released the message chain, can refer to a different semaphore than the one identified by the system designation Semaphore, step 3132 must be performed. In step 3134, the Transfer the message to positions WE4 to WE7 of the scratch pad memory and the FLC subroutine is ended.

Bei Beendigung der FLC-Unterroutine wird eine Rückkehr zu Fig.31a und Schritt 3102 durchgeführt, der die PSEM-Unterroutine abruft. Diese Unterroutine führt Überprüfungen am Semaphor durch, da der Semaphor-Zählwert größer als Null ist.Die PSEM-Unterroutine ist detaillierter in Fig.31c dargestellt.Upon completion of the FLC subroutine, a return is made to Figure 31a and step 3102 which is the PSEM subroutine retrieves. This subroutine performs checks on the semaphore because the semaphore count is greater than zero. The PSEM subroutine is shown in more detail in Fig.31c.

Insbesondere wird in Schritt 3140 die D-Nummer der GD-Systembezeichnung darauf überprüft, ob sie ein Vielfaches von 8 ist. Die D-Nummer ist die Identifizierung des entsprechenden SemaphorSpecifically, in step 3140, the D number becomes the GD system name checked to see if it is a multiple of 8. The D number is the identification of the corresponding semaphore

509834/0830509834/0830

innerhalb des SD-Segments und muß von der Konzeption her ein Vielfaches von 8 sein. In Schritt 3142 und 3144 werden die zwei Worte des Semaphor aus der in Schritt 3132 von Fig.31b entwickelten absoluten Adresse abgegriffen und in die Positionen ¥C4 und WC5 des Scratch-Pad-Speichers übertragen.within the SD segment and must be a Be a multiple of 8. In steps 3142 and 3144 the two words of the semaphore are developed from the one developed in step 3132 of Figure 31b The absolute address is tapped and transferred to positions ¥ C4 and WC5 of the scratch pad memory.

Wenn das Semaphor verfügbar ist, werden Überprüfungen durchgeführt, die der Semaphor-Erfassungsroutine entsprechen. Schritt 3146 überprüft das STAG-FeId des Semaphor, um festzustellen, ob das Semaphor ein Meldungs-Semaphor ist. In Schritt 3148 wird~ das SCT-FeId des Semaphor überprüft, um zu gewährleisten, daß es niedriger als das SMC-FeId ist. Auf diese Weise überprüfen die Schritte 3146 und 3148 die Gültigkeit des abgegriffenen Semaphor.If the semaphore is available, checks are made that match the semaphore detection routine. step 3146 checks the STAG field of the semaphore to see if the semaphore is a message semaphore. In step 3148 ~ the SCT field of the semaphore is checked to ensure that it is lower than the SMC field. In this way, steps 3146 and 3148 check the validity of the tapped Semaphore.

In Schritt 3150 wird das SCT-FeId überprüft. Wenn der Zählwert des SCT-Feldes niedriger alsNull ist, tritt eine illegale Semaphor-Ausnahme 3150a auf. Dies ergibt sich daraus, daß der Zählwert des SCT-Feldes niedriger alsNull war, da dies anzeigen würde, daß Prozesse am Semaphor verkettet waren.Prozesse werden jedoch niemals in den Warte-Status versetzt, wenn sich Meldungen in Q/LC/FLS für das Semaphor befinden, an dem ein Prozeß einen P-Befehl durchführt (wird später beschrieben). Bei der P-Befehls-Situation wäre die Meldung zum Verfahren übertragen worden, wenn Q/LC/EVQ ausgegliedert gewesen wäre. Wenn das SCT-FeId größer als Null ist, wird eine Verzweigung zu Schritt 3152 durchgeführt, in der die Hinweis-Felder des Semaphor überprüft werden.Genauer ausgedrückt bilden diese Felder den Meldungs-Warteschlangen-Kopfhinweis (MQHP) und den Meldungs-Warteschlangen-Schwanzhinweis (MQTP) der ungleich Null und ein Vielfaches-von 8 sein muß, da das Semaphor eine Doppelwort-Struktur (8 Bytes) besitzen muß. Wenn das SCT-FeId in Schritt 3150 gleich Null war, wird Schritt 3154 durchgeführt.Da das SCT-In step 3150 the SCT field is checked. When the count of the SCT field is less than zero, an illegal semaphore exception 3150a occurs. This results from the fact that the The SCT field count was less than zero as this would indicate that processes were chained on the semaphore. Processes will however, it never pauses when there are messages are in Q / LC / FLS for the semaphore on which a process has a P command performs (will be described later). With the P command situation the notification would have been transferred to the proceedings if Q / LC / EVQ had been outsourced. If that SCT field is greater than zero, a branch is made to step 3152 in which the information fields of the semaphore More precisely, these fields form the Message Queue Header (MQHP) and the Message Queue Tail Hint (MQTP) which must be non-zero and a multiple of 8, since the semaphore is a double word structure (8 bytes). If the SCT field in step 3150 was zero, step 3154 is performed. Since the SCT

509834/0830509834/0830

Feld gleich Null ist, ist keine Warteschlange vorhanden und nun müssen die MQHP und MQTP-Felder gleich Null sein. Wenn eine dieser Bedingungen nicht erfüllt ist, tritt in Schritt 315Oa eine illegale Semaphor-Ausnahme auf. Damit sind die von der PSEM-Unterroutine durchgeführten Überprüfungen beendet.Field is zero, there is no queue and now the MQHP and MQTP fields must be zero. If either of these conditions is not true, go to step 315Oa raised an illegal semaphore exception. This completes the checks performed by the PSEM subroutine.

Bei Beendigung der PSEM-Unterroutine wird eine Rückverzweigung zu Fig.21a und der in Fig.26c dargestellten Unterroutine TAML 2613 durchgeführt. Diese Unterroutine überprüft den Zugang zur Meldungs-Verkettung, da bekannt ist, daß eine freie Meldungs-Verkettung gerade in das freie Verkettungs-Semaphor eingegliedert worden ist, d.h. eine Q/ML/FLS ist aufgebaut oder hinzugefügt worden. Die relative Adresse dieser Meldungs-Verkettung wird nun von Schritt 3104 in die Position ¥35 des Scratch-Pad-Speichers übertragen. Diese Adresse wäre der freieWhen the PSEM subroutine is terminated, a branch back is made to Fig.21a and the subroutine TAML shown in Fig.26c 2613 carried out. This subroutine checks the access to the message chain, since it is known that a free one Message concatenation in the free concatenation semaphore has been incorporated, i.e. a Q / ML / FLS has been set up or added. The relative address of this message chain is now from step 3104 in the position ¥ 35 des Scratch pad memory transferred. This address would be the free one

Verkettungs-Warteschlangen-Hinweis PLQP des freien Verkettungs-Semaphor, der die Position der freien Meldungs-Verkettung identifiziert. In Schritt 2617, der durch Fig.26e erläutert wird, wird die in den Scratch-Pad-Positionen als Ergebnis von Schritt 3134 befindliche Meldung in die Hauptspeicher-Position der neu entwickelten freien Meldungs-Verkettung übertragen.Concatenation queue indication PLQP of the free concatenation semaphore, which identifies the position of the free message chain. In step 2617, indicated by Fig. 26e As will be explained, the message in the scratch pad positions as a result of step 3134 will be in the main memory position the newly developed free message chain.

Schritt 3106 sperrt das Hardware-Gatter. In Schritt 2619 wird die QML-Unterroutine, die Meldungs-Warteschlange eines Semaphor, Q/M/S,aufgebaut. Die gerade freigegebene Meldungs-Verkettung, die die LCTE-Meldung speichert, muß nun an das Semaphor angegliedert werden. Für die Meldungs-Verkettung sind keine Überprüfungen erforderlich, da beim Übergang zu Fig.31 gewährleistet war, daß das SCT-FeId des Semaphor größer als Null war. Die QML-Unterroutine schreibt das neue Semaphor in den Hauptspeicher und aktualisiert die Hinweis-Felder (wenn erforderlich) im Meldungs-Semaphor, um anzuzeigen, daß eine neue Meldung in die Semaphor-Warte-Schlange Q/M/S eingegliedert wurde.Step 3106 disables the hardware gate. In step 2619 the QML subroutine, the message queue of a semaphore, Q / M / S, built up. The message chain that has just been released, which stores the LCTE message must now be attached to the semaphore. There are none for message chaining Checks are necessary, since it was guaranteed when moving to Fig. 31 that the SCT field of the semaphore is greater than Was zero. The QML subroutine writes the new semaphore into main memory and updates the hint fields (if required) in the message semaphore to indicate that a new message has been added to the semaphore queue Q / M / S became.

509834/0830509834/0830

In Schritt 3108 wird der Logikkanal-Status aktualisiert, um zu kennzeichnen, daß nun ein erfolgreicher simulierter V-Befehl durchgeführt wurde und in Schritt 3110 wird das Hardware-Gatter freigegeben, da die Informationen zum Hauptspeicher übertragen worden sind.In step 3108 the logic channel status is updated to to indicate that now a successful simulated V command has been performed and in step 3110 the hardware gate is enabled because the information on main memory have been transferred.

Hierdurch wird die RLCM-Unterroutine Schritt 3112 beendet und eine Rückverzweigung zu Fig.22d und Schritt 2227 ermöglicht, in denen der System-Modus gelöscht wird.Da eine System-Kontrolloperation die Ausführung des simulierten V-Befehls kontrolliert und da der simulierte V-Befehl nun abgeschlossen ist, kann wieder in den Prozeß-Modus übergegangen werden. In Schritt 2228 von Fig.22d ist die P-Operation beendet worden, und an diesem Punkt wird zum System-Geschehnis-Abfragemechanismus übergegangen, um festzustellen, welcher andere Logikkanal versorgt werden muß.This exits the RLCM subroutine step 3112 and allows a branch back to Fig. 22d and step 2227, in which the system mode is cleared. As a system control operation, the execution of the simulated V command controlled and since the simulated V command has now been completed, it is possible to switch back to process mode will. In step 2228 of Figure 22d, the P operation has ended, and at that point is proceeded to the system occurrence polling mechanism to determine which other logic channels are being served got to.

Daher zeigt Fig.31 die tatsächliche Abtrennung der Logikkanal-Tabelleneintragung aus der Q/LC/FLS des entsprechenden Semaphor, so daß die von der Eingabe/Ausgabe-Unterbrechung abgegebene Meldung einem entsprechenden Prozeß zugeführt werden kann. Dies wäre der Fall, entweder für eine Zwischenoder Abschluß-Meldung in den Worten 8 bis 11 von LCTE oder für eine Markierungs-Meldung·in den Worten 12 bis 15 von LCTE.Therefore, Figure 31 shows the actual separation of the logic channel table entry from the Q / LC / FLS of the corresponding semaphore, so that from the input / output interruption delivered message can be fed to a corresponding process. This would be the case either for an interim or Completion message in words 8 to 11 of LCTE or for a marking message · in words 12 to 15 of LCTE.

5Q9834/083Q5Q9834 / 083Q

Entfernen einer Meldung aus Q/LC/FLS zur übertragung zu dem Prozeß, der die Meldung anfordert.Removal of a message from Q / LC / FLS for transmission to the process requesting the report.

Der Zugriff zur Warteschlange Q/LC/FLS kann auf eine zusätzliche Weise erfolgen. Diese Situation tritt .auf, wenn der Prozeß, welcher die Kontrolle über die Zentraleinheit besitzt, einen P-Befehl an einem Meldungs-Semaphor durchführt und das SCT-FeId des Semaphor gleich Null ist. Diese Situation wurde hinsichtlich Fig.24a und der Unterroutine PMZ 2206 beschrieben, in der die Meldung von einem Prozeß der Q/PR/FLS-Warteschlange aus übertragen wird? die Meldung ist nie mit der Semaphor-Warteschlange Q/M/S verbunden.The Q / LC / FLS queue can be accessed in an additional way. This situation occurs when the Process which has control over the central processing unit, executes a P command on a message semaphore and the SCT field of the semaphore is zero. This situation became with regard to FIG. 24a and the subroutine PMZ 2206 in which the message is transmitted from a process in the Q / PR / FLS queue? the message is never with the Semaphore queue Q / M / S connected.

In der nachfolgenden Beschreibung liegt die Betonung auf dem Konzept der Erzeugung einer Meldung, deren Zurverfügungstellung bereits vorher von einem V-Befehl versucht wurde, d.h. dies führte zum Aufbau einer Q/PR/FLS, oder umgekehrt, mit Hilfe des simulierten V-Befehls versucht wurde, d.h. eine Q/LC/FLS und nicht.der gegenwärtig vorhandene P-Befehl wurde erzeugt, der nur aus Erläuterungsgründen beschrieben wird. Es wird daran erinnert, daß die PME-Unterroutine feststellt, · ob ein vorhergehender Prozeß gegenwärtig auf eine freie Meldungs-Verkettung wartet, um seine Meldung an das Meldungs-Semaphor anzugliedern, d.h. der vorhergehende Prozeß konnte seine Meldung nicht absenden, und daher befindet sich der vorherige Prozeß immer noch im Besitz dieser Meldung. Daher ist die Situation aufgetreten, in der alle freien Meldungs-Verkettungen im SD-Segment benutzt worden sind und die Durchführung einer V-Operation ohne Erfolg versucht wurde. Aufgrund dieser Situation ist der Prozeß in die Q/PR/FLS-Warteschlange eingereiht worden, um die Freigabe einer Meldungs-Verkettung im SD-Segment abzuwarten. Wenn eine freie Meldungs-Verkettung im SD-Segment verfügbar wird, kann der Prozeß aus Q/PR/FLS entfernt werden und seinen V-Befehl durchführen. Vor dem Auftreten dieserIn the following description, the emphasis is on the concept of creating a message, making it available a V command was tried before, i.e. this led to the establishment of a Q / PR / FLS, or vice versa, an attempt was made using the simulated V command, i.e. a Q / LC / FLS and not the currently available P command generated, which is only described for explanatory reasons. Recall that the PME subroutine determines whether a previous process is currently waiting for a free message chaining to send its message to the message semaphore to join, i.e. the previous process could not send its message, and is therefore located the previous process is still in possession of this message. Hence the situation occurred in which everyone Free message chains have been used in the SD segment and a V operation has been carried out without success was tried. Because of this situation, the process has been placed on the Q / PR / FLS queue for the Wait for a message chain to be released in the SD segment. If there is a free message chain in the SD segment becomes available, the process can be removed from Q / PR / FLS and perform its V instruction. Before the occurrence of this

50 9834/08 350 9834/08 3

Situation führt jedoch ein Prozeß am gleichen SD-Segment einenP-Befehl durch. Da die Meldung, deren Abgabe versucht wurde, aufgrund fehlender freier Meldungs-Verkettungen nicht abgesendet werden konnte, die Meldung sein kann, die der Prozeß, der die Kontrolle über die Zentraleinheit besitzt, durch seinen P-Befehl· anfordert, wird nun die Q/PR/FLS abgesucht. / Wenn die Meldung identifiziert wird, erhält der Prozeß, welcher den P-Befehl ausführt, die Meldung direkt von dem in Q/PR/FLS befindlichen Prozeß und entfernt diesen Prozeß aus der Warteschlange des freien Verkettungs-Semaphor, d.h. Q/PR/FLS. Da diese gleiche Situation bei Meldungen von simulierten V-Befehlen auftreten kann, ergibt sich daraus, daß die Q/LC/FLS-Warteschlange ebenfalls abgesucht würde, da diese Warteschlange die Meldung enthalten könnte, die vom Prozeß über seinenP-Befehle angefordert wird. Dies würde festgelegt, wenn das CCT-FeId des freien Verkettungs-Semaphor kleiner als Null ist. Unter diesen Bedingungen ist bekannt, daß eine Q/LC/FLS-Warteschlange vorhanden ist. und die Möglichkeit besitzt, die angeforderte Meldung zu speichern. Diese Möglichkeit wird durch Vergleich der DG-Nummer der LCTE-Eintragungen in Q/LC/FLS mit SEG, SRA des Prozesses überprüft,der den P-Befehl ausführt.Situation, however, a process is performing a P command on the same SD segment. Since the message that was attempted could not be sent due to a lack of free message chains, which can be the message that the process that has control of the central unit requests with its P command, the Q / PR / FLS searched. / If the message is identified, the process executing the P instruction receives the message directly from the process in Q / PR / FLS and removes this process from the queue of the free concatenation semaphore, ie Q / PR / FLS . Since this same situation can occur with messages from simulated V commands, it follows that the Q / LC / FLS queue would also be searched, since this queue could contain the message requested by the process via its P commands. This would be determined if the CCT field of the free concatenation semaphore is less than zero. Under these conditions, it is known that there is a Q / LC / FLS queue. and has the ability to save the requested message. This possibility is checked by comparing the DG number of the LCTE entries in Q / LC / FLS with SEG, SRA of the process that executes the P command.

Insbesondere wird in Schritt 2401 von Fig.24a das freie Verkettungs-Semaphor erfaßt, und in Schritt 2402 wird das Kanal-Zählfeld des freien Verkettungs-Semaphor überprüft, um festzustellen, ob es kleiner als Null ist. Wenn das CCT-FeId kleiner als Null ist, kennzeichnet dies, daß ein simulierter V-Befehl ohne Erfolg das Absenden seiner Meldung versucht hat und nun eine Eingabe in die Varteschlange der Logikkanäle am freien Verkettungs-Semaphor Q/LC/FLS durchgeführt worden ist.Wenn daher die Antwort auf die Frage in 2401 »ja» lautete, wird Schritt 2416 (Fig.24) durchgeführt, · bei dem die Q/LC/FLS-Warteschlange gesucht wird, um festzustellen, ob die vom P-Befehl angeforderte Meldung vorhanden ist.In particular, in step 2401 of FIG Concatenation semaphore detected and in step 2402 the channel count field of the free concatenation semaphore is checked, to see if it's less than zero. If the CCT field is less than zero, this indicates that a simulated V command was unsuccessful in sending its message has tried and has now entered the queue of the logic channels on the free concatenation semaphore Q / LC / FLS. Therefore, if the answer to the question in 2401 was "yes", step 2416 (Fig. 24) is carried out, which searches the Q / LC / FLS queue to determine whether the message requested by the P command is available.

,549834/0830, 549834/0830

Der erste Schritt in Fig.32a führt die SLCQ-Unterroutine 3200 durch. Die SLCQ-Unterroutine sucht die Logikkanal-Warteschlange und sendet die Meldung und den Zählwert der LC-Nummer zurück. Wie in Fig.32b genauer dargestellt ist, wird in Schritt 3230 die Q/LC/FLS auf das Semaphor hin durchsucht, das die gleiche G-Bezeichnung wie die G-Nummer im FLS-Wort Nummer 2 enthält und die gleiche G-Bezeichnung wie die SRA der Semaphor-Bezeichnung des D-Befehls. Dies erfolgt durch Erfassen der absoluten Adresse aus der Position 2F des Scratch-Pad-Speichers und durch Zugriff zur Warteschlangen-Verkettung,um die Systembezeichnung zu überprüfen. Wenn die G-Bezeichnungen gleich sind. d.h. das Semaphor befindet sich im SD-Segment, werden die D-Nummern verglichen. Dies wären die D-Nummer der System-Bezeichnung, die in der LCTE-von Q/LC/FLS gespeichert ist, und die SRA-Bezeichnung des Semaphor, die vom P-Befehl erzeugt wurde. Wenn diese Nummern gleich sind, bedeutet dies, daß versucht wurde, die Meldung dem entsprechenden Semaphor zuzuleiten, an dem der P-Befehlausgeführt wird.'Wenn diese Situation auftritt^ empfängt derProzeß, der den P-Befehl durchführt, die Meldung und setzt seinen Ablauf fort.* The first step in Figure 32a is the SLCQ subroutine 3200. The SLCQ subroutine searches the logic channel queue and sends back the message and the count of the LC number. As shown in more detail in FIG. 32b, in step 3230 the Q / LC / FLS is searched for the semaphore which contains the same G designation as the G number in FLS word number 2 and the same G designation as the SRA of the semaphore designation of the D command. This is done by acquiring the absolute address from position 2F of the scratch pad memory and accessing the queues to check the system designation. When the G names are the same. ie the semaphore is in the SD segment, the D numbers are compared. These would be the D number of the system designation, which is stored in the LCTE of Q / LC / FLS, and the SRA designation of the semaphore that was generated by the P command. If these numbers are the same, it means that an attempt was made to route the message to the corresponding semaphore on which the P command is executed. When this situation occurs, the process that is performing the P command receives the message and continues its sequence away. *

Weiterhin wird die LCTE-Eintragung der ö/LC/FLS-Warteschlange entfernt, da sie ihre Meldung an den entsprechenden Prozeß weitergeleitet hat. Diese Vergleichsoperation der Semaphor-Bezeichnungen in dieser Situation gibt Aufschluß darüber, warum nie ein wartender Prozeß und eine Meldung in Q/LC/FLS vorhanden sein können, die auf eine freie Verkettung für dieses Semaphor warten.Furthermore, the LCTE entry of the ö / LC / FLS queue removed because it forwarded its message to the appropriate process. This comparison operation of the Semaphore labels in this situation indicate why there is never a waiting process and a message in Q / LC / FLS waiting for a free concatenation for this semaphore.

Daher wird in Schritt 3232 die Frage gestellt, ob der Logikkanal LC die gleiche Systembezeichnung besitzt, wie das aufgefundene Semaphor. Dies ergibt sich aus einer Suchoperation, die der. SPLQ-Unterroutine in Fig.24d entspricht. Es ist zuThe question is therefore asked in step 3232 whether the logic channel LC has the same system designation as the one found Semaphore. This results from a search operation that the. SPLQ subroutine in Fig. 24d corresponds. It's closed

509834/0830509834/0830

bemerken, daß die G-Nummer der System-Bezeichnung gefunden werden müßte, da das FLS-Semaphor durch das CCT-FeId angibt, daß eine simulierte V-Operation ohne Erfolg versucht wurde. Wenn diese G-Nummer nicht gefunden wird, tritt in Schritt 3230a eine illegale Semaphor-Ausnahme auf.note that the G number of the system designation would have to be found, since the FLS semaphore indicates through the CCT field, that a simulated V operation was attempted without success. If this G-number is not found, step 3230a occurs raises an illegal semaphore exception.

Obwohl die G-Bezeichnungen identisch sein können, kann die Verschiebungs-Nummer jedoch ungleich SRA sein; wenn diese Bedingung auftritt, wird Schritt 3234 durchgeführt, der einen Indikator im Hilfsspeicher 1317a auf Null positioniert. Hierdurch wird die SLCQ-Unterroutine beendet, da keine Λ Meldung zum Meldungs-Semaphor übertragen werden mußte, an dem der P-Befehl durchgeführt wird. Wenn die G- und D-Nummern der Systembezeichnung jedoch identisch mit den SEG und SRA-Nummern des Semaphor sind, lautet die Antwort auf die Frage in Schritt 3232 11Ja" und Schritt 3238 wird durchgeführt. Hierdurch wird der Indikator, der ein Flop im Hilfsspeicher 1317a ist, auf Eins positioniert, um anzugeben, daß die Meldung gefunden wurde und zu dem Prozeß übertragen werden kann, der den P-Befehl ausführt. In Schritt 3240 wird die Tabellen-Adresse des Logikkanals in der Position WD4 des Scratch-Pad-Speichers gespeichert, und in Schritt 3242 wird die Meldung in die Scratch-Pad-Positionen WE4 bis WE7 übertragen.Although the G designations can be identical, the offset number can be different from SRA; when this condition occurs, step 3234 is performed which positions an indicator in auxiliary memory 1317a to zero. This terminates the SLCQ subroutine, since no Λ message had to be transmitted to the message semaphore on which the P command is carried out. However, if the G and D numbers of the system name are identical to the SEG and SRA numbers of the semaphore, the answer to the question in step 3232 is 11 “yes” and step 3238 is performed Auxiliary memory 1317a is positioned at one to indicate that the message was found and can be transferred to the process executing the P instruction. In step 3240, the table address of the logic channel in position WD4 of the scratch pad Memory stored, and in step 3242 the message is transferred to the scratch pad positions WE4 to WE7.

Nach Speicherung dieser Adresse wird eineRückkehr zu Fig.32a durchgeführt. Wiederum wird die Frage gestellt, ob die LCTE-Eingabe gefunden wurde. Wenn die Antwort "nein" lautet, wird eine Rückverzweigung zu Fig.24a, 2403 durchgeführt, in der die Q/PR/FLS-Warteschlange gesucht wird. Wenn die Antwort "ja" lautet und angibt, daß die Meldung verfügbar ist, wird Schritt 3204 durchgeführt. In Schritt 3204 wird nun die Frage gestellt, ob der durchgeführte P-Befehl ein Testbefehl ist. Wenn dies der Fall ist, wird in Schritt 3206After storing this address, a return to Fig. 32a will be made carried out. Again the question is asked whether the LCTE input was found. If the answer is "no", a branch back to FIG. 24a, 2403 is carried out, in which the Q / PR / FLS queue is searched. If the answer is "yes" indicates that the message is available, step 3204 is performed. In step 3204 the Questioned whether the executed P command is a test command. If so, at step 3206

509834/0830509834/0830

Bin Bedingungs-Code auf Null positioniert, um zu kennzeichnen, daß der Befehl zu Ende gebracht wird, und Schritt 3208 wird durchgeführt. Wenn die Antwort "nein" lautet, kennzeichnet dies, daß der P-Befehl nicht vorläufig ist, und daher wird nun Schritt 3208 durchgeführt.Am conditional code positioned at zero to indicate that the command is completed and step 3208 becomes carried out. If the answer is "no", it indicates that the P command is not tentative, and therefore will now Step 3208 performed.

Schritt 3208 ist eine TMGR-Unterroutine, die die Übertragung der Meldung in die allgemeinen Register durchführt. Diese Unterroutine ist in Fig.32c dargestellt und beinhaltet den Schritt 3250, der die in den Scratch-Pad-Positionen WE4 bis WE7 enthaltene Meldung liest und sie in die allgemeinen Register GRO bis GR3 des Prozesses überträgt, der in Schritt 3252 den P-Befehl ausführt. Auf diese Weise ist die Meldung von Q/LC/FLS in die allgemeinen Register desProzesses übertragen worden, der den P-Befehl durchführt, ohne jemals in die Warteschlange des Meldungs-Semaphor P/M/S eingegliedert worden zu sein.Step 3208 is a TMGR subroutine that controls the transmission of reporting in the general registers. This subroutine is shown in Fig. 32c and includes the Step 3250, which is those in the scratch pad positions WE4 to WE7 reads the message contained and transfers them to the general registers GRO to GR3 of the process in step 3252 executes the P command. In this way the message from Q / LC / FLS is transferred to the general registers of the process which executes the P command without ever being queued for the message semaphore P / M / S to have become.

Bei Beendigung der TMGR-Unterroutine wird Schritt 3210 durchgeführt, der das Hardware-Gatter sperrt. Da die Meldung in der Logiklcanal-Tabelleneintragung dem entsprechenden Prozeß zugeleitet worden ist, wird die Anzeige, daß eine nicht erfolgreiche simulierte V-Operation aufgetreten ist, negiert.Nun müssen die Operationen zur Ergänzung des Status der verschiedenen Warteschlangen durchgeführt werden. In Schritt 3212 wird das Kanal-Zählfeld des freien Verkettungs-Seinaphor des SD-Segments um Eins inkrementiert. Dies kennzeichnet, daß eine -erfolglose Meldungs-Übertragung weniger vorhanden ist. Der aktualisierte Kanal-Zählwert wird nun in Schritt 3214 in das freie Verkettungs-Semaphor im Häuptspeicher eingeschrieben. In Schritt 3216 wird die Logikkanal-Tabelleneingabe aus der Q/LC/FLS-Warteschlange entfernt und die serielle Reihenfolge der V/arteschlange wird geändert,Upon completion of the TMGR subroutine, step 3210 is performed which disables the hardware gate. Since the message has been forwarded to the appropriate process in the logic channel table entry, the indication that a unsuccessful simulated V-operation has occurred is negated. Now the operations to supplement the status of the various queues. In step 3212 the channel count field becomes the idle concatenation saphore of the SD segment is incremented by one. This indicates that one unsuccessful message transmission is less is available. The updated channel count is now written into the free concatenation semaphore in main memory in step 3214. In step 3216 the logic channel table entry removed from the Q / LC / FLS queue and the serial order of the queue is changed,

509834/0830509834/0830

um das Entfernen dieser Verkettung zu verhindern. Die Adresse dieser LGTE war von der SLCQ-Unterroutine in Position WD4 des Scratch-Pad-Speichers abgespeichert worden. In Schritt 3218 wird der Status des Logikkanals aktualisiert, um zu kennzeichnen, daß eine erfolgreiche simulierte V-Operation durchgeführt wurde, da die Meldung dem entsprechenden Prozeß zugeleitet wurde. Schritt 3220 gibt das Hardware-Gatter frei, um zu kennzeichnen, daß die !unteilbare Operation durchgeführt worden ist. In Schritt 3222 wird der Befehlezähler inkrementiert und der nächste Befehl wird wie in Schritt 3224 dargestellt, durchgeführt.to prevent this concatenation from being removed. The address this LGTE was from the SLCQ subroutine in position WD4 of the scratch pad memory. In step 3218 the status of the logic channel is updated to indicate that a successful simulated V-operation was performed because the message was sent to the appropriate process. Step 3220 enables the hardware gate to indicate that the indivisible operation has been performed. In step 3222 the instruction counter is incremented and the next command is performed as shown in step 3224.

Wenn bei der Suchoperation, von Q/LC/FLS nicht die relative Segmentadresse SRA gleich der Verschiebungs-Nummer "D" der Systembezeichnung festgestellt wurde, wird der Prozeß, der deiP-Befehl durchführt, wie in Fig.24 dargestellt, in den Warte-Status versetzt.If during the search operation, from Q / LC / FLS not the relative Segment address SRA is found to be equal to the displacement number "D" of the system name, the process becomes the executes the deiP command, as shown in Fig. 24, in the Waiting status moved.

Außerdem würde die Q/LC/FLS nicht geändert, da der P-Befehl keine LCTE-Eingabe erzeugt hat, die eine Meldung speichert.In addition, the Q / LC / FLS would not be changed as the P command has not generated an LCTE entry that stores a message.

Damit ist dargestellt worden, daß sowohl der Zentral-Ausnahme-Mechanismus wie auch der System-Geschehnis-Abfragemechanismus als Pseudo-Verfahren arbeiten und die Übertragung von Daten durch simulierte'^-Operationen zu Prozessen in der Zentraleinheit ermöglichen.Da der Zugriff zum Semaphor für die simulierte V-Operation mit Hilfe der Systembezeichnung G, D erfolgt, wird dagegen in allen Situationen die SEG, SRA-Bezeichnung durch die Durchführung der Basis-Überprüfung des Semaphor-Zählfeldes mit der V-Operation durchgeführt. Diese Überprüfung kontrolliert die eventuelle Übertragung der Meldung. Wenn daher das SCT-FeId negativ ist, ist amThis shows that both the central exception mechanism as well as the system incident query mechanism work as a pseudo-method and the transmission of Data through simulated '^ operations to processes in the The central processing unit enables access to the semaphore for the simulated V operation with the help of the system designation G, D, on the other hand, the SEG, SRA designation is used in all situations when the basic check is carried out of the semaphore count field is carried out with the V operation. This check checks the eventual transmission of the report. Therefore, when the SCT field is negative, am is

50983 4/083 050983 4/083 0

Q/PR/S-Semaphor eine Warteschlange von Prozessen angegliedert. Wenn die simulierte V-Operation dem Semaphor eine Meldung zuführt, wird der erste Prozeß in der Warteschlange entfernt und in die Bereit-Warteschlange Q/PR/RDY eingegliedert. Die von der simulierten V-Operation erzeugte Meldung wird durch Übertragen des Inhalts der Scratch-Pad-Positionen WE4 bis WE7 in die allgemeinen Register GRO bis GR3 desProzess-Steue'rblocks des an das Seroaphor angegliederten Prozesses übertrage^ Zusätzlich wird das SCT-FeId des Semaphor, an das nun ein Prozeß weniger angegliedert ist, um 1 inkrementiert.Q / PR / S semaphore attached to a queue of processes. When the simulated V operation sends a message to the semaphore feeds, the first process in the queue is removed and placed in the ready queue Q / PR / RDY. the The message generated by the simulated V operation is transmitted by transmitting the content of the scratch pad positions WE4 to WE7 into the general registers GRO to GR3 of the process control block of the process attached to the Seroaphore ^ In addition, the SCT field of the semaphore to which a Process less affiliated, incremented by 1.

Wenn das SCT-FeId nicht positiv ist, wartet kein Prozeß an diesem Semaphor, für den diese Meldung bestimmt ist.If the SCT field is not positive, no process is waiting at this semaphore for which this message is intended.

Die Meldung wird nun in das SD-Segment übertragen, das das Semaphor enthält und mit dem Q/M/S-Semaphor verbunden ist« Wenn keine Übertragung der Meldung in eine freie MeIdungs-Verkettung möglich ist, wird eine Q/LC/FLS für die Eingabe/Ausgabe-Unterbrechung aufgebaut. Der Zentral-Ausnahme-Mechanismus würde keire Q/LC/FLS abrufen, da er eine andere Ausnahmebedingung erzeugt und dadurch den System-Check-Status« The message is now transferred to the SD segment, the contains the semaphore and is connected to the Q / M / S semaphore is «If the message cannot be transmitted in a free message chain, a Q / LC / FLS constructed for the input / output interruption. The central exception mechanism would not call Q / LC / FLS because it generates a different exception and thereby the system check status «

Daher ist beschrieben, worden, wie' sich aus einer Eingabe/ Ausgabe-Unterbrechung eine bedingte Operation ergibt. Die erste Bedingung ist die Blockierung des Hardware-Gatters. In dieser Situation ist eine Feststellung getroffen worden, daß die laufende Prozedurausführung wichtiger als die Übertragung der Meldung vom Eingabe/Ausgabe-Untersystem aus ist. Die zweite Bedingung tritt nach der Übertragung der Eingabe/ Ausgabe-Meldung zur Zentraleinheit auf. Diese Meldung hängt ursprünglich vom nun vorhandenen Status der Zentraleinheit ab, d.h. ob ein Prozeß bereits die Meldung angefordert hat, oder ob die Meldung dem entsprechenden Semaphor zugeführtIt has therefore been described how 'an input / Output interrupt results in a conditional operation. The first condition is the blocking of the hardware gate. In this situation, a determination has been made that the current procedure execution is more important than the transmission the message from the input / output subsystem. The second condition occurs after the input / Output message to the central unit. This message originally depends on the current status of the central unit i.e. whether a process has already requested the message or whether the message is sent to the corresponding semaphore

98 34/083098 34/0830

-.229 --.229 -

werden kann. Schließlich wird die Meldung jedoch dem entsprechenden Prozeß zugeführt. Diese Übertragung kann durch die Priorität der Meldung beschleunigt werden. In gleicher Weise wird nun die Priorität des Prozesses, wenn er nicht die Kontrolle über die Zentraleinheit besaß , wichtig, da der Prozeß prioritätsbezogen in die Gl/PR/RDY eingegliedert wird. Nun wird die Meldung mit den internen Meldungen integriert und hängt vom Status des Datenverarbeitungs-Systems als Ganzes ab. Daher hängt die Übertragung von Meldungen vom Status des Semaphor ab, an dem die simulierte V-Operation abläuft und ebenfalls vom Status des System, d.h. von der Priorität des laufenden Prozesses und dsr anderen Prozesse in der Q/PR/RDY-Warteschlange· can be. Eventually, however, the message will be the appropriate one Process fed. This transfer can through the priority of the message can be accelerated. In the same way, the priority of the process will now be given, if it is not had control over the central unit, important because the process was integrated into the Gl / PR / RDY in a priority-related manner will. The message is now integrated with the internal messages and depends on the status of the data processing system as a whole away. The transmission of messages therefore depends on the status of the semaphore on which the simulated V-operation is running and also on the status of the system, i.e. on the priority the running process and the other processes in the Q / PR / RDY queue

Obwohl die Erfindung in Verbindung mit einer, speziellen Ausführungsform beschrieben wurde, sind für Fachleute jedoch zahlreiche Abänderungsmöglichkeiten erkennbar. Es ist daher beabsichtigt, die Erfindung weitestgehend im Sinne und im Rahmen der beigefügtenPatentansprüche zu decken.Although the invention in connection with a specific Embodiment has been described, however, numerous modification possibilities will be apparent to those skilled in the art. It is therefore intends to the invention as far as possible in the sense and in To cover the scope of the attached patent claims.

5Q9834/G83Ö5Q9834 / G83Ö

Claims (19)

PatentansprücheClaims 1. Semaphor-Vorrichtung für ein Mehrprogramm-Datenverarbeitungs-System, in dem Daten zwischen Prozessen ausgetauscht werden, dadurch gekennzeichnet, daß das System in seinem Hauptspeicher Datenstrukturen enthält, die als Semaphore bezeichnet werden, und zur Speicherung von Daten oder von Prozessen, die Daten anfordern, verwendet werden, wobei das System automatisch eine Gruppe von Prozeß-Synchronisations-Befehlen durchführt, von denen jeder eine Übertragung der Daten von einem Prozeß zu einem anderen freigibt, daß das System eine Einrichtung enthält, die abhängig von jedem Befehl eines der Semaphore adressiert, daß das System eine Einrichtung enthält, die abhängig \on einem bestimmten Feld in einem Semaphor anzeigt, ob die Daten übertragen werden können, daß das System eine von der Anzeige-Einrichtung abhängige Einrichtung zur Übertragung der Daten durch das Semaphor entsprechend jedem der Befehle enthält und daß das System eine von der Übertragungseinrichtung abhängige Einrichtung zur Aktualisierung des Semaphor entsprechend dem Typ jedes ausgeführten Befehls enthält.1. Semaphore device for a multi-program data processing system, in which data are exchanged between processes, characterized in that the system contains in its main memory data structures called semaphores and for storage by data or by processes requesting data, the system automatically sending a Carries out a group of process synchronization commands, each of which enables a transfer of data from one process to another that the system contains a device which, depending on each command, addresses one of the semaphores that the system contains a facility which, depending on a specific field in a semaphore, indicates whether the data can be transmitted that the system is dependent on the display device Means for transmitting the data through the semaphore corresponding to each of the commands and that the System a device dependent on the transmission device for updating the semaphore accordingly the type of each command executed. 2. Semaphor-Vorrichtung für ein Datenverarbeitungs-System, das über mehrere Semaphore verfügt,nach Anspruch 1, dadurch gekennzeichnet, daß jedes der Semaphore einen ausgewählten Status besitzt, der auf die verschiedenen Operationen des Systems zurückzuführen ist, wobei der Status so gestaltet ist, daß einige der Semaphore zu jedem bestimmten Zeitpunkt Daten speichern können und andere Semaphore Prozesse speichern, während die restlichen Semaphore weder2. Semaphore device for a data processing system which has several semaphores according to Claim 1, characterized in that each of the semaphores has a selected status, the can be traced back to the various operations of the system, the status being such that that some of the semaphores can store data at any given point in time and other semaphore processes save while the remaining semaphores neither 509834/0830509834/0830 Daten noch Prozesse speichern, daß das System einen Befehl zur Initialisierung eines der Semaphore durchführt, daß eine auf die Befehle ansprechende Einrichtung vorgesehen ist, die ein Semaphor adressiert, daß eine Einrichtung vorgesehen ist, die abhängig von der Adresäerungs-Einrichtung den Status des Semaphor adressiert, und daß eine von der Bestimmungs-Einrichtung abhängige Einrichtung vorgesehen ist, die den Befehl entsprechend dem Status des Semaphor ausführt.Data still store processes that the system executes a command to initialize one of the semaphores, that a device responsive to the commands is provided which addresses a semaphore, that a device is provided, which depends on the addressing device the status of the semaphore is addressed, and that a device dependent on the destination device is provided that executes the command according to the status of the semaphore. 3. Semaphor-Vorrichtung nach Anspruch Λ für ein Daten-Verarbeitungs-System mit einem zentralen Verarbeitungs-Untersystem, das informationen unter der Steuerung durch einen aus mehreren Prozessen ausgewähltenProzeß verarbeitet, von denen jeder mehrere Befehle umfaßt, wobei bei dem System auch außerhalb der Ausführung der Befehle Geschehnisse auftreten, während die Befehle dieser Prozesse ausgeführt werden, dadurch gekennzeichnet, daß eine Vorrichtung zur Freigabe der Übertragung von Informationen über die Geschehnisse zu den Prozessen vorgesehen .ist,die eine abhängig von dem ausgewählten Befehlsverarbeitungsprozeß abhängige Einrichtung, eine vom Ende des Befehls abhängige Einrichtung zur Feststellung des Auftretens des externen Geschehnisses sowie eine abhängig von der Feststellungseinrichtung arbeitende Einrichtung zur übertragung der Information über das Geschehnis zu einem der mehreren Prozesse enthält.A semaphore device according to claim Λ for a data processing system having a central processing subsystem which processes information under the control of a process selected from a plurality of processes, each of which comprises a plurality of instructions, the system also being out of execution of the commands, events occur while the commands of these processes are being executed, characterized in that a device for enabling the transmission of information about the events to the processes is provided, which device is dependent on the selected command processing process, one on the end of the command dependent device for determining the occurrence of the external incident as well as a device operating independently of the determining device for transmitting the information about the incident to one of the plurality of processes. 4. Semaphor-Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Übertragungseinrichtung die Daten von dem einen Semaphor zu einem der Prozesse überträgt, und daß die Aktualisierungseinrichtung den Zählwert des bestimmten Feldes in dem einen Semaphor erniedrigt.4. Semaphore device according to claim 1, characterized in that that the transmission device transmits the data from the one semaphore to one of the processes, and that the update device decreases the count of the particular field in the one semaphore. 5. Semaphor-Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Übertragungseinrichtung die Daten von5. Semaphore device according to claim 1, characterized in that that the transmission device receives the data from einem der Prozesse zu dem einen Semaphor überträgt und daß die Aktualisierungseinrichtung denZählwert d3S bestimmten Feldes des einen Semaphor erhöht.one of the processes to the one semaphore and that the update device transmits the count d3S certain field of a semaphore increased. 6. Semaphor-Vorrichtung nach Zuspruch 1, für ein Mehrprogramm-Datenverarbeitungs-System mit mehreren Prozessen, mit einer Warteschlangen-Organisation für Prozesse im Bereit-Zustand und im Warte-Zustand im Hauptspeicher, mit mehreren Semaphores, die jeweils Prozesse im Warte-Status halten können, wobei Jeder Prozeß im Bereitoder im Warte-Status durch eine Prozeß-Verkettung repräsentiert ist, und ein Prozeß im' •Funktions-Status in dem System einen Befehl ausführt, der Daten über mehrere Steuersignale anfordert, gekennzeichnet durch eine abhängig von dem Befehl eines . der mehreren Semaphore adressierende Einrichtung, eine abhängig von dem Befehl mehrere Steuersignale erzeugende Einrichtung, von denen jedes für eine Abstands-Operation in dem System sorgt,eine Einrichtung, die abhängig von einem ersten Steuersignal -prüft,ob das eine Semaphor die Daten festhält, eine Einrichtung die abhängig von einem zweiten Steuersignal die Daten von dem einen Semaphor zu dem Prozeß überträgt, wenn die Prüfeinrichtung anzeigt, daß das eine Semaphor Daten festhält, und Einrichtungen, die abhängig von einem dritten Steuersignal das eine Semaphor aktualisiert, damit es anzeigt, daß es eine Datenmenge weniger enthält.6. Semaphore device according to claim 1, for a multi-program data processing system with several processes, with a queue organization for processes in the ready state and in the waiting state in the main memory, with several semaphores, each of which can hold processes in the waiting status, whereby each process is in standby or is represented in the waiting status by a process chain, and a process in the '• function status executes an instruction in the system that requests data via multiple control signals by one depending on the command one. the device addressing several semaphores, a depending on the command a plurality of control signals generating device, each of which for one Distance operation in the system provides a facility which, depending on a first control signal, checks whether the one semaphore is holding the data, a Device which, depending on a second control signal, transmits the data from one semaphore to the process, if the test facility indicates that the one semaphore is holding data, and facilities that depend from a third control signal that updates a semaphore to indicate that there is one less amount of data contains. 7. Semaphor-Vorricntung nach Anspruch 6, dadurch gekennzeichnet, daß eine Einrichtung vorgesehen ist, die abhängig von einem vierten Steuersignal den Prozeß zu einer mit dem einen Semaphor verbundenen Warteschlange überträgt, wenn die Prüfeinrichtung anzeigt, daß das7. Semaphore device according to claim 6, characterized in that that a device is provided which, depending on a fourth control signal, the process a queue connected to the one semaphore when the test equipment indicates that the 509834/0830509834/0830 eine Semaphor keine Daten enthält.a semaphore contains no data. 8. Semaphor-Vorrichtung nach Anspruch 7, gekennzeichnet durch eine Einrichtung, die abhängig von einem fünften Steuersignal angibt, ob der Befehl ein Prüfbefehl ist, und eine Einrichtung, die abhängig von einem sechsten Steuersignal die Datenanforderung verhindert, wenn der Befehl ein Prüfbefehl ist, wobei der Prozeß abhängig von der Verhinderungseinrichtung seinen nächsten Befehl ausführt.8. semaphore device according to claim 7, characterized by a device which, depending on a fifth control signal, indicates whether the command is a test command, and a facility dependent on a sixth Control signal prevents the data request if the Command is a test command, the process being dependent from the prevention device executes its next command. 9. Semaphor-Vorrichtung nach Anspruch 6, dadurch gekennzeichnet, daß die Daten eine Meldung sind, und daß die Übertragungseinrichtung diese Meldung dem Prozeß aus einer die Meldung speichernden, mit dem einen Semaphor verbundenen Warteschlange zuführt, wenn die Testeinrichtung anzeigt, daß das eine Semaphor Meldungen enthält.9. semaphore device according to claim 6, characterized in that the data is a message, and that the Transfer device this message to the process from a message that stores the message, with the one Semaphore connected queue when the Test facility indicates that the semaphore contains messages. 10. Semaphor-Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß der Status des einen Semaphores anzeigt, daß es Daten speichert, wobei die Ausführungseinrichtung das eine Semaphor auf einen vorbestimmtenWert initialisiert,10. Semaphore device according to claim 2, characterized in that the status of a semaphore indicates that it stores data, the execution means initializing the one semaphore to a predetermined value, 11. Semaphor-Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß die Daten eine Meldung sind, und daß der vorbestimmte Wert der Wert Null ist.11. Semaphore device according to claim 10, characterized in that that the data is a message and that the predetermined value is the value zero. 12. Semaphor-Vorrichtung nach Anspruch 10, dadurch gekennzeichnet, daß in dem Fall, in dem die Daten keine Meldung sind, der vorbestimmte Wert eine Zahl ist, die in den allgemeinen Registern des den Befehl ausführenden Irozesses gespeichert ist.12. Semaphore device according to claim 10, characterized characterized in that in the case where the data is not a message, the predetermined value is a number which is stored in the general registers of the Irocess executing the instruction. 509834/509834 / 13. Semaphor-Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß der Status des einen Semaphores anzeigt, daß dieses Semaphor Prozesse speichert, wobei die Ausführungseinrichtung abhängig von diesem Status die Befehle sperrt und eine Ausnahme-Routine freigibt.13. Semaphore device according to claim 2, characterized in that that the status of one semaphore indicates that this semaphore is storing processes, the executor blocks the commands and enables an exception routine depending on this status. 14. Semaphor-Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß das Geschehnis eintritt, wenn einer der .BefeMß nicht vollständig ausgeführt werden kann, wobei das Geschehnis das Ausnahmebehändlungs -Flop zur Anzeige einer Ausnahmebedingung setzt, und daß die Abtasteinrichtung das Ausnahmebehandlungs-Flop abtastet.14. Semaphore device according to claim 3, characterized in that that the event will occur if one of the commands cannot be fully carried out, whereby the event sets the exception handling flop to indicate an exception condition, and that the scanner samples the exception handling flop. 15. Verfahren zur Übertragung von Informationen über ein außerhalb des Betriebs eines zentralen Verarbeitungs-Untersystems stattfindenden Geschehnisses zu. einem von mehreren Prozessen in einer zentralen Verarbeitungseinheit über eine Semaphor-Vorrichtung nach den Ansprüchen 3 bis 14, dadurch gekennzeichnet, daß die Informationen in einer Warteschlange aus logischen Kanälen in einer logischen Kanal-Tabelle Q/LC/EVQ gespeichert werden, das am Ende des laufenden Befehls des Prozesses in der zentralen Verarbeitungseinheit festgestellt wird, ob ein externes Geschehnis aufgetreten ist, und daß zur Übertragung der !Informationen zu einem der mehreren Prozesse in der zentra-' len Verarbeitungseinheit eine simulierte V-Operation ausgeführt wird.15. Method of transferring information about a happening outside of the operation of a central processing subsystem. one of several processes in a central processing unit via a semaphore device according to the claims 3 to 14, characterized in that the information stored in a queue of logical channels in a logical channel table Q / LC / EVQ, the at the end of the current command of the process in the central processing unit it is determined whether an external Incident has occurred and that for the transmission of the! Information to one of the several processes in the central len processing unit performed a simulated V operation will. 16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß bei der Feststellung des Endes des laufenden Befehls geprüft wird, ob ein Hardware-Gatter freigegeben ist, daß geprüft wird, ob ein Interface-Flop-gesetzt ist, und daß die Durchführung der simulierten V-Operation ausgesetzt wird, wenn einer der Prüfschritte eine Negativ-Anzeige ergibt.16. The method according to claim 15, characterized in that When the end of the current command is determined, it is checked whether a hardware gate is enabled, that it is checked whether an interface flop is set and that the execution of the simulated V operation is suspended if one of the test steps shows a negative indication. 5Q9834/Ö835Q9834 / Ö83 - .235 -- .235 - 17. Verfahren nach Anspruch 12, dadurch gekennzeichnet, daß bei der Ausführung der simulierten V-Operation ein Semaphor adressiert wird, zu dem die Informationen geleitet werden, daß ein ausgewähltes Feld des Semaphores überprüft wird, um den Status des Semaphores festzustellen, und daß die Informationen zu einem bei dem Semaphor eingereihten Prozeß übertragen werden, wenn das ausgewählte Feld negativ ist. .17. The method according to claim 12, characterized in that a semaphore when executing the simulated V-operation is addressed to which the information is passed that a selected field of the semaphore is checked, to determine the status of the semaphore and that the information about one queued with the semaphore Process if the selected field is negative. . 18. Verfahren nach Anspruch 17, wobei das ausgewählte Feld nicht negativ ist, dadurch gekennzeichnet, daß bei der Ausführung der simulierten V-Operation ein ausgewähltes Feld eines freien Verkettungs-Semaphores im gleichen Segment überprüft wird, um zu bestimmen, ob freie Meldungsverkettungen verfügbar sind, das bei der Übertragung der Informationen zu dem Semaphor erfolgt, wenn freie Meldungsverkettungen verfügbar sind, und daß die Übertragung der Informationen zu einer Warteschlange Q/LC/FLS erfolgt, wenn freie Meldungsverkettungen nicht verfügbar sind.18. The method according to claim 17, wherein the selected field is not negative, characterized in that the Execution of the simulated V-operation a selected field of a free concatenation semaphore in the same Segment is checked to determine whether free message chains are available when the The information is transmitted to the semaphore when free message chains are available, and that the information is transferred to a queue Q / LC / FLS if there are free message chains are not available. 19. Semaphor-Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß in einem Datenverarbeitungs-System mit einem zentralen ^erarbeitungs-Untersystem und mit einem Eingabe-Ausgabe-Untersystem eine Vorrichtung zur Übertragung von Meldungen über Geschehnisse in dem EingaberAusgabe-Untersystem zu einem von mehreren Prozessen in dem zentralen Verarbeitungs-Untersystem enthalten ist, daß diese Vorrichtung abhängig von den Geschehnissen arbeitende Speichereinrichtungen zum Speichern der Meldungen aus dem Eingabe-Ausgabe-Untersystem sowie zweite Speichereinrichtungen zum Speichern mehrerer Semaphore, die jeweils von den Meldungen identifiziert werden, enthält, daß in der Vorrichtung Einrichtungen enthalten sind, die abhängig von den ersten Speichereinrich-19. Semaphore device according to claim 3, characterized in that in a data processing system with a central ^ processing subsystem and with an input-output subsystem a device for the transmission of messages about events in the input r output subsystem to a is contained by several processes in the central processing subsystem that this device contains memory devices, which work as a function of the events, for storing the messages from the input-output subsystem and second memory devices for storing a plurality of semaphores which are each identified by the messages, that the device contains devices that depend on the first storage device 5Q9834/G'83G5Q9834 / G'83G tungen 3ede der Meldungen bedingt abhängig vom Status des identifizierten Semaphores zur einem der Prozesse übertragen, daß ein Hardware-Gatter vorgesehen ist, das anzeigt, wenn eine kritische Operation vorliegt, daß die Einrichtungen zur bedingten Übertragung der Meldungen vierte Einrichtungen zum Prüfen des Hardware-Gatters enthalten, wobei die Überprüfungseinrichtungen die übertragung von Meldungen sperren, wenn das Hardware-Gatter gesetzt ist, daß erste Prüfeinrichtungen zum Prüfen eines ausgewählten Feldes des von der Meldung identifizierten Semaphores vorgesehen sind, wobei das ausgewählte Feld anzeigt, daß das Semaphor Prozesse enthält, wenn das ausgewählte Feld negativ ist, sowie Meldungen enthält, wenn das ausgewählte Feld positiv ist, und daß die ersten Prüfeinrichtungen die Übertragung der Meldung zu einem der Prozesse freigeben, wenn das ausgewählte Feld negativ ist.Each of the messages is conditionally dependent on the status of the identified semaphore transmitted to one of the processes that a hardware gate is provided that indicates, when there is a critical operation, that the facilities are conditionally transmitting the messages fourth devices for checking the hardware gate contain, the checking devices the Block transmission of messages when the hardware gate is set, that first test equipment for Check a selected field of the message identified semaphores are provided, the selected field indicating that the semaphore processes contains if the selected field is negative and contains messages if the selected field is positive is, and that the first test equipment is the transmission of the message to one of the processes if the selected field is negative. 503834/0830503834/0830
DE19742456534 1973-11-30 1974-11-29 DATA PROCESSING SYSTEM Granted DE2456534A1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR7342696A FR2253423A5 (en) 1973-11-30 1973-11-30
FR7342712A FR2253414A5 (en) 1973-11-30 1973-11-30 Semaphore arrangement for multi-programme data-processing system - with exchange of data between processes
FR7342697A FR2253420A5 (en) 1973-11-30 1973-11-30
FR7342691A FR2253418A5 (en) 1973-11-30 1973-11-30

Publications (2)

Publication Number Publication Date
DE2456534A1 true DE2456534A1 (en) 1975-08-21
DE2456534C2 DE2456534C2 (en) 1988-05-05

Family

ID=27446249

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742456534 Granted DE2456534A1 (en) 1973-11-30 1974-11-29 DATA PROCESSING SYSTEM

Country Status (3)

Country Link
JP (1) JPS6112291B2 (en)
DE (1) DE2456534A1 (en)
GB (1) GB1484459A (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63128794U (en) * 1987-02-14 1988-08-23
GB2216306A (en) * 1988-02-29 1989-10-04 Ardent Computer Corp Load and synchronize computer architecture and process

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
BERNSTEIN, A.J., DETLEFSEN, G. D., KERR, R.H., Prozeßsteuerung und Kommunikation, In: A & M Second Symposium of Operating Systems, 1969, S. 60-67 *
DIJKSTRA, E.W. "Cooperating Seguential Processes" in Programming Languages, Academic Press, New York, 1968, S. 43-112 *
DIJKSTRA, Edsger W., The Structure of the "THE"-Multiprogramming System, In: Communications of the ACM, 1968, Nr. 5, S. 341-346 *
HUSSON, Samir Microprogramming Principles and Practices, Prentice-Hall Inc., 1970, S. 491-505 *
IBM Technical Disclosure Bulletin, Vol. 15, No. 5,October 1972, S. 1643,1644 *

Also Published As

Publication number Publication date
AU7588074A (en) 1976-06-03
GB1484459A (en) 1977-09-01
JPS6112291B2 (en) 1986-04-07
JPS50117331A (en) 1975-09-13
DE2456534C2 (en) 1988-05-05

Similar Documents

Publication Publication Date Title
DE2459675A1 (en) DATA PROCESSING SYSTEM
DE2517171A1 (en) DATA PROCESSING SYSTEM WITH EXTENDED SEMAPHOR STRUCTURE
DE2411963C3 (en) Electronic data processing system with a priority control circuit with changeable control blocks
DE2722099C2 (en)
DE2714805C2 (en)
DE2657848A1 (en) CONTROL UNIT FOR A DATA PROCESSING SYSTEM
DE2449547A1 (en) COMPUTER AND DATA PROCESSING SYSTEM
DE3114961A1 (en) DATA PROCESSING SYSTEM
DE1437698A1 (en) Method and device for transmitting information
DE2755371A1 (en) INPUT / OUTPUT PROCESSING SYSTEM
DE2612139A1 (en) INPUT / OUTPUT CONTROL SYSTEM
DE3131341A1 (en) &#34;BUFFER STORAGE ORGANIZATION&#34;
DE2209282A1 (en) Data processing system
DE2847216A1 (en) DATA PROCESSING SYSTEM WITH MULTIPROGRAM OPERATION
DE1524102B2 (en) ELECTRONIC DATA PROCESSING MACHINE CONSTRUCTED FROM COMPONENTS
DE2165767A1 (en) Data processing system
DE2744251A1 (en) MULTIPROGRAM / MULTI-PROCESS COMPUTER SYSTEM
DE112018006124T5 (en) MERGING ENTRIES OF GLOBAL CLOSING TABLES IN AN OoO PROCESSOR
DE1549474C3 (en) Arrangement In an electronic digital data processing system for the execution of a first command and simultaneous decoding of a following command
DE2459956A1 (en) PROCESSOR AND PERIPHERAL PROCESSING SYSTEM USING IT
DE4207158A1 (en) MEMORY ACCESS CONTROL
DE2801563A1 (en) DIALOG PROCESSOR
DE10104209A1 (en) A method and system for increasing performance by replacing a controller of a finite state machine with hardware implemented data structure manipulation
CH626735A5 (en)
DE2747633A1 (en) IT SYSTEM WITH AN INTERRUPTION DEVICE

Legal Events

Date Code Title Description
OGA New person/name/address of the applicant
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition