[so2] [Tema2][Linux] Întrebare despre locking şi KFIFO

Daniel Baluta daniel.baluta at gmail.com
Tue Apr 2 22:03:40 EEST 2013


2013/4/2 Florin-Alexandru Stancu <niflostancu at gmail.com>:
> Salut,
>
> [ Tema 2, Linux ]
>
> Întrebare: dacă folosesc KFIFO pentru bufferele de intrare/ieşire, mai
> trebuie să folosesc lock-uri ?
> În documentaţie scrie că, dacă avem un singur scriitor şi un singur cititor,
> nu mai trebuie sincronizat accesul.
Corect.
>
> Să luăm cazul intrării (citirii de la UART). Întreruperea nu se poate
> executa de mai multe ori simultan, deoarece vine de la un singur device şi
> acesta nu va mai emite întreruperi până se termină cea curentă. Mai rămâne
> întrebarea dacă pot exista mai mulţi cititori ai bufferului de intrare...
> Adică, poate acelaşi program apela 2 read()-uri din userspace, simultan (din
> mai multe threaduri / programe clonate?). Dacă da, oricum rezultatul acestei
> operaţiuni este nedeterminist, deci... mai trebuie să asigur accesul
> exclusiv la buffer?
>
> La fel şi pentru situaţia în care un utilizator va scrie în buffer şi
> întreruperea de IDLE va trimite controllerului datele din buffer... avem
> iarăşi doar o instanţă a cititorului şi una a scriitorului, deci nu mai
> trebuie lock-uri.
>
> Este bine ? Sau tot trebuie folosite lock-uri?

E ok ce zici. În cazul de faţă nu trebuie lock-uri.

thanks,
Daniel.


More information about the so2 mailing list