Un dispositivo di rete D e’ costituito da N porte, ciascuna utilizzabile sia per ricevere che per trasmettere messaggi del tipo:
Struct messaggio
{
int
destinazione;
char *dati;
int
selezione ;
}
dove destinazione indica la porta di uscita su cui deve essere inoltrato il messaggio e dati e’ una stringa di testo contenente le informazioni del messaggio.
Il dispositivo D deve monitorare in continuazione le sue porte per smistare correttamente i messaggi in ingresso.
Sono presenti altri due processi.
Il processo A si occupa di osservare in continuazione le porte dispari (1, 3, 5, …) da cui estrae i messaggi in uscita e li inserisce in base al campo selezione all’interno di un albero binario di ricerca.
Il processo B osserva in continuazione le porte pari (2, 4, 6, …) e, sempre in base al campo selezione, provvede ad inserire i messaggi in uscita all’interno di una lista doppiamente concatenata.
Definire la struttura dati e codificare il programma in linguaggio C.