FR 2558617 A1 19850726 FR 8500687 A 19850118 255.8617 Système processeur comportant un certain nombre de pos- tes interconnectés par un réseau de communication et poste à utiliser dans un tel système processeur. Description: ARRIERE-PLAN DE L'INVENTION La présente invention concerne un système processeur comportant une première collection de processeurs de traitement de données qui sont intercon- nectés par un réseau de communication pour échanger des données d'information, ce système processeur compre- nant, en outre, une mémoire de système et une connexion au monde extérieur pour exécuter dans les processeurs respectifs des processus correspondants à l'inter- vention d'un mécanisme de communication entre des processus différents. Un tel système multiprocesseur est décrit dans le brevet des Etats-Unis d'Amérique n 4.387,427 au nom de G.W. Cox et collaborateurs cédé à la Société INTEL CORPORATION. Il s'agit là d'un système à coupiage rigide avec une mémoire qui est commune à tous les processeurs et pour lequel des solutions sont choisies de telle sorte qu'extérieu- rement il semble qu'un seul processeur seulement (mais dans ce cas à vitesse de traitement très élevée) soit prévu. Dans le cas d'un tel agencement, l'étendue totale du système est cependant soumise de manière inhérente a une limite supérieure contraignante, notamment par le fait que le nombre maximum de proces- seurs est limité, par exemple toujours àa moins d'une dizaine. L'invention vise à offrir une flexibilité accrue pour laquelle il y a en présence plus de postes qu'il n'en paraît extérieurement, de sorte que l'on tire aussi profit des avantages de postes couplés plus lâchement. Un poste est qualifié de "machine de hard- ware (HAMA)", c'est-à-dire donc la quantité présente sur place de composants destines au traitement des données, y compris ce qui est appelé logiciel de système pour la commande de ces composants qui est indispensable pour chaque traitement de données. Chaque S8617 poste comporte au moins un processeur faisant partie de ces composants, pour exécuter des processus respectifs. Ces processus font notamment partie du traitement de donn6es sous la commande du logiciel d'application en vue de la réalisation du traitement de l'information envisagé par l'utilisateur du système processeur. L'invention a par conséquent pour but de procurer un système processeur dans le cas duquel le chargement de ces programmes d'application puisse s'effectuer sans que l'utilisateur du système doive tenir compte de l'architecture des postes, grâce au fait que les postes se dissimulent pour ainsi dire les uns par rapport aux autres et par rapport au monde extérieur derrière des espaces de boîtes aux lettres qui sont chacun attribués exclusivement à un superprocessus correspondant, de sorte que les superprocessus se dissimulent aussi pour ainsi dire derrière ces espaces de boîtes aux lettres les uns par rapport aux autres et par rapport au monde extérieur, et que dans un superprocessus peut ou peuvent être exécutés un ou plusieurs processus qui peuvent communiquer et coopérer, par exemple par mots, en dehors du mécanisme de boîte aux lettres, de- sorte que des programmes d'utilisateur peuvent être exécutés aussi bien sur un système monoprocesseur que sur un système multiprocesseur et qu'un système peut rester opérationnel dans le cas de la suppression d'un ou de plusieurs postes, du moins pour autant que les compo- sants nécessaires pour une application restent opéra- tionnels dans une mesure suffisante au profit d'un poste ou de postes restants ou de la partition envi- sagée du système processeur. Par le terme "composants", on entend aussi bien les appareils (comme des appareils périphériques) que des auxiliaires de programmation (comme, par exemple, un programme de conversion entre deux structures de données). Une partition du système est formée par un poste ou par un certain nombre de postes, pourvu qu'ils puissent tous communiquer les uns avec les autres. RESUME DE L'INVENTION L'invention réalise ce but au moyen d'un. système processeur comportant une première collection de processeurs de traitement de données qui sont interconnectés par un réseau de communication pour échanger des données d'information, ce système proces- seur comportant, en outre, une mémoire de système et une connexion au monde extérieur pour exécuter des processus respectifs dans les processeurs respectifs à l'intervention d'un mécanisme de communication entre divers processus, caractérisé en ce que le système processeur comporte une première collection de postes (HAMA) qui sont tous interconnectés par un réseau de communication global, o chaque poste comporte une deuxième collection respective de processeurs et une mémoire avec un premier espace d'adresse affecté, sans partage et en excluant des actions de lecture par d'autres processeurs, a la deuxième collection du poste en question, pour l'exécution par poste d'une troisième collection de superprocessus (SOMA) attribuée à ce poste à l'exclusion d'autres postes, chaque superpro- cessus comportant une quatrième collection de processus qui y sont contenus à l'exclusion d'autres superpro- cessus, et au moins un superprocessus comporte au moins deux processus, tous les processus d'un même superpro- cessus ayant en commun une collection d'information variable contenant au moins les données opérationnelles locales par le fait que cette information variable est indiquée en commun par tous les processus de ce super- processus dans un deuxième espace d'adresse à l'inté- rieur du premier, et étant entendu que chaque processus possède en privé son espace de bloc de mémoire, les processus respectifs d'un superprocessus pouvant être exécutés sélectivement dans les processeurs du poste en question, chaque superprocessus possédant, dans le dit deuxième espace d'adresse, un espace de boite aux lettres à titre d'espace de communication de lecture exclusif pour recevoir dans la dite première collection de l'information qui y est inscrite par un quelconque superprocessus, cet espace de boîte aux lettres étant accessible en tant que seul espace de stockage du superprocessus en question pour un autre superprocessus au cours d'une opération d'écriture, chaque superpro- cessus étant pourvu d'un élément de commande pour envoyer par écriture vers un espace de boîte aux lettres sélectif d'un quelconque superprocessus, de l'information organisée par blocs, chaque espace de boîte aux lettres étant pourvu d'un indicateur de niveau de remplissage pour, dans le cas d'une action de lecture entreprise par un superprocessus dans un espace de boîte aux lettres vide, fournir un signal d'attente, dans le cas d'une action d'écriture entreprise par un superprocessus dans un espace de boîte aux lettres complètement rempli, fournir un signal d'erreur et pour le reste, admettre une action de lecture ou une action d'écriture avec ajustement par blocs de l'indicateur de niveau de remplissage de l'espace de boîte aux lettres en question, et un système de contrôle de travaux est présent pour, lorsqu'un travail est présenté au système processeur, l'attribuer en tant que troisième collec- tion de superprocessus sélectivement à des fins d'exé- cution à une cinquième collection d'au moins un poste. Le réseau de communication peut ainsi être optimalisé pour un transport organisé par blocs, les dimensions d'un bloc pouvant être importantes: dans le cas d'un système de bureau, un bloc peut comprendre toute l'information d'une page de texte avec des figures, par exemple 4 Mbytes. Un bloc peut aussi être plus court et il est possible que des blocs de longueurs différant les unes des autres transitent en étant mêlés sur le réseau de communication. L'idée qui se trouve à la base de ce qui précède est que des superprocessus différents peuvent mieux communiquer au niveau du bloc, tandis que la communication entre processus d'un seul superprocessus s'établit habituel- lement au niveau d'un accès de la mémoire, donc, par exemple, sur base de mots. La réalisation de ce qui précède est précisément très avantageuse lorsqu'un ou plusieurs superprocessus contiennent plus d'un processus. Par le terme "processus", on entend une quantité d'opérations élémentaires enchaînées par un dispositif séquenceur et portant sur l'information qui est stockée dans la memoire attribuée au processus en question. L'état d'un processus peut donc être indiqué par un diagramme d'état. Par le terme "superprocessus", on entend une collection de processus. Lorsqu'un superprocessus comprend plusieurs processus, les divers stades des dispositifs séquenceurs respectifs ne doivent pas présenter un rapport selon une relation fixe. Le diagramme d'état d'un superprocessus est formé des diagrammes d'état parallèles et indépendants les uns des autres des processus constitutifs. Comme indiqué plus haut, certaines informations sont souvent communes aux processus d'un superprocessus, notamment des informations de données. En règle générale, d'autres informations, notamment la pile (de registre), sont privées pour chaque processus, tandis que pour d'autres informations encore, par exemple des informations de code (=programme), le choix pourra s'avérer différent pour chaque système processeur ou même pour chaque application. Il convient de noter également que dans le présent mémoire, on suppose que chaque collection possède au moins un élément. De plus, le système est notamment remarquable en ce que la partie du logiciel de système oualifiée de "système d'exploitation" est décentralisée. Ce système commande notamment: le contrôle des travaux, c'est-à-dire l'attri- bution dynamique, sur base d'une activation sélective, d'éléments d'exécution du programme d'utilisateur (application) aux différents postes; le contrôle du réseau, c'est-à-dire l'attri- bution dynamique des moyens de transport par l'intermé- diaire du réseau de communication aux superprocessus respectifs qui le demandent; le contrôle des fichiers, c'est-à-dire l'at- tribution dynamique de l'accès à un ou plusieurs ensembles de données à des superprocessus qui demandent cet accès. Dans ce cas, un appareil périphérique, c'est-à-dire la quantité d'information qui a trait à l'état opérationnel de cet appareil périphérique, peut aussi être traité comme un ensemble. Lorsque l'appareil périphérique concerne alors, par exemple, une mémoire à disque, l'information stockée sur le disque peut aussi être traitée elle-même comme un ensemble. Les conséquences de cette décentralisation sont, entre autres, que lors de la suppression d'un poste ou d'une liaison, une partition restante peut rester opérationnelle. Une partition est donc une partie du système qui n'est pas ou n'est plus en liaison avec d'autres parties (éventuelles) du système. Certaines parties du "système d'exploitation" doivent alors être présentes dans plusieurs postes ou même dans la totalité d'entre eux. D'autre part, une tâche déterminée du "système d'exploitation" qui est demandée dans un certain poste, peut être exécutée par renvoi dans un autre poste. Ceci signifie qu'il n'est pas nécessaire que toutes les fonctions partielles du "système d'exploitation" soient présentes sur tous les postes. Le choix du degré de duplication est déterminé par le degré de suppression d'éléments du système qui ne peut pas encore aboutir à la suppression de la totalité du système. Ainsi, par exemple, la suppression d'un poste d'archivage central comportant un silo de mémoires à disque pouvant être appelées sélectivement et pouvant être lues optiquement aboutira de toute façon fréquemment à des difficultés insurmontables, de sorte qu'il n'y a précisément pas duplication dans ce cas. Des moyens qui peuvent pour ainsi dire "se rempla- cer mutuellement" sont précisément doublés: il en serait ainsi, par exemple, pour une imprimante de lignes, un moniteur vidéo ou un module de programmation souvent utilisé. AUTRES ASPECTS DE L'INVENTION Il est avantageux qu'au moins un poste com- prenne plusieurs processeurs et que dans chaque poste à plusieurs processeurs, les processeurs respectifs soient d'une architecture pareille. Par le terme "architecture", on entend ici la collection de conven- tions et de propriétés par lesquelles le processeur se manifeste à un utilisateur, notamment l'interface dite "matériel-logiciel". Grâce à l'agencement décrit, aucune traduction d'information ne doit avoir lieu dans un seul poste entre les processeurs. Les processeurs prévus dans un poste peuvent ainsi encore être d'un type différent, à condition qu'ils satisfassent à l'exigence de l'archi- tecture pareille: ainsi sont par exemple offertes des familles de processeurs qui peuvent se distinguer les unes des autres par leur vitesse de travail, la collec- tion d'instructions, l'espace d'adresse admissible, mais qui pour le reste sont extérieurement semblables. Il est avantageux que tous les processeurs soient de la même architecture et que chaque poste comprenne un élément d'entrée et un élément de sortie pour communiquer un message sur le réseau de communi- cation global dans la même configuration d'information que celle avec laquelle il transite à l'intérieur des postes respectifs. Cela signifie qu'aucune conversion ne doit être prévue pour le transport sur le réseau, ce qui accroît la vitesse de réponse. En règle générale, l'optimalisation du système présent s'est effectuée en visant un petit temps de réponse et chaque opération ainsi supprimée résulte donc en une amélioration. Il est avantageux que dans chaque poste, une seule architecture de processeur soit présente, mais que dans le système processeur, au moins deux architec- tures de processeur différentes soient présentes, caractérisées en ce que chaque poste comprend un élément de sortie pour communiquer un message sur le réseau de communication global dans la même configu- ration d'information que celle de la communication à l'intérieur du poste émetteur et chaque poste comprend un élément d'entrée pour convertir si nécessaire un message reçu en une configuration d'information admis- sible pour un processeur du poste en question. Pour chaque transport, une seule conversion doit tout au plus avoir lieu, à savoir au récepteur. Si le réseau exigeait une conversion propre par l'émetteur, ceci prendrait plus de temps. Notam- ment, lorsque le nombre d'architectures différentes est petit, par exemple lorsqu'il n'est que de deux, un programme de conversion seulement doit être stocké pour chaque poste, ce qui économise aussi de l'espace de memoire. Il est avantageux qu'un sous-système de 2 5 5 8 6 1 7 distribution de tâches soit présent pour, lors de l'activation d'un travail, attribuer celui-ci de manière statique à titre de superprocessus à un poste respectif jusqu'à ce que ce travail ait été mené à bon terme. Une telle distribution statique augmente la prévisibilité du fonctionnement du système. En elle- mème, la vitesse augmente aussi, lorsque, par exemple, un transport doit s'effectuer sur une liaison lente (ceci est connu d'avance), le poste émetteur peut faire démarrer un autre travail tout en restant assuré que la réponse se fera attendre pendant un temps suffisamment long. Dans le cas d'une allocation dynamique, une liaison très rapide, de même qu'une liaison très lente, peuvent être en conflit: dans ce cas, le poste émet- teur doit donc rester en attente, ce qui représente parfois une marche a vide. Il est avantageux que chaque superprocessus soit pourvu de moyens d'appel destinés à appeler des moyens d'horloge prévus dans le système processeur pour O signaler un temps absolu et un temps relatif. L'appel d'une telle horloge matérielle rend possible de nom- breux types de surveillance du temps, de sorte qu'un tel système processeur peut être utilisé avantageu- sement dans toutes sortes de circonstances de surveil- lance de processus. L'invention a trait également à un poste destiné à être utilisé dans un système processeur comportant plusieurs postes selon la description qui précède, qui est équipé d'au moins un processeur, de moyens de connexion destines à la connexion à un réseau de communication, d'espace de mémoire pour la réali- sation d'espace de boite aux lettres et, en outre, pour l'information de données et l'information de code d'un superprocessus assigné localement, ainsi que de moyens d'appel destinés à appeler des moyens d'horloge a prévoir dans le système processeur pour signaler un temps absolu et un temps relatif, et d'un module de programmation à titre de noyau local du système d'ex- ploitation global. Un tel poste paraît alors être un composant intéressant pour étendre ou développer le système processeur de manière modulaire, ou pour conserver un système en état de fonctionner en dépit de l'élimi- nation pièce par pièce d'un tel poste. COURTE DESCRIPTION DES FIGURES. L'invention sera expliquée ci-après plus en détail avec référence aux figures. On donnera tout d'abord l'arrière-plan technologique. On passera ensuite une description globale du système. Puis on expli- quera des aspects de la spécification fonctionnelle. Ensuite on décrira le réseau. On expliquera ensuite certaines parties du "système d'exploitation". Fina- lement, on décrira le mécanisme de communication entre les superprocessus proprement dit. La Fig. 1 est un schéma synoptique global d'un système multiprocesseur; la Fig. 2 est un exemple d'un réseau de communication global; la Fig. 3 est un schéma synoptique d'un seul poste, et la Fig. 4 illustre l'aspect de contrôle des travaux du système processeur. LA PHILOSOPHIE DE L'INVENTION On décrira ci-après quelques éléments de la philosophie de l'invention. L'organisation du système multiprocesseur est horizontale, c'est-à-dire qu'il n'y a pas de poste maître spécialisé. Ceci a l'avantage que le système est flexible dans deux directions: on peut aussi bien ajouter des postes qu'en retirer. Ce retrait peut se produire lorsqu'un poste cesse de il fonctionner, par exemple à la suite d'un défaut, ou bien lorsqu'une connexion de ligne ne doit plus être utilisée, également à la suite d'un défaut, ou parce qu'elle est réservée pour une longue durée pour un autre poste. Dans ce cas, de part et d'autre de la liaison à ne plus utiliser peuvent apparaître des partitions qui, dans certaines conditions, peuvent continuer à fonctionner sans entrave (il faut, par exemple, qu'il y ait certainement assez d'éléments de matériel et de logiciel dans la partition en question). Un autre avantage est que dans un système sans poste maître spécialisé, une distribution dynamique des tâches à exécuter peut être réalisée: c'est-à-dire qu'un travail (job) peut être exécute, selon le degré d'occupation, dans un poste ou dans un autre. Cepen- dant, une fois que l'assignation a été réglée, elle reste inchangée aussi longtemps que l'exécution du travail en question se poursuit. Un inconvénient d'un tel système est que la communication de quelques mesures supplémentaires qui représentent un "supplé- ment" parce que, pour l'assignation d'un travail, une procédure d'interrogation doit le plus souvent être mise en oeuvre entre les différents postes pour recher- cher les moyens libres. Dès que l'assignation est effectuée, les postes peuvent le plus souvent fonction- ner de manière indépendante et la vitesse de travail est par conséquent plus élevée. A la conception, on a recherché un petit temps de réponse, quelque peu au détriment de la vitesse de transport de données à atteindre (throughput) et aussi en augmentant quelque peu l'ensemble de la mémoire: certains modules de logiciel peuvent maintenant être présents en plusieurs exemplaires, ce qui accroît les frais de mémoire. Ceci est très acceptable lorsque les lignes, par exemple par leur prix relativement bas, ne devien- nent pas un facteur limitatif pour l'ensemble du système (le système en question convient ainsi notam- ment pour des applications dans un domaine limité géographiquement) et de plus parce que les frais supplémentaires de mémoire sont modérés. Un élément central du système est celui qualifié de superprocessus qui sera défini plus en d6tail plus loin. Ces superprocessus communiquent entre eux au moyen de ce qu'on appelle des boîtes aux lettres. L'avantage de l'utilisation de ces superpro- cessus est que leur structure est indépendante du mat6riel utilisé. L'utilisation de plusieurs processus par superprocessus semble être une construction avanta- geuse pour de nombreux processus se déroulant en parallèle, ainsi, par exemple, pour le traitement d'images graphiques dans lequel diverses opérations doivent être effectuées consécutivement sur une séquence d'images. Dans ce cas, chaque stade d'opé- ration est un processus simple, tandis que tous ces processus sont organisés ensemble en un superprocessus. De plus, une conversion de messages d'infor- mation n'a pas lieu lorsqu'elle n'est pas strictement nécessaire. Cela signifie que dans un poste émetteur, aucune conversion n'a lieu, indépendamment de la nature, par exemple comme représenté dans l'architec- ture, du poste récepteur. Dans le poste récepteur, il n'y a pas de conversion non plus lorsque le poste émetteur et le poste récepteur sont compatibles, donc par exemple du même type ou de types différents d'une série de produits. Ce n'est que lorsque les postes ne sont pas compatibles, donc par exemple lorsqu'ils sont d'architectures différentes, qu'une conversion a lieu dans le poste récepteur. Ceci a l'avantage qu'un message n'est converti tout au plus qu'une seule fois lors d'un transport entre deux postes; en opposition exemple un bus interne. L'utilisation de bus n'est pas limitative; ainsi, le réseau de communication global peut aussi être formé d'un certain nombre de connexions de poste a poste; dans ce cas, quelques-uns des postes ou tous les postes sont connectés à plusieurs conne- xions de ce genre. Cette dernière particularité peut aussi se présenter dans le cas d'un réseau de communi- cation qui est basé sur un système de bus: plusieurs bus peuvent alors être prévus et éventuellement incor- porés dans une structure hiérarchique. La réalisation physique du réseau de communication peut être classique. La réalisation physique du bus de poste peut aussi être classique, par exemple avec des lignes de commande, de données et d'adresse parallèles. Le circuit d'adaptation 30 est alors, par exemple, un tampon pour effectuer un tamponnement par mots par l'intermédiaire du bus 20 en vue d'obtenir une meil- leure synchronisation. Le bloc de mémoire 38 est attribué au superprocessus 74 qui comprend deux proces- sus 80, 82. Un tel (super)processus est instantanément formé d'une quantité d'information qui est stockée dans la quantité de mémoire attribuée, certains emplacements de la mémoire ayant reçu à cet effet des fonctions spécifiques. Pour symboliser cela, les (super)processus sont dessinés en traits pointillés: ils ne représen- tent donc pas de matériel supplémentaire. Le bloc de mémoire 38 comporte un circuit d'adaptation 44 vers le bus de poste local 32. Dans le reste du bloc de mémoire 38, est indiquée une distribution fonctionnelle. Le bloc 62 comporte du code (c'est-à-dire de l'information de programme) exclusivement pour le processus 80, le bloc 64 contient du code exclusivement pour le proces- sus 82, le bloc 56 contient des données (c'est-à-dire de l'information variable) communes pour les processus 80 et 82. Le bloc 50 symbolise une fonction de boîte par ceci avec le système dans lequel une conversion et une reconversion ont toujours lieu entre les conven- tions valables pour un poste déterminé et des conven- tions distinctes valables uniquement pour le réseau de connexions. Le système de l'invention est surtout avantageux pour peu de types de postes: pour n postes de p types différents, n(p-l) programmes de conversion sont nécessaires dans les postes respectifs, et ce de p types différents. Dans le système a convention de réseau unique n (seulement) suffisent, aussi de p types différents. Pour p=l,2, le système présent a évidemment l'avantage. De plus, ce mode augmente la vitesse, parce que chaque conversion prend du temps. En tout cas, l'utilisateur ne remarque rien-de l'architecture du poste qui traite ses instructions. Un inconvénient peut être le fait que la mise en forme de l'information à transporter n'est pas optimale pour le transport, de sorte que ceci augmente quelque peu l'emprise sur la capacité de transport de la ligne; dans le contexte de l'environ- nement envisagé, ceci est le plus souvent acceptable. DESCRIPTION GLOBALE D'UNE FORME D'EXECUTION PREFEREE La Fig. 2 est un schéma synoptique global d'un système multiprocesseur conforme à l'invention. Trois postes 22, 24, 26 sont connectés par un réseau de communication 20, dans cet exemple de réalisation un bus. Seul le poste 26 est illustré avec plus de détails. Dans ce cas, le poste 26 est un système biprocesseur comportant les processeurs 34, 36. De plus, le poste contient une certaine quantité d'espace de mémoire qui est indiquée schématiquement sous la forme de trois blocs 38, 40, 42 et un circuit d'adap- tation 30 vers le réseau de communication 20. Les éléments 30, 34, 36, 38, 40, 42 sont interconnectés par un réseau de communication de poste 32, dans cet aux lettres qui est réservée au superprocessus en question. Une telle structure de boîte aux lettres est formée d'une ou de plusieurs boîtes aux lettres d'un ou de plusieurs types différents. Chaque boite aux lettres est constituée d'un ou de plusieurs emplacements de boîte aux lettres. La différence entre des boîtes aux lettres est définie par référence aux messages qui s'y adaptent, notamment donc à la quantité d'information contenue dans un message. Chaque boîte aux lettres ne possède que des emplacements d'un seul type. Lorsqu'une opération de mémoire est effectuée au profit d'un (super)processus, elle est exécutée par le processeur qui est à ce moment occupé à poursuivre ce (super)pro- cessus, et ce processeur assure alors aussi l'exécution de l'instruction, la modification éventuelle des données et le restockage des données dans un emplace- ment de la mémoire. Les blocs de mémoire 62, 64 sont uniquement accessibles pour des opérations de lecture par le processus associé. Le bloc de mémoire 56 est accessible pour des opérations de lecture et d'écriture par les deux processus 80, 82. Ces processus peuvent donc communiquer l'un avec l'autre par l'intermédiaire d'une combinaison d'une opération d'écriture par le premier processus, suivie d'une opération de lecture par l'autre processus dans le même emplacement de mémoire du bloc 56. Cette communication peut donc s'établir par l'intermédiaire de la plus petite unité de communi- cation dans le système en question, par exemple un mot. Le bloc de mémoire 50 est accessible pour des opéra- tions de lecture et d'écriture par les deux processus et 82, et de plus (comme seule partie de cette mémoire) par des opérations d'écriture au départ du bus 32 qui sont initialisées par un autre superprocessus que 74. Il peut donc s'agir de (super)processus situés dans le même poste, mais aussi de (super)processus qui sont situés dans un autre poste. L'attribution de la mémoire peut être différente: ainsi, du code peut aussi bien être séparé que commun; en tout cas les registres d'empilage sont à peu près toujours définis séparément pour chaque processus. Les blocs de mémoire 40, 42 sont organisés d'une manière correspondante pour recevoir chaque fois un superprocessus qui est formé de deux processus. Ce qui précède est donné à titre d'exemple. Les superpro- cessus peuvent toujours être formés d'un ou de plu- sieurs processus; la limite supérieure à ce nombre n'est pas donnée par des considérations de principe, mais tout au plus par des considérations pratiques. Un poste peut comprendre un ou plusieurs processeurs. Un poste peut recevoir un ou plusieurs superprocessus. Il n'est pas nécessaire que les processus d'un superpro- cessus soient attribués au même processeur: la concep- tion du superprocessus permet en effet précisément d'exécuter deux processus du même superprocessus simultanément sur des processeurs différents du même poste. De plus, il est clair que la situation de la Fig. 1 donne une image instantanée: lorsque, par exemple, un processus ou un superprocessus est terminé, l'information correspondante (code + données) peut être archivée dans une mémoire d'arrière-plan. Dans ce système, les postes peuvent être d'architectures différentes entre elles. La différence d'architecture peut porter aussi bien sur les compo- sants dans les postes que sur le langage de machine à calculer (supérieur) qui y est utilisé. Les postes peuvent aussi avoir des tâches différentes, il peut donc notamment aussi s'agir de postes spécialisés. Ainsi, un certain poste peut commander un appareil périph6rique, par exemple une mémoire à disque. Un certain poste peut aussi être attribué à un poste dit "de travail", c'est-à-dire l'ensemble de moyens pré- sents localement et au profit d'un seul opérateur. Dans un poste également, une répartition des tâches peut être prévue entre les divers processeurs. Ces proces- seurs ne doivent alors pas non plus offrir des presta- tions d'égale valeur. Des exemples de processeurs utilisables sont le microprocesseur 68000 de Motorola Corporation, Phoenix, Arizona, EtatsUnis d'Amérique ou le micro-ordinateur LSI 11 de Digital Equipment Corpo- ration, Marlborough, Massachusetts, Etats-Unis d'Amérique. Dans un poste, aucune conversion de mise en forme de message ne doit avoir lieu. DESCRIPTION DES SPECIFICATIONS FONCTIONNELLES Les avantages du système distribué sont, entre autres, sa fiabilité, parce que le système peut rester en fonctionnement en dépit de la déficience de certains de ses composants, l'augmentation de capacité parce que, pour certaines tâches spécialisées, certains éléments spécialisés (par exemple des postes ou des modules de logiciels) peuvent aussi être prévus, l'extensibilité parce que, en vue d'augmenter la capacité, des éléments supplémentaires peuvent être prévus, et-la vitesse parce que diverses tâches peuvent être exécutées simultanément. Le logiciel d'un poste est constitué de trois parties. En premier lieu, on y a localisé le logiciel de l'utilisateur ou logiciel d'application. Ensuite, il y a le système d'exploitation, en premier lieu, répartie sur tous les postes, une partie décentra- lisée du système d'exploitation global. Finalement, chaque poste com- comporte un système d'exploitation local ou partie formant noyau ("kernel"). Cette partie "kernel" réalise notamment les superpro- cessus. Parmi ces superprocessus, on cite: La partie formant noyau réalise: a. La traduction d'un nom de boite aux lettres logique, comme elle est appelée par un quelconque superprocessus, en une adresse physique. Ceci se produit à chaque démarrage d'un travail (job) parce qu'à ce moment la situation peut être modifiée. Lorsque cette traduction est réalisée, les adresses physiques restent pareilles compte non tenu de la suppression d'une quelconque autre boîte aux lettres, lorsque le travail associé à cette boîte aux lettres et ainsi également le superprocessus sont désactivés. Cette adresse physique reste notamment inchangée lorsqu'un travail n'est ni mis en route, ni arrêté. b. La mise en oeuvre de grandeurs de sémaphore entre divers processus pour assurer la sécurité de la communication entre les processus. Le traitement de bits de sémaphore est décrit dans le brevet des Etats- Unis d'Amérique n 3.997.875 accordés le 14 décem- bre 1976 au nom de la Demanderesse. Des sémaphores polyvalents sont en eux-mêmes bien connus: ils présen- tent le domaine de valeurs des nombres entiers non négatifs sur lesquels les opérations J p et v connues sont exécutées. Les opérations p augmentent la valeur et les opérations "v". tendent à l'augmenter. La valeur indique, par exemple, le nombre de processus que l'on rencontre (simultanément) dans la section dite "critique"; le domaine de valeurs est la limite supé- rieure admissible pour ce nombre. A chaque grandeur de sémaphore correspond une valeur maximum associée. De telles grandeurs de sémaphore peuvent aussi être utilisées pour indiquer un niveau de remplissage d'une boîte aux lettres, ainsi qu'à d'autres fins. Il est clair que les opérations p et v doivent donc s'attendre mutuellement dans certaines circonstance. c. La mise en oeuvre d'un mécanisme d'appel pour une horloge matérielle. Cette horloge peut être prévue dans chaque poste (hama), mais cela n'est pas nécessaire: elle peut aussi n'être présente que dans une collection partielle de tous les postes. Dans ce dernier cas, l'appel s'effectue par l'intermédiaire du réseau de communication: le mécanisme d'horloge lui- même contient un registre qui est incrémenté à une fréquence suffisante, par exemple à une fréquence de kHz. Ainsi, il est possible au moyen du mécanisme d'horloge de mettre en oeuvre un temps absolu (temps du jour). Lorsque d'autres registres qui peuvent être ramenés à l'état initial sont ajoutés au mécanisme d'horloge, ces derniers permettent aussi de mesurer des intervalles de temps relatifs. De tels intervalles de temps absolus et relatifs peuvent être utilisés pour la détermination de délais pour l'activation d'un proces- sus et d'autres fonctions en "temps réel". d. Eventuellement le traitement de signaux d'interruption externes tels qu'ils sont engendrés par des fonctions externes lors de la commande d'appareils périphériques; de telles fonctions sont des cas parti- culiers de générateurs de processus. Les signaux d'interruption peuvent, entre autres, être engendrés dans les appareils périphériques eux-mêmes. Il existe donc trois sortes de processus dans un poste: - en cours, qui sont actifs et qui sont exécutés & l'exclusion d'autres processus: chaque processeur comporte en règle générale tout au plus un processus en cours; - prêts, qui sont aussi actifs, mais qui ont été pris dans une file d'attente en vue de l'exécution; * - en attente, qui ne sont pas actifs, mais qui atten- dent le remplissage d'une condition externe, par exemple une donnée nécessaire ou une période. Dans la file d'attente, un ordre de priorité fixe est d'application, tandis qu'aucun processus dont la priorité est supérieure à la priorité du processus en cours à ce moment ne peut être prêt. Lorsque plu- sieurs processus prêts présentant le même niveau de priorité sont présents, le processus dont le temps d'attente est le plus long est présenté en premier lieu. Le temps d'attente est déterminé par appel du mécanisme d'horloge mentionné plus haut. Une partie du "système d'exploitation" est le dispositif de traitement (module de programme) pour les états d'exception, tels que l'apparition, à la suite d'une erreur de programmation, d'une opération d'écri- ture pour un espace de boîte aux lettres entièrement rempli. Un dispositif de traitement standard signale et archive la situation qui a eu pour conséquence l'état d'exception et termine le travail (job) en question. Dans un autre exemple de réalisation (dispositif de traitement non standard), celui-ci permet ensuite que le programme continue à progresser: c'est-à-dire que, si possible, un autre processus est activé. L'état d'exception peut être activé aussi bien par des moyens logiciels que par des moyens matériels. DESCRIPTION DU CONTROLE DES TRAVAUX Le système processeur travaille pour un utilisateur au moyen de programmes d'application. L'interaction entre les flux d'information dans le système multiprocesseur et les opérations en dehors du système ne sont pas décrites. Celles-ci peuvent se rapporter a l'entraînement d'éléments mécaniques, par exemple un robot, à la conversion de grandeurs vers des valeurs analogiques ou depuis celles-ci, à la fourniture d'informations imprimées, etc. Chaque programme d'application peut être en cours d'exécution une ou plusieurs fois dans le système, chaque version (chargée) est qualifiée de travail (job). Chaque travail est constitué d'un ou de plu- sieurs superprocessus. Lors de la production d'un programme d'application, un utilisateur prépare aussi une description qui indique quels sont les moyens auxiliaires qui doivent être définis. On connaît de cette façon les genres de postes dans lesquels les superprocessus respectifs de ce programme d'application peuvent être chargés. On en dérive un ensemble de distribution: celui-ci donne une liste de répartitions acceptables pour l'utilisateur pour les superprocessus d'un travail: chaque élément de cet ensemble donne une situation qui a priori est admissible, par exemple sous la forme d'une liste de noms de postes. L'admissibilité proprement dite est alors déterminée par la présence ou l'absence des postes en question, ou par la présence ou l'absence d'un espace de mémoire suffisant dans les postes ainsi désignés. Lorsqu'il faut passer à l'exécu- tion, on appelle tout d'abord l'ensemble de distri- bution et on vérifie ses éléments quant à leur disponi- bilité réelle. Lorsqu'une distribution admissible est trouvée dans chaque poste à utiliser, l'ensemble du programme d'application en question est sollicité par le système de contrôle d'ensembles, puis le chargement par des transports d'informations vers les postes en question est activé. Chaque travail ainsi chargé est dans ce cas pourvu d'une identification unique et invariable. Dans l'exemple de réalisation, cette identi- fication comprend: a. l'identification d'un poste sur lequel au moins un superprocessus du travail en question est chargé, ce qui permet de retrouver toujours le travail en question; b. un moment dans le temps, par exemple une partie de l'indication de temps absolue. L'identification de chaque travail est ainsi une donnée unique et les travaux respectifs peuvent toujours être appelés par leur identification, sans qu'un embrouillement puisse se produire. Le chargement d'une application est commandé par appel de l'ensemble de chargement d'application, c'est-à-dire d'une partie centrale de la programmation de système. Un travail peut faire démarrer un autre travail (start job), avec comme paramètres l'ensemble de chargement d'application qui indique ce qui doit être fait, ainsi que l'ensemble de distribution qui indique l'endroit o cela doit être fait. Un travail peut appeler la même application dont il est lui-même une version chargée. Un travail peut demander sa propre identi- fication. Un travail peut, en outre, demander l'infor- mation qui indique (au moyen de leur identification) quels sont les travaux qui ont au moins un superpro- cessus en cours d'exécution dans un poste déterminé et aussi, pour un travail identifié, dans quel poste au moins un superprocessus de ce travail est en cours d'exécution. Ceci est avantageux pour l'interaction entre différents travaux. Un travail peut, en outre, arrêter un travail (stop job). Il peut s'agir du travail en question lui- même, ce qui peut survenir, par exemple, lorsqu'une erreur de programmation a été commise, par exemple lorsqu'une action d'écriture est entamée vers un espace de boîte aux lettres qui est entièrement rempli. Une autre situation d'autoarrêt se présente par exemple lorsque le travail en question est finalement achevé de sorte qu'il a perdu sa fonction. Un travail peut en outre arrêter un autre travail qu'il avait lui-même précédemment fait démarrer. Un travail peut, en outre, avoir été à l'origine nanti d'un signal de privilège par une intervention du programmeur. Lorsqu'un travail est pourvu d'un tel signal de privilège, il peut arrêter un travail quelconque. Cette dernière particu- larité peut, par exemple, être utile lors de la com- mande d'un robot: lorsque différents travaux comman- dent des mouvements différents et qu'un des mouvements doit être arrêté, il est nécessaire que tous les autres mouvements soient aussi arrêtés. L'arrêt peut se produire sélectivement chaque fois par l'appel d'un travail au moyen de son identification propre De plus, le système de contrôle des travaux comprend un module de programme pour Je traitement des situations pas connectés qui sont détectées par le système de contrôle de réseau. Lorsqu'une partition surgit, elle est détectée par le système de réseau décrit plus loin, par exemple par le fait qu'un message "d'accord" prévu dans chaque procédure de communication n'est pas reçu au moment correct ou qu'un transport d'information par blocs dont la longueur est connue d'avance n'est pas mené à terme de façon conforme. Ceci peut être provoqué par le fait qu'un poste ou une liaison est détérioré ou, par exemple, est éliminé physiquement du système par un utilisateur. Le système de contrôle des travaux, arrête alors, dans la partition en question (en dehors de cette partition, aucune interaction fiable n'est -plus- possible) tous les superprocessus du travail en ques- tion, dans des cas particuliers avec la mise en oeuvre intermédiaire d'une opération d'arrêt de secours. Eventuellement, dans le cas du robot précité, un travail qui assure une commande de mouvement est arrêté de telle sorte que le mouvement soit tout d'abord arrêté. Dans certaines circonstances, dans un travail, une collection de superprocessus qui n'ont pas besoin de communication en dehors de sa partition propre, peuvent donc continuer à travailler pendant un temps appréciable, mais il ne s'agit pas là d'un inconvénient 255861? parce que cela n'entraîne pas d'erreurs supplé6- mentaires. Sous ce rapport, la Fig. 4 donne une image simplifiée de la mise en route d'un travail. Dans le bloc 300, la mission de création du travail est reçue. Dans le bloc 302, l'ensemble de l'application est lu. Dans le bloc 104 est effectué l'appel de l'ensemble de distribution. Lorsque tous les éléments de cet ensemble ont été analysés, un refus suit dans le bloc 308. Dans le bloc 310, sur base de l'information actuelle de l'ensemble de distribution, une requête est adressée aux postes nommés dans l'information. Lorsque la requête est refusée, le système passe au bloc 304. Lorsque toutes les requêtes sont admissibles, les postes en question sont réservés dans le bloc 314, par rapport aux moyens localement présents, l'identifi- cation du travail est formée et les transports d'infor- mation nécessaires sont effectués, par exemple les données à traiter. Lorsque toute l'information est arrivée sur place, le système passe au bloc 318, sinon la conclusion est que le réseau contient une erreur et le système revient au bloc 304. Dans le bloc 318 l'exécution du travail est mise en route. L'arrêt du travail n'est plus donn6 ici. DISCUSSION DU RESEAU Il convient de noter également que les pro- priétés physiques du réseau de communication sont protégées par les éléments d'adaptation tels que l'élément 30 sur la Fig. 1 des postes. Ainsi, dans les postes, seul l'état de connexion logique doit être considéré. En premier lieu, on considérera le transport par blocs par l'intermédiaire du réseau de commu- nication. Le système de réseau dirige le guidage et le passage des blocs de transport ou messages de transport à partir du poste d'origine vers le poste de desti- nation, ainsi que la réparation d'erreurs provoquées par le réseau ou présentes dans celui-ci. Dans cer- taines circonstances, la cause finale peut être une intervention de l'opérateur. La réparation s'effectue en premier lieu par la communication de l'erreur à tous les postes qui ont participé au transport en question. Ensuite, un nouvel essai est si possible effectué, par exemple par utilisation d'une liaison de substitution; si elle est présente. Au niveau du programme d'utilisateur, il n'y a aucune différence entre le transport à l'intérieur et le transport a l'extérieur du poste en question. Toutes les grandeurs de signaux élémentaires (primitifs) du transport coopèrent avec le noyau (kernel). Le système de contrôle est formé de plusieurs modules: ces modules sont localisés dans les divers postes selon la manière dont le concepteur du système a défini les possibilités pour un circuit déterminé lors de la configuration. Cette définition s'effectue dans les concepts de système global comme expliqué ici. Chaque poste et chaque connexion ont un nom qui leur est propre (à ne pas confondre avec les noms des boites aux lettres qui peuvent en effet chaque fois changer lors de la charge - les noms présents sont des constantes). La Fig. 2 illustre un système comportant six postes 100-110 et quatre liaisons 112-118. Parmi ces liaisons, le n 112 et le n 116 sont des bus chaque fois avec quatre postes qui y sont connectés. Le n 114 est une liaison unidirectionnelle de point à point et le n 118 est une liaison bidirectionnelle de point à point. Les groupes de postes 100/102, 100-106, 104-110 et 108/110 sont chaque fois des groupes de postes voisins. Deux postes qui ne font pas ensemble partie d'au moins un groupe ne sont pas des voisins. Le système de contrôle de réseau local dans un poste se pourvoit en information concernant toutes les connexions auxquelles le poste en question est direc- tement connecté. Ainsi, le poste 100 possède l'infor- mation concernant les liaisons 112 et 114. De plus, certains postes sont définis comme postes intermé- diaires pour l'échange de messages (switching sta- tions), par exemple par une partie spécifique de leur identification. Parmi les liaisons, plusieurs peuvent être définies comme "liaisons spinales", aussi, par exemple, par une partie spécifique de leur identi- fication. Il est convenu que les liaisons spinales s'étendent toujours entre des postes intermédiaires. Un poste intermédiaire ne doit pas être connecté au moyen d'une liaison spinale à un autre poste intermédiaire. Des paquets ne peuvent être transportés entre des postes qui ne sont pas voisins que par l'intermédiaire de liaisons spinales. Ainsi, l'utilisateur peut limiter la charge générale (overhead) résultant de la communi- cation entre des postes non voisins à des liaisons déterminées. C'est l'utilisateur qui, lors de la configuration du système, spécifie si un poste est un poste intermédiaire ou non. Ceci est aussi effectué pour limiter l'over- head résultant de la communication entre postes non voisins (NNC) à certains postes, entièrement selon les souhaits de l'utilisateur. L'utilisateur spécifie également, lors de la configuration du système, un certain nombre (> 0) de paires de postes qui ne peuvent communiquer que par communication entre voisins (NC). Ceci pour faire en sorte qu'une communication ne s'établisse entre ces postes que si cela s'effectue le plus rapidement et le plus efficacement possible. Lorsque, dans ce cas, le poste 104 peut fonctionner comme poste intermédiaire et que la liaison 116 est une liaison spinale, le poste 104 possède aussi indirectement l'information concer- nant la liaison 118. L'organisation de la transmission de la liste de postes pouvant être atteints a lieu au moyen de deux grandeurs de signaux "sh(o)wc(o)nf(iguration)" et "sh(o)wnet". Il s'agit là de l'indicatif d'appel de deux procédures pouvant être appelées dans chaque poste, dont le résultat représente la situation vue à partir du poste en question et est stocké dans un ensemble en vue d'une inspection ulté- rieure éventuelle. Le second présente, lors de l'appel, une liste de liaisons (links): chaque liaison offre une sous-liste de postes pouvant être atteints par l'intermédiaire de cette liaison. L'appel du premier indicatif d'appel présente une liste de tous les postes qui peuvent être atteints à partir du poste en ques- tion, c'est-à-dire le rassemblement des sous-listes qui ont été présentées lors de l'appel de la procédure citée en premier lieu. La transmission du motif de liaisons ne s'effectue cependant que par des postes qui sont définis comme postes intermédiaires. L'adminis- tration de cette possibilité d'atteindre les postes s'effectue dans chacun d'eux au moyen d'une quantité d'espace de mémoire qui, pour plus de simplicité, n'est pas indiquée sur la Fig. 1. Un message est envoyé par le système de communication sous la forme d'une série (d'un ou plusieurs) paquets. Le paquet est indiqué par une tête et une zone de données: une limite pour la longueur de la zone de données est fixée par liaison. Un paquet expédier a partir d'un poste reçoit en cet endroit un numéro d'ordre unique. Lorsqu'un paquet est transporté successivement sur plusieurs liaisons, il en résulte qu'une série de paquets peuvent arriver dans l'ordre, même lorsque quelques postes doivent être franchis, parce que l'on travaille toujours selon un ordre de succession, par exemple l'ordre de génération. Ce n'est que lorsque différents paquets sont expédiés suivant des liaisons au moins partiellement parallèles que ce résultat n'est pas nécessairement obtenu. Dans le poste d'origine se tient, par numéro d'ordre, l'adminis- tration du fait que le paquet associé a été "entiè- rement traité". Entièrement traité signifie que le paquet a été expédié et que le processus d'émission a été averti du fait que: - ou bien le paquet est bien arrivé; - ou bien quelque chose a pu échouer. Dans les deux cas, le numéro d'ordre de ce paquet est renvoyé au système de contrôle de réseau du poste d'origine. Le nombre de paquets qui transitent en même temps du poste d'origine vers le poste de desti- nation est lié à un maximum à fournir par l'utilisateur pour lier le volume de l'administration des numéros d'ordre à un maximum et pour pouvoir utiliser à nouveau les numéros d'ordre renvoyés. Cette technique est bien connue sous le nom de "protocoles sliding window" (fenêtres glissantes"). DESCRIPTION PLUS DETAILLEE D'UN POSTE La Fig. 3 est un schéma synoptique plus détaillé d'un poste. Ce poste comprend un processeur éventuellement connu en soi dont seuls l'unité ALU 178, un banc de registre interne 180, une liaison de réac- tion et un registre d'adresse 172, qui sont reliés par une piste d'information, sont représentés schéma- tiquement. Le poste comprend un superprocessus avec deux processus et deux boites aux lettres. La boîte aux lettres 150 peut contenir 8 articles formés, par exemple, d'un ou de quelques mots. La boîte aux lettres 152 peut contenir un article formé de nombreux mots, par exemple représentant une page d'un document. Les boîtes aux lettres ont un nom logique et dans ce cas, une adresse physique, formée par exemple d'un enchaî- nement de l'adresse de poste et des adresses relatives des premiers mots de mémoire de la partie dans laquelle les boîtes aux lettres sont situées. De plus, dans le cas de la boîte aux lettres 150, il y a un indicateur de lecture (pointer) et un indicateur d'écriture au moyen desquels cette boite aux lettres est organisée d'une manière connue comme mémoire FIFO. Un élément de reconnaissance d'adresse, qui est connecté au réseau de communication, reconnaît dans le cas d'adresses reçues si elles sont destinées effectivement à une des boîtes aux lettres et, dans l'affirmative, le bloc est ins- crit, a la condition que la boîte aux lettres ne soit pas encore remplie. Pour la boîte aux lettres 152, un mécanisme DMA est alors mis en oeuvre de la manière connue. Pour le premier processus, il y a un empla- cement 154 qui sert de compteur de programme, un emplacement 156 pour le stockage des primitifs de communication, une pile de registre 158 avec quatre emplacements et une mémoire de code non privatisée 160. Pour le deuxième processus, la configuration dans les emplacements 162 à 168 est semblable, la mémoire de code est dans ce cas privatisée pour ce processus. De plus, une mémoire de données 170 non privatisee est prévue pour les deux processus. La privatisation est indiquée par un bit de privatisation et une liste de processus à accès autorisé. Pour un acces, ceux-ci doivent donc être vérifiés. Ceci peut s'effectuer de la manière qui est connue pour une organisation de mémoire segmentée dans laquelle une limite supérieure ne peut en effet pas être dépassée pour le déplacement d'adresse. Le module de programmation 174 contient les primitifs de communication pour le trafic de réseau avec d'autres postes, le module de programmation 176 25586 1 contient un programme pour la reconnaissance des blocs arrivants qui sont engendrés dans un autre environ- nement architectural que celui du poste en question. Le module de programmation 184 contient un programme pour le chargement dans le poste en question d'un processus arrivant de l'extérieur, le module de programmation 186 contient un programme pour le traitement d'une situa- tion d'exception et le module de programmation 188 contient un programme pour l'exécution des parties nécessaires du contrôle des travaux et de la maîtrise des ensembles. L'horloge est appelée au moyen d'un "petit" bloc (c'est-à-dire un bloc pouvant être logé dans la boîte aux lettres 150). DESCRIPTION DU SYSTEME DE NOYAU On décrira ci-après la partie du "système d'exploitation" qui est nécessaire pour le fonction- nement comme système à plusieurs postes et qui est présent dans chaque poste. Ces parties de noyau peuvent être appelées par des processus d'utilisateur dans le poste en question lui-même et, en outre aussi, par des processus de "système d'exploitation" d'autres postes. Les superprocessus sont réalisés au moyen du noyau. Le noyau contrôle, en outre, l'interaction entre les divers processus et le système. Le noyau fournit les protections suivantes contre un accès inadmissible entre différentes acti- vités programmées dans le système: un processus ne peut pas appeler la pile d'un autre processus; un superprocessus ne peut pas appeler les données locales d'un autre superprocessus; un travail (job) ne peut pas envoyer de messages vers des bo tes aux lettres de superprocessus qui sont associées à des travaux d'un autre programme d'utilisateur. Chaque boîte aux lettres comporte un identifi- cateur "boxid" et peut être pourvue d'un identificateur de type qui identifie de manière exclusive le type de messages qui est recevable. Chaque boîte aux lettres contient un nombre prédéterminé de cases, qui peuvent contenir chacune un message. La situation dans une boîte aux lettres est caractérisée par trois variables, a savoir "l'ordre de succession envoyé", "la collection reçue" et "la collection non valide (deleted)". La première variable A énumère tous les messages qui ont été envoyés vers la boîte aux lettres en question, et ce à partir d'un autre poste. La deuxième variable B énumère tous les messages qui ont été reçus dans le poste associé à partir de la boîte aux lettres en question. La troisième variable C énumère tous les messages qui ont été rendus invalides dans la boîte aux lettres en question. Il se fait donc que (A-C) est tout au plus égal au nombre de cases de la boîte aux lettres. En cas d'égalité, la boîte aux lettres est remplie. Lorsqu'un message est expédié par l'intermé- diaire du réseau de communication, il faut spécifier l'architecture du processeur et le langage de la machine à calculer du superprocessus expéditeur. Lorsqu'un des deux diffère de la caractéristique du poste du superprocessus récepteur, une procédure de conversion est appelée au terme de la réception. Cette procédure est exécutée dans le processus d'appel (de destination) avec, comme matière de départ, l'infor- mation qui a été reçue dans la boîte aux lettres en question. L'état des processus dans un poste peut changer lors d'un signal d'interruption ou lors d'une fonction de synchronisation. Un processus d'attente peut devenir actif lorsqu'une condition est remplie; un processus en cours d'exécution peut devenir un proces- sus en attente lorsqu'une condition doit être remplie pour la poursuite de ce processus ou un processus en cours est relayé, mais reste prêt à se dérouler à nouveau. Les règles suivantes sont réalisées: - il n'y a pas de processus prêt à priorité supérieure à celle du processus en cours; lorsqu'il faut faire un choix entre deux processus prêts, c'est le processus dont le temps d'attente est le plus long qui a la priorité; ceci augmente la prévisibilité pour un utilisateur; - le nombre d'échanges entre des processus est main- tenu aussi petit que possible. Dans un superprocessus, les processus sont synchronisés au moyen de variables communes, par exemple de bits de sémaphore. Sur les sémaphores sont exécutées les opérations P et V connues qui sont très bien connues du spécialiste. La Fig. 5 illustre le système de contrôle de réseau du système multiprocesseur, au moyen d'une image d'une configuration de réseau. Les postes sont répartis en deux catégories. En premier lieu, il y a les postes intermédiaires 200, 202, 204. De plus, d'autres postes 206 à 218 y compris sont prévus. Les postes intermé- diaires forment, avec les liaisons prévues entre eux, le noyau du système. Ces postes comportent le moyen de rendre possible une communication entre des postes qui ne sont pas directement connectés, comme par exemple les postes 208 et 218. Comme indiqué, le plus souvent des liaisons polyvalentes sont prévues entre les postes intermédiaires, telles que les liaisons 220 et 222. Les autres postes ne peuvent communiquer que d'une part, avec les postes auxquels ils sont directement connectés comme postes voisins et d'autre part, avec un ou plusieurs postes intermédiaires (et peuvent ainsi, par un poste intermédiaire, éventuellement atteindre un poste qui n'est pas intermédiaire). Lors de l'initialisation du système, la structure est tout d'abord définie; chaque poste se rapporte à une liste de toutes les liaisons directes, de même que des autres postes pouvant être atteints immédiatement au moyen de ces liaisons directes. Ceci s'effectue par une procédure à question et réponse, dans laquelle les liaisons sont interrogées successi- vement et, à la réception d'une réponse identifi- catrice, une identification de présence pour la liaison a laquelle est adjointe l'identification de poste est stockée. Lorsque le système est en fonctionnement, une liaison peut être supprimée, comme par exemple la liaison directe 220 entre les postes 200 et 204. La topologie du réseau ne varie de ce fait cependant pas et ceci ne doit donc pas être porté à la connaissance des autres postes. Il est clair que la réalisation d'une modification de réseau peut ainsi s'effectuer de manière simple et rapide. Notamment, l'utilisateur ne sait rien de la structure interne du réseau, sauf pour ce qui concerne son adaptation directe. Tous les postes non intermédiaires sont connectés directement à un des postes intermédiaires. Deux postes voisins, ou les superprocessus respectifs dans deux postes voisins, peuvent communiquer, comme indiqué, avec les mécanismes de boîtes aux lettres décrits plus haut. Deux postes non voisins ne peuvent communiquer que moyennant au moins un poste inter- médiaire. La communication s'effectue en paquets d'information. Chaque paquet de ce genre est pourvu d'une tête de pilotage (header). Cette tête de pilotage contient de l'information au sujet du trajet à suivre. Le transport est effectué de la manière suivante. Chaque poste non intermédiaire en dehors de la structure spinale contient, dans chaque poste intermédiaire avec lequel il est directement connecté, un tampon dit d'expédition (forwarding) propre qui n'est pas accessible à d'autres postes non intermé- diaires. La capacité du tampon est d'un ou de plus d'un paquet à choisir par le configurateur de système. L'envoi d'information vers un tel tampon d'expédition s'effectue donc sur base de paquets jusqu'à ce que le tampon soit rempli, ce qui est déterminé par un indi- cateur d'état de remplissage qui peut être appelé par le poste en question. Chaque poste intermédiaire contient dans chaque autre poste intermédiaire auquel il est relié, un tampon dit éloigné (remote). Ces tampons éloignés sont aussi attribués statiquement à un poste intermédiaire associé aussi longtemps que la liaison existe physiquement. Ils sont contrôlés par le poste auquel ils sont attribués et ont une capacité telle que définie par le configurateur de système et sont pourvus d'un indicateur de remplissage pouvant être appelé. Chaque tampon éloigné est connecté à une certaine quantité de moyens logiques de détection pour décoder l'information de pilotage contenue dans la tête de pilotage. Cette information comprend: un identificateur concernant le poste d'ori- gine; un identificateur concernant le poste de des- tination; une indication du trajet à suivre qui est valable en première instance (lorsque ce trajet est interrompu mais qu'un autre est disponible, ce dernier est appelé subsidiairement); un identificateur concernant le contenu du paquet, comme un nom, un numéro d'ordre; une indication de priorité et éventuellement d'autres indications. Dans un poste intermédiaire, le trajet à suivre tant dans un tampon d'expédition que dans un tampon éloigné est détecté par paquet. Pour un tampon éloigné, on réalise une stratégie de détection plus étendue: la priorité entre différents postes d'origine est prise en compte et pour un même poste d'origine, les paquets sont expédiés suivant leur numéro d'ordre, de sorte que dans la grande majorité des cas, l'ordre de succession des paquets dans le poste de destination est le même que celui de leur expédition par le poste d'origine. La réalisation ainsi statique de diverses catégories de tampons accélère la réaction du réseau à une demande, certes au prix d'un supplément d'espace de mémoire qui sinon aurait pu être utilisé comme espace tampon pour des transports d'information en masse (bulk) qui auraient pu acquérir une vitesse de passage plus élevée précisément grâce à de tels tampons étendus (par exemple organisés en FIFO). Un autre détail du système de contrôle de réseau est le mécanisme dit de "timeout", c'est-à-dire le temps d'attente qui est réalisé avant qu'un évène- ment attendu soit considéré comme ayant échoué. Le plus souvent, on ne peut en effet pas prévoir de manière exacte le moment auquel un deuxième poste répondra à une requête d'un premier poste. De plus, il s'est avéré que la répartition statistique des moments de réponse est une répartition très biaise (par exemple de Poisson). On cherche à ce que cette attente soit la plus courte possible, sans qu'un grand nombre de réponses soit injustement classées comme "trop tardives". C'est pourquoi, le mécanisme de timeout est une réalisation exclusivement locale, c'est-à-dire que l'on n'attend que les réponses qui doivent être produites par un poste directement voisin. Cela signifie qu'un transfert peut éventuellement échouer dans un stade ultérieur sans que cela soit détecté directement dans le poste qui, dans un stade précédent, agissait comme poste demandeur. L'attente est de cette façon réduite et la réaction à un signal de requête suivant peut donc être accélérée, par exemple lorsqu'une série de paquets sont expédiés. Des éléments caractéristiques du système de contrôle de réseau sont donc: a. tous les tampons sont statiquement préat- tribués à un poste associé; b. les paquets contiennent une indication de pilotage incorporée; c. le mécanisme de timeout ne concerne que la communication locale entre deux postes. DESCRIPTION DU SYSTEME DE CONTROLE D'ENSEMBLES (FILE) POUR APPAREILS PERIPHERIQUES En général, un système tel que décrit plus haut comprendra un ou plusieurs appareils périphé- riques. Il s'agit, par exemple, d'une mémoire d'ar- rière-plan, d'un clavier de touches, d'une imprimante par ligne, d'un élément de visualisation (par exemple sur base d'un tube à rayons cathodiques), d'une conne- xion à un système processeur externe ou, par exemple, un robot, tous représentés par des unités de commande respectives. Tous ces appareils périphériques sont traités comme des "ensembles" ou "files". Sous ce rapport, le système est une extension du système UNIX qui est connu de manière générale et qui, pour cette raison, ne sera pas expliqué plus en détail. L'exten- sion concerne, entre autres, l'utilisation de plusieurs processeurs. Chaque poste possède une table d'appareils périphériques stockée dans la mémoire locale, qui indique donc, par le nom et le numéro, quels sont les appareils périphériques qui sont accessibles pour le poste en question. Il peut s'agir aussi bien d'appa- reils périphériques locaux que d'appareils périphé- riques qui sont liés physiquement à un autre poste. Les appareils périphériques dans les divers postes ne doivent donc pas indiquer des collections d'appareils périphériques identiques les uns aux autres. La commu- nication avec les différents appareils périphériques s'effectue au moyen de l'organisation de boîtes aux lettres déjà expliquée plus haut: chaque appareil périphérique est caractérisé en tant que processus et, dans certaines circonstances, en tant que superpro- cessus. Les ensembles peuvent avoir des dimensions et des organisations très différentes. Pour une imprimante matricielle, la grandeur de l'ensemble est, par exem- ple, égale au contenu du tampon de ligne prévu pour une ou plusieurs lignes à imprimer et seules des opérations d'écriture sont pertinentes. Pour une mémoire à disque, l'ensemble est le plus souvent organisé comme un relevé ou une table des matières. Les éléments de la table sont soit les ensembles de données proprement dits dans lesquels en principe l'écriture ou la lecture est admissible, soit une ou plusieurs tables des matières subalternes. Lors de l'ouverture d'un ensemble, un descripteur d'ensemble est produit. L'écriture vers un ensemble et la lecture à partir de celui-ci s'effec- tuent par l'intermédiaire du descripteur d'ensemble, et non du nom de l'ensemble. Ceci fournit le gain de vitesse déjà connu du système UNIX mentionné plus haut. Le descripteur d'ensemble est formé d'un chapelet (string) d'éléments d'identification, au moyen duquel le trajet dans la hiérarchie est indiqué. Les particu- laritées suivantes sont prévues en liaison avec les ensembles comme défini ici: a. En relation avec la sollicitation et la protection des fichiers, on trouve en premier lieu l'option "serrure" (lock). Cette option peut être appelée lors de l'ouverture d'un ensemble déjà existant. L'ensemble en question est ensuite privilégié pour le processus qui a initialisé l'ordre "d'ouver- ture". Le processus en question peut ensuite, à l'ex- clusion de tout autre processus, disposer de l'infor- mation ou de la capacité de stockage de l'ensemble en question. Lorsque cette disposition est terminée, le processus en question peut refermer l'ensemble ouvert, ce qui provoque aussi la disparition de la serrure. Lors de la fermeture d'un ensemble, son identification n'est plus utilisée par le processus en question. Un ensemble peut aussi être ouvert sans l'option "serrure" et l'ensemble est alors accessible à tous les autres processus, du moins pour autant que les processus en question aient un accès de niveau a à l'ensemble, ce qui, d'une manière connue, est décidé par le contrôle d'ensemble; b. Une attribution de privilège moins exclusive est obtenue au moyen du mécanisme de revendication (claim) . L'ensemble est alors tout d'abord ouvert, après quoi l'accès à l'ensemble est revendiqué par l'intermédiaire du descripteur d'ensemble. Ceci con- vient en particulier pour des processus coopérants. Lorsque deux processus sollicitent le même ensemble, le premier à revendiquer est couronné de succès, tandis qu'un processus à revendication ultérieure est tenu en suspens. Lorsque le premier processus est prêt, le processus à revendication ultérieure est amené dans l'état actif et peut alors encore entreprendre l'action d'accès. En particulier, dans ce cas, toute opération d'entrée/sortie est empêchée par un autre poste que le poste revendicateur. De plus, le système de contrôle d'ensemble comprend encore des moyens pour solliciter un système de machine à calculer externe, Ceci peut s'effectuer d'une manière correspondant à celle utilisée dans le système UNIX mentionné plus haut et de plus selon le système VMS également connu. Le pilotage d'un système de machine à calculer externe a, comme seule différence, le type de cadre d'ensemble. Le cadre d'ensemble a un préfixe qui indique le dispositif (device) qu'il concerne, donc par exemple un système de machine à calculer externe. De plus, tous les primitifs du système sont affichés sur ceux du système de machine à calculer externe; ils correspondent à ceux du système UNIX. Lors du classement d'un message engendré par le système de machine à calculer externe (qui est précédé par une série de bytes déterminée), ceux-ci ne sont pas interprétés par le système de contrôle d'ensemble local: un tel accès de l'exterieur est transmis vers un appareil périphérique (device) correspondant. Enfin, un mécanisme est encore prévu pour communiquer entre divers travaux, les transports dits par tuyaux (pipes). Un tel transport par tuyau fonc- tionne comme un ensemble virtuel qui est accessible pour la lecture et pour l'écriture. Il fonctionne à la manière d'un tampon. Lorsqu'un premier travail souhaite écrire vers un deuxième travail, le "tuyau" est d'abord ouvert. Lorsque le deuxième travail sollicite aussi ce "tuyau", le transport peut se poursuivre. Le tampon est logé dans une quantité adéquate de mémoire. REVENDICATIONS: 1. Système processeur comportant une première collection de processeurs de traitement de données qui sont interconnectés par un réseau de communication (20) pour échanger des données d'information, ce système processeur comprenant, en outre, une mémoire de système et une connexion au monde extérieur pour exécuter dans les processeurs respectifs des processus correspondants, à l'intervention d'un mécanisme de communication entre des processus différents, caractérisé en ce qu'il com- porte une première collection de postes (22, 24, 26) (HAMA), qui sont tous interconnectés par un réseau de communication global (20), o chaque poste comporte une deuxième collection respective de processeurs (34, 36) et une mémoire (38, 40, 42) avec un premier espace d'adres- se affecté, sans partage et en excluant des actions de lecture par d'autres processeurs, à la deuxième collec- tion du poste en question, pour l'exécution par poste d'une troisième collection de superprocessus (SOMA) (74, 76, 78) attribuée à ce poste à l'exclusion d'autres postes, chaque superprocessus comportant une quatrième collection de processus (80, 82, 84, 86, 88, 90) qui y sont contenus à l'exclusion d'autres superprocessus, et au moins un superprocessus comporte au moins deux pro- cessus, tous les processus d'un même superprocessus ayant en commun une collection variable par le fait que cette information variable est indiquée en commun par tous les processus de ce superprocessus dans un deuxième espace d'adresse à l'intérieur du premier, et étant entendu qu'en règle générale, chaque processus possède en privé son espace de bloc de mémoire, les processus respectifs d'un superprocessus pouvant être exécutés sélectivement dans les proces- seurs du poste en question, chaque superprocessus pos- sédant, dans ledit deuxième espace d'adresse, un espace de boîte aux lettres à titre (50, 52, 54) d'espace de communication de lecture exclusif pour recevoir ladite première collection de l'information qui y est inscrite par un quelconque superprocessus, cet espace de boite aux lettres étant accessible en tant que seul espace de stockage du superprocessus en question pour un autre superprocessus au cours d'une opération d'écriture, chaque superpro- cessus étant pourvu d'un élément de commande pour envoyer par écriture vers un espace de boîte aux lettres sélectif d'un quelconque superprocessus, de l'information organisée par blocs, chaque espace de boîte aux lettres étant pourvu d'un indicateur de niveau de remplissage pour, dans le cas d'une action de lecture entreprise par un superprocessus dans un espace de boîte aux lettres vide, fournir un signal d'attente, dans le cas d'une action d'écriture entreprise par un superprocessus dans un espace de boîte aux lettres complètement rempli, fournir un signal d'erreur et pour le reste, admettre une action de lecture ou une action d'écriture avec ajustement par blocs de l'indicateur de niveau de remplissage de l'espace de boîte aux lettres en question, et un système de contrôle de travaux est présent pour, lorsqu'un travail est présenté au système processeur, l'attribuer en tant que troisième collec- tion de superprocessus sélectivement à des fins d'exé- cution à une cinquième collection d'au moins un poste. 2.- Système processeur suivant la revendica- tion 1, caractérisé en ce qu'au moins un poste comporte plusieurs processeurs et dans chaque poste à plusieurs processeurs, les processeurs respectifs sont d'une architecture pareille. 3.- Système processeur suivant la revendica- tion 1 ou 2, caractérisé en ce que tous les processeurs sont de la même architecture et chaque poste comprend un élément d'entrée et un élément de sortie pour communiquer un message sur ie réseau de communication global dans la même configuration d'information que celle avec laquelle il transite à l'intérieur des postes respectifs. 4.- Système processeur suivant la revendica- tion 1, 2 ou 3, dans lequel, dans chaque poste, une seule architecture de processeur est présente, mais dans le système processeur, au moins deux architectures de processeur différentes sont présentes, caractérisé en ce que chaque poste comprend un élément de sortie pour communiquer un message sur le réseau de communi- cation global dans la même configuration d'information que celle de la communication à l'intérieur du poste émetteur et chaque poste comprend un élément d'entrée pour convertir si nécessaire un message reçu en une configuration d'information admissible pour un proces- seur du poste en question. 5.- Système processeur suivant les revendica- tions 1 à 4 incluses, caractérisé en ce qu'un sous- système de distribution de tâches est présent pour, lors de l'activation d'un travail, attribuer celui-ci de manière statique à titre de superprocessus à un poste respectif jusqu'à ce que ce travail ait été mené à bon terme. 6.- Système processeur suivant l'une quelcon- que des revendications 1 à 5 incluses, caractérisé en ce que chaque superprocessus est pourvu de moyens d'appel destinés à appeler des moyens d'horloge prévus dans le système processeur pour signaler un temps absolu et un temps relatif. 7.- Poste destiné à être utilisé dans un sys- tème processeur comportant plusieurs postes suivant l'une quelconque des revendications 1 à 6 incluses, caractérisé en ce qu'il est équipé d'au moins un processeur, de moyens de connexion destines à la connexion à un réseau de communication, d'espace de mémoire pour la réalisation d'espace de boite aux lettres et, en outre, pour l'information de données et l'information de code d'un superprocessus attribué localement, ainsi que de moyens d'appel destinés appeler des moyens d'horloge à prévoir dans le système processeur pour signaler un temps absolu et un temps relatif, et d'un module de programmation a titre de noyau local du système d'exploitation (operating system). 8.- Poste suivant la revendication 7, caracté- risé en ce que le dit module programmateur comporte un système d'attribution de travaux partiels pour former une partie du système d'attribution de travaux global.