nucleus Μάϊος 13, 2012 #21 Μάϊος 13, 2012 https://computing.llnl.gov/tutorials/pthreads/Υποθέτω γράφεις σε linux και οχι windows
Thodoris21 Μάϊος 13, 2012 Author #22 Μάϊος 13, 2012 Ναι σε linux αλλα δεν πρεπει να το κανω με νηματα (threads),πρεπει να το κανω με διεργασιες δηλ να δημιουργω παιδια με την fork().
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 παιδιά δεν έχω ιδέα
Thodoris21 Μάϊος 13, 2012 Author #24 Μάϊος 13, 2012 Οταν ομως γινεται το fork ο κωδικας από ποιον θα εκτελείται?Από το παιδί ή απο τον πατέρα?Για παράδειγμα αν θέλω 3 διεργασίες να εκτελούνται παράλληλα πρέπει να κάνω ένα fork,να εκτελέσει το παιδί έναν κώδικα(1η διεργασία),ο πατέρας άλλον έναν κώδικα(2η διεργασία) και για την 3η διεργασία χρειάζομαι ακόμα ένα fork όπου εκτελείται μόνο ο πατέρας ή μονο το παιδί?Σωστά?
nucleus Μάϊος 13, 2012 #25 Μάϊος 13, 2012 Όταν κάνεις fork o πατέρας αναστέλει την λειτουργια του αν θυμάμαι καλα (ίσως να κάνω και λάθος) μέχρι να τελειώσουν τα παιδιά του.Ο πατέρας δεν μετράει.Θες 3 παιδιά-διεργασίες θες 3 fork.
Thodoris21 Μάϊος 13, 2012 Author #26 Μάϊος 13, 2012 Αυτο γινεται με την εντολη wait.Αρα κανω 3 fork και εκτελω τον κωδικα μονο οταν pid=0.Σωστος?
Thodoris21 Μάϊος 13, 2012 Author #28 Μάϊος 13, 2012 Τωρα πως καθε fork θα μετατρεπει συγκεκριμενες γραμμες?Εδω ειναι το δυσκολο...
nucleus Μάϊος 13, 2012 #29 Μάϊος 13, 2012 Fork, Exec and Process controlκοίτα τι παίζει με τις global και τις τοπικές μεταβλητές.Μην ξεχνάς τα παιδιά είναι αντίγραφα του πατέρα
Thodoris21 Μάϊος 13, 2012 Author #30 Μάϊος 13, 2012 Σε αυτο το σημειο πρεπει να χρησιμοποιηθουν και οι σημαφοροι...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.