Brevet FR2699304A1 — publié le 19940617

- PROCEDE DE REPARTITION DE PROCESSUS La présente invention se rapporte à un procédé de répartition des processus, et plus particu Lièrement à un procédé de répartition des processus uti Lisab Le dans un système mu Ltiprocesseur, dans Leque L chacune des unités centrales de traitement (CPU) parmi une p Lura Lité de CPU est dotée d'une mémoire cache. Préa Lab Lement à La description de L'art antérieur, Les termes c Lés uti Lisés dans cette spécification vont être définis. Un bloc de commande de processus (PCB) (PCB = "Process Contro L B Lock") est un ensemble d'informations nécessaires pour L'exécution d'un pr Gcessus et enregistrées dans l'unité de mémoire principa Le. L'information enregistrée dans un PCB comprend le rang de priorité du processus La structure détai LLée d'un PCB sera u Ltérieurement décrite en détai L dans cette spécification. Un état de marche est un état d'un processus, dans lequel Le processus est en cours d'exécution sur un processeur. Un état de disponibi Lité est un autre état d'un processus, dans Leque L Le processus peut être immédiatement exécuté Un processus en état de disponibilité attend un processeur pour devenir un état d'inactivité dans une fi Le d'attente de disponibilité. Un état d'attente est encore un autre état d'un processus, dans Lequel le processus attend que se produise un événement. Une redistribution consiste à amener un processus dans un état de marche et à le répartir de nouveau vers L'un des processeurs. Une a Lternance d'entrée et de sortie de mémoire du processus consiste à amener un processus dans un état de marche sur un processeur une fois dans un état de disponibi Lité ou dans un état d'attente, et à envoyer un autre processus vers ce processeur. 2 2699304 La suite du texte décrit Les caractéristiques d'un système multiprocesseur dont chacun des processeurs comprend une mémoire cache Dans un système multiprocesseur, chaque processeur est doté d'une mémoire cache, car une mémoire cache p Lacée près d'un processeur faci Lite un accès rapide Cependant, une insta L Lation de mémoires caches de ce type fait apparaître Les problèmes suivants. Cesdits problèmes évoqués précédemment peuvent être expliqués en se reportant à un exemp Le de système multiprocesseur et à sa séquence de traitement Dans cette hypothèse, Le système multiprocesseur a des processeurs X à Y Les processeurs X à ' sont respectivement dotés des mémoires caches x à z A La première étape de La séquence de traitement, un processus A est exécuté par Le processeur X A La seconde étape, Le processus A est amené dans un état d'attente A La troisième étape, un processus autre que Le processus A est exécuté par Le processeur X A La quatrième étape, Le processus A est réorienté vers Le process L Iur Z A rôt moment, Les données a utilisées dans Le traitement du processus A restent dans La mémoire cache x du processeur X. La séquence de traitement mentionnée précédemment Laisse apparaître Les deux problèmes suivants. Tout d'abord, du fait que La destination de ré- orientation du processus A est Le processeur Z, Les données a dans La mémoire cache x ne peuvent pas être uti Lisées Le processeur Z qui exécute Le processus A à La quatrième étape doit Lire Les données nécessaires sorties de La mémoire principale IL en résulte que Le traitement par Le processeur A est ra Lenti Dans La suite du texte, ce prob Lème sera appe Lé diminution de La vitesse d'acceptation d'une information. En second Lieu, une annu Lation de cache peut se produire Lorsque Le processeur Z Lit des données simi Laires pour Les données a sortant de La mémoire -3- principa Le à La quatrième étape, Les mêmes données se trouvent présentes dans Les mémoires caches x et z en même temps Les données a dans La mémoire cache x sont annulées Lorsque Le processeur Z modifie le contenu des données a dans La mémoire cache z Lorsqu'une annulation de cache se produit, La capacité de traitement du système est réduite. Ces deux prob Lèmes pourraient être évités si La destination de La redistribution du processus A était Le processeur X qui avait exécuté Le processus A immédiatement avant Ainsi, dans un système mu Ltiprocesseur o chaque processeur a une mémoire cache, le procédé par lequel La destination de réorientation est déterminée, affecte Le rendement du système. L'art antérieur va être décrit ensuite Un exemp Le de procédé pour La distribution d'un processus sur la base des caractéristiques décrites ci-dessus dans un système multiprocesseur, est donné dans Le brevet américain numéro 5 193 172 Se Lon Les Lignes 52 à 53 de la seconde co Lonne du journal officie L dans Lequel ce brevet est pub Lié, l'un des objets de cet art antérieur est de réduire la fréquence d'occurence des annu Lations de cache accompagnant des distributions. Selon cet art antérieur, des pages réel Les de la mémoire principa Le sont divisées en une p Lura Lité de groupes Un processeur est affecté à chaque groupe Un processeur affecté à un groupe uti Lise de préférence Les pages réelles appartenant à ce groupe A chaque processeur sont allouées des tâches devant être exécutées de préférence par Le processeur A chaque tâche sont affectées des pages réelles devant être utilisées dans Le traitement de La tâche. En se reportant maintenant aux Lignes 3 à 13 de La huitième colonne du journal officiel, une redistribution est effectuée par La procédure suivante selon cet art antérieur Le nombre de pages réel Les affectées à la tâche devant être orientée est comptabi Lisé pour chacun 4 - desdits groupes IL résulte du comptage qu'est déterminé Le groupe auque L est affecté Le plus grand nombre de pages rée L Les, et cette tache est distribuée vers Le processeur ayant La priorité d'uti Lisation de ce groupe. Selon le procédé de répartition décrit précédemment, à moins que ne se produise un changement dans les pages rée L Les affectées à chaque tache, cette tache est redistribuée vers Le processeur par leque L e L Le a été exécutée auparavant Par conséquent, la probabilité d'annu Lation de cache est réduite. Cependant, cet art antérieur fait apparaiître Le prob Lème suivant. Le prob Lème est qu'afin de gérer les groupes mentionnés ci- dessus, diverses procédures doivent être ex Eécut Eées Cet art antérieur nécessite des altérations des groupes mentionnés précédemment Lors du traitement afin d'a L Louer un nombre approprié de pages de mémoire à chaque processeur Cependant, selon ce qui est énoncé à partir de La Ligne 20 de La sixième co Lonne jusqu'à La Ligne 35 de la septième co Lonne du journal officie L, toute altération de groupe de ce type nécessite L'exécution de nombreuses procédures complexes, qui doivent, de plus être exécutées de façon répétée. Un objet de la présente invention est de fournir un procédé de distribution de processus qui puisse apporter, avec un nombre plus petit de procédures, une amélioration de la vitesse d'acceptation des informations des mémoires caches, et une réduction de La périodicité d'occurence des annulations de cache Plus spécifiquement, e L Le fournit un procédé de répartition de processus uti Lisant Les trois stratégies suivantes. Première stratégie: Le processeur exécutant Le processus, dont le rang de priorité est Le p Lus bas, est Le destinataire de la distribution. Seconde stratégie: s'i L y a deux ou plus de deux processus qui ont le rang de priorité Le plus bas, et si Les processeurs exécutant ces processus inc Luent le processeur qui a exécuté en dernier Le processus à distribuer, a Lors ce processeur est Le destinataire de La distribution. Troisième stratégie: Si La destination de La distribution ne peut pas être déterminée, y compris par La seconde stratégie, et si Les processeurs exécutant Les processus ayant Le rang de priorité Le p Lus bas inc Luent un processeur exécutant un traitement de distribution, ce processeur est Le destinataire de La distribution. Dans un mode de réalisation préféré de L'invention, un procédé de répartition uti Lisant Les stratégies mentionnées ci-dessus est obtenu par une première étape, pour Lire La priorité d'un premier processus et Le numéro de référence du processeur qui a exécuté Ledit premier processus immédiatement avant La sortie du b Loc de commande de processus pour Ledit premier processus; une seconde étape pour choisir tous Les processus ayant Le rang de priorité Le p Lus bas parmi Les processus en cours d'exécution; une troisième étape pour comparer La priorité du ou des processus choisi(s) à Ladite seconde étape avec ce L Le dudit premier processus, et pour arrêter Le traitement de répartition si La priorité du ou des processus choisi(s) à Ladite seconde étape est supérieure à ce L Le dudit premier processus; une quatrième étape pour effectuer La répartition, si un seu L processus a été choisi à Ladite seconde étape, dudit premier processus vers Le processeur exécutant ce processus choisi; et une cinquième étape, si une p Lura Lité de processus ont été choisis à Ladite seconde étape, et si L'un quelconque des processeurs exécutant Lesdits processus choisis à Ladite seconde étape a un numéro de référence identique à ce Lui du processeur ayant exécuté Ledit premier processus immédiatement avant, pour orienter Ledit premier processus vers ce processeur. Les objets mentionnés ci-dessus, ainsi que Les caractéristiques et avantages de La présente invention deviendront p Lus apparents à La Lecture de La description 6 - détai LLée qui suit, prise conjointement avec Les dessins annexes, dans Lesquels: La figure 1 est un diagramme i Llustrant un mode de réalisation préféré de L'invention; la figure 2 est un diagramme i L Lustrant Les données qui doivent être enregistrées dans Le PCB 14; La figure 3 est un diagramme i L Lustrant Les données qui doivent être enregistrées dans La table 300 de gestion d'état d'exécution du CPU; La figure 4 est un diagramme i L Lustrant Le fonctionnement du premier traitement de distribution 61; La figure 5 est un diagramme i L Lustrant Les opérations de traitement pour mise à jour 62 du premier PCB, Le traitement de mise à jour 63 du second PCB, et Le second traitement de répartition 64; La figure 6 est un diagramme de circulation montrant Le fonctionnement du traitement de mise à jour du premier PCB; La figure 7 est un diagramme de circulation montrant le fonctionnement du traitement de mise à jour du second PCB; La figure 8 est un diagramme de circulation montrant Le fonctionnement du second traitement de répartition; La figure 9 est un diagramme de circulation montrant Le fonctionnement détai LLé de L'étape 408; et La figure 10 est un diagramme de circulation montrant mieux Le fonctionnement détaillé de l'étape 408. C'est tout d'abord La configuration de ce mode de réa Lisation préféré qui va être décrite En se reportant à La figure 1, ce mode de réa Lisation, qui est un système mu Ltiprocesseur, inc Lut quatre processeurs, Les CPU #0 à #3 (CPU = "Central Processing Unit" = unité centrale de traitement) Les CPU #0 à #3 incluent respectivement Les mémoires caches 6 à 9 Les CPU #0 à #3 accèdent à une unité de mémoire principale 5 commune. L'unité de mémoire principa Le 5 inc Lut une table 300 de gestion d'état d'exécution du CPU, une région 200 de 7 - b Loc de commande de processus et un pointeur de tête de La fi Le d'attente des processus prêts 20. Dans La région 200 du b Loc de commande de processus sont enregistrés Les b Locs de commande de processus (PCB) 14 et 15. Le pointeur de tête de La fi Le d'attente des processus prêts 20 indique Les adresses des noms de processus 31 Les noms de processus 31 à 33, Liés par des pointeurs, constituent une fi Le d'attente des processus prêts Dans La description qui suit, aux fins de simplicité, Les noms de processus 31 à 33 seront respectivement appe Lés processus 31 à 33 Les processus 31 et 33 sont p Lacés se Lon un ordre de priorité qui sera défini ci-dessous Le processus 31, au sommet de La fi Le d'attente des processus prêts 30 est Le processus ayant Le rang de priorité Le p Lus éLevé dans La fi Le. En se reportant maintenant à La figure 2, Le PCB 15 inc Lut un état du processus 214, une priorité 210 et un CPU de numéro 212 dont L'exécution est immédiatement précédente Dans L'état du processus 214 sont enregistrées des données élémentaires d'information, autres que La priorité du processus, et qui sont généralement inc Lues dans un PCB Par exemp Le, Les conditions d'exécution du processus sont inc Lues dans L'état du processus 214 La priorité 210 détermine La position re Lative du processus dans La séquence des exécutions Le numéro 212 du CPU dont L'exécution est immédiatement précédente est Le numéro de référence du CPU qui a exécuté Le processus immédiatement avant. Lorsque Le processus est dans un état d'attente ou dans un état de disponibilité, Le numéro 212 du CPU dont L'exécution est immédiatement précédente est identique au numéro de référence du CPU qui, Le dernier, a exécuté Le processus La procédure de mise à jour pour Le CPU de numéro 212 dont L'exécution est immédiatement précédente sera décrite ultérieurement dans cette spécification. -8- En se reportant à La figure 3, dans La tab Le 300 de gestion de L'état d'exécution du CPU, sont enregistrés Les noms et Les priorités 301 à 304 des processus en cours d'exécution par Les CPU #0 à #3. Ensuite sera décrit Le procédé de répartition de processus uti Lisé par ce mode de réalisation préféré. Dans Le procédé de répartition de ce mode de réalisation, sont effectués deux types de traitement de répartition et deux types de traitement de mise à jour de PCB Dans Les deux types de traitement de mise à jour de PCB, Le CPU de numéro 212 dont L'exécution est immédiatement précédente est mis à jour. Premier traitement de répartition En se reportant à La figure 4, Le premier traitement de répartition 61 est exécuté Lorsque L'exécution d'un processus a été achevée par L'un quelconque des CPU #0 à #3 Dans Le premier traitement de répartition, Le processus 31 au sommet de La fi Le d'attente des processus prêts 30 est orienté vers Le CPU qui a effectué L'exécution du processus La description du premier traitement de répartition n'est pas donnée, car e L Le est similaire au traitement de répartition effectué classiquement. Premier traitement de mise à jour de PCB En se reportant maintenant conjointement aux figures et 6, Le premier traitement de mise à jour de PCB 62 est exécuté Lorsqu'un événement en attente se produit dans un processus en cours d'exécution par L'un quelconque des CPU #0 à #3 Un événement peut être L'achèvement d'une entrée ou d'une sortie, La synchronisation avec un autre processus, ou similaire. En se reportant à La figure 6, Le premier traitement de mise à jour de PCB 62 est constitué des étapes 401 et 402 A La figure 6, Le processus dans Leque L L'événement en attente s'est produit est appe Lé Le processus A. A L'étape 401, Le numéro de référence du CPU qui a exécuté Le processus A est déterminé dans Le PCB du -9- processus A comme Le numéro 212 de CPU pour Le processus A. A L'étape 402, Le processus A est entré dans une fi Le d'attente 40 En se reportant à La figure 5, Les processus 41 à 43 en attente d'exécution sont p Lacés dans La fi Le d'attente 40 Lorsqu'il est entré dans La fi Le d'attente 40, Le processus A est p Lacé dans un état d'attente Après achèvement de L'étape 402, Le premier traitement de mise à jour de PCB est terminé. Après La fin du premier traitement de mise à jour de PCB, L'événement en attente dans Le processus A est achevé à L'étape 403 Le processus A est par Là-même entré dans La file d'attente des processus prêts 30. Comme ce La a été énoncé ci-dessus, Les processus dans La fi Le d'attente des processus prêts 30 sont disposés en fonction de Leur priorité Le processus A est inséré dans La position correspondant à sa priorité Lorsqu'i L est entré dans La fi Le d'attente des processus prêts 30, Le processus A entre dans un état de disponibilité. Second traitement de mise à jour de PCB En se reportant conjointement aux figures 5 et 7, Le second traitement de mise à jour de PCB 63 est exécuté Lorsqu'un nouveau processus est généré En se reportant à La figure 7, Le second traitement de mise à jour de PCB 63 est constitué par une étape 405. Un nouveau processus est généré à L'étape 404 Aux fins de simplicité, ce processus sera appelé Le processus A. A L'étape 405, un nombre aléatoire R est déterminé dans Le CPU de numéro 212 ayant exécuté Le processus A immédiatement avant Le nombre aléatoire R représente La référence de L'un des CPU inc Lus dans Le système Dans Le système de ce mode de réalisation, R est 0, 1, 2 ou 3. A L'étape 406, Le processus A est entré dans La file d'attente des processus prêts 30 De La même manière qu'à L'étape 403, Le processus A est inséré dans La position correspondant à sa priorité. - Second traitement de répartition. En se reportant maintenant conjointement aux figures et 8, Le second traitement de répartition 64 est effectué par L'entrée de tout processus dans La fi Le d'attente des processus prêts 30. En se référant à La figure 8, Le second traitement de répartition est constitué par Les étapes 407 à 409. Ici, Le processus entré dans La fi Le d'attente des processus prêts 30 est appe Lé Le processus A. A L'étape 407, on juge si Le processus a ou non été entré au sommet de La fi Le d'attente des processus prêts Si Le processus a été entré ai L Leurs qu'au sommet de La fi Le d'attente des processus prêts 30, L'étape 409 est exécutée A L'étape 409, Les processus en cours d'exécution par Les CPU #0 à #3 continuent à être exécutés. D'autre part, si Le processus A est entré au sommet de La fi Le d'attente des processus prêts 30, c'est Le processus 408 qui est exécuté Le fait que Le processus A ait été entré au sommet de La fi Le d'attente des processus prêts 30 signifie que La priorité du processus A est p Lus grande que ce L Les des autres processus dans La fi Le d'attente des processus prêts 30 Par conséquent, La priorité du processus A peut être supérieure aux priorités des processus en cours d'exécution par Les CPU #0 à #3 Pour cette raison, si L'un quelconque des processus en cours d'exécution par Les CPU #0 à #3 a un rang de priorité inférieur à ce Lui du processus A, Le processus A devrait être orienté préférentie L Lement vers un CPU A L'étape 408, c'est ce traitement qui est exécuté. A L'étape 408, La destination de La répartition du processus A est déterminée en fonction des première à troisième stratégies mentionnées précédemment La répartition du processus A en fonction des première à troisième stratégies est, par principe, réa Lisée par Le traitement constitué des cinq étapes suivantes: 11 i 2699304 Etape 1: tous Les processus en cours d'exécution ayant Le rang de priorité Le p Lus petit sont choisis. Etape 2: La priorité du ou des processus choisi Cs) à L'étape 1 est comparée avec ce Lle du processus A, et Le traitement de répartition est arrêté si La priorité de L'un quelconque des processus choisis à L'étape 1 est p Lus grande que celle du processus A. Etape 3: Si un seu L processus est choisi à L'étape 1, Le processus A est orienté vers Le processeur exécutant cette étape choisie. Etape 4: Si deux processus au moins sont choisis à L'étape 1 et si Les processeurs exécutant Les processus choisis à L'étape 1 inc Luent Le processeur dont Le numéro de référence est identique au numéro 212 du CPU dont L'exécution du processus A est immédiatement précédente, Le processus A est orienté vers ce processeur. Etape 5: Si Le processus A n'est orienté vers aucun des processeurs aux étapes 3 et 4, et si Les processeurs choisis à L'étape 1 inc Luent un processeur exécutant un traitement de répartition, Le processus A est dirigé vers ce processeur. Parmi Les étapes précédentes, Les étapes 3 à 5 correspondent aux première à troisième stratégies. Cependant, à L'étape 408 de ce mode de réalisation, Les traitements correspondant aux étapes 3 à 5 sont exécutés simultanément. Etape 408. Dans La description qui suit seront utilisées Les dénominations suivantes PA représente Le processus A; #j représente Le processus en cours d'exécution par un CPU #i, qui est Le CPU numéro i; Cnt est Le numéro de référence du processeur exécutant L'étape 408; PCB(X) est Le PCB (b Loc de commande de processus) d'un processus X; PRI(X) et La priorité du processus X; et LCPU#(X) est le CPU de numéro 212 dont L'exécution est immédiatement précédente pour Le processus X. 12 - Ensuite vont être expliquées les variables uti Lisées à L'étape 408: i, j et k sont des variables n'ayant pas de signification spécifique; minpn est Le numéro de référence du CPU exécutant le processus ayant Le rang de priorité Le plus bas, qui est déterminé en fonction des première à troisième stratégies mentionnées précédemment; et M est Le numéro de processeur Le plus important, qui est de 3 dans ce mode de réa Lisation. En se reportant conjointement aux figures 9 et 10, L'étape 408 est constituée des étapes 502 à 528 L'étape 502 peut être divisée en deux grandes parties La première partie comprend les étapes 502 à 526 Dans la première partie est déterminée la variable minpn La seconde partie comprend les étapes 526 et 528 C'est dans la seconde partie qu'est effectuée la répartition. A l'étape 502, 0, 1 et 2 sont respectivement remp Lacés par les variables i, j et k. A l'étape 504, PRI(PA) et LCPU#(PA) sont lus dans un PCB(PA) Selon le procédé de dénomination expliqué ci- dessus, PRI(PA), LCPU#(PA) et PCB(PA) indiquent respectivement La priorité, le numéro du CPU dont l'exécution est immédiatement précédente et le PCB du processus A. A L'étape 506, PRI(#i) et PRI(#j) sont lus dans la table 300 de gestion de l'état d'exécution du CPU Selon le procédé de dénomination expliqué ci- dessus, PRI(#i) et PRI(#j) indiquent respectivement la priorité du processus en cours d'exécution par le CPU #i et la priorité du processus en cours d'exécution par le CPU #j. L'étape 508 est une étape de mise en place de la première stratégie mentionnée précédemment A l'étape 508, la priorité du processus en cours d'exécution par le CPU#i et la priorité du processus en cours d'exécution par le CPU#j sont comparées. Selon le procédé de dénomination expliqué ci-dessus, la grandeur relative de PRI(#i) et la grandeur relative de PRI(#j) sont comparées Si PRI(#i) est inférieure à 13 - PRI(#j), c'est-à dire si La priorité du processus en cours d'exécution par Le CPU#i est inférieure à ce L Le du processus en cours d'exécution par Le CPU#j, L'étape 510 est exécutée Si PRI(#i) est éga Le à PRI(#j), l'étape 510 est exécutée Si PRI(#i) est supérieure à PRI(#j), c'est l'étape 520 qui est exécutée. L'étape 510 est une étape pour la mise en place de La seconde stratégie mentionnée précédemment A L'étape 510, on juge si oui ou non Le numéro de référence LCPU#(PA) du CPU qui a exécuté le dernier le processus A est identique à i Si Le LCPU#(PA) est éga L à i, c'est-à dire si le processus a été exécuté La dernière fois par Le CPU#i, L'étape 518 est exécutée Si le LCPU#(PA) n'est pas éga L à i, c'est l'étape 512 qui est exécutée. L'étape 512 est une autre étape de mise en place de la seconde stratégie mentionnée précédemment A L'étape 512, on juge si oui ou non Le numéro de référence LCPU#(PA) du CPU qui a exécuté Le dernier Le processus A, est identique à j Si le LCPU#(PA) est éga L à j, c'est-à dire si le processus A a été exécuté La dernière fois par Le CPU#j, l'étape 520 est exécutée Si Le LCPU#(PA) n'est pas éga L à i, c'est L'étape 514 qui est exécutée. L'étape 514 est une étape pour La mise en place de la troisième stratégie mentionnée précédemment A l'étape 514, i et Cnt sont comparés En d'autres termes, on juge si oui ou non Le CPU#i est effectivement le CPU qui est en train d'exécuter ce traitement Si i est éga L à Cnt, c'est-à dire si le CPU#i est rée L Lement Le CPU qui est en train d'exécuter ce traitement, L'étape 518 est exécutée. Si i n'est pas éga L à Cnt, c'est L'étape 520 qui est exécutée. L'étape 518 est exécutée si PRI(#i) est inférieure à PRI(#j) à L'étape 508, si Le LCPU#(PA) est éga L à i à l'étape 510 ou si i est éga L à Cnt à L'étape 514 A L'étape 518, i et k remp Lacent respectivement minpn et j. Après achèvement de L'étape 518, L'étape 522 est exécutée. 14 - L'étape 520 est exécutée si PRI(#i) est plus grande que PRI(#j) à L'étape 508, si Le LCPU#(PA) est éga L à j à l'étape 510 ou si i n'est pas éga L à Cnt à l'étape 514 A L'étape 520, j et k remplacent respectivement minpn et i. Après achèvement de L'étape 528, l'étape 522 est exécutée. A l'étape 522, i est augmenté. A l'étape 524, une comparaison est effectuée pour voir si oui ou non k est égale à M+ 1 Si k n'est pas éga Le à M+ 1, L'étape 506 et Les étapes suivantes sont exécutées de nouveau Si k est égale à M+ 1, c'est L'étape 526 qui est exécutée Au moment o L'étape 524 est achevée, le numéro du CPU qui est Le destinataire de La distribution du processus A, déterminé en fonction des première à troisième stratégies décrites ci-dessus, remp Lace La variab Le minpn. A l'étape 526, la grandeur relative de PRI(CPU#minpn) est comparée avec La grandeur relative de PRI(PA) Ainsi, La priorité du processus en cours d'exécution par le CPU#minpn est comparée avec cel Le du processus A Si PRI(CPU#minpn) est supérieure ou égale à PRI(PA), L'étape 408 est achevée Ceci se produit lorsque la priorité du processus A est inférieure à La p Lus petite priorité du processus en cours d'exécution par l'un que Lconque des processeurs Par conséquent, le processus A n'est pas distribué Lorsque PRI(CPU#minpn) est inférieure à PRI(PA), c'est l'étape 528 qui est exécutée. A l'étape 528, le processus A est dirigé vers le CPU#minpn Après achèvement de L'étape 528, c'est l'étape 408 qui est achevée. L'achèvement de L'étape 408 met un terme au second traitement de répartition Chacun des traitements décrits précédemment, c'est-à dire Le premier traitement de répartition, Le second traitement de répartition, Le premier traitement de mise à jour de LCB et Le second - traitement de mise à jour de LCB, est exécuté indépendemment des autres. Avantages. Comme cela a été décrit jusqu'à présent, selon la présente invention, la destination de La répartition dans Le second traitement de répartition est déterminée selon Les première à troisième stratégies mentionnées précédemment. Lorsque La seconde stratégie est prise en considération pour déterminer la destination de la répartition, Le processus a une très grande probabilité d'être redistribué vers le CPU qui était en train de l'exécuter immédiatement auparavant, d'o il résulte uneaméLioration de La vitesse d'acceptation des informations, et un taux d'occurence réduit quant aux annu Lations de cache. Lorsque La troisième stratégie est prise en considération pour déterminer la destination de la répartition, la vitesse d'exécution du processus est accrue Du fait que le processeur exécutant le traitement de répartition a déjà accédé au PCB(PA) du processus A, i L peut commencer le traitement du processus A plus tôt que tout autre processeur. Lorsqu'un nouveau processus doit être généré, Le CPU de numéro 212 dont L'exécution est immédiatement précédente, est déterminé a Léatoirement par Le second traitement de mise à jour de PCB Par conséquent, dans Le second traitement de répartition, Les destinations de répartition des processus nouve L Lement générés ne sont concentrées sur aucun processeur spécifique. Comme cela a été exp Liqué jusqu'ici, La présente invention rend possible L'obtention, à La fois, d'une mei L Leure vitesse d'acceptation des informations et d'un taux d'occurance réduit des annu Lations de cache Par conséquent, e L Le faci Lite L'amélioration de L'efficacité de traitement d'un système mu Ltiprocesseur, dans Leque L chaque processeur est doté d'une mémoire cache De plus, 16 - L'invention supprime La nécessite de diviser Les mémoires en groupes, ainsi que La gestion de ces groupes. La présente invention peut être réa Lisée sous d'autres formes spécifiques sans sortir de son esprit ou de ses caractéristiques essentie L Les. Par exemp Le, a Lors que Le nombre d'unités centrales de traitement dans Le mode de réa Lisation préféré décrit ci-dessus est de quatre, i L peut être de tout autre nombre, et la va Leur de La variable M devra être modifiée en fonction du changement de nombre de CPU. Le second traitement de mise à jour de PCB n'est pas abso Lument nécessaire S'i L n'est pas utilisé, les processus nouve L Lement générés doivent être soumis à un traitement de répartition c Lassique au Lieu du second traitement de répartition. Comme ce La a été décrit précédemment, ce mode de réa Lisation préféré doit être considéré, sous tous ses aspects, de façon illustrative et non restrictive. 17 2699304 REVENDICATIONS 1 Procédé de répartition de processus uti Lisab Le dans un système multiprocesseur, dans Leque L chaque processeur inc Lut une mémoire cache, comprenant: une première étape pour Lire La priorité d'un premier processus et Le numéro de référence du processeur qui a exécuté Ledit premier processus immédiatement avant qu'i L ne soit sorti du b Loc de commande de processus pour Ledit premier processus; une seconde étape pour choisir tous Les processus ayant Le rang de priorité Le p Lus bas parmi tous Les processus en cours d'exécution; une troisième étape pour comparer La priorité du ou des processus choisi (s) à Ladite seconde étape, avec La priorité dudit premier processus, et pour arrêter Le traitement de répartition si La priorité du ou des processus choisi(s) à Ladite seconde étape est supérieure à ce L Le dudit premier processus; une quatrième étape pour répartir, si un seu L processus a été choisi à Ladite seconde étape, Ledit premier processus vers Le processeur exécutant ce processus choisi; et une cinquième étape pour diriger, si une p Lura Lité de processus ont été choisis à Ladite seconde étape et si L'un quelconque des processeurs exécutant Les processus choisis à Ladite seconde étape a un numéro de référence identique à ce Lui du processeur ayant exécuté Ledit premier processus immédiatement avant, Ledit premier processus vers ce processeur. 2 Procédé de répartition de processus, se Lon La revendication 1, comprenant en outre une sixième étape pour diriger, si Ledit premier processus n'est dirigé vers aucun processeur à Ladite quatrième et à Ladite cinquième étape, et s'i L y a un processeur quelconque en train d'exécuter un traitement de répartition parmi Les processeurs exécutant Les processus choisis à Ladite 18 - seconde étape, Ledit premier processus vers ce processeur. 3 Procédé de répartition de processus, se Lon La revendication 2, comprenant en outre une septième étape pour diriger, si Ledi t premier processus n'est dirigé vers aucun processeur auxdites troisième, quatrième et cinquième étapes, Ledit premier processus vers L'un des processeurs exécutant Les processus choisis à Ladite seconde étape. 4 Procédé de répartition de processus, se Lon La revendication 1, comprenant en outre un premier traitement de mise à jour de PCB devant être exécuté Lorsqu'un second processus en cours d'exécution par L'un des processeurs est amené dans un état de disponibilité ou d'attente, o Ledit premier traitement de mise à jour de PCB a une étape pour changer Le numéro de référence du processeur par Leque L Ledit second processus a été exécuté immédiatement avant, Ledit numéro étant enregistré dans Le b Loc de commande de processus pour Ledit second processus, en un numéro de référence du processeur qui est en train d'exécuter Ledit second processus. Procédé de répartition de processus, se Lon La revendication 4, comprenant en outre un second traitement de mise à jour de PCB devant être exécuté Lorsqu'un troisième processus est généré en outre, o Ledit second traitement de mise à jour de PCB comprend une étape pour déterminer un nombre aléatoire pour Le numéro de référence du processeur par Leque L Ledit troisième processus a été exécuté immédiatement avant, Ledit numéro étant enregistré dans Le b Loc de commande de processus pour Ledit troisième processus.