• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 19 giugno 2019

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 19 giugno 2019"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 19 giugno 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

Normalmente se un processo è orfano l'exit status viene ricevuto da init o systemd (processo 1).

Usando l'opzione PR_SET_CHILD_SUBREAPER della system call prctl(2) è possibile cambiare questo comportamento.

Scrivere un programma che crei un processo figlio e uno nipote (tramite fork). Fare in modo che termini prima il figlo e poi il nipote.

Il programma deve mostrare che con prctl/PR_SET_CHILD_SUBREAPER la terminazione del nipote viene rilevata dal nonno.

Esercizio 2: Linguaggio C: 10 punti

Tramite l'opzione PR_SET_NAME sempre di prctl fare in modo che con il comando "ps -Leo pid,comm"

i nomi dei tre rpocessi creati dall'esercizio 1 compaiano con nome "nonno","figlio" e "nipote".

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

Scrivere un programma python o uno script bash che calcoli il numero di righe presenti in tutti i file .c, .h, e Makefile (o makefile).

Prima deve stampare ogni per ogni file .c il numero di righe, poi il totale righe per tutti i file .c, similmente per i file .h e i makefile e alla fine il totale generale;

e.g.

primo.c 100 secondo.c 150 dir/terzo.c 120 tot .c 370 primo.h 10 dir/terzo.h 24 tot .h 34 Makefile 44

dir/makefile 22 tot Makefile 66 tot source 470 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 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

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