Το Popcorn αναπτύσσει ένα κατανεμημένο σύστημα εκτέλεσης νημάτων για τον πυρήνα του Linux.

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

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

Φόρμα στοίβας λογισμικού ποπ κορν μπαλώματα στον πυρήνα του Linux και библиотека με δοκιμές που δείχνουν πώς οι κλήσεις συστήματος Popcorn μπορούν να χρησιμοποιηθούν για τη μετεγκατάσταση νημάτων σε κατανεμημένες εφαρμογές. Σε επίπεδο πυρήνα, έχουν προταθεί επεκτάσεις στο υποσύστημα εικονικής μνήμης με την υλοποίηση κατανεμημένης κοινόχρηστης μνήμης, η οποία επιτρέπει στις διεργασίες σε διαφορετικούς κεντρικούς υπολογιστές να έχουν πρόσβαση σε έναν κοινό και συνεπή χώρο εικονικών διευθύνσεων. Η συνοχή της σελίδας εικονικής μνήμης διασφαλίζεται από ένα πρωτόκολλο που αναπαράγει σελίδες μνήμης στον κεντρικό υπολογιστή όταν διαβάζονται και ακυρώνει τις σελίδες μνήμης όταν γράφονται.

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

Το Popcorn αναπτύσσεται από το 2014 ως ερευνητικό έργο για τη μελέτη των δυνατοτήτων δημιουργίας κατανεμημένων εφαρμογών, τα νήματα των οποίων μπορούν να εκτελεστούν σε διαφορετικούς κόμβους σε ετερογενής υπολογιστικά συστήματα που μπορούν να συνδυάσουν πυρήνες που βασίζονται σε διαφορετικές αρχιτεκτονικές συνόλων εντολών (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Το σύνολο των ενημερώσεων κώδικα που προτείνεται στους προγραμματιστές πυρήνα Linux υποστηρίζει εκτέλεση μόνο σε κεντρικούς υπολογιστές με CPU x86, αλλά υπάρχει επίσης μια πιο λειτουργική έκδοση του Popcorn Linux, η οποία επιτρέπει στις εφαρμογές να εκτελούνται σε κεντρικούς υπολογιστές με διαφορετικές αρχιτεκτονικές CPU (x86 και ARM). Για να χρησιμοποιήσετε το Popcorn σε ετερογενή περιβάλλοντα, πρέπει να χρησιμοποιήσετε ένα ειδικό μεταγλωττιστής με βάση το LLVM. Όταν εκτελείται κατανεμημένη σε κεντρικούς υπολογιστές με την ίδια αρχιτεκτονική, δεν απαιτείται ανακατασκευή με ξεχωριστό μεταγλωττιστή.

Το Popcorn αναπτύσσει ένα κατανεμημένο σύστημα εκτέλεσης νημάτων για τον πυρήνα του Linux.

Επιπλέον, μπορεί να σημειωθεί ανακοίνωση κάπως παρόμοιο έργο Telefork με την υλοποίηση ενός αρχικού πρωτότυπου API για την εκκίνηση θυγατρικών διεργασιών σε άλλους υπολογιστές του συμπλέγματος (όπως το fork(), αλλά μεταφέρει τη διχαλωμένη διεργασία σε άλλον υπολογιστή).
Ο κώδικας είναι γραμμένος σε Rust και μέχρι στιγμής επιτρέπει μόνο την κλωνοποίηση πολύ απλών διεργασιών που δεν χρησιμοποιούν πόρους συστήματος όπως αρχεία. Όταν πραγματοποιείται μια κλήση τηλεδιαπέρασης, η μνήμη και οι δομές που σχετίζονται με τη διαδικασία κλωνοποιούνται σε έναν άλλο κεντρικό υπολογιστή που εκτελεί το πρόγραμμα χειρισμού διακομιστή (τηλεχειρίδιο). Χρησιμοποιώντας το ptrace, η ανάκλαση μνήμης μιας διεργασίας σειριοποιείται και, μαζί με την κατάσταση της διεργασίας και τους καταχωρητές, μεταφέρεται σε άλλο κεντρικό υπολογιστή. Το API σάς επιτρέπει επίσης να αποθηκεύσετε την κατάσταση της διαδικασίας σε ένα αρχείο και να την επαναφέρετε μέσω αυτού.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο