• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 18 giugno 2015

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 18 giugno 2015"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 18 giugno 2015

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.

Non usare system o popen o simili! Non fare exec di “ssh -c”.

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

Usando signalfd (e non signal o sigaction) scrivere due programmi tx e rx.

Rx deve essere attivato per primo e per prima cosa stampa il suo pid e aspetta.

Tx ha due parametri: il pid del ricevente rx e una stringa. Rx deve stampare la stringa passata come secondo parametro a Tx e uscire. La stringa deve essere spedita usando solo segnali. Ogni bit di ogni carattere deve essere inviato usando SIGUSR1 se vale 1 e SIGUSR2 se vale 0. Al ricevimento di ogni bit rx spedisce un segnale di acknowledgment a tx che provvede a spedire il successivo.

Esercizio 2: completamento (10 punti)

SI costruiscano due programmi txtime e rxnull per stimare l'efficienza di tx e rx. Rxnull e' uguale all'rx precedente ma non stampa nulla.

Txtime ha come parametri il pid del ricevente e un numero intero n. txtime deve spedire n caratteri 'K' al txnull e alla fine deve stampare il tempo medio impiegato per spedire n carattere.

Esercizio 3: Script bash o Python: (10 punti):

Scrivere un programma python o uno script bash che conti il numero dei file eseguibili presenti nella directory passata come parametro catalogandoli per tipo di interprete. (se il file e' di testo si guarda cio' che segue #! nella prima riga, tutti quelli che non iniziano con #! contateli come generici “exec”)

$ contaexec /usr/bin /bin/bash: 20 /usr/bin/env: 10 exec: 12

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 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

All'attivazione scrive nel file il proprio pid e aspetta un segnale sigusr1.Quando riceve il segnale legge Anche in questo esercizio occorre usare solo la signalfd e non la signal o

Scrivere un programma python o uno script bash che scandisca il sottoalbero relativo alle directory passate come parametri (o alla direcotry corrente se non ci sono parametri)

mytar crea il file indicato come secondo parametro e registra in esso tutti i file regolari presenti nella directory (ddd nell'esempio).. Ogni

se dir1 contiene i file pippo, pluto e paperino e la directory paperopoli e quest'ultima contiene i file paperino, qui quo e qua, all'interno di dir2 divranno essere contenuti

Scrivere un programma che stampi il numero di inode di ogni file presente in una direcotory passata come argomento (o della direcotry corrente se il programma viene chiamato

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 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