ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους

Σχετικά έγγραφα
ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ. Τεχνολογίες Υπολογιστικού Νέφους

ΜΑΘΗΜΑ: Υπολογιστικά Νέφη

Αρχιτεκτονική Υπολογιστών

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 3. Διδακτικοί Στόχοι

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Λειτουργικά συστήματα πραγματικού χρόνου

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Αμοιβαίος αποκλεισμός

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Αρχιτεκτονική Υπολογιστών

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Καθολικέςκαταστάσεις. Ορισµοί Κατασκευή καθολικών καταστάσεων Παθητική στρατηγική Ενεργητική στρατηγική. Κατανεµηµένα Συστήµατα 04-1

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Λειτουργικά Συστήματα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Οργάνωση Υπολογιστών (IΙI)

Αρχιτεκτονική υπολογιστών

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Κεφάλαιο 4: Λογισμικό Συστήματος

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Εισαγωγικά & Βασικές Έννοιες

Λειτουργικά Συστήματα Η/Υ

Πολυπύρηνοι επεξεργαστές Multicore processors

ΛΟΓΙΣΜΙΚΟ (software)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Πρωτόκολλα Ελέγχου προσπέλασης μέσου

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Ε-85: Ειδικά Θέµατα Λογισµικού

Παραλληλισμός σε επίπεδο εντολών

Λιβανός Γιώργος Εξάμηνο 2017Β

Ρολόγια και Συγχρονισμός

Εισαγωγή στην Πληροφορική

Κατανεμημένα συστήματα και Επικοινωνία Πραγματικού Χρόνου

Ειδικά Θέματα Δικτύων Ι

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN!!! 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ!!!! Χατζηνικόλας Κώστας

Επικοινωνία Client/Server

Κεφάλαιο 1 Ε Π Α Ν Α Λ Η Ψ Η

Κατανεμημένα Συστήματα

Λειτουργικά Συστήματα (ΗΥ321)

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

. Μεθοδολογία Προγραμματισμού. UML Διαγράμματα. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Αδιέξοδα (Deadlocks)

Λιβανός Γιώργος Εξάμηνο 2017Β

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Αρχιτεκτονική Υπολογιστών

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Chapter 4 ( ή 1 στο βιβλίο σας)

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Κεφάλαιο 3: Λειτουργικά Συστήµατα

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Κεφάλαιο 5: Τοπικά ίκτυα

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

Εικονική Μνήμη (Virtual Memory)

Transcript:

ΤΕΙ Δυτικής Ελλάδας Τμήμα Μηχανικών Πληροφορικής ΤΕ Τεχνολογίες Υπολογιστικού Νέφους ΔΙΑΛΕΞΗ 2: ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥς ΒΑΣΙΛΕΙΟΣ Δ. ΤΣΑΚΑΝΙΚΑΣ Revision 12/2017: ΚΩΝ. ΠΑΞΙΜΑΔΗΣ

Σκοπός της Ενότητας Σκοπός της ενότητας είναι η περιγραφή των βασικών ζητημάτων της υπολογιστικής νέφους

Περιεχόμενa Ο δρόμος για την υπολογιστική νέφους. Πρωτόκολλα επικοινωνίας Συντονισμός Παράλληλη επεξεργασία. Χρόνος και χρονικά διαστήματα. Ταυτοχρονισμός: Λειτουργία και αδιέξοδα. Προκλήσεις. Λογικά ρολόγια. Παραλληλισμός. Κανόνες παράδοσης μηνυμάτων. Επίπεδα παραλληλισμού. Εκτελέσεις και τεμάχια. Αρχιτεκτονική παράλληλων υπολογιστών Συνεπής και ασυνεπής τεμάχια κι εκτελέσεις. Κατανεμημένα συστήματα. Το πρωτόκολλο στιγμιότυπων Chandy & Lamport Επιθυμητές ιδιότητες ενός κατανεμημένου συστήματος. Ταυτοχρονισμός. Διεργασίες, νήματα και συμβάντα. Μηνύματα και κανάλια επικοινωνίας Παγκόσμια κατάσταση μίας ομάδας διεργασιών, Ατομικές δράσεις. Ατομικότητα "όλα ή τίποτα' Μοντέλα αποθήκευσης. Ατομικότητα

Ο δρόμος για την υπολογιστική νέφους (1/2) Η υπολογιστική νέφους βασίζεται στις ιδέες και την εμπειρία στο αντικείμενο των παράλληλων και κατανεμημένων συστημάτων. Οι εφαρμογές νέφους βασίζονται στο μοντέλο client-server με ένα σχετικά απλό λογισμικό, έναν thin-client, να εκτελείται στο σύστημα του χρήστη, ενώ οι υπολογισμοί πραγματοποιούνται στο νέφος. Ο ταυτοχρονισμός είναι σημαντικός: Πολλές εφαρμογές νέφους χρησιμοποιούν μεγάλες ποσότητες δεδομένων και χρειάζονται έναν μεγάλο αριθμό από instances που εκτελούνται ταυτόχρονα.

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

Παράλληλη επεξεργασία (1/2) Τα παράλληλα συστήματα υλικού και λογισμικού επιτρέπουν τα παρακάτω: Την επίλυση του προβλήματος της απαίτησης πόρων που δεν είναι διαθέσιμοι σε ένα απλό σύστημα. Τη μείωση του απαιτούμενου χρόνου για την g εύρεση μίας λύσης. Το S υπολογίζει την αποτελεσματικότητα του παραλληλισμού: S(N) = T(1) / T(N) T(1): Ο χρόνος εκτέλεσης ενός σειριακού υπολογισμού. T(N): Ο χρόνος εκτέλεσης όταν εκτελούνται N παράλληλοι υπολογισμοί.

Παράλληλη επεξεργασία (2/2) Amdahl's Law: Αν α είναι το ποσοστό του χρόνου εκτέλεσης ενός σειριακού προγράμματος, τότε: S = 1/a Gustafson's Law: Η κλιμακούμενη αύξηση της απόδοσης με N παράλληλες διεργασίες: S(N) = N - α( N-1)

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

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

Ταυτοχρονισμός: Λειτουργία και αδιέξοδα (2/2) Μία κατάσταση deadlock μπορεί να εμφανιστεί αν και μόνο αν όλες οι επόμενες συνθήκες συνυπάρχουν σε ένα σύστημα (Coffman, 1971). Αμοιβαίος αποκλεισμός: Τουλάχιστον ένας πόρος είναι μη-κοινόχρηστος και μόνο μία διεργασία / νήμα μπορεί να χρησιμοποιήσει τον πόρο σε κάθε δεδομένη στιγμή. (αν όλοι οι πόροι ήταν κοινόχρηστοι;;;) Σταμάτημα κι αναμονή (ή παρακράτηση πόρων) : Τουλάχιστον μία διεργασία / νήμα κατέχει τουλάχιστον έναν πόρο και αιτείται επιπλέον πόρους οι οποίοι κρατούνται από άλλες διεργασίες. Καμμία παραχώρηση (no preemption) : Ο χρονοπρογραμματιστής ή ο ελεγκτής δεν είναι σε θέση να αναγκάσει μία διαδικασία / νήμα που κατέχει έναν πόρο να τον παραχωρήσει. Μόνο η διεργασία μπορεί να το κάνει εθελοντικά. Κυκλική αναμονή: Δοθέντος του συνόλου n διεργασιών / νημάτων {PI, P2, P3,...,Pn }, μία διεργασία P1 αναμένει για έναν πόρο που κρατείται από την P2, η P2 αναμένει για έναν πόρο που κρατείται από την P3 κτλ., και η Pn αναμένει για έναν πόρο που κρατείται από την P1.

Προκλήσεις Κατάσταση Livelock: Παρόμοια με το deadlock, Δύο ή περισσότερες διεργασίες / νήματα συνεχώς αλλάζουν την κατάστασή τους σε απόκριση μεταβολών στις άλλες διεργασίες,, και, Καμία από τις διεργασίες δεν μπορεί να ολοκληρώσει την εκτέλεσή της. Πολύ συχνά διεργασίες / νήματα που εκτελούνται ταυτόχρονα διαθέτουν προτεραιότητες και χρονοπρογραμματίζονται σύμφωνα με αυτές. Η αντιστροφή μίας προτεραιότητας, ορίζει ότι μία υψηλότερης προτεραιότητας διεργασία / νήμα έμμεσα προσπερνιέται από μία χαμηλότερης Ι προτεραιότητας διεργασία / νήμα. Η επίτευξη παραλληλισμού είναι συχνά δύσκολη και η ανάπτυξη των παράλληλων αλγορίθμων απαιτεί σημαντική προσπάθεια. Για παράδειγμα, πολλά προβλήματα αριθμητικής s ανάλυσης, όπως η επίλυση μεγάλων συστημάτων γραμμικών εξισώσεων ή συστημάτων του ΜΔΕ (Μερικές Διαφορικές Εξισώσεις), απαιτεί αλγόριθμους που βασίζονται σε μεθόδους αποσύνθεσης (decomposition methods).

Παραλληλισμός (1/2) Παραλληλισμός fine-grain Σχετικά μικρά τμήματα του κώδικα μπορούν να εκτελεστούν παράλληλα, χωρίς την ανάγκη επικοινωνίας ή να συγχρονισμού με άλλα νήματα ή διεργασίες. Παραλληλισμός coarse-grain Μεγάλα τμήματα του κώδικα μπορούν να εκτελεστούν παράλληλα Η επιτάχυνση των εφαρμογών με παραλληλισμό fine-grain είναι σημαντικά μικρότερη από τις εφαρμογές όπου εφαρμόζεται παραλληλισμός coarsegrain. Η ταχύτητα του επεξεργαστή είναι τάξεις μεγέθους μεγαλύτερη από την ταχύτητα επικοινωνίας ακόμη και σε συστήματα με γρήγορες διασυνδέσεις

Παραλληλισμός (2/2) Παραλληλισμός δεδομένων. Τα δεδομένα χωρίζονται σε διάφορα μπλοκ και I τα μπλοκ επεξεργάζονται παράλληλα. Ίδιο πρόγραμμα πολλαπλά δεδομένων. Same Program Multiple Data (SPMD). Παραλληλισμός δεδομένων όταν πολλαπλά αντίγραφα του ίδιου προγράμματος εκτελούνται ταυτόχρονα, κάθε ένα με διαφορετικό μπλοκ δεδομένων

Επίπεδα Παραλληλισμού Παραλληλισμός επιπέδου bit Ο αριθμός των bits που βρίσκονται σε επεξεργασία ανά κύκλο ρολογιού, που συχνά χαρακτηρίζεται ως μέγεθος λέξης (word size), αυξήθηκε σταδιακά από 4-bit, σε 8-bit, 16-bit, 32-bit και 64-bit. Το γεγονός αυτό μείωσε τον αριθμό των οδηγιών που απαιτούνται για την επεξεργασία τελεστών μεγαλύτερου μεγέθους και επέτρεψε μία σημαντική βελτίωση των επιδόσεων Κατά τη διάρκεια αυτής της εξελικτικής διαδικασίας, ο αριθμός των bits προσδιορισμού των διευθύνσεων της μνήμης έχει αυξήθηκε επίσης, επιτρέποντας στις οδηγίες να αναφέρονται σε ένα μεγαλύτερο χώρο διευθύνσεων και κατ επέκταση να μπορούν να χρησιμοποιούν μεγαλύτερες ποσότητες μνήμης. Παραλληλισμός επιπέδου οδηγίας. Οι σημερινοί υπολογιστές χρησιμοποιούν αγωγούς (pipelines) επεξεργασίας πολλαπλών σταδίων (multi stage) για την επιτάχυνση της εκτέλεσης. Παραλληλισμός δεδομένων ή παραλληλισμός βρόχου επανάληψης. Οι βρόχοι του προγράμματος μπορούν να υποβάλλονται σε επεξεργασία παράλληλα. Παραλληλισμός εργασιών. Το πρόβλημα μπορεί να αποσυντεθεί σε εργασίες που μπορούν να εκτελεσθούν ταυτόχρονα (π.χ. SPMD). Σημειώνουμε ότι εξαρτήσεις δεδομένων προκαλούν διαφορετικές ροές ελέγχου σε επιμέρους εργασίες.

Αρχιτεκτονική παράλληλων υπολογιστών (1/2) Η ταξινόμηση Michael Flynn των αρχιτεκτονικών υπολογιστών βασίζεται στον αριθμό των ταυτόχρονων ρευμάτων ελέγχου / εντολών και I δεδομένων. Απλή εντολή απλά δεδομένα. Single Instruction Single Data (SISD). Κλιμακωτή αρχιτεκτονική με έναν επεξεργαστή / πυρήνα επεξεργασίας. Απλή εντολή πολλαπλά δεδομένα. Single Instruction, Multiple Data (SIMD). Υποστηρίζει την επεξεργασία διανυσμάτων. Όταν πραγματοποιείται μία εντολή SIMD, οι εργασίες σχετικά με τα επιμέρους συστατικά του διανύσματος πραγματοποιούνται ταυτόχρονα

Αρχιτεκτονική παράλληλων υπολογιστών (2/2) Πολλαπλές εντολές πολλαπλά δεδομένα. Multiple Instructions, Multiple Data (MIMD). Ένα σύστημα με πολλούς επεξεργαστές ή/και πυρήνες που λειτουργούν ασύγχρονα και ανεξάρτητα. Διαφορετικοί επεξεργαστές/πυρήνες μπορούν να εκτελούν διαφορετικές οδηγίες για διαφορετικά δεδομένα, ταυτόχρονα. Διακρίνουμε διάφορους τύπους συστημάτων. Ενιαία πρόσβαση στη μνήμη (Uniform Memory Access - UMA). Πρόσβαση μόνο στην κρυφή μνήμη (Cache Only Memory Access - COMA). Μη-ενιαία πρόσβαση στη μνήμη (Non-Uniform Memory Access - NUMA).

Κατανεμημένα συστήματα (1/2) Μία συλλογή αυτόνομων υπολογιστικών συστημάτων, που συνδέονται μέσω ενός δικτύου κι ενός λογισμικού που ονομάζεται middleware με σκοπό τους να συντονίσουν τις δραστηριότητές τους και να μοιράζονται τους πόρους του συστήματος. Χαρακτηριστικά: Οι χρήστες αντιλαμβάνονται το σύστημα ως μία ενιαία, ολοκληρωμένη εγκατάσταση υπολογιστών. Τα συστατικά είναι αυτόνομα. Οι πόροι μπορεί να μην είναι προσβάσιμοι ανά πάσα στιγμή.

Κατανεμημένα συστήματα (2/2) Οι πολιτικές χρονοπρογραμματισμού, διαχείρισης των πόρων και ασφάλειας υλοποιούνται από κάθε επιμέρους σύστημα. Υπάρχουν πολλαπλά σημεία ελέγχου και πολλαπλά σημεία αποτυχίας (multiple points of failure). Μπορεί να κλιμακωθεί με την προσθήκη πρόσθετων πόρων. Μπορεί να σχεδιαστεί για να διατηρηθεί η διαθεσιμότητα ακόμη και με υλικό / λογισμικό / δίκτυο με χαμηλά επίπεδα αξιοπιστίας.

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

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

Διεργασίες, νήματα και συμβάντα (1/2) Μονάδες που κατανέμονται: Διεργασία: Ένα πρόγραμμα σε εκτέλεση. Νήμα: ορίζεται από τον Program counter & τη στοίβα εκτέλεσης execution stack: Μία ελαφριά (light-weight) διεργασία. Κατάσταση μίας διεργασίας / νήματος: Το σύνολο των πληροφοριών που θα πρέπει να ξαναξεκινήσει μια διεργασία / νήμα ύστερα από αναστολή της. Συμβάν: Είναι μία αλλαγή της κατάστασης μίας διεργασίας. Τοπικά συμβάντα. Συμβάντα επικοινωνίας.

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

Μηνύματα και κανάλια Επικοινωνίας (1/4) Μήνυμα Μία δομημένη μονάδα πληροφοριών. Κανάλι επικοινωνίας Παρέχει τα μέσα για τις διεργασίες ή τα νήματα ώστε να επικοινωνούν μεταξύ τους ανταλλάσσοντας μηνύματα και να συντονίζουν τις ενέργειές τους. Η επικοινωνία γίνεται μόνο με τη βοήθεια των συμβάντων αποστολής send(m) και της λήψης receive(m), με όπου m είναι ένα μήνυμα Η κατάσταση ενός καναλιού επικοινωνίας: Δοθέντων δύο διεργασιών pi και pj, η κατάσταση του καναλιού ci,j, από την pi στην pj αποτελείται από τα μηνύματα που έχουν αποσταλεί από την pi αλλά δεν έχουν ακόμη παραληφθεί από την pj. Πρωτόκολλο Ένα πεπερασμένο σύνολο μηνυμάτων που ανταλλάσσονται μεταξύ των διεργασιών ώστε να τις βοηθήσουν να συντονίσουν τις ενέργειές τους.

Μηνύματα και κανάλια Επικοινωνίας (2/4) Τα χωροχρονικά διαγράμματα απεικονίζουν τοπικά συμβάντα και συμβάντα επικοινωνίας κατά τη διάρκεια εκτέλεσης μίας διεργασίας. Τα τοπικά συμβάντα απεικονίζονται ως μικροί μαύροι κύκλοι. Τα συμβάντα επικοινωνίας μεταξύ διαφορετικών διαδικασιών απεικονίζονται ως με γραμμές από το συμβάν αποστολής μέχρι το συμβάν λήψης. Όλα τα συμβάντα στη διεργασία p1 είναι τοπικά. Η διεργασία είναι σε κατάσταση s1 αμέσως μετά την επέλευση του συμβάντος e11 και παραμένει σε αυτή την κατάσταση μέχρι την επέλευση του ο συμβάντος e12

Μηνύματα και κανάλια Επικοινωνίας (3/4) Δύο διεργασίες p1 και p2. Το συμβάν e12 είναι ένα συμβάν επικοινωνίας, όπου η διεργασία p1 στέλνει ένα μήνυμα στην p2. Το συμβάν e23 είναι ένα συμβάν επικοινωνίας, όπου η διεργασία p2 λαμβάνει το μήνυμα που απέστειλε η p1.

Μηνύματα και κανάλια Επικοινωνίας (4/4) Τρείς διεργασίες αλληλεπιδρούν μέσω συμβάντων επικοινωνίας

Παγκόσμια κατάσταση μιας ομάδας διεργασιών (1/2) Οι παγκόσμιες καταστάσεις ενός κατανεμημένου υπολογισμού με n διεργασίες σχηματίζουν ένα η-διάστατο πλέγμα. Πόσες διαδρομές υπάρχουν ώστε να φθάσουμε μία παγκόσμια υπαρκτή κατάσταση; Όσο περισσότερες είναι οι διαδρομές, τόσο πιο δύσκολο είναι να εντοπιστούν τα γεγονότα που οδήγησαν σε μια δεδομένη κατάσταση Ένας μεγάλος αριθμός διαδρομών αυξάνει τις δυσκολίες αποσφαλμάτωσης του συστήματος. Σε περίπτωση δύο νημάτων, ο αριθμός των διαδρομών από την αρχική κατάσταση Σ(0,0) στην κατάσταση Σ(m, n) είναι: N(m, n) = (m + n) / (m!n!) Στην περίπτωση που έχουμε δύο διαστάσεις, η παγκόσμια κατάσταση Σ(m, n) μπορεί να επιτευχθεί μόνο από δύο καταστείς, Z(m-1, n) και Σ(m, n-1)

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

Πρωτόκολλα επικοινωνίας - Συντονισμός (2/3) Τα πρωτόκολλα επικοινωνίας εφαρμόζουν: Μηχανισμών ελέγχου σφάλματων. Με τη χρήση αλγορίθμων ανίχνευσης και διόρθωσης σφαλμάτων. Έλεγχος ροής. Παρέχει ανατροφοδότηση από το δέκτη και αναγκάζει τον αποστολέα να μεταδίδει μόνο το ποσό των δεδομένων που ο δέκτης μπορεί να χειριστεί. Έλεγχος συμφόρησης Διασφαλίζει ότι το προσφερόμενο φορτίο του δικτύου δεν υπερβαίνει τη χωρητικότητα του δικτύου.

Πρωτόκολλα επικοινωνίας - Συντονισμός (2/3) Διαδικασία συντονισμού με την παρουσία σφαλμάτων στο κανάλι. Η πιθανότητα απώλειας κάθε μηνύματος εκφράζεται με ε. Ένα πρωτόκολλο που περιλαμβάνει n μηνύματα, θα πρέπει να είναι σε θέση να λειτουργήσει σωστά αν n-1 μηνύματα φθάσουν στον προορισμό τους και 1 χαθεί.

Χρόνος και χρονικά διαστήματα Ο συντονισμός διεργασιών απαιτεί: Μια σφαιρική αντίληψη των συνεργαζόμενων οντοτήτων για τον κοινόχρηστο χρόνο. Η μέτρηση των χρονικών διαστημάτων (time intervals), εκφράζει ο χρόνος που μεσολάβησε μεταξύ δύο συμβάντων. Δύο συμβάντα στην παγκόσμια ιστορία του 1 συστήματος μπορεί να μη σχετίζονται μεταξύ τους, ούτε το ένα να αποτελεί αιτία του άλλου. Αυτά τα γεγονότα χαρακτηρίζονται ως παράλληλα. Τα τοπικά χρονομετρα παρέχουν σχετικες μετρήσεις του χρονου. Ένα απομονωμένο σύστημα μπορεί να χαρακτηριστεί από την ιστορία του, η οποία εκφράζεται ως μία ακολουθία συμβάντων, κάθε ένα από τα οποία αντιστοιχεί σε μια αλλαγή της κατάστασης του συστήματος. Η Παγκόσμια συμφωνία για τον χρόνο είναι απαραίτητη για να προκαλέσει ενέργειες που θα πρέπει να συμβαίνουν ταυτόχρονα. Οι χρονικές σημάνσεις (timestamps) χρησιμοποιούνται συχνά για την ταξινόμηση συμβάντων χρησιμοποιώντας μία βάση παγκόσμιου χρόνου

Λογικά ρολόγια (1/2) Λογικό ρολόι (logical clock - LC). Μία γενίκευση, η οποία είναι αναγκαία για την εξασφάλιση της κατάσταση του ρολογιού όταν απουσιάζει ένα παγκόσμιο ρολόι Μία διεργασία αντιστοιχίζει γεγονότα σε θετικούς ακέραιους αριθμούς. Η τοπική μεταβλητή που σχετίζεται με το συμβάν e εκφράζεται ως LC(e). Κάθε διεργασία προσθέτει μία χρονοσφραγίδα σε κάθε μήνυμα m που στέλνει με την τιμή του λογικού ρολογιού κατά τη στιγμή της αποστολής: TS(m) = LC(send(m)) Οι κανόνες για την ενημέρωση του λογικού ρολογιού: Αν e είναι ένα τοπικό συμβάν: LC(e) = LC + 1 Αν e είναι ένα συμβάν λήψης: LC(e) = max (LC, (TS(m)+1))

Λογικά ρολόγια (2/2) Τρεις διαδικασίες και τα λογικά ρολόγια τους. 1 2 3 4 5 12

Κανόνες παράδοσης μηνυμάτων(1/3) Η αφαιρετικότητα του καναλιού επικοινωνίας δεν κάνει υποθέσεις σχετικά με τη σειρά των μηνυμάτων Η σειρά των μηνυμάτων μπορεί να αλλάξει σε ένα δίκτυο. Παράδοση First-In-First-Out (FIFO). Τα μηνύματα παραδίδονται στην ίδια σειρά με την οποία αποστέλλονται. Αιτιατή παράδοση. Μία επέκταση της παράδοσης FIFO για την περίπτωση κατά την οποία μία διεργασία λαμβάνει μηνύματα από διαφορετικές πηγές. Ακόμη και αν το κανάλι επικοινωνίας δεν εγγυάται την παράδοση FIFO, η παράδοση FIFO μπορεί να επιβληθεί με την προσάρτηση ενός αύξοντα αριθμού ακολουθίας σε κάθε μήνυμα που αποστέλλεται. Οι αριθμοί ακολουθίας χρησιμοποιούνται επίσης για επανασυναρμολόγηση των μηνυμάτων εκτός από τα μεμονωμένα πακέτα.

Κανόνες παράδοσης μηνυμάτων(2/3) Λήψη μηνύματος και παράδοση μηνύματος είναι δύο διαφορετικές λειτουργίες. Η διεπαφή καναλιού-διεργασίας εφαρμόζει τους κανόνες παράδοσης, π.χ. παράδοση FIFO

Κανόνες παράδοσης μηνυμάτων(3/3) Παραβίαση της αιτιατής παράδοσης όταν εμπλέκονται περισσότερες από δύο διεργασίες. Το μήνυμα m1 παραδίδεται στη διεργασία p2 μετά από το μήνυμα m3, αν και το μήνυμα m1 εστάλη νωρίτερα.

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

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

Το πρωτόκολλο στιγμιότυπων Chandy & Lamport Ο αλγόριθμος Chandy Lamport είναι ένας αλγόριθμος στιγμιοτύπων «snapshot algorithm», που χρησιμοποιείται στα κατανεμημένα συστήματα για την καταγραφή μίας συνεπούς (consistent) global state ενός ασύγχρονου συστήματος. Ορισμός Παραδοχές αλγόριθμου: Δεν υπάρχουν απώλειες/βλάβες και όλα τα μηνύματα φτάνουν σωστά και μία φορά. Τα κανάλια επικοινωνίας είναι unidirectional και FIFO ordered Υπάρχει ένα κανάλι επικοινωνίας μεταξύ οποιωνδήποτε δύο διεργασιών στο σύστημα. Κάθε διεργασία μπορεί να εκκινήσει τον αλγόριθμο snapshot. Ο αλγόριθμος snapshot δεν εμπλέκεται με την κανονική εκτέλεση των διεργασιών. Κάθε διεργασία στο σύστημα καταγράφει την τοπική κατάστασή της και την κατάσταση των εισερχομένων σε αυτήν καναλιών.

Το πρωτόκολλο στιγμιότυπων Chandy & Lamport Ορισμός συνέχεια Ο αλγόριθμος χρησιμοποιεί μαρκαρισμένα μηνύματα (marker messages) Κάθε διεργασία που θέλει να αρχικοποιήσει ένα στιγμιότυπο καταγράφει την τοπική της κατάσταση και στέλνει ένα μήνυμα marker σε κάθε κανάλι εξόδου της. Όλες οι άλλες διεργασίες με την παραλαβή του μηνύματος marker, καταγράφουν την τοπική τους κατάσταση, θέτουν την κατάσταση του καναλιού από το οποίο παρέλαβαν το μήνυμα ως άδεια (empty) και στέλνουν μηνύματα σε όλα τα κανάλια εξόδου τους Εάν μία διεργασία παραλάβει μήνυμα αφού έχει καταγράψει την τοπική της κατάσταση, καταγράφει την κατάσταση του καναλιού εισόδου (από όπου ήρθε το μήνυμα) ως μεταφορέα όλων των μηνυμάτων που παρέλαβε από την αρχική καταγραφή της τοπικής της κατάστασης. If a process receives a marker after having recorded its local state, it records the state of the incoming channel from which the marker came as carrying all the messages received since it first recorded its local state. Μερικές παραδοχές του αλγόριθμου μπορούν να εκτελεστούν χρησιμοποιώντας ένα πιο αξιόπιστο πρωτόκολλο επικοινωνίας/μεταφοράς όπως το TCP/IP. Ο αλγόριθμος μπορεί να προσαρμοσθεί έτσι ώστε πολλά στιγμιότυπα να λαμβάνουν χώρα ταυτόχρονα.

Το πρωτόκολλο στιγμιότυπων Chandy & Lamport Aαλγόριθμος Chandy-Lamport Η διαδικασία παρατηρητής (observer process=the process taking a snapshot): Καταγράφει τη δική της τοπική κατάσταση Στέλνει μία μήνυμα αίτησης στιγμιότυπου (snapshot request message) το οποίο μεταφέρει ένα εισιτήριο στιγμιότυπων (snapshot token) σε όλες τις άλλες διεργασίες. Μία διεργασία που λαμβάνει το snapshot token για πρώτη φορά σε οποιοδήποτε μήνυμα: Αποστέλλει στην διαδικασία παρατηρητή τη δική της αποθηκευμένη κατάσταση. Επισυνάπτει το snapshot token σε όλα τα ακόλουθα μηνύματα (για να βοηθήσει στη διάδοση του snapshot token) Όταν μία διεργασία που έχει ήδη παραλάβει το snapshot token παραλαμβάνει μήνυμα που δεν περιέχει το snapshot token, αυτή η διεργασία προωθεί το μήνυμα στην διαδικασία Observer. Αυτό το μήνυμα προφανώς είχε αποσταλεί πριν τη διαδικασία εκκίνησης στιγμιότυπων, αφού δεν περιλαμβάνει το snapshot token. Έτσι αποστέλλεται στη διεργασία observer ώστε να συμπεριληφθεί στο στιγμιότυπο. Από όλα αυτά η διεργασία παρατηρητής (observer) δημιουργεί ένα πλήρες στιγμιότυπο, δηλαδή την αποθηκευμένη κατάσταση για κάθε διεργασία, και επιπλέον αποθηκεύει όλα τα μηνύματα στο δίκτυο.

Το πρωτόκολλο στιγμιότυπων Chandy & Lamport Ένα πρωτόκολλο για την κατασκευή συνεπών παγκόσμιων καταστάσεων Το πρωτόκολλο έχει τρία στάδια: Η διεργασία p0 στέλνει στον εαυτό της ένα μήνυμα λήψης στιγμιοτύπου. Έστω pf η διεργασία από την οποία η pi λαμβάνει το μήνυμα λήψης στιγμιοτύπου για πρώτη φορά. Μετά τη λήψη του μηνύματος, η διαδικασία pi καταγράφει την τοπική κατάσταση και αναμεταδίδει το μήνυμα λήψης στιγμιοτύπου κατά μήκος όλων των εξερχόμενων καναλιών χωρίς εκτέλεσης γεγονότα για λογαριασμό του υποκείμενου υπολογισμού του (underlying computation). Η κατάσταση του καναλιού έχει οριστεί σε κενό και η διεργασία pi αρχίζει την καταγραφή των μηνυμάτων που λαμβάνονται από κάθε ένα από τα εισερχόμενα κανάλια. Έστω ps είναι η διεργασία από την οποία η pi λαμβάνει το μήνυμα να λήψης στιγμιοτύπου μετά από την πρώτη φορά. Η διεργασία pi σταματάει την εγγραφή μηνυμάτων από το εισερχόμενο κανάλι από την ps και δηλώνει την κατάσταση αυτού του καναλιού καθώς τα σχετικά μηνύματα έχουν καταγραφεί.

Το πρωτόκολλο στιγμιότυπων Chandy & Lamport Ένα πρωτόκολλο για την κατασκευή συνεπών παγκόσμιων καταστάσεων Το πρωτόκολλο έχει τρία στάδια: Η διεργασία p0 στέλνει στον εαυτό της ένα μήνυμα λήψης στιγμιοτύπου. Έστω pf η διεργασία από την οποία η pi λαμβάνει το μήνυμα λήψης στιγμιοτύπου για πρώτη φορά. Μετά τη λήψη του μηνύματος, η διαδικασία pi καταγράφει την τοπική κατάσταση και αναμεταδίδει το μήνυμα λήψης στιγμιοτύπου κατά μήκος όλων των εξερχόμενων καναλιών χωρίς εκτέλεσης γεγονότα για λογαριασμό του υποκείμενου υπολογισμού του (underlying computation). Η κατάσταση του καναλιού έχει οριστεί σε κενό και η διεργασία pi αρχίζει την καταγραφή των μηνυμάτων που λαμβάνονται από κάθε ένα από τα εισερχόμενα κανάλια. Έστω ps είναι η διεργασία από την οποία η pi λαμβάνει το μήνυμα να λήψης στιγμιοτύπου μετά από την πρώτη φορά. Η διεργασία pi σταματάει την εγγραφή μηνυμάτων από το εισερχόμενο κανάλι από την ps και δηλώνει την κατάσταση αυτού του καναλιού καθώς τα σχετικά μηνύματα έχουν καταγραφεί.

Ταυτοχρονισμός Απαιτείται από το σύστημα και από το λογισμικό εφαρμογής: Τα αντιδραστικά συστήματα (reactive systems) ανταποκρίνονται σε εξωτερικά γεγονότα. Για παράδειγμα, ο πυρήνας ενός λειτουργικού συστήματος, τα ενσωματωμένα συστήματα. Βελτίωση απόδοσης. Παράλληλες εφαρμογές μοιράζουν το φόρτο εργασίας και τον διανείμει σε πολλαπλά νήματα που τρέχουν ταυτόχρονα. Υποστήριξη μεταβλητού φόρτου και μείωση του χρόνου απόκρισης: Κατανεμημένες εφαρμογές, συμπεριλαμβανομένων των συστημάτων διαχείρισης συναλλαγών και εφαρμογών που βασίζονται στο μοντέλο client- server

Ατομικές δράσεις (1/2) Οι παράλληλες και κατανεμημένες εφαρμογές πρέπει να λαμβάνουν ειδικές προφυλάξεις για το χειρισμό κοινών πόρων. Ατομική λειτουργία. Θα πρέπει να επιτραπεί σε μία λειτουργία πολλαπλών σταδίων για να ολοκληρωθεί χωρίς καμία διακοπή. Αποκρύπτοντας την εσωτερική κατάσταση μίας ατομικής λειτουργίας, μειώνεται ο αριθμός των καταστάσεων στις οποίες μπορεί να βρεθεί το σύστημα. Έτσι, απλοποιείται ο σχεδιασμός και η συντήρηση του συστήματος. Η ατομικότητα απαιτεί υποστήριξη από το υλικό (hardware): Δοκιμή και Ρύθμιση (Test-and-Set). Εντολή που εγγράφει σε μία θέση μνήμης και επιστρέφει το παλιό περιεχόμενο της εν λόγω θέσης ως μη διακοπτόμενο Σύγκριση και Ανταλλαγή (Compare-and-Swap). Εντολή που συγκρίνει τα περιεχόμενα μιας θέσης μνήμης με μία δεδομένη τιμή και μόνο αν οι δύο τιμές είναι ίδιες, τροποποιεί τα περιεχόμενα της εν λόγω θέσης μνήμης καταχωρώντας μία νέα τιμή.

Ατομικότητα "όλα ή τίποτα" (1/3) Είτε πραγματοποιείται η συνολική ατομική λειτουργία. Είτε το σύστημα παραμένει στην ίδια κατάσταση που ήταν πριν από την έναρξη της ατομικής λειτουργίας, Πχ, μία συναλλαγή: Είτε πραγματοποιείται με επιτυχία. Είτε η εγγραφή που στοχεύεται από τη συναλλαγή επιστρέφει στην αρχική της κατάσταση. Δύο φάσεις: Πριν από τη δέσμευση. Μετά από τη δέσμευση.

Ατομικότητα "όλα ή τίποτα" (2/3) Πριν από τη δέσμευση: Κατά τη διάρκεια αυτής της φάσης θα πρέπει να είναι δυνατό να την σταματήσουμε χωρίς να απομείνει κανένα ίχνος από αυτή. Σημείο δέσμευσης: Το σημείο όπου πραγματοποιείται μετάβαση από την πρώτη στη δεύτερη φάση. Πρέπει να πραγματοποιηθούν όλα τα αναγκαία βήματα για να προετοιμαστεί η φάση «μετά από τη δέσμευση», π.χ., έλεγχος δικαιωμάτων, φόρτωμα στην κύρια μνήμη όλων των σελίδων που μπορεί να χρειαστούν, και προσάρτηση αφαιρούμεων μέσων. Κατά την διάρκεια αυτής της φάσης τα αποτελέσματα δεν θα πρέπει να εκτίθενται και καμία μη αναστρέψιμη δράση δεν πρέπει να πραγματοποιείται. Μετά από τη δέσμευση: Θα πρέπει να μπορεί να ολοκληρωθεί με επιτυχία. Κοινόχρηστοι πόροι που διατίθενται κατά τη διάρκεια της φάσης «πριν από τη δέσμευση» δεν μπορούν να αποδεσμευθούν μέχρι την ολοκλήρωση αυτής της φάσης

Ατομικότητα "όλα ή τίποτα" (3/3) Οι φάσεις της δράσης «Όλα ή τίποτα)

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

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

Πρωτόκολλα συναίνεσης (1/2) Συναίνεση Η διαδικασία της επιλογής μίας πρότασης, μέσα από ένα σύνολο προτάσεων που πραγματοποιήθηκαν από πολλούς παράγοντες. Υπηρεσία συναίνεση Σύνολο n διεργασιών. Οι clients στέλνουν αιτήματα, με κάθε ένα από τα οποία, προτείνουν μία τιμή και να περιμένουν για μία απάντηση. Παραδοχές Στόχος είναι, το σύνολο των διεργασιών να συμφωνήσουν σε μία συγκεκριμένη τιμή. Διεργασίες που εκτελούνται σε επεξεργαστές κι επικοινωνούν μεταξύ τους μέσω ενός δικτύου. Ενδέχεται να εμφανιστούν αποτυχίες στους επεξεργαστές ή στο δίκτυο. Επεξεργαστές: Λειτουργούν σε αυθαίρετες ταχύτητες. Έχουν σταθερή αποθήκευση και μπορεί να επανέλθουν μετά από μια αποτυχία. Στέλνουν μηνύματα ο ένας στον άλλο.

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

Αναφορές Το παρών υλικό βασίστηκε πάνω στην δράση «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» http://creativecommons.org/licenses/by-nc-sa/4.0/ http://openclass.teiwm.gr/courses/informatic122/