Sei sulla pagina 1di 3

Laboratorio di Sistemi Operativi – Progetto PSP4

Laboratorio di Sistemi Operativi

Progetto PERL: PSP4 (Perl Simulation of Processes)

Versione 1.0 del 9-04-2010

Introduzione
I moderni sistemi operativi offrono sofisticate funzionalità di multi-tasking che permettono agli utenti finali di
commutare agevolmente tra un'applicazione e un'altra fornendo al tempo stesso un elevato grado di
apparente “parallelismo”.
Queste funzionalità sono assicurate da un componente del sistema operativo noto con il nome di scheduler
che seleziona di volta in volta il processo da inviare in esecuzione, la frequenza e i criteri di avvicendamento
dei processi nell'accesso alla risorsa processore.
Uno degli algoritmi più implementati è l'algoritmo a code multiple.
Maggiori informazioni in bibliografia.

Obiettivo
Si deve realizzare un applicativo PERL che simuli il comportamento di uno scheduler a code multiple.
L'insieme minimo dei parametri che devono essere implementati è il seguente:
– indicazione del numero di processi complessivi da considerare durante la simulazione
– indicazione del numero minimo e del numero massimo di processi che devono essere presenti
contemporaneamente nella coda dei processi pronti
– indicazione della durata minima e massima dei processi
– indicazione della percentuale di attività di I/O rispetto alla durata massima dei processi
– indicazione della durata del quanto di tempo
– indicazione del numero di code di differenti priorità
Una volta specificate queste caratteristiche, l'applicativo deve:
– generare un numero casuale di processi (compreso tra il valore minimo e il valore massimo)
contemporaneamente presenti nella coda dei processi pronti. Si ricorda che il numero massimo
(complessivo) di processi è prefissato;
– generare, per ogni processo, un'alternanza di attività di CPU e di attività di I/O nel rispetto della

Pagina 1 di 3
Laboratorio di Sistemi Operativi – Progetto PSP4

percentuale sopra indicata;


– associare ogni processo ad una coda di priorità;
– simulare l'avvicendamento dei processi nello sfruttamento della risorsa processore (stato di running)
nel rispetto della durata del quanto di tempo prefissato;
– calcolare il tempo medio di attesa per processo al termine della simulazione;
– calcolare la percentuale di utilizzo della CPU al termine della simulazione.

Documentazione:
Il progetto deve essere corredato dalla seguente documentazione:
1. codice sorgente commentato nei punti salienti
2. schema a blocchi (sufficientemente dettagliato) degli elementi progettuali del codice: classi, oggetti,
funzioni, subroutine e loro connessione logica
3. eventuali file di configurazione dell'applicativo
4. manuale d'uso dell'applicativo
5. elenco delle funzionalità realizzate dall'applicativo
6. eventuale documentazione a corredo che lo studente ritenga di accludere
Tutta la documentazione, scritta esclusivamente in formato PDF, TXT, LaTeX o HTML deve essere inserita in
una directory (denominata docs), da allegare al progetto stesso. Non saranno prese in considerazione
documentazioni pervenute in formati differenti da quelli elencati.

Avvertenze generali:
Il progetto deve essere sviluppato in ambiente Unix/Linux/BSD/Solaris/Tiger/Leopard (a scelta dello
studente) e deve essere funzionante in ogni sua parte secondo le specifiche sopra elencate.
L'identificazione di progetti (o parti di esso) sviluppati in ambiente MS Windows causerà l'annullamento del
progetto.

Modalità di presentazione del progetto:


Il presente progetto può essere presentato fino a 48 ore prima dell'appello di esame (come da calendario del
Corso di Laurea) esclusivamente per posta elettronica all'indirizzo giacomo.fiumara@unime.it avendo

Pagina 2 di 3
Laboratorio di Sistemi Operativi – Progetto PSP4

l'accortezza di inserire nel campo subject i seguenti dati:


progetto LSO – PSP4 - <numero matricola> - Nome_e_cognome.
Il progetto deve pervenire, sotto forma di allegato, sotto forma di file compresso in modalità .tar.gz
(evitare .zip, .rar o altre amenità del genere). Al suo interno deve trovarsi: l'applicativo, eventuali file di
configurazione, la documentazione allegata. I progetti consegnati fuori tempo massimo NON saranno presi
in considerazione.

Valutazione e verbalizzazione:
Il progetto verrà valutato fino ad un massimo di 10 punti.

Divieto di plagio:
Ogni progetto, elaborato autonomamente e personalmente da ciascuno studente, deve essere originale.
Codici, o porzioni di codice che verranno identificati come “copiati” da altre fonti comporteranno l'automatica
valutazione negativa del progetto. Fanno doverosamente eccezione a questa norma i riferimenti a moduli,
packages, librerie PERL reperite nei repository pubblici. Il riferimento a detti moduli dovrà essere evidenziato
e quanto non appartenente alla distribuzione PERL “canonica” dovrà essere allegato al momento dell'invio
dell'applicativo per la sua valutazione.

Bibliografia:

Shell Unix, Appunti di Informatica Libera, volume V, parte XXV;

PERL
Appunti di Informatica Libera, volume VI, parte LXXII
www.cpan.org
www.perl.com

Pagina 3 di 3