• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 22 giugno 2018

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 22 giugno 2018"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 22 giugno 2018

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 “ssh -c”.

Esercizio 1: Linguaggio C (obbligatorio) 20 punti

Lo scopo di questo esercizioè di scrivere msleep. msleep si comporta come sleep(1) ma invece di attendere il numero di secondi indicati come parametro deve aspettare il numero di millisecondi indicati come parametro.d es:

msleep 2340

completa la sua esecuzione in 2340 millisecondi alias 2.34 secondi.

La msleep deve essere implementata usando i timerfd (v. timerfd_create(2)).

Esercizio 2: Linguaggio C: 10 punti

Estendere la soluione dell'esercizio 1: mmsleep (multimsleep) ammette molteplici parametri.

msleep 1234 3456 2345

allo scadere di 1234 millisecondi stampa 1234, allo scadere di 2345 millisecondi stampa 2345 e infine a 3456 millisecondi dalla attivazione stampa 3456 ed esce.

Questo programma deve essere implementato creando un timerfd per ogni parametro e usando poll(2) per aspettare il prossimo evento.

Esercizio 3: Python: (10 punti):

Scrivere una shell minimale in Python usando la subprocess.run con parametro shell=False.

La shell deve eseguire comandi con o senza parametri e terminare con logout o fine del file di input (^D).

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

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

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

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,

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