38 lines
1.8 KiB
Markdown
38 lines
1.8 KiB
Markdown
|
# Synchonisation - Dîner des philosophes
|
|||
|
|
|||
|
## Principe
|
|||
|
|
|||
|
Ce paradigme modélise l’ordonnancement des processus et l’allocation des ressources critiques à ces derniers.
|
|||
|
|
|||
|
La résolution de ce problème met en œuvre 2 techniques d’utilisations différentes des sémaphores : l’exclusion mutuelle classique mais aussi la possibilité de bloquer un processus grâce à un sémaphore privé.
|
|||
|
|
|||
|
- N philosophes assis autour d’une table.
|
|||
|
- Une fourchette entre chaque paire de voisins.
|
|||
|
- Pour manger, un philosophe a besoin de deux fourchettes.
|
|||
|
- Comment assurer que les philosophes vont pouvoir manger ?
|
|||
|
|
|||
|
|
|||
|
Chaque philosophe passe par les états suivants :
|
|||
|
|
|||
|
- Penser (sans interaction avec les autres),
|
|||
|
- Essayer de manger, et pour cela attraper une des fourchettes à sa disposition, puis l’autre et ce dans l’ordre souhaité.
|
|||
|
- Déposer les fourchettes.
|
|||
|
|
|||
|
## Ce qui peut arriver
|
|||
|
|
|||
|
Interblocage : chaque philosophe tient sa fourchette de gauche et attend la deuxième.
|
|||
|
|
|||
|
- Idée : obliger les philosophes à reposer la fourchette au bout d’un certain temps si la deuxième n’est pas libre.
|
|||
|
- mais... on peut avoir un cycle infini sans que personne ne mange :
|
|||
|
* chaque philosophe prend la fourchette de gauche
|
|||
|
* puis chaque philosophe la repose
|
|||
|
* puis chaque philosophe prend la fourchette de droite
|
|||
|
* ...
|
|||
|
|
|||
|
## Solutions
|
|||
|
|
|||
|
- Un serveur : chaque philosophe lui demande la permission avant de prendre une fourchette.
|
|||
|
- Hiérarchie des ressources : les fourchettes sont numérotées et chaque philosophe prend d’abord la fourchette avec le plus grand numéro.
|
|||
|
- "Right left dining philosophers" : les philosophes sont numérotés et prennent en premier la fourchette de gauche ou de droite suivant leur parité.
|
|||
|
- Ne donner à un philosophe ses baguettes que si elles sont TOUTES DEUX disponibles.
|