ARCHITETTURA DI SISTEMI OPERATIVI 28 Febbraio 2000 1. Realizzare il seguente grafo di precedenza con i costrutti cobegin-coend 1 2. In un sistema UNIX cosa produce il comando mv /home/pippo /usr/pluto? Come viene effettivamente realizzato? Questa funzione è indipendente dalla appartenenza dei due pathname a file system differenti? 3. Che cosa produce il comando ls ab?*.c[134-6]|wc? Ed il comando ls –l \ /dev|grep ^c|wc? 4. Implementazione di un monitor sveglia 5. Implementare uno shell script che produca il seguente output: 1 23 456 7 8 9 10 …… e che si interrompa (opzionale: dopo aver stampato una riga completa) quando l’utente digita CTRL-C. 6. Implementare un programma awk che prenda come input l’output dello shell script precedente e produca in uscita la media dei valori presenti in ciascuna colonna del file. PROGETTO DI SISTEMI OPERATIVI 28 Febbraio 2000 Si implementi in linguaggio C un programma che realizzi un centralino aziendale con le seguenti caratteristiche: può servire al massimo 10 comunicazioni contemporaneamente può servire al massimo 5 comunicazioni in entrata contemporaneamente può servire al massimo 5 comunicazioni in uscita contemporaneamente Il padre, che si comporta da centralino, crea N figli corrispondenti agli utenti interni ed M figli corrispondenti agli utenti esterni. Ciascun utente interno aspetta un numero A (random) di secondi e poi effettua una chiamata per un utente esterno (1-M random) della durata di D (random) secondi. La stessa cosa avviene per gli utenti esterni che chiamano gli interni. La chiamata deve essere realizzata creando una apposita pipe che sarà utilizzata dai due processi per scambiarsi il proprio pid e sarà distrutta alla fine di ogni chiamata. Il processo chiamante produce in output una riga contenente tutte le informazioni utili a verificare la correttezza del programma: il proprio pid, il numero del destinatario, il pid che il destinatario gli restituisce come contenuto della chiamata. Il processo centralino produce in output ogni 15 minuti la statistica del traffico in ingresso ed in uscita in termini di numero totale di chiamate e loro durata media. PROGETTO DI SISTEMI OPERATIVI 28 Febbraio 2000 1. Data la seguente stringa di riferimenti a pagina: 1234531154323345241345 calcolare il demand point per la strategia Page Fault Frequency con parametro di controllo C=3. 2. Illustrare le caratteristiche ed il tipico uso della system call popen. 3. Descrivere il funzionamento della crittografia a chiave pubblica? Come vengono scelte le chiavi? 4. Quali link sono previsti per il file system di Unix. Elencare vantaggi, svantaggi e limitazioni conosciuti.