Homepage  Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum


.dsy:it. .dsy:it. Archive > Didattica > Corsi N - Z > Sistemi operativi e distribuiti
 
Correzione Esame 22/06
Clicca QUI per vedere il messaggio nel forum
Armakazam
Ciao,

il prof Cazzola ha inserito sul suo prof la correzione dell'esercizio da svolgere in laboratorio...

prima di passare a richiedere info al docente provo a chiedere qui, qualcuno per caso riesco a far funzionare il programma?
a me da errori in fase di lancio sia sul master che sul client!

Melodiaz
dopo un po' io ce l'ho fatta...o almeno credo
devi creare in pratica in 10 shell diverse 10 slave process (ovviamente dopo aver fatto partire rmiregistry, aver fatto rmic di MasterProcess e SlaveProcess) facendo come comando java SlaveProcess 1, java SlaveProcess 2 ecc... poi in un'altra shell fai partire il client per inserendo subito dopo il comando la stringa da invertire, ad esempio java ClientProcess HelloWord...spero di essere stato chiaro :D

Armakazam
chiarissimo, non avevo pensato ad aprire 10 shell diverse.

io ho comunque un problema e devo capire il perchè...

la procedura seguita mi sembra corretta...ho provato anche differenti cose ma ho sempre lo stesso errore (nb: per evitare errori ho persino cancellato tutto il codice e copy-paste dai pdf del prof).

Procedura 1:

javac *.java
rmic SlaveProcess
rmic MasterPrcess
start rmiregistry
java SlaveProcess 1 ..... n
java ClientProcess Hello


Procedura 2:

javac *.java
start rmiregistry
rmic MasterProcess
rmic SlaveProcess
java SlaveProcess 1 .... n
java ClientProcess Hello

nei due casi mi da sempre questo errore:

Exception in thread "main" java.rmi.NotBoundException: Master
at sun.rmi.registry.RegistryImpl.lookup(RegistryImpl.java:106)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:386
)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:5
35)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTranspor
t.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:885)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:907)
at java.lang.Thread.run(Thread.java:619)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknow
n Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at ClientProcess.main(ClientProcess.java:5)


E quella eccezione ""is thrown if an attempt is made to lookup or unbind in the registry a name that has no associated binding"


mmm vedi qualche errore nel mio procedimento?
considera che i sorgenti sono quelli del prof quindi sbaglio qualcosa io, secondo me una cosa semplice, che però non mi salta all'occhio!!

Melodiaz
nn ti funziona perche' dopo aver fatto partire i 10 slave nn fai java MasterProcess e infatti ti da NotBoundException: Master
vuol dire che nn trova attivo il server Master (che se noti e' il nome che metti in Naming.bind("Master", sp);

Melodiaz
oltre a creare lo stub e lo skeleton (che se hai java 5 nn viene creato ed e' giusto cosi') facendo rmic MasterProcess devi anche fare java MasterProcess

Armakazam
ok perfetto!

avevo provato prima di scrivere a lanciare java MasterProcess ma mi dava errore, ed essendo di fretta ho dato per scontato che l'errore fosse lo stesso ma in realtà era diverso.

In realtà, alla fine, come previsto l'errore era banale...
in:
java ClientProcess ....
partivo da 1 a 10, in realtà dovevo partire da 0 a 9 perchè nel masterprocesso in ciclo parte da 0


bene risolto il tutto ti ringrazio ;)

personalmente parlando non l'ho visto tanto difficile, ma nemmeno troppo facile...in una giornata forse l'avrei terminato, ma in 2 ore no visto che mi sono incasinato 30 minuti solo sul metodo per il reverse della frase!

Melodiaz
cmq io l'ho provato e pure creando 11 slave funziona...boh!

cmq no io proprio nn avevo idea di come farlo, sara' che il testo quando parlava della suddivisione sono andato in pappa.
Ma te Armakazam hai studiato solo le slides del prof oppure hai trovato qualcosa in giro che parlava di master & slave ecc...??
se si mi potresti dare i link?

Armakazam
penso che con solo le slide del prof si riesca a fare poco e niente!

io ho cercato su google e trovato un sacco di materiale (ma al momento non ho link precisi da darti).

posso consigliarti di cercare slide di corsi di sistemi distribuiti di altre università..

io ho cercato roba tipo:

tutorial rmi registry java
utilizzo rmi registry java
java client server

etc etc... ho fatto parecchie ricerche, e cercato di imparare + roba possibilie qua e la e a grandi linee ho capito però rimane che comunque questo esame in 2 ore non lo avrei mai finito...
capisco che dovremmo essere capaci di programmare in java senza problemi, ma secondo me dal livello teorico al pratico senza un laboratorio la difficoltà è indescrivibile

123nessuno456
Io non riesco a vedere la correzione dell'esercizio da svolgere in laboratorio...help !! Mi da questo :
Forbidden

You don't have permission to access /~cazzola/didattica/os/soluzione-2011-07-11.html on this server.

Powered by: vbHome (lite) v4.1 and vBulletin v2.3.1 - Copyright ©2000 - 2002, Jelsoft Enterprises Limited
Mantained by dsy crew (email) | Collabora con noi | Segnalaci un bug | Archive | Regolamento |Licenze | Thanks | Syndacate