• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 17 gennaio 2020

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 17 gennaio 2020"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 17 gennaio 2020

Esercizio 0 (“Se copiate, vi cacciamo”)

Rendete la vostra directory home inaccessibile ad altri utenti (sia in lettura che in esecuzione). Si puo’

tenere una sola directory in /public che abbia come nome il vostro username e.g.

“/public/giovanni.rossi” e che abbia permessi 700.

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

Esercizio 1: Linguaggio C (obbligatorio) 20 punti.

Scrivere un programma searchlink che dati due parametri (nell'ordine un file f ed una directory d) metta in output l'elenco dei path all'interno dell'albero che ha radice in d che fanno riferimento ad f o come link fisico o come link simbolico.

es:

searchlink myfile mydir link a

link d/b symlink e/s

significa che dir/a e dir/d/b si riferisono a f come link fisici mentre dir/e/s e' un link simbolico che punta ad f.

Esercizio 2: Linguaggio C: 10 punti

Estendere il programma precedente in modo che accetti le seguenti opzioni:

-c copia il file originale al posto di tutti i link -l trasforma tutti i link in link fisici

-s trasforma tutti i link in link simbolici Esercizio 3: Python o bash: (10 punti)

Scrivere un programma python o uno script bash che consenta di lanciare parallelamente comandi para.py sleep 20 // ls -l // ps // sleep 3

para.sh sleep 20 // ls -l // ps // sleep 3

deve eseguire concorrentemente i vari comandi separati da // e aspettare la terminazione di tutti

Esercizio 4: (“Consegnate! E’ ora!”):

Consegnare lo script e il sorgente dei 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 che per ogni file .c nella directory corrente chiami il compilatore gcc per generare il file oggetto (.o) a meno che esista gia' nella directory un file

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

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,

L'informazione puo' essere trovata scandendo la directory proc, infatti ad ogni processo attivo corrisponde una directory in /proc che ha come nome il numero del processo (ad

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