Loading AI tools
partage de ressources en informatique système De Wikipédia, l'encyclopédie libre
Le problème du « dîner des philosophes », énoncé par Edsger Dijkstra[1], met en scène une tablée de philosophes qui se partagent des fourchettes pour déguster des spaghettis. Son but est d'illustrer le phénomène d'interblocage pouvant survenir dans un système informatique lors d'un partage de ressources, ici représentées par des fourchettes. Il permet d'illustrer les conditions de cet interblocage, puis de trouver des solutions pour le prévenir.
Ce problème est utilisé principalement dans l'étude de l'ordonnancement des processus et l'allocation des ressources à ces derniers.
Les conditions initiales sont les suivantes :
Un philosophe a trois états possibles :
Dans ces conditions, le système peut se trouver en situation d'interblocage. Par exemple, considérons que tous les philosophes se mettent simultanément en état Affamé et prennent la fourchette située à leur gauche. Aucun philosophe ne pourra alors prendre la fourchette située à sa droite, puisque celle-ci a été prise par le philosophe situé à sa droite. Le système sera alors bloqué à l'infini si aucun philosophe ne libère sa baguette.
La solution à ce problème consiste à trouver un ordonnancement du partage des fourchettes entre les philosophes qui permet à chacun d'entre eux à manger. Dijkstra a proposé une solution basée sur des sémaphores, et Courtois en a proposé une utilisant des compteurs.
En 1984, K. M. Chandy et J. Misra proposèrent une nouvelle solution permettant à un nombre arbitraire n d'agents identifiés par un nom quelconque d'utiliser un nombre m de ressources. Le protocole élégant et générique est le suivant :
Dans le cas pair, une solution simple existe. Numéroter les philosophes selon leur place à la table, et les séparer en deux groupes, pairs et impairs. L'un des groupes commence par prendre la fourchette gauche puis la droite, le deuxième groupe fait l'inverse.
Étudions le cas d'un philosophe qui prend d'abord sa fourchette gauche. S'il y arrive, il ne lui reste plus qu'à prendre sa fourchette droite. Celle-ci ne peut être définitivement bloquée : si le philosophe de droite la tient, c'est qu'il est en train de manger (il tient dans ce cas ses deux fourchettes). Ainsi nos philosophes ne se bloqueront jamais.
La compréhension de cette solution est plus aisée en prenant pour exemple la présence de deux philosophes.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.