FR2610745A1 - Process priority control system - Google Patents

Process priority control system Download PDF

Info

Publication number
FR2610745A1
FR2610745A1 FR8801446A FR8801446A FR2610745A1 FR 2610745 A1 FR2610745 A1 FR 2610745A1 FR 8801446 A FR8801446 A FR 8801446A FR 8801446 A FR8801446 A FR 8801446A FR 2610745 A1 FR2610745 A1 FR 2610745A1
Authority
FR
France
Prior art keywords
priority
processor
processes
processors
executable
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
FR8801446A
Other languages
French (fr)
Other versions
FR2610745B1 (en
Inventor
Yasushi Yokoyama
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of FR2610745A1 publication Critical patent/FR2610745A1/en
Application granted granted Critical
Publication of FR2610745B1 publication Critical patent/FR2610745B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

a) Process priority control system. b) The system includes registers 50-51-52-53-10 which store the priorities of the processes which are being executed by the respective processors 100-101-102-103 and the priority of the process which has just become executable, as well as a means 30 for priority judgement which, on the basis of these priorities stored in the registers, determines the process which has to be the subject of an exchange with the process which has just become executable. c) The invention makes it possible to reduce the time wasted by a central processing unit used by the operating system when switching a process in order to improve the efficiency of the system by eliminating, for the processor which generates a new process, the necessity to make a judgement to determine the processor which must be the subject of an exchange, this judgement being given by the priority judgement means.

Description

SYSTEME DE COMMANDE DE PRIORITÉ DE PROCESSUS.PROCESS PRIORITY CONTROL SYSTEM.

La présente invention se rapporte à un système de commande de priorité de processus dans un système de traitement des données du type multiprocesseur comportant des fonctions de commande de multiprogrammation. The present invention relates to a process priority control system in a multiprocessor type data processing system comprising multiprogramming control functions.

La commande de multiprogrammation comprend une fonction pour commuter les programmes de façon à exécuter différents processus, nombreux, en parallèle, à haut rendement. Cette fonction est l'une des fonctions de commande importantes et fondamentales pour améliorer les performances des ordinateurs. The multiprogramming control includes a function to switch programs to execute many different processes, many in parallel, at high efficiency. This function is one of the important and fundamental control functions to improve the performance of computers.

Lorsqu'unie telle commande multiprogrammation est réalisée en tant que fonction d'un processeur central, un processus est choisi par une unité de commande qui fait partie du matériel. Un processus présentant la priorité la plus haute est choisi parmi plusieurs processus exécutables pour être exécuté par ledit processeur central. Par exemple, pendant qu'un processus en cours d'exécution attend l'achèvement d'une opération d'entrée/sortie correspondant à la demande d'entrée/sortie présentée par le processus, ce processus est placé à l'état d'attente, de sorte que c'est un processus présentant une priorité plus forte, parmi plusieurs processus exécutables, qui vient occuper ledit processeur central en tant que ressource du matériel.Lors de l'achèvement de ltopération d'entrée/sortie, si. le processus qui a été placé en état d'attente devient exécutable, la priorité du processus en cours d'exécution est comparée avec la priorité du processus en attente et l'ordre de l'exécution est commuté, si nécessaire.When such multiprogramming control is performed as a function of a central processor, a process is chosen by a control unit which is part of the hardware. A process having the highest priority is chosen from several executable processes to be executed by said central processor. For example, while a running process is waiting for the completion of an input / output operation corresponding to the input / output request presented by the process, that process is placed in the state of wait, so that it is a process with a higher priority, among several executable processes, which occupies said central processor as a resource of the material. Upon completion of the input / output operation, if. the process which has been placed in the waiting state becomes executable, the priority of the running process is compared with the priority of the waiting process and the order of execution is switched, if necessary.

Comme mentionné ci-dessus, lorsqu'un processus en cours d'exécution est placé en état d'attente pour laisser le processeur central à disposition d'un autre processus exécutable, ou lorsqu'un processus vient de s'ajouter à la file d'attente des processus exécutables, les priorités respectivement présentées par ces processus sont comparées pour effectuer une commande de comparaison pour déterminer quel sera le processus qui passera ensuite. As mentioned above, when a running process is placed in a waiting state to leave the central processor available to another executable process, or when a process has just been added to the queue. Waiting for the executable processes, the priorities respectively presented by these processes are compared to carry out a comparison command to determine which will be the process which will pass next.

Pour satisfaire la demande d'une importante augmentation de capacité de traitement, on a récemment proposé un processeur de données (auquel on se réfère ci-dessous comma à un système multiprocesseur) qui accouple étroitement plusieurs unités de processeurs centraux (auxquels on se réfère ci-dessous comme processeurs). Dans le système multiprocesseur de ce type, dans la file d'attente des processus exécutables, le système prélève un processus en correspondance avec chaque processeur et le place dans un état d'exécution actif. Ceci permet d'exécuter simultanément en parallèle un nombre de processus équivalent au nombre de processeurs.Lorsqu'un processus exécutable vient d'être généré dans un tel système, les priorités présentées par les différents processus (priorité en cours CPRI) qui sont en cours d'exécution sur les différents processeurs sont comparées à la priorité accordée au nouveau processus (priorité NPRI). Si l'une quelconque des priorités CPRI en cours est plus faible que la nouvelle priorité NPRI, un processeur dans lequel le processus présentant la priorité en cours CPRI la plus faible est sur le point d'être exécuté commence à exécuter le processus ayant la nouvelle priorité (priorité NPRI) et ce processus qui présente la plus faible priorité en cours vient s'ajouter à la file d'attente des processus exécutables (opération dénommée échange des processus).S'il n'y a pas de priorité en cours CPRI plus faible que la nouvelle priorité NPRI, tous les processeurs poursuivent l'exécution des processus qu'ils étaient en train d'exécuter avant la comparaison. To meet the demand for a significant increase in processing capacity, a data processor (to which we refer below as a multiprocessor system) has recently been proposed which closely couples several central processor units (to which we refer below. below as processors). In the multiprocessor system of this type, in the queue of executable processes, the system takes a process in correspondence with each processor and places it in an active execution state. This makes it possible to execute simultaneously in parallel a number of processes equivalent to the number of processors. When an executable process has just been generated in such a system, the priorities presented by the different processes (priority in progress CPRI) which are in progress of execution on the various processors are compared with the priority given to the new process (priority NPRI). If any of the current CPRI priorities are lower than the new NPRI priority, a processor in which the process with the lowest current CPRI priority is about to be executed begins to execute the process with the new priority (NPRI priority) and this process with the lowest priority in progress is added to the queue of executable processes (operation called process exchange). If there is no priority in progress CPRI lower than the new NPRI priority, all processors continue to run the processes they were running before the comparison.

Dans le système multiprocesseur de l'art antérieur présentant la fonction de commande de multiprogrammation, les priorités accordées aux processus qui sont en cours d'exécution dans les processeurs respectifs sont mémorisées dans un espace de la mémoire principale auquel chaque processeur peut accéder. Un processeur qui génère un nouveau processus exécutable compare la priorité de ce nouveau processus avec les priorités mémorisées dans l'espace de mémoire principale, choisit un processus avec lequel ce nouveau processus doit être échangé et envoie au processeur choisi une demande d'échange des processus par l'intermédiaire d'un moyen de communication entre processeurs. In the multiprocessor system of the prior art having the multiprogramming control function, the priorities granted to the processes which are running in the respective processors are stored in a space of the main memory to which each processor can access. A processor which generates a new executable process compares the priority of this new process with the priorities stored in the main memory space, chooses a process with which this new process must be exchanged and sends to the chosen processor a request to exchange processes by means of communication between processors.

Toutefois, ces opérations de comparaison de priorité vont être à l'origine de perte de temps d'utilisation de l'unité centrale par le système d'exploitation, lors de l'accès en mémoire principale, réduisant ainsi de façon gênante le rendement du système.However, these priority comparison operations are going to be the cause of loss of time of use of the central processing unit by the operating system, when accessing the main memory, thus annoyingly reducing the performance of the system.

En outre, si une telle opération de comparaison des priorités est effectuée par le processeur qui a généré un nouveau processus, tous les processeurs doivent comporter des structures câblées pour le circuit logique de comparaison commun. L'importance du matériel dans l'ensemble du système multiprocesseur augmente invévitablçment.  Furthermore, if such a priority comparison operation is carried out by the processor which has generated a new process, all the processors must have wired structures for the common comparison logic circuit. The importance of hardware in the entire multiprocessor system inevitably increases.

Un but de la présente invention est de proposer un système de commande de priorité de processus qui puisse réduire les pertes de temps d'utilisation de l'unité centrale par le système de l'exploitation lors de la commutation des processus, de façon à améliorer le rendement du système. An object of the present invention is to propose a process priority control system which can reduce the losses of time of use of the central processing unit by the operating system during the switching of the processes, so as to improve system performance.

Un aspect du système de commande de priorité de processus dans le système multiprocesseur conforme à cette invention comporte un premier moyen de mémorisation qui mémorise les priortiés des processus qui sont en cours d'exécution par les processeurs dans le système multiprocesseur, un second moyen de mémorisation qui mémorise la priorité d'un processus qui vient récemment de devenir exécutable, un moyen de jugement de priorité qui choisit le processeur qui est en train d'exécuter un processus de priorité plus faible que la priorité du processus qui vient de devenir exécutable, un moyen de notification qui notifie à un processeur approprié, et un moyen de commutation qui ajoute le processus en cours d'exécution par ledit processeur à la file d'attente de processus exécutables en correspondance à la notification faite par le moyen de notification et place à l'état d'exécution le processus qui vient de devenir exécutable. One aspect of the process priority control system in the multiprocessor system according to this invention comprises a first storage means which stores the priorties of the processes which are being executed by the processors in the multiprocessor system, a second storage means which memorizes the priority of a process which has just become executable, a means of priority judgment which chooses the processor which is currently executing a process of lower priority than the priority of the process which has just become executable, a notification means which notifies to an appropriate processor, and switching means which adds the process running by said processor to the queue of executable processes in correspondence with the notification made by the notification means and places the execution state the process which has just become executable.

D'autres caractéristiques et avantages techniques de cette invention seront mieux compris à l'aide de la description détaillée ci-jointe en liaison avec les dessins joints. Other characteristics and technical advantages of this invention will be better understood with the aid of the detailed description attached in conjunction with the accompanying drawings.

Sur les figures, la figure 1 est une vue pour expliquer une réalisation conforme à l'invention;
les figures 2A à 2D sont des ordinogrammes pour montrer les décisions logiques du circuit 30 de jugement de priorité représenté sur la figure 1; et
la figure 3 est une vue pour montrer une réalisation de la structure des moyens 110, 111, 112 et 113 de commutation des processus en cours d'exécution.
In the figures, Figure 1 is a view for explaining an embodiment according to the invention;
Figures 2A to 2D are flow diagrams for showing the logical decisions of the priority judgment circuit 30 shown in Figure 1; and
Figure 3 is a view to show an embodiment of the structure of the means 110, 111, 112 and 113 for switching the running processes.

Les mêmes chiffres de référence désignent les mêmes composants. The same reference numbers designate the same components.

On va maintenant décrire l'invention plus en détail en se référant à une réalisation représentée sur les figures. We will now describe the invention in more detail with reference to an embodiment shown in the figures.

En se référant à la figure 1, une réalisation de l'invention comporte une pluralité de, par exemple quatre processeurs, ##c'est-à-dire le processeur n0
O 100, le processeur n0 1 101, le processeur n 2 102, et le processeur n0 3 103, ainsi qu'un contrôleur 200 du système.Le contrôleur 200 du système comporte un registre 50 qui mémorise la priorité
CPRI n0 O du processus qui est en cours d'exécution par le processeur n0 0 100, un registre 51 qui mémorise la priorité CPRI n0 1 du processus qui en cours d'exécution par le processeur n 1 101, un registre 52 qui mémorise la priorité CPRI n0 2 du processus qui est en cours d'exécution par le processeur n0 2 102, un registre 53 qui mémorise la priorité CPRI n0 3 du processus qui est en cours d'exécution par le processeur n0 3 103, un sélecteur 20 qui sélectionne la priorité NPRI d'un processus qui vient d'être généré par au moins l'un des processeurs n0 O - n0 3 100 - 103, un registre 10 qui entre, pour le mémoriser, le résultat de la sélection par le sélecteur 20 par l'intermédiaire d'une ligne 21, un circuit 30 de jugement de priorité qui sélectionne un processeur qui est en train d'exécuter un processus de priorité plus faible que la priorité
NPRI, sur la base de la priorité NPRI envoyée par le registre 10 par l'intermédiaire de la ligne 11 et des priorités CPRI n0 O - n0 3 envoyées par les registres 50 - 53 par l'intermédiaire des lignes 40 - 43, ainsi que des lignes 70 - 73 qui transmettent des signaux pour notifier aux processeurs appropriés 100 -103 le résultat du jugement rendu par le circuit 30 Qe jugement de priorité.
Referring to FIG. 1, an embodiment of the invention comprises a plurality of, for example four processors, ## that is to say the processor n0
O 100, processor no.1101, processor no.2102, and processor no.3103, as well as a system controller 200.The system controller 200 has a register 50 which stores the priority
CPRI n0 O of the process which is being executed by the processor n 0 0 100, a register 51 which stores the priority CPRI n0 1 of the process which is being executed by the processor n 1 101, a register 52 which stores the priority priority CPRI no 2 of the process which is being executed by processor no 2 102, a register 53 which stores priority CPRI no 3 of the process which is being executed by processor no 3 103, a selector 20 which selects the priority NPRI of a process which has just been generated by at least one of the processors n0 O - n0 3 100 - 103, a register 10 which enters, to store it, the result of the selection by the selector 20 via a line 21, a priority judgment circuit 30 which selects a processor which is currently executing a priority process lower than the priority
NPRI, based on the NPRI priority sent by register 10 via line 11 and the CPRI priorities n0 O - n0 3 sent by registers 50 - 53 via lines 40 - 43, as well as lines 70 - 73 which transmit signals to notify the appropriate processors 100 - 103 of the result of the judgment rendered by the circuit 30. Priority judgment.

Chacun des quatre processeurs n0 O - n0 3 100103 comporte un moyen 110, 111, 112 et 113, respectivement, de commutation de processus, moyens qui sont sensibles aux signaux envoyés par les lignes 70 - 73 pour ajouter à la file d'attente de processus prêts pour exécution un processus qui est en cours d'exécution par un processeur approprié et pour placer dans l'état d'exécution un autre processus rendu exécutable. Les processeurs n0 O - n0 3, 100103 sont reliés à une mémoire principale commune (non représentée). Each of the four processors # 0 - # 3 100103 has process switching means 110, 111, 112 and 113, respectively, which are responsive to signals sent from lines 70 - 73 to add to the queue of processes ready for execution a process which is being executed by an appropriate processor and for placing in the execution state another process made executable. Processors no. O - no. 3, 100103 are connected to a common main memory (not shown).

On va maintenant décrire en détail le fonctionnement d'une réalisation de 1 invention. Dans le système multiprocesseur comportant une fonction de commande de multiprogrammation, chacun des processeurs peut prélever, dans la file d'attente des processus exécutables, chacun des processus et le placer en état d'exécution. Il y a une unique file d'attente des processus pour chaque système. We will now describe in detail the operation of an embodiment of 1 invention. In the multiprocessor system comprising a multiprogramming control function, each of the processors can take, from the queue of executable processes, each of the processes and place it in the execution state. There is a single process queue for each system.

Chaque processeur transfère le contenu de registres (non représentés) visibles au logiciel, tels que le compteur d'instructions, le registre d'usage général, le registre de base d'adresse et les codes de conditions pour les faire passer, depuis la zone de sauvegarde réservée pour chacun des processus en mémoire principale (non représentée), dans les processeurs eux-mêmes, et chaque processeur démarre l'exécution de l'instruction. Au démarrage de l'exé- cution, chaque processeur mémorise la priorité du processus dans celui des registres 50 - 53 ' qui correspond au processeur. En outre, la priorité la plus faible est mémorisée dans les registres 50 - 53 qui correspondent au processeur.En outre, la priorité la plus faible est mémorisée dans les registres 10 et 50 - 53 en tant que valeur initiale ou en tant que priorité du processeur qui n'est pas en train d'exécuter un processus. Ceci permet au même circuit logique de commander, au point de vue priorité, les processeurs libres. Si l'on suppose que tous les quatre processeurs n O - n0 3, 100 -103 sont en cours d'exécuter des processus et qu'un nouveau processus est généré sur le processeur n0 3 103, la priorité NPRI du processus qui vient dêtre généré est mémorisée dans le registre 10 par l'intermédiaire de la ligne de signal 63, du sélecteur 20 et de la ligne de signal 21.En réponse au signal mémorisé (non représenté), les priorités NPRI, CPRI n0 O, CPRI n0 1, CPRI n0 2 et CPRI n0 3 sont extraites des registres 10 et 50 - 53 par l'intermédiaire des lignes 11 et 40 - 43. Sur la base de ces priorités, le circuit de jugement 30 rend le jugement suivant.Each processor transfers the content of registers (not shown) visible to the software, such as the instruction counter, the general purpose register, the address base register and the condition codes for passing them, from the zone. backup reserved for each of the processes in main memory (not shown), in the processors themselves, and each processor starts the execution of the instruction. At the start of the execution, each processor stores the priority of the process in that of the registers 50 - 53 'which corresponds to the processor. In addition, the lowest priority is stored in registers 50 - 53 which correspond to the processor. In addition, the lowest priority is stored in registers 10 and 50 - 53 as initial value or as priority of the processor that is not executing a process. This allows the same logic circuit to control, from the priority point of view, the free processors. If it is assumed that all the four processors n O - n0 3, 100 -103 are running processes and that a new process is generated on processor no.3103, the NPRI priority of the process which has just been generated is stored in register 10 via signal line 63, selector 20 and signal line 21. In response to the stored signal (not shown), the priorities NPRI, CPRI n0 O, CPRI n0 1 , CPRI no 2 and CPRI no 3 are extracted from registers 10 and 50 - 53 via lines 11 and 40 - 43. On the basis of these priorities, the judgment circuit 30 renders the following judgment.

En se référant maintenant aux figures 1, 2A, 2B, 2C et 2D, le circuit 30 sélectionne, parmi les priorités CPRI n0 O -n 3 (la priorité la plus faible (pas 301, 305, 309 et 313). Ensuite, il y a jugement sur la question de savoir si la priorité sélectionnée est, ou non, plus faible que la priorité
NPRI (pas 302, 306, 310 et 314). Si, aux pas, 302, 306, 310 et 314, la priorité sélectionnée, ou plus faible priorité parmi les priorités CPRI n00 - n03, est jugée comme étant plus faible que la priorité
NPRI, un signal de demande d'échange de processus, de valeur logique "1", est . envoyé sur les lignes 70 -73 reliées à l'un des processeurs appropriés n0 O - n03, 100 - 103 (pas 303, 307, 311 et 315).
Referring now to FIGS. 1, 2A, 2B, 2C and 2D, the circuit 30 selects, from among the priorities CPRI n0 O -n 3 (the lowest priority (steps 301, 305, 309 and 313). there is judgment on whether or not the selected priority is lower than the priority
NPRI (steps 302, 306, 310 and 314). If, in steps, 302, 306, 310 and 314, the selected priority, or lower priority among the priorities CPRI n00 - n03, is judged to be lower than the priority
NPRI, a process exchange request signal, of logical value "1", is. sent on lines 70 -73 connected to one of the appropriate processors n0 O - n03, 100 - 103 (steps 303, 307, 311 and 315).

Si, aux pas 301, 305, 309 et 313, ladite priorité est jugée comme n'étant pas la plus faible, ou si la priorité qui avait été sélectionnée aux pas 3101, 305, 309 et 313 comme étant la plus faible est jugée plus forte que la priorité NPRI, les signaux des lignes appropriées 70 - 73 prennent la valeur logique "O" (pas 304, 308, 312 et 316). Dans la commande de priorité de cette réalisation, il y a un unique registre 10 et les contenus des registres 50 - 53 peuvent être rechargés indépendamment par les processeurs respectifs. Pour empêcher d'autres processeurs de recharger le registre, les processeurs sont verrouillés lorsque les valeurs et les signaux de demande d'échange de processus sont placés dans les registres.If, in steps 301, 305, 309 and 313, said priority is judged not to be the lowest, or if the priority which had been selected in steps 3101, 305, 309 and 313 as being lowest is judged more stronger than the NPRI priority, the signals of the appropriate lines 70 - 73 take the logical value "O" (steps 304, 308, 312 and 316). In the priority control of this embodiment, there is a single register 10 and the contents of registers 50 - 53 can be reloaded independently by the respective processors. To prevent other processors from reloading the register, the processors are locked when the values and process exchange request signals are placed in the registers.

Sensibles aux résultats du jugement envoyé par le circuit 30 de jugement de priorité par l'intermédiaire des lignes 70 - 73, les moyens 111 - 113 de commutation de processus pour exécution, moyens qui sont dans les processeurs n00 - n 3, 100 - 103, opèrent comme suit. Sensitive to the results of the judgment sent by the priority judgment circuit 30 via the lines 70 - 73, the means 111 - 113 of process switching for execution, means which are in the processors n00 - n 3, 100 - 103 , operate as follows.

En se reportant aux figures 1 et 3, un répartiteur 400 de chacun des moyens 110 - 113 de commutation de processus est sensible à celui des signaux qui sont sur les lignes 70 - 73 qui est un "1" logique, pour juger si, oui ou non, le processeur correspondant est libre (pas 401). A la suite du jugement que le processeur est libre au pas 401, il y a jugement sur la question de savoir si la file d'attente de processus exécutables est ou non vide (pas 402). Si, au pas 402, il est jugé qu'elle n'est pas vide, il y a jugement sur la question de savoir si, ou ou non il y a un processus exécutable (pas 403). Si, au pas 403, il est jugé qu'il y a un processus exécutable, c'est le processus présentant la plus forte priorité parmi les processus exécutables de la file d'attente qui est appelé (pas 404). Alors le bit (non représenté) qui indique que le processeur était libre devient "O" (pas 405).Indépendamment de la question de savoir si la file d'attente de processus exécutables est ou non vide, le processeur passe à l'état inactif, à moins qu'il nty ait un processeur qui peut être exécuté par ce processeur. Si un évènement est généré, le traitement d'événement du système est exécuté en réponse (pas 406). Referring to FIGS. 1 and 3, a distributor 400 of each of the process switching means 110 - 113 is sensitive to that of the signals which are on lines 70 - 73 which is a logical "1", to judge whether, yes or not, the corresponding processor is free (step 401). Following the judgment that the processor is free at step 401, there is judgment on the question of whether or not the queue of executable processes is empty (step 402). If, at step 402, it is judged to be not empty, there is judgment on whether or not there is an executable process (step 403). If, at step 403, it is judged that there is an executable process, it is the process having the highest priority among the executable processes of the queue which is called (step 404). Then the bit (not shown) which indicates that the processor was free becomes "O" (not 405). Regardless of whether the queue of executable processes is empty or not, the processor goes to state inactive, unless there is a processor that can be run by that processor. If an event is generated, the system event processing is executed in response (step 406).

Si, au pas 401, le processeur correspondant est jugé comme étant non libre, ce processeur passe en mode processus (pas 407). If, at step 401, the corresponding processor is judged to be non-free, this processor goes into process mode (step 407).

Ensuite, il y a jugement sur la question de savoir sioux ou non, il existe un processus que le processeur correspondant puisse exécuter (pas 408). Then there is judgment on whether or not there is a process that the corresponding processor can execute (step 408).

S'il est jugé qu'il existe des processus exécutables par le processeur, c'est le processus présentant la plus forte priorité de tous les processus exécutables qui est prélevé (pas 409). Puis, il y a jugement sur la question de savoir si la priorité
NPRI du processus qui vient d'être généré est plus forte ou plus basse que la priorité (CPRI) du processus qui est actuellement en cours d'exécution (pas 410). Si, au pas 410, il est jugé que la priorité NPRI est plus forte que la priorité CPRI, le processus qui était en cours d'exécution actuellement fait l'objet d'un échange avec le processus qui vient d'être généré (pas 411). Lors de l'achèvement de l'échange, l'instruction qui suit l'instruction récemment appelée est exécutée (pas 412).
If it is judged that there are processes executable by the processor, it is the process having the highest priority of all the executable processes which is taken (step 409). Then there is judgment on whether the priority
NPRI of the process that has just been generated is higher or lower than the priority (CPRI) of the process that is currently running (step 410). If, at step 410, it is judged that the priority NPRI is stronger than the priority CPRI, the process which was currently running is the subject of an exchange with the process which has just been generated (not 411). Upon completion of the exchange, the instruction following the recently called instruction is executed (step 412).

Chacun des moyens 110 -113 de commutation de processus ajoute à la file d'attente de processus exécutables le processus qui était en cours d'exécution par le processeur approprié, cei encorrespon- dance avec le signal de demande d'échange de processus puis place en état d'exécution le processus qui a été rendu récemment exécutable. Each of the process switching means 110-113 adds the process which was being executed by the appropriate processor to the queue of executable processes, which matches the process exchange request signal and then places in running state the process which was recently made executable.

Si, au pas 408, il est jugé qu'il n'existe aucun processus exécutable par le processeur qui doit exécuter un processus ou si, au pas 410, la priorité NPRI du processus qui vient d'être généré est jugée égale ou plus faible que celle du processus en cours d'exécution, c'est l'instruction qui vient à la suite dans le processus qui était en cours d'exécution et a été suspendu qui est exécutée (pas 412). If, at step 408, it is judged that there is no process executable by the processor which must execute a process or if, at step 410, the NPRI priority of the process which has just been generated is judged to be equal or lower than that of the running process, it is the instruction that comes next in the process that was running and was suspended that is executed (not 412).

Le système conforme à l'invention comporte des registres qui mémorisent les priorités des processus qui sont en cours d'exécution par les processeurs respectifs et la priorité du processus qui vient d'être rendu exécutable, ainsi qu'un moyen de jugement de priorité qui, sur la base de ces priorités mémorisées dans les registres, détermine le processus qui doit faire l'objet d'un échange de processus. Ce système d'invention peut réduire les pertes de temps d'unité centrale utilisé par le système d'exploitation lors de la commutation de processus, pour améliorer le rendement du système, du fait qu'il élimine la nécessité, pour le processeur qui génère un nouveau processus, de porter un jugement pour déterminer quel doit être le processeur de contrepartie dans l'opération d'échange de processus, ceci en permettant au moyen de jugement de priorité de notifier au processeur approprié le résultat du jugement de sorte que le processeur peut procéder à l'échange de processus.  The system according to the invention comprises registers which store the priorities of the processes which are being executed by the respective processors and the priority of the process which has just been made executable, as well as a means of priority judgment which , on the basis of these priorities stored in the registers, determines the process which must be the subject of a process exchange. This inventive system can reduce the wasted CPU time used by the operating system during process switching, to improve system performance, since it eliminates the need for the processor that generates a new process, to pass judgment to determine which counterparty processor should be in the process exchange operation, this allowing the priority judgment means to notify the appropriate processor of the result of the judgment so that the processor can proceed with the process exchange.

Claims (1)

REVENDICATION CLAIM Système de commande de priorité de processus comportant des premiers moyens de mémoire (50,51, 52,53) qui mémorisent la priorité des processus qui sont en cours d'#xécution par les processeurs (100,101,102,103) dans un système multiprocesseur, un second moyen de mémoire (10) qui mémorise la priorité d'un processus qui vient de devenir exécutable, un moyen (30) de jugement de priorité qui sélectionne un ou des processeurs qui est (ou qui sont) en train d'exécuter un ou des processus de priorité plus faible que la priorité du processus qui vient de devenir exécutable, sur la base des priorités mémorisées dans lesdits premiers (50,51, 52,53) et dans ledit second (10) moyen de mémoire, des moyens (70,71,72,73) de notification qui notifient à un ou des processeurs appropriés le résultat du jugement rendu par ledit moyen (30) de jugement, ainsi que des moyens (110-113) de commutation de processus qui, en correspondance avec la notification par le moyen (70-73) de notification, ajoute le ou les processus, qui est (ou qui sont) en cours d'exécution par le ou les processeurs appropriés, à la file d'attente de processus exécutables et qui placent à l'état d'exécution le processus qui vient de devenir exécutable.  Process priority control system comprising first memory means (50,51, 52,53) which memorize the priority of the processes which are being executed by the processors (100,101,102,103) in a multiprocessor system, a second means memory (10) which stores the priority of a process which has just become executable, priority judgment means (30) which selects one or more processors which is (or are) executing one or more processes of lower priority than the priority of the process which has just become executable, on the basis of the priorities stored in said first (50,51, 52,53) and in said second (10) memory means, means (70,71 , 72,73) of notification which notify to one or more suitable processors the result of the judgment rendered by said judgment means (30), as well as means (110-113) of process switching which, in correspondence with the notification by the means (70-73) of notification, add the or l he processes, which is (or are) being executed by the appropriate processor or processors, in the queue of executable processes and which place the process which has just become executable in the execution state.
FR8801446A 1987-02-07 1988-02-08 PROCESS PRIORITY CONTROL SYSTEM Expired - Fee Related FR2610745B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2557187 1987-02-07

Publications (2)

Publication Number Publication Date
FR2610745A1 true FR2610745A1 (en) 1988-08-12
FR2610745B1 FR2610745B1 (en) 1994-05-27

Family

ID=12169615

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8801446A Expired - Fee Related FR2610745B1 (en) 1987-02-07 1988-02-08 PROCESS PRIORITY CONTROL SYSTEM

Country Status (1)

Country Link
FR (1) FR2610745B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0367639A2 (en) * 1988-10-31 1990-05-09 EVANS & SUTHERLAND COMPUTER CORPORATION Multiprocessor task scheduling system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3421150A (en) * 1966-08-26 1969-01-07 Sperry Rand Corp Multiprocessor interrupt directory
US4028664A (en) * 1975-03-26 1977-06-07 Honeywell Information Systems, Inc. Apparatus for dispatching data of the highest priority process having the highest priority channel to a processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3421150A (en) * 1966-08-26 1969-01-07 Sperry Rand Corp Multiprocessor interrupt directory
US4028664A (en) * 1975-03-26 1977-06-07 Honeywell Information Systems, Inc. Apparatus for dispatching data of the highest priority process having the highest priority channel to a processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0367639A2 (en) * 1988-10-31 1990-05-09 EVANS & SUTHERLAND COMPUTER CORPORATION Multiprocessor task scheduling system
EP0367639A3 (en) * 1988-10-31 1992-08-05 EVANS & SUTHERLAND COMPUTER CORPORATION Multiprocessor task scheduling system

Also Published As

Publication number Publication date
FR2610745B1 (en) 1994-05-27

Similar Documents

Publication Publication Date Title
JP2561760B2 (en) Process in information processing system and information processing network
EP0059018B1 (en) Multiprocessor with dynamic task assignment in multiprogramming mode and its use
EP0030504A1 (en) Device for the synchronization and allocation of processes between several processors in a data processing system
US4435752A (en) Allocation of rotating memory device storage locations
CN103970520B (en) Method for managing resource, device and architecture system in MapReduce frameworks
US8209702B1 (en) Task execution using multiple pools of processing threads, each pool dedicated to execute different types of sub-tasks
JP3231571B2 (en) Ordered multi-thread execution method and its execution device
US20030149716A1 (en) Thread dispatch mechanism and method for multiprocessor computer systems
US5958003A (en) Method and computer system for improving the response time of a computer system to a user request
EP0210640A2 (en) Input-output control system in a virtual machine system
US8112621B2 (en) Multi-core address mapping for selecting storage controller program
CN100461111C (en) File-based access control method and device for shared hardware devices
FR2598835A1 (en) DATA STACK BLOCK STACKED ON A MICROPROCESSOR CHIP
KR101120848B1 (en) Selection of a redundant controller based on resource view
US5550962A (en) System for selectively performing parallel or sequential drawing processing
CN106708627A (en) Multi-virtual-machine mapping and multipath fuse acceleration method and system based on kvm
EP0033264B1 (en) Priority method and device for resolving conflicts between an asynchronous interrupt and a programme in a critical section
FR2647923A1 (en) DATA PROCESSOR
CN109634989A (en) A kind of HIVE task executive engine selection method and system
FR2685106A1 (en) Input/output interrupt control system for a virtual machine
FR2610745A1 (en) Process priority control system
US11307999B2 (en) Data cache segregation for spectre mitigation
FR2957433A1 (en) METHOD FOR CONFIGURING A COMPUTER SYSTEM, CORRESPONDING COMPUTER PROGRAM AND COMPUTER SYSTEM
JP2986930B2 (en) Task Scheduling Method for Symmetric Multiprocessor
US6529964B1 (en) System and method for maintaining device name consistency during parallel device discovery process

Legal Events

Date Code Title Description
ST Notification of lapse