[pso] [tema2] Sincronizare

Vlad Albulescu mrkane27 at yahoo.com
Wed Apr 8 13:17:09 EEST 2009


Este ok daca in loc de sincronizare am facut ca dispozitivul sa nu suporte mai multe deschideri simultane? (-EBUSY la open() la urmatoarele)
Am ales abordarea asta pentru ca fiind vorba de o seriala, intercalarea fluxurilor de octeti de la doua procese ar fi oricum a bad idea.
In contextul in care cel mult un proces are dispozitivul deschis at any time, write/read si ISR-ul se sincronizeaza cu variabila aceea atomica si lucreaza in parti diferite ale bufferelor, si n-ar trebui sa fie o problema.


--- On Wed, 4/8/09, Razvan Deaconescu <razvan.deaconescu at cs.pub.ro> wrote:
From: Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>
Subject: Re: [pso] [tema2] Sincronizare
To: "Proiectarea Sistemelor de Operare" <pso at cursuri.cs.pub.ro>
Date: Wednesday, April 8, 2009, 11:40 AM

On Wed, 2009-04-08 at 11:04 +0300, Cristian Sandescu wrote:
> Salutare,
> 
>  
> 
> Imi pun problema daca este necesara sincronizarea accesului la
> bufferele kernel cu un spinlock ceva.
> 
> Teoretic nu ar trebui sa existe instructiuni care sa modifice acelasi
> index din buffer, deci nu ar fi nevoie (avand in vedere ca intrarea in
> rutinele de r/w se face secvential).

In general depinde de implementare. Recomandam folosirea unui semafor
pentru accesul exclusiv la rutina de read si write (un singur proces are
acces). Buffer-ele kernel vor fi, astfel, accesate din rutinele
respective de un singur proces si din ISR. Primitivele de acces exclusiv
pot fi evitate prin folosirea de variabile atomice.

Razvan


_______________________________________________
pso mailing list
pso at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/pso



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20090408/adb087bb/attachment.htm>


More information about the pso mailing list