Giugno 2000

PROVA SCRITTA

DI

FONDAMENTI DI INFORMATICA

PER ELETTRONICI

 

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 alla seguente tabella:

    chiamata in zona A B,C D

    1scatto+1scatto/60 sec 1scatto+1scatto/45 sec 2scatti+1scatto/10 sec.

    Codificare il programma in linguaggio C