• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 18 settembre 2019

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 18 settembre 2019"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 18 settembre 2019

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 para per lanciare parallelamente comandi para sleep 20 // ls -l // ps // sleep 3

deve eseguire concorrentemente i vari comandi separati da // e aspettare la terminazione di tutti Esercizio 2: Linguaggio C: 10 punti

estendere para a paran che ha un parametro che indica il numero massimo di esecuzioni concorrenti:

paran 3 sleep 20 // ls -l // ps // sleep 3

al max esegue 3 comandi in parallelo, quindi esegue i primi 3 comandi, qundo uno fra essi termina ne attiva un successivo e cosi' via.

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

Scrivere un programma python o uno script bash che faccia l'elenco dei pathname in un sottoalbero che sono link fisici fra loro:

e.g.

searchln mydir

mydir/a mydir/d/b mydir/qq mydir/uno mydir/due

significa che i path mydir/a mydir/d/b mydir/qq fanno riferimento allo stesso file, cosi' come mydir/uno mydir/due indicano uno stesso file (diverso dal precedente).

Nel sottoalbero possono esserci molteplici altri file, se hanno un solo nome non vengono indicati nell'output.

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

Il programma deve poter prendere una lista di file come parametri o nessun parametro, nel qual caso invecchierà tutti I file della directory corrente.. “invecchiare”

Ogni altro tipo di file che non sia file ordinario o directory (e.g. socket, named pipe, file speciali, link simbolici) devono essere ignorati.. Esercizio 2: Linguaggio C:

Scrivere un programma che trovi fra tutti i file all'interno di un sottoalbero tutti I link simbolici che puntano a file o directory inesistenti. Esercizio 4: (“Consegnate!

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

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,

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