Pagina 1 di 2

Informatica teorica: calcolo indirizzo libero

Inviato: ven 13 apr 2007, 17:25
da V
Ciao!

Qualcuno conosce un algoritmo per calcolare un indirizzo casuale tra 0 e 255?
Non vorrei usare la rand(), vorrei un numero "più" casuale.....

In caso di conflitto come si pùo risolvere?
Sono su una rete particolare....

Inviato: ven 13 apr 2007, 17:29
da elettronicha
cerca "generazione numeri casuali" et similia. per che linguaggio ti serve? spesso le funzioni tipo rand sono utili in fasi di debugging, proprio grazie alla loro pseudocasualità.

Inviato: ven 13 apr 2007, 17:39
da V
Il linguaggio è il C, quindi non ci sono problemi particolari.....

Mi spiego meglio: se casualmente due periferiche richiedono lo stesso indirizzo casuale, come potrei risolvere la collisione?

Inviato: ven 13 apr 2007, 18:26
da elettronicha
V ha scritto:Il linguaggio è il C, quindi non ci sono problemi particolari.....
allora dai anche uno sguardo a srand
Mi spiego meglio: se casualmente due periferiche richiedono lo stesso indirizzo casuale, come potrei risolvere la collisione?
ci sono allora diversi algoritmi per l'accesso multiplo ma io non ti so dire molto su questo e soprattutto senza aver letto qualcosa di quello che stai facendo. una cosa semplice da fare è quella di controllare, tramite flag, che l'indirizzo richiesto non sia già occupato e sperare che l'indirizzo non venga richiesto dalle due nel medesimo istante.

Inviato: ven 13 apr 2007, 18:48
da V
Il problema è proprio questo: se due periferiche chiedono nel medesimo istante lo stesso indirizzo? E' altamente improbabile, ma...........

Inviato: ven 13 apr 2007, 19:31
da capitanfuturo
Non vorrei dire una cavolata, ma potresti gestire la cosa con un semaforo o comunque dando uno sguardo alla programmazione concorrente, in questo modo metti la scheda che richiede l'indirizzo già richiesto in attesa sul semaforo.

Inviato: ven 13 apr 2007, 19:47
da gioco
V ha scritto:Il problema è proprio questo: se due periferiche chiedono nel medesimo istante lo stesso indirizzo? E' altamente improbabile, ma...........
Hai bisogno di mutua esclusione nell'assegnamento degli indirizzi. Come suggerito da capitanfuturo puoi usare un semaforo.

Inviato: ven 13 apr 2007, 20:03
da op15l
distribuzione?
uniforme?

Inviato: ven 13 apr 2007, 20:08
da op15l
ti ho caricato delle slide che ti potrebbero essere utile:

http://op15l.altervista.org/Simulation.pdf

Inviato: ven 13 apr 2007, 20:20
da cymon
Se vuoi qualcosa di molto figo credo che potresti attaccarti a matlab e far gestire a lui il generatore, così dal punto di vista matematico avresti il completo controllo.

Se permetti però non ne ho capito moltissimo l'utilizzo.. hai bisogno di un generatore casuale per simulare un errore di assegnazione porta contemporanea? Non è meglio che simuli direttamente l'evento costantemente e risolvi il problema?

Inviato: ven 13 apr 2007, 20:47
da V
Allora prima di tutto voglio ringrazioravi tutti per le numerose idee che mi avete fornito! :mille:

Purtroppo per obblighi contrattuali molto precisni non posso dire molto :(

Comunque devo realizzare un protocollo di comunicazione (su un bus proprietario) il quale comprenderebbe appunto l'assegnazione automatica degli indirizzi,,,,,,
Per risolvere la collisione seguendo il protocollo dovrei dare la precedenza alla periferica con il codice seriale più basso....
Il seriale non posso usarlo per vari motivi......

Qualche idea?
Grazie di nuovo!

Inviato: ven 13 apr 2007, 21:47
da first
V ha scritto:Allora prima di tutto voglio ringrazioravi tutti per le numerose idee che mi avete fornito! :mille:

Purtroppo per obblighi contrattuali molto precisni non posso dire molto :(
E mo so cazzi appena ti legge masa, cosa altamente probabile visto che legge tutti i miei post (e' malFFFFidente e gelosa sai come e')

Inviato: ven 13 apr 2007, 22:54
da krisis
@first : sei un troll noioso.

Inviato: sab 14 apr 2007, 12:03
da V
:?:

Inviato: sab 14 apr 2007, 12:18
da elettronicha
V ha scritto:Per risolvere la collisione seguendo il protocollo dovrei dare la precedenza alla periferica con il codice seriale più basso....
in pratica il protocollo già esiste, non te lo devi inventare tu. ad ogni seriale corrisponde un indirizzo IP? perché non inserisci le corrispondenze in un data base o una semplice lista (o albero o hash table a seconda della numerosità delle periferiche)? poi al momento della collisione faresti il confronto sui seriali per decidere il minore. Ma non capisco perché ti serve saltare a un indirizzo casuale. Spiega con più completezza il problema oppure rivolgiti direttamente all'ingegnere che ti segue. ;)