Εισαγωγή στα κατανεμημένα συστήματα. Κατανεμημένη αρχιτεκτονική

Πρόγραμμα Kerish Doctor. 15.06.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...


Chercher

Οικιακές συσκευές λογισμικόγια κατανεμημένα συστήματα ελέγχου με ανοχή σφαλμάτων. Οι λύσεις που υπάρχουν σήμερα σε αυτόν τον τομέα είναι ιδιόκτητες και, κατά συνέπεια, δαπανηρές και όχι πάντα αποτελεσματικές.

Αυτές οι λύσεις δεν προβλέπουν την αποτελεσματική χρήση εφεδρικών πόρων βάσης δεδομένων, τεχνικών και λογισμικού, γεγονός που επηρεάζει αρνητικά τόσο την ανοχή σφαλμάτων όσο και την επεκτασιμότητα τέτοιων λύσεων. Εάν παραβιαστεί η αρχιτεκτονική του δικτύου, δεν υπάρχει δυνατότητα δυναμικής αναδιαμόρφωσης τόσο των διαδικασιών επεξεργασίας πληροφοριών όσο και της μετάδοσης των ροών δεδομένων (τόσο ελέγχου όσο και πληροφοριών). Η χρήση συγκεκριμένων μικροελεγκτών και η χρήση DCS/SCADA περιπλέκει την ανάπτυξη και υποστήριξη συστημάτων και την επέκταση της λειτουργικότητάς τους.

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

Η γενικευμένη τυπική αρχιτεκτονική ενός κατανεμημένου συστήματος ελέγχου (DCS) περιλαμβάνει τρία ιεραρχικά σχετιζόμενα επίπεδα: επίπεδο χειριστή, επίπεδο ελέγχου και επίπεδο εισόδου/εξόδου (βλ. Εικ. 1).

Το κύριο καθήκον του επιπέδου χειριστή είναι να παρέχει μια διεπαφή ανθρώπου-μηχανής (HMI) για τη διαμόρφωση και τον έλεγχο της λειτουργίας ολόκληρου του συστήματος. Το επίπεδο ελέγχου είναι υπεύθυνο για τη λήψη και την επεξεργασία δεδομένων από αισθητήρες, τη μετάδοση δεδομένων στο επίπεδο χειριστή και την ανάπτυξη ενεργειών ελέγχου στους ενεργοποιητές. Το επίπεδο εισόδου-εξόδου αντιπροσωπεύει αισθητήρες και ενεργοποιητές απευθείας συνδεδεμένους με το αντικείμενο ελέγχου.

Η αποστολή του λογισμικού, στο πλαίσιο της γενικευμένης αρχιτεκτονικής DCS, είναι να διασφαλίσει τη λειτουργία του επιπέδου χειριστή και τη σύνδεσή του με το επίπεδο ελέγχου του συστήματος. Κατά συνέπεια, το θεμελιώδες επίπεδο κατά το σχεδιασμό του λογισμικού και την επίλυση ζητημάτων αλληλεπίδρασης με το υλικό είναι το επίπεδο χειριστή. Το λογισμικό πρέπει να κάνει την πιο αποτελεσματική χρήση των διαθέσιμων πόρων υλικού του συστήματος, ενώ είναι όσο το δυνατόν πιο ανεξάρτητο από την εσωτερική αρχιτεκτονική υλικού.

Το υλικό παρέχει υπολογιστικούς πόρους, μνήμη και μέσα επικοινωνίας μεταξύ των κόμβων του συστήματος. Κατά το σχεδιασμό γενική αρχιτεκτονικήΤο σύστημα δεν λαμβάνει υπόψη συγκεκριμένους κόμβους επιπέδου εισόδου/εξόδου που θα συνδεθούν με αυτό κατά τη συγκεκριμένη εφαρμογή του, επομένως, η γενικευμένη αρχιτεκτονική λαμβάνει υπόψη το επίπεδο χειριστή και το επίπεδο ελέγχου. Το υλικό πρέπει να είναι κοινό, κατάλληλο σύγχρονα πρότυπα, έχουν όλες τις ιδιότητες και τις δυνατότητες που απαιτούνται για την υλοποίηση της αρχιτεκτονικής.

Απαιτήσεις για DCS

Οι απαιτήσεις για το DCS δεν σχετίζονται μόνο με το σύστημα στο σύνολό του, αλλά και με τα στοιχεία υλικού και λογισμικού ξεχωριστά, καθώς οι συγκεκριμένες προσεγγίσεις για την ικανοποίηση αυτών των απαιτήσεων για αυτά τα στοιχεία ενδέχεται να διαφέρουν θεμελιωδώς. Το DCS πρέπει πρώτα και κύρια να είναι ανεκτικό σε σφάλματα. Η απλούστερη μέθοδος αύξησης της ανοχής σφαλμάτων είναι ο πλεονασμός (διπλασιασμός) λειτουργικών μονάδων ή ο συνδυασμός τους. Η δεύτερη σημαντική ιδιότητα είναι η επεκτασιμότητα. Η επεκτασιμότητα βασίζεται στην εφαρμογή ειδικών αλγορίθμων σε λογισμικό και στην ικανότητα υλικού για αντικατάσταση και προσθήκη νέων κόμβων ή στοιχείων τους. Ταυτόχρονα, το σύστημα πρέπει να παραμείνει απλό για τη λειτουργία του, την ανάπτυξη νέων μονάδων ή μονάδων και την τροποποίηση της αρχιτεκτονικής του.

Επισκόπηση αρχιτεκτονικών DCS

Για να πραγματοποιήσουμε μια ανασκόπηση των αρχιτεκτονικών DCS, επιλέξαμε το Siemens SIMATIC PCS 7 DCS ως ένα από τα πιο δημοφιλή στην αγορά και το RTS S3 ως DCS που υλοποιήθηκε με βάση το QNX RTOS.

Siemens SIMATIC PCS 7

Η αρχιτεκτονική του συστήματος έχει όλες τις ιδιότητες μιας γενικευμένης αρχιτεκτονικής DCS. Οι σταθμοί χειριστή είναι υπολογιστές που βασίζονται στην αρχιτεκτονική επεξεργαστή x86 με λειτουργικό σύστημα Windows και το πακέτο Siemens WinCC, το οποίο παρέχει HMI. Υπάρχουν διακομιστές με βάσεις δεδομένων. Οι σταθμοί χειριστή, οι σταθμοί μηχανικής και οι διακομιστές συνδέονται μέσω τοπικού δικτύου που βασίζεται σε Ethernet. Το επίπεδο χειριστή σχετίζεται με το επίπεδο διαχείρισης ενός πλεονάζοντος βιομηχανικού δικτύου Ethernet. Σε επίπεδο ελέγχου υπάρχουν προγραμματιζόμενα λογικούς ελεγκτές(PLC) με δυνατότητα πλεονασμού λόγω διπλασιασμού λειτουργικότητας. Είναι δυνατή η σύνδεση σε εξωτερικά συστήματα και δίκτυα και η οργάνωση της απομακρυσμένης πρόσβασης στο σύστημα.

RTS S3

Αυτή η αρχιτεκτονική αποτελείται ομοίως από επίπεδα μιας γενικευμένης δομής DCS. Οι σταθμοί χειριστή βασίζονται στην ίδια πλατφόρμα υλικού με το SIMATIC DCS, αλλά μπορούν να ελέγχονται από λειτουργικό σύστημα Windows ή Linux. Οι σταθμοί μηχανικής συνδυάζονται με σταθμούς χειριστή. Το σύστημα παρέχει ένα ενοποιημένο περιβάλλον ανάπτυξης εφαρμογών. Δίκτυο Ethernetσυνδέει κόμβους μέσα στο επίπεδο χειριστή και το ίδιο το επίπεδο χειριστή στο επίπεδο ελέγχου χρησιμοποιώντας τη στοίβα πρωτοκόλλου TCP/IP. Σε επίπεδο διαχείρισης υπάρχουν βιομηχανικούς υπολογιστέςτρέχει το QNX OS με δική του βάσηδεδομένα και τη δυνατότητα πλεονασμού με αντιγραφή της λειτουργικότητας του κόμβου.

Μειονεκτήματα των περιγραφόμενων συστημάτων

Στα συστήματα που περιγράφονται παραπάνω, χρησιμοποιούνται διαφορετικές πλατφόρμες υλικού και λογισμικού για το επίπεδο χειριστή και το επίπεδο ελέγχου. Εντός του επιπέδου χειριστή, μπορεί να χρησιμοποιηθεί μόνο μία αρχιτεκτονική επεξεργαστή και απαιτείται ειδικός σταθμός μηχανικής για τη διαμόρφωση και την ανάπτυξη του επιπέδου ελέγχου. Αυτά τα DCS προσφέρουν, ως τρόπο αύξησης της ανοχής σφαλμάτων, μόνο πλεονασμό υλικού με διπλασιασμό της λειτουργικότητας του πλεονάζοντος κόμβου, κάτι που είναι μια παράλογη χρήση πλεονάζοντος υλικού.

Χαρακτηριστικά και λειτουργικά χαρακτηριστικάΣυστήματα L-Net

Κατά την ανάπτυξη του συστήματος L-Net, ο στόχος ήταν να δημιουργηθεί ένα σύστημα ελέγχου που θα έχει τα ακόλουθα χαρακτηριστικά:

  • Δυναμική αναδιαμόρφωση με πλήρη αποκατάσταση της λειτουργικότητας με ελάχιστες απώλειες σε περίπτωση βλάβης του κεντρικού υπολογιστή ή διακοπής της τοπολογίας του δικτύου.
  • Αποτελεσματική κατανομή εργασιών μεταξύ των διαθέσιμων αποδοτικών κόμβων δικτύου.
  • Διπλασιασμός καναλιών επικοινωνίας μεταξύ κόμβων με δυναμική αναδιαμόρφωση των ροών δεδομένων.
  • Ευκολία λειτουργίας και κλιμάκωση του συστήματος.
  • Φορητότητα και λειτουργικότητα του συστήματος σε οποιαδήποτε πλατφόρμα υλικού που προορίζεται για συστήματα ελέγχου κτιρίων και ενσωματωμένα συστήματα.

Για να δημιουργήσετε ένα σύστημα με τα χαρακτηριστικά που περιγράφονται παραπάνω, χρειάζεστε ένα λειτουργικό σύστημα σχεδιασμένο κυρίως για τη δημιουργία συστημάτων ελέγχου και ενσωματωμένων συστημάτων. Μια ανάλυση των υπαρχόντων λειτουργικών συστημάτων έδειξε ότι το καταλληλότερο λειτουργικό σύστημα είναι το QNX 6 (Neutrino), το οποίο έχει πολύ αποτελεσματικές δυνατότητες διανομής πόρων και δικτύωσης. Ευρύς ευκαιρίες δικτύωσηςπαρέχεται από το πρωτόκολλο δικτύου Qnet. Επιλύει το πρόβλημα της αξιοπιστίας και της δυναμικής εξισορρόπησης φορτίου των καναλιών επικοινωνίας, αλλά δεν λύνει το πρόβλημα της ανοχής σφαλμάτων του συστήματος συνολικά. Ως αποτέλεσμα, αναπτύχθηκε σύστημα καινοτομίαςέλεγχος που βασίζεται σε ένα κατανεμημένο και επαναδιαμορφώσιμο υπολογιστικό περιβάλλον πολλαπλών αγωγών. Το ανεπτυγμένο σύστημα έχει μια αρχιτεκτονική peer-to-peer, που περιλαμβάνει τρία λογικά μπλοκ: ένα μπλοκ εισόδου-εξόδου, ένα μπλοκ διακόπτη γενικού σκοπούκαι ένα μπλοκ με δυνατότητα επαναδιαμόρφωσης υπολογιστικού περιβάλλοντος (RCE) (βλ. Εικ. 2).

Τα κύρια πλεονεκτήματα αυτής της αρχιτεκτονικής είναι:

  • Ομότιμος τύπος
  • Αποκέντρωση
  • Επεκτασιμότητα
  • Χωρική κατανομή

Λειτουργικά χαρακτηριστικά αυτής της αρχιτεκτονικής:

  • Επεξεργασία αγωγού
  • Πλεονασμός υλικού
  • Κατανομή φορτίου
  • Αναδιαμόρφωση on the fly

Στο πρώτο επίπεδο της αρχιτεκτονικής υπάρχει ένα μπλοκ εισόδου/εξόδου (I/O), το οποίο περιλαμβάνει: κόμβους εισόδου/εξόδου, διακόπτη κόμβου εισόδου/εξόδου, διεπαφή εισόδου/εξόδου, αισθητήρες και ενεργοποιητές. Το μπλοκ είναι υπεύθυνο για βασικούς μηχανισμούςσχηματισμός ενεργειών ελέγχου με βάση δεδομένα από τοπικούς αισθητήρες και δεδομένα που λαμβάνονται από άλλα επίπεδα του συστήματος ελέγχου. Οι εργασίες που έχουν ανατεθεί κατανέμονται μεταξύ υγιών κόμβων I/O με βάση την τρέχουσα σχετική απόδοσή τους ή χειροκίνητα από έναν χειριστή. Οι αισθητήρες και οι ενεργοποιητές συνδέονται μέσω ενός διαύλου σε όλους τους κόμβους I/O του μπλοκ, κάτι που επιτρέπει σε κάθε κόμβο να μετρήσει οποιονδήποτε αισθητήρα ή να ενεργήσει σε οποιονδήποτε ενεργοποιητή. Ο διακόπτης κόμβου I/O παρέχει επικοινωνία μεταξύ όλων των κόμβων I/O για την ανταλλαγή δεδομένων μεταξύ τους και άλλων επιπέδων της αρχιτεκτονικής του συστήματος για τη λήψη δεδομένων ελέγχου και πληροφοριών. Με τις κατάλληλες δυνατότητες υλικού, οι κόμβοι επικοινωνούν απευθείας μεταξύ τους και με κόμβους και διακόπτες σε άλλα επίπεδα του συστήματος, γεγονός που μειώνει τον χρόνο απόκρισης στο δίκτυο. Η άμεση επικοινωνία μεταξύ των κόμβων και ενός συγκεκριμένου φόρτου εργασίας κόμβων στον τρέχοντα τρόπο λειτουργίας του μπλοκ I/O επιτρέπει την οργάνωση στο μπλοκ αγωγών υπολογισμών που είναι απαραίτητοι για τη λειτουργία αυτού του μπλοκ χωρίς να καταφεύγουμε σε εξωτερική υπολογιστική ισχύ του συστήματος ελέγχου (RCS), το οποίο καθιστά δυνατή την αποτελεσματική χρήση δωρεάν πόρων που παρέχονται για κόμβους πλεονασμού του μπλοκ I/O τη στιγμή της αποτυχίας.

Το μπλοκ διακοπτών γενικής χρήσης, που βρίσκεται στο δεύτερο επίπεδο της αρχιτεκτονικής, οργανώνει γραμμές επικοινωνίας μεταξύ μπλοκ I/O και RCS και εξωτερικών συστημάτων. Κάθε διακόπτης μπορεί να διασυνδέσει διαφορετικούς συνδέσμους και διακόπτες σε όλο το σύστημα ελέγχου. Ο αριθμός των γραμμών επικοινωνίας καθορίζεται από τις δυνατότητες υλικού των κόμβων και των διακοπτών που περιλαμβάνονται στα μπλοκ. Δεδομένου ότι το δίκτυο Qnet επιτρέπει τη δυναμική κατανομή των ροών μεταφοράς δεδομένων, η κλιμάκωση αυτού του μπλοκ πραγματοποιείται με απλή σύνδεση νέων συσκευών και δεν απαιτεί ρύθμιση παραμέτρων, και εάν ένας από τους διακόπτες αποτύχει, η μεταφορά δεδομένων μεταξύ κόμβων δεν θα διακόπτεται εάν ένας άλλος διακόπτης παρέχει παρόμοια επικοινωνία μεταξύ των κόμβων ή συνδέονται άμεσα. Σε αυτήν την περίπτωση, είναι απαραίτητο να φροντίσετε για επαρκές εύρος ζώνης δικτύου που είναι απαραίτητο για τη δημιουργία αντιγράφων ασφαλείας ενός διακόπτη που απέτυχε.

Μπλοκ με δυνατότητα επαναδιαμόρφωσης δίκτυο υπολογιστών(RBC), που βρίσκεται στο τρίτο επίπεδο της αρχιτεκτονικής, παρέχει ένα σύστημα ελέγχου για υψηλή υπολογιστική ισχύ για την επίλυση σύνθετων προβλημάτων επεξεργασίας πληροφοριών, λήψης αποφάσεων, αναγνώρισης κ.λπ. Το μπλοκ είναι υπεύθυνο για την προετοιμασία ολόκληρου του συστήματος ελέγχου: έλεγχος της λειτουργικότητας των διακοπτών και των κόμβων, ακεραιότητα δικτύου, κατασκευή γραφημάτων δικτύου ολόκληρου του συστήματος, ρύθμιση των παραμέτρων εκκίνησης για τη λειτουργία των μπλοκ I/O. Οι κόμβοι αυτού του μπλοκ παρέχουν αρχειοθέτηση τόσο των δικών τους δεδομένων όσο και των δεδομένων από μπλοκ I/O. Κάθε κόμβος αυτού του μπλοκ μπορεί να παίξει το ρόλο της μηχανής ενός χειριστή, σχεδιασμένη να παρακολουθεί τη λειτουργία του συστήματος και να κάνει προσαρμογές στα προγράμματα λειτουργίας τόσο αυτού του κόμβου όσο και όλων των κόμβων του συστήματος, εκτελώντας αναδιαμόρφωση κατόπιν αιτήματος.

Κατανομή φορτίου

Ένα από τα κύρια καθήκοντα του συστήματος L-Net είναι η διανομή του υπολογιστικού φορτίου στους κόμβους του δικτύου. Η λύση σε αυτό το πρόβλημα βασίζεται στην κατασκευή υπολογιστικών αγωγών. Για τη δημιουργία ενός υπολογιστικού αγωγού, κατασκευάζεται πρώτα ένα γράφημα εργασιών - ένα σχήμα για την ανταλλαγή ροών δεδομένων από την πηγή στον παραλήπτη. Οι αισθητήρες λειτουργούν ως πηγή και οι ενεργοποιητές ως δέκτης. Ο ίδιος ο υπολογιστικός αγωγός είναι μια αντιστοίχιση του γραφήματος εργασιών (βλ. Εικ. 3) στο γράφημα δικτύου υπολογιστών (βλ. Εικ. 4), λαμβάνοντας υπόψη τις απαιτήσεις εργασιών για τους υπολογιστικούς πόρους του συστήματος και την τρέχουσα κατάστασή του.

Η λύση είναι να χρησιμοποιήσετε μια υπηρεσία που παρέχει στον παραλήπτη ολοκληρωμένες πληροφορίες σχετικά με το τρέχον υλικό, την κατάστασή του και τις διαθέσιμες πηγές δεδομένων, την εργασία με γραφήματα δικτύου και εργασιών. Ως αποτέλεσμα, η απόδοση αυξάνεται λόγω της διοχέτευσης των υπολογισμών και της ορθολογικής χρήσης όλων διαθέσιμα στο σύστημαυπολογιστικούς πόρους.

Ανοχή σφαλμάτων

Το κύριο πρόβλημα με τη λειτουργία ενός τέτοιου συστήματος είναι η πλήρης διακοπή των αγωγών υπολογιστών εάν αποτύχει οποιοσδήποτε κόμβος αυτού του αγωγού ή εάν διακοπεί η μεταφορά δεδομένων μεταξύ τους. Τα βασικά μέσα του πρωτοκόλλου Qnet επιτυγχάνουν την αποκατάσταση των συνδέσεων μεταξύ των κόμβων όταν διαταράσσονται μερικώς λόγω των εφεδρικών γραμμών που παρέχει η αρχιτεκτονική. Το σύστημα L-Net επιλύει το πρόβλημα της επαναφοράς της λειτουργικότητας σε περίπτωση πλήρους αποτυχίας του κεντρικού υπολογιστή υπολογιστικό σύστημαμε δυναμική αναδιαμόρφωση του υπολογιστικού αγωγού, π.χ. χρήση πόρων εργασίας για την αντικατάσταση ενός κακού μπλοκ. Το σύστημα παρέχει τρία σενάρια ανάκτησης (αναδιαμόρφωσης), τα οποία διαφέρουν ως προς τον χρόνο απόκρισης ως προς το γεγονός της αποτυχίας, τον χρόνο ανάκτησης και τους χρησιμοποιημένους πόρους υλικού: κατά την αποτυχία, με παθητική ετοιμότητα, με ενεργή ετοιμότητα.

  • Αναδιαμόρφωση σε περίπτωση αποτυχίας– μετά τον εντοπισμό αποτυχίας, γίνεται αναζήτηση για διαθέσιμο υλικό και συμπερίληψή του στο γράφημα εργασιών.
  • Αναδιαμόρφωση με παθητική διαθεσιμότητα– καθορίζεται εκ των προτέρων το πλεονάζον υλικό, εκκινείται μια διαδικασία που διασφαλίζει την υλοποίηση του γραφήματος της κορυφής της εργασίας στον κόμβο, δημιουργούνται συνδέσεις, αλλά η διαδικασία δεν επεξεργάζεται τα δεδομένα εκτός εάν ο κύριος κόμβος αποτύχει.
  • Αναδιαμόρφωση με ενεργή διαθεσιμότητα– η κορυφή του γραφήματος εργασιών υλοποιείται σε πολλούς κόμβους, οι οποίοι εκτελούν την επεξεργασία δεδομένων παράλληλα και μεταδίδουν το αποτέλεσμα.

Ως αποτέλεσμα, το σύστημα παρέχεται με ευέλικτη ετοιμότητα για αστοχίες τόσο σε επίπεδο λογισμικού όσο και σε επίπεδο υλικού, δυνατότητα αλλαγής της διαμόρφωσης των κόμβων χωρίς διακοπή της εργασίας και απώλεια απόδοσης, ενώ είναι ανεξάρτητο από την υλοποίηση του δικτύου, του αγωγού υπολογιστών και του κόμβου .

Σύναψη

Το ανεπτυγμένο σύστημα L-Net, σε αντίθεση με τα υπάρχοντα ανάλογα, περιλαμβάνει τη χρήση ενός ευρέος φάσματος χαρακτηριστικών υλικού των κόμβων DCS με την πλήρη συμβατότητα λογισμικού τους. Όταν οι κόμβοι λειτουργούν υπό τον έλεγχο ενός λειτουργικό σύστημα(QNX Neutrino) παρέχει τη δυνατότητα κατασκευής τους σε διάφορες αρχιτεκτονικές επεξεργαστών (x86, ARM, MIPS κ.λπ.) με ποικίλο σύνολο διεπαφών και περιφερειακών συσκευών. Η υλοποίηση κόμβων είναι δυνατή με τη μορφή επιτραπέζιων, βιομηχανικών Η/Υ, φορητών Η/Υ και υπολογιστών μονής πλακέτας. Όλα τα στοιχεία του συγκροτήματος λογισμικού του αναπτυγμένου DCS μπορούν να εκκινηθούν σε οποιονδήποτε κόμβο του με το QNX OS, ενώ παραμένει δυνατή η χρήση κόμβων με άλλο λειτουργικό σύστημα. Αυτή η προσέγγιση επιτρέπει σε κάθε κόμβο να χρησιμοποιείται για την επίλυση προβλημάτων τόσο σε επίπεδο χειριστή όσο και σε επίπεδο διαχείρισης. Επομένως, υπάρχει ευέλικτο σύστημααλληλεπιδράσεις μεταξύ ομοτίμων κόμβων χωρίς μια άκαμπτη ιεραρχία επιπέδων που είναι εγγενής στη γενικευμένη αρχιτεκτονική του DCS και συστημάτων που χρησιμοποιούν αυτή η αρχιτεκτονικήως βασικό. Το δίκτυο peer-to-peer απλοποιεί τις διαδικασίες ανάπτυξης, λειτουργίας, κλιμάκωσης και εντοπισμού σφαλμάτων του συστήματος.

Για την αξιοποίηση του υπολογιστικού δυναμικού του πλεονάζοντος υλικού στο ανεπτυγμένο σύστημα, προτείνονται αλγόριθμοι δυναμικής διαμόρφωσης και επαναδιαμόρφωσης που βασίζονται στο πρωτόκολλο δικτύου Qnet και στο λογισμικό δικτύου L-Net. Ο αλγόριθμος δυναμικής διαμόρφωσης βασίζεται στην κατανομή του υπολογιστικού φορτίου σε όλους τους κόμβους με διοχέτευση και παραλληλοποίηση εργασιών και δυναμική εξισορρόπηση του φορτίου στα κανάλια μετάδοσης δεδομένων μεταξύ των κόμβων. Ο αλγόριθμος επαναδιαμόρφωσης συστήματος υποθέτει την παρουσία τριών σεναρίων για την επαναφορά της λειτουργικότητας σε περίπτωση αστοχίας, ανάλογα με το διαθέσιμο υλικό, τις προτεραιότητες και τις εργασίες που έχουν ανατεθεί στο σύστημα: σε περίπτωση αστοχίας, με παθητική ετοιμότητα (κατανομή πόρων) και με ενεργή ετοιμότητα ( χρήση πόρων). Οι αλγόριθμοι δυναμικής διαμόρφωσης και επαναδιαμόρφωσης βελτιώνουν την απόδοση και την αξιοπιστία αξιοποιώντας τα υπάρχοντα αποθέματα υλικού στο σύστημα.

Ένα σημαντικό πλεονέκτημα του συστήματος είναι η μέγιστη διαφάνεια τόσο του υλικού όσο και του τεχνολογίες λογισμικού, γεγονός που καθιστά δυνατή τη σοβαρή απλοποίηση της τεχνικής υποστήριξης του συστήματος και την ανάπτυξη νέων ενοτήτων για αυτό.

Σύναψη

Οι αναπτυγμένες αρχιτεκτονικές λύσεις καθιστούν δυνατή τη βελτίωση τέτοιων δεικτών κατανεμημένων συστημάτων ελέγχου όπως η αξιοπιστία, η απόδοση, το κόστος, η επεκτασιμότητα και η απλότητα λόγω της δυνατότητας χρήσης ενός ευρέος φάσματος υλικού, της εφαρμογής αλγορίθμων δυναμικής διαμόρφωσης και της ορθολογικής χρήσης των πόρων του συστήματος.

  1. http://kazanets.narod.ru/DCSIntro.htm.
  2. http://kazanets.narod.ru/PCS7Overview.htm.
  3. http://www.rts.ua/rus/news/678/0/409.
  4. Zyl S. QNX Momentics: βασικά στοιχεία εφαρμογής. – Αγία Πετρούπολη: BHV-Petersburg, 2005.
  5. Krten R. Εισαγωγή στο νετρίνο QNX. Ένας οδηγός για την ανάπτυξη εφαρμογών σε πραγματικό χρόνο. – Αγία Πετρούπολη: BHV-Petersburg, 2011.

Λέξεις κλειδιά:κατανεμημένο σύστημα ελέγχου, υποστήριξη πληροφοριώνσυστήματα ελέγχου, κατανεμημένα επαναδιαμορφώσιμα συστήματα.

Αρχιτεκτονική ενός κατανεμημένου συστήματος ελέγχου που βασίζεται σε επαναδιαμορφώσιμο υπολογιστικό περιβάλλον πολλαπλών αγωγών L-Net

Σεργκέι Γιου. Potomskiy, Επίκουρος Καθηγητής του Εθνικού Ερευνητικού Πανεπιστημίου "Higher School of Economics".

Νικήτα Α. Πολούκο, πέμπτος φοιτητής του Εθνικού Ερευνητικού Πανεπιστημίου «Ανώτατη Οικονομική Σχολή». Βοηθός σπουδών. Προγραμματιστής. Πεδίο εκπαίδευσης: «Έλεγχος και πληροφορική στα τεχνικά συστήματα».

Περίληψη.Το άρθρο είναι αφιερωμένο σε ένα κατανεμημένο σύστημα ελέγχου που βασίζεται σε επαναδιαμορφώσιμο υπολογιστικό περιβάλλον πολλαπλών αγωγών. Δίνεται η αρχιτεκτονική του συστήματος. Επίσης, δίνονται τα βασικά χαρακτηριστικά και οι λειτουργικές ιδιότητες του συστήματος. Το άρθρο παρουσιάζει μια λογική για την επιλογή του λειτουργικού συστήματος. Τα βασικά πλεονεκτήματα του συστήματος σε σύγκριση με τις υπάρχουσες παρόμοιες εξελίξεις παρουσιάζονται στο άρθρο.

Λέξεις-κλειδιά:κατανεμημένο σύστημα ελέγχου, υποστήριξη λογισμικού συστημάτων, κατανεμημένο με δυνατότητα επαναδιαμόρφωσης.


Τα κατανεμημένα αυτοματοποιημένα συστήματα πληροφοριών έχουν γίνει πλέον καθημερινή πραγματικότητα. Πολυάριθμη εταιρική χρήση AIS κατανεμημένες βάσεις δεδομένωνδεδομένα. Έχουν αναπτυχθεί μέθοδοι διανομής δεδομένων και διαχείρισης κατανεμημένων δεδομένων, αρχιτεκτονικές προσεγγίσεις που διασφαλίζουν την επεκτασιμότητα του συστήματος, εφαρμόζοντας τις αρχές της αρχιτεκτονικής πελάτη-διακομιστή πολλαπλών επιπέδων, καθώς και αρχιτεκτονική μεσαίου επιπέδου.

Οι αρχιτεκτονικές κινητών έχουν αρχίσει να εφαρμόζονται στην πράξη. Αυτό ισχύει τόσο για συστήματα βάσεων δεδομένων όσο και για εφαρμογές Ιστού.

Μια προσέγγιση για την κατασκευή κατανεμημένων συστημάτων αναβιώνει, βασισμένη σε μια αρχιτεκτονική peer-to-peer (Peer-to-Peer), στην οποία, σε αντίθεση με την αρχιτεκτονική πελάτη-διακομιστή που κυριαρχεί στα κατανεμημένα συστήματα σήμερα, οι ρόλοι των αλληλεπιδρώντων μερών στο δίκτυο δεν είναι σταθερά. Εκχωρούνται ανάλογα με την κατάσταση στο δίκτυο και το φορτίο στους κόμβους του.

Λόγω της εντατικής ανάπτυξης των τεχνολογιών επικοινωνίας, τα mobile AIS αναπτύσσονται ενεργά. Αναπτηγμένος τεχνικά μέσακαι λογισμικό για τη δημιουργία τους. Χάρη σε αυτό, άρχισαν να αναπτύσσονται συστήματα βάσεων δεδομένων για φορητές συσκευές. Πολλές επιστημονικές ομάδες διεξάγουν έρευνα για τα ειδικά χαρακτηριστικά τέτοιων συστημάτων και δημιουργούν διάφορα πρωτότυπά τους. Οι τεχνολογίες Java έχουν γίνει ένα σημαντικό εργαλείο για την ανάπτυξη λογισμικού για φορητές συσκευές.

Έχει δημιουργηθεί ένα πρότυπο για το πρωτόκολλο ασύρματης εφαρμογής (WAP), το οποίο υποστηρίζεται ήδη από ορισμένα μοντέλα κινητών τηλεφώνων. Με βάση το WAP και Γλώσσα XMLΗ κοινοπραξία W3C έχει αναπτύξει μια γλώσσα σήμανσης για ασύρματες επικοινωνίες, την WML (Wireless Markup Language).

Στις εξελίξεις του AIS, έχει δοθεί μεγαλύτερη προσοχή στα μεταδεδομένα. Εδώ γίνονται βήματα προς δύο κατευθύνσεις - τυποποίηση της παρουσίασης μεταδεδομένων και εξασφάλιση της υποστήριξής τους στο σύστημα.

Το AIS χρησιμοποιεί μια ποικιλία μεθόδων και μέσων για την παρουσίαση μεταδεδομένων (διάφοροι τύποι αποθετηρίων μεταδεδομένων). Η έλλειψη ενοποίησης σε αυτόν τον τομέα περιπλέκει σημαντικά την επίλυση προβλημάτων κινητικότητας εφαρμογών, επαναχρησιμοποίησης και ολοκλήρωσης των πόρων πληροφοριών και των τεχνολογιών πληροφοριών, καθώς και του ανασχεδιασμού του AIS.

Για να ξεπεραστούν αυτές οι δυσκολίες, αναπτύσσονται ενεργά πρότυπα μεταδεδομένων που επικεντρώνονται σε διάφορες τεχνολογίες πληροφοριών. Σε αυτόν τον τομέα, υπάρχουν ήδη ορισμένα διεθνή, εθνικά και βιομηχανικά πρότυπα που καθορίζουν την παρουσίαση των μεταδεδομένων και την ανταλλαγή μεταδεδομένων στο AIS. Ορισμένα από αυτά έχουν ήδη αποκτήσει το καθεστώς των de facto προτύπων. Θα περιοριστούμε εδώ στο να αναφέρουμε μόνο τα σημαντικότερα από αυτά.

Πιθανώς το πρώτο de facto πρότυπο σε αυτήν την κατηγορία ήταν η γλώσσα περιγραφής δεδομένων CODASYL για βάσεις δεδομένων δομής δικτύου. Τα πιο πρόσφατα πρότυπα περιλαμβάνουν: το πρότυπο γλώσσας ερωτημάτων SQL για σχεσιακές βάσεις δεδομένων, το οποίο περιέχει τον ορισμό του λεγόμενου σχήματος πληροφοριών - ένα σύνολο αναπαραστάσεων σχημάτων σχεσιακών βάσεων δεδομένων. ένα στοιχείο του προτύπου βάσης δεδομένων αντικειμένων ODMG που περιγράφει τις διεπαφές αποθήκης σχήματος αντικειμένων. διεθνές πρότυπο IRDS (Information Resource Dictionary Systems), το οποίο περιγράφει συστήματα για τη δημιουργία και τη διατήρηση καταλόγων οργανωτικών πόρων πληροφοριών.

Στη συνέχεια, θα πρέπει να αναφέρουμε το πρότυπο CWM (Common Warehouse Metamodel) που αναπτύχθηκε από την κοινοπραξία OMG για την αναπαράσταση των μεταδεδομένων της αποθήκης δεδομένων, με βάση το πρότυπο OIM (Open Information Model) που είχε δημιουργηθεί προηγουμένως για ευρύτερους σκοπούς από την κοινοπραξία MDC (Meta Data Coalition).

Η νέα πλατφόρμα τεχνολογίας XML για τον Ιστό περιλαμβάνει επίσης πρότυπα για την αναπαράσταση μεταδεδομένων. Η υποστήριξη μεταδεδομένων είναι μια από τις σημαντικότερες καινοτομίες του Ιστού, αλλάζοντας ριζικά την τεχνολογία διαχείρισης των πόρων πληροφοριών του. Ενώ οι τεχνολογίες βάσεων δεδομένων αρχικά απαιτούσαν υποστήριξη για μεταδεδομένα, ο Ιστός πρώτης γενιάς δεν υποστήριζε μεταδεδομένα.

Τα πρότυπα μεταδεδομένων Ιστού περιλαμβάνουν ένα υποσύνολο της γλώσσας XML που χρησιμοποιείται για την περιγραφή λογική δομήΈγγραφα XML κάποιου τύπου. Αυτή η περιγραφή ονομάζεται DTD (Document Type Definition). Επιπλέον, η πλατφόρμα XML περιλαμβάνει το πρότυπο XML Schema, το οποίο προσφέρει πιο προηγμένες δυνατότητες για την περιγραφή εγγράφων XML. Το πρότυπο RDF (Resource Definition Framework) ορίζει μια απλή γλώσσα αναπαράστασης γνώσης για την περιγραφή του περιεχομένου των εγγράφων XML. Τέλος, το αναπτυσσόμενο πρότυπο OWL (Ontology Web Language) ορίζει μια επίσημη γλώσσα περιγραφής οντολογίας που προορίζεται για τον σημασιολογικό Ιστό.

Πρότυπο Γλώσσα UML(Unified Modeling Language), η οποία παρέχει μια αναπαράσταση μεταδεδομένων των εργαλείων CASE για ανάλυση και σχεδιασμό οπτικών αντικειμένων, που αναπτύχθηκε από την κοινοπραξία OMG. Αυτή η γλώσσα υποστηρίζεται σε πολλά προϊόντα λογισμικούΠΕΡΙΠΤΩΣΗ. Η κοινοπραξία OMG δημιούργησε επίσης το πρότυπο XMI (XML Metadata Interchange) για την ανταλλαγή μεταδεδομένων μεταξύ εργαλείων CASE χρησιμοποιώντας τη γλώσσα UML.

Αξίζει επίσης να αναφέρουμε εδώ το πρότυπο Dublin Core (DC) - ένα σύνολο στοιχείων μεταδεδομένων για την περιγραφή του περιεχομένου εγγράφων διαφόρων φύσεων. Αυτό το πρότυπο κέρδισε γρήγορα δημοτικότητα και βρήκε, ειδικότερα, ευρεία εφαρμογή στο περιβάλλον Web (βλ. Ενότητα 3.3).

Οι εργασίες για την ανάπτυξη υφιστάμενων και τη δημιουργία νέων προτύπων για την παρουσίαση μεταδεδομένων για το AIS συνεχίζονται. Περισσότερο καθέκαστατα εν λόγω πρότυπα βρίσκονται στην εγκυκλοπαίδεια.

Ετερογενή πολυϋπολογιστικά συστήματα

Ο μεγαλύτερος αριθμόςΤα υπάρχοντα κατανεμημένα συστήματα κατασκευάζονται σύμφωνα με το ετερογενές σχήμα πολλών υπολογιστών. Αυτό σημαίνει ότι οι υπολογιστές που αποτελούν μέρος αυτού του συστήματος μπορεί να είναι εξαιρετικά διαφορετικοί, για παράδειγμα, σε τύπο επεξεργαστή, μέγεθος μνήμης και απόδοση I/O. Στην πράξη, ο ρόλος ορισμένων από αυτούς τους υπολογιστές μπορεί να εκτελεστεί από παράλληλα συστήματα υψηλής απόδοσης, για παράδειγμα συστήματα πολλαπλών επεξεργαστών ή ομοιογενών πολυϋπολογιστών.

Το δίκτυο που τους συνδέει μπορεί επίσης να είναι εξαιρετικά ετερογενές.

Ένα παράδειγμα ετερογένειας είναι η δημιουργία μεγάλων συστημάτων πολλαπλών υπολογιστών χρησιμοποιώντας υπάρχοντα δίκτυα και κανάλια. Για παράδειγμα, δεν είναι ασυνήθιστο για πανεπιστημιακά κατανεμημένα συστήματα που αποτελούνται από τοπικά δίκτυαδιάφορες σχολές που συνδέονται με κανάλια υψηλής ταχύτητας. Στα παγκόσμια συστήματα, διαφορετικοί σταθμοί μπορούν με τη σειρά τους να συνδεθούν δημόσια δίκτυα, όπως υπηρεσίες δικτύου που προσφέρονται από εμπορικούς τηλεπικοινωνιακούς φορείς, π.χ. SMDSή Ρελέ πλαισίου.

Σε αντίθεση με τα συστήματα που συζητήθηκαν στις προηγούμενες παραγράφους, πολλά μεγάλης κλίμακας ετερογενή συστήματα πολλαπλών υπολογιστών απαιτούν μια σφαιρική προσέγγιση. Αυτό σημαίνει ότι η εφαρμογή δεν μπορεί να υποθέσει ότι ορισμένες επιδόσεις ή ορισμένες υπηρεσίες θα είναι διαθέσιμες σε αυτήν ανά πάσα στιγμή.

Προχωρώντας στα ζητήματα κλιμάκωσης που ενυπάρχουν στα ετερογενή συστήματα και λαμβάνοντας υπόψη την ανάγκη για μια σφαιρική προσέγγιση που είναι εγγενής στα περισσότερα από αυτά, σημειώνουμε ότι η δημιουργία εφαρμογών για ετερογενή πολυϋπολογιστικά συστήματα απαιτεί εξειδικευμένο λογισμικό. Με αυτό το πρόβλημα κατανεμημένα συστήματααντιμετωπίζω. Για να διασφαλιστεί ότι οι προγραμματιστές εφαρμογών δεν χρειάζεται να ανησυχούν για το υλικό που χρησιμοποιούν, τα κατανεμημένα συστήματα παρέχουν ένα περιτύλιγμα λογισμικού που προστατεύει τις εφαρμογές από ό,τι συμβαίνει στο υλικό (δηλαδή, παρέχουν διαφάνεια).

Το αρχαιότερο και πιο θεμελιώδες κατανεμημένη αρχιτεκτονικήείναι «πελάτης-διακομιστής», στην οποία ένα από τα μέρη (πελάτης) ξεκινά την ανταλλαγή δεδομένων στέλνοντας ένα αίτημα στο άλλο μέρος (διακομιστής). Ο διακομιστής επεξεργάζεται το αίτημα και, εάν είναι απαραίτητο, στέλνει μια απάντηση στον πελάτη (Εικ. 2.7).

Ρύζι. 2.7. Μοντέλο αλληλεπίδρασης πελάτη-διακομιστή

Η αλληλεπίδραση εντός του μοντέλου πελάτη-διακομιστή μπορεί να είναι είτε σύγχρονη, όταν ο πελάτης περιμένει από τον διακομιστή να ολοκληρώσει την επεξεργασία του αιτήματός του, είτε ασύγχρονη, στην οποία ο πελάτης στέλνει ένα αίτημα στον διακομιστή και συνεχίζει την εκτέλεσή του χωρίς να περιμένει απάντηση από τον υπηρέτης. Το μοντέλο πελάτη-διακομιστή μπορεί να χρησιμοποιηθεί ως βάση για την περιγραφή διαφόρων αλληλεπιδράσεων. Ας εξετάσουμε την αλληλεπίδραση των στοιχείων του λογισμικού που σχηματίζει ένα κατανεμημένο σύστημα.



Ρύζι. 2.8. Λογικά επίπεδα εφαρμογής

Ας εξετάσουμε μερικά τυπική εφαρμογή, τα οποία, σύμφωνα με τις σύγχρονες έννοιες, μπορούν να χωριστούν στα ακόλουθα λογικά επίπεδα (Εικ. 2.8): διεπαφή χρήστη(IP), λογική εφαρμογών (AL) και πρόσβαση δεδομένων (DA), εργασία με βάση δεδομένων (DB). Ο χρήστης του συστήματος αλληλεπιδρά με αυτό μέσω της διεπαφής χρήστη, η βάση δεδομένων αποθηκεύει τα δεδομένα που περιγράφουν θεματική περιοχήεφαρμογή και το επίπεδο λογικής εφαρμογής υλοποιεί όλους τους αλγόριθμους που σχετίζονται με τον τομέα της εφαρμογής.

Γιατί στην πράξη διαφορετικούς χρήστεςΤα συστήματα συνήθως ενδιαφέρονται για πρόσβαση στα ίδια δεδομένα, η απλούστερη κατανομή των λειτουργιών ενός τέτοιου συστήματος μεταξύ πολλών υπολογιστών θα ήταν η διαίρεση των λογικών επιπέδων της εφαρμογής μεταξύ ενός τμήματος διακομιστή της εφαρμογής, υπεύθυνος για την πρόσβαση στα δεδομένα, και εξαρτήματα πελάτη που βρίσκονται σε πολλούς υπολογιστές, υλοποιώντας τη διεπαφή χρήστη. Η λογική της εφαρμογής μπορεί να εκχωρηθεί στον διακομιστή, στους πελάτες ή να διαιρεθεί μεταξύ τους (Εικόνα 2.9).

Ρύζι. 2.9. Αρχιτεκτονική δύο επιπέδων

Η αρχιτεκτονική των εφαρμογών που βασίζονται σε αυτήν την αρχή ονομάζεται πελάτης-διακομιστής ή δύο συνδέσμων. Στην πράξη, τέτοια συστήματα συχνά δεν ταξινομούνται ως κατανεμημένα, αλλά τυπικά μπορούν να θεωρηθούν ως οι απλούστεροι εκπρόσωποι των κατανεμημένων συστημάτων.

Η ανάπτυξη της αρχιτεκτονικής πελάτη-διακομιστή είναι αρχιτεκτονική τριών επιπέδων, στο οποίο η διεπαφή χρήστη, η λογική της εφαρμογής και η πρόσβαση στα δεδομένα διαχωρίζονται σε ανεξάρτητα στοιχεία του συστήματος που μπορούν να εκτελεστούν σε ανεξάρτητους υπολογιστές(Εικόνα 2.10).

Ρύζι. 2.10. Αρχιτεκτονική τριών επιπέδων

Το αίτημα του χρήστη σε τέτοια συστήματα επεξεργάζεται διαδοχικά από το τμήμα πελάτη του συστήματος, τον λογικό διακομιστή εφαρμογής και τον διακομιστή βάσης δεδομένων. Ωστόσο, συνήθως ένα κατανεμημένο σύστημα νοείται ως ένα σύστημα με πιο σύνθετη αρχιτεκτονική από ένα τριών επιπέδων.

Ρύζι. 2.11. Κατανεμημένο σύστημα λιανικής

Σε σχέση με τις εφαρμογές αυτοματισμού επιχειρήσεων, τα κατανεμημένα συστήματα ονομάζονται συνήθως συστήματα με λογική εφαρμογής κατανεμημένη μεταξύ πολλών στοιχείων του συστήματος, καθένα από τα οποία μπορεί να εκτελεστεί σε ξεχωριστός υπολογιστής. Για παράδειγμα, η εφαρμογή της λογικής εφαρμογής ενός συστήματος λιανικών πωλήσεων πρέπει να χρησιμοποιεί αιτήματα στη λογική εφαρμογής τρίτων, όπως προμηθευτές αγαθών, συστήματα ηλεκτρονικών πληρωμών ή τράπεζες που παρέχουν καταναλωτικά δάνεια (Εικόνα 2.11).

Ένα άλλο παράδειγμα κατανεμημένου συστήματος είναι τα δίκτυα άμεση ανταλλαγή δεδομένων μεταξύ πελατών (δίκτυα peer-to-peer). Εάν το προηγούμενο παράδειγμα είχε αρχιτεκτονική «δέντρου», τότε τα δίκτυα άμεσης ανταλλαγής οργανώνονται με πιο περίπλοκο τρόπο, Εικ. 2.12. Παρόμοια συστήματαείναι επί του παρόντος πιθανώς ένα από τα μεγαλύτερα κατανεμημένα συστήματα που υπάρχουν, συνδέοντας εκατομμύρια υπολογιστές.

Ρύζι. 2.12. Σύστημα άμεσης ανταλλαγής δεδομένων μεταξύ πελατών

Αυτός ο τύπος συστήματος είναι πιο περίπλοκος όσον αφορά την οργάνωση του συστήματος. Η ουσία διανεμήθηκε συστήματαείναι η αποθήκευση τοπικών αντιγράφων σημαντικών δεδομένων.

Σχηματικά έτσι αρχιτεκτονικήμπορεί να αναπαρασταθεί όπως φαίνεται στο Σχ. 5.6.

Ρύζι. 5.6.Αρχιτεκτονική Κατανεμημένων Συστημάτων

Περισσότερο από το 95% των δεδομένων που χρησιμοποιούνται στη διαχείριση επιχειρήσεων μπορούν να τοποθετηθούν σε έναν προσωπικό υπολογιστή, επιτρέποντάς του να λειτουργεί ανεξάρτητα. Η ροή των διορθώσεων και των προσθηκών που δημιουργούνται σε αυτόν τον υπολογιστή είναι αμελητέα σε σύγκριση με τον όγκο των δεδομένων που χρησιμοποιούνται. Επομένως, εάν αποθηκεύετε δεδομένα που χρησιμοποιούνται συνεχώς στους ίδιους τους υπολογιστές και οργανώνετε την ανταλλαγή διορθώσεων και προσθηκών στα αποθηκευμένα δεδομένα μεταξύ τους, τότε η συνολική μεταδιδόμενη κίνηση θα μειωθεί απότομα. Αυτό καθιστά δυνατή τη μείωση των απαιτήσεων για κανάλια επικοινωνίας μεταξύ υπολογιστών και τη συχνότερη χρήση ασύγχρονης επικοινωνίας και χάρη σε αυτό, δημιουργεί αξιόπιστα λειτουργικά κατανεμημένα συστήματα πληροφοριών που χρησιμοποιούν ασταθείς επικοινωνίες όπως το Διαδίκτυο, οι κινητές επικοινωνίες και τα εμπορικά δορυφορικά κανάλια για τη σύνδεση μεμονωμένων στοιχεία. Και η ελαχιστοποίηση της κίνησης μεταξύ των στοιχείων θα κάνει το κόστος λειτουργίας μιας τέτοιας σύνδεσης αρκετά προσιτό. Φυσικά, η εφαρμογή ενός τέτοιου συστήματος δεν είναι στοιχειώδης, και απαιτεί επίλυση μιας σειράς προβλημάτων, ένα από τα οποία είναι ο έγκαιρος συγχρονισμός δεδομένων.

Κάθε σταθμός εργασίας είναι ανεξάρτητος, περιέχει μόνο τις πληροφορίες με τις οποίες χρειάζεται για να εργαστεί και η συνάφεια των δεδομένων σε όλο το σύστημα διασφαλίζεται μέσω της συνεχούς ανταλλαγής μηνυμάτων με άλλους σταθμούς εργασίας. Η ανταλλαγή μηνυμάτων μεταξύ σταθμών εργασίας μπορεί να υλοποιηθεί με διάφορους τρόπους, από την αποστολή δεδομένων μέσω email έως τη μετάδοση δεδομένων μέσω δικτύων.

Ένα άλλο πλεονέκτημα αυτού του σχήματος λειτουργίας και αρχιτεκτονικήσύστημα είναι να διασφαλίσει τη δυνατότητα προσωπικής ευθύνης για την ασφάλεια των δεδομένων. Δεδομένου ότι τα δεδομένα που είναι διαθέσιμα σε έναν συγκεκριμένο χώρο εργασίας βρίσκονται μόνο σε αυτόν τον υπολογιστή, κατά τη χρήση εργαλείων κρυπτογράφησης και προσωπικών κλειδιών υλικού, η πρόσβαση στα δεδομένα από τρίτα μέρη, συμπεριλαμβανομένων των διαχειριστών IT, αποκλείεται.

Τέτοιος αρχιτεκτονικήΤο σύστημα σάς επιτρέπει επίσης να οργανώνετε κατανεμημένους υπολογισμούς μεταξύ των μηχανών-πελατών. Για παράδειγμα, ο υπολογισμός οποιασδήποτε εργασίας που απαιτεί μεγάλους υπολογισμούς μπορεί να διανεμηθεί μεταξύ γειτονικών σταθμών εργασίας λόγω του γεγονότος ότι, κατά κανόνα, έχουν τις ίδιες πληροφορίες στις βάσεις δεδομένων τους και, έτσι, επιτυγχάνουν τη μέγιστη απόδοση του συστήματος.

Κατανεμημένα συστήματα με αντιγραφή

Τα δεδομένα μεταξύ διαφορετικών σταθμών εργασίας και μιας κεντρικής αποθήκευσης δεδομένων μεταφέρονται με αναπαραγωγή (Εικ. 5.7). Κατά την εισαγωγή πληροφοριών σε σταθμούς εργασίας, τα δεδομένα καταγράφονται επίσης σε μια τοπική βάση δεδομένων και μόνο στη συνέχεια συγχρονίζονται.

Ρύζι. 5.7.Αρχιτεκτονική κατανεμημένων συστημάτων με αντιγραφή

Κατανεμημένα συστήματα με στοιχεία απομακρυσμένης εκτέλεσης

Υπάρχουν ορισμένα χαρακτηριστικά που δεν μπορούν να εφαρμοστούν αποτελεσματικά σε ένα συμβατικό κατανεμημένο αναπαραγόμενο σύστημα. Αυτά τα χαρακτηριστικά περιλαμβάνουν:

    χρήση δεδομένων από οντότητες που είναι αποθηκευμένες σε έναν απομακρυσμένο διακομιστή (κόμβο)·

    μερική χρήση δεδομένων από οντότητες που είναι αποθηκευμένες σε διαφορετικούς διακομιστές (κόμβους).

    χρήση ξεχωριστής λειτουργικότητας σε ειδικό διακομιστή (κόμβο).

Καθένας από τους περιγραφόμενους τύπους χρησιμοποιεί μια κοινή αρχή: το πρόγραμμα-πελάτη είτε έχει άμεση πρόσβαση σε έναν αποκλειστικό (απομακρυσμένο) διακομιστή είτε σε μια τοπική βάση δεδομένων, η οποία ενσωματώνει την πρόσβαση σε έναν απομακρυσμένο διακομιστή (Εικ. 5.8).

Ρύζι. 5.8.Αρχιτεκτονική κατανεμημένων συστημάτων με απομακρυσμένη εκτέλεση

Στο προηγούμενο κεφάλαιο, εξετάσαμε στενά συζευγμένα συστήματα πολλαπλών επεξεργαστών με κοινόχρηστη μνήμη, κοινόχρηστες δομές δεδομένων πυρήνα και κοινόχρηστο απόθεμα από το οποίο καλούνται οι διεργασίες για εκτέλεση. Συχνά, ωστόσο, είναι επιθυμητό προκειμένου να εξασφαλιστεί μοιρασιάπόρους για τη διανομή των επεξεργαστών με τέτοιο τρόπο ώστε να είναι αυτόνομοι από το περιβάλλον λειτουργίας και τις συνθήκες λειτουργίας. Ας, για παράδειγμα, ένας χρήστης ενός προσωπικού υπολογιστή πρέπει να έχει πρόσβαση σε αρχεία που βρίσκονται σε ένα μεγαλύτερο μηχάνημα, αλλά ταυτόχρονα να διατηρεί τον έλεγχο του προσωπικού υπολογιστή. Ακόμα κι αν μεμονωμένα προγράμματα, όπως το uucp, η υποστήριξη μεταφοράς αρχείων δικτύου και άλλες λειτουργίες δικτύου, η χρήση τους δεν θα είναι κρυφή από τον χρήστη αφού ο χρήστης γνωρίζει ότι εργάζεται σε δίκτυο. Επιπλέον, πρέπει να σημειωθεί ότι προγράμματα όπως τα προγράμματα επεξεργασίας κειμένου δεν λειτουργούν με διαγραμμένα αρχεία όπως με τα κανονικά. Οι χρήστες θα πρέπει να έχουν τυπική λειτουργικότητα συστήματος UNIX και, με εξαίρεση πιθανή απώλειαστην απόδοση, δεν πρέπει να αντιλαμβάνεται τη διασταύρωση των ορίων της μηχανής. Έτσι, για παράδειγμα, η εργασία του συστήματος ανοιχτής και ανάγνωσης λειτουργεί με ενεργοποιημένα αρχεία απομακρυσμένα μηχανήματαδεν πρέπει να διαφέρει από την εργασία τους με αρχεία που ανήκουν σε τοπικά συστήματα.

Η αρχιτεκτονική του κατανεμημένου συστήματος φαίνεται στο Σχήμα 13.1. Κάθε υπολογιστής που φαίνεται στο σχήμα είναι μια αυτόνομη μονάδα που αποτελείται από CPU, μνήμη και περιφερειακά. Η συμμόρφωση με το μοντέλο δεν παραβιάζεται ακόμα κι αν ο υπολογιστής δεν διαθέτει τοπικό σύστημα αρχείων: πρέπει να διαθέτει περιφερειακές συσκευές για επικοινωνία με άλλα μηχανήματα και όλα τα αρχεία που ανήκουν σε αυτόν μπορούν να βρίσκονται σε άλλον υπολογιστή. Η φυσική μνήμη που είναι διαθέσιμη σε κάθε μηχανή είναι ανεξάρτητη από διεργασίες που εκτελούνται σε άλλα μηχανήματα. Αυτό το χαρακτηριστικό διακρίνει τα κατανεμημένα συστήματα από τα συστήματα στενής σύνδεσης. πολυεπεξεργαστικών συστημάτωνσυζητήθηκε στο προηγούμενο κεφάλαιο. Κατά συνέπεια, ο πυρήνας του συστήματος σε κάθε μηχανή λειτουργεί ανεξάρτητα από τις εξωτερικές συνθήκες λειτουργίας του κατανεμημένου περιβάλλοντος.

Εικόνα 13.1. Μοντέλο συστήματος με κατανεμημένη αρχιτεκτονική


Τα κατανεμημένα συστήματα, που περιγράφονται καλά στη βιβλιογραφία, χωρίζονται παραδοσιακά στις ακόλουθες κατηγορίες:

Περιφερειακά συστήματα, τα οποία είναι ομάδες μηχανών που έχουν μια ευδιάκριτη κοινότητα και συνδέονται με μία (συνήθως μεγαλύτερη) μηχανή. Οι περιφερειακοί επεξεργαστές μοιράζονται τον φόρτο εργασίας τους με τον κεντρικό επεξεργαστή και προωθούν όλες τις κλήσεις προς το λειτουργικό σύστημα σε αυτόν. Ο σκοπός του περιφερειακού συστήματος είναι να αυξήσει τη συνολική απόδοση του δικτύου και να επιτρέψει στον επεξεργαστή να αφοσιωθεί σε μια ενιαία διαδικασία σε ένα λειτουργικό περιβάλλον UNIX. Το σύστημα λειτουργεί ως ξεχωριστή μονάδα. Σε αντίθεση με άλλα μοντέλα κατανεμημένων συστημάτων, τα περιφερειακά συστήματα δεν έχουν πραγματική αυτονομία, εκτός από περιπτώσεις που σχετίζονται με την αποστολή διεργασιών και την τοπική εκχώρηση μνήμης.

Κατανεμημένα συστήματα όπως το "Newcastle", που επιτρέπουν την απομακρυσμένη επικοινωνία χρησιμοποιώντας τα ονόματα των απομακρυσμένων αρχείων στη βιβλιοθήκη (το όνομα λαμβάνεται από το άρθρο "The Newcastle Connection" - βλ.). Τα διαγραμμένα αρχεία έχουν μια προδιαγραφή (όνομα στοιχείου) που περιέχει ειδικούς χαρακτήρες ή ένα πρόσθετο στοιχείο ονόματος που προηγείται της ρίζας του συστήματος αρχείων στη διαδρομή αναζήτησης. Η εφαρμογή αυτής της μεθόδου δεν περιλαμβάνει αλλαγές στον πυρήνα του συστήματος, με αποτέλεσμα να είναι απλούστερη από άλλες μεθόδους που συζητούνται σε αυτό το κεφάλαιο, αλλά λιγότερο ευέλικτη.

Απόλυτα «διαφανή» κατανεμημένα συστήματα, στα οποία για να αποκτήσετε πρόσβαση σε αρχεία που βρίσκονται σε άλλα μηχανήματα, αρκεί να προσδιορίσετε τα τυπικά σύνθετα ονόματα τους. Είναι ευθύνη του πυρήνα να αναγνωρίσει αυτά τα αρχεία ως διαγραμμένα. Οι διαδρομές αναζήτησης για αρχεία, που καθορίζονται στα κατάλληλα ονόματά τους, διασχίζουν τα όρια του μηχανήματος στα σημεία προσάρτησης, ανεξάρτητα από το πόσα τέτοια σημεία σχηματίστηκαν κατά την προσάρτηση συστημάτων αρχείων σε δίσκους.

Σε αυτό το κεφάλαιο θα εξετάσουμε την αρχιτεκτονική κάθε μοντέλου. όλες οι πληροφορίες που παρέχονται δεν βασίζονται στα αποτελέσματα συγκεκριμένων εξελίξεων, αλλά σε πληροφορίες που δημοσιεύονται σε διάφορα τεχνικά άρθρα. Αυτό προϋποθέτει ότι η διευθυνσιοδότηση, η δρομολόγηση, ο έλεγχος ροής, η ανίχνευση και η διόρθωση σφαλμάτων είναι ευθύνη των μονάδων πρωτοκόλλου και των προγραμμάτων οδήγησης συσκευών, με άλλα λόγια, ότι κάθε μοντέλο είναι ανεξάρτητο από το δίκτυο που χρησιμοποιείται. Παραδείγματα χρήσης συναρτήσεων συστήματος που δίνονται στο επόμενη ενότηταγια περιφερειακά συστήματα, λειτουργήστε με παρόμοιο τρόπο για συστήματα όπως το Newcastle και για απολύτως «διαφανή» συστήματα, τα οποία θα συζητηθούν αργότερα. Επομένως, θα τα εξετάσουμε λεπτομερώς μία φορά και στις ενότητες που είναι αφιερωμένες σε άλλους τύπους συστημάτων, θα επικεντρωθούμε κυρίως στα χαρακτηριστικά που διακρίνουν αυτά τα μοντέλα από όλα τα άλλα.

13.1 ΠΕΡΙΦΕΡΕΙΑΚΟΙ ΕΠΕΞΕΡΓΑΣΤΕΣ

Η αρχιτεκτονική του περιφερειακού συστήματος φαίνεται στο Σχήμα 13.2. Ο σκοπός αυτής της διαμόρφωσης είναι να βελτιώσει τη συνολική απόδοση του δικτύου με την ανακατανομή των διεργασιών που εκτελούνται μεταξύ του κεντρικού και περιφερειακού επεξεργαστή. Κάθε περιφερειακός επεξεργαστής δεν έχει άλλα τοπικά περιφερειακά στη διάθεσή του από αυτά που χρειάζεται για να επικοινωνήσει με τον κεντρικό επεξεργαστή. Το σύστημα αρχείων και όλες οι συσκευές είναι στη διάθεση του κεντρικού επεξεργαστή. Ας υποθέσουμε ότι όλες οι διεργασίες χρήστη εκτελούνται σε έναν περιφερειακό επεξεργαστή και δεν κινούνται μεταξύ περιφερειακών επεξεργαστών. Αφού μεταφερθούν στον επεξεργαστή, παραμένουν σε αυτόν μέχρι την ολοκλήρωση. Ο περιφερειακός επεξεργαστής περιέχει μια ελαφριά έκδοση του λειτουργικού συστήματος που έχει σχεδιαστεί για να επεξεργάζεται τοπικές κλήσεις προς το σύστημα, να διαχειρίζεται διακοπές, να εκχωρεί μνήμη, να λειτουργεί με πρωτόκολλα δικτύουκαι με το πρόγραμμα οδήγησης της συσκευής για επικοινωνία με τον κεντρικό επεξεργαστή.

Όταν το σύστημα αρχικοποιείται στον κεντρικό επεξεργαστή, ο πυρήνας φορτώνει το τοπικό λειτουργικό σύστημα σε κάθε έναν από τους περιφερειακούς επεξεργαστές μέσω γραμμών επικοινωνίας. Οποιαδήποτε διεργασία που εκτελείται στην περιφέρεια σχετίζεται με μια δορυφορική διεργασία που ανήκει στον κεντρικό επεξεργαστή (βλ.). Όταν μια διεργασία που εκτελείται σε έναν περιφερειακό επεξεργαστή καλεί μια λειτουργία συστήματος που απαιτεί αποκλειστικά τις υπηρεσίες του κεντρικού επεξεργαστή, η περιφερειακή διεργασία επικοινωνεί με τον συνοδό της και το αίτημα αποστέλλεται στον κεντρικό επεξεργαστή για επεξεργασία. Η δορυφορική διαδικασία εκτελεί τη λειτουργία του συστήματος και στέλνει τα αποτελέσματα πίσω στον περιφερειακό επεξεργαστή. Η σχέση μεταξύ μιας περιφερειακής διεργασίας και του συνοδευτικού της είναι παρόμοια με τη σχέση πελάτη-διακομιστή που συζητήσαμε λεπτομερώς στο Κεφάλαιο 11: η περιφερειακή διεργασία λειτουργεί ως πελάτης της συνοδευτικής της, η οποία υποστηρίζει λειτουργίες συστήματος αρχείων. Σε αυτήν την περίπτωση, η διαδικασία απομακρυσμένου διακομιστή έχει μόνο έναν πελάτη. Στην Ενότητα 13.4 θα εξετάσουμε τις διεργασίες διακομιστή που έχουν πολλούς πελάτες.


Εικόνα 13.2. Διαμόρφωση περιφερειακού συστήματος


Εικόνα 13.3. Μορφές μηνυμάτων

Όταν μια περιφερειακή διεργασία καλεί μια λειτουργία συστήματος που μπορεί να υποβληθεί σε τοπική επεξεργασία, ο πυρήνας δεν χρειάζεται να στείλει αίτημα στη συνοδευτική διεργασία. Έτσι, για παράδειγμα, για να αποκτήσετε πρόσθετη μνήμημια διεργασία μπορεί να καλέσει τη συνάρτηση sbrk για τοπική εκτέλεση. Ωστόσο, εάν απαιτούνται οι υπηρεσίες της κεντρικής μονάδας επεξεργασίας, για παράδειγμα, για το άνοιγμα ενός αρχείου, ο πυρήνας κωδικοποιεί πληροφορίες σχετικά με τις παραμέτρους που μεταβιβάζονται στην καλούμενη συνάρτηση και τις συνθήκες εκτέλεσης της διεργασίας σε ένα μήνυμα που αποστέλλεται στη συνοδευτική διεργασία (Εικόνα 13.3). . Το μήνυμα περιλαμβάνει ένα σημάδι από το οποίο προκύπτει ότι η λειτουργία του συστήματος εκτελείται από μια δορυφορική διεργασία για λογαριασμό του πελάτη, οι παράμετροι μεταβιβάζονται στη συνάρτηση και δεδομένα σχετικά με το περιβάλλον εκτέλεσης της διαδικασίας (για παράδειγμα, κωδικοί αναγνώρισης χρήστη και ομάδας), τα οποία διαφέρουν για διαφορετικές λειτουργίες. Το υπόλοιπο μήνυμα είναι δεδομένα μεταβλητό μήκος(για παράδειγμα, ένα αναγνωρισμένο όνομα αρχείου ή δεδομένα που θα γραφτούν από τη συνάρτηση εγγραφής).

Η δορυφορική διαδικασία αναμένει αιτήματα από την περιφερειακή διαδικασία. Όταν λαμβάνει ένα αίτημα, αποκωδικοποιεί το μήνυμα, καθορίζει τον τύπο της λειτουργίας του συστήματος, την εκτελεί και μετατρέπει τα αποτελέσματα σε μια απάντηση που αποστέλλεται στην περιφερειακή διαδικασία. Η απόκριση, εκτός από τα αποτελέσματα της λειτουργίας συστήματος, περιλαμβάνει ένα μήνυμα σφάλματος (εάν υπάρχει), έναν αριθμό σήματος και έναν πίνακα δεδομένων μεταβλητού μήκους που περιέχει, για παράδειγμα, πληροφορίες που διαβάζονται από ένα αρχείο. Η περιφερειακή διεργασία σταματά μέχρι να λάβει μια απάντηση κατά τη λήψη της, την αποκρυπτογραφεί και μεταδίδει τα αποτελέσματα στον χρήστη. Αυτό είναι το γενικό σχήμα για την επεξεργασία κλήσεων προς το λειτουργικό σύστημα. Τώρα ας προχωρήσουμε σε μια πιο λεπτομερή εξέταση των επιμέρους λειτουργιών.

Για να εξηγήσουμε πώς λειτουργεί το περιφερειακό σύστημα, θα εξετάσουμε μια σειρά από λειτουργίες: getppid, open, write, fork, exit και signal. Η συνάρτηση getppid είναι αρκετά απλή, αφού ασχολείται με απλές φόρμες αιτήματος και απόκρισης που ανταλλάσσονται μεταξύ του περιφερειακού και του κεντρικού επεξεργαστή. Ο πυρήνας στον περιφερειακό επεξεργαστή δημιουργεί ένα μήνυμα που υποδεικνύει ότι η ζητούμενη συνάρτηση είναι η συνάρτηση getppid και στέλνει το αίτημα στον κεντρικό επεξεργαστή. Μια συνοδευτική διαδικασία στην CPU διαβάζει το μήνυμα με περιφερειακός επεξεργαστής, αποκρυπτογραφεί τον τύπο της συνάρτησης συστήματος, την εκτελεί και αποκτά το αναγνωριστικό του γονέα της. Στη συνέχεια δημιουργεί μια απόκριση και τη μεταδίδει σε μια περιφερειακή διαδικασία που περιμένει στο άλλο άκρο της γραμμής επικοινωνίας. Όταν ο περιφερειακός επεξεργαστής λαμβάνει μια απάντηση, τη μεταβιβάζει στη διαδικασία που ονομάζεται λειτουργία συστήματος getppid. Εάν η περιφερειακή διεργασία αποθηκεύει δεδομένα (όπως το αναγνωριστικό γονικής διεργασίας) στην τοπική μνήμη, δεν χρειάζεται να επικοινωνήσει καθόλου με το συνοδευτικό της.

Εάν καλείται η λειτουργία ανοιχτού συστήματος, η περιφερειακή διεργασία στέλνει ένα αντίστοιχο μήνυμα στο συνοδευτικό της, το οποίο περιλαμβάνει το όνομα του αρχείου και άλλες παραμέτρους. Εάν είναι επιτυχής, η δορυφορική διαδικασία εκχωρεί ένα ευρετήριο και ένα σημείο εισόδου στον πίνακα αρχείων, εκχωρεί μια καταχώρηση πίνακα περιγραφής αρχείου χρήστη στο χώρο της και επιστρέφει τον περιγραφέα αρχείου στην περιφερειακή διαδικασία. Όλο αυτό το διάστημα, στην άλλη άκρη της γραμμής επικοινωνίας, η περιφερειακή διαδικασία περιμένει απάντηση. Δεν έχει καμία δομή στη διάθεσή του που θα αποθηκεύει πληροφορίες σχετικά με το αρχείο που ανοίγει. Η λαβή που επιστρέφεται από το open είναι ένας δείκτης σε μια καταχώρηση στον πίνακα περιγραφής αρχείου χρήστη που ανήκει στη συνοδευτική διαδικασία. Τα αποτελέσματα της συνάρτησης φαίνονται στο Σχήμα 13.4.


Εικόνα 13.4. Κλήση της ανοιχτής συνάρτησης από περιφερειακή διεργασία

Εάν καλείται η συνάρτηση συστήματος εγγραφής, ο περιφερειακός επεξεργαστής δημιουργεί ένα μήνυμα που αποτελείται από το χαρακτηριστικό της συνάρτησης εγγραφής, τον περιγραφέα αρχείου και την ποσότητα των δεδομένων που γράφονται. Στη συνέχεια, από το χώρο της περιφερειακής διαδικασίας, αντιγράφει τα δεδομένα στη δορυφορική διαδικασία κατά μήκος της γραμμής επικοινωνίας. Η δορυφορική διαδικασία αποκρυπτογραφεί το ληφθέν μήνυμα, διαβάζει τα δεδομένα από τη γραμμή επικοινωνίας και τα γράφει στο αντίστοιχο αρχείο (ο περιγραφέας που περιέχεται στο μήνυμα χρησιμοποιείται ως δείκτης στο ευρετήριο και καταχώριση του οποίου στον πίνακα αρχείων). Ολοι καθορισμένες ενέργειεςεκτελείται στον κεντρικό επεξεργαστή. Στο τέλος της εργασίας της, η δορυφορική διαδικασία στέλνει ένα μήνυμα στην περιφερειακή διεργασία που επιβεβαιώνει τη λήψη του μηνύματος και περιέχει τον αριθμό των byte δεδομένων που αντιγράφηκαν επιτυχώς στο αρχείο. Η λειτουργία ανάγνωσης είναι παρόμοια. ο δορυφόρος ενημερώνει την περιφερειακή διαδικασία για τον αριθμό των byte που πραγματικά διαβάστηκαν (στην περίπτωση ανάγνωσης δεδομένων από τερματικό ή από κανάλι, ο αριθμός αυτός δεν συμπίπτει πάντα με τον αριθμό που καθορίζεται στο αίτημα). Και οι δύο λειτουργίες ενδέχεται να απαιτούν πολλαπλές μεταφορές για να ολοκληρωθούν. πληροφοριακά μηνύματαμέσω του δικτύου, το οποίο καθορίζεται από τον όγκο των δεδομένων που αποστέλλονται και το μέγεθος πακέτα δικτύου.

Η μόνη λειτουργία που απαιτεί τροποποίηση όταν εκτελείται στη CPU είναι η λειτουργία συστήματος περόνης. Όταν μια διεργασία εκτελεί αυτή τη λειτουργία στη CPU, ο πυρήνας επιλέγει έναν περιφερειακό επεξεργαστή για αυτόν και στέλνει ένα μήνυμα σε μια ειδική διεργασία - τον διακομιστή, ενημερώνοντας τον τελευταίο ότι πρόκειται να ξεκινήσει την εκφόρτωση της τρέχουσας διαδικασίας. Υποθέτοντας ότι ο διακομιστής έχει αποδεχτεί το αίτημα, ο πυρήνας χρησιμοποιεί τη συνάρτηση fork για να δημιουργήσει μια νέα περιφερειακή διεργασία, εκχωρώντας μια καταχώρηση πίνακα διεργασιών και χώρο διευθύνσεων. Η CPU μεταφορτώνει ένα αντίγραφο της διαδικασίας που κάλεσε τη συνάρτηση fork στον περιφερειακό επεξεργαστή, αντικαθιστώντας τον πρόσφατα εκχωρημένο χώρο διευθύνσεων, δημιουργεί έναν τοπικό δορυφόρο για να επικοινωνήσει με τη νέα περιφερειακή διαδικασία και στέλνει ένα μήνυμα στην περιφερειακή για να αρχικοποιήσει τον μετρητή προγράμματος για η νέα διαδικασία. Η δορυφορική διεργασία (στην CPU) είναι θυγατρική της διαδικασίας που ονομάζεται συνάρτηση πιρουνιού. Η περιφερειακή διαδικασία είναι τεχνικά ένα παιδί της διαδικασίας διακομιστή, αλλά λογικά είναι ένα παιδί της διαδικασίας που ονομάζεται συνάρτηση διχάλου. Η διαδικασία διακομιστή δεν έχει λογική σύνδεσημε το παιδί αφού ολοκληρωθεί η λειτουργία πιρουνιού. Η μόνη δουλειά του διακομιστή είναι να βοηθήσει στην εκφόρτωση του παιδιού. Λόγω της ισχυρής σύζευξης μεταξύ των στοιχείων του συστήματος (οι περιφερειακοί επεξεργαστές δεν έχουν αυτονομία), η περιφερειακή διαδικασία και η δορυφορική διαδικασία έχουν τον ίδιο κωδικό αναγνώρισης. Η σχέση μεταξύ των διαδικασιών φαίνεται στο Σχήμα 13.5: η συνεχής γραμμή δείχνει τη σχέση γονέα-παιδιού, η διακεκομμένη γραμμή δείχνει τη σχέση μεταξύ ίσων εταίρων.


Εικόνα 13.5. Εκτέλεση πιρουνιού στην CPU

Όταν μια διεργασία εκτελεί τη λειτουργία fork σε έναν περιφερειακό επεξεργαστή, στέλνει ένα μήνυμα στον συνοδό της στη CPU, η οποία στη συνέχεια εκτελεί ολόκληρη την ακολουθία ενεργειών που περιγράφονται παραπάνω. Ο δορυφόρος επιλέγει έναν νέο περιφερειακό επεξεργαστή και κάνει τις απαραίτητες προετοιμασίες για την εκφόρτωση της εικόνας της παλιάς διεργασίας: στέλνει ένα αίτημα στη μητρική περιφερειακή διεργασία να διαβάσει την εικόνα του, ως απάντηση στην οποία η μετάδοση των ζητούμενων δεδομένων ξεκινά στο άλλο άκρο του καναλιού επικοινωνίας. Ο δορυφόρος διαβάζει τη μεταδιδόμενη εικόνα και την ξαναγράφει στον περιφερειακό απόγονο. Όταν ολοκληρωθεί η εκφόρτωση της εικόνας, η διαδικασία του δορυφόρου εκτελεί τη συνάρτηση fork, δημιουργώντας το παιδί της στη CPU και μεταβιβάζει την τιμή του μετρητή προγράμματος στο περιφερειακό παιδί, έτσι ώστε το τελευταίο να γνωρίζει σε ποια διεύθυνση να ξεκινήσει την εκτέλεση. Προφανώς, θα ήταν καλύτερα αν το παιδί της δορυφορικής διαδικασίας είχε ανατεθεί στο περιφερειακό παιδί ως γονέας, αλλά στην περίπτωσή μας, οι γεννημένες διεργασίες έχουν την ευκαιρία να εκτελεστούν σε άλλους περιφερειακούς επεξεργαστές, όχι μόνο σε αυτόν στον οποίο δημιουργήθηκαν . Η σχέση μεταξύ των διεργασιών μετά την ολοκλήρωση της συνάρτησης περόνης φαίνεται στο Σχήμα 13.6. Όταν η περιφερειακή διεργασία ολοκληρώσει την εργασία της, στέλνει ένα αντίστοιχο μήνυμα στη δορυφορική διαδικασία, η οποία επίσης τερματίζεται. Η πρωτοβουλία για το κλείσιμο δεν μπορεί να προέλθει από μια συνοδευτική διαδικασία.


Εικόνα 13.6. Διαχωρίστε έναν περιφερειακό επεξεργαστή

Και στα δύο συστήματα πολλαπλών επεξεργαστών και μονοεπεξεργαστών, μια διεργασία πρέπει να ανταποκρίνεται στα σήματα με τον ίδιο τρόπο: η διεργασία είτε τερματίζει τη λειτουργία του συστήματος πριν ελέγξει τα σήματα ή, αντίθετα, μόλις λάβει ένα σήμα, ξυπνά αμέσως από την κατάσταση αναστολής και διακόπτει απότομα το λειτουργία του συστήματος, εάν αυτό είναι σύμφωνο με την προτεραιότητα με την οποία είχε ανασταλεί. Επειδή μια δορυφορική διεργασία εκτελεί λειτουργίες συστήματος για λογαριασμό μιας περιφερειακής διεργασίας, πρέπει να ανταποκρίνεται σε σήματα σε συντονισμό με την τελευταία. Εάν σε ένα σύστημα ενός επεξεργαστή ένα σήμα προκαλεί τον ασυνήθιστο τερματισμό μιας λειτουργίας μιας διεργασίας, μια συνοδευτική διεργασία σε ένα σύστημα πολλαπλών επεξεργαστών ΠΡΕΠΕΙ να συμπεριφέρεται με τον ίδιο τρόπο. Το ίδιο μπορεί να ειπωθεί όταν ένα σήμα αναγκάζει μια διεργασία να τερματίσει την εργασία της χρησιμοποιώντας τη συνάρτηση εξόδου: η περιφερειακή διεργασία εξέρχεται και στέλνει ένα αντίστοιχο μήνυμα στη συνοδευτική διαδικασία, η οποία, φυσικά, εξέρχεται επίσης.

Όταν μια περιφερειακή διεργασία καλεί τη λειτουργία του συστήματος σήματος, αποθηκεύει τις τρέχουσες πληροφορίες σε τοπικούς πίνακες και στέλνει ένα μήνυμα στον συνοδό της ενημερώνοντάς τον εάν το καθορισμένο σήμα πρέπει να γίνει αποδεκτό ή να αγνοηθεί. Η συνοδευτική διαδικασία δεν ενδιαφέρεται αν θα υποκλέψει το σήμα ή θα πραγματοποιήσει την προεπιλεγμένη ενέργεια. Ο τρόπος με τον οποίο μια διεργασία αντιδρά σε ένα σήμα εξαρτάται από τρεις παράγοντες (Εικόνα 13.7): εάν το σήμα φθάνει ενώ η διεργασία εκτελεί μια λειτουργία συστήματος, εάν η συνάρτηση σήματος έχει εντολή να αγνοήσει το σήμα και εάν το σήμα προέρχεται από τον ίδιο περιφερειακό επεξεργαστή ή σε κάποιον άλλο επεξεργαστή. Ας προχωρήσουμε εξετάζοντας τις διάφορες δυνατότητες.


αλγόριθμος sighandle /* αλγόριθμος επεξεργασίας σήματος */
εάν (η τρέχουσα διαδικασία είναι σύντροφος κάποιου ή έχει πρωτότυπο)
εάν (το σήμα αγνοήθηκε)
if (σήμα που λαμβάνεται κατά την εκτέλεση της λειτουργίας του συστήματος)
βάλτε ένα σήμα μπροστά από τη δορυφορική διαδικασία.
αποστολή ενός μηνύματος σήματος σε μια περιφερειακή διαδικασία.
else ( /* περιφερειακή διεργασία */
/* εάν ελήφθη σήμα κατά την εκτέλεση μιας λειτουργίας συστήματος ή όχι */
στείλτε ένα σήμα σε μια συνοδευτική διαδικασία.
αλγόριθμος satellite_end_of_sycall /* τερματίζει μια συνάρτηση συστήματος που καλείται από μια περιφερειακή διεργασία */
πληροφορίες εισαγωγής: καμία
πληροφορίες εξόδου: καμία
εάν (παρουσιάστηκε διακοπή κατά την εκτέλεση μιας συνάρτησης συστήματος)
αποστολή μηνύματος ή σήματος διακοπής σε μια περιφερειακή διεργασία.
αλλιώς /* η εκτέλεση της λειτουργίας του συστήματος δεν διακόπηκε */
αποστολή απάντησης: ενεργοποιήστε μια σημαία που υποδεικνύει την άφιξη ενός σήματος.

Εικόνα 13.7. Επεξεργασία σήματος σε περιφερειακό σύστημα


Ας υποθέσουμε ότι μια περιφερειακή διεργασία έχει αναστείλει την εργασία της ενώ μια δορυφορική διεργασία εκτελεί μια λειτουργία συστήματος για λογαριασμό της. Εάν ένα σήμα εμφανιστεί αλλού, η δορυφορική διαδικασία το ανιχνεύει πριν από την περιφερειακή διαδικασία. Υπάρχουν τρεις πιθανές περιπτώσεις.

1. Εάν, κατά την αναμονή κάποιου συμβάντος, η δορυφορική διαδικασία δεν μπήκε σε κατάσταση αναστολής, από την οποία θα έβγαινε μόλις λάβει ένα σήμα, εκτελεί τη λειτουργία του συστήματος μέχρι το τέλος, στέλνει τα αποτελέσματα της εκτέλεσης στην περιφερειακή διαδικασία και δείχνει ποιο από τα σήματα έλαβε.

2. Εάν η διεργασία έχει δώσει εντολή να αγνοηθεί ένα σήμα αυτού του τύπου, ο δορυφόρος συνεχίζει να ακολουθεί τον αλγόριθμο για την εκτέλεση της λειτουργίας συστήματος χωρίς να εγκαταλείψει την κατάσταση αναστολής longjmp. Η απάντηση που αποστέλλεται στην περιφερειακή διαδικασία δεν θα περιέχει μήνυμα λήψης σήματος.

3. Εάν, κατά τη λήψη ενός σήματος, μια δορυφορική διεργασία διακόπτει την εκτέλεση μιας λειτουργίας συστήματος (μέσω longjmp), ενημερώνει σχετικά την περιφερειακή διαδικασία και της λέει τον αριθμό σήματος.

Η περιφερειακή διεργασία αναζητά τη ληφθείσα απόκριση για πληροφορίες σχετικά με τη λήψη σημάτων και, εάν εντοπιστούν, επεξεργάζεται τα σήματα πριν από την έξοδο από τη λειτουργία του συστήματος. Έτσι, η συμπεριφορά μιας διεργασίας σε ένα σύστημα πολλαπλών επεξεργαστών είναι ακριβώς η ίδια με τη συμπεριφορά της σε ένα σύστημα ενός επεξεργαστή: είτε εξέρχεται χωρίς έξοδο από τη λειτουργία πυρήνα, καλεί μια συνάρτηση χειρισμού σήματος που ορίζεται από το χρήστη ή αγνοεί το σήμα και ολοκληρώνει με επιτυχία τη λειτουργία του συστήματος.


Εικόνα 13.8. Διακοπή κατά την εκτέλεση μιας λειτουργίας συστήματος

Ας υποθέσουμε, για παράδειγμα, ότι μια περιφερειακή διεργασία καλεί μια συνάρτηση ανάγνωσης από ένα τερματικό που σχετίζεται με τον κεντρικό επεξεργαστή και τίθεται σε αναστολή ενώ η συνοδευτική διεργασία εκτελεί τη συνάρτηση (Εικόνα 13.8). Εάν ο χρήστης πατήσει το πλήκτρο διακοπής, ο πυρήνας της CPU στέλνει ένα αντίστοιχο σήμα στη συνοδευτική διαδικασία. Εάν ο δορυφόρος βρισκόταν σε κατάσταση αναμονής και περίμενε να εισαχθεί ένα τμήμα δεδομένων από το τερματικό, εξέρχεται αμέσως από αυτήν την κατάσταση και σταματά την εκτέλεση της λειτουργίας ανάγνωσης. Στην απάντησή του σε ένα αίτημα από μια περιφερειακή διαδικασία, ο δορυφόρος αναφέρει έναν κωδικό σφάλματος και έναν αριθμό σήματος που αντιστοιχεί στη διακοπή. Η περιφερειακή διαδικασία αναλύει την απόκριση και, καθώς το μήνυμα υποδεικνύει ότι έχει φτάσει ένα σήμα διακοπής, στέλνει το σήμα στον εαυτό της. Πριν από την έξοδο από τη λειτουργία ανάγνωσης, ο περιφερειακός πυρήνας ελέγχει για σήματα, ανιχνεύει ένα σήμα διακοπής από μια συνοδευτική διεργασία και το επεξεργάζεται ως συνήθως. Εάν, ως αποτέλεσμα της λήψης ενός σήματος διακοπής, μια περιφερειακή διεργασία τερματίσει την εργασία της χρησιμοποιώντας τη λειτουργία εξόδου, αυτή η λειτουργία φροντίζει να σκοτώσει τη συνοδευτική διαδικασία. Εάν μια περιφερειακή διεργασία παρεμποδίζει σήματα διακοπής, καλεί μια συνάρτηση χειρισμού σήματος που ορίζεται από το χρήστη και επιστρέφει έναν κωδικό σφάλματος στον χρήστη κατά την έξοδο από τη λειτουργία ανάγνωσης. Από την άλλη πλευρά, εάν ένας δορυφόρος εκτελεί μια λειτουργία stat συστήματος για λογαριασμό μιας περιφερειακής διεργασίας, δεν θα διακόψει την εκτέλεσή της όταν λάβει ένα σήμα (η συνάρτηση stat είναι εγγυημένη ότι θα ανακτήσει από οποιαδήποτε αναστολή, επειδή έχει περιορισμένο χρονικό όριο για ο πόρος). Ο δορυφόρος ολοκληρώνει τη λειτουργία και επιστρέφει τον αριθμό σήματος στην περιφερειακή διαδικασία. Μια περιφερειακή διεργασία στέλνει ένα σήμα στον εαυτό της και το λαμβάνει ως έξοδο από μια λειτουργία συστήματος.

Εάν εμφανιστεί ένα σήμα σε έναν περιφερειακό επεξεργαστή ενώ εκτελείται μια λειτουργία συστήματος, η περιφερειακή διεργασία δεν θα γνωρίζει εάν ο έλεγχος θα επιστρέψει σύντομα σε αυτόν από τη συνοδευτική διαδικασία ή εάν η τελευταία θα μεταβεί σε κατάσταση αναστολής επ' αόριστον. Η περιφερειακή διαδικασία στέλνει ένα ειδικό μήνυμα στον δορυφόρο, ενημερώνοντάς τον για την εμφάνιση του σήματος. Ο πυρήνας της CPU αποκρυπτογραφεί το μήνυμα και στέλνει ένα σήμα στον δορυφόρο, η αντίδραση του οποίου στη λήψη του σήματος περιγράφεται στις προηγούμενες παραγράφους (διακοπή λειτουργίας ή ολοκλήρωση της λειτουργίας). Η περιφερειακή διαδικασία δεν μπορεί να στείλει ένα μήνυμα απευθείας στον δορυφόρο επειδή ο δορυφόρος είναι απασχολημένος με την εκτέλεση μιας λειτουργίας συστήματος και δεν διαβάζει δεδομένα από τη γραμμή επικοινωνίας.

Χρησιμοποιώντας το παράδειγμα της συνάρτησης ανάγνωσης, η περιφερειακή διεργασία δεν έχει ιδέα εάν ο συνοδός της περιμένει είσοδο από ένα τερματικό ή εκτελεί άλλες ενέργειες. Η περιφερειακή διαδικασία στέλνει ένα μήνυμα σήματος στον δορυφόρο: εάν ο δορυφόρος βρίσκεται σε κατάσταση αναστολής με προτεραιότητα που επιτρέπει διακοπές, εξέρχεται αμέσως από αυτήν την κατάσταση και σταματά την εκτέλεση της λειτουργίας του συστήματος. Διαφορετικά, η συνάρτηση εκτελείται μέχρι την επιτυχή ολοκλήρωση.

Τέλος, εξετάστε την περίπτωση ενός σήματος που φθάνει σε μια στιγμή που δεν σχετίζεται με την εκτέλεση μιας λειτουργίας συστήματος. Εάν το σήμα προέρχεται από άλλο επεξεργαστή, ο δορυφόρος το λαμβάνει πρώτος και στέλνει ένα μήνυμα σήματος στην περιφερειακή διεργασία, ανεξάρτητα από το αν το σήμα αφορά την περιφερειακή διεργασία ή όχι. Ο περιφερειακός πυρήνας αποκρυπτογραφεί το μήνυμα και στέλνει ένα σήμα στη διεργασία, η οποία ανταποκρίνεται σε αυτό με τον συνήθη τρόπο. Εάν το σήμα προέρχεται από έναν περιφερειακό επεξεργαστή, η διαδικασία εκτελεί τυπικές ενέργειες χωρίς να καταφεύγει στις υπηρεσίες του δορυφόρου της.

Όταν μια περιφερειακή διεργασία στέλνει ένα σήμα σε άλλες περιφερειακές διεργασίες, κωδικοποιεί το μήνυμα kill και το στέλνει σε μια συνοδευτική διεργασία που εκτελεί την κλήση τοπικά. Εάν ορισμένες από τις διεργασίες για τις οποίες προορίζεται το σήμα βρίσκονται σε άλλους περιφερειακούς επεξεργαστές, οι δορυφόροι τους θα λάβουν το σήμα (και θα αντιδράσουν στη λήψη του με τον τρόπο που περιγράφεται παραπάνω).

13.2 ΕΠΙΚΟΙΝΩΝΙΑ ΝΙΟΥΚΑΣΤΛ

Στην προηγούμενη ενότητα, εξετάσαμε έναν τύπο συστήματος στενής σύζευξης, το οποίο χαρακτηρίζεται από την αποστολή όλων των κλήσεων στις λειτουργίες του υποσυστήματος διαχείρισης αρχείων που εμφανίζονται στον περιφερειακό επεξεργαστή στον απομακρυσμένο (κεντρικό) επεξεργαστή. Τώρα ας προχωρήσουμε στην εξέταση συστημάτων λιγότερο στενά συζευγμένων, τα οποία αποτελούνται από μηχανήματα που έχουν πρόσβαση σε αρχεία που βρίσκονται σε άλλα μηχανήματα. Σε ένα δίκτυο προσωπικών υπολογιστών και σταθμών εργασίας, για παράδειγμα, οι χρήστες έχουν συχνά πρόσβαση σε αρχεία που βρίσκονται σε ένα μεγάλο μηχάνημα. Στις επόμενες δύο ενότητες, θα εξετάσουμε τις διαμορφώσεις συστήματος στις οποίες όλες οι λειτουργίες του συστήματος εκτελούνται σε τοπικά υποσυστήματα, αλλά ταυτόχρονα είναι δυνατή η πρόσβαση σε αρχεία (μέσω των λειτουργιών του υποσυστήματος διαχείρισης αρχείων) που βρίσκονται σε άλλα μηχανήματα.

Αυτά τα συστήματα χρησιμοποιούν μία από τις ακόλουθες δύο διαδρομές για τον εντοπισμό των διαγραμμένων αρχείων. Σε ορισμένα συστήματα, ένας ειδικός χαρακτήρας προστίθεται στο όνομα του σύνθετου αρχείου: το στοιχείο του ονόματος που προηγείται αυτού του χαρακτήρα προσδιορίζει το μηχάνημα, ενώ το υπόλοιπο όνομα προσδιορίζει το αρχείο που βρίσκεται σε αυτό το μηχάνημα. Έτσι, για παράδειγμα, μια σύνθετη ονομασία


"sftig!/fs1/mjb/rje"


προσδιορίζει το αρχείο "/fs1/mjb/rje" που βρίσκεται στο μηχάνημα "sftig". Αυτό το σχήμα αναγνώρισης αρχείου ακολουθεί τη σύμβαση εγκατεστημένο από το πρόγραμμα uucp σχετικά με τη μεταφορά αρχείων μεταξύ συστημάτων τύπου UNIX. Σε ένα άλλο σχήμα, τα διαγραμμένα αρχεία αναγνωρίζονται προσθέτοντας ένα ειδικό πρόθεμα στο όνομα, για παράδειγμα:


/../sftig/fs1/mjb/rje


όπου "/../" είναι ένα πρόθεμα που υποδεικνύει ότι το αρχείο έχει διαγραφεί. το δεύτερο στοιχείο του ονόματος αρχείου είναι το όνομα του απομακρυσμένου μηχανήματος. Αυτό το σχήμα χρησιμοποιεί τη γνωστή σύνταξη των ονομάτων αρχείων στο σύστημα UNIX, επομένως, σε αντίθεση με το πρώτο σχήμα, εδώ τα προγράμματα χρηστών δεν χρειάζεται να προσαρμοστούν στη χρήση ονομάτων που έχουν ασυνήθιστη δομή (βλ.).


Εικόνα 13.9. Διατύπωση αιτημάτων προς διακομιστή αρχείων(προς τον επεξεργαστή)


Θα περάσουμε το υπόλοιπο αυτής της ενότητας κοιτάζοντας ένα μοντέλο συστήματος που χρησιμοποιεί μια σύνδεση Newcastle, στην οποία ο πυρήνας δεν αναγνωρίζει απομακρυσμένα αρχεία. αυτή η συνάρτηση έχει εκχωρηθεί εξ ολοκλήρου σε υπορουτίνες από την τυπική βιβλιοθήκη C, οι οποίες σε αυτήν την περίπτωση εκτελούν τον ρόλο διεπαφή συστήματος. Αυτές οι ρουτίνες αναλύουν το πρώτο στοιχείο του ονόματος αρχείου, το οποίο και στις δύο περιγραφόμενες μεθόδους αναγνώρισης περιέχει μια ένδειξη ότι το αρχείο είναι απομακρυσμένο. Αυτό είναι μια απόκλιση από τον κανόνα κατά τον οποίο οι ρουτίνες της βιβλιοθήκης δεν αναλύουν τα ονόματα αρχείων. Το σχήμα 13.9 δείχνει πώς διατυπώνονται τα αιτήματα σε έναν διακομιστή αρχείων. Εάν το αρχείο είναι τοπικό, ο πυρήνας του τοπικού συστήματος επεξεργάζεται την αίτηση με τον συνήθη τρόπο. Ας εξετάσουμε την αντίστροφη περίπτωση:


open("/../sftig/fs1/mjb/rje/file", O_RDONLY);


Η ανοιχτή ρουτίνα της βιβλιοθήκης C αναλύει τα δύο πρώτα στοιχεία ενός ονόματος σύνθετου αρχείου και μαθαίνει ότι το αρχείο πρέπει να αναζητηθεί στον απομακρυσμένο υπολογιστή "sftig". Προκειμένου να έχουμε πληροφορίες σχετικά με το εάν η διαδικασία είχε προηγουμένως σύνδεση με ένα δεδομένο μηχάνημα, η υπορουτίνα δημιουργεί μια ειδική δομή στην οποία θυμάται αυτό το γεγονός και εάν η απάντηση είναι αρνητική, δημιουργεί μια σύνδεση με έναν διακομιστή αρχείων που εκτελείται σε ένα τηλεχειριστήριο μηχανή. Όταν μια διεργασία κάνει το πρώτο της αίτημα για απομακρυσμένη επεξεργασία, ο απομακρυσμένος διακομιστής αναγνωρίζει το αίτημα, γράφει τα πεδία κωδικού αναγνώρισης χρήστη και ομάδας εάν είναι απαραίτητο και δημιουργεί μια συνοδευτική διαδικασία για να ενεργεί για λογαριασμό της διαδικασίας πελάτη.

Για την εκπλήρωση αιτημάτων πελάτη, ο δορυφόρος πρέπει να έχει τα ίδια δικαιώματα αρχείων στο απομακρυσμένο μηχάνημα με τον πελάτη. Με άλλα λόγια, ο χρήστης "mjb" πρέπει να έχει τα ίδια δικαιώματα πρόσβασης τόσο σε απομακρυσμένα όσο και σε τοπικά αρχεία. Δυστυχώς, είναι πιθανό ο κωδικός αναγνώρισης πελάτη "mjb" να συμπίπτει με τον κωδικό αναγνώρισης άλλου πελάτη στο απομακρυσμένο μηχάνημα. Έτσι, οι διαχειριστές συστημάτων σε μηχανήματα που λειτουργούν σε ένα δίκτυο θα πρέπει είτε να διασφαλίζουν ότι σε κάθε χρήστη έχει εκχωρηθεί ένας κωδικός αναγνώρισης που είναι μοναδικός για ολόκληρο το δίκτυο είτε να πραγματοποιούν μετατροπή κώδικα κατά τη στιγμή της διατύπωσης ενός αιτήματος για υπηρεσία δικτύου. Εάν αυτό δεν γίνει, η δορυφορική διαδικασία θα έχει τα δικαιώματα ενός άλλου πελάτη στο απομακρυσμένο μηχάνημα.

Ένα πιο ευαίσθητο ζήτημα είναι η απόκτηση δικαιωμάτων υπερχρήστη για εργασία με διαγραμμένα αρχεία. Από τη μία πλευρά, ο πελάτης υπερχρήστη δεν θα πρέπει να έχει τα ίδια δικαιώματα στο απομακρυσμένο σύστημα, ώστε να μην συγχέονται τα στοιχεία ελέγχου ασφαλείας του απομακρυσμένου συστήματος. Από την άλλη, ορισμένα προγράμματα, εάν δεν τους δοθούν δικαιώματα υπερχρήστη, απλά δεν θα μπορούν να λειτουργήσουν. Ένα παράδειγμα τέτοιου προγράμματος είναι το πρόγραμμα mkdir (βλ. Κεφάλαιο 7), το οποίο δημιουργεί έναν νέο κατάλογο. Το απομακρυσμένο σύστημα δεν θα επέτρεπε στον πελάτη να δημιουργήσει έναν νέο κατάλογο, επειδή τα δικαιώματα υπερχρήστη δεν ισχύουν στην απομακρυσμένη τοποθεσία. Το πρόβλημα της δημιουργίας απομακρυσμένων καταλόγων χρησιμεύει ως σοβαρός λόγος για την αναθεώρηση της λειτουργίας του συστήματος mkdir προς την κατεύθυνση της επέκτασης των δυνατοτήτων του στην αυτόματη δημιουργία όλων των απαραίτητων συνδέσεων για τον χρήστη. Ωστόσο, η απόκτηση προγραμμάτων setuid (που περιλαμβάνει το πρόγραμμα mkdir) για την απόκτηση δικαιωμάτων υπερχρήστη σε διαγραμμένα αρχεία εξακολουθεί να είναι ένα κοινό πρόβλημα που πρέπει να αντιμετωπιστεί. Είναι πιθανό αυτό η καλύτερη λύσηΑυτό το πρόβλημα θα ήταν να ορίσετε πρόσθετα χαρακτηριστικά για αρχεία που περιγράφουν την πρόσβαση σε αυτά από απομακρυσμένους υπερχρήστες. Δυστυχώς, αυτό θα απαιτούσε αλλαγές στη δομή του ευρετηρίου του δίσκου (όσον αφορά την προσθήκη νέων πεδίων) και θα δημιουργούσε υπερβολική σύγχυση στα υπάρχοντα συστήματα.

Εάν η ανοιχτή ρουτίνα ολοκληρωθεί με επιτυχία, η τοπική βιβλιοθήκη αφήνει ένα αντίστοιχο σημάδι σχετικά με αυτό σε μια δομή προσβάσιμη από το χρήστη που περιέχει τη διεύθυνση κόμβου δικτύου, το αναγνωριστικό δορυφορικής διαδικασίας, τον περιγραφέα αρχείου και άλλες παρόμοιες πληροφορίες. Οι ρουτίνες της βιβλιοθήκης ανάγνωσης και εγγραφής καθορίζουν, με βάση τον περιγραφέα, εάν το αρχείο διαγράφεται και εάν η απάντηση είναι θετική, στέλνουν ένα μήνυμα στον δορυφόρο. Η διαδικασία πελάτη αλληλεπιδρά με τον συνοδό της σε όλες τις περιπτώσεις πρόσβασης σε λειτουργίες συστήματος που απαιτούν τις υπηρεσίες απομακρυσμένου μηχανήματος. Εάν μια διεργασία έχει πρόσβαση σε δύο αρχεία που βρίσκονται στο ίδιο απομακρυσμένο μηχάνημα, χρησιμοποιεί έναν δορυφόρο, αλλά εάν τα αρχεία βρίσκονται σε διαφορετικά μηχανήματα, χρησιμοποιεί δύο δορυφόρους: έναν σε κάθε μηχανή. Δύο δορυφόροι χρησιμοποιούνται επίσης όταν δύο διεργασίες έχουν πρόσβαση σε ένα αρχείο σε ένα απομακρυσμένο μηχάνημα. Όταν καλείτε μια λειτουργία συστήματος μέσω δορυφόρου, η διαδικασία δημιουργεί ένα μήνυμα που περιλαμβάνει τον αριθμό λειτουργίας, το όνομα διαδρομής αναζήτησης και άλλα απαραίτητες πληροφορίες, παρόμοιο με αυτό που περιλαμβάνεται στη δομή του μηνύματος σε ένα σύστημα με περιφερειακούς επεξεργαστές.

Ο μηχανισμός για την εκτέλεση λειτουργιών στον τρέχοντα κατάλογο είναι πιο περίπλοκος. Όταν μια διεργασία επιλέγει έναν απομακρυσμένο κατάλογο ως τρέχοντα κατάλογο, η ρουτίνα της βιβλιοθήκης στέλνει ένα αντίστοιχο μήνυμα στον δορυφόρο, το οποίο αλλάζει τον τρέχοντα κατάλογο και η ρουτίνα θυμάται ότι ο κατάλογος είναι απομακρυσμένος. Σε όλες τις περιπτώσεις όπου το όνομα της διαδρομής αναζήτησης ξεκινά με έναν χαρακτήρα διαφορετικό από κάθετο (/), η ρουτίνα στέλνει το όνομα στο απομακρυσμένο μηχάνημα, όπου η συνοδευτική διαδικασία ανιχνεύει τη διαδρομή που ξεκινά από τον τρέχοντα κατάλογο. Εάν ο τρέχων κατάλογος είναι τοπικός, η ρουτίνα απλώς μεταβιβάζει το όνομα της διαδρομής αναζήτησης στον πυρήνα του τοπικού συστήματος. Λειτουργία συστήματοςΤο chroot έναντι ενός απομακρυσμένου καταλόγου εκτελείται με παρόμοιο τρόπο, αλλά η εκτέλεσή του για τον πυρήνα του τοπικού συστήματος περνά απαρατήρητη. Αυστηρά μιλώντας, η διαδικασία μπορεί να αγνοήσει αυτή τη λειτουργία, αφού μόνο η βιβλιοθήκη καταγράφει την εκτέλεσή της.

Όταν μια διεργασία καλεί τη λειτουργία διχάλας, η αντίστοιχη ρουτίνα βιβλιοθήκης στέλνει μηνύματα σε κάθε δορυφόρο. Οι δορυφορικές διεργασίες εκτελούν μια λειτουργία διακλάδωσης και στέλνουν τα αναγνωριστικά των παιδιών τους στον γονικό πελάτη. Η διαδικασία πελάτη εκτελεί τη λειτουργία συστήματος διχάλων, η οποία μεταφέρει τον έλεγχο στο παραγόμενο παιδί. το τοπικό παιδί διεξάγει διάλογο με τον απομακρυσμένο παιδικό δορυφόρο, οι διευθύνσεις του οποίου αποθηκεύονται από τη ρουτίνα της βιβλιοθήκης. Αυτή η ερμηνεία της λειτουργίας περόνης διευκολύνει τον έλεγχο των δορυφορικών διεργασιών ανοιχτά αρχείακαι τρέχοντες καταλόγους. Όταν μια διεργασία που λειτουργεί με απομακρυσμένα αρχεία τερματίζεται (καλώντας τη συνάρτηση εξόδου), η ρουτίνα στέλνει μηνύματα σε όλους τους απομακρυσμένους ομοτίμους της, ώστε να κάνουν το ίδιο όταν λαμβάνουν το μήνυμα. Ορισμένες πτυχές της υλοποίησης των λειτουργιών του συστήματος exec και exit καλύπτονται στις ασκήσεις.

Το πλεονέκτημα της επικοινωνίας τύπου Newcastle είναι ότι η πρόσβαση της διαδικασίας σε απομακρυσμένα αρχεία γίνεται «διαφανής» (αόρατη στον χρήστη) και δεν χρειάζεται να γίνουν αλλαγές στον πυρήνα του συστήματος. Ωστόσο, αυτή η εξέλιξη έχει επίσης μια σειρά από μειονεκτήματα. Πρώτα απ 'όλα, η εφαρμογή του μπορεί να μειώσει την απόδοση του συστήματος. Λόγω της χρήσης της εκτεταμένης βιβλιοθήκης C, η ποσότητα της μνήμης που χρησιμοποιείται από κάθε διεργασία αυξάνεται, ακόμη και αν η διαδικασία δεν έχει πρόσβαση σε απομακρυσμένα αρχεία. Η βιβλιοθήκη αντιγράφει τις λειτουργίες του πυρήνα και απαιτεί περισσότερο χώρο στη μνήμη. Η αύξηση του μεγέθους των διεργασιών έχει ως αποτέλεσμα μεγαλύτερους χρόνους εκκίνησης και μπορεί να προκαλέσει μεγαλύτερη διαμάχη για πόρους μνήμης, επιτρέποντας στις εργασίες να σελιδοποιούνται και να σελιδοποιούνται πιο συχνά. Τοπικά ερωτήματαθα εκτελείται πιο αργά λόγω της αύξησης της διάρκειας κάθε πρόσβασης στον πυρήνα, η επιβράδυνση μπορεί επίσης να απειλήσει την επεξεργασία των απομακρυσμένων αιτημάτων, το κόστος αποστολής τους μέσω του δικτύου αυξάνεται. Η πρόσθετη επεξεργασία των απομακρυσμένων αιτημάτων σε επίπεδο χρήστη αυξάνει τον αριθμό των διακοπτών περιβάλλοντος, των λειτουργιών εκφόρτωσης και σελιδοποίησης. Τέλος, για πρόσβαση σε απομακρυσμένα αρχεία, τα προγράμματα πρέπει να μεταγλωττιστούν εκ νέου με νέες βιβλιοθήκες. Τα παλιά προγράμματα και οι παρεχόμενες μονάδες αντικειμένων δεν θα μπορούν να λειτουργούν με διαγραμμένα αρχεία χωρίς αυτό. Όλα αυτά τα μειονεκτήματα απουσιάζουν στο σύστημα που περιγράφεται στην επόμενη ενότητα.

13.3 «ΔΙΑΦΑΝΑ» ΚΑΤΑΝΟΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΡΧΕΙΩΝ

Ο όρος "διαφανής διανομή" σημαίνει ότι οι χρήστες που εργάζονται σε ένα μηχάνημα μπορούν να έχουν πρόσβαση σε αρχεία που βρίσκονται σε άλλο μηχάνημα χωρίς να συνειδητοποιούν ότι περνούν τα όρια του μηχανήματος, όπως ακριβώς και στο δικό τους μηχάνημα όταν μετακινούνται από ένα κοινόχρηστο σύστημα αρχείων στο άλλο εγκάρσια σημεία τοποθέτησης. Τα ονόματα με τα οποία οι διεργασίες έχουν πρόσβαση στα αρχεία που βρίσκονται σε απομακρυσμένα μηχανήματα είναι παρόμοια με τα ονόματα των τοπικών αρχείων: δεν περιέχουν διακριτικούς χαρακτήρες. Στη διαμόρφωση που φαίνεται στην Εικόνα 13.10, ο κατάλογος /usr/src που ανήκει στο μηχάνημα Β είναι προσαρτημένος στον κατάλογο /usr/src που ανήκει στο μηχάνημα Α. Αυτή η διαμόρφωση είναι χρήσιμη εάν διαφορετικά συστήματαΥποτίθεται ότι χρησιμοποιεί τον ίδιο πηγαίο κώδικα συστήματος, που παραδοσιακά βρίσκεται στον κατάλογο "/usr/src". Οι χρήστες που εκτελούνται στο μηχάνημα Α μπορούν να έχουν πρόσβαση σε αρχεία που βρίσκονται στο μηχάνημα Β χρησιμοποιώντας τη συνήθη σύνταξη ονόματος αρχείου (για παράδειγμα: "/usr/src/cmd/login.c") και ο ίδιος ο πυρήνας αποφασίζει εάν το αρχείο θα διαγραφεί ή θα είναι τοπικό. Οι χρήστες στο μηχάνημα Β έχουν πρόσβαση στα τοπικά τους αρχεία (δεν γνωρίζουν ότι στα ίδια αρχεία ενδέχεται να έχουν πρόσβαση και χρήστες του μηχανήματος Α), αλλά με τη σειρά τους δεν έχουν πρόσβαση σε αρχεία που βρίσκονται στο μηχάνημα Α. Φυσικά, είναι δυνατές και άλλες επιλογές, όπως π.χ. ως εκείνα στα οποία όλα τα απομακρυσμένα συστήματα είναι προσαρτημένα στη ρίζα του τοπικού συστήματος, επιτρέποντας στους χρήστες να έχουν πρόσβαση σε όλα τα αρχεία σε όλα τα συστήματα.


Εικόνα 13.10. Συστήματα αρχείων μετά από απομακρυσμένη προσάρτηση

Οι ομοιότητες μεταξύ της τοποθέτησης τοπικών συστημάτων αρχείων και της έκθεσης απομακρυσμένων συστημάτων αρχείων οδήγησαν στην προσαρμογή της συνάρτησης προσάρτησης για απομακρυσμένα συστήματα αρχείων. Σε αυτήν την περίπτωση, ο πυρήνας έχει στη διάθεσή του έναν πίνακα προσάρτησης εκτεταμένης μορφής. Εκτελώντας τη λειτουργία προσάρτησης, ο πυρήνας οργανώνει την επικοινωνία δικτύου με ένα απομακρυσμένο μηχάνημα και αποθηκεύει πληροφορίες που χαρακτηρίζουν αυτή η σύνδεση.

Ένα ενδιαφέρον πρόβλημα είναι με ονόματα μονοπατιών που περιλαμβάνουν "...". Εάν μια διεργασία δημιουργεί τον τρέχοντα κατάλογο σε ένα απομακρυσμένο σύστημα αρχείων, η επακόλουθη χρήση του ".." στο όνομα θα επιστρέψει τη διαδικασία στο τοπικό σύστημα αρχείων αντί να της επιτρέψει την πρόσβαση σε αρχεία πάνω από τον τρέχοντα κατάλογο. Επιστρέφοντας ξανά στο Σχήμα 13.10, σημειώστε ότι όταν μια διεργασία που ανήκει στο μηχάνημα Α, έχοντας προηγουμένως επιλέξει τον κατάλογο "/usr/src/cmd" που βρίσκεται στο απομακρυσμένο σύστημα αρχείων ως τρέχον κατάλογο, εκτελεί την εντολή



ο τρέχων κατάλογος θα είναι ο ριζικός κατάλογος που ανήκει στη μηχανή Α, όχι στη μηχανή Β. Ο αλγόριθμος namei που εκτελείται στον πυρήνα του απομακρυσμένου συστήματος, έχοντας λάβει την ακολουθία χαρακτήρων "..", ελέγχει εάν η διαδικασία κλήσης είναι ένας πράκτορας του διαδικασία πελάτη, και εάν η απάντηση είναι θετική, ορίζει εάν ο πελάτης αντιμετωπίζει τον τρέχοντα κατάλογο εργασίας ως τη ρίζα του απομακρυσμένου συστήματος αρχείων.

Η επικοινωνία με ένα απομακρυσμένο μηχάνημα λαμβάνει μία από τις δύο μορφές: μια κλήση απομακρυσμένης διαδικασίας ή μια κλήση λειτουργίας απομακρυσμένου συστήματος. Στην πρώτη μορφή, κάθε διαδικασία πυρήνα που ασχολείται με ευρετήρια ελέγχει εάν το ευρετήριο οδηγεί σε ένα απομακρυσμένο αρχείο και, αν ναι, στέλνει ένα αίτημα στον απομακρυσμένο υπολογιστή για να εκτελέσει την καθορισμένη λειτουργία. Αυτό το σχήμα ταιριάζει φυσικά στην αφηρημένη δομή της υποστήριξης του συστήματος αρχείων διάφορα είδη, που περιγράφεται στο τελευταίο μέρος του κεφαλαίου 5. Έτσι, η πρόσβαση σε ένα απομακρυσμένο αρχείο μπορεί να ξεκινήσει τη μετάδοση πολλών μηνυμάτων μέσω του δικτύου, ο αριθμός των οποίων καθορίζεται από τον αριθμό των υπονοούμενων λειτουργιών στο αρχείο, με αντίστοιχη αύξηση στην απόκριση χρόνο μέχρι το αίτημα, λαμβάνοντας υπόψη την καθυστέρηση δικτύου. Κάθε σύνολο απομακρυσμένων λειτουργιών περιλαμβάνει: τουλάχιστον, ενέργειες αποκλεισμού του ευρετηρίου, μέτρηση αναφορών κ.λπ. Για τη βελτίωση του μοντέλου, διάφορα λύσεις βελτιστοποίησηςσχετίζεται με το συνδυασμό πολλών λειτουργιών σε ένα αίτημα (μήνυμα) και την αποθήκευση των πιο σημαντικών δεδομένων (βλ.).


Εικόνα 13.11. Άνοιγμα απομακρυσμένου αρχείου


Εξετάστε μια διαδικασία που ανοίγει το απομακρυσμένο αρχείο "/usr/src/cmd/login.c", όπου το "src" είναι το σημείο προσάρτησης. Αναλύοντας το όνομα του αρχείου (χρησιμοποιώντας το σχήμα namei-iget), ο πυρήνας εντοπίζει ότι το αρχείο έχει διαγραφεί και στέλνει ένα αίτημα στο μηχάνημα όπου βρίσκεται για να αποκτήσει το κλειδωμένο ευρετήριο. Έχοντας λάβει την επιθυμητή απάντηση, ο τοπικός πυρήνας δημιουργεί ένα αντίγραφο του ευρετηρίου στη μνήμη που αντιστοιχεί στο απομακρυσμένο αρχείο. Στη συνέχεια, ο πυρήνας ελέγχει για τα απαραίτητα δικαιώματα πρόσβασης στο αρχείο (για ανάγνωση, για παράδειγμα), στέλνοντας ένα άλλο μήνυμα στον απομακρυσμένο υπολογιστή. Η εκτέλεση του ανοιχτού αλγορίθμου συνεχίζεται ακριβώς όπως έχει προγραμματιστεί στο Κεφάλαιο 5, στέλνοντας μηνύματα στο απομακρυσμένο μηχάνημα όπως χρειάζεται μέχρι να ολοκληρωθεί ο αλγόριθμος και να ελευθερωθεί το ευρετήριο. Η σχέση μεταξύ των δομών δεδομένων του πυρήνα στο τέλος του ανοιχτού αλγορίθμου φαίνεται στο Σχήμα 13.11.

Εάν ένας πελάτης καλέσει τη συνάρτηση συστήματος ανάγνωσης, ο πυρήνας πελάτη κλειδώνει το τοπικό ευρετήριο, εκδίδει αίτημα κλειδώματος για το απομακρυσμένο ευρετήριο, εκδίδει αίτημα ανάγνωσης για τα δεδομένα, αντιγράφει τα δεδομένα στην τοπική μνήμη, εκδίδει αίτημα έκδοσης για το απομακρυσμένο ευρετήριο, και απελευθερώνει το τοπικό ευρετήριο. Αυτό το σχήμα αντιστοιχεί στη σημασιολογία του υπάρχοντος πυρήνα ενός επεξεργαστή, αλλά η συχνότητα χρήσης του δικτύου (πολλές κλήσεις για κάθε λειτουργία συστήματος) μειώνει την απόδοση ολόκληρου του συστήματος. Ωστόσο, για να μειωθεί η κίνηση του δικτύου, πολλαπλές λειτουργίες μπορούν να συνδυαστούν σε ένα μόνο αίτημα. Στο παράδειγμα με τη συνάρτηση ανάγνωσης, ο πελάτης μπορεί να στείλει στον διακομιστή ένα γενικό αίτημα «ανάγνωσης» και ο διακομιστής, όταν το εκτελεί, λαμβάνει την απόφαση να δεσμεύσει και να αποδεσμεύσει το ευρετήριο. Συντομογραφίες κυκλοφορίας δικτύουΑυτό μπορεί επίσης να επιτευχθεί με τη χρήση απομακρυσμένων buffer (όπως συζητήσαμε παραπάνω), αλλά πρέπει να ληφθεί μέριμνα για να διασφαλιστεί ότι οι λειτουργίες αρχείων συστήματος που χρησιμοποιούν αυτές τις buffer εκτελούνται σωστά.

Στη δεύτερη μορφή επικοινωνίας με ένα απομακρυσμένο μηχάνημα (μια κλήση σε μια απομακρυσμένη λειτουργία συστήματος), ο τοπικός πυρήνας εντοπίζει ότι η λειτουργία συστήματος σχετίζεται με ένα απομακρυσμένο αρχείο και στέλνει τις παραμέτρους που καθορίζονται στην κλήση του στο απομακρυσμένο σύστημα, το οποίο εκτελεί μια συνάρτηση και επιστρέφει αποτελέσματα στον πελάτη. Το μηχάνημα πελάτη λαμβάνει τα αποτελέσματα της συνάρτησης και εξέρχεται από την κατάσταση κλήσης. Οι περισσότερες λειτουργίες του συστήματος μπορούν να εκτελεστούν χρησιμοποιώντας μόνο ένα αίτημα δικτύου και να λάβουν απάντηση μέσα σε εύλογο χρονικό διάστημα, αλλά δεν ταιριάζουν όλες οι λειτουργίες σε αυτό το μοντέλο. Για παράδειγμα, κατά τη λήψη ορισμένων σημάτων, ο πυρήνας δημιουργεί ένα αρχείο για τη διαδικασία που ονομάζεται "core" (Κεφάλαιο 7). Η δημιουργία αυτού του αρχείου δεν σχετίζεται με μια συγκεκριμένη λειτουργία συστήματος, αλλά ολοκληρώνει διάφορες λειτουργίες, όπως τη δημιουργία του αρχείου, τον έλεγχο των δικαιωμάτων πρόσβασης και την εκτέλεση ορισμένων λειτουργιών εγγραφής.

Στην περίπτωση της λειτουργίας ανοιχτού συστήματος, το αίτημα εκτέλεσης της συνάρτησης που αποστέλλεται στο απομακρυσμένο μηχάνημα περιλαμβάνει μέρος του ονόματος αρχείου, το υπόλοιπο στοιχείο του ονόματος διαδρομής αναζήτησης που διακρίνει το απομακρυσμένο αρχείο και διάφορες σημαίες. Στο προηγούμενο παράδειγμα ανοίγματος του αρχείου "/usr/src/cmd/login.c", ο πυρήνας στέλνει το όνομα "cmd/login.c" στον απομακρυσμένο υπολογιστή. Το μήνυμα περιλαμβάνει επίσης δεδομένα αναγνώρισης, όπως κωδικούς αναγνώρισης χρήστη και ομάδας, που είναι απαραίτητα για την επαλήθευση των δικαιωμάτων πρόσβασης σε αρχεία στο απομακρυσμένο μηχάνημα. Εάν ληφθεί μια απάντηση από το απομακρυσμένο μηχάνημα που υποδεικνύει την επιτυχία της ανοιχτής λειτουργίας, ο τοπικός πυρήνας επιλέγει ένα ελεύθερο ευρετήριο στη μνήμη τοπική μηχανήκαι το επισημαίνει ως ευρετήριο του απομακρυσμένου αρχείου, αποθηκεύει πληροφορίες σχετικά με το απομακρυσμένο μηχάνημα και το απομακρυσμένο ευρετήριο και εκχωρεί τακτικά νέα καταχώρησηστον πίνακα αρχείων. Σε σύγκριση με το πραγματικό ευρετήριο στο απομακρυσμένο μηχάνημα, το ευρετήριο που ανήκει στο τοπικό μηχάνημα είναι επίσημο και δεν παραβιάζει τη διαμόρφωση του μοντέλου, η οποία είναι γενικά η ίδια με τη διαμόρφωση που χρησιμοποιείται κατά την κλήση της απομακρυσμένης διαδικασίας (Εικόνα 13.11). Εάν μια συνάρτηση που καλείται από μια διεργασία έχει πρόσβαση σε ένα απομακρυσμένο αρχείο από τη λαβή της, ο τοπικός πυρήνας μαθαίνει από το (τοπικό) ευρετήριο ότι το αρχείο είναι απομακρυσμένο, διατυπώνει ένα αίτημα που περιλαμβάνει την καλούμενη συνάρτηση και το στέλνει στον απομακρυσμένο υπολογιστή. Το αίτημα περιέχει έναν δείκτη προς το απομακρυσμένο ευρετήριο, μέσω του οποίου η δορυφορική διαδικασία μπορεί να αναγνωρίσει το ίδιο το απομακρυσμένο αρχείο.

Έχοντας λάβει το αποτέλεσμα της εκτέλεσης οποιασδήποτε λειτουργίας συστήματος, ο πυρήνας μπορεί να καταφύγει στις υπηρεσίες του ειδικό πρόγραμμα(με την ολοκλήρωση του οποίου ο πυρήνας θα ολοκληρώσει τη λειτουργία του με τη συνάρτηση), επειδή η τοπική επεξεργασία των αποτελεσμάτων που χρησιμοποιούνται σε ένα σύστημα ενός επεξεργαστή δεν είναι πάντα κατάλληλη για ένα σύστημα με πολλούς επεξεργαστές. Ως αποτέλεσμα, είναι δυνατές αλλαγές στη σημασιολογία των αλγορίθμων συστημάτων που στοχεύουν στην παροχή υποστήριξης για την εκτέλεση απομακρυσμένων λειτουργιών του συστήματος. Ωστόσο, ταυτόχρονα, μια ελάχιστη ροή μηνυμάτων κυκλοφορεί στο δίκτυο, διασφαλίζοντας έναν ελάχιστο χρόνο απόκρισης του συστήματος στα εισερχόμενα αιτήματα.

13.4 ΔΙΑΝΕΜΜΕΝΟ ΜΟΝΤΕΛΟ ΧΩΡΙΣ ΔΙΑΔΙΚΑΣΙΕΣ ΜΕΤΑΦΟΡΑΣ

Η χρήση διαδικασιών μεταφοράς (δορυφορικές διεργασίες) σε ένα διαφανές κατανεμημένο σύστημα διευκολύνει την παρακολούθηση απομακρυσμένων αρχείων, αλλά ο πίνακας διεργασιών του απομακρυσμένου συστήματος είναι υπερφορτωμένος με δορυφορικές διεργασίες που είναι αδρανείς τις περισσότερες φορές. Σε άλλα σχήματα, ειδικές διεργασίες διακομιστή χρησιμοποιούνται για την επεξεργασία απομακρυσμένων αιτημάτων (βλ. και). Το απομακρυσμένο σύστημα έχει ένα σύνολο (δεξαμενή) διεργασιών διακομιστή που αναθέτει από καιρό σε καιρό για την επεξεργασία εισερχόμενων απομακρυσμένων αιτημάτων. Μετά την επεξεργασία του αιτήματος, η διαδικασία διακομιστή επιστρέφει στο pool και είναι έτοιμη να επεξεργαστεί άλλα αιτήματα. Ο διακομιστής δεν αποθηκεύει το περιβάλλον χρήστη μεταξύ δύο αιτημάτων, επειδή μπορεί να επεξεργαστεί αιτήματα από πολλές διεργασίες ταυτόχρονα. Συνεπώς, κάθε μήνυμα που έρχεται από μια διεργασία πελάτη πρέπει να περιλαμβάνει πληροφορίες για το περιβάλλον εκτέλεσής της, συγκεκριμένα: κωδικούς αναγνώρισης χρήστη, τρέχοντα κατάλογο, σήματα, κ.λπ. Οι δορυφορικές διεργασίες λαμβάνουν αυτά τα δεδομένα κατά την εμφάνισή τους ή κατά την εκτέλεση των λειτουργιών του συστήματος.

Όταν μια διεργασία ανοίγει ένα απομακρυσμένο αρχείο, ο πυρήνας του απομακρυσμένου συστήματος εκχωρεί ένα ευρετήριο για τις επόμενες αναφορές στο αρχείο. Το τοπικό μηχάνημα έχει έναν πίνακα περιγραφής αρχείων χρήστη, έναν πίνακα αρχείων και έναν πίνακα ευρετηρίου με το συνηθισμένο σύνολο καταχωρήσεων, με μια καταχώρηση στον πίνακα ευρετηρίου που προσδιορίζει το απομακρυσμένο μηχάνημα και το απομακρυσμένο ευρετήριο. Σε περιπτώσεις όπου μια λειτουργία συστήματος (όπως η ανάγνωση) χρησιμοποιεί έναν περιγραφέα αρχείου, ο πυρήνας στέλνει ένα μήνυμα που δείχνει στον προηγουμένως εκχωρημένο απομακρυσμένο ίνοδο και μεταδίδει πληροφορίες που σχετίζονται με τη διαδικασία: κωδικός αναγνώρισης χρήστη, μέγιστο μέγεθος αρχείου, κ.λπ. Εάν το μηχάνημα είναι απομακρυσμένο έχει στη διάθεσή του μια διαδικασία διακομιστή, η αλληλεπίδραση με τον πελάτη λαμβάνει τη μορφή που περιγράφηκε προηγουμένως, ωστόσο, η σύνδεση μεταξύ του πελάτη και του διακομιστή δημιουργείται μόνο για τη διάρκεια της λειτουργίας του συστήματος.

Εάν χρησιμοποιείτε διακομιστές αντί για δορυφορικές διαδικασίες, η διαχείριση της ροής δεδομένων, των σημάτων και των απομακρυσμένων συσκευών μπορεί να γίνει πιο περίπλοκη. Τα αιτήματα που φτάνουν σε μεγάλους αριθμούς σε απομακρυσμένο μηχάνημα ελλείψει επαρκούς αριθμού διακομιστών πρέπει να βρίσκονται σε ουρά. Αυτό απαιτεί πρωτόκολλο υψηλότερου επιπέδου από αυτό που χρησιμοποιείται στο κύριο δίκτυο. Στο δορυφορικό μοντέλο, από την άλλη πλευρά, η υπερφόρτωση αιτήματος εξαλείφεται επειδή όλα τα αιτήματα πελατών επεξεργάζονται συγχρονισμένα. Ένας πελάτης μπορεί να έχει το πολύ ένα αίτημα σε εκκρεμότητα.

Ο χειρισμός σημάτων που διακόπτουν την εκτέλεση μιας λειτουργίας συστήματος γίνεται επίσης πιο περίπλοκος όταν χρησιμοποιείτε διακομιστές, καθώς το απομακρυσμένο μηχάνημα πρέπει στη συνέχεια να βρει τον κατάλληλο διακομιστή για την εξυπηρέτηση της λειτουργίας. Δεν είναι καν δυνατό, λόγω της απασχολημένης κίνησης όλων των διακομιστών, το αίτημα για την εκτέλεση μιας λειτουργίας συστήματος να βρίσκεται σε κατάσταση εκκρεμούς επεξεργασίας. Οι συνθήκες για την εμφάνιση ανταγωνισμού προκύπτουν επίσης όταν ο διακομιστής επιστρέφει το αποτέλεσμα της εκτέλεσης μιας λειτουργίας συστήματος στη διαδικασία κλήσης και η απόκριση του διακομιστή περιλαμβάνει την αποστολή ενός αντίστοιχου μηνύματος σηματοδότησης μέσω του δικτύου. Κάθε μήνυμα πρέπει να επισημαίνεται με τέτοιο τρόπο ώστε το απομακρυσμένο σύστημα να μπορεί να το αναγνωρίσει και, εάν είναι απαραίτητο, να διακόψει την εργασία των διεργασιών του διακομιστή. Όταν χρησιμοποιείτε δορυφόρους, η διαδικασία που επεξεργάζεται το αίτημα του πελάτη αναγνωρίζεται αυτόματα και όταν λαμβάνεται ένα σήμα, ο έλεγχος εάν το αίτημα έχει υποβληθεί σε επεξεργασία ή όχι δεν είναι δύσκολο.

Τέλος, εάν μια συνάρτηση συστήματος που καλείται από τον πελάτη προκαλεί απεριόριστη παύση του διακομιστή (για παράδειγμα, κατά την ανάγνωση δεδομένων από ένα απομακρυσμένο τερματικό), ο διακομιστής δεν μπορεί να επεξεργαστεί άλλα αιτήματα, ελευθερώνοντας έτσι τη συγκέντρωση διακομιστή. Εάν πολλές διεργασίες έχουν πρόσβαση σε απομακρυσμένες συσκευές ταυτόχρονα και εάν ο αριθμός των διακομιστών είναι περιορισμένος από πάνω, εμφανίζεται ένα αρκετά εμφανές σημείο συμφόρησης. Αυτό δεν συμβαίνει με τους δορυφόρους επειδή ο δορυφόρος εκχωρείται σε κάθε διαδικασία πελάτη. Ένα άλλο πρόβλημα που σχετίζεται με τη χρήση διακομιστών για απομακρυσμένες συσκευές, θα συζητηθεί στην Άσκηση 13.14.

Παρά τα πλεονεκτήματα που παρέχει η χρήση δορυφορικών διεργασιών, η ανάγκη για δωρεάν καταχωρήσεις πίνακα διεργασιών στην πράξη γίνεται τόσο έντονη που στις περισσότερες περιπτώσεις εξακολουθούν να καταφεύγουν στις υπηρεσίες διαδικασιών διακομιστή για την επεξεργασία απομακρυσμένων αιτημάτων.


Εικόνα 13.12. Εννοιολογικό διάγραμμα αλληλεπίδρασης με απομακρυσμένα αρχεία σε επίπεδο πυρήνα

13.5 ΣΥΜΠΕΡΑΣΜΑΤΑ

Σε αυτό το κεφάλαιο, εξετάσαμε τρία σχήματα για την εργασία με αρχεία που βρίσκονται σε απομακρυσμένα μηχανήματα, τα οποία αντιμετωπίζουν τα απομακρυσμένα συστήματα αρχείων ως επέκταση του τοπικού. Οι αρχιτεκτονικές διαφορές μεταξύ αυτών των σχημάτων φαίνονται στο Σχήμα 13.12. Όλα αυτά, με τη σειρά τους, διαφέρουν από τα συστήματα πολλαπλών επεξεργαστών που περιγράφηκαν στο προηγούμενο κεφάλαιο στο ότι εδώ οι επεξεργαστές δεν μοιράζονται φυσική μνήμη. Ένα περιφερειακό σύστημα επεξεργαστή αποτελείται από ένα στενά συνδεδεμένο σύνολο από κοινούς επεξεργαστές πόρους αρχείωνκεντρικός επεξεργαστής. Η επικοινωνία τύπου Newcastle παρέχει κρυφή («διαφανή») πρόσβαση σε απομακρυσμένα αρχεία, αλλά όχι μέσω του πυρήνα του λειτουργικού συστήματος, αλλά μέσω της χρήσης μιας ειδικής βιβλιοθήκης C. Για το λόγο αυτό, όλα τα προγράμματα που σκοπεύουν να χρησιμοποιήσουν αυτόν τον τύπο επικοινωνίας πρέπει να μεταγλωττιστούν εκ νέου, κάτι που γενικά αποτελεί σοβαρό μειονέκτημα αυτού του σχήματος. Η απόσταση ενός αρχείου υποδεικνύεται από μια ειδική ακολουθία χαρακτήρων που περιγράφουν το μηχάνημα στο οποίο βρίσκεται το αρχείο και αυτός είναι ένας άλλος παράγοντας που περιορίζει τη φορητότητα των προγραμμάτων.

Σε διαφανή κατανεμημένα συστήματα, χρησιμοποιείται μια τροποποίηση της λειτουργίας συστήματος προσάρτησης για πρόσβαση σε απομακρυσμένα αρχεία. Τα ευρετήρια στο τοπικό σύστημα επισημαίνονται ότι αναφέρονται σε απομακρυσμένα αρχεία και ο τοπικός πυρήνας στέλνει ένα μήνυμα στο απομακρυσμένο σύστημα που περιγράφει τη ζητούμενη λειτουργία συστήματος, τις παραμέτρους του και το απομακρυσμένο ευρετήριο. Η επικοινωνία σε ένα διαφανές κατανεμημένο σύστημα υποστηρίζεται με δύο μορφές: με τη μορφή κλήσης απομακρυσμένης διαδικασίας (ένα μήνυμα αποστέλλεται στο απομακρυσμένο μηχάνημα που περιέχει μια λίστα λειτουργιών που σχετίζονται με το ευρετήριο) και με τη μορφή κλήσης σε απομακρυσμένο σύστημα λειτουργία (το μήνυμα περιγράφει τη λειτουργία που ζητήσατε). Το τελευταίο μέρος του κεφαλαίου εξετάζει ζητήματα που σχετίζονται με την επεξεργασία απομακρυσμένων αιτημάτων με χρήση δορυφορικών διεργασιών και διακομιστών.

13.6 ΑΣΚΗΣΕΙΣ

*1. Περιγράψτε την υλοποίηση της λειτουργίας του συστήματος εξόδου σε ένα σύστημα με περιφερειακούς επεξεργαστές. Ποια είναι η διαφορά μεταξύ αυτής της περίπτωσης και του πότε η διαδικασία τερματίζεται με τη λήψη ενός μη πιασμένου σήματος; Πώς πρέπει ο πυρήνας να απορρίπτει τα περιεχόμενα της μνήμης;

2. Οι διεργασίες δεν μπορούν να αγνοήσουν τα σήματα SIGKILL. εξηγήστε τι συμβαίνει στο περιφερειακό σύστημα όταν μια διεργασία λαμβάνει ένα τέτοιο σήμα.

*3. Περιγράψτε την υλοποίηση της λειτουργίας του συστήματος exec σε ένα σύστημα με περιφερειακούς επεξεργαστές.

*4. Πώς πρέπει ο κεντρικός επεξεργαστής να κατανέμει τις διεργασίες μεταξύ των περιφερειακών επεξεργαστών προκειμένου να εξισορροπηθεί το συνολικό φορτίο;

*5. Τι συμβαίνει εάν ο περιφερειακός επεξεργαστής δεν έχει αρκετή μνήμη για να φιλοξενήσει όλες τις διεργασίες που ανταλλάσσονται σε αυτόν; Πώς πρέπει να εκφορτώνονται και να ανταλλάσσονται οι διαδικασίες στο δίκτυο;

6. Εξετάστε ένα σύστημα στο οποίο αποστέλλονται αιτήματα σε έναν απομακρυσμένο διακομιστή αρχείων εάν εντοπιστεί ένα ειδικό πρόθεμα στο όνομα του αρχείου. Αφήστε τη διαδικασία να καλέσει τη συνάρτηση execl("/../sftig/bin/sh", "sh", 0); Το εκτελέσιμο αρχείο βρίσκεται στο απομακρυσμένο μηχάνημα, αλλά πρέπει να εκτελεστεί στο τοπικό σύστημα. Εξηγήστε πώς μεταφέρεται μια απομακρυσμένη μονάδα στο τοπικό σύστημα.

7. Εάν ένας διαχειριστής χρειάζεται να προσθέσει νέα μηχανήματα σε ένα υπάρχον σύστημα συνδεδεμένο με το Newcastle, ποιος είναι ο καλύτερος τρόπος για να ενημερώσετε τις μονάδες βιβλιοθήκης C σχετικά με αυτό;

*8. Όταν εκτελείται το exec, ο πυρήνας διαγράφει τον χώρο διευθύνσεων της διεργασίας, συμπεριλαμβανομένων των πινάκων βιβλιοθήκης που χρησιμοποιούνται από τη σύνδεση Newcastle για να παρακολουθεί τις αναφορές σε απομακρυσμένα αρχεία. Μετά την εκτέλεση της συνάρτησης, η διαδικασία πρέπει να διατηρήσει τη δυνατότητα πρόσβασης σε αυτά τα αρχεία από τις παλιές λαβές τους. Περιγράψτε την υλοποίηση αυτής της στιγμής.

*9. Όπως φαίνεται στην Ενότητα 13.2, η κλήση της συνάρτησης συστήματος εξόδου σε συστήματα που είναι συνδεδεμένα με το Newcastle προκαλεί την αποστολή ενός μηνύματος στη συνοδευτική διαδικασία, με αποτέλεσμα την έξοδο της. Αυτό γίνεται σε επίπεδο ρουτίνας βιβλιοθήκης. Τι συμβαίνει όταν μια τοπική διεργασία λαμβάνει ένα σήμα που της λέει να βγει σε λειτουργία πυρήνα;

*10. Πώς, σε ένα σύστημα με σύνδεση Newcastle όπου τα απομακρυσμένα αρχεία αναγνωρίζονται προσθέτοντας ένα ειδικό πρόθεμα στο όνομα αρχείου, μπορεί ένας χρήστης να καθορίσει ένα στοιχείο ".." (γονικός κατάλογος) του ονόματος αρχείου για να διασχίσει ένα απομακρυσμένο σημείο προσάρτησης;

11. Από το Κεφάλαιο 7, γνωρίζουμε ότι διάφορα σήματα αναγκάζουν μια διεργασία να απορρίψει τα περιεχόμενα της μνήμης στον τρέχοντα κατάλογο. Τι θα πρέπει να συμβεί εάν ο τρέχων κατάλογος προέρχεται από ένα απομακρυσμένο σύστημα αρχείων; Τι απάντηση θα δίνατε εάν το σύστημα χρησιμοποιεί σύνδεση τύπου Newcastle;

*12. Ποιος θα ήταν ο αντίκτυπος στις τοπικές διεργασίες εάν όλες οι δορυφορικές διεργασίες ή οι διακομιστές αφαιρούνταν από το σύστημα;

*13. Σκεφτείτε πώς ένα διαφανές κατανεμημένο σύστημα θα εφαρμόσει τον αλγόριθμο σύνδεσης, ο οποίος μπορεί να λάβει δύο απομακρυσμένα ονόματα αρχείων ως παραμέτρους, και τον αλγόριθμο exec, ο οποίος περιλαμβάνει την εκτέλεση πολλαπλών εσωτερικών λειτουργιών ανάγνωσης. Εξετάστε δύο μορφές επικοινωνίας: μια κλήση απομακρυσμένης διαδικασίας και μια κλήση απομακρυσμένης λειτουργίας συστήματος.

*14. Κατά την πρόσβαση σε μια συσκευή, η διαδικασία διακομιστή ενδέχεται να εισέλθει σε κατάσταση αναστολής, από την οποία θα ξυπνήσει από το πρόγραμμα οδήγησης της συσκευής. Φυσικά, εάν ο αριθμός των διακομιστών είναι περιορισμένος, το σύστημα δεν θα μπορεί πλέον να ικανοποιήσει τα αιτήματα του τοπικού μηχανήματος. Δημιουργήστε μια αξιόπιστη σχεδίαση, έτσι ώστε να μην αναστέλλονται όλες οι διεργασίες διακομιστή ενώ περιμένουν την ολοκλήρωση του I/O που σχετίζεται με τη συσκευή. Η λειτουργία συστήματος δεν θα σταματήσει να εκτελείται όσο όλοι οι διακομιστές είναι απασχολημένοι.


Εικόνα 13.13. Διαμόρφωση με τερματικό διακομιστή

*15. Όταν ένας χρήστης συνδέεται στο σύστημα, η πειθαρχία της γραμμής τερματικού αποθηκεύει πληροφορίες ότι το τερματικό είναι ένα τερματικό χειριστή που οδηγεί μια ομάδα διεργασιών. Για το λόγο αυτό, όταν ο χρήστης πατήσει το πλήκτρο "break" στο πληκτρολόγιο του τερματικού, όλες οι διεργασίες της ομάδας λαμβάνουν το σήμα διακοπής. Εξετάστε μια διαμόρφωση συστήματος στην οποία όλα τα τερματικά είναι φυσικά συνδεδεμένα σε ένα μηχάνημα, αλλά η εγγραφή χρήστη εφαρμόζεται λογικά σε άλλα μηχανήματα (Εικόνα 13.13). Σε κάθε μεμονωμένη περίπτωση, το σύστημα δημιουργεί μια διαδικασία getty για το απομακρυσμένο τερματικό. Εάν τα αιτήματα σε ένα απομακρυσμένο σύστημα υποβάλλονται σε επεξεργασία χρησιμοποιώντας ένα σύνολο διαδικασιών διακομιστή, θα πρέπει να σημειωθεί ότι όταν εκτελείται η ανοιχτή διαδικασία, ο διακομιστής σταματά να περιμένει για σύνδεση. Όταν ολοκληρωθεί η ανοιχτή λειτουργία, ο διακομιστής επιστρέφει πίσω στο χώρο συγκέντρωσης διακομιστή, διακόπτοντας τη σύνδεσή του με το τερματικό. Πώς προκαλείται το σήμα διακοπής με το πάτημα του πλήκτρου "break" που αποστέλλεται στις διευθύνσεις των διεργασιών που περιλαμβάνονται στην ίδια ομάδα;

*16. Η κοινή χρήση μνήμης είναι ένα χαρακτηριστικό εγγενές σε τοπικά μηχανήματα. Από λογικής άποψης, ανάδειξη κοινού χώρου φυσική μνήμη(τοπικό ή απομακρυσμένο) μπορεί επίσης να γίνει για διεργασίες που ανήκουν σε διαφορετικά αυτοκίνητα. Περιγράψτε την υλοποίηση αυτής της στιγμής.

*17. Οι αλγόριθμοι για τις διαδικασίες εκφόρτωσης και σελιδοποίησης κατόπιν αιτήματος που συζητούνται στο Κεφάλαιο 9 προϋποθέτουν τη χρήση μιας τοπικής συσκευής εκφόρτωσης. Ποιες αλλαγές πρέπει να γίνουν σε αυτούς τους αλγόριθμους για να ενεργοποιηθεί η υποστήριξη για συσκευές απομακρυσμένης μεταφόρτωσης;

*18. Ας υποθέσουμε ότι το απομακρυσμένο μηχάνημα (ή το δίκτυο) αντιμετωπίζει μια θανατηφόρα βλάβη και τοπικό πρωτόκολλοΤο επίπεδο δικτύου κατέγραψε αυτό το γεγονός. Αναπτύξτε ένα σχήμα ανάκτησης για ένα τοπικό σύστημα που έχει πρόσβαση σε έναν απομακρυσμένο διακομιστή με αιτήματα. Επιπλέον, αναπτύξτε ένα σχέδιο για την επαναφορά ενός συστήματος διακομιστή που έχει χάσει την επαφή με τους πελάτες.

*19. Όταν μια διεργασία αποκτά πρόσβαση σε ένα απομακρυσμένο αρχείο, είναι πιθανό η διαδικασία να ταξιδέψει σε πολλά μηχανήματα για να βρει το αρχείο. Για παράδειγμα, ας πάρουμε το όνομα "/usr/src/uts/3b2/os", όπου "/usr" είναι ο κατάλογος που ανήκει στη μηχανή Α, "/usr/src" είναι το ριζικό σημείο προσάρτησης της μηχανής Β, " Το /usr/src/uts /3b2" είναι το σημείο προσάρτησης της ρίζας της μηχανής C. Το πέρασμα από πολλές μηχανές στον τελικό προορισμό ονομάζεται "multihop". Ωστόσο, εάν υπάρχει άμεση σύνδεση μεταξύ των μηχανών Α και Γ δικτυακή επικοινωνία, η αποστολή δεδομένων μέσω του μηχανήματος Β θα ήταν αναποτελεσματική. Περιγράψτε τα χαρακτηριστικά υλοποίησης του "multi-hop" σε ένα διασυνδεδεμένο σύστημα Newcastle και σε ένα "διαφανές" κατανεμημένο σύστημα.



Συνιστούμε να διαβάσετε

Κορυφή