[so2] [Tema2] SMP Safety

Daniel Nicolescu daniel.nicolescu10 at gmail.com
Fri Apr 3 20:00:30 EEST 2020


Mulțumesc!

On Fri, Apr 3, 2020, 19:53 Daniel Baluta <daniel.baluta at gmail.com> wrote:

> On Fri, Apr 3, 2020 at 6:21 PM Daniel Nicolescu via so2
> <so2 at cursuri.cs.pub.ro> wrote:
> >
> > Salut,
> >
> > Cum ar trebui tratat următorul scenariu?
> > * 2 thread-uri diferite fac read în mod concurent, iar bufferul pentru
> citire este gol
> > * ambele apeluri de read se blochează
> > * apare înreruperea de la hardware și se pun date în bufferul de citire
> și se notifică thread-urile care au intrat în sleep și așteaptă să citească
> > * ambele thread-uri se trezesc în același timp și încearcă să citească
> datele din buffer; vor exista probleme de sincronizare
>
> In teorie, dupa ce ambele threaduri se trezesc ar trebui sa incerce se
> reacapareze spinlock-ul.
> Si doar thread-ul care apuca sa acapareze locul va citi datele din buffer.
>
> In practica, eu as face open-ul exclusiv astfel incat sa nu am doua
> thread-uri care
> citesc in paralel. De altfel, pe linia seriala nici nu are foarte mult
> sens sa ai
> doi readeri. De exemplu daca incerci sa deschizi minicom o sa vezi ca al
> doilea open va esua.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so2/attachments/20200403/4a437a6b/attachment.html>


More information about the so2 mailing list