<div dir="ltr"><div><div><div><div><div><div><div>Salut,<br><br></div><div>[ Tema 2, Linux ]<br></div><div><br></div>Întrebare: dacă folosesc KFIFO pentru bufferele de intrare/ieşire, mai trebuie să folosesc lock-uri ?<br>
</div>În documentaţie scrie că, dacă avem un singur scriitor şi un singur cititor, nu mai trebuie sincronizat accesul.<br>
<br></div>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?<br>
<br></div>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.<br>
<br></div>Este bine ? Sau tot trebuie folosite lock-uri?<br><br></div>Mulţumesc,<br></div>Florin Stancu.<br><br></div>