[so] semafoare

Octavian Purdila so@atlantis.cs.pub.ro
Thu, 13 Nov 2003 18:05:51 +0200


On Thu, 13 Nov 2003 16:31:07 +0200, dinca radu <radu_d@k.ro> wrote:

>
> Pai am o locatie de memorie in care imi pun "mutex-ul" meu virtual 
> ...daca
> locatia respectiva e 0 atunci mi se da acces la frigider , altfel 
> programul
> asteapta sa se faca locatia 0. De ce nu mi s-ar functiona ?
>
>

Trebuie sa ai garantia ca citirea si scrierea din "mutex-ul virtual" se 
fac atomic.
Sunt multe motive pentru care citirea si scrierea in "multex-ul virtual" 
ar putea sa nu fie
atomice:
- optimizari de compilator
- optimizari in procesor
- executie paralela in procesor
- cvasi-paralelismul oferit de SO pentru procese
- sisteme SMP

In al doilea rand, daca tu astepti ca locatia sa se faca 0 fara a folosi
semafoare & stuff, o sa o faci busy wating.