[so] [tema2] Ordinea procesarii mesajelor

Iulian Moraru iulian at gmail.com
Fri Nov 9 09:47:58 EET 2007


Sunt de acord ca nu ai cum sa controlezi in ce ordine vor pune doi
(sau mai multi) clienti mesajele in coada, dar asta nici nu conteaza.
Tot ce conteaza este ordinea in care sunt la un moment dat mesajele in
coada (care din moment ce coada este FIFO este chiar ordinea in care
au fost efectiv puse).
Enuntul a fost formulat asa dintr-un singur motiv: ordinea in care
serverul primeste mesajele este o formulare ambigua pentru cozile de
pe Linux. Cand spui ca serverul primeste un mesaj inseamna ca te
referi la operatia de receive, ori pe Linux un proces poate alege sa
scoata din coada mesaje in functie de tip. Cu alte cuvinte, ordinea in
care serverul primeste mesaje din coada poate fi (in functie de
alegerea serverului) alta decat ordinea mesajelor in coada.

Iulian


On Nov 9, 2007 8:08 AM, Lucian Adrian Grijincu
<lucian.grijincu at gmail.com> wrote:
> "Operatiile pe care le face serverul trebuie sa respecte ordinea temporala a
> trimiterii mesajelor clientilor"
>
> nu ar trebui sa fie formulat ca
>
> "Operatiile pe care le face serverul trebuie sa respecte ordinea temporala a
> primirii mesajelor pe server"?
>
>
> Daca nu, care este "ordinea temporala a trimiterii mesajelor clientilor" in
> cazul unui sistem cu doi clienti:
>
> C1 pregateste mesajul M1
> C2 pregateste mesajul M2
> C2 este preemptat in kernel dupa ce a chemat syscallul care pune mesaje in
>     coada, dar inainte ca mesajul sa fie plasat in coada
> C1 este preemptat in kernel dupa ce a chemat syscallul care pune mesaje in
>     coada, dar inainte ca mesajul sa fie plasat in coada
> C2 primeste controlul dupa terminarea syscallului si continua executia
> C1 primeste controlul dupa terminarea syscallului si continua executia
> ?
>
> Aceeasi intrebare pentru un sistem multicore in care N clienti executa in
> paralel codul de pregatire a mesajelor si apelul syscallului de plasare a
> mesajelor in coada.
> --
> Lucian
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>


More information about the so mailing list