Sistema Operativo: Mac OS X 1.4
Ciao, mi trovo nuovamente ad aver bisogno di voi...
panoramica del problema
Ho un tracker (P1), che mette in una lista nodi contenenti i dati dei computer che lo contattano (ip, porta...) in modo da poterli contattare in un futuro.
Per evitare di tener traccia di nodi che per vari motivi non interessano piu' a P1, i client ancora interessati mandano ad intervalli regolari un segnale ad un figlio di P1 (chiamiamolo P2).
P2 dovrebbe essere in grado di scorrere la lista creata e modificabile da P1, per resettare un contatore scritto nel nodo della lista.
Esiste ancora un P3 (sempre figlio di P1) che dovrebbe scorrere la lista decrementando il contatore e cancellando i nodi che hanno contatore minore di 0.
la domanda è banale, ma purtroppo dalle guide che ho letto non risulta chiaramente la risposta...
E' possibile mantenere in memoria condivisa un'intera lista di struct in continua modificazione (aggiungo, modifico e tolgo nodi) in modo da poter spartire a piu' processi, figli del creatore della shared memory) l'onere delle operazioni?
Visto che e' codice per la mia tesi volevo anche chiedere a chi è nel settore se questa meccanica (lista salvata su memoria condivisa) è una pratica utilizzata comunemente, oppure è una di quelle cose "si puo' fare, ma e' meglio evitare".
Grazie in anticipo

Rispondi quotando