nucleus Μάϊος 13, 2012 #21 Κοινοποίηση Μάϊος 13, 2012 https://computing.llnl.gov/tutorials/pthreads/Υποθέτω γράφεις σε linux και οχι windows Link to comment Share on other sites More sharing options...
Thodoris21 Μάϊος 13, 2012 Author #22 Κοινοποίηση Μάϊος 13, 2012 Ναι σε linux αλλα δεν πρεπει να το κανω με νηματα (threads),πρεπει να το κανω με διεργασιες δηλ να δημιουργω παιδια με την fork(). Link to comment Share on other sites More sharing options...
nucleus Μάϊος 13, 2012 #23 Κοινοποίηση Μάϊος 13, 2012 #include <unistd.h>void main (){ pid_t pID = fork(); <-- δημιουργια παιδιών για να κάνει 3 θέλεις ένα for και ένα πίνακα που θα κρατάει τα pid_t if (pID == 0) // child { // Code only executed by child process κώδικας που θα εκτελεί το παιδί. } else if (pID < 0) // failed to fork { cerr << "Failed to fork" << endl; exit(1); } else // parent { // Code only executed by parent process } }Το πως θα χωρίσεις το αρχείο εισόδου ανάμεσα στα 3 παιδιά δεν έχω ιδέα Link to comment Share on other sites More sharing options...
Thodoris21 Μάϊος 13, 2012 Author #24 Κοινοποίηση Μάϊος 13, 2012 Οταν ομως γινεται το fork ο κωδικας από ποιον θα εκτελείται?Από το παιδί ή απο τον πατέρα?Για παράδειγμα αν θέλω 3 διεργασίες να εκτελούνται παράλληλα πρέπει να κάνω ένα fork,να εκτελέσει το παιδί έναν κώδικα(1η διεργασία),ο πατέρας άλλον έναν κώδικα(2η διεργασία) και για την 3η διεργασία χρειάζομαι ακόμα ένα fork όπου εκτελείται μόνο ο πατέρας ή μονο το παιδί?Σωστά? Link to comment Share on other sites More sharing options...
nucleus Μάϊος 13, 2012 #25 Κοινοποίηση Μάϊος 13, 2012 Όταν κάνεις fork o πατέρας αναστέλει την λειτουργια του αν θυμάμαι καλα (ίσως να κάνω και λάθος) μέχρι να τελειώσουν τα παιδιά του.Ο πατέρας δεν μετράει.Θες 3 παιδιά-διεργασίες θες 3 fork. Link to comment Share on other sites More sharing options...
Thodoris21 Μάϊος 13, 2012 Author #26 Κοινοποίηση Μάϊος 13, 2012 Αυτο γινεται με την εντολη wait.Αρα κανω 3 fork και εκτελω τον κωδικα μονο οταν pid=0.Σωστος? Link to comment Share on other sites More sharing options...
nucleus Μάϊος 13, 2012 #27 Κοινοποίηση Μάϊος 13, 2012 Ναι Link to comment Share on other sites More sharing options...
Thodoris21 Μάϊος 13, 2012 Author #28 Κοινοποίηση Μάϊος 13, 2012 Τωρα πως καθε fork θα μετατρεπει συγκεκριμενες γραμμες?Εδω ειναι το δυσκολο... Link to comment Share on other sites More sharing options...
nucleus Μάϊος 13, 2012 #29 Κοινοποίηση Μάϊος 13, 2012 Fork, Exec and Process controlκοίτα τι παίζει με τις global και τις τοπικές μεταβλητές.Μην ξεχνάς τα παιδιά είναι αντίγραφα του πατέρα Link to comment Share on other sites More sharing options...
Thodoris21 Μάϊος 13, 2012 Author #30 Κοινοποίηση Μάϊος 13, 2012 Σε αυτο το σημειο πρεπει να χρησιμοποιηθουν και οι σημαφοροι... Link to comment Share on other sites More sharing options...
nucleus Μάϊος 13, 2012 #31 Κοινοποίηση Μάϊος 13, 2012 http://inf-server.inf.uth.gr/courses/CE220/ Link to comment Share on other sites More sharing options...
Thodoris21 Μάϊος 15, 2012 Author #32 Κοινοποίηση Μάϊος 15, 2012 Καμια ιδεα παιδια? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.