FR2699304A1 - Procédé de répartition de processus. - Google Patents

Procédé de répartition de processus. Download PDF

Info

Publication number
FR2699304A1
FR2699304A1 FR9314876A FR9314876A FR2699304A1 FR 2699304 A1 FR2699304 A1 FR 2699304A1 FR 9314876 A FR9314876 A FR 9314876A FR 9314876 A FR9314876 A FR 9314876A FR 2699304 A1 FR2699304 A1 FR 2699304A1
Authority
FR
France
Prior art keywords
processor
processes
executed
priority
chosen
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
FR9314876A
Other languages
English (en)
Other versions
FR2699304B1 (fr
Inventor
Uehara Tzushi
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 FR2699304A1 publication Critical patent/FR2699304A1/fr
Application granted granted Critical
Publication of FR2699304B1 publication Critical patent/FR2699304B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)

Abstract

L'invention concerne un procédé de répartition des processus utilisables dans un système multiprocesseur, ce procédé consiste à: - 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'il ne soit sorti du bloc de commande de processus; - choisir tous les processus ayant le rang de priorité le plus bas parmi tous les processus en cours d'exécution; - comparer la priorité du ou des processus choisi(s) précédemment, avec la priorité dudit premier processus, et arrêter le traitement de répartition si la priorité du ou des processus choisi(s) précédemment est supérieure à celle dudit premier processus; - répartir, si un seul processus a été choisi à ladite seconde étape, ledit premier processus vers le processeur exécutant ce processus choisi; et - diriger, si une pluralité de processus ont été choisis à ladite seconde étape et si l'un quelconque des processeurs exécutant les processus choisis précédemment a un numéro de référence identique à celui du processeur ayant exécuté ledit premier processus immédiatement avant, ledit premier processus vers ce processeur.

Description

1 -
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

Claims (4)

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.
FR9314876A 1992-12-10 1993-12-10 Procede de repartition de processus. Expired - Fee Related FR2699304B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP35223192 1992-12-10

Publications (2)

Publication Number Publication Date
FR2699304A1 true FR2699304A1 (fr) 1994-06-17
FR2699304B1 FR2699304B1 (fr) 1996-03-15

Family

ID=18422659

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9314876A Expired - Fee Related FR2699304B1 (fr) 1992-12-10 1993-12-10 Procede de repartition de processus.

Country Status (3)

Country Link
US (1) US5446893A (fr)
KR (1) KR970007002B1 (fr)
FR (1) FR2699304B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09101916A (ja) * 1995-10-06 1997-04-15 Fujitsu Ltd マルチプロセス処理装置
US8533716B2 (en) * 2004-03-31 2013-09-10 Synopsys, Inc. Resource management in a multicore architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02193248A (ja) * 1989-01-23 1990-07-30 Hitachi Ltd 実記憶管理方法
EP0459931A2 (fr) * 1990-05-31 1991-12-04 International Business Machines Corporation Procédé d'attribution des tâches entre plusieurs dispositifs de traitement d'information
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5287508A (en) * 1992-04-07 1994-02-15 Sun Microsystems, Inc. Method and apparatus for efficient scheduling in a multiprocessor system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
EP0348628A3 (fr) * 1988-06-28 1991-01-02 International Business Machines Corporation Système d'antémémoire

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02193248A (ja) * 1989-01-23 1990-07-30 Hitachi Ltd 実記憶管理方法
US5193172A (en) * 1989-01-23 1993-03-09 Hitachi, Ltd. Memory management system for dispatching only to a selected high-use-priority task a maximum allocated and given highest-use-priority real-pages when requested
EP0459931A2 (fr) * 1990-05-31 1991-12-04 International Business Machines Corporation Procédé d'attribution des tâches entre plusieurs dispositifs de traitement d'information
US5185861A (en) * 1991-08-19 1993-02-09 Sequent Computer Systems, Inc. Cache affinity scheduler
US5287508A (en) * 1992-04-07 1994-02-15 Sun Microsystems, Inc. Method and apparatus for efficient scheduling in a multiprocessor system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PATENT ABSTRACTS OF JAPAN vol. 014, no. 477 (P - 1118) 17 October 1990 (1990-10-17) *

Also Published As

Publication number Publication date
US5446893A (en) 1995-08-29
KR970007002B1 (ko) 1997-05-01
FR2699304B1 (fr) 1996-03-15
KR940015818A (ko) 1994-07-21

Similar Documents

Publication Publication Date Title
US5307485A (en) Method and apparatus for merging sorted lists in a multiprocessor shared memory system
CN105550318B (zh) 一种基于Spark大数据处理平台的查询方法
CN104408159B (zh) 一种数据关联、加载、查询方法及装置
US20070250470A1 (en) Parallelization of language-integrated collection operations
FR2608807A1 (fr) Systeme multiprocesseur et procede d'equilibrage de charge pour ledit systeme
FR2668271A1 (fr) Interface de modelisation dynamique des performances des systemes informatiques.
FR2613505A1 (fr) Methode d'ouverture rapide de fichiers a disques identifies par la denomination de chemins
CN109828790B (zh) 一种基于申威异构众核处理器的数据处理方法和系统
CN105138676B (zh) 基于高级语言并发聚合计算的分库分表merge查询方法
EP0533536A1 (fr) Procédé de tri d'objets
JP2602502B2 (ja) パラメータを備える対象をそのパラメーの値に従つて分類する方法と装置
CN108170535A (zh) 一种基于MapReduce模型的提升表连接效率的方法
CN106254561A (zh) 一种网络资源文件的实时离线下载方法及系统
CN110262896A (zh) 一种面向Spark系统的数据处理加速方法
CN111125199A (zh) 一种数据库访问方法、装置及电子设备
FR2699304A1 (fr) Procédé de répartition de processus.
WO1994015292A1 (fr) Procede de gestion d'une memoire tampon, support d'enregistrement et systeme informatique l'incorporant
CN107402812A (zh) 集群资源调度方法、装置、设备及存储介质
CN108932258A (zh) 数据索引处理方法及装置
FR2811784A1 (fr) Dispositif de gestion de memoire permettant l'inscription de blocs de donnees par substitution
CN109921945A (zh) 一种无nginx的请求转发在应用层的分流方法及其装置
US11562042B2 (en) Intelligent hotspot scattering method, apparatus, storage medium, and computer device
JPH04153764A (ja) 分散cpuの処理高速化方式
CN110365342A (zh) 波形解码方法及装置
FR2695227A1 (fr) Procédé pour le transfert entrelacé des données entre la mémoire d'un ordinateur et un équipement périphérique constitué d'un système de gestion et de plusieurs unités de stockage.

Legal Events

Date Code Title Description
ST Notification of lapse