Difference between revisions of "Prove scritte 2023"
Jump to navigation
Jump to search
SpookyWiki (talk | contribs) (Created page with "= Parziale 2023/01/20 = == Esercizio c2 == Dato un servizio di message passing asincrono implementare un servizio di message passing sincrono a scambio che prevede una sola...") |
SpookyWiki (talk | contribs) |
||
Line 9: | Line 9: | ||
=== Soluzione proposta 1 === | === Soluzione proposta 1 === | ||
− | Proposta da [[User: SpookyWiki |SpookyWiki]] ([[User talk:SpookyWiki|talk]]) | + | Proposta da [[User: SpookyWiki |SpookyWiki]] ([[User talk:SpookyWiki|talk]]) 16:55, 17 May 2023 (CEST) |
<syntaxhighlight lang=C> | <syntaxhighlight lang=C> |
Revision as of 15:55, 17 May 2023
Parziale 2023/01/20
Esercizio c2
Dato un servizio di message passing asincrono implementare un servizio di message passing sincrono a scambio che prevede una sola chiamata:
T xchange(T msg, pid_t dest)
dove T è un tipo generico (potrebbe essere int, string, struct mystruct). Il parametro dest non può essere ANY. Quando il processo P chiama xchange(m1, Q) e il processo Q chiama xchange(m2, P) entrambi i processi vengono riattivati, la xchange chiamata da P restituirà m2 mentre la xchange di Q restituirà m1.
Soluzione proposta 1
Proposta da SpookyWiki (talk) 16:55, 17 May 2023 (CEST)
T xchange(T msg, pid_t dest) {
asend(msg, dest);
return arecv(dest);
}