Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989)

Slides:



Advertisements
Présentations similaires
Prmt For imbriqués.
Advertisements

Tests et Validation du logiciel
PL/SQL : Le Langage PL/SQL est une extension du SQL, qui offre
Les Systèmes de Gestion de Bases de Données (SGBD) PL-SQL.
Génie Logiciel 2 Julie Dugdale
Portée des variables VBA & Excel
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
INTRODUCTION.
UML (Unified Modeling Langage)
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Sous-programmes Concepts généraux Passage de paramètres Fonctions
18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL
La structure conditionnelle simple
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
TP : Fichiers et Tableaux Séance N°2 Avril Application de Gestion de stock Partie 1 : les fichiers 1 Création dun fichier de 20 articles.
TP Fichiers et Tableaux Avril Un fichier Permet le stockage de données sur des supports de mémoire externes (donc les données ne seront pas perdues.
IFT313 Introduction aux langages formels
Algorithmique et Programmation
Module 4 : Parcours dans un graphe
© 2007 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Sémantique Formelle Peter Van Roy Département dIngénierie Informatique, UCL
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
Complément Le diagramme des classes
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
Programmation concurrente
Stage de circonscription 27,28 et 30 novembre 2006 Circonscription de Capesterre Belle Eau.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
Ift 2251 Introduction au Génie Logiciel
Chapitre 9 Les sous-programmes.
Partie II Sémantique.
CSI 1502 Principes fondamentaux de conception de logiciels
3.3 Circuits logiques à mémoire Bascules (latches)
3.2 Circuits logiques de base
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
Synchronisation Classique
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
LANGAGE PASCAL Introduction rapide….
Objectifs À la fin de ce cours, vous serez capables de :
Ch. PAUL - Piles et Files à l'aide de listes chainées
Gérer la sécurité des mots de passe et les ressources
La Boucle Repeat Cours LCS N°1 Présenté par Mr: LALLALI.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Packages et Types De la Spécification Formelle A l'implémentation Ada.
INTRODUCTION.
Informatique de gestion – IO MER L3 – Pierre SOURNAC Informatique de Gestion part III – the macro rises L3 – IO MER
Algorithmes de tri et de recherche
Créer des packages.
Méthodes de tri.
MIGO ET COMPLEXITE1 ARBRES EQUILIBRES Définition : On dit qu’un arbre binaire est H équilibré si en tout nœud de l’arbre, les hauteurs des sous-arbres.
Concepts intermédiaires de VHDL
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Modélisation VHDL de.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Cours LCS N°4 Présenté par Mr: LALLALI
1 Programmation en C++ Marianne Morris. 2 Intro générale à la programmation On a déjà étudié le langage assembleur Langage de bas niveau Meilleur que.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
1 3.4 Microprocesseurs et bus Microprocesseurs © Béat Hirsbrunner, University of Fribourg, Switzerland, 6 December 2006.
Informatique de Gestion part II – the dark macro
System 1 Introduction to Computer Architecture
1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation.
Initiation aux bases de données et à la programmation événementielle
Algorithmique Algorithmique  Pascal
Flash MX – Séance 2 Interactions & ActionScript David Rapin Si28 P06.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Type Tableau Partie 1 : Vecteurs
Transcription de la présentation:

Introduction à Linda Béat Hirsbrunner References Nicholas Carriero, David Gelernter : "Linda in context", Communications of ACM, vol. 32 (n° 4, April 1989) p Nicholas Carriero, David Gelernter : "How to write parallel programs: a first course", The MIT Press, Béat Hirsbrunner: "Introduction à Linda", Université de Fribourg, Suisse, Notes de cours, mai Ubiquitous Systems Béat Hirsbrunner (Fribourg) and Peter Kropf (Neuchâtel)) Autumn Semester 2007, Lecture 1, 28 September 2006

2 1. Remarque préliminaire Langage de programmation vs Langage de coordination Modèle de calcul vs Modèle de communication Indépendance totale progr. - coord. possible?

3 2. Définition de Linda Modèle de mémoire composé Collection de tuples, appelé espace des tuples Ensemble dopérations Rajout, retrait et lecture de tuples Mécanisme dunification qui permet daccéder aux tuples

4 3. Définition dun tuple Suite finie et ordonnée de champs typés Chaque champs contient soit une valeur typée, soit un processus Exemple:

5 4. Définition dun anti-tuple Suite finie et ordonnées de champs typés Chaque champs contient soit une valeur typée, soit une place libre typée susceptible daccueillir une valeur du même type Exemple:

6 5. Opérations de lecture rd(a) bloquant équité garantie n tuples candidats, m processus en attente problème: définition pécise et non ambiguë de la notion déquité (notamment lorsque lespace des tuples est réparti!!!) rdp(a) non bloquant

7 6. Opérations de retrait in(a) idem à rd(a), mais le tuple t qui a été unifié à lanti-tuple a est retiré de lespace des tuples inp(a) idem à rdp(a), mais si un tuple t a été unifié à lanti-tuple a alors ce tuple t est retiré de lespace des tuples

8 7. Opérations de rajout out(t) le tuple t est dabord évalué, puis rajouté à Ts, et finalement le processus appelant reprend son exécution eval(t) un processus p permettant dévaluer le tuple t est créé tous les processus sexécute en parallèle si le tuple t contient n champs de processus, le choix de créé 1 ou n+1 processus est laissé au choix de limplémentation

9 8. Modèle dunification Le modèle dunification nest pas précisé au niveau du modèle Linda !!! Ce modèle doit être définie pour chaque réalisation de Linda dans un langage de programmation donné A méditer : programmation = calcul + communication ?!

10 Exemple 1. Calcul des nombres premiers (1) % création de n-1 tuples de processus, % un par nombre entier n for i := 2 to n do eval("nombre premier", i, est_premier(i)); end for; % lecture des nombres premiers n for i := 2 to n do rd("nombre premier", i, ? ok); end for;

11 % définition de la procédure est_premier procedure est_premier(i:integer) : boolean; var j: integer; begin for j := 2 to sqrt(i) do rd("nombre premier", j, ? ok); if ok and (i mod j = 0) then return false end if; end for; return true; end est_premier; Exemple 1. Calcul des nombres premiers (2)

12 Exemple 2. Problème des philosophes (1) % création de n baguettes, n philosophes % et n-1 tickets for i := 1 to n do out("baguette", i); eval(philosophe(i)); if i < n then out("ticket") end if; end for;

13 % définition d'un philosophe procedure philosophe(i:integer); begin loop forever penser; in("ticket"); in("baguette", i); in("baguette", (i+1) div n); manger; out("baguette", i); out("baguette", (i+1) div n); out("ticket"); end loop; end philosophe; Exemple 2. Problème des philosophes (2)

14 The Sleeping Barber Problem (1) Andrew S. Tanenbaum: "Modern Operating Systems"; Prince Hall 2001, chap

15 The Sleeping Barber Problem (2) Solution to sleeping barber problem