Difference between revisions of "Prove scritte 2023"

From Sistemi Operativi
Jump to navigation Jump to search
(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...")
 
Line 9: Line 9:
  
 
=== Soluzione proposta 1 ===
 
=== Soluzione proposta 1 ===
Proposta da [[User: SpookyWiki |SpookyWiki]] ([[User talk:SpookyWiki|talk]]) 14:56, 17 May 2023 (CEST)
+
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); 
}