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

Florin-Alexandru Stancu niflostancu at gmail.com
Tue Apr 2 11:33:02 EEST 2013


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.

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?

Mulţumesc,
Florin Stancu.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20130402/4dc768c6/attachment.html>


More information about the so2 mailing list