par orange_smell » 02 Déc 2003 15:41
<!-- BBCode Quote Start --><TABLE BORDER=0 ALIGN=CENTER WIDTH=85%><TR><TD><font size=-2>En réponse à:</font><HR></TD></TR><TR><TD><FONT SIZE=-2><BLOCKQUOTE>
<BR>Le 2003-12-02 14:37, tomtom a écrit:
<BR>Tu sais, c'est les bonshmmes qui font des signes pour guider les bateaux....
<BR>ok je --> []
<BR>
<BR>
<BR>Sinon, je rerentre un peu pour essayer d'expliquer....
<BR>Un semaphore est un genre de verrou qui se positionne sur une ressource pour en limiter l'acces.
<BR>Par exemple, une portion de mémoire ne peut être ecrite que par un seul processus à la fois, et en plus il ne faut pas qu'elle soit lue pendant l'ecriture (sinon elle est fausse), par contre elle peut être lue par plusieurs processus en même temps...
<BR>
<BR>Pour controler les acces, on utilise les fameux sémaphores.
<BR>
<BR>Ex : sur ma portion de mémoire, on va positionner 2 sémaphores : 1 pour la lecture, un pour l'ecriture.
<BR>
<BR>Le semaphore pour l'ecriture va etre inittialisé à 1, celui sur la lecture à n.
<BR>
<BR>Si un processus ne peut pas "prendre" de valeur du semaphore, il se positionne en attente.
<BR>
<BR>que se passe-t-il ?
<BR>
<BR>p1 veut ecrire dans R -> Il va decrementer la valeur du semaphore ecriture de 1, et celle du semaphore lecture de N.
<BR>p2 veut lire -> il decremente le semaphore de lecture de 1 et celui d'ecriture de 1
<BR>mais comme la valuer des semaphores est <0, il se met en attente.
<BR>p1 finit d'ecrire -> il recremente les valeurs des semaphores.
<BR>p2 peut donc acceder à la ressource en lecture. Mais il faut noter que personne ne peut ecreire dedans puisque le semaphore d'ecriture est à 0.
<BR>
<BR>
<BR>Voila, le principe de toute ecriture d'acces à des ressources mutualisé consiste dans le bon positionnement des semaphores et la bonne decrementation des semaphores au bon moment.
<BR>
<BR>t.
<BR>
<BR></BLOCKQUOTE></FONT></TD></TR><TR><TD><HR></TD></TR></TABLE><!-- BBCode Quote End -->
<BR>
<BR>Pas idiot, j'avais oublié que même la mémoire était gérée comme ca...
Hiroshima 45.
Tchernobyl 86.
Windows 95, 98, 2000, 2003.........