Forum by laureateci.it
[ Home | REGOLE FORUM | Tutti i blog | Profilo | Registrati | CHAT | Discussioni Attive | Discussioni Recenti | Segnalibro | Msg privati | Sondaggi Attivi | Utenti | Download Informatica | Download ICD | Download TPS | Download Magistrale | Download Specialistica | Giochi | Cerca nel web | cerca | faq | RSS ]
Nome Utente:
Password:
Salva Password
Password Dimenticata?

 Tutti i Forum
 Cultura Informatica
 Corso di java
 progetto JAVA
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
I seguenti utenti stanno leggendo questo Forum Qui c'è:
Autore Discussione Precedente Discussione Discussione Successiva  

kenz88
Nuovo Utente



Inserito il - 04/05/2010 : 17:05:35  Mostra Profilo  Visita l'Homepage di kenz88 Invia a kenz88 un Messaggio Privato  Rispondi Quotando
Ciao a tutti....mi potreste dare un po di consigli su come fare sto progetto in JAVA?

1.Specifiche generali

Scrivere un programma multithread che simuli la gestione di un disco di I/O in un sistema multiprogrammato e che permetta di valutare le performance, in termini di tempo medio d’attesa e distanza totale percorsa dalle testine del disco, della politica di scheduling del disco detta SSTF (shortest seek time first).
In particolare, il programma dovrà essere costituito da un gestore del disco (GESTORE_DISCO) il quale avrà il compito di gestire e schedulare le richieste di I/O provenienti da un pool di processi concorrenti.
Ogni processo effettuerà una richiesta di I/O specificando il numero del settore del disco al quale intende accedere.
In particolare, il programma dovrà essere costituito da un oggetto condiviso, rappresentante il disco, da un thread rappresentate il gestore del disco, e da un numero arbitrario (n) di thread, rappresentati i processi che effettuano richieste al gestore del disco.
Il programma terminerà quando ogni processo avrà effettuato il proprio numero di richieste (numRic).

2.Politica di gestione del disco SSTF

La politica SSTF (shortest seek time first) ) è un politica di scheduling per brevità e si basa sulla considerazione che risulta conveniente servire tutte le richieste vicine alla posizione corrente della testina prima di spostarla in un’area lontana per soddisfarne altre. Tale politica, quindi, sceglie la richiesta che dà il minimo tempo di ricerca (seek time) rispetto alla posizione corrente della testina; poiché questo tempo aumenta al crescere della distanza dei cilindri dalla testina, l’algoritmo sceglie le richieste relative ai cilindri più vicini alla posizione della testina.

3.Specifiche dell’oggetto DISCO

L’oggetto DISCO sarà un oggetto condiviso tra gli n thread ed il GESTORE_DISCO.
L’oggetto DISCO dovrà emulare un comune disco magnetico e sarà costituito da un numero di cilindri pari a 1000. Ogni cilindro, a sua volta, sarà costituito da 1000 settori per un totale di 1000000 di settori. In particolare, i settori saranno numerati in modo progressivo così che, ad esempio, il cilindro numero 3 conterrà i settori di indice compreso tra 3000 e 3999, il cilindro numero 4 conterrà i settori di indice compreso tra 4000 e 4999 e così via.
Il disco sarà caratterizzato da un tempo di ricerca (seek_time), cioè il tempo necessario affinché il braccio dell’unità disco sposti le te stine fino al cilindro contenente il settore desiderato, pari a 1ms/cilindro. Questo significa che per spostare le testine dal cilindro 128 al cilindro al cilindro 110 saranno necessari (128-110)*1ms = 18ms. La latenza di rotazione del disco sarà considerata trascurabile.
Nella fase iniziale, le testine del disco saranno posizionate sul cilindro numero 0.

4.Specifiche dell’oggetto GESTORE_DISCO

L’oggetto GESTORE_DISCO sarà un thread che avrà il compito di gestire le richieste di I/O secondo la politica SSTF.
Quando non ci sono richieste da servire il GESTORE_DISCO rimarrà in attesa di richieste sospendendo la propria esecuzione.
Ogni processo richiederà al gestore del disco di accedere ad un particolare settore mediante l’invocazione di un metodo richiestaSettore(int settore).
Se la richiesta di accesso ad un settore arriva mentre il GESTORE_DISCO è inattivo, questo verrà attivato dalla richiesta stessa ed inizierà a servire l’unica richiesta pervenuta. Tutte le richieste pervenute mentre il disco sta servendo un'altra richiesta verranno messe in un’apposita coda. Le richieste di accesso ad un settore del disco dovranno essere bloccanti sospendendo il processo richiedente per il tempo necessario ad ottenere il servizio.
Le richieste presenti nella coda verranno servite dal GESTRE_DISCO secondo la politica SSTF.

5.Specifiche dell’entità PROCESSO:

L’entità PROCESSO dovrà emulare un processo in esecuzione su di un sistema multiprogrammato. Ogni processo dovrà essere emulato attraverso l’utilizzo di un singolo thread.
Ogni processo dovrà essere inizializzato con il valore numRic di numero di richieste da effettuare (input fornito al momento del lancio dell’applicazione ed uguale per tutti i processi).
Il comportamento di ogni entità PROCESSO può essere descritto dai seguenti passi:
-1.Finché non ha terminato il proprio numero di richieste
-2.Effettua un richiesta per un settore il cui indice dovrà essere scelto casualmente tra i settori disponibili [0, 999999]. (Ogni processo, identificato dal proprio pid, sarà dotato di un generatore di numeri casuali inizializzato con seme pari al proprio pid).
-3.Quando la richiesta per il settore specificato ritorna (richiesta evasa) il processo andrà a dormire per 50 ms.

6.Specifiche di sincronizzazione ed implementazione:

non sarà possibile utilizzare il costrutto synchronized

7.Specifiche dati in input:

Il programma dovrà ricevere in input, tramite riga di comando o tramite file di specifica, i seguenti parametri di input:
Numero di processi (n)
Numero di richieste numRic comune a tutti i processi

8.Specifiche dati di output:

Al termine della simulazione il programma dovrà scrivere, su di un file di testo oppure sulla consolle, il tempo d’attesa per ogni processo ( tempoAttesa - tempo che intercorre tra la richiesta di un settore l’evasione della richiesta), il tempo medio d’attesa di tutti i processi (tempoMedioAttesa) e la distanza totale percorsa dalle testine del disco espressa in numero di cilindri totali attraversati ( cilindriTotali). Per rilevare i tempi d’attesa è consigliato
l’utilizzo del metodo currentTimeMillis() della classe System.

battistis
Utente Nonno

eye_bat


Regione: Friuli-Venezia Giulia
Prov.: Verbano-Cusio-Ossola
Città: inCentroConPassAuto


Inserito il - 07/06/2010 : 01:02:22  Mostra Profilo  Visita l'Homepage di battistis Invia a battistis un Messaggio Privato  Rispondi Quotando
una tesi praticamente :)
Torna all'inizio della Pagina

jonny7719
Nuovo Utente



Inserito il - 23/06/2010 : 23:05:48  Mostra Profilo  Visita l'Homepage di jonny7719 Invia a jonny7719 un Messaggio Privato  Rispondi Quotando
Ciao, più che una tesi mi sembra un progetto d'esame...
Probabilmente di sistemi operativi o simili.
Ma se vuoi passare l'esame devi studiare, mica puoi pretendere che la gente che gira su internet possa perdere tempo con te!!!
Mi sembra che altri la pensino cosi':
http://forum.html.it/forum/showthread.php?threadid=1401569
Comunque qualcuno su internet l'ha messa una specie di soluzione, che si potrebbe copiare, se non fosse piena zeppa di errori
http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14465591&tstart=0

Buon divertimento!
Torna all'inizio della Pagina
  Discussione Precedente Discussione Discussione Successiva  
 Nuova Discussione  Rispondi
 Versione Stampabile Bookmark this Topic Aggiungi Segnalibro
Vai a:
Forum by laureateci.it © 2002 - 2012 Laureateci Communications Torna all'inizio della Pagina
Il DB ha risposto in 0,23 secondi.

TargatoNA.it | SuperDeejay.Net | Antidoto.org | Brutto.it | Equiweb.it | Snitz Forum 2000