Interprocess Communication (IPC) στο ΛΣ
⚡ Έξυπνη Σύνοψη
Η επικοινωνία μεταξύ διεργασιών (IPC) είναι ένα σύνολο μηχανισμών λειτουργικού συστήματος που επιτρέπουν σε διεργασίες και νήματα να ανταλλάσσουν δεδομένα, να συντονίζουν δραστηριότητες και να συγχρονίζουν ενέργειες, είτε εκτελούνται σε έναν υπολογιστή είτε σε πολλά μηχανήματα συνδεδεμένα μέσω δικτύου.

Τι είναι η Inter Process Communication;
Επικοινωνία μεταξύ διεργασιών (IPC) Χρησιμοποιείται για την ανταλλαγή δεδομένων μεταξύ πολλαπλών νημάτων σε μία ή περισσότερες διεργασίες ή προγράμματα. Οι διεργασίες μπορεί να εκτελούνται σε έναν μόνο υπολογιστή ή σε πολλούς υπολογιστές που είναι συνδεδεμένοι μέσω δικτύου. Η πλήρης μορφή του IPC είναι η επικοινωνία μεταξύ διεργασιών.
Είναι ένα σύνολο διεπαφών προγραμματισμού που επιτρέπει σε έναν προγραμματιστή να συντονίζει δραστηριότητες μεταξύ διαφόρων διεργασιών προγράμματος, οι οποίες μπορούν να εκτελούνται ταυτόχρονα σε ένα λειτουργικό σύστημα. Αυτό επιτρέπει σε ένα μόνο πρόγραμμα να χειρίζεται πολλά αιτήματα χρηστών ταυτόχρονα.
Δεδομένου ότι κάθε αίτημα χρήστη μπορεί να οδηγήσει σε εκτέλεση πολλαπλών διεργασιών στο λειτουργικό σύστημα, αυτές οι διεργασίες ενδέχεται να χρειαστεί να επικοινωνούν μεταξύ τους. Κάθε προσέγγιση IPC έχει τα δικά της πλεονεκτήματα και περιορισμούς, επομένως δεν είναι ασυνήθιστο για ένα μόνο πρόγραμμα να χρησιμοποιεί αρκετές από τις μεθόδους IPC.
Προσεγγίσεις για Διαδικαστική Επικοινωνία
Ακολουθούν μερικές σημαντικές μέθοδοι επικοινωνίας μεταξύ διεργασιών:
Προσεγγίσεις Επικοινωνίας μεταξύ Διαδικασιών
Σωλήνες
Ένας αγωγός χρησιμοποιείται ευρέως για την επικοινωνία μεταξύ δύο σχετικών διεργασιών. Πρόκειται για μια ημιαμφίδρομη μέθοδο, επομένως η πρώτη διεργασία επικοινωνεί με τη δεύτερη. Ωστόσο, για να επιτευχθεί αμφίδρομη επικοινωνία, απαιτείται ένας άλλος αγωγός.
Το μήνυμα περνά
Είναι ένας μηχανισμός επικοινωνίας και συγχρονισμού μιας διεργασίας. Χρησιμοποιώντας την ανταλλαγή μηνυμάτων, οι διεργασίες επικοινωνούν μεταξύ τους χωρίς να καταφεύγουν σε κοινές μεταβλητές.
Ο μηχανισμός IPC παρέχει δύο λειτουργίες:
- Αποστολή (μήνυμα) — το μέγεθος του μηνύματος μπορεί να είναι σταθερό ή μεταβλητό
- Λήψη (μηνύματος)
Ουρές μηνυμάτων
Μια ουρά μηνυμάτων είναι μια συνδεδεμένη λίστα μηνυμάτων που είναι αποθηκευμένα στο πυρήνας. Αναγνωρίζεται από ένα αναγνωριστικό ουράς μηνυμάτων. Αυτή η μέθοδος προσφέρει επικοινωνία μεταξύ μεμονωμένων ή πολλαπλών διεργασιών με χωρητικότητα full-duplex.
Απευθείας Επικοινωνία
Σε αυτόν τον τύπο επικοινωνίας μεταξύ διεργασιών, οι διεργασίες πρέπει να ονομάζουν η μία την άλλη ρητά. Σε αυτήν τη μέθοδο, δημιουργείται ένας σύνδεσμος μεταξύ ενός ζεύγους διεργασιών που επικοινωνούν και μεταξύ κάθε ζεύγους υπάρχει μόνο ένας σύνδεσμος.
Έμμεση Επικοινωνία
Η έμμεση επικοινωνία δημιουργείται μόνο όταν οι διεργασίες μοιράζονται ένα κοινό γραμματοκιβώτιο. Κάθε ζεύγος διεργασιών μπορεί να μοιράζεται πολλούς συνδέσμους επικοινωνίας και ένας μόνο σύνδεσμος μπορεί να επικοινωνεί με πολλές διεργασίες. Ο σύνδεσμος μπορεί να είναι αμφίδρομος ή μονοκατευθυντικός.
Κοινή μνήμη
Η κοινόχρηστη μνήμη είναι μια περιοχή μνήμης που χρησιμοποιείται από κοινού από δύο ή περισσότερες διεργασίες. Αυτή η μνήμη πρέπει να προστατεύεται από ταυτόχρονη πρόσβαση μέσω συγχρονισμού των διεργασιών που τη χρησιμοποιούν.
FIFO
Το FIFO χρησιμοποιείται για την επικοινωνία μεταξύ δύο μη σχετιζόμενων διεργασιών. Είναι μια μέθοδος πλήρους αμφίδρομης επικοινωνίας, που σημαίνει ότι η πρώτη διεργασία μπορεί να επικοινωνήσει με τη δεύτερη διεργασία, και μπορεί επίσης να συμβεί το αντίθετο.
Γιατί IPC;
Ακολουθούν οι λόγοι για τη χρήση του πρωτοκόλλου επικοινωνίας μεταξύ διεργασιών για την ανταλλαγή πληροφοριών:
- Βοηθά στην επιτάχυνση της αρθρωτότητας.
- Υπολογιστική επιτάχυνση.
- Διαχωρισμός προνομίων.
- Ευκολία.
- Βοηθά τις διεργασίες και το λειτουργικό σύστημα να επικοινωνούν και να συγχρονίζουν τις ενέργειές τους.
Όροι που χρησιμοποιούνται στο IPC
Ακολουθούν ορισμένοι σημαντικοί όροι που χρησιμοποιούνται στο IPC:
Semaphores: Ένας σηματοφορέας είναι ένας μηχανισμός σηματοδότησης. Αυτή η μέθοδος λειτουργικού συστήματος είτε επιτρέπει είτε απαγορεύει την πρόσβαση σε έναν πόρο, ανάλογα με τον τρόπο που έχει ρυθμιστεί.
Signals: Ένα σήμα είναι μια μέθοδος επικοινωνίας μεταξύ πολλαπλών διεργασιών μέσω σηματοδότησης. Η διεργασία πηγής στέλνει ένα σήμα, το οποίο αναγνωρίζεται από έναν αριθμό, και η διεργασία προορισμού το χειρίζεται.
Πρόταση ανάγνωσης: Τι είναι Semaphore? Δυαδική, Καταμέτρηση Τύποι με Παράδειγμα
Τι μοιάζει με το FIFOS και σε αντίθεση με το FIFOS
Ο παρακάτω πίνακας συγκρίνει τα όμοια FIFO και τα διαφορετικά FIFO:
| Όπως το FIFOS | Σε αντίθεση με το FIFOS |
|---|---|
| Ακολουθεί τη μέθοδο FIFO. | Χρησιμοποιεί μια μέθοδο για να ανασύρει συγκεκριμένα επείγοντα μηνύματα προτού φτάσουν στο προσκήνιο. |
| Το FIFO υπάρχει ανεξάρτητα από τις διεργασίες αποστολής και λήψης. | Πάντα έτοιμο, επομένως δεν χρειάζεται να το ανοίξετε ή να το κλείσετε. |
| Επιτρέπει τη μεταφορά δεδομένων μεταξύ άσχετων διεργασιών. | Δεν έχει κανένα πρόβλημα συγχρονισμού μεταξύ ανοίγματος και κλεισίματος. |

