Κατανεμημένη αρχιτεκτονική. Κέντρο Διαχείρισης Υπηρεσιών DIRECTUM


βασίζεται στο αναδιαμορφώσιμο περιβάλλον υπολογιστικών πολλαπλών αγωγών L-Net

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

Αυτές οι λύσεις δεν προβλέπουν την αποτελεσματική χρήση πόρων περιττών βάσεων, τεχνικών και λογισμικού, γεγονός που επηρεάζει αρνητικά τόσο την ανοχή σε σφάλματα όσο και την επεκτασιμότητα τέτοιων λύσεων. Εάν παραβιαστεί η αρχιτεκτονική του δικτύου, δεν υπάρχει δυνατότητα δυναμικής αναδιάταξης τόσο των διαδικασιών επεξεργασίας πληροφοριών όσο και της μετάδοσης ροών δεδομένων (τόσο ελέγχου όσο και πληροφοριών). Η χρήση συγκεκριμένων μικροελεγκτών, η χρήση 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. Λύνει το πρόβλημα της αξιοπιστίας και της δυναμικής εξισορρόπησης φορτίου των καναλιών επικοινωνίας, αλλά δεν λύνει το πρόβλημα της ανοχής σε σφάλματα του συστήματος στο σύνολό του. Ως αποτέλεσμα, αναπτύχθηκε ένα καινοτόμο σύστημα ελέγχου βασισμένο σε ένα κατανεμημένο αναδιαμορφώσιμο περιβάλλον υπολογιστικών πολλαπλών αγωγών. Το αναπτυγμένο σύστημα έχει μια ομότιμη αρχιτεκτονική που περιλαμβάνει τρία λογικά μπλοκ: ένα μπλοκ εισόδου-εξόδου, ένα μπλοκ διακόπτη γενικής χρήσης και ένα μπλοκ επαναδιαμορφώσιμου υπολογιστικού περιβάλλοντος (RCS) (δείτε Εικ. 2).

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

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

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

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

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

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

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

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

Ένα από τα κύρια καθήκοντα του συστήματος 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: Βασικά στοιχεία εφαρμογής. - SPb: BHV-Petersburg, 2005.
  5. Krten R. Εισαγωγή στο QNX Neutrino. Ένας οδηγός για την ανάπτυξη εφαρμογών σε πραγματικό χρόνο. - SPb: BHV-Petersburg, 2011.

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

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

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

Nikita A. Poloyko, φοιτητής Πέμπτου έτους του Εθνικού Πανεπιστημίου Έρευνας "Higher School of Economics". Βοηθός μελέτης. Προγραμματιστής. Τομέας εκπαίδευσης: "Έλεγχος και πληροφορική στα τεχνικά συστήματα".

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

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


Σε επαφή με

Ετερογενή συστήματα πολλών υπολογιστών

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

(Υλικό ιστότοπου http://se.math.spbu.ru)

Εισαγωγή.

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

Υπάρχουν έξι κύρια χαρακτηριστικά των κατανεμημένων συστημάτων.

  1. Κοινή χρήση πόρων. Τα κατανεμημένα συστήματα επιτρέπουν την κοινή χρήση πόρων υλικού (σκληρών δίσκων, εκτυπωτών) και λογισμικού (αρχεία, μεταγλωττιστές).
  2. Ειλικρίνεια.Είναι η δυνατότητα επέκτασης του συστήματος με την προσθήκη νέων πόρων.
  3. Παραλληλισμός.Σε κατανεμημένα συστήματα, πολλές διαδικασίες μπορούν να εκτελούνται ταυτόχρονα σε διαφορετικούς υπολογιστές του δικτύου. Αυτές οι διαδικασίες μπορούν να αλληλεπιδράσουν ενώ εκτελούνται.
  4. Επεκτασιμότητα . Κάτω από επεκτασιμότηταγίνεται κατανοητή η δυνατότητα προσθήκης νέων ιδιοτήτων και μεθόδων.
  5. Ανοχή σε σφάλματα. Η παρουσία πολλαπλών υπολογιστών επιτρέπει την αντιγραφή πληροφοριών και την αντίσταση σε ορισμένα σφάλματα υλικού και λογισμικού. Τα κατανεμημένα συστήματα μπορούν να υποστηρίξουν μερική λειτουργικότητα σε περίπτωση σφάλματος. Πλήρης αποτυχία του συστήματος συμβαίνει μόνο με σφάλματα δικτύου.
  6. Διαφάνεια.Παρέχεται στους χρήστες πλήρης πρόσβαση στους πόρους του συστήματος, ενώ ταυτόχρονα αποκρύπτονται από αυτούς πληροφορίες σχετικά με την κατανομή των πόρων σε όλο το σύστημα.

Τα κατανεμημένα συστήματα έχουν επίσης πολλά μειονεκτήματα.

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

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

  1. Ταυτοποίηση πόρων ... Οι πόροι στα κατανεμημένα συστήματα βρίσκονται σε διαφορετικούς υπολογιστές, οπότε το σύστημα ονοματοδοσίας των πόρων πρέπει να σκεφτεί ώστε οι χρήστες να έχουν εύκολη πρόσβαση και σύνδεση με τους πόρους που χρειάζονται. Ένα παράδειγμα είναι το σύστημα URL (Uniform Resource Locator), το οποίο ορίζει τα ονόματα των ιστοσελίδων.
  2. Επικοινωνία... Η καθολική λειτουργικότητα του Διαδικτύου και η αποτελεσματική εφαρμογή των πρωτοκόλλων TCP / IP στο Διαδίκτυο για τα περισσότερα κατανεμημένα συστήματα είναι παραδείγματα του πιο αποτελεσματικού τρόπου οργάνωσης της επικοινωνίας μεταξύ υπολογιστών. Ωστόσο, σε ορισμένες περιπτώσεις όπου απαιτείται ειδική απόδοση ή αξιοπιστία, είναι δυνατή η χρήση εξειδικευμένων εργαλείων.
  3. Ποιότητα υπηρεσιών συστήματος ... Αυτή η παράμετρος αντικατοπτρίζει την απόδοση, την υγεία και την αξιοπιστία. Ένας αριθμός παραγόντων επηρεάζει την ποιότητα των υπηρεσιών: η κατανομή των διαδικασιών, των πόρων, του υλικού και η προσαρμοστικότητα του συστήματος.
  4. Αρχιτεκτονική λογισμικού ... Η αρχιτεκτονική του λογισμικού περιγράφει την κατανομή των λειτουργιών του συστήματος μεταξύ των στοιχείων του συστήματος, καθώς και την κατανομή αυτών των στοιχείων μεταξύ των επεξεργαστών. Εάν πρέπει να διατηρήσετε μια υψηλής ποιότητας υπηρεσία συστήματος, η επιλογή της σωστής αρχιτεκτονικής είναι κρίσιμη.

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

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

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

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

Αυτή η αρχιτεκτονική χρησιμοποιείται ευρέως σήμερα και ονομάζεται επίσης αρχιτεκτονική υπηρεσιών διαδικτύου.Μια υπηρεσία ιστού είναι μια εφαρμογή που είναι προσβάσιμη μέσω του Διαδικτύου και παρέχει ορισμένες υπηρεσίες, η μορφή της οποίας είναι ανεξάρτητη από τον πάροχο (εφόσον χρησιμοποιείται η καθολική μορφή δεδομένων - XML) και η πλατφόρμα λειτουργίας. Επί του παρόντος, υπάρχουν τρεις διαφορετικές τεχνολογίες που υποστηρίζουν την έννοια των συστημάτων κατανεμημένων αντικειμένων. Πρόκειται για τεχνολογίες EJB, CORBA και DCOM.

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

  1. ΣΑΠΟΥΝΙ ( Το πρωτόκολλο Simple Object Access, που αναπτύχθηκε από το W3C, ορίζει μια μορφή για αιτήματα σε υπηρεσίες Web. Τα μηνύματα μεταξύ μιας υπηρεσίας Web και του χρήστη της συσκευάζονται σε λεγόμενους φακέλους SOAP (μερικές φορές ονομάζονται και φάκελοι XML). Το ίδιο το μήνυμα μπορεί να περιέχει είτε ένα αίτημα για εκτέλεση μιας ενέργειας, είτε μια απάντηση - το αποτέλεσμα αυτής της ενέργειας.
  2. WSDL (Γλώσσα Περιγραφής Υπηρεσιών Web).Η διεπαφή υπηρεσίας Web περιγράφεται σε έγγραφα WSDL (και το WSDL είναι υποσύνολο της XML). Πριν από την ανάπτυξη μιας υπηρεσίας, ο προγραμματιστής συνθέτει την περιγραφή της σε γλώσσα WSDL, καθορίζει τη διεύθυνση της υπηρεσίας Web, τα υποστηριζόμενα πρωτόκολλα, μια λίστα επιτρεπόμενων λειτουργιών και μορφές αιτήματος και απόκρισης.
  3. UDDI (Καθολική περιγραφή, ανακάλυψη και ενσωμάτωση) -Πρωτόκολλο αναζήτησης υπηρεσιών διαδικτύου στο Internet ( http://www.uddi.org/). Είναι ένα μητρώο επιχειρήσεων όπου οι πάροχοι υπηρεσιών Ιστού καταχωρούν υπηρεσίες και οι προγραμματιστές βρίσκουν τις υπηρεσίες που πρέπει να συμπεριλάβουν στις εφαρμογές τους.

Από την έκθεση, μπορεί να φαίνεται ότι οι υπηρεσίες Ιστού είναι η καλύτερη και αδιαμφισβήτητη λύση και το μόνο ερώτημα είναι η επιλογή εργαλείων ανάπτυξης. Ωστόσο, δεν είναι. Υπάρχει μια εναλλακτική λύση στις υπηρεσίες Ιστού, ο Σημασιολογικός Ιστός, για τον οποίο ο δημιουργός του WWW Tim Berners-Lee μίλησε πριν από πέντε χρόνια.

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

Βιβλιογραφία

  1. SomervilleI. Μηχανική Λογισμικού.
  2. Dranitsa A. Java εναντίον .NET. - "Computerra", # 516.
  3. Πόροι Διαδικτύου.

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

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

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


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

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

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

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

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

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

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

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


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


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

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

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

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

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


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

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

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


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

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


Εικόνα 13.6. Εκτέλεση λειτουργίας πιρουνιού σε περιφερειακό επεξεργαστή

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

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


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

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


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

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

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

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

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


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

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

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

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

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

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

13.2 ΕΠΙΚΟΙΝΩΝΙΑ NEWCASTLE

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

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


"sftig! / fs1 / mjb / rje"


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


/../sftig/fs1/mjb/rje


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


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


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


άνοιγμα ("/../ sftig / fs1 / mjb / rje / file", O_RDONLY);


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

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

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

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

Ο μηχανισμός εκτέλεσης λειτουργιών στον τρέχοντα κατάλογο είναι πιο πολύπλοκος. Όταν η διαδικασία επιλέγει έναν απομακρυσμένο κατάλογο ως τον τρέχοντα, η ρουτίνα της βιβλιοθήκης στέλνει ένα μήνυμα στον δορυφόρο, το οποίο αλλάζει τον τρέχοντα κατάλογο και η ρουτίνα θυμάται ότι ο κατάλογος διαγράφεται. Σε όλες τις περιπτώσεις όπου το όνομα της διαδρομής αναζήτησης ξεκινά με έναν χαρακτήρα διαφορετικό από μια κάθετο (/), η υπορουτίνα στέλνει το όνομα στο απομακρυσμένο μηχάνημα, όπου η δορυφορική διαδικασία το δρομολογεί από τον τρέχοντα κατάλογο. Εάν ο τρέχων κατάλογος είναι τοπικός, η ρουτίνα απλώς μεταφέρει το όνομα της διαδρομής αναζήτησης στον πυρήνα του τοπικού συστήματος. Η λειτουργία 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. Έτσι, η πρόσβαση σε απομακρυσμένο αρχείο μπορεί να ξεκινήσει τη μεταφορά πολλών μηνυμάτων μέσω του δικτύου, ο αριθμός των οποίων καθορίζεται από τον αριθμό των σιωπηρών λειτουργιών στο αρχείο, με αντίστοιχη αύξηση του χρόνου απόκρισης στο αίτημα, λαμβάνοντας υπόψη τον χρόνο αναμονής που γίνεται αποδεκτός στο δίκτυο. Κάθε σύνολο απομακρυσμένων λειτουργιών περιλαμβάνει τουλάχιστον ενέργειες για κλείδωμα ευρετηρίου, καταμέτρηση αναφοράς κ.λπ. Προκειμένου να βελτιωθεί το μοντέλο, προτάθηκαν διάφορες λύσεις βελτιστοποίησης που σχετίζονται με το συνδυασμό πολλών λειτουργιών σε ένα ερώτημα (μήνυμα) και την αποθήκευση των πιο σημαντικών δεδομένων (cm. ).


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


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

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

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

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

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

13,4 ΜΟΝΤΕΛΟ ΔΙΑΝΟΜΕΝΟ ΧΩΡΙΣ ΔΙΑΔΙΚΑΣΙΕΣ ΜΕΤΑΦΟΡΑΣ

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

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

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

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

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

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


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

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

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

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

13,6 ΑΣΚΗΣΕΙΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

Όλα τα σύγχρονα συστήματα λογισμικού μπορούν να χωριστούν σε τρεις μεγάλες κατηγορίες.

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

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

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

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

Υπάρχουν έξι κύρια χαρακτηριστικά των κατανεμημένων συστημάτων.

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

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

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

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

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

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

Φυσικά, τα κατανεμημένα συστήματα έχουν πολλά μειονεκτήματα.

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

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

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

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

Κατά τη συζήτηση για τα πλεονεκτήματα και τα μειονεκτήματα των κατανεμημένων συστημάτων, εντοπίζονται ορισμένα κρίσιμα προβλήματα σχεδιασμού για τέτοια συστήματα (Πίνακας 9.1).

Πίνακας 9.1. Προβλήματα σχεδιασμού κατανεμημένων συστημάτων

Πρόβλημα σχεδιασμού Περιγραφή
Ταυτοποίηση πόρων Οι πόροι σε ένα κατανεμημένο σύστημα βρίσκονται σε διαφορετικούς υπολογιστές, οπότε το σύστημα ονοματοδοσίας των πόρων πρέπει να σκεφτεί ώστε οι χρήστες να έχουν εύκολη πρόσβαση και να αναφέρονται στους πόρους που χρειάζονται. Ένα παράδειγμα είναι το σύστημα Uniform Resource Locator (URL), το οποίο καθορίζει τις διευθύνσεις των ιστοσελίδων. Χωρίς ένα εύκολα αντιληπτό και καθολικό σύστημα αναγνώρισης, οι περισσότεροι πόροι θα είναι απρόσιτοι για τους χρήστες του συστήματος.
Διαβιβάσεις Η καθολική λειτουργικότητα του Διαδικτύου και η αποτελεσματική εφαρμογή των πρωτοκόλλων TCP / IP στο Διαδίκτυο για τα περισσότερα κατανεμημένα συστήματα είναι παραδείγματα του πιο αποτελεσματικού τρόπου οργάνωσης της επικοινωνίας μεταξύ υπολογιστών. Ωστόσο, όταν επιβάλλονται ειδικές απαιτήσεις στην απόδοση, την αξιοπιστία κ.λπ., μπορούν να χρησιμοποιηθούν εναλλακτικές μέθοδοι επικοινωνίας του συστήματος.
Ποιότητα υπηρεσιών συστήματος Η ποιότητα των υπηρεσιών που προσφέρει το σύστημα αντικατοπτρίζει την απόδοση, τη λειτουργικότητα και την αξιοπιστία του. Η ποιότητα των υπηρεσιών επηρεάζεται από διάφορους παράγοντες: την κατανομή των διαδικασιών του συστήματος, την κατανομή πόρων, το υλικό του συστήματος και του δικτύου και την προσαρμοστικότητα του συστήματος.
Αρχιτεκτονική λογισμικού Η αρχιτεκτονική του λογισμικού περιγράφει την κατανομή των λειτουργιών του συστήματος μεταξύ των στοιχείων του συστήματος, καθώς και την κατανομή αυτών των στοιχείων σε επεξεργαστές. Εάν πρέπει να διατηρήσετε μια υψηλής ποιότητας υπηρεσία συστήματος, η επιλογή της σωστής αρχιτεκτονικής αποδεικνύεται καθοριστικός παράγοντας.

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

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

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

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

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