FR 2553207 A1 19850412 FR 8415397 A 19841008 La présente invention concerne un système de traitement de données en multitraitement et, plus particulièrement, un système de commande pour mettre en série des opérations de désignation/mise à jour sur une donnée partagée qui est stockée dans une mémoire principale entre une pluralité d'unités de multitraitements au couplage étroit. Comme cela est connu dans l'art, un multitraitement dans lequel une pluralité d'unités de traitement partagent une mémoire principale est un système de traitement 10 souhaitable quant à la capacité et -à-la fiabilité de traitement du système Dans le cas d'un multitraitement, des fonctions de communication doivent être établies entre une pluralité d'unités de traitements afin de faciliter un traitement à une dimension Les fonctions de communica15 tion comportent une fonction qui empêche temporairement une unité de traitement de désigner/mettre à jour une donnée partagée qui est stockée dans la mémoire principale jusqu'à ce que l'autre unité de traitement complète la désignation/mise à jour de la donnée. Dans un multitraitement, il n'est pas rare que 2. des unités de traitement utilisent des données communes dans une mémoire principale à la manière d'un conflit d'utilisation, typiquement une unité centrale de traitement contre une voie et une unité centrale de traitement contre une unité centrale de traitement Plus particulièrement, les mécanismes proposés jusqu'à maintenant pour mettre en série les opérations concernant le cas d'une unité centrale de traitement contre une unité centrale de traitement peuvent être classés en deux types, c'est-à10 dire un type à suspension et un type à rotation, comme cela sera décrit. En liaison avec la figure 2 qui représente le mécanisme du type à suspension, une instruction BLOCAGE est une instruction ayant un seul opérande et destinée à 15 désigner une certaine adresse d'une mémoire principale. L'adresse est associée à une ressource spécifique telle qu'une table partagée L'instruction BLOCAGE décharge la donnée d'une adresse que son opérande désigne, contrôle un bit spécifique de la donnée et, s'il est "O", le fait pas20 ser à " 1 " et le stocke dans la mnme adresse, avec ensuite une instruction à la suite de l'instruction BLOCAGE Si le bit spécifique est déjà devenu " 1 ", une interruption est produite sans changement du contenu de l'adresse désignée. En réponse à lrinterruption, la commande avance à un pro25 gramme de gestion ou à un programme superviseur de manière à interromprel'éxécution d'une tâche ou l'interruption s'est produite et,par conséquent, établit un état d'attente, après quoi la commande passe à une autre tache Une instruction DEBLOCAGE qui est une instruction apprariée 30 avec l'instruction BLOCAGE décharge la donnée d'une adresse désignée par son opérande, contrôle un bit spécifique de la donnée et, s'il est " 1 ", le fait passer à " O ", et la stocke de nouveau dans la même adresse, puis génère une interruption Alors, le programme de gestion rend la 35 tâche en attente exécutable pour cette ressource et,alors, 3. revient à une instruction suivant l'instruction DEBLOCAGE d'une tâche o l'interruption s'est produite de manière à poursuivre l'exécution Si le bit spécifique est "O", ce qui signifie une erreur, le programme de gestion peut prendre toute mesure appropriée telle la suspension de cette tache en générant une interruption La figure 2 représente le cas o une tâche 1 en cours d'exécution dans une unité de traitement 5 a possédé une ressource A et, par conséquent, une exécution est démarrée dans une seconde unité de trai10 tement 6 Dans l'entre-temps, l'unité 6 exécute d'autres tâches ne développant aucune servitude. On a proposé une autre méthode qui est élaborée de manière à réduire la fréquence des interruptions et, par conséquent, la servitude Cette méthode est telle qu'une 15 instruction DEBLOCAGE a pour effet que la donnée dans une adresse spécifique désignée par son opérande doit être changée inconditionnellement en "O", puis de nouveau stockée, ne produisant aucune interruption Cette méthode implique la possibilité d'une instruction-de blocage de suspension qui 20 se produit de nouveau lorsque l'exécution est démarrée,car le démarrage de l'exécution d'une tâche de blocage de suspension est traité de la même manière que la répartition ordinaire d'unités de traitement à des tâches Selon une autre méthode, un mot désigné par l'opé25 rande d'une instruction BLOCAGE ou celui d'une instruction de déblocage (mot de blocage) ou son bit particulier (bit de blocage) peut comprendre un compteur répondant au nombre de taches en attente en plus de l'information montrant si oui ou non la ressource associée est en utilisation Le comp30 teur indique non utilisé lorsqu'il s'agit d'un "O", une utilisation lorsqu'il s'agit d'un " 1 ", et incrémente les taches en attente de " 1 " lorsqu'il s'agit de " 2 " et dans le seéns ascendant Une instruction BLOCAGE incrémente le compteur de " 1 " et, si le résultat est " 2 " ou plus, produit une inter35 ruption Une instruction DEBLOCAGE décrémente le compteur de " 1 " et, si le résultat est " 1 "' ou plus, produit une interruption En réponse à l'interruption, un programme de gestion bloque en suspens une tâche ou repasse l'une des tâches en attente par blocage Une interruption serait sensi5 blement supprimée s'il se produit rarement le fait que le résultat de la soustraction par une instruction DEBLOCAGE est " 1 " ou plus. Une autre approche possible est l'affectation de la commande à une tâche même en réponse à une instruc10 tion BLOCAGE et à une instruction DEBLOCAGE, sans produire une interruption Plus spécifiquement, en réponse à une instruction BLOCAGE, un bit de blocage désigné par l'opérande est contrôlé et, s'il s'agit d'un "O", il est changé en " 1 " puis stocké dans le même bit et alors le traitement est 15 poursuivi avec branchement à une position fixée à plusieurs adresses en avant S'il s'agit d'un " 1 ", une instruction basée sur l'instruction BLOCAGE est exécutée Une série d'instructions après l'instruction BLOCAGE et juste avant la position fixée plusieurs adresses en avant comprend celles du 20 type qui abandonne la commande de la tâche même et, ensuite, se branche de nouveau à une instruction BLOCAGE après obtention d'une commande S'agissant d'une instruction DEBLOCAGE,il suffit de faire passer inconditionnellement un bit de blocage désigné par l'opérande à "O" On notera que 25 le mot de blocage ou le bit de blocage peut être commandé en série en rendant "O" l'instruction-de blocage en fonction et les autres instructions de blocage hors fonction, et cela est également vrai dans la description suivante. Le rôle affecté au matériel est généralement 30 une instruction BLOCAGE et une instruction DEBLOCAGE La condition primaire nécessaire est que chaque processus de fonctionnement soit effectué par une instruction; pendant le fonctionnement une antémémoire dans une unité de traitement soit contournée, et aucune interruption ne soit 35 autorisée pendant le fonctionnement. 5. Les caractéristiques de l'agencement du type à suspension sont telles que, dans l'aspect système, aucune limitation n'est imposée à la période pendant laquelle une ressource est possédée, qu'une unité de trai5 tement n'implique aucun gaspillage de temps dû à une attente,et que le type à suspension est applicable non seulement au multitraitement mais également au traitement unique pour la gestion des ressources qui est partagée par les tâches. L'autre mécanisme, mécanisme du type à rotation, est représenté en figure 3 Ce mécanisme, comme le type à suspension, estlargement applicable pour la commande d'une utilisation sérielle d'une ressource parmi les tâches en multitraitement Cependant, son application princi15 pale est comme sous-programme dans une partie sans tâche pour commander des tâches ellesmêmes Là o une procédure constituant une série de tâches ou de sousprogrammes est en cours dans une unité de traitement, son endroit est appelé "processus". Une instruction BLOCAGE coporte deux opérandes qui désignent respectivement certaines adresses d'une mémoire principale Une adresse du premier opérande est associée à une table partagée ou ressource spécifique analogue Une adresse du second opérande désigne un emplace25 ment auquel doit sauter l'instruction BLOCAGE L'instruction BLOCAGE contrôle un mot de blocage/hit de blocage désigné par le premier opérande et, s'il est débloqué, le fait b loquer,et puis le stocke dans la position d'origine, suivie de l'exécution de l'instruction suivante Si le mot 30 de hlocage/bit de blocage est bloqué en fonction lors du contrôle, l'instruction le hranche sur une adresse désignée par le second opérande sans changer quoi que ce soit La lecture et l'écriture d'un mot de blocage/bit de blocage sont effectuées en contournant une antémémoi35 re dans une unité de traitement, de sorte qu'aucune interruption ne peut se produire dans le cours d'une opération 6. instruite Une instruction DEBLOCAGE change inconditionnellement un mot de blocage/bit de blocage désigné par un opérande pour blocage hors-fonction. Dans l'exemple représenté en figure 3, comme un 5 processus ú exécuté dans la première unité de traitement a immobilisé une ressource A en premier lieu, un processus m dans la seconde unité de traitement 6 est branché sur une adresse B L'adresse B est un point d'entrée d'un sousprogramme d'attente de ressource partagé par tous les processeurs et comportant avec une structure de programme récurrente Ici, la commande est bouclée pendant une durée prédéterminée jusqu'à ce que la ressource A soit libérée, et, immédiatement après cette libération, elle est transférée au processus m Le processus m maintient la ressour15 ce A par une autre instruction BLOCAGE Si la durée prédéterminée expire avant la libération de la ressource A, une erreur s'est produite Dans l'attente d'une ressource, en contrôlant si la ressource A-est en cours d'utilisation par une instruction BLOCAGE, il est possible d'éliminer la 20 nécessité de ré-émettre une instruction BLOCAGE à l'instant o la commande est transférée au processus m. Le mécanisme du type rotation implique généralement des limitations en utilisation car une unité de traitement elle-même attend pendant le bouclage, ou tourne, pour des raisons de commande De façon que le temps de rotation soit fini à des fins de contrôle d'erreur, il est nécessaire d'inhiber des interruptions alors qu'une ressource est possédée par un processus En général, la durée d'une opération continue dans un mode d'inhibition ne pouvant être interrompue ou à interruption d'une unité de traitement est limitée en conformité avec une possibilité de traitement conçue pour l'unité de traitement et, donc, le temps maximum de rotation ne peut dépasser le temps limité Dans le cas o une rotation de processus dans une 35 unité de traitement a déjà assujetti des ressources, une - 7. impasse due à un conflit d'utilisation ou verrouillage peut se produire lorsqu'un processus dans l'autre unité de traitement désire posséder l'une quelconque des ressources. Pour éviter une telle possibilité,le mécanisme du type à rotation emploie une règle prédéterminée concernant la séquence de maintien et de libération des blocages Par exemple, un blocage peut être possédé et libéré dans l'ordre alphabétique des labels de ressources. Bien que le type à rotation soit inefficace en monotraitement, un moyen pour mettre en série les opérations de désignation/mise à jour sans rotation est disponible en monotraitement à cause des interruptions d'inhibition du type rotation alors qu'une ressource est possédée. Parmi les mécanismes du type à suspension et du type à rotation, certains emploient un microprogramme pour commander les instructions BLOCAGE et DEBLOCAGE, qui appartiennent à un mécanisme de matériel, et les présentent comme des macro-instructions ENQ/DEQ ou instructions de 20 commande de sémaphore pour logiciel d'o une mise en série de l'utilisation des ressources. Le problème le plus difficile avec la mise en série en multitraitement est que, lorsque une unité d'une pluralité d'unités de traitement est arrêtée alors qu'elle 25 maintient une instruction de blocage, l'autre unité de traitement est introduite dans une boucle ou un état d'attente, et il en résulte que le traitement en tant que système global est interrompu. En général, pour arrêter une unité de traite30 ment qui exécute une tache, la tache est suspendue par un programme de gestion dans une autre unité de traitement, ou,en variante,la tâche est renvoyée aussi loin qu'à un certain point commode sous l'aspect du traitement, puis re-exécutée Si une telle tâche a possédé un 35 blocage, il est très difficile d'exécuter le traitement 8. sans contradiction par utilisation d'une autre unité de traitement Cela est dû au fait que le blocage doit être libéré lors du retour de l'état d'une ressource associée au mot de blocage/bit de blocage à "i" avant la posses5 sion, par un post-traitement dans le cas d'un agencement à suspension et par un pré-traitement dans le cas d'un agencement avec retour Dans un sous-programme qui constitue une partie de base du programme de gestion, une suspension signifie un système à l'arrêt et, comme même-le retour du 10 traitement au moyen d'un autre programme est impossible, elle est généralement traitée en système à I'arrêt. A la lumière de ce qui précède, on a proposé un système pour multitraitement qui permet à un traitement d'être poursuivi correctement en amenant une tâche ou un sous-programme à sauvegarder des données dans une ressource avant désignation mise à jour dans une zone d'une mémoire principale appropriée sous auto-commande à l'étape de bloaage pour utilisation de la ressource, et d'exécuter un traitement de reprise par l'arrêt mentionné précédem20 ment, c'est-à-dire ll'introduction d'une fonction de remise à l'état original de la ressource au moyen de la donnée sauvegardée afin de libérer le blocage et, alors que l'unité de traitement est arrêtéel'amenêe de l'autre unité de traitement à exécuter en série un processus de repri25 se associé à la tâche ou au sous- programme On trouvera des détails de ce type de système dans un article intitulé "Design of tightly-coupled multiprocessing programming" de J S Arnold et collaborateurst IBM SYSTEM JOURNAL, n 1, 1974,pp 60-87. Le problème rencontré avec les systèmes de l'art antérieur est que les modules de toutes les taches ou sousprogrammes sont nécessairement soumis aux considérations discutées précédemment pour toutes les ressources qui nécessitent un traitement en série, ce qui se traduit par des programmes particulièrement massifs Un autre problème 2.553207 9. est que le processus de reprise est incomplet car il est quelquefois impossible de ramener les ressources à ces états avant utilisation. Par conséquent, un objet de la présente inven5 tion est un système de commande pour unités de multritraitement au couplage étroit qui en multitraitement avec un mécanisme pour emploi avec mise en série de ressources partagées par blocage d'une unité quelconque de traitement désirée peut être arrêté à tout moment désiré à con10 dition que le traitement de la totalité du multitraitement soit poursuivi sans interruption, quelle que soit l'unité de traitement qui est en train d'exécuter quelque traitement que ce soit. Un autre objet de la présente invention est un 15 système de commande généralement perfectionné pour unités de multitraitement au couplage étroit. Un système de commande pour unités de multitraitement au couplage étroit de la présente invention est du type comportant une mémoire principale pour stocker un 20 programme partagé et une donnée partagée, une première unité de traitement qui désigne le programme partagé de la mémoire principale et désigne/met à jour la donnée-partagée de la mémoire principale, et une seconde unité de traitement qui attend la fin de la référence au programme parta25 gé et de la désignation/mise à jour de la donnée partagée alors que la première unité de traitement est en train de désigner le programme partagé et de désigner/mettre à jour la donnée partagée Le système de commande comprend une première mémoire d'unité pour stocker l'une quelconque des 30 unités de traitement dans laquelle l'horloge est arrêtée, une Mémoire de notification d'arrêt pour stocker une notification d'arrêt d'horloge provenant de l'unité de traitement dans laquelle l'horloge est arrêtée, une seconde mémoire d'unité pour stocker n'importe laquelle des unités de traitement dans laquelle un traitement est temporairement 10. interrompu,et un circuit de reprise de traitement pour reprendre un traitement continu de l'unité de traitement dans laquelle le traitement est interrompu temporairement, la seconde mémoire d'unité et le circuit de reprise de 5 traitement étant utilisés en combinaison pour exécuter alternativement le traitement interrompu de l'unité de traitement stockée dans la première mémoire d'unité et le traitement de l'unité de traitement stockée dans la mémoire de notification d'arrêt jusqu'à ce que le conflit d'uti10 lisation dans la désignation du programme partagé et la désignation/mise à jour de la donnée partagée soit terminé dans l'unité de traitement stockée dans la mémoire de notification d'arrêt. Selon la présente invention, un système de com15 mande met en série des opérations de désignation/mise aà jour sur des données partagées stockées dans une mémoire principale entre une pluralité d'unités de multitraitement à couplage étroit En multitraitement avec un mécanisme pour utilisation avec mise en série de ressources partagées par des opérations de blocage, le système permet à n'importe quelle unité de traitement désirée d'être mise hors service à tout instant désiré à condition que le traitement de la totalité du multitraitement soit poursuivi sans interruption,quelle que soit l'unité de traitement qui 25 exécute un traitement de quelque sorte que ce soit. La présente invention sera bien comprise lors de la description suivante faite en liaison avec les dessins ci-joints dans lesquels: Les figures l A et 1 l sont des schémas sous forme 30 de blocs d'un système de commande selon la présente invention; Les figures 2 et 3 sont des vues expliquant une technique qui constitue une base de la présente invention; et Les figures 4 A-4 C sont des organigrammes démons trant des exemples du fonctionnement du système de commande 255320711. selon la présente invention. Alors que le système de commande pour des unités de multitraitement a couplage étroit de la présente invention est susceptible de nombreux modes de réalisa5 tion physiques,en fonction de l'environnement et des conditions d'utilisation,un nombre important de systèmes du mode de réalisation représenté et décrit dans les présentes a été fabriqué, testé et tilisé, et tous se sont comportés d'une façon extrêmement satisfaisante. En liaison avec la figure 1 A, un système de commande selon la présente invention est représenté et comprend une mémoire principale 1, une pluralité d'unités centrales de traitement 3-, et un bus de système 2 connectant les composants 1 et 3 Le système comporte un mécanisme pour 15 mettre en série des désignations se rapportant à la mémoire principale 1 faites par les unités centrales de traitement 3. Le mécanisme de mise en série emploie deux instructions appelées BLOCAGE et DEBLOCAGE Comme représenté en figure l B, le mécanisme comprend un mécanisme provoquant la production 20 d'une interruption interne dans l'une des unités centralesde traitement 3 pour qu'elle soit arrêtée lorsqu'est survenue la nécessité de son arrêt d'urgence, et un mécanisme pour amener la production d'une interruption externe de manière à informer que l'une des unités centrales de traite25 ment 3 d'un arrêt lors de l'exécution d'une instruction ARRET par l'unité centrale de traitement spécifique 3. En réponse à l'interruption interne, le fait; que le traitement dans une unité centrale de traitement particulière 3 a été interrompu est stocké dans la mémoire 30 principale 1, la donnée maintenue dans des registres de l'unité centrale de traitement au moment de l'arrêt est sauvegardée dans la mémoire principale 1 et la mise a. l'état virtuel de l'unité-centre de traitement spécifique 3 est stockée dans la mémoire principale 1 Lors de l'exécu35 tion de l'instruction ARRET, l'unité centrale de traitement 12. spécifique 3 (UCT) est mise hors service alors qu'une interruption extérieure est appliquée à l'autre UCT 3 La mémoire principale qui mémorise le fait que l'UCT 3 a accepté l'interruption externe est un processus réel qui se substitue à i'UCT 3,virtuelle, ce qui est immédiatement suivi par l'exécution du traitement sur 1 'UCT 3 virtuelle C'est-à-dire que,dans le but d'interrompre le propre traitement, l'arrêt du traitement est stocké dans la mémoire principale puis la donnée de registre dans l'UCT 3 10 maintenue au moment de l'arrêt est sauvegardée dans la mémoire principale l,alors l'interruption du traitement dans l'UCT virtuelle 3 est reflétée dans la mémoire principale 1,puis le traitement est repris par rétablissement des registres sauvegardés de l'UCT virtuelle 3 dans P'UCT réelle 3. Ensuite, lorsque le verrouillage s'est produit entre l'UCT virtuelle 3 et l'UCT réelle 3 de substitution, le traitement dans l'UCT 3 qui a été bloqué ensuite sur boucle ou attente est interrompu par le moyen cité précé20 demment, à la suite de quoi, l'UCT qui a été arrêtée, bloquée précédement est amenée à reprendre le fonctionnement par le moyen cidessus Cela permet à tous les traitements de se poursuivre tout en évitant les impasses Ainsi, l'exécution des traitements par commutation séquentielle des 25 traitements de deux UCT 3 par une UCT en dépendance de l'état du verrouillage se poursuit jusqu'à ce que toutes les UCT soient devenues exemptes de l'état d'interruption, lorsque les UCT sont réparties par le programme de gesti.on. Le verrouillage entre la troisième UCT et celles d'ordre ascendant Iqui n'ont aucun rapport avec le traitement précédent,est naturellement stabilisé par elles-mêmes; même si elles sont en conflit d'utilisation avec les UCT citées précédemment, elles sont simplement 35 bouclées ou amenées à attendre jusqu'à être libérées du 13. blocage On notera que la procédure entre l'interruption interne et l'interruption externe peut être affectée à une unité de traitement exclusive et ainsi ne limite pas la présente invention. Le fonctionnement du système de commande selon la présente invention sera décrit en détail. En liaison avec les figures 4 A-4 C, des exemples de fonctionnement de la présente invention sont représentés dans des organigrammes. TABLEAU 1 UCT (R, V) L numéro d'une UCT virtuelle simulée par une UCT réelle n R. -numéro d'une UCT réelle. PROCESSUS (n, V) -UCT virtuelle pour effectuer un processus n. L numéro d'identification de processus affecté processus par processus. ZONE (V) zone dans une mémoire pour sauvegarder et récupérer une donnée (R) de registre associée à une UCT réelle de 25 manière à réaliser uneUCT virtuelle V; comprise dans chaque UCT virtuelle. DRAPEAU DE DEMANDE DE REPRISE (V) drapeau dans la mémoire principale pour demander une reprise d'un traitement; compris dans chaque UCT 30 virtuelle. DRAPEAU DE TRANSIT INT drapeau indicateur d'une période dans laquelle une confusion pourrait se produire si une UCT vrituelle (V) désigne une donnée de la mémoire principale qui 35 est partagée avec une autre UCT virtuelle; présent 14. dans la mémoire principale et affecté à chaque UCT virtuelle. y" indique une UCT virtuelle autre que V et "-" un nombre arbitraire. Le tableau 1 indiqué ci-dessus explique les symboles spéciaux qui apparaissent dans les organigrammes des figures 4 A et 4 B Dans une situation de multitraitement avec le mécanisme du type rotation, quand le besoin est apparu d'un arrêt d'urgence d'une UCT particulière 10 pour une raison ou une autre, l'UCT n 1 dans l'exemple de la figure 4 A,une interruption interne dont le seul objet est l'arrêt est produite dans une UCT ( 1, 1) pour interrompre un processus ( 1, 1), en exécution et, alors, le fonctionnement est transféréa un point d'entrée particu15 lier du sous-programme de traitement d'interruption dans le programme de gestion L'interruption interne est d'une nature qui peut être acceptée même si le processus ( 1,1) est en état d'inhibition d'interruption Un tel arrêt peut être effectué manuellement par un bouton-poussoir ou une relation verrouillée dans un mécanisme de contrôle d'erreur de matériel de l'UCT ( 1, 1). Dans le sous-programme de traitement d'interruption le fait que l'interruption interne s'entend pour un arrêt est confirmé, puis la donnée ( 1) de registre est 25 sauvegardée dans une zone ( 1), et puis le drapeau de demande de reprise ( 1) est instauré Le drapeau de demande de reprise montre que le processus en exécution dans une UCT virtuelle a été interrompu et attend son exécution Appliqué à une UCT réelle, le drapeau de demande de 30 reprise indique que le processus interrompu peut être repris chaque fois que la donnée de registre associée à l'UCT virtuelle est récupérée Bien que la donnée de registre soit liée au processus interrompu car la sauvegarde de donnée se produit au point d'entrée du sous-program35 me de traitement dinterruption, un compteur d'instruction 15. et des registres de commande doivent passer à des valeurs qui leur permettent de revenir au processus interrompu à un point de sortie du programme de commande. Après que le drapeau de transit interne ( 1) ait été instauré à la fin du sous-programme de traitement d'interruption, une instruction ARRET est émise pour arrêter l'UCT Dans le cas o une pluralité d'UCT ont référencées d'une manière conflictuelle une donnée-commune stockée dans la mémoire principale, le drapeau de transit 10 interne est utilisé pour déterminer si oui ou non il doit y avoir libération d'une UCT virtuelle vis-à-vis de la boucle de blocage de rotation et évacuation d'une UCT réelle pour l'autre UCT virtuelle L'instruction ARRET comporte une opérande et désigne une certaine adresse de 1-a mémoire 15 principale Stocké dans cette adresse se trouve un nombre affecté à une UCT réelle pour laquelle une instruction ARRET doit être émise Par exécution de l'instruction ARRET, l'UCT émettrice ( 1, 1) est immédiatement mise hors service et une interruption externe appliquée à l'UCT ( 2, 2) afin 20 de l'informer de l'émission. L'interruption externe est réservée lorsqu'une UCT se trouve dans une inhibition d'interruption ou un état ne pouvant être interrompu 1 et acceptée lorsqu'elle se trouve dans un état pouvant être interrompu Dans l'exemple représenté en figure 4 A, l'UCT ( 2, 2) est interrompue pendant l'exécution d'un processus (m, 2) et saute à un point d'entrée II du sousprogramme de traitement d'interruption Comme les interruptions d'entrée/sortie et autres interruptions externes sont acceptées de façon col30 lective, le fonctionnement peut être immédiatement transféré aupoint d'entrée II lors de la confirmation du fait que l'interruption consiste à signaler l'arrêt Dans le sousprogramme de traitement d'interruption, la donnée ( 2) de registre est sauvegardée dans la zone ( 1), et, alors, un drapeau de demande de reprise ( 2) et un drapeau de transit interne ( 2) sont instaurés Il en résulte que le processus 16. (m, 2) ayant été exécuté par l I'UCP ( 2, 2) est interrompu dans un état prêt pour une reprise future qui peut se produire à tout instant si une UCT réelle est fournie. Ensuite, dans le sous-programme de traitement 5 d'interruption un traitement pour reprise du processus ( 1, 1) qui a été interrompu dans l'UCT ( 1, 1) est commencé On ne peut connaître celle des UCT qui a été arrêtée que si un nombre est stocké dans la mémoire principale avant que l'UCT ( 1,'1) ait émis une instruction ARRET Comme le nom10 bre stocké est " 1 " dans ce cas, un drapeau de demande de reprise ( 1) est instauré pour récupérer la donnée de registre dans la zone ( 1) pour une UCT numérotée " 2 " et, par conséquent>, reprendre le processus ( 1, 1) La raison pour laquelle le processus ( 1, 1) est repris tout en maintenant 15 le processus (m, 2) dans i'UCT( 2, 2) interrompue est que l'interruption interne ayant interrompu i'UCT ( 1,1) peut être acceptée même si le processus ( 1, 1) s'est établi dans un état ne pouvant être interrompu, c'est-à-dire qu'une priorité de traitement est prise en considération. En figure 4 A,le drapeau de transit interne est instauré seulement dans deux UCT virtuelles,c'est-à-dire une qui est arrêtée et une qui est informée de l'arrêt Cela simplifie le traitement même dans un système comportant trois ou plus UCT par mapage de seulement des deux 25 UCT virtuelles et d'une UCT réelle. Dans le mode de réalisation donné à titre d'illustration, le fonctionnement entre l'acceptation d'une interruption interne dans i'UCT ( 1 l 1) et l'émission d'une instruction ARRET est traité par l'UCT ( 1, I) elle-même. Cependantlorsque l'arrêt est dû à une défaillance de matériel dans l'UCT ( 1, 1), il est parfois indésirable ou même impossible de lui permettre d'exécuter encore le fonctionnement Il peut être fait face à cette situation en affectant la procédure entre l'acceptation d'une interruption 35 interne dans l'UCT ( 1, 1) et l'émission d'une instruction 17. ARRET pour une autre UCT, exclusive. Dans l'autre exemple représenté en figure 4 B, lorsqu'un processus (n, V) exéc Uté par une UCT (R, V) exécute une instruction BLOCAGE, une ressource A désignée par le premier opérande est contrôlée Si la ressource A est hors d'usage, l'opération progresse jusqu'à une instruction proche de l'instruction BLOCAGE concernant celle qui est inutilisée; si elle est en cours d'utilisation, le fonctionnement saute à une adresse Z L'adresse Z est un point 10 d'entrée d'un sous-programme d'attente dans le programme de gestion Il a été courant de maintenir une boucle fermée de blocage de rotation sur l'UCT (R, V) jusqu'à ce que la ressource A devienne inutilisée Par contraste, selon la présente invention, dans le cas o l'une quelconque des 15 autres UCT virtuelles à l'état de blocage de rotation a un drapeau de transit intérieur hors fonction, et que l'UCT spécifique est en train d'utiliser la ressource A, elle est libérée de la boucle fermée de blocage de rotation; dans le cas o le drapeau de transit intérieur d'une UCT 20 bloquée en rotation est lui-même hors fonction, il saute de nouveau dans la boucle fermée. Plus spécifiquement, le numéro affecté à une UCT réelle et celui d'une UCT virtuelle coincident dans une UCT dont le drapeau de transit intérieur a été mis hors fonction Ceci dans le but d'éviter une impasse par suite d'un conflit d'utilisation en ne permettant qu'à une UCT arrêtée et à une UCT informée de l'arrêt d'utiliser alternativement une UCT réelle,la rendant ainsi virtuelle. L'UCT avec le drapeau de transit intérieur hors fonction a 30 seulement besoin d'être maintenue à l'état d'attente Lorsque la ressource A devient inutilisée alors qu'elle est dans la boucle fermée de blocage de rotation, l'UCT (R, V) la considère immédiatement comme utilisée et revient au processus (n, V) de manière à avancer jusqu'à l'instruction 35 suivant l'instruction BLOCAGE Dans l'entre temps, lorsqu'un laps de temps prédéterminé,e T millisecondes, s'écoule 18. avant que l'UCT (R, V) soit sortie de la boucle fermée, la situation est considérée comme une erreur et, généralement, le système est mis à l'arrêt pour recueillir des informations. Lorsque le drapeau de transit intérieur (V) est en fonction, la donnée (R) de registre est sauvegardée dans une zone (V) et, alors, un drapeau de demande dereprise (V) est instauré pour interrompre le processus (n, V) Ensuite, 1 'UCT entre dans un traitement pour 10 amener un processus qui a été interrompu par suite de l'utilisation de la ressource A à être repris C'est-àdire que l'UCT (R, V) obtient un nombre auprès de 1 'UCT virtuelle qui a utilisé la ressource A, puis remet à l'état initial le drapeau de demande de reprise de cette 15 UCT, et alors récupère la donnée de registre dans la zone associée pour une UCT réelle numérotée "R" de manière à l'amener à démarrer sur le processus interrompu (K, W). Lorsque la commande est transférée du processus (n, V) qui est exécuté par une certaine UCT (R, V) à un distributeur par suite d'une interruption comportant la fin de l'entrée/ sortie ou l'abandon de la commande par le processus luimême, qui est l'un des programmes de gestion, i'UCT voit si une UCT virtuelle quelconque a son drapeau de transit intérieur mis en fonction et, sinon, execute une distribu25 tion ordinaire. Si le drapeau de transit intérieur d'une UCT virtuelle quelconque est en fonction et si le drapeau de demande de reprise est en fonction, un traitement pour reprendre un processus qui a été interrompu dans cette UCT com Mence Si le drapeau de demande de reprise est hors fonction dans toutes les UCT virtuelles, bien que le drapeau de transit intérieur puisse être en fonction dans l'une quelconque d'entre elles, tous les drapeaux de transit intérieur sont remis à l'état initial, opération qui est suivie par une distribution ordinaire A ce stade, c'est-àdire lorsque la totalité des drapeaux de transit intérieur 19. ont été remis à l'état initial, le traitement pour une affectation en série d'une UCT réelle à des UCT virtuelles est terminé. Par suite des limitations particulières au mé5 canisme du type rotation, alors que le processus (n, V) utilise une ressource particulière, l'UCT (R, V) reste dans un état ne permettant pas l'interruption et n'abandonne pas l'exécution Par conséquent, le transfert de la commande au distributeur et,par conséquent, l'impasse due au 10 conflit d'utilisation se trouvent empêchés. On notera que la commande mise en série selon la présente invention n'est pas limitée au mécanisme du type rotation représenté et décrit et est applicable également au type à suspension. On verra que dans un multitraitement du type comportant un mécanisme de commande en série avec opérations de blocage, la présente invention, exécutant des traitements tels que ceux des figures 4 A-4 C, permet à n'importe laquelle d'une pluralité d'unités de traitement d'être mise 20 hors service à tout instant désiré avec l'une des autres unités rendue virtuelle sans qu'il soit nécessaire de prendre en considération le passage particulier à un programme en cours d'exécution dans une unité de traitement, le contenu d'un traitement, ou la combinaison de traitements par25 ticuliers à des unités respectives de traitement en terme de temps et avec une échelle de programme minimum Cela permet de poursuivre des; traitements de la totalité du multitraitement tout en évitant les impasses dues au verrouillage. La présente invention n'est pas limitée aux exemples de réalisation qui viennent d'être décrits, elle est au contraire susceptible de modifications et de variantes qui apparaîtront à l'homme de l'art. 20. REVENDICATIONS 1 Système de commande pour unités de multitraitement à couplage étroit comportant une mémoire principale ( 1) pour stocker un programme partagé et une don5 née partagée,une première unité de traitement ( 3) qui désigne le programme partagé de la mémoire principale et désigne/met à jour la donnée partagée de la mémoire principale, et une seconde unité ( 3) de traitement qui attend l'issue de la référence au programme partagé et la dési10 gnation/mise à jour de la donnée partagée alors que la première unité de traitement désigne le programme partagé et désigne/met à jour la donnée partagée, caractérisé en ce qu'il comprend: -un premier moyen de stockage d'unité pour met15 tre en mémoire n'importe laquelle des unités de traitement dans laquelle l'horloge est arrêtée; un moyen de stockage de notification d'arrêt pour mettre en mémoire une notification d'arrêt d'horloge provenant de l'unité de traitement dans laquelle l'horloge 20 est arrêtée; un second moyen de stockage d'unités pour mettre en mémoire n'importe laquelle des unités de traitement dans laquelle un traitement est interrompu temporairement; et un moyen de reprise de traitement pour reprendre un traitement continu de l'unité de traitement dans laquelle le traitement est interrompu temporairement; ce second moyen de stockage d'unité et ce moyen de reprise de traitement étant utilisés en combinai30 son pour exécuter alternativement le traitement interrompu de l'unité de traitement mise en mémoire dans le premier moyen de stockage d'unité de traitement de l'unité de traitement mise en mémoire dans le moyen de stockage de notification d'arrêt jusqu'à ce que le conflit d'utilisation dans 35 la désignation du programme partagé et la désignation/mise 21. à jour de la donnée partagée soit terminé dans l'unité de traitement mise en mémoire dans le moyen de stockage de notification d'arrêt