Προς το περιεχόμενο

Distributed Programming kai Mutexes


kickeras

Προτεινόμενες αναρτήσεις

Δημοσ.

Grigori erwtisi,

 

exw ena opengl/c++ distributed 3D application over TCP/IP kai ousiastika stelnw floats apo client se server alla to apotelesma einai i poli argo motion i poli petsokomeni kinisi....Kamia idea wste na ftiaxtei? I idea tou anti na stelnw p.x. x,y,z positions ena ena kai na tis stelnw oles mazi tha to diorthwsei?

 

Ena kalo straightforward kai aplo paradeigma gia mutexes apo kapoion se Win32 threads?

 

efxaristw

Δημοσ.

Ti eidous protokolo xrisimopoieis? raw socket? giati den xrisimopoieis tipota se stul CORBA kai na ftiakseis mia domi pou na stelneis oles mazi tis suntetagmenes?

 

Prepei na exeis upopsin oti ama stelneis sunexws suntetagmenes, i argi kinisi einai anapofefkti logw tou diktuou pou parembaletai.

 

Gia ta mutexes, fantazomai tha endiaferesai gia interprocess communication. Psakse sto google i sto MSDN gia paradeigmata:

 

px

 

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/mutex_objects.asp

Δημοσ.

xrisimopoiow winsock 2...to thema me ta threads einai oti to movement einai ehm....psilokommeno oxi oso smooth oso xwris ta threads.....

 

lew na ta stelnw ola mazi ana packet......

 

iparxei periptwsi ena packet na ftasei miso? i apla tha ftasei i de tha ftasei?

 

thanx gia to site....mporeite na mou kanete ena poli aplo paradeigma me kwdika gia na to katalavw?

Δημοσ.

Φίλε kickeras νομίζω πως το πρόβλημα της non-smooth κίνησης δεν εντοπίζεται στο πως χρησιμοποιείς τα sockets αλλά στο ότι δεν χρησιμοποιείς κάποιο μηχανισμό συγχρονισμού μεταξύ των εφαρμογών. Εκτός από τις συντεταγμένες θα έπρεπε να στέλνεις και κάποιο είδος timestamp το οποίο θα παράγεται από κάποιο εσωτερικό ρολόι του προγράμματος το οποίο θα είναι κοινό και στις δύο εφαρμογές. Υποθέτω πως όταν οι συντεταγμένες φτάσουν στον πρόγραμμά-πελάτη σου πυροδοτούν μια σειρά γεγονότων όπως για παράδειγμα το update της τοποθεσίας ενός αντικειμένου. Εάν όντως έτσι δουλεύει το πρόγραμμά σου τότε είναι λογικό να έχεις καθυστερήσεις μιας και βασίζεσαι στην ταχύτητα και στην κυκλοφορία του δικτύου. Το πιο φυσιολογικό σε αυτήν την περίπτωση θα ήταν να χρησιμοποιήσεις μια «ουρά» (queue). Μόλις θα έρχονται δεδομένα από το δίκτυο πρέπει να τα προωθείς στην είσοδο της ουράς. Από την άλλη πλευρά όταν θες να επεξεργαστείς και να ανανεώσεις την εφαρμογή σου εξάγεις δεδομένα από την έξοδο της ουράς. Για να είναι αυτό το μοντέλο αποδοτικό πρέπει το κομμάτι του δικτυακού κώδικα που λαμβάνει τα δεδομένα να είναι σε διαφορετικό thread από αυτό που τα επεξεργάζεται. Πρέπει όμως και να εξασφαλιστεί και το ότι τα δύο threads δεν θα έχουν σε καμία περίπτωση ταυτόχρονη πρόσβαση στα δεδομένα της ουράς. Για το σκοπό αυτό χρησιμοποιείται ένα αντικείμενο mutex. Όταν για παράδειγμα εισάγει δεδομένα στην ουρά το thread του δικτύου, το mutex αντικείμενο εξασφαλίζει ότι το thread του process δεν θα έχει πρόσβαση στην έξοδό της. Ελπίζω να σου έδωσα μερικές ιδέες για να λύσεις το πρόβλημά σου. Εάν θες και σε ενδιαφέρει (ή οποιονδήποτε άλλον ενδιαφέρει) στείλε μου ένα pm για να σου στείλω βιβλιογραφία και αρκετό κώδικα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...