-
Concurrence
-
nécessaire
- matériel parallèle
- performances
- flexibilité
-
problèmes
- non déterminisme
- conditions de courses
- interblocage
- famine
-
primitives classiques
-
processus
- communication par messages
-
threads
- communication par mémoire partagée
-
synchronisation
- attente active
- événements
- sémaphores
- messages
- appels de procédures à distance
-
contrôle
- sections critiques conditionnelles
- moniteurs
- rendez-vous
-
Modèles formels
-
le modèle des acteurs
-
en réponse à un message,
un acteur peut
- envoyer un nombre fini de messages à des acteurs
- créer un nombre fini de nouveaux acteurs
- désigner le comportement à utiliser pour le prochain message qu'il recevra
-
langages de programmation
- erlang
- scala
-
calculs de processus
-
communication par canaux nommés
- pas de variables globales
- messages
- synchones ou asynchrones
- FIFO
-
quelques primitives élémentaires
- grande variété
-
composition
- séquentielle
- parallèle
-
variantes
-
Pi-calculus
- Pict
- variantes stochastiques
-
Join-calculus
- JoCaml
-
Fondements du Join-Calculus
-
localité
-
découplage
- transmission
- synchronisation
-
pour permettre
- distribution
- mobilité
-
processus
-
asynchrones
- s'exécutent en concurrence
- ne produisent aucun résultat
-
ou synchrones
- ~ appels de fonctions
-
canaux
- eqv à noms de ports
-
définition conjointe des
- canaux
-
et processus les écoutant
- lancés à chaque message sur ces canaux
-
définition par filtrage de motifs à la ML
- seule primitive de synchonisation
- état reste dans processus
-
sémantique
- machine chimique abstraite réactive
-
implémentation
- JoCaml