• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 16 luglio 2019

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 16 luglio 2019"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 16 luglio 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.

Il file /public/socktest.c è il sorgente di un programma che crea una connessione TCP con la macchina locale a porta 2222. E' possibile testarlo con netcat. Se aprite due shell, nella prima digitate:

nc -l -p 2222 nella seconda socktest

potete scrivere ora una riga di testo nella seconda finestra e comparira' nella prima, poi scrivendo una riga nella prima compare nella seconda ed enrambi i programmi terminano.

Scopo di questo esercizio è di trasformare/completare il sorgente in modo che diventi una chat fra i due terminali... ogni riga scritta nella prima finestra deve comparire nella seconda e viceversa.

Terminando uno dei due programmi, termina anche l'altro.

Occorre consegnare due versioni del programma: la prima deve fare uso della system call select, la seconda versione deve usare la system call poll.

Esercizio 2: Linguaggio C: 10 punti

Scrivere una terza versione del programma dell'esercizio 1 facendo uso delle system call epoll_create/epoll_ctl/epoll_wait

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

Scrivere un programma python o uno script bash che cerchi tutti i file con uguale contenuto in una directory. I file con lo stesso contenuto devono diventare link fisici a un unico file.

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

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

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

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

deve creare il file 'file1' recuperando il contenuto dal file generato da myt2 dell'esercizio1 Esercizio 3: Script bash o Python: (10 punti):. Il comando che dovrete implementare

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

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

Esercizio 1 Linguaggio C (obbligatorio): (25 punti) Scrivere il programma lanciatutto che esegua in modo concorrente tutti i file “eseguibili” della directory corrente passando

Il programma deve consentire di porre l'output in un file diverso dallo standard output tr amite un parametro -o oppure --out seguito dal nome del file. Esercizio 3 Script: (10