• Non ci sono risultati.

Prova Pratica di Laboratorio di Sistemi Operativi 21 settembre 2018

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica di Laboratorio di Sistemi Operativi 21 settembre 2018"

Copied!
1
0
0

Testo completo

(1)

Prova Pratica di Laboratorio di Sistemi Operativi 21 settembre 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 un programma che usando la system call signalfd quando riceve un segnale SIGUSR1 o SIGUSR2 scriva in un file della directory corrente con nume uguale al pid del processo che ha inviato il segnale, il tipo di segnale ricevuto e l'ora esatta di ricezione del segnale. (se il file non esiste deve essere creato).

un esempio di file risultante potrebbe essere:

$ cat 20231

USR1 Fri Sep 21 10:40:56 CEST 2018 USR1 Fri Sep 21 10:40:58 CEST 2018 USR2 Fri Sep 21 10:41:26 CEST 2018 Esercizio 2: Linguaggio C: 10 punti

Dato un estratto di un file di log come questo:

Sep 20 19:58:32 eipi ntpd[2051]: Listen normally on 99 eth0 [fe80::8456:a70]:123 Sep 20 19:58:32 eipi ntpd[2051]: new interface(s) found: waking up resolver Sep 20 19:58:34 eipi ntpd[2051]: Soliciting pool server 151.3.106.211

Sep 20 19:58:35 eipi ntpd[2051]: Soliciting pool server 94.177.187.22 Sep 20 19:58:48 eipi ntpd[2051]: Soliciting pool server 80.211.155.206 Sep 20 19:58:49 eipi ntpd[2051]: Soliciting pool server 212.45.144.206 Scrivere un programma che lo mostri alla stessa velocita' allla quale e' stato generato.

In questo caso dovrebbe scrivere le prime dur righe, attendere 2 secondi, mostrare la terza, dopo un secondo la quarta quindi dopo una attesa di 13 secondi la quinta e la sesta dopo un ulteriore secondo.

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

Scrivere un programma python o uno script bash che trovi in un sottoalbero tutti i file che hanno come primi caratteri '#!' e produca una tabella che elenchi tutti i pathname dei file trovati catalogando insieme i file che hanno la stessa prima riga di testo.

es:

#!/bin/bash: first.sh myscript

#!/usr/bin/env python: prog.py 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 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 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 scandisca il sottoalbero relativo alle directory passate come parametri (o alla direcotry corrente se non ci sono parametri)

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

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,