FR2558617A1 - Systeme processeur comportant un certain nombre de postes interconnectes par un reseau de communication et poste a utiliser dans un tel systeme processeur - Google Patents

Systeme processeur comportant un certain nombre de postes interconnectes par un reseau de communication et poste a utiliser dans un tel systeme processeur Download PDF

Info

Publication number
FR2558617A1
FR2558617A1 FR8500687A FR8500687A FR2558617A1 FR 2558617 A1 FR2558617 A1 FR 2558617A1 FR 8500687 A FR8500687 A FR 8500687A FR 8500687 A FR8500687 A FR 8500687A FR 2558617 A1 FR2558617 A1 FR 2558617A1
Authority
FR
France
Prior art keywords
superprocess
space
processes
processor
mailbox
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8500687A
Other languages
English (en)
Other versions
FR2558617B1 (fr
Inventor
Jan Henri Marie Lippman Wouter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of FR2558617A1 publication Critical patent/FR2558617A1/fr
Application granted granted Critical
Publication of FR2558617B1 publication Critical patent/FR2558617B1/fr
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Abstract

UN SYSTEME PROCESSEUR COMPORTE UN OU PLUSIEURS POSTES 20, 22, 24 QUI SONT CONNECTES PAR UN RESEAU DE COMMUNICATION GLOBAL. CHAQUE POSTE COMPORTE UN OU PLUSIEURS PROCESSEURS 34, 36. DANS LES POSTES, PEUVENT ETRE EXECUTES LES SUPERPROCESSUS 74, 76, 80 QUI COMPRENNENT CHACUN UN OU PLUSIEURS PROCESSUS 80 ... 90. CHAQUE SUPERPROCESSUS EST POURVU, EN VUE D'UNE COMMUNICATION AVEC LE MONDE EXTERIEUR, D'UN ESPACE DE BOITE AUX LETTRES 50, 52, 54 DANS LEQUEL D'AUTRES SUPERPROCESSUS PEUVENT AUSSI ECRIRE, MAIS DANS LEQUEL SEUL LE SUPERPROCESSUS EN QUESTION PEUT LIRE. DES PROCESSUS DANS UN MEME PROCESSUS PEUVENT AVOIR EN COMMUN DES DONNEES VARIABLES, MAIS LEUR PILE DE REGISTRE EST EN TOUT CAS PRIVEE. CHAQUE BOITE AUX LETTRES EST POURVUE D'UN INDICATEUR DE NIVEAU DE REMPLISSAGE. LORS DE LA LECTURE DANS UN ESPACE DE BOITE AUX LETTRES VIDE, UN SIGNAL D'ATTENTE EST EMIS POUR LE PROCESSUS EN ACTION; L'ECRITURE DANS UN ESPACE DE BOITE AUX LETTRES REMPLI PRODUIT UN SIGNAL D'ERREUR. DE PLUS, UN SYSTEME DE CONTROLE DE TRAVAUX (JOB CONTROL) EST PRESENT POUR REPARTIR DES TRAVAUX SUR LES POSTES, AU MOYEN D'UN ENSEMBLE DE CHARGEMENT D'APPLICATIONS.

Description

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.

Claims (8)

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.
FR8500687A 1984-01-20 1985-01-18 Systeme processeur comportant un certain nombre de postes interconnectes par un reseau de communication et poste a utiliser dans un tel systeme processeur Expired FR2558617B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8400186A NL8400186A (nl) 1984-01-20 1984-01-20 Processorsysteem bevattende een aantal stations verbonden door een kommunikatienetwerk, alsmede station voor gebruik in zo een processorsysteem.

Publications (2)

Publication Number Publication Date
FR2558617A1 true FR2558617A1 (fr) 1985-07-26
FR2558617B1 FR2558617B1 (fr) 1987-04-17

Family

ID=19843359

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8500687A Expired FR2558617B1 (fr) 1984-01-20 1985-01-18 Systeme processeur comportant un certain nombre de postes interconnectes par un reseau de communication et poste a utiliser dans un tel systeme processeur

Country Status (7)

Country Link
US (1) US4769771A (fr)
JP (1) JPH07120337B2 (fr)
CA (1) CA1226955A (fr)
DE (1) DE3500452A1 (fr)
FR (1) FR2558617B1 (fr)
GB (1) GB2153118B (fr)
NL (1) NL8400186A (fr)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581732A (en) * 1984-03-10 1996-12-03 Encore Computer, U.S., Inc. Multiprocessor system with reflective memory data transfer device
US4851988A (en) * 1986-03-31 1989-07-25 Wang Laboratories, Inc. Loosely-coupled computer system using global identifiers to identify mailboxes and volumes
JP2585535B2 (ja) * 1986-06-02 1997-02-26 株式会社日立製作所 複合計算機システムにおけるプロセス結合方法
US5142683A (en) * 1987-03-09 1992-08-25 Unisys Corporation Intercomputer communication control apparatus and method
US5179715A (en) * 1987-03-11 1993-01-12 Toyo Communication Co., Ltd. Multiprocessor computer system with process execution allocated by process managers in a ring configuration
US5187799A (en) * 1988-05-17 1993-02-16 Calif. Institute Of Technology Arithmetic-stack processor which precalculates external stack address before needed by CPU for building high level language executing computers
EP0379557A4 (en) * 1988-06-20 1992-09-09 United States Department Of Energy Interconnection networks
US5056006A (en) * 1988-09-12 1991-10-08 General Electric Company Parallel processor with single program storage and sequencer and simultaneous instruction processing
US5065314A (en) * 1988-09-23 1991-11-12 Allen-Bradley Company, Inc. Method and circuit for automatically communicating in two modes through a backplane
US5481698A (en) * 1988-09-28 1996-01-02 Hitachi Ltd. Computer system and job executing method
EP0366583B1 (fr) * 1988-10-24 1995-08-30 International Business Machines Corporation Méthode pour échanger des données entre programmes dans un système de traitement des données
US5093918A (en) * 1988-12-22 1992-03-03 International Business Machines Corporation System using independent attribute lists to show status of shared mail object among respective users
US5210828A (en) * 1988-12-29 1993-05-11 International Business Machines Corporation Multiprocessing system with interprocessor communications facility
US5023832A (en) * 1989-01-12 1991-06-11 Honeywell Inc. Method of maintaining asynchronous real-time data
DE69027788D1 (de) * 1989-01-17 1996-08-22 Landmark Graphics Corp Verfahren zur Übertragung von Daten zwischen gleichzeitig ablaufenden Rechnerprogrammen
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
US5339418A (en) * 1989-06-29 1994-08-16 Digital Equipment Corporation Message passing method
WO1991004537A1 (fr) * 1989-09-11 1991-04-04 Poqet Computer Corporation Architecture et chargeur de reseau virtuel
US5392426A (en) * 1989-12-15 1995-02-21 Nynex Corporation, Inc. Method and apparatus for use in program operation, control and control block management and storage
US5524255A (en) * 1989-12-29 1996-06-04 Cray Research, Inc. Method and apparatus for accessing global registers in a multiprocessor system
EP0444376B1 (fr) * 1990-02-27 1996-11-06 International Business Machines Corporation Dispositif de passage de messages entre plusieurs processeurs couplé par une mémoire partagée intelligente
EP0463207B1 (fr) * 1990-06-26 1995-03-08 Siemens Aktiengesellschaft Système de communication avec commande programmée
US5226176A (en) * 1990-08-20 1993-07-06 Microsystems, Inc. System for selectively aborting operation or waiting to load required data based upon user response to non-availability of network load device
US5329626A (en) * 1990-10-23 1994-07-12 Digital Equipment Corporation System for distributed computation processing includes dynamic assignment of predicates to define interdependencies
US5448731A (en) * 1990-11-20 1995-09-05 International Business Machines Corporation Method and apparatus for controlling the deferred execution of user requests in a data processing system
US5603018A (en) * 1991-07-15 1997-02-11 Mitsubishi Denki Kabushiki Kaisha Program developing system allowing a specification definition to be represented by a plurality of different graphical, non-procedural representation formats
EP0543512B1 (fr) * 1991-11-19 1999-10-06 International Business Machines Corporation Système à plusieurs processeur
EP0549104B1 (fr) * 1991-12-20 1998-05-06 International Computers Limited Gestion d'attributs de logiciel dans un système d'ordinateur
US5408613A (en) * 1991-12-24 1995-04-18 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus
US5349682A (en) * 1992-01-31 1994-09-20 Parallel Pcs, Inc. Dynamic fault-tolerant parallel processing system for performing an application function with increased efficiency using heterogeneous processors
JPH05324589A (ja) * 1992-03-25 1993-12-07 Nippon Sheet Glass Co Ltd 並列コンピュータ装置および光結合装置
AU3936693A (en) * 1992-03-25 1993-10-21 Encore Computer U.S., Inc. Fiber optic memory coupling system
US5490279A (en) * 1993-05-21 1996-02-06 Intel Corporation Method and apparatus for operating a single CPU computer system as a multiprocessor system
US5499364A (en) * 1993-10-14 1996-03-12 Digital Equipment Corporation System and method for optimizing message flows between agents in distributed computations
DE69535409T2 (de) * 1994-06-29 2007-11-08 Intel Corp., Santa Clara Prozessor, das das systembusrecht in einem erweiterbaren multiprozessor-rechnersystem anzeigt
US5577261A (en) * 1995-01-23 1996-11-19 Tandem Computers Incorporated Ordered and reliable maintenance of inter-process relationships in a distributed multiprocessor
US7024666B1 (en) 2002-01-28 2006-04-04 Roy-G-Biv Corporation Motion control systems and methods
US5691897A (en) * 1995-05-30 1997-11-25 Roy-G-Biv Corporation Motion control systems
US20100131081A1 (en) * 1995-05-30 2010-05-27 Brown David W Systems and methods for motion control
US7139843B1 (en) 1995-05-30 2006-11-21 Roy-G-Biv Corporation System and methods for generating and communicating motion data through a distributed network
US6941543B1 (en) 1995-05-30 2005-09-06 Roy-G-Biv Corporation Motion control system and method
US7137107B1 (en) 2003-04-29 2006-11-14 Roy-G-Biv Corporation Motion control systems and methods
US6859671B1 (en) 1995-05-30 2005-02-22 Roy-G-Biv Corporation Application programs for motion control devices including access limitations
US20060206219A1 (en) * 1995-05-30 2006-09-14 Brown David W Motion control systems and methods
US5619649A (en) * 1995-06-12 1997-04-08 Xerox Corporation Network printing system for programming a print job by selecting a job ticket identifier associated with remotely stored predefined document processing control instructions
JPH103421A (ja) * 1995-11-20 1998-01-06 Matsushita Electric Ind Co Ltd 仮想ファイル管理システム
EP0839368A2 (fr) * 1996-05-17 1998-05-06 Koninklijke Philips Electronics N.V. Dispositif d'affichage
US6175854B1 (en) 1996-06-11 2001-01-16 Ameritech Services, Inc. Computer system architecture and method for multi-user, real-time applications
US5889989A (en) * 1996-09-16 1999-03-30 The Research Foundation Of State University Of New York Load sharing controller for optimizing monetary cost
US20010032278A1 (en) 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US6738814B1 (en) * 1998-03-18 2004-05-18 Cisco Technology, Inc. Method for blocking denial of service and address spoofing attacks on a private network
US6954775B1 (en) 1999-01-15 2005-10-11 Cisco Technology, Inc. Parallel intrusion detection sensors with load balancing for high speed networks
JP3780732B2 (ja) * 1999-03-10 2006-05-31 株式会社日立製作所 分散制御システム
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
US6885898B1 (en) * 2001-05-18 2005-04-26 Roy-G-Biv Corporation Event driven motion systems
US6879862B2 (en) * 2000-02-28 2005-04-12 Roy-G-Biv Corporation Selection and control of motion data
US20100131078A1 (en) * 1999-10-27 2010-05-27 Brown David W Event driven motion systems
US7031798B2 (en) 2001-02-09 2006-04-18 Roy-G-Biv Corporation Event management systems and methods for the distribution of motion control commands
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
US7082606B2 (en) * 2001-05-01 2006-07-25 The Regents Of The University Of California Dedicated heterogeneous node scheduling including backfill scheduling
DE10122422A1 (de) 2001-05-09 2002-11-21 Siemens Ag Verfahren und Vorrichtung zum Einstellen der Bandbreite einer Verbindung zwischen mindestens zwei Kommunikationsendpunkten in einem Datennetz
US20030212761A1 (en) * 2002-05-10 2003-11-13 Microsoft Corporation Process kernel
US8239942B2 (en) 2002-12-30 2012-08-07 Cisco Technology, Inc. Parallel intrusion detection sensors with load balancing for high speed networks
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
US8027349B2 (en) * 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20050125486A1 (en) * 2003-11-20 2005-06-09 Microsoft Corporation Decentralized operating system
US20100131077A1 (en) * 2004-02-25 2010-05-27 Brown David W Data Collection Systems and Methods for Motion Control
US7707131B2 (en) * 2005-03-08 2010-04-27 Microsoft Corporation Thompson strategy based online reinforcement learning system for action selection
US7885817B2 (en) * 2005-03-08 2011-02-08 Microsoft Corporation Easy generation and automatic training of spoken dialog systems using text-to-speech
US7734471B2 (en) * 2005-03-08 2010-06-08 Microsoft Corporation Online learning for dialog systems
US7957413B2 (en) * 2005-04-07 2011-06-07 International Business Machines Corporation Method, system and program product for outsourcing resources in a grid computing environment
FR2920556B1 (fr) * 2007-08-31 2009-11-13 Bull Sas Gestionnaire de processus ameliore
US10467151B2 (en) * 2017-09-05 2019-11-05 NGINX, Inc. Using shared memory to transport data between server processes
US11042424B1 (en) 2018-04-24 2021-06-22 F5 Networks, Inc. Pipelined request processing using shared memory

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3483520A (en) * 1966-04-20 1969-12-09 Gen Electric Apparatus providing inter-processor communication in a multicomputer system
US3715729A (en) * 1971-03-10 1973-02-06 Ibm Timing control for a multiprocessor system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4223380A (en) * 1978-04-06 1980-09-16 Ncr Corporation Distributed multiprocessor communication system
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
FR2476349A1 (fr) * 1980-02-15 1981-08-21 Philips Ind Commerciale Systeme de traitement de donnees reparti
US4412286A (en) * 1980-09-25 1983-10-25 Dowd Brendan O Tightly coupled multiple instruction multiple data computer system
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4493021A (en) * 1981-04-03 1985-01-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multicomputer communication system
US4503499A (en) * 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
US4669043A (en) * 1984-02-17 1987-05-26 Signetics Corporation Memory access controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ELECTRONICS, vol. 55, no. 24, 30 novembre 1982, pages 89-95, New York, US; R.TAYLOR et al.: "Process-oriented language meets demands of distributed processing" *
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 23, no. 5, octobre 1980, pages 1805-1810, New York, US; R.R.MARSICEK et al.: "Distributed data processing system" *
SOFTWARE & MICROSYSTEMS, vol. 1, no. 5, août 1982, pages 128-134, Camberley, Surrey, GB; G.C.SHOJA et al.: "A control kernel to support Ada intertask communication on a distributed multiprocessor computer system" *
THE 3RD ANNUAL SYMPOSIUM ON COMPUTER ARCHITECTURE, 19-21 janvier 1976, vol. 3, Long Beach, IEEE, pages 113-117; W.S.FORD et al.: "Hardware support for inter-process communication and processor sharing" *

Also Published As

Publication number Publication date
US4769771A (en) 1988-09-06
GB2153118A (en) 1985-08-14
NL8400186A (nl) 1985-08-16
GB2153118B (en) 1987-09-23
DE3500452A1 (de) 1985-07-25
CA1226955A (fr) 1987-09-15
FR2558617B1 (fr) 1987-04-17
JPH07120337B2 (ja) 1995-12-20
JPS60160463A (ja) 1985-08-22
GB8501072D0 (en) 1985-02-20

Similar Documents

Publication Publication Date Title
FR2558617A1 (fr) Systeme processeur comportant un certain nombre de postes interconnectes par un reseau de communication et poste a utiliser dans un tel systeme processeur
US5652885A (en) Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control
EP0121030B1 (fr) Dispositif d'arbitrage pour l'attribution d'une ressource commune à une unité sélectionnée d'un système de traitement de données
US5155858A (en) Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
CN1311333C (zh) 用于串行互斥体的方法与装置
CH616251A5 (fr)
US4420806A (en) Interrupt coupling and monitoring system
FR2517442A1 (fr) Dispositif d'interruption pour un systeme de multitraitement, procede pour sa commande et systeme pour sa mise en oeuvre
FR2578071A1 (fr) Installation de multitraitement a plusieurs processus
EP0447228A2 (fr) Concentrateur de flots de données pour voyant le stockage de données d'attributs et l'accès au pipeline de données graphiques
CA2304862A1 (fr) Processeur multifilieres de donnees
FR2538976A1 (fr) Systeme de commutation de paquets synchrones de longueur fixe
JPH05282165A (ja) 通信システム
JP2530918B2 (ja) 多重プロセッサ負荷シェアリング方法及び装置
FR2657482A1 (fr) Methode et systeme de lissage et de controle de debits de communications temporelles asynchrones.
Warren et al. A model for dynamic configuration which preserves application integrity
US5754781A (en) Data transfer controller device for controlling data transferred by and among separate clusters
Bocking et al. CHANNELS: a run-time system for multimedia protocols
CN106161487A (zh) 服务器的信息处理方法
MXPA02002863A (es) Proceso y sistemas de transmision de una cadena de mensajes para bases de datos.
EP0106714B1 (fr) Structure de point d'accès à un réseau de diffusion de connées par paquets
EP0251965B1 (fr) Système de commutation de paquets de données
WO1991010958A1 (fr) Systeme de bus d'ordinateur
CH640645A5 (en) Data transfer unit
FR2704337A1 (fr) Dispositif logique de gestion centralisée.

Legal Events

Date Code Title Description
CD Change of name or company name
ST Notification of lapse