• Non ci sono risultati.

Prova Pratica 016 turno 1 gruppo 1

N/A
N/A
Protected

Academic year: 2021

Condividi "Prova Pratica 016 turno 1 gruppo 1"

Copied!
6
0
0

Testo completo

(1)

Prova Pratica 016 turno 1 gruppo 1

i file da consegnare devono essere collocati nella directory CONSEGNA dentro la home directory dell'utente studente

(2)

Prova Pratica 016 - turno 1 gruppo 1

Download Materiale:

Scaricare il file con le dispense e gli esempi svolti a lezione wget http://esameso.csr.unibo.it/TREE4OS1617.tgz

Decomprimere l'archivio scaricato: tar xvzf TREE4OS1617.tgz

Viene creata una directory TREE4OS1617 con dentro una sottodirectory sistemioperativi con dentro tutto il materiale.

Potete navigare tra il materiale con un normale browser aprendo l' URL

file:///home/studente/TREE4OS1617/sistemioperativi/dispenseSistOp1617.html

Esercizi d'esame: per chi ha difficoltà a superare la prova pratica, ho previsto due tipi di prove:

A. una prova COMPLICATA, e' la modalità normale che vi permette di raggiungere un voto massimo (nella prova pratica stessa) di 30Lode ,

B. ed una prova SEMPLICE, un po' meno complicata, che però vi permette di raggiungere un voto massimo di 24 perché l'esercizio di programmazione concorrente é meno difficile.

Scegliete voi quale prova svolgere in funzione della vostra preparazione.

La prova COMPLICATA è composta dagli esercizi 43 e 44, La prova SEMPLICE è composta dagli esercizi 42 e 44.

Come vedere l'esercizio 44 è comune alle due prove.

(3)

Esercizio Esame Pratica - 42 - piantarepali (semplice)

Tre operai (TienePalo, Martello0 e Martello1) piantano dei pali in un terreno.

L'operaio TienePalo

prende due pali, stampa a video "presi pali", poi impiega un secondo per appoggiali di punta sul terreno, poi tiene stretto i pali, stampa a video "martellare!", e dice agli altri operai di martellare ciascuno su uno dei due pali. Ciascun Martello martella solo sul proprio palo. Uno stesso Martello non può martellare prima un palo e poi l'altro.

Dopo avere ricevuto l'ordine di martellare, due DIVERSI operai MartelloX fanno questo:

ciascuno stampa a video una stringa "martello inizia", comincia a martellare sul proprio palo, per un secondo, ed infine stampa a video una stringa "martello finisce". Occhio, i due martelli quindi possono iniziare a martellare in momenti diversi. Uno stesso Martello non può martellare prima un palo e poi l'altro.

Dopo che entrambi gli operai hanno finito di martellare, l'operaio TienePalo lascia i due pali già piantati, prende altri due pali per farli martellare e così via all'infinito.

Dopo avere martellato su 4 pali, ciascun operaio martellatore si riposa facendo una sleep.

Martello0 si riposa per 5 secondi, Martello1 si riposa per 7 secondi.

Ogni volta che l'operaio TienePalo ha finito di far martellare 5 coppie di pali, l'operaio TienePalo si riposa facendo una sleep di 3 secondi.

Modellare ed implementare il sistema descritto, utilizzando dei thread POSIX per ciascuna figura (TienePalo, Martello0 e Martello1) ed avvalendosi delle opportune strutture dati per la sincronizzazione. Scrivere il Makefile per compilare e linkare i sorgenti. La mancanza del Makefile viene considerato un errore grave. Occorre inserire il controllo di errore nelle chiamate a funzione delle librerie dei pthread. In caso di errore grave, terminare il programma producendo un avviso a video.

(4)

SUGGERIMENTO PRATICO PRELIMINARE

PER CHI VUOLE FARE l' esercizio COMPLICATO

Se avete in esecuzione tanti processi che hanno tutti nome processo.exe

e li volete uccidere tutti,

potete killare tutti quei processi utilizzando il comando:

killall processo.exe

(5)

Esercizio Esame Pratica-43 - piantarepali (complicato)

Tre operai (TienePalo, Martello0 e Martello1) piantano dei pali in un terreno.

L'operaio TienePalo

prende due pali, stampa a video "presi pali", poi impiega 1 secondo per appoggiali di punta sul terreno, poi tiene stretto i pali, stampa a video "martellare!", e dice agli altri operai di martellare ciascuno su uno dei due pali. Ciascun Martello martella solo sul proprio palo.

Uno stesso Martello non può martellare prima un palo e poi l'altro.

Dopo avere ricevuto l'ordine di martellare, due DIVERSI operai MartelloX fanno questo:

ciascuno stampa a video una stringa "martello inizia", comincia a martellare sul proprio palo, per un secondo, ed infine stampa a video una stringa "martello finisce". Occhio, i due martelli quindi possono iniziare a martellare in momenti diversi. Uno stesso Martello non può martellare prima un palo e poi l'altro.

Dopo che entrambi gli operai hanno finito di martellare, l'operaio TienePalo lascia i due pali già piantati, prende altri due pali per farli martellare e così via all'infinito.

Dopo avere martellato su 4 pali, ciascun operaio martellatore si riposa facendo una sleep.

Martello0 si riposa per 5 secondi, Martello1 si riposa per 7 secondi.

Ogni volta che l'operaio TienePalo ha finito di far martellare 5 coppie di pali, l'operaio TienePalo si riposa facendo una sleep di 3 secondi.

Modellare ed implementare il sistema descritto, utilizzando dei PROCESSI per ciascuna figura (TienePalo, Martello0 e Martello1) ed avvalendosi delle opportune strutture dati per la sincronizzazione. Scrivere il Makefile per compilare e linkare i sorgenti. La mancanza del Makefile viene considerato un errore grave. Occorre inserire il controllo di errore nelle chiamate a funzione delle librerie dei pthread. In caso di errore grave, terminare il programma producendo un avviso a video.

(6)

Esercizio Esame Pratica- 44 - script car_ultimariga.sh

Scrivere uno script bash car_ultimariga.sh che comincia cercando tutti i file che posseggono tutte le seguenti caratteristiche:

hanno estensione .h

nel nome compare un carattere f

stanno nella directory /usr/include/linux/ senza cercare nelle sue sottodirectory.

Per ciascun file trovato bisogna:

- trovare il numero delle righe che quel file contiene.

- se il numero delle righe di quel file e' compreso tra 10 e 100 allora

- bisogna stampare a video il numero di caratteri dell'ultima riga di quel file.

Riferimenti

Documenti correlati

Nella sintesi di Renzo Motta, presidente della Sisef, Società Italiana di Selvicoltura ed Ecologia Forestale, non è affatto poco.. "La situazione delle foreste e del legno

Due amici decidono di fare una gara, partendo simultaneamente dagli estremi opposti di una pista lunga 100 m. Il primo percorre la parte iniziale della pista alla velocità

addensando quindi il terreno circostante; a causa dello slump basso, la malta non entra nei pori del terreno ma resta una massa omogenea che permette una compattazione controllata

Per quanto riguarda il calcolo dei pali in zona sismica, le NTC 2008 riprendono, sostanzialmente, tutto quanto detto e introdotto dall’Ordinanza 3274/2003 su pali e fondazioni

6.4.3.3 Verifiche agli stati limite ultimi (SLU) delle fondazioni miste Nel caso in cui il soddisfacimento della condizione (Ed <Rd) sia garantito dalla sola struttura

Il Report of the Review of NHS Pathology Services in En- gland, è stato diffuso il 2 Agosto 2006 insieme al lancio di un programma di 12 progetti pilota per la creazione di network

Codice identificativo del

3 Rosenzweig, pensatore ebreo occidentale, occupa una posizione peculiare per noi che da queste domande vogliamo ricominciare a pensare; innanzitutto perché in