Sémaphore -- Qu'est ce que c'est???
Résolu/Fermé
Spaki
Messages postés
38
Date d'inscription
mardi 9 mars 2010
Statut
Membre
Dernière intervention
23 septembre 2011
-
23 mai 2010 à 11:27
abdi-samad - 16 nov. 2015 à 09:37
abdi-samad - 16 nov. 2015 à 09:37
A voir également:
- Sémaphore def informatique
- Le code ascii en informatique - Guide
- Jargon informatique - Télécharger - Bureautique
- C'est quoi url en informatique - Guide
- Sujet informatique pour exposé ✓ - Forum Études / Formation High-Tech
- Souris informatique - Guide
4 réponses
tatou_38
Messages postés
1928
Date d'inscription
vendredi 21 avril 2006
Statut
Membre
Dernière intervention
5 août 2015
121
23 mai 2010 à 12:14
23 mai 2010 à 12:14
Un sémaphore (Mutex en anglais pour MUTual EXclusive) est un objet permettant de protéger l'accès à une ressource.
Par exemple ton imprimante. Si plusieurs utilisateurs ou processus envoient des données à l'imprimante en même temps, l'impression risque de ne pas être lisible !.
Pour éviter cela on met en place un sémaphore. Un processus teste le sémaphore avant d'imprimer : fonction P(mutex). Si le sémaphore est libre, alors P(mutex) lève le sémaphore et rend la main, si le sémaphore est levé, alors P(mutex) attend que le sémaphore soit libre, lève le sémaphore et rend la main.
Charge à toi de libérer le sémaphore avec V(mutex) après ton impression, sinon plus personne ne pourra imprimer, tu vas te faire appeler Arthur !
Compris ?
Par exemple ton imprimante. Si plusieurs utilisateurs ou processus envoient des données à l'imprimante en même temps, l'impression risque de ne pas être lisible !.
Pour éviter cela on met en place un sémaphore. Un processus teste le sémaphore avant d'imprimer : fonction P(mutex). Si le sémaphore est libre, alors P(mutex) lève le sémaphore et rend la main, si le sémaphore est levé, alors P(mutex) attend que le sémaphore soit libre, lève le sémaphore et rend la main.
Charge à toi de libérer le sémaphore avec V(mutex) après ton impression, sinon plus personne ne pourra imprimer, tu vas te faire appeler Arthur !
Compris ?
23 mai 2010 à 12:25
Ainsi on initialise le sémaphore à 1 car on a 1 seul imprimante.
Ensuite le processus teste le sémaphore, s'il est à 1 , alors il est libre donc on peut imprimer. Sinon on attend que la sémaphore soit libre. Mais comment on sait que le sémaphore est libre???
Une fois le sémaphore utilisé , on doit le libérer. C sa???
Une autre question mais si on a 4 imprimante alors comment faire????