Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica

Home | Avvisi | Diario Lezioni | Esercitazioni | Esami | Materiale Didattico | Valutazioni Studenti | Lezioni di Camil Demetrescu |

Palestra P6: preparazione per l’esercitazione T6

Esercizio 1

La funzione C int is_punctuation(char c), contenuta nel fileE1-punt/e1.c, verifica se il suo parametro c è un carattere di punteggiatura preso da una lista limitata. Scrivere una versione ottimizzata della funzione nel file E1-punt/e1_sol.c. Usare il main di prova nella directory di lavoro.

Confrontare con il comando time le prestazioni ad esempio sul testo della Costituzione della Repubblica Italiana, come nel seguente esempio

> time ./e1 costituzione_italiana.txt 
Caratteri di punteggiatura: 262 su 88975 (0.29%) in costituzione_italiana.txt

real	0m2.548s
user	0m2.541s
sys	0m0.003s
> time ./e1-sol costituzione_italiana.txt 
Caratteri di punteggiatura: 262 su 88975 (0.29%) in costituzione_italiana.txt

real	0m1.329s
user	0m1.325s
sys	0m0.003s
> 
Esercizio 2

Si vuole simulare un sistema software (puramente astratto) basato su una lista in cui agenti possono inviare azioni da compiere (accept) e il sistema mano mano le elimina dopo avere effettuate (purge). La simulazione si svolge nella funzione void run(int trials, int *accepted, int *purged) nel file E2-Loaad_Balancing/e2.c alternando carico e scarico per trials volte.

Scrivi una versione ottimizzata del file e2.c nel file e2_opt.c. Profila innanzitutto la funziona più costosa con gprof nel programma originale e agisci di conseguenza. Puoi modificare solo e2_opt.c e nessun altro file del repository.

Codice e soluzioni