• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 31 maggio 2016

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 31 maggio 2016"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 31 maggio 2016

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

Scrivere un programma che preso come parametro a linea comando il path di una directory elenchi solamente I file che hanno un nome che ha come suffisso un numero (es. Prova.10). I file devono essere ordinati in ordine numerico.

Esempio se la directory test contiene I file

prova5, giovanni, aaa.1000, bb.2000, ccc.dd.500 l'output del programma deve essere:

ccc.dd.500 aaa.1000 bb.2000

(in quanto 500 numericamente e' minore di 1000, prova5 non si considera: manca il punto prima del numero).

Esercizio 2: Linguaggio C: 10 punti completamento es 1.

Come nell'esercizio 1 occorre cercare in una directory (passata come parametro) I file che hanno come suffisso un numero. Nell'esercizio 2 I file sono eseguibili e l numero indica il numero di millisecondi da attendere a partire dalla attivazione del programma prima di attivarli.

Nell'esempio dell'esercizio precedente occorre aspettare mezzo secondo e lanciare ccc.dd.500, poi a 1 secondo dall'attivazione (cioe' dopo approssimativamente ulteriori 0.5 secondi) si lancia aaa.1000 e allo scadere del secondo secondo bbb.2000.

I file eseguibili nella directory vengono eseguiti in background (non si attende la fine dell'esecuzione per continuare). Quindi se due file hanno lo stesso prefisso numerico vengono eseguiti in modo concorrente.

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

Svolgere l'esercizio 2 in bash o in python (ovviamente scrivendo la logica risolutiva in bash o in python, senza eseguire un programma scritto C, per esempio quello dell'esercizio 2)

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

Scrivere un programma python (o uno script bash) che dato come parametro il pathname di una directory ponga in output il numero dei file e delle directory contenute nel

Creare I file printgroupdir.c, printgroupdir.h e un file testpgd.c contenente un programma principale che prenda come argv[1] e argv[2] i due parametri della funzione.. Produrre

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

Quindi il programma “dovrebbe” stampare una riga di log per ogni file o directory creata o cancellata in tutto il sottoalbero che ha nella directory-base la radice.. Nota:

Il risultato del programma, stampato su standard output, deve essere un solo numero intero: la somma del numero di caratteri presenti nelle n-me colonne di tutti i file regolari,

Il risultato del programma, stampato su standard output, deve essere un solo numero intero: la somma del numero di caratteri presenti nelle n-me righe di tutti i file regolari,

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,

In particolare il programma deve eseguire una fork, quando l'utente digita un numero letto dal processo padre, il processo figlio deve stampare un numero uguale di x.. (negli esempi