Brevet FR2610745A1 — publié le 19880812

SYSTEME DE COMMANDE DE PRIORITÉ DE PROCESSUS. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Les mêmes chiffres de référence désignent les mêmes composants. 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. 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é. 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). 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. 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. 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). 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. 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. 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). Si, au pas 401, le processeur correspondant est jugé comme étant non libre, ce processeur passe en mode processus (pas 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). 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). 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. 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). 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. REVENDICATION 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.