Progetto D : Sistema Distribuito

Corso di Sistemi Operativi, AA 2001-2002
Progetto D
Sistema distribuito
Si vuole realizzare un ambiente per la simulazione di un sistema di calcolo distribuito. Il sistema è
costituito da un insieme di computer, ciascuno identificato da un nome. Su ciascun computer lavora
un insieme di utenti, i quali possono richiedere l’esecuzione di applicazioni locali o remote. In
particolare, un utente richiede l’esecuzione di un programma specificando il nome dell’eseguibile
ed il nome del computer su cui l’applicazione deve essere eseguita.
Il sistema è costituito da un insieme di computer. Su ciascun computer sono presenti i seguenti
elementi:
• Il clock, contenente una variabile intera al cui aumentare il simulatore modifica lo stato del
sistema, in modo da descrivere le attività dei diversi componenti.
• Un gestore dei processi, il quale si occupa di gestire le richieste di esecuzione locali e remote.
• Un insieme di processi utente, che effettuano le richieste di esecuzione.
Il simulatore dovrà generare su ciascun computer processi in modo casuale o secondo un ordine
predefinito, attribuendo a ciascuno di essi le seguenti specifiche:
• Un identificativo univoco (un numero progressivo)
• Una o più richieste di esecuzione.
E’ necessario implementare le strutture dati per rappresentare gli elementi del sistema, garantendo
che le operazioni siano, dove necessario, effettuate in modo atomico. A tal fine si può fare uso degli
strumenti standard di Java (metodi synchronized), oppure utilizzare semafori definiti a partire dai
monitor Java.
Possibile alternativa:
Realizzare il simulatore come l’insieme di più applicazioni Java. In particolare ciascun computer
del sistema da simulare sarà rappresentato da una applicazione autonoma, e le diverse applicazioni
autonome comunicano tramite Socket.