Giugno 2000
PROVA SCRITTA
DI
FONDAMENTI DI INFORMATICA
PER CIVILI & MATERIALI
Ad una ipotetica centralina telefonica sono connessi N utenti ciascuno identificato da un numero telefonico di 7 cifre.
La centralina e' gestita da un processo P che ha il compito di abilitare e tassare le chiamate degli N utenti.
Ciascun utente puo' madare dei messaggi in cui viene specificato il proprio numero telefonico, quello del destinatario e un codice 'CALL' all' avvio della chiamata e 'CLOSE' alla chiusura della chiamata:
Struct message
{
int code; // Call, Close;
char source[7];
char destination[10] ;
}
Ogni utente ad ogni CALL deve far corrispondere una CLOSE prima di poter effettuare una nuova chiamata.
Il processo P riceve i messaggi da una coda fifo Q e li deve smistare, se corretti, su quattro code fifo A,B,C,D in base al numero di destinazione (su A quelli i cui primi due numeri del destination sono 72, su B quelli i cui primi due numeri del destination sono 31, su C quelli i cui primi due numeri del destination sono 42, su D quelli i cui primi due numeri del destination sono 00).
Il processo P per ogni utente deve tenere il conteggio delle chiamate concluse (CALL-CLOSE) e l'addebito (in numero di scatti) delle varie chiamate effettuate che va calcolato in base al seguente schema:
1scatto+1scatto/60 sec
Codificare il programma in linguaggio C