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