• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 19 settembre 2012

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 19 settembre 2012"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 19 settembre 2012

Esercizio 0 (“Se copiate, vi cacciamo”)

Rendete la vostra directory home inaccessibile ad altri utenti (sia in lettura che in esecuzione). Rimuovete tutti i file che vi appartengono dalla directory /public.

Esercizio 1: Linguaggio C (obbligatorio): (20 punti)

Scrivere un programma cpinout che copi i dati letti dal file standard input nel file standard output e che:

– al ricevimento del segnale SIGUSR1 indichi sul file standard error quanti byte sono stati copiati al momento attuale – mostri la propria attivita' sovrascrivendo un carattere (stampando –, \, |, / e poi ritornando a – per dare l'iimpressione

di un'asta che gira.

Provate il programma con un comando come:

cat /dev/zero | ./cpinout | cat >/dev/null

da un altro terminale poi mandate segnali con kill -USR1 xxxx, dove xxx e' il umero del processo cpinout Esercizio 2: completamento (10 punti)

Completare l'esercizio 1:

– ogni secondo deve indicare i byte trasferiti (sempre su stderr)

– alla fine deve calcolare la media di dati trasferiti (byte totali / tempo di esecuzione).

Per provare:

dd if=/dev/zero count=1000000 bs=1000 status=noxfer | ./a.out | cat >/dev/null Esercizio 3: Script bash o Python: (10 punti):

Scrivere uno script bash o un programma python che presi in input un file e una directory fornisca la lista dei file nella directory e in tutto il sottoalbero generato che hanno lo stesso tipo del file (cioe' tutti i file per i quali il comando “file” fornisca lo stesso output)

es:

$lsametype file.c /tmp/test f1.c

helloworld.c

(sono tutti di tipo “C source, ASCII text”) Esercizio 4: (“Consegnate! E’ ora!”):

Consegnare lo script e il sorgente del programma C, in attachment separati, entro il tempo a disposizione, via e-mail a: renzo chiocciola cs.unibo.it. Il subject del mail deve essere uguale a PROVAPRATICA, i nomi dei file in attachment devono contenere il vostro cognome (per evitare confusioni in fase di correzione).

INOLTRE:

Se volete che il vostro lavoro venga giudicato, lasciate aperta la vostra sessione (incluso il vostro editor) e lasciate il laboratorio. Verrete richiamati uno alla volta per una breve discussione sul vostro elaborato.

Riferimenti

Documenti correlati

se esiste miofile.9 deve essere rinominato in miofile.10 se esiste miofile 8 deve essere rinominato in miofile 9 e cosi' via fino a miofile.2, rinominato miofile 3. ora se miofile.1

l'ouput significa che se contiamo tutti i caratteri contenuti nella prima riga di tutti i file in mydir otteniamo 234 (mydir/file1 puo' avere 40 caratteri nella prima riga,

lancian deve essere completato in modo che lo standard output di tutti le copie venga unificato ed emesso come standard output del programma lancian, in modo ordinato: l'intero

Lo script o il programma python da realizzare deve fornire l'occupazione totale in byte dei file della directory corrente che corrispondono alla espressione regolare passata

Lo script o il programma python prende il nome di una directory come parametro e deve listare i file nella directory che hanno un file corrispondente con nome scritto al contrario

Creare uno script o un programma python in grado di creare file con contenuti casuali e sequenze di byte nulli: l'eseguibile risultante deve avere un numero variabile di parametri,

Alla fine il file passato come parametro deve mantenere il proprio contenuto ma le aree inutilizzate (blocchi da 1K completamente a 0) devono essere non allocati.. Per provare

Il programma deve cercare i file .c e .h presenti nelle due directory evidenziando quali sono presenti in una sola