Micro Systèmes n°99 jui/aoû 1989
Micro Systèmes n°99 jui/aoû 1989
  • Prix facial : 30 F

  • Parution : n°99 de jui/aoû 1989

  • Périodicité : mensuel

  • Editeur : Société Parisienne d'Edition

  • Format : (203 x 271) mm

  • Nombre de pages : 188

  • Taille du fichier PDF : 156 Mo

  • Dans ce numéro : grandes écoles... du clavier au charbon.

  • Prix de vente (PDF) : gratuit

Dans ce numéro...
< Pages précédentes
Pages : 164 - 165  |  Aller à la page   OK
Pages suivantes >
164 165
FENETRE SUR c ; INT[]REAL64 d ; INT ; INT16 ; BYTE ; BYTE[]REAL32 ; INT[][5]INT Fin de protocole Si on déclare le canal comm par CHAN OF monappli comm : les communications auront les formes suivantes : comm ? c ; longV l'entier long sera défini à la réception du message comm ! d ; i ; N16 ; "H" ; 255 ; NV32 ; 7600 W64 en émission On peut aussi former des tableaux de canaux : [100]CHAN OF INT[]REAL64 résultats : [500][12]CHAN OF monappli comm : On pourrait se contenter de canaux du type CHAN OF ANY mais, pour être certain de la nature des messages, c'est-à-dire pour être sûr que quatre octets envoyés par un processus vont être interprétés par le processus récepteur comme quatre octets et non pas comme un entier ou un réel 32 bits à cause d'une erreur de programmation, il est préférable de typer les canaux en leur imposant un protocole. Les canaux sont le seul moyen de communiquer des données entre processus parallèles. Il n'y a pas de variables partagées : le résultat d'un calcul dans un des processus parallèles ne peut pas être utilisé par un autre, sauf s'il est transmis à travers un canal. Les communications en OCCAM synchronisent les processus, c'est-à-dire imposent l'ordre d'exécution de ces processus. Nous allons voir un dernier type, les timers qui donnent la date indiquée par l'horloge locale du processeur. Là encore, on peut avoir des tableaux de timers : TIMER horlogel,horloge2 : [120]TIMER Clock : Les timers sont utilisés en réception : horlogel ? heure heure devant être de type entier. On peut demander un retard : SEQ horlogel ? date horlogel ? AFTER date PLUS retard La seconde instruction s'exécutera à date + retard. Les opérations Sur les différents types de variables, OCCAM offre les opérations courantes : - Pour les entiers, les réels : +,-/,REM. L'opération REM est le modulo en entier (a:= c REM d : - reste de la division entière de c par d), en réel r:= x REM y - x - (y n), n étant l'entier le plus proche de x/y. - Les opérations binaires entre entiers : et A, ou V, ou exclusif > <, non —, décalage gauche «, décalage droit ». - Pour les booléens : AND, OR, NOT. - Les opérations de comparaison : =, différent < >, <, >, <-, > Pour ce qui concerne la relation d'égalité sur les tableaux, on notera que l'on a différentes possibilités : 164 - MICRO-SYSTEMES [200]REAL64 TABR, NTAB : SEQ TABR : = NTAB ou bien [TABR FROM 0 FOR 200] [NTAB FROM 0 FOR 200] ou bien [TABR FROM 11 FOR 25] : = [NTAB FROM 40 FOR 25] égalité sur 25 éléments seulement. Les abréviations L'abréviation est un renommage. Il y a deux sortes d'abréviations ; l'abréviation d'une expression : VAL abr IS (2. m)+x : abr remplace cette expression, MAIS, dans le cadre ou scope de abr les valeurs de met x ne peuvent être changées. Les variables met x sont initialisées avant cette déclaration. ou encore : VAL []INT Y IS [x FROM i FOR nb : Y est un tableau de nb valeurs d'éléments du tableau x de x[i] à x[i+nb-10. L'autre type d'abréviation sert à identifier un élément existant, par exemple : INT a IS b : a est un nouveau nom pour b []REAL32 new IS [cr FROM 18 FOR N] : new est le nom attribué à ce sous-vecteur de cr. Toute modification sur les éléments du vecteur new sera également faite sur les éléments correspondants du tableau cr. Ici l'abréviation est analogue à l'ordre EQUIVALENCE en Fortran. Avant de décrire les procédures OCCAM, revenons sur ce que nous avons appelé le cadre ou scope, matérialisé par les indentations. C'est un point important qui provoque quelques surprises à l'exécution des programmes si cet aspect est négligé. Le cadre ou scope Dans les paragraphes précédents, nous avons présenté la notion de processus OCCAM et comment les processus étaient inclus les uns dans les autres à la manière des poupées russes. Nous allons maintenant préciser de quelle façon on doit déclarer les variables qui interviennent dans ces processus de différents niveaux. Autrement dit, comment on définit dans le programme la région de validité dc : variables déclarées. Montrons l'idée de base sur un'exemple : INT x,y : x, y déclarées entières INT u : u déclarée entière SEQ cadre de x, y et u x : = 6 u : = (xx) + 2 y : = (x + 4) x INT z : déclaration de z SEQ cadre de z y : = (x y) - (x + 1) INT v : déclaration de v PAR z : = y y x u cadre de v Une variable est valide localement pour les processus placés sous la déclaration de la variable avec une ou plusieurs indentations. Cette variable n'a pas d'existence hors de ce cadre. Autre exemple : Juillet/Août 1989
REAL32 t : déclaration det PAR cadre det REAL32 x,y : déclaration de x, y SEQ cadre de x, y x : = z + 2 z a été déclaré dans un cadre de niveau supérieur y : = z x fin du cadre de x, y INT x : déclaration de x propre à ce processus SEQ cadre de x x : = z t z a été déclaré dans un cadre de niveau supérieur fin du cadre de x (bis) Un dernier exemple : CHAN OF ANY cd : déclaration du canal cd REAL32 t : déclaration det INT u : déclaration de u SEQ cadre det et de cd REAL32 x,y : déclaration de x, y réels SEQ cadre de x, y cd ? x ; y y : = (t x) + y j fin du cadre de x réel INT x,z : déclaration de x qui annule la précédente SEQ cadre de x entier cd ? z u : = x (u - z) Nous donnons maintenant un exemple de situation interdite : PAR REAL64 r : SEQ cd ? r r : = r +6.754987104(REAL 64) REAL64 x : SEQ ck ? r x : = x + r Ce processus PAR est erroné parce que la variable r n'est valide que dans le premier SEQ. Les procédures Un processus peut être utilisé fréquemment dans un programme, il est donc intéressant d'écrire une seule fois ce groupe d'instructions et de l'appeler au cours de ce programme à la manière d'un sous-programme. Ainsi OC- CAM permet d'associer un nom à un processus. Cela s'écrit : PROC processl (CHAN OF REAL32 in,out, [][]INT TX,TY, []REAL32 RR, INT N,P) INT a,g,x : REAL64r,X,Y : [100][30] Rx,Ry : SEQ initialisations calcull PAR calcul2 calcul3...communications les : indiquent la fin de la procédure. Les arguments d'une procédure peuvent être des boo- Juillet/Août 1989 léens, des octets, des entiers, des réels, des constantes, des tableaux, des canaux de communication. Les procédures OCCAM ne sont pas récursives. OCCAM permet de décrire des graphes complexes de processus concurrents avec leurs communications sur un processeur. Si l'on dispose de plusieurs processeurs, on pourra associer un processus ou des processus à chaque processeur, les liaisons logiques deviendront des liaisons physiques (fig. 1). Conclusions OCCAM est un langage adapté à la description de graphes de processus. Il possède une définition des processus, très riche du point de vue de la structuration des programmes. Mais évidemment l'aspect communication par canaux synchronisés est l'apport le plus visible. Pour le programmeur, OCCAM présente en outre une remarquable cohérence car il n'est pas évident de construire un langage qui puisse sans ambiguïtés assurer la description claire de processus parallèles. Cette introduction au langage OCCAM nous a permis d'aborder les éléments de base du langage. Certains points ont été mis de côté ainsi que les techniques d'optimisation liées à l'implantation d'OCCAM sur Transputers ou l'allocation des processus sur les processeurs. Les possibilités d'expression de processus parallèles n'ont pas été développées. Ce dernier point est relativement vaste car cela revient à décrire les classes de problèmes traités sur des architectures distribuées (5). OCCAM peut servir à modéliser tout ensemble de processus (pas nécessairement parallèles) : circuits VLSI, éléments d'ordinateurs, réseaux de neurones, réseaux systoliques, automates cellulaires, chaînes d'acquisition de signaux, objets évoluant avec des interactions variées (particules nucléaires, molécules dans un gaz...), traitement d'images, conduite de processus... Ce langage est utilisé en calcul scientifique classique : algèbre linéaire, méthodes d'éléments finis, méthodes de sous-domaines (5)... Schématiquement, le programmeur doit alors exhiber dans l'algorithme les opérations ou phases de calcul à exécuter en parallèle, soit en découpant le domaine de calcul, soit en répartissant les opérations algorithmiques sur les processeurs. L'utilisation d'OCCAM et des réseaux de Transputers est en pleine expansion. Ce langage, enseigné systématiquement dans les universités en Grande- Bretagne, fait l'objet de très nombreux projets sur Transputers en France et à l'étranger. Nain Cosnuau REFERENCES BIBLIOGRAPHIQUES (1) La Recherche, Les Nouveaux Ordinateurs, numéro spécial, nov. 1988. (2) OCCAM2 Reference Manual,C.A.R. Hoare Series Editor, Prentice Hall International Series in Computer Science. 1988. (3) Programming in OCCAM2, Geraint Jones, Michael Goldsmith,C.A.R. Hoare Series Editor, Prentice Hall International Series in Computer Science. 1988. (4) Concurrent Program Structures, D. Bustard, J. Elder, J. Welsh,C.A.R. Hoare Serie Editor, Prentice Hall International Series in Computer Science. 1988. (5) Solving Problems on Concurrent Processors, Vol. 1, G. Fox, M. Johnson, G. Lyzenga, S. Otto, J. Salmon, D., Walker. Prentice Hall International Editions. 1988. Englewood Cliffs, NJ f 07632. MICRO-SYSTEMES - 165



Autres parutions de ce magazine  voir tous les numéros


Liens vers cette page
Couverture seule :


Couverture avec texte parution au-dessus :


Couverture avec texte parution en dessous :


Micro Systèmes numéro 99 jui/aoû 1989 Page 1Micro Systèmes numéro 99 jui/aoû 1989 Page 2-3Micro Systèmes numéro 99 jui/aoû 1989 Page 4-5Micro Systèmes numéro 99 jui/aoû 1989 Page 6-7Micro Systèmes numéro 99 jui/aoû 1989 Page 8-9Micro Systèmes numéro 99 jui/aoû 1989 Page 10-11Micro Systèmes numéro 99 jui/aoû 1989 Page 12-13Micro Systèmes numéro 99 jui/aoû 1989 Page 14-15Micro Systèmes numéro 99 jui/aoû 1989 Page 16-17Micro Systèmes numéro 99 jui/aoû 1989 Page 18-19Micro Systèmes numéro 99 jui/aoû 1989 Page 20-21Micro Systèmes numéro 99 jui/aoû 1989 Page 22-23Micro Systèmes numéro 99 jui/aoû 1989 Page 24-25Micro Systèmes numéro 99 jui/aoû 1989 Page 26-27Micro Systèmes numéro 99 jui/aoû 1989 Page 28-29Micro Systèmes numéro 99 jui/aoû 1989 Page 30-31Micro Systèmes numéro 99 jui/aoû 1989 Page 32-33Micro Systèmes numéro 99 jui/aoû 1989 Page 34-35Micro Systèmes numéro 99 jui/aoû 1989 Page 36-37Micro Systèmes numéro 99 jui/aoû 1989 Page 38-39Micro Systèmes numéro 99 jui/aoû 1989 Page 40-41Micro Systèmes numéro 99 jui/aoû 1989 Page 42-43Micro Systèmes numéro 99 jui/aoû 1989 Page 44-45Micro Systèmes numéro 99 jui/aoû 1989 Page 46-47Micro Systèmes numéro 99 jui/aoû 1989 Page 48-49Micro Systèmes numéro 99 jui/aoû 1989 Page 50-51Micro Systèmes numéro 99 jui/aoû 1989 Page 52-53Micro Systèmes numéro 99 jui/aoû 1989 Page 54-55Micro Systèmes numéro 99 jui/aoû 1989 Page 56-57Micro Systèmes numéro 99 jui/aoû 1989 Page 58-59Micro Systèmes numéro 99 jui/aoû 1989 Page 60-61Micro Systèmes numéro 99 jui/aoû 1989 Page 62-63Micro Systèmes numéro 99 jui/aoû 1989 Page 64-65Micro Systèmes numéro 99 jui/aoû 1989 Page 66-67Micro Systèmes numéro 99 jui/aoû 1989 Page 68-69Micro Systèmes numéro 99 jui/aoû 1989 Page 70-71Micro Systèmes numéro 99 jui/aoû 1989 Page 72-73Micro Systèmes numéro 99 jui/aoû 1989 Page 74-75Micro Systèmes numéro 99 jui/aoû 1989 Page 76-77Micro Systèmes numéro 99 jui/aoû 1989 Page 78-79Micro Systèmes numéro 99 jui/aoû 1989 Page 80-81Micro Systèmes numéro 99 jui/aoû 1989 Page 82-83Micro Systèmes numéro 99 jui/aoû 1989 Page 84-85Micro Systèmes numéro 99 jui/aoû 1989 Page 86-87Micro Systèmes numéro 99 jui/aoû 1989 Page 88-89Micro Systèmes numéro 99 jui/aoû 1989 Page 90-91Micro Systèmes numéro 99 jui/aoû 1989 Page 92-93Micro Systèmes numéro 99 jui/aoû 1989 Page 94-95Micro Systèmes numéro 99 jui/aoû 1989 Page 96-97Micro Systèmes numéro 99 jui/aoû 1989 Page 98-99Micro Systèmes numéro 99 jui/aoû 1989 Page 100-101Micro Systèmes numéro 99 jui/aoû 1989 Page 102-103Micro Systèmes numéro 99 jui/aoû 1989 Page 104-105Micro Systèmes numéro 99 jui/aoû 1989 Page 106-107Micro Systèmes numéro 99 jui/aoû 1989 Page 108-109Micro Systèmes numéro 99 jui/aoû 1989 Page 110-111Micro Systèmes numéro 99 jui/aoû 1989 Page 112-113Micro Systèmes numéro 99 jui/aoû 1989 Page 114-115Micro Systèmes numéro 99 jui/aoû 1989 Page 116-117Micro Systèmes numéro 99 jui/aoû 1989 Page 118-119Micro Systèmes numéro 99 jui/aoû 1989 Page 120-121Micro Systèmes numéro 99 jui/aoû 1989 Page 122-123Micro Systèmes numéro 99 jui/aoû 1989 Page 124-125Micro Systèmes numéro 99 jui/aoû 1989 Page 126-127Micro Systèmes numéro 99 jui/aoû 1989 Page 128-129Micro Systèmes numéro 99 jui/aoû 1989 Page 130-131Micro Systèmes numéro 99 jui/aoû 1989 Page 132-133Micro Systèmes numéro 99 jui/aoû 1989 Page 134-135Micro Systèmes numéro 99 jui/aoû 1989 Page 136-137Micro Systèmes numéro 99 jui/aoû 1989 Page 138-139Micro Systèmes numéro 99 jui/aoû 1989 Page 140-141Micro Systèmes numéro 99 jui/aoû 1989 Page 142-143Micro Systèmes numéro 99 jui/aoû 1989 Page 144-145Micro Systèmes numéro 99 jui/aoû 1989 Page 146-147Micro Systèmes numéro 99 jui/aoû 1989 Page 148-149Micro Systèmes numéro 99 jui/aoû 1989 Page 150-151Micro Systèmes numéro 99 jui/aoû 1989 Page 152-153Micro Systèmes numéro 99 jui/aoû 1989 Page 154-155Micro Systèmes numéro 99 jui/aoû 1989 Page 156-157Micro Systèmes numéro 99 jui/aoû 1989 Page 158-159Micro Systèmes numéro 99 jui/aoû 1989 Page 160-161Micro Systèmes numéro 99 jui/aoû 1989 Page 162-163Micro Systèmes numéro 99 jui/aoû 1989 Page 164-165Micro Systèmes numéro 99 jui/aoû 1989 Page 166-167Micro Systèmes numéro 99 jui/aoû 1989 Page 168-169Micro Systèmes numéro 99 jui/aoû 1989 Page 170-171Micro Systèmes numéro 99 jui/aoû 1989 Page 172-173Micro Systèmes numéro 99 jui/aoû 1989 Page 174-175Micro Systèmes numéro 99 jui/aoû 1989 Page 176-177Micro Systèmes numéro 99 jui/aoû 1989 Page 178-179Micro Systèmes numéro 99 jui/aoû 1989 Page 180-181Micro Systèmes numéro 99 jui/aoû 1989 Page 182-183Micro Systèmes numéro 99 jui/aoû 1989 Page 184-185Micro Systèmes numéro 99 jui/aoû 1989 Page 186-187Micro Systèmes numéro 99 jui/aoû 1989 Page 188