Διαδιεργασιακή επικοινωνία: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
μ r2.7.1) (Ρομπότ: Προσθήκη: he:תקשורת בין תהליכים
Χωρίς σύνοψη επεξεργασίας
Γραμμή 1:
'''Διαδιεργασιακή επικοινωνία''' (αγγλ. InterProcess Communication, IPC) ονομάζεται ένα σύνολο μηχανισμών που παρέχουν τα [[λειτουργικό σύστημα|λειτουργικά συστήματα]] των [[ηλεκτρονικός υπολογιστής|ηλεκτρονικών υπολογιστών]], οι οποίοι διευκολύνουν την ανταλλαγή δεδομένων και τον συγχρονισμό μεταξύ [[ταυτοχρονισμός|ταυτοχρόνως]] εκτελούμενων [[διεργασία (υπολογιστές)|διεργασιών]] μέσω [[δομή δεδομένων|δομών δεδομένων]] του [[πυρήνας (υπολογιστές)|πυρήνα]]. Τέτοιοι μηχανισμοί είναι απαραίτητοι στα μοντέρνα λειτουργικά συστήματα όπου, χάρη στον μηχανισμό της [[εικονική μνήμη|εικονικής μνήμης]], κάθε διεργασία έχει τον δικό της ιδιωτικό χώρο εικονικών [[χώρος διευθύνσεων|διευθύνσεων]] στον οποίον έχει πρόσβαση μόνο αυτή και ο πυρήνας. Προκειμένου να υπάρχει μία στοιχειώδης ''προστασία μνήμης'' μεταξύ διαφορετικών διεργασιών, καμία διεργασία δεν έχει δικαίωμα ανάγνωσης ή εγγραφής στον χώρο διευθύνσεων των υπολοίπων. Αν λοιπόν χρειάζεται δύο διαφορετικές διεργασίες να επικοινωνήσουν μεταξύ τους ή να ανταλλάξουν δεδομένα, αυτό μπορεί να γίνει μόνο μέσω του [[σύστημα αρχείων|συστήματος αρχείων]] (π.χ. μία διεργασία να γράψει ένα [[αρχείο υπολογιστή|αρχείο]] και μία άλλη να το διαβάσει) ή μέσω μίας μεθόδου διαδιεργασιακής επικοινωνίας. Με το προγραμματιστικό μοντέλο των '''υποδοχών''' (sockets) οι διεργασίες οι οποίες επικοινωνούν μπορούν να εκτελούνται σε διαφορετικούς υπολογιστές που διασυνδέονται μέσω ενός [[δίκτυο υπολογιστών|δικτύου]].
 
Σε πολλές περιπτώσεις ένα εκτελούμενο πρόγραμμα (η ''μητρική'' ή ''γονική'' διεργασία) δημιουργεί δευτερεύουσες (''θυγατρικές'') διεργασίες ώστε να εκμεταλλευτεί πιθανά οφέλη από τον ταυτοχρονισμό. Με αυτόν τον τρόπο, σε ένα [[παράλληλη επεξεργασία|παράλληλο σύστημα]] οι υπολογισμοί που απαιτούνται από μία εφαρμογή μπορούν να κατανεμηθούν σε πολλαπλούς επεξεργαστές με τον καθένα να εκτελεί διαφορετική διεργασία, ενώ σε ένα σειριακό σύστημα αν μία διεργασία ανασταλεί (π.χ. σε μία [[κλήση συστήματος]]) καθώς περιμένει την απελευθέρωση ενός πόρου (π.χ. πρόσβαση στον [[σκληρός δίσκος|σκληρό δίσκο]]) ή μία [[είσοδος|είσοδο]] από τον χρήστη), κάποια άλλη διεργασία μπορεί να συνεχίσει τους υπολογισμούς. Είναι φανερό επομένως ότι η διαδιεργασιακή επικοινωνία δεν είναι απαραίτητη μόνο για την ανταλλαγή δεδομένων μεταξύ ανεξάρτητων διεργασιών, αλλά και για τον συντονισμό στενά συνεργαζόμενων διεργασιών οι οποίες εκτελούνται παράλληλα, σε συστήματα πολλαπλών επεξεργαστών, ή ψευδοπαράλληλα, δηλαδή με ταχύτατη και διαφανή εναλλαγή πολλαπλών ταυτοχρόνως εκτελούμενων διεργασιών στον μοναδικό επεξεργαστή.