Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως"

Transcript

1 Αµοιβαίος Αϖοκλεισµός Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1

2 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως µια µηχανή καταστάσεων (χωρίς όµως inbuf και outbuf πίνακες). Κάθε καταχωρητής έχει ένα τύπο που καθορίζει το σύνολο των τιµών που µπορούν να αποθηκευτούν στον καταχωρητή, καθώς και το σύνολο των λειτουργιών που µπορούν να εκτελεστούν ατοµικά σε αυτόν. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 2

3 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Παράδειγµα Καταχωρητής ανάγνωσης-εγγραφής (read-write register) R µε ακέραιες τιµές Σύνολο τιµών N (το σύνολο όλων των ακεραίων) Λειτουργίες read(r): επιστρέφει την τρέχουσα τιµή του R (χωρίς να προκαλέσει κάποια µεταβολή σε αυτή) write(r, v): εγγράφει v στον R και επιστρέφει ack Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 3

4 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Καθολικές Καταστάσεις C = (q 0,, q n-1, r 0,, r m-1 ), όπου: q i είναι η κατάσταση της p i, και r j είναι η τιµή του καταχωρητή R j η C περιέχει και τις τιµές των καταχωρητών Γεγονότα Υπάρχουν µόνο υπολογιστικά γεγονότα. Σε κάθε υπολογιστικό γεγονός: η p επιλέγει (βασισµένη στην τρέχουσα κατάστασή της) για προσπέλαση έναν από τους καταχωρητές, έστω τον R η p εκτελεί την καθορισµένη λειτουργία στον R η κατάσταση της p µεταβάλλεται σύµφωνα µε τη συνάρτηση µετάβασής της. Η µετάβαση γίνεται λαµβάνοντας υπόψη την τρέχουσα κατάσταση της p και την τιµή που επιστράφηκε από την λειτουργία που εφαρµόστηκε στον R Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 4

5 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Μετρικά Πολυϖλοκότητας Χωρική Πολυϖλοκότητα (αντί για ϖολυϖλοκότητα εϖικοινωνίας) Μέγεθος κοινής µνήµης που χρησιµοποιείται για την επίλυση ενός προβλήµατος Χρονική Πολυϖλοκότητα εν έχει νόηµα! Τι συµβαίνει όταν έχουµε ανταγωνισµό στην πρόσβαση µιας κοινής µεταβλητής (και απαιτείται συγχρονισµός); συµφόρηση! Σηµαντικό θέµα στο οποίο γίνεται έρευνα σήµερα! Συνήθως, µετράµε τον αριθµό των βηµάτων. Ενδιαφερόµαστε για το αν ο αριθµός των βηµάτων είναι πεπερασµένος, µη-πεπερασµένος ή φραγµένος. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 5

6 Το Πρόβληµα του Αµοιβαίου Αϖοκλεισµού Το πρόβληµα µοντελοποιεί τον διαµοιρασµό ενός µοναδικού, µηπροεκχωρητικού πόρου µεταξύ n χρηστών. Ο πόρος µπορεί να είναι:\ ο εκτυπωτής κάποια άλλη συσκευή εξόδου µια βάση δεδοµένων ή κάποια δοµή δεδοµένων οτιδήποτε απαιτεί αποκλειστική πρόσβαση προκειµένου να είναι εγγυηµένο ότι το αποτέλεσµα θα είναι σωστό Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 6

7 Το Πρόβληµα του Αµοιβαίου Αϖοκλεισµού Τµήµατα Κώδικα Ο χρήστης που την τρέχουσα χρονική στιγµή προσβαίνει τον πόρο βρίσκεται στο κρίσιµο τµήµα του. Χρήστες που την τρέχουσα χρονική στιγµή δεν ενδιαφέρονται να χρησιµοποιήσουν τον πόρο βρίσκονται στο µη-κρίσιµο τµήµα τους. Χρήστες που ενδιαφέρονται να χρησιµοποιήσουν τον πόρο και προσπαθούν να αποκτήσουν πρόσβαση σε αυτόν βρίσκονται στο τµήµα εισόδου τους. Τέλος, χρήστες που µόλις τελείωσαν τη χρήση του πόρου βρίσκονται στο τµήµα εξόδου τους (εκτελούν κατάλληλες ενέργειες για να επιτρέψουν σε άλλες διεργασίες να χρησιµοποιήσουν τον πόρο). Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 7

8 Αλγόριθµοι ϖου εϖιλύουν το ϖρόβληµα του Αµοιβαίου Αϖοκλεισµού Αµοιβαίος Αϖοκλεισµός Σε κάθε καθολική κατάσταση οποιαδήποτε εκτέλεσης, το πολύ µια διεργασία βρίσκεται στο κρίσιµο τµήµα της. Αϖοφυγή Αδιεξόδου Αν σε κάποια καθολική κατάσταση (οποιασδήποτε εκτέλεσης ενός αλγορίθµου που επιλύει το πρόβληµα) µια διεργασία βρίσκεται στο τµήµα εισόδου της τότε υπάρχει καθολική κατάσταση σε επόµενο σηµείο της εκτέλεσης στην οποία κάποια διεργασία (η ίδια ή άλλη) βρίσκεται στο κρίσιµο τµήµα της. Αϖοφυγή Παρατεταµένης Στέρησης Αν σε κάποια καθολική κατάσταση (οποιασδήποτε εκτέλεσης) µια διεργασία βρίσκεται στο τµήµα εισόδου της τότε υπάρχει καθολική κατάσταση σε επόµενο σηµείο της εκτέλεσης στην οποία η ίδια αυτή διεργασία βρίσκεται στο κρίσιµο τµήµα της. Ποια ιδιότητα αϖό τις δύο τελευταίες είναι ϖιο ισχυρή; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 8

9 Αλγόριθµοι ϖου εϖιλύουν το ϖρόβληµα του Αµοιβαίου Αϖοκλεισµού Υϖοθέσεις Οι µεταβλητές (διαµοιραζόµενες ή µη) που προσπελαύνονται στο τµήµα εισόδου ή στο τµήµα εξόδου δεν προσπελαύνονται σε κανένα από τα άλλα δύο τµήµατα. Κανένας επεξεργαστής δεν µένει το κρίσιµο τµήµα για πάντα. Εϖιτρεϖτές Εκτελέσεις Το τµήµα εξόδου πρέπει να αποτελείται από πεπερασµένο αριθµό βηµάτων. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 9

10 Αλγόριθµοι Αµοιβαίου Αϖοκλεισµού ϖου χρησιµοϖοιούν Ισχυρούς Καταχωρητές Κύρια αϖοτελέσµατα Η παροχή ενός και µόνο bit κοινής µνήµης είναι αρκετή για την επίτευξη αµοιβαίου αποκλεισµού και αποφυγής αδιεξόδου. Θ(logn) bits απαιτούνται για την επίτευξη αποφυγής παρατεταµένης στέρησης. Binary Test&Set Registers Σύνολο Τιµών: {0,1} Λειτουργίες boolean Test&Set(register T): value tmp; tmp = read(t); write(t,1); return (tmp); Reset(T): V = 0; Read-Modify-Write Registers Σύνολο Τιµών: οτιδήποτε οποιουδήποτε µεγέθους Λειτουργίες value RMW(register V, function f): value tmp; tmp = read(v); V = f(v); return(tmp); Αυτός ο τύπος καταχωρητή είναι πολύ ισχυρός!!! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 10

11 Εϖίτευξη Αµοιβαίου Αϖοκλεισµού µε χρήση ενός Binary Test&Set Καταχωρητή Έστω T ο δυαδικός (binary) Test&Set καταχωρητής, αρχική τιµή 0. Τµήµα Εισόδου: value t = Test&Set(T); while (t== 1) t = Test&Set(T); // wait until Test&Set(T) == 0; <κρίσιµο τµήµα>; Τµήµα εξόδου: reset(t); <µη-κρίσιµο τµήµα>; Θεώρηµα: Ο παραπάνω αλγόριθµος εγγυάται αµοιβαίο αποκλεισµό και αποφυγή αδιεξόδου χρησιµοποιώντας έναν Binary Test&Set καταχωρητή. Εγγυάται ο αλγόριθµος αυτός αϖοφυγή ϖαρατεταµένης στέρησης; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 11

12 Εϖίτευξη Αµοιβαίου Αϖοκλεισµού µε χρήση ενός RMW Καταχωρητή Ο αλγόριθµος χρησιµοποιεί µια κυκλική ουρά µήκους n. Χρησιµοποιείται επίσης ένας RMW καταχωρητής V που αποτελείται από δύο πεδία V.first και V.last που δείχνουν το πρώτο και το τελευταίο στοιχείο της ουράς αντίστοιχα. Αρχικά, V.first = V.last = 0. Μια διεργασία p που θέλει να εισέλθει στο κρίσιµο τµήµα της: ιαβάζει την τιµή του V σε µια τοπική µεταβλητή position και αυξάνει την τιµή του V.last κατά 1. Στη συνέχεια η p διαβάζει επαναληπτικά τον V µέχρι να δει ότι V.first == position.last Κατά την έξοδο από το κρίσιµο τµήµα, η p αυξάνει το v.first κατά 1. Θεώρηµα: Υπάρχει αλγόριθµος αµοιβαίου αποκλεισµού που εγγυάται αποφυγή παρατεταµένης στέρησης και χρησιµοποιεί έναν RMW καταχωρητή των (2 \ceil{log 2 n}) bits. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 12

13 Εϖίτευξη Αµοιβαίου Αϖοκλεισµού µε χρήση ενός RMW Καταχωρητή Κώδικας για κάθε διεργασία p Αρχικά V = <0,0>; Τµήµα εισόδου: position = RMW(V, <V.first, V.last + 1>); repeat queue = RMW(V,V); until (queue.first = position.last); <κρίσιµο τµήµα>; Τµήµα εξόδου: RMW(V,<V.first+1, V.last>); <µη-κρίσιµο τµήµα>; Ποιο είναι το κύριο αρνητικό αυτού του αλγορίθµου; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 13

14 Εϖίτευξη Αµοιβαίου Αϖοκλεισµού µε αναµονή σε τοϖικές µεταβλητές Κώδικας για κάθε διεργασία p Αρχικά Last = 0; Flags[0] = has-lock; Flags[i] = must-wait, 0 < i < n. Τµήµα Εισόδου: my-place = RMW(Last, (Last+1) mod n); wait until (Flags[my-place] == has-lock); Flags[my-place] = must-wait; <κρίσιµο τµήµα>; Τµήµα εξόδου: Flags[(my-place + 1) mod n] = has-lock; <µη-κρίσιµο τµήµα>; Λήµµα: Σε κάθε εκτέλεση του αλγορίθµου ισχύουν τα εξής για τον πίνακα Flags: 1. το πολύ ένα στοιχείο του έχει την τιµή has-lock, 2. αν κανένα στοιχείο του δεν έχει την τιµή has-lock, κάποια διεργασία βρίσκεται στο κρίσιµο τµήµα της 3. Αν Flags[k] == has-lock τότε ακριβώς (k-last-1) mod n διεργασίες βρίσκονται στο τµήµα εισόδου και κάθε µια αναµένει εξετάζοντας ένα διαφορετικό στοιχείο του Flags. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 14

15 Αµοιβαίος Αϖοκλεισµός χρησιµοϖοιώντας Read-Write Καταχωρητές Κύρια Αϖοτελέσµατα Αλγόριθµοι 1. Ένας αλγόριθµος αµοιβαίου αποκλεισµού για n διεργασίες που εγγυάται αποφυγή παρατεταµένης στέρησης και χρησιµοποιεί Ο(n) RW καταχωρητές µη-πεπερασµένης χωρητικότητας. 2. Ένας αλγόριθµος αµοιβαίου αποκλεισµού για n διεργασίες που εγγυάται αποφυγή παρατεταµένης στέρησης και χρησιµοποιεί Ο(n) RW καταχωρητές πεπερασµένης χωρητικότητας. Αρνητικά Αϖοτελέσµατα 1. Κάθε αλγόριθµος αµοιβαίου αποκλεισµού χρειάζεται n RW καταχωρητές ανεξάρτητα από το µέγεθος τους. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 15

16 Ο Aλγόριθµος Bakery for each i, 0 i n-1: Choosing[i]: έχει τιµή TRUE όσο η p i προσπαθεί να επιλέξει αριθµό Number[i]: ο αριθµός (εισιτήριο) που επιλέγεται από την p i Κώδικας για την p i, 0 i n-1 Αρχικά, Number[i] = 0, και Choosing[i] = FALSE, για κάθε i, 0 i n-1 Τµήµα Εισόδου: Choosing[i] = TRUE; Number[i] = max{number[0],, Number[n-1]}+1; Choosing[i] = FALSE; for j = 0 to n-1, j i, do wait until Choosing[j] == FALSE; wait until ((Number[j] == 0) OR ((Number[j], j) > (Number[i], i))); <κρίσιµο τµήµα>; Τµήµα Εξόδου: Number[i] = 0; <µη-κρίσιµο τµήµα>; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 16

17 Ο Aλγόριθµος Bakery Λήµµα Σε κάθε καθολική κατάσταση C οποιασδήποτε εκτέλεσης a του αλγορίθµου, αν η pi βρίσκεται στο κρίσιµο τµήµα της και για κάθε k i, Number[k] 0, τότε (Number[k],k) > (Number[i],i). Αϖόδειξη (σύντοµη ϖεριγραφή) Number[i] > 0 η p i έχει τελειώσει την εκτέλεση της for Περίϖτωση 1: η p i βλέπει Number[k] == 0 Περίϖτωση 2: η p i βλέπει (Number[k],k) > (Number[i],i) Θεώρηµα Ο αλγόριθµος Bakery παρέχει αµοιβαίο αποκλεισµό. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 17

18 Ο Aλγόριθµος Bakery Αποφυγή Παρατεταµένης Στέρησης Θεώρηµα: Ο αλγόριθµος Bakery επιτυγχάνει αποφυγή από παρατεταµένη στέρηση. Αϖόδειξη (σύντοµη ϖεριγραφή): Ας υποθέσουµε ότι υπάρχει τουλάχιστον µια διεργασία που υφίσταται παρατεταµένη στέρηση. Όλες οι διεργασίες που επιθυµούν να εισέλθουν στο κρίσιµο τµήµα τους θα τελειώσουν την επιλογή αριθµού. Έστω ότι p j είναι διεργασία µε το µικρότερο ζεύγος (number[j],j) που υφίσταται παρατεταµένη στέρηση. Αν οποιαδήποτε διεργασία p k εισέλθει στο κρίσιµο τµήµα της µετά την j, τότε Number[k] > Number[j]. Οποιαδήποτε διεργασία p k µε Number[k] < Number[j] θα εισέλθει στο κρίσιµο τµήµα της και θα εξέλθει αυτού. Χωρική Πολυϖλοκότητα Ο αριθµός των διαµοιραζόµενων καταχωρητών είναι 2n. Οι n µεταβλητές Choosing είναι δυαδικές, ενώ οι Number αποθηκεύουν µη-πεπερασµένο αριθµό τιµών. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 18

19 Ένας Αλγόριθµος Αµοιβαίου Αϖοκλεισµού για 2 ιεργασίες ϖου χρησιµοϖοιεί ϖεϖερασµένης χωρητικότητας καταχωρητές Μη-συµµετρική έκδοση want[0]: εγγράφεται από τη διεργασία 0 και διαβάζεται από την 1. Αρχική τιµή 0, τίθεται στην τιµή 1 αν η 0 θέλει να εισέλθει στο κρίσιµο τµήµα της want[1]: συµµετρική της want[0] Κώδικας για την p 0 : Τµήµα Εισόδου: want[0] = 1; wait until (want[1] == 0); <κρίσιµο τµήµα>; Τµήµα Εξόδου: want[0] = 0; <µη-κρίσιµο τµήµα>; Κώδικας για την p 1 : Τµήµα Εισόδου: 1: want[1] = 0; wait until (want[0] == 0); want[1] = 1; if (want[0] == 1) goto line 1; <κρίσιµο τµήµα>; Τµήµα Εξόδου: want[1] = 0; <µη-κρίσιµο τµήµα>; Ο αλγόριθµος επιτυγχάνει αµοιβαίο αποκλεισµό και αποφυγή αδιεξόδου! Ο αλγόριθµος είναι µησυµµετρικός: η p 1 εισέρχεται στο κρίσιµο τµήµα της µόνο αν η p 0 δεν ενδιαφέρεται να εισέλθει! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 19

20 Ένας Αλγόριθµος Αµοιβαίου Αϖοκλεισµού για 2 ιεργασίες ϖου χρησιµοϖοιεί ϖεϖερασµένης χωρητικότητας καταχωρητές Συµµετρική Έκδοση Κώδικας για τη διεργασία p i : Τµήµα Εισόδου: 1: want[i] = 0; 2: wait until ((want[1-i] == 0) OR (priority == i)); 3: want[i] = 1; 4: if (priority == 1-i) then { 5: if (want[1-i] == 1) then goto line 1; } 6: else wait until (want[1-i] == 0); <κρίσιµο τµήµα>; Τµήµα Εξόδου: 7: priority = 1-i; 8: want[i] = 0; <µη-κρίσιµο τµήµα>; Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 20

21 Ένας Αλγόριθµος Αµοιβαίου Αϖοκλεισµού για 2 ιεργασίες ϖου χρησιµοϖοιεί ϖεϖερασµένης χωρητικότητας καταχωρητές Συµµετρική Έκδοση Θεώρηµα Ο αλγόριθµος επιτυγχάνει αµοιβαίο αποκλεισµό. Αϖόδειξη (sketch): Γιατί ισχύει αυτό; Ας υποθέσουµε, δια της µεθόδου της εις άτοπο απαγωγής, ότι και οι δύο διεργασίες βρίσκονται στο κρίσιµο τµήµα τους ταυτόχρονα want[0] = want[1] = 1. Ας υποθέσουµε, wlog, ότι η τελευταία εγγραφή της p 0 στην want[0] έπεται της τελευταίας εγγραφής της p 1 στο want[1]. ιακρίνουµε περιπτώσεις (case analysis) και σε κάθε περίπτωση καταλήγουµε σε άτοπο. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 21

22 Ένας Αλγόριθµος Αµοιβαίου Αϖοκλεισµού για 2 ιεργασίες ϖου χρησιµοϖοιεί ϖεϖερασµένης χωρητικότητας καταχωρητές Συµµετρική Έκδοση Θεώρηµα Ο αλγόριθµος εγγυάται αποφυγή αδιεξόδου. Αϖόδειξη (sketch) Ας υποθέσουµε ότι και κάποια/ες διεργασίες εκτελούν το τµήµα εισόδου τους, αλλά καµιά δεν εισέρχεται στο κρίσιµο τµήµα. Περίπτωση 1: έστω ότι οι δύο διεργασίες είναι για πάντα στο τµήµα εισόδου. Έστω, wlog, ότι priority == 0. Περίπτωση 2: µόνο µια από τις διεργασίες είναι στο τµήµα εισόδου. Αν κάποια διεργασία βρίσκεται στο κρίσιµο τµήµα δεν µπορεί να παραµείνει εκεί για πάντα. Θεώρηµα Ο αλγόριθµος εγγυάται αποφυγή παρατεταµένης στέρησης. Αϖόδειξη (sketch) Ας υποθέσουµε ότι κάποια διεργασία π.χ., η 0, υφίσταται παρατεταµένη στέρηση. Περίπτωση 1: η διεργασία 1 εκτελεί την εντολή 7 κάποια στιγµή αργότερα. Από τότε και µετά ισχύει ότι priority == 0. Περίπτωση 2: η διεργασία 1 δεν εκτελεί την εντολή 7. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 22

23 Ο Αλγόριθµος Tournament για n διεργασίες Οι διεργασίες συναγωνίζονται σε ζευγάρια, χρησιµοποιώντας το συµµετρικό αλγόριθµο για 2 διεργασίες. Οι διεργασίες σχηµατίζουν ένα δένδρο tournament (δηλαδή ένα πλήρες, δυαδικό δένδρο µε n φύλλα, ένα για κάθε διεργασία). Κάθε διεργασία ξεκινά από κάποιο συγκεκριµένο φύλλο (εκείνο που της αναλογεί) του δένδρου. Σε κάθε επίπεδο του δένδρου, δύο διεργασίες συναγωνίζονται σε κάθε κόµβο. Μόνο οι νικητές συνεχίζουν στο επόµενο επίπεδο. Ο νικητής στον κόµβο ρίζα εισέρχεται στο κρίσιµο τµήµα του. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 23

24 Ο Αλγόριθµος Tournament για n διεργασίες procedure Node(v: integer, side: 0..1) { } 1: want v [i] = 0; 2: wait until ((want v [1-i] == 0) OR (priority v == side)); 3: want v [i] = 1; 4: if (priority v == 1-i) then { 5: if (want v [1-i] == 1) then goto line 1; } 6: else wait until (want v [1-i] == 0); 8: if (v == 1) then 9: <κρίσιµο τµήµα>; 10: else Node(\lfloor v/2 \rfloor, v mod 2) 11: priority v = 1-side; 12: want v [side] = 0; Η ρίζα αριθµείται µε το 1. Τ αριστερό παιδί ενός κόµβου µε αριθµό v αριθµείται µε τον αριθµό 2v και το δεξιό παιδί µε τον 2v+1 wantv[0], wantv[1], priorityv: µεταβλητές που έχουν συσχετισθεί µε τον κόµβο µε αριθµό v. Ο κόµβος i ξεκινά εκτελώντας την Node(2k+\lfloor i/2 \lceil, i mod 2), όπου k = \ceil{logn} -1. Ο αµοιβαίος αποκλεισµός εξασφαλίζεται από το γεγονός ότι ο συµµετρικός αλγόριθµος για 2 διεργασίες τον εγγυάται. Το ίδιο ισχύει και για την ιδιότητα αποφυγής παρατεταµένης στέρησης. Χωρική Πολυϖλοκότητα: 3n καταχωρητές Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 24

25 Ο Αλγόριθµος Tournament για n διεργασίες Προβολή εκτέλεσης του αλγορίθµου tournament σε κάποιο κόµβο v: η ακολουθία βηµάτων της εκτέλεσης που πραγµατοποιούνται από κλήσης των Node(v,0) και Node(v,1). Θα δείξουµε ότι: Για κάθε v, η προβολή κάθε εκτέλεσης του δεντρικού αλγορίθµου στον v αποτελεί εκτέλεση του συµµετρικού αλγορίθµου αµοιβαίου αποκλεισµού για 2 διεργασίες, αν θεωρήσουµε ότι κάθε διεργασία που εκτελεί την Node(v,0) είναι η p 0 και κάθε διεργασία που εκτελεί την Νode(v,1) είναι η p 1. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 25

26 Ο Αλγόριθµος Tournament για n διεργασίες Πιο φορµαλιστικά: Έστω ότι a = C 0 φ 1 C 1 φ 2 C 2 είναι µια εκτέλεση του αλγορίθµου tournament. Έστω ότι a v είναι η ακολουθία καθολικές καταστάσεις και γεγονότα που εναλλάσσονται: D 0 π 1 D 1 π 2 D 2 που ορίζεται επαγωγικά ως εξής: Βάση Επαγωγής: D 0 είναι η αρχική καθολική κατάσταση του συµµετρικού αλγορίθµου 2 διεργασιών Επαγωγική Υπόθεση: Έστω ότι η a v έχει οριστεί µέχρι και την καθολική κατάσταση D i-1. Επαγωγικό Βήµα: Έστω ότι φ j = k είναι το i-οστό γεγονός της a που αποτελεί βήµα είτε της Node(v,0) ή της Node(v,1) (έστω, wlog, της Node(v,0)). Έστω ότι π i = 0 και έστω ότι D i είναι η καθολική κατάσταση στην οποία ισχύουν τα εξής: o οι καταστάσεις των µεταβλητών είναι ίδιες µε τις καταστάσεις των µεταβλητών του κόµβου v στην C j o η κατάσταση της p 1 είναι η ίδια µε εκείνη στην D i-1 o η κατάσταση της p 0 είναι η ίδια µε την κατάσταση της p k στην C j εκτός από το ότι το id έχει αντικατασταθεί από το 0. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 26

27 Ο Αλγόριθµος Tournament για n διεργασίες Λήµµα Για κάθε v, η a v είναι εκτέλεση του συµµετρικού αλγορίθµου για 2 διεργασίες. Αϖόδειξη Οι κώδικες της Νode(v,i) και του συµµετρικού αλγορίθµου για 2 διεργασίες είναι ίδιοι. Αρκεί να αποδείξουµε ότι µόνο µια διεργασία εκτελεί εντολές της Node(v,i) σε κάθε σηµείο της εκτέλεσης. Το αποδεικνύουµε µε επαγωγή στο επίπεδο του v, ξεκινώντας από τα φύλλα. Βάση Επαγωγής: Ισχύει εξ κατασκευής. Επαγωγική Υπόθεση: Θεωρούµε οποιοδήποτε εσωτερικό κόµβο του δένδρου και υποθέτουµε ότι ο ισχυρισµός ισχύει για τους κόµβους παιδιά του. Επαγωγικό Βήµα: Αποδ/µε τον ισχυρισµό για τον v. Αν µια διεργασία εκτελεί εντολές π.χ., της Node(v,0), βρίσκεται στο κρίσιµο τµήµα για τον κόµβο που είναι το αριστερό παιδί του v. Από επαγωγική υπόθεση και αφού ο συµµετρικός αλγόριθµος για 2 διεργασίες εγγυάται αµοιβαίο αποκλεισµό, συνεπάγεται ότι µόνο µια διεργασία σε κάθε χρονική στιγµή βρίσκεται στο κρίσιµο τµήµα για το αριστερό παιδί του v. Αντίστοιχα είναι τα επιχειρήµατα για την Node(v,1). Θεώρηµα: Ο αλγόριθµος Tournament επιτυγχάνει αµοιβαίο αποκλεισµό. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 27

28 Ο Αλγόριθµος Tournament για n διεργασίες Λήµµα Για κάθε v, αν η a είναι επιτρεπτή εκτέλεση, τότε και η a v είναι επιτρεπτή εκτέλεση. Αϖόδειξη Αποδεικνύουµε ότι στην a v δεν υπάρχει κάποια διεργασία που να µένει στο κρίσιµο τµήµα για πάντα. Η απόδειξη γίνεται µε επαγωγή στο επίπεδο του v, ξεκινώντας από τη ρίζα. Θεώρηµα Ο αλγόριθµος Tournament επιτυγχάνει αµοιβαίο αποκλεισµό. Αϖόδειξη Η προβολή κάθε εκτέλεσης στη ρίζα του δένδρου είναι επιτρεπτή εκτέλεση του συµµετρικού αλγορίθµου για 2 διεργασίες. Αφού ο αλγόριθµος αυτός εγγυάται αµοιβαίο αποκλεισµό, και ο αλγόριθµος Tournament εγγυάται αµοιβαίο αποκλεισµό. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 28

29 Ένας γρήγορος αλγόριθµος για αµοιβαίο αϖοκλεισµό Ανιχνευτής Συµφόρησης Αρχικά, door = open, race = -1; race = id; if (door == closed) then return lose; else { door = closed; if (race == id) then return win; else return lose; } Θεώρηµα Σε κάθε επιτρεπτή εκτέλεση του αλγορίθµου: 1. Το πολύ µια διεργασία επιστρέφει win από τον ανιχνευτή συµφόρησης. 2. Αν µια διεργασία p i εκτελέσει τον ανιχνευτή συµφόρησης µόνη της, δηλαδή καµιά άλλη διεργασία δεν ξεκινά την εκτέλεση του ανιχνευτή συµφόρησης πριν η p i τερµατίσει τη δική της εκτέλεση, τότε η p i επιστρέφει win. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 29

30 Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Όλοι οι αλγόριθµοι που επιλύουν το πρόβληµα του αµοιβαίου αποκλεισµού χρησιµοποιώντας µόνο read/write καταχωρητές απαιτούν n τέτοιους καταχωρητές. Αυτό δεν συµβαίνει κατά τύχη!!! Μπορεί να αποδειχθεί ότι το πρόβληµα δεν επιλύεται µε λιγότερους από n καταχωρητές. Αυτό ισχύει ακόµη και αν: 1. απαιτείται να ισχύουν µόνο οι ιδιότητες του αµοιβαίου αποκλεισµού και της αποφυγής αδιεξόδου 2. οι καταχωρητές έχουν µη-πεπερασµένο µέγεθος. Χρήσιµοι Ορισµοί Μια καθολική κατάσταση λέγεται ανενεργή αν όλες οι διεργασίες βρίσκονται στη µηκρίσιµο τµήµα τους. Λέµε ότι µια διεργασία j καλύϖτει µια µεταβλητή x σε µια καθολική κατάσταση C αν στο πρώτο βήµα που θα εκτελέσει η j µετά τη C θα γράψει στη µεταβλητή x. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 30

31 Για κάθε k, 0 k n, µια καθολική κατάσταση είναι k-ϖροσβάσιµη από κάποια άλλη καθολική κατάσταση C αν υπάρχει τµήµα εκτέλεσης που να ξεκινά από τη C και να καταλήγει στη C το οποίο περιλαµβάνει βήµατα µόνο των διεργασιών p 0,, p k-1. Ένα τµήµα εκτέλεσης ονοµάζεται p-µόνο, αν µόνο η διεργασία p εκτελεί βήµατα σε αυτό. Ονοµάζεται S-µόνο αν µόνο διεργασίες στο σύνολο S εκτελούν βήµατα σε αυτό. Ένα τµήµα εκτέλεσης a είναι p-only αν µόνο η διεργασία p εκτελεί βήµατα στο a. Το a είναι S-only (όπου S είναι ένα σύνολο διεργασιών) αν µόνο οι διεργασίες που ανήκουν στο S εκτελούν βήµατα στο a. Το χρονοδιάγραµµα µιας εκτέλεσης a είναι η ακολουθία από δείκτες διεργασιών που εκτελούν βήµατα στην a (µε τη σειρά που τα βήµατα αυτά συναντώνται στην a). Ένα χρονοδιάγραµµα καθορίζει µια ακολουθία γεγονότων. Μια καθολική κατάσταση C και ένα χρονοδιάγραµµα σ καθορίζουν µε µοναδικό τρόπο ένα τµήµα εκτέλεσης το οποίο συµβολίζουµε µε exec(c,σ). Συµβολίζουµε µε mem(c) = (r 0,, r m-1 ): διάνυσµα τιµών των καταχωρητών στη C Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 31

32 Μια καθολική κατάσταση C είναι ϖαρόµοια (similar ή indistinguishable) µε µια άλλη καθολική κατάσταση C ως προς κάποιο σύνολο διεργασιών S αν κάθε διεργασία του S είναι στην ίδια κατάσταση στη C και τη C και mem(c) = mem(c ). Το γεγονός αυτό το συµβολίσουµε C S C. Προφανείς Ισχυρισµοί Μια διεργασία που εκτελείται µόνη ξεκινώντας από µια ανενεργή καθολική κατάσταση εισέρχεται στο κρίσιµο τµήµα της. Μια διεργασία που εκτελείται µόνη ξεκινώντας από µια καθολική κατάσταση που είναι παρόµοια µιας ανενεργής εισέρχεται στο κρίσιµο τµήµα της. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 32

33 Λήµµα 1: Έστω µια καθολική κατάσταση C που είναι παρόµοια µιας ανενεργής καθολικής κατάστασης για κάποια διεργασία j. Έστω ότι a 1 είναι ένα j-only τµήµα εκτέλεσης που ξεκινά από τη C στο οποίο η j εισέρχεται στο κρίσιµο τµήµα της. Τότε, στο a 1, η j πρέπει να εκτελέσει τουλάχιστον µια write εντολή σε κάποιο καταχωρητή. Αϖόδειξη: C : η τελική καθολική κατάσταση του a 1. Τότε: αν C = (q 0,, q j,, q n-1, mem(c)) C = (q 0,, q j,, q n-1, mem(c)) Αν mem(c) = mem(c ) C k C, k j. Υπάρχει ένα τµήµα εκτέλεσης a 2 (µε χρονοδιάγραµµα s 2 ) που ξεκινά από τη C στο οποίο η διεργασία k εισέρχεται στο κρίσιµο τµήµα της. Ωστόσο, C k C. C : η τελική καθολική κατάσταση της εκτέλεσης a 1 a 2. και ο p j και ο p k είναι στο κρίσιµο τµήµα στη C. Άτοπο!!! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 33

34 Κάτω Φράγµα στον Αριθµό των Read/Write Καταχωρητών Single-Writer Read/Write Καταχωρητές Θεώρηµα Έστω ότι ο Α είναι αλγόριθµος που επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για n 2 διεργασίες, χρησιµοποιώντας µόνο single-writer/multe-reader καταχωρητές ανάγνωσης/εγγραφής. Τότε, ο Α χρησιµοποιεί τουλάχιστον n τέτοιους καταχωρητές. Γενικευµένο Λήµµα (Λήµµα 2) Έστω µια καθολική κατάσταση C που είναι παρόµοια µιας ανενεργής καθολικής κατάστασης για κάποια διεργασία j. Έστω ότι a 1 είναι ένα j-only τµήµα εκτέλεσης που ξεκινά από τη C στο οποίο η j εισέρχεται στο κρίσιµο τµήµα της. Τότε, στο a 1, η j πρέπει να εκτελέσει τουλάχιστον µια write εντολή σε κάποιο καταχωρητή που δεν καλύπτεται από καµία (άλλη) διεργασία στη C. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 34

35 Κάτω όριο: 2 διεργασίες και 1 MW καταχωρητής Θεώρηµα 1 εν υπάρχει αλγόριθµος που να επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για δύο διεργασίες χρησιµοποιώντας µόνο έναν διαµοιραζόµενο RW καταχωρητή. Αϖόδειξη Με εις άτοπο απαγωγή. Α: αλγόριθµος x: ο διαµοιραζόµενος καταχωρητής που χρησιµοποιεί C 0 : αρχική κατάσταση Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 35

36 Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 36

37 Κάτω όριο: 3 διεργασίες και 2 MW καταχωρητές Θεώρηµα 2: εν υπάρχει αλγόριθµος που να επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για τρεις διεργασίες χρησιµοποιώντας µόνο δύο διαµοιραζόµενες RW καταχωρητές. Αϖόδειξη: Με εις άτοπο απαγωγή. Α: αλγόριθµος x,y: διαµοιραζόµενοι καταχωρητές Στρατηγική 1. ηµιουργούµε σενάριο στο οποίο οι διεργασίες p 0 και p 1 εκτελούνται µέχρι που η κάθε µια καλύπτει έναν διαφορετικό καταχωρητή και η καθολική κατάσταση C που προκύπτει είναι παρόµοια µε µια προσβάσιµη ανενεργή καθολική κατάσταση για την p 2. Στη C και οι δύο καταχωρητές x και y καλύπτονται. 2. Επιτρέπουµε στη p 2 να τρέξει µόνη από τη C µέχρι να εισέλθει στο κρίσιµο τµήµα. 3. Βάζουµε τις p 0 και p 1 να κάνουν από ένα βήµα ώστε να πανωγράψουν τους καταχωρητές x και y. Αυτό καταστρέφει κάθε ίχνος της εκτέλεσης της p Επιτρέπουµε στις p 0 και p 1 να συνεχίσουν να κάνουν βήµατα µέχρι κάποια από αυτές να εισέλθει στο κρίσιµο τµήµα. 5. Τότε, δύο διεργασίες βρίσκονται ταυτόχρονα στο κρίσιµο τµήµα. Άτοπο!!!! Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 37

38 Κάτω όριο: 3 διεργασίες και 2 MW καταχωρητές Αϖόδειξη (συνέχεια): Πως µπορούµε να εξαναγκάσουµε τις διεργασίες p 0 και p 1 να καλύπτουν τους καταχωρητές x και y ενώ η διεργασία p 2 νοµίζει ότι βρίσκονται στο µηκρίσιµο τµήµα τους. Αϖάντηση Σε 2 από τις 3 καθολικές καταστάσεις S 1, S 2, S 3, η p 0 καλύπτει τον ίδιο καταχωρητή, π.χ., τον x. S 1 = C 0, S 2 και S 3 : ανενεργές καταστάσεις Έστω ότι C 1 = S 2, C 1 = S 2, C 2 = S 3, C 2 = S 3. Αν εκτελέσουµε την p 1 µόνη ξεκινώντας από την S 2 θα εισέλθει στο κρίσιµο τµήµα αφού S 2 1 S 2. Στην εκτέλεση αυτή η p 1 γράφει στον y. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 38

39 Κάτω όριο: 3 διεργασίες και 2 MW καταχωρητές Από την C η p 2 µπορεί να εκτελεστεί µόνη µέχρι να εισέλθει στο κρίσιµο τµήµα. Τότε, οι p 0 και p 1 εκτελούν ένα βήµα η κάθε µια και όλα τα ίχνη της εκτέλεσης της p 2 χάνονται. Οι p 0, p 1 στη συνέχεια συνεχίζουν µέχρι µια από τις δυο να εισέλθει στο κρίσιµο τµήµα. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 39

40 Κάτω όριο: Γενική Περίϖτωση Φυσική επέκταση των αποδείξεων των δύο ειδικών περιπτώσεων που µελετήθηκαν παραπάνω. Θεώρηµα 3: εν υπάρχει αλγόριθµος που να επιλύει το πρόβληµα του αµοιβαίου αποκλεισµού για n 2 διεργασίες χρησιµοποιώντας n-1 ή λιγότερους διαµοιραζόµενες RW καταχωρητές. Αϖόδειξη C 0 : αρχική καθολική κατάσταση υπάρχουν 2 καθολικές καταστάσεις, C και C, η κάθε µια (n-1)-προσβάσιµη από την C 0, τ.ω.: o όλοι οι n-1 διαµοιραζόµενοι καταχωρητές καλύπτονται από τις διεργασίες 0,..., n-2 στη C o C είναι µια ανενεργή κατάσταση o C n-1 C. υπάρχει ένα (n-1)-only τµήµα εκτέλεσης από τη C στο οποίο η διεργασία p n-1 εισέρχεται στο κρίσιµο τµήµα στο τµήµα εκτέλεσης αυτό, η p n-1 πρέπει να γράψει σε κάποιο καταχωρητή που δεν καλύπτεται στη C Όλοι οι n-1 καταχωρητές καλύπτονται στη C. Άτοπο. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 40

41 Κάτω όριο: Γενική Περίϖτωση Λήµµα 3: Έστω ότι υπάρχουν n-1 διαµοιραζόµενοι καταχωρητές. Έστω ότι C είναι οποιαδήποτε ανενεργή καθολική κατάσταση. Για κάθε k, 1 k n, υπάρχουν καθολικές καταστάσεις C και C τ.ω., οι C, C είναι k-προσβάσιµες από τη C και ικανοποιούν τις ακόλουθες ιδιότητες: k διαφορετικοί καταχωρητές καλύπτονται από τις διεργασίες p 0,, p k-1 στη C, η C είναι µια ανενεργή κατάσταση, C C, για όλα τα j, k j n-1. Αϖόδειξη: Με επαγωγή στο k. Βάση Εϖαγωγής: k=1. Εκτελούµε τη διεργασία p 0 µόνη µέχρι να καλύπτει κάποιο καταχωρητή για πρώτη φορά. C : η καθολική κατάσταση που προκύπτει, C = C. Εϖαγωγική Υϖόθεση: Ας υποθέσουµε ότι το λήµµα ισχύει για k, 1 k < n. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 41

42 Αϖόδειξη Λήµµατος 3 (συνέχεια) Εϖαγωγικό Βήµα Θα δείξουµε ότι ισχύει για k+1. Από επαγωγική υπόθεση: S 1 : k-προσβάσιµη από C τ.ω., οι p 0,, p k-1 καλύπτουν k διαφορετικές µεταβλητές και S 1 παρόµοια µε ανενεργή κατάσταση για τις p k,, p n-1 Έστω ότι οι p 0,, p k-1 εκτελούν ένα βήµα η κάθε µια πανωγράφοντας τους καταχωρητές που καλύπτουν. Έστω ότι οι p 0,, p k-1 συνεχίζουν µέχρι να φθάσουν στο µη-κρίσιµο τµήµα. Έστω S 1 είναι η ανενεργή κατάσταση που προκύπτει. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 42

43 Κάτω όριο: Γενική Περίϖτωση Αϖόδειξη του Λήµµατος 3 (συνέχεια) Εφαρµόζουµε την επαγωγική υπόθεση και την παραπάνω διαδικασία ξανά και ξανά, συνολικά m = ( n-1 k)+1 φορές. S 1, S m : καθολικές καταστάσεις στις οποίες k καταχωρητές καλύπτονται πρέπει να υπάρχουν 2 καθολικές καταστάσεις στις οποίες οι p 0,, p k-1 καλύπτουν το ίδιο σύνολο X k καταχωρητών: C 1, C 2 : οι δύο αυτές καταστάσεις C 1, C 2 : ανενεργές καταστάσεις που αντιστοιχούν στις C 1, C 2 C 1 j C 1 και C 2 j C 2, k j n-1 Αν εκτελέσουµε την p k µόνη ξεκινώντας από τη C 1, η p k θα εισέλθει στο κρίσιµο τµήµα. Πριν συµβεί αυτό θα πρέπει να γράψει σε µια µεταβλητή x Χ. Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 43

44 Κάτω όριο: Γενική Περίϖτωση Ορισµός C Εκτελούµε την p k µόνη µέχρι να καλύπτει τον x Εκτελούµε τις p 0,, p k-1 µέχρι να φθάσουν σε µια καθολική κατάσταση αντίστοιχη της C 2 όπου καλύπτουν όλους τους καταχωρητές στο X ξανά. C = η καθολική κατάσταση που προκύπτει C = C 2 Γιατί είναι σωστή η εϖιλογή αυτών των καθολικών καταστάσεων; Μόνο οι διεργασίες p 0,, p k εκτελούν βήµατα στη εκτέλεση που κατασκευάστηκε. k+1 µεταβλητές καλύπτονται στη C C : ανενεργή κατάσταση C j C 2 και C = C 2 j C 2 C j C, k+1 j n Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 44

45 Κάτω όριο: Γενική Περίϖτωση Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 45

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως Αµοιβαίος Αϖοκλεισµός Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται

Διαβάστε περισσότερα

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως Αµοιβαίος Αϖοκλεισµός Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται

Διαβάστε περισσότερα

Ποια ιδιότητα αϖό τις δύο τελευταίες είναι ϖιο ισχυρή;

Ποια ιδιότητα αϖό τις δύο τελευταίες είναι ϖιο ισχυρή; Το Πρόβληµα του Αµοιβαίου Αϖοκλεισµού Τµήµατα Κώδικα Ο χρήστης που την τρέχουσα χρονική στιγµή προσβαίνει τον πόρο βρίσκεται στο κρίσιµο τµήµα του. Χρήστες που την τρέχουσα χρονική στιγµή δεν ενδιαφέρονται

Διαβάστε περισσότερα

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

Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Ψησταριάς (Bakery Algorithm) Αλγόριθμος 2- επεξεργαστών

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν

Παράδειγµα: Προσοµοίωση µιας ουράς FIFO Οι λειτουργίες που υποστηρίζονται από µια ουρά FIFO είναι: [enq(q,x), ack(q)] [deq(q), return(q,x)] όπου x είν Wait-free προσοµοιώσεις αυθαίρετων αντικειµένων Έχουµε δει ότι το πρόβληµα της οµοφωνίας δεν µπορεί να επιλυθεί µε χρήση µόνο read/write καταχωρητών. Πολλοί µοντέρνοι επεξεργαστές παρέχουν επιπρόσθετα

Διαβάστε περισσότερα

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

Γιατί υϖάρχει τέτοια καθολική κατάσταση; ΥΛΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΤΩΝ ΑΝΑΓΝΩΣΗΣ/ΕΓΓΡΑΦΗΣ Καταχωρητές που µοιάζουν πιο πολύπλοκοι µπορούν να υλοποιηθούν από απλούστερους καταχωρητές. Multi-valued from Binary Βασικό Αντικείµενο: δυαδικός καταχωρητής ο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Αιτιώδεις Σχέσεις και Χρονισµός Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Η Σχέση Happens-Before (Συµβαίνει-ϖριν) Οι εκτελέσεις, ως ακολουθίες γεγονότων, καθορίζουν µια καθολική διάταξη σε αυτά. Ωστόσο

Διαβάστε περισσότερα

ίκτυα Εξισορόϖησης κατάσταση εξισορροϖητή (balancer state): συλλογή από διακριτικά (tokens) στους συνδέσµους εισόδου και εξόδου του µετάβαση εξισορροϖ

ίκτυα Εξισορόϖησης κατάσταση εξισορροϖητή (balancer state): συλλογή από διακριτικά (tokens) στους συνδέσµους εισόδου και εξόδου του µετάβαση εξισορροϖ ίκτυα Μέτρησης Παναγιώτα Φατούρου Κατανεµηµένος Υπολογισµός 1 ίκτυα Εξισορόϖησης κατάσταση εξισορροϖητή (balancer state): συλλογή από διακριτικά (tokens) στους συνδέσµους εισόδου και εξόδου του µετάβαση

Διαβάστε περισσότερα

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Read/Write Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες: read(r): επιστρέφει την τιµή

ΒΑΣΙΚΑ ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Καταχωρητής Read/Write Αποθηκεύει µια τιµή από κάποιο σύνολο και υποστηρίζει δύο λειτουργίες: read(r): επιστρέφει την τιµή ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια κοινή µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται σε µια κατάσταση και υποστηρίζει ένα σύνολο από λειτουργίες µέσω

Διαβάστε περισσότερα

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

Διαβάστε περισσότερα

Ιδιοκτησία Αντικειµένου

Ιδιοκτησία Αντικειµένου Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται

Διαβάστε περισσότερα

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

Διαβάστε περισσότερα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 1 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική

Διαβάστε περισσότερα

ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια κοινή µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται σε µια κατ

ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια κοινή µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται σε µια κατ Ατοµικά Αντικείµενα ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια κοινή µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται σε µια κατάσταση και υποστηρίζει ένα σύνολο

Διαβάστε περισσότερα

Αδιέξοδα (Deadlocks)

Αδιέξοδα (Deadlocks) Αδιέξοδα (Deadlocks) Περίληψη Αδιέξοδα (deadlocks) Τύποι πόρων (preemptable non preemptable) Μοντελοποίηση αδιεξόδων Στρατηγικές Στρουθοκαµηλισµός (ostrich algorithm) Ανίχνευση και αποκατάσταση (detection

Διαβάστε περισσότερα

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Κ Σ Ι Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων Παναγιώτα Παναγοπούλου Άσκηση 1. Υποθέστε ότι οι διεργασίες ενός σύγχρονου κατανεμημένου συστήματος έχουν μοναδικές ταυτότητες (UIDs), γνωρίζουν ότι είναι συνδεδεμένες

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 4α: Σημαφόροι, Πρόβλημα Συνδαιτυμόνων Φιλοσόφων, Αδιέξοδα Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Απαντήσεις. Απάντηση. Απάντηση

Απαντήσεις. Απάντηση. Απάντηση 6 η σειρά ασκήσεων Άλκης Γεωργόπουλος Α.Μ. 39 Αναστάσιος Κοντογιώργης Α.Μ. 43 Άσκηση 1. Απαντήσεις Η αλλαγή ενός ρολογιού προς τα πίσω µπορεί να προκαλέσει ανεπιθύµητη συµπεριφορά σε κάποια προγράµµατα.

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 5 «Αμοιβαίος Αποκλεισμός» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αμοιβαίος Αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

2.4 Κλασσικά Προβλήματα IPC

2.4 Κλασσικά Προβλήματα IPC 2.4 Κλασσικά Προβλήματα IPC 1 Οι φιλόσοφοι που γευματίζουν - Dining Philosophers Μια πρώτη λύση για Ν φιλοσόφους: philosopher (i) while (1) { think; take_fork(i);/* πάρε αριστερό ξυλάκι */ take_fork(i+1

Διαβάστε περισσότερα

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή

Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Δοµές Δεδοµένων και Αλγόριθµοι - Εισαγωγή Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Εισαγωγή στις έννοιες Αλγόριθµοι και Πολυπλοκότητα, Οργάνωση Δεδοµένων και Δοµές Δεδοµένων Χρήσιµοι µαθηµατικοί

Διαβάστε περισσότερα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει

Διαβάστε περισσότερα

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

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Τι είναι ένα Κατανεμημένο Σύστημα; Επικοινωνία, Χρονισμός, Σφάλματα Μοντέλο Ανταλλαγής Μηνυμάτων 1

Διαβάστε περισσότερα

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

Ατοµικά Αντικείµενα. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου

Ατοµικά Αντικείµενα. Ατοµικά Αντικείµενα Παναγιώτα Φατούρου Ατοµικά Αντικείµενα Ατοµικά Αντικείµενα Παναγιώτα Φατούρου ΑΤΟΜΙΚΑ ΑΝΤΙΚΕΙΜΕΝΑ Ένα ατοµικό αντικείµενο κάποιου τύπου µοιάζει µε µια διαµοιραζόµενη µεταβλητή αυτού του τύπου. Ένα ατοµικό αντικείµενο βρίσκεται

Διαβάστε περισσότερα

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού

Αιτιώδεις Σχέσεις και Χρονισµός. Παναγιώτα Φατούρου Αρχές Κατανεµηµένου Υπολογισµού Αιτιώδεις Σχέσεις και Χρονισµός Η Σχέση Happens-Before (Συµβαίνει-πριν) Οι εκτελέσεις, ως ακολουθίες γεγονότων, καθορίζουν µια καθολική διάταξη σε αυτά. Ωστόσο είναι δυνατό δύο υπολογιστικά γεγονότα από

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

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

Αμοιβαίος αποκλεισμός Αμοιβαίος αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού II. Υποστήριξη εκ μέρους του υλικού III. Σηματοφορείς 4. Κλασσικά

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου Χριστίνα Σπυροπούλου 8η Διάλεξη 8 Δεκεμβρίου 2016 1 Ασύγχρονη κατασκευή BFS δέντρου Στα σύγχρονα συστήματα ο αλγόριθμος της πλημμύρας είναι ένας απλός αλλά

Διαβάστε περισσότερα

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ

TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Μάθημα 7 - Υποπρογράμματα Εργαστήριο 11 Ο TO ΥΠΟΠΡΟΓΡΑΜΜΑ ΣΥΝΑΡΤΗΣΗ Βασικές Έννοιες: Υποπρόγραμμα, Ανάλυση προβλήματος, top down σχεδίαση, Συνάρτηση, Διαδικασία, Παράμετρος, Κλήση συνάρτησης, Μετάβαση

Διαβάστε περισσότερα

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ.

Περιεχόμενα ΜΤ Τυχαίας Προσπέλασης Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Επ. Καθ. Π. Κατσαρός Τμήμα Πληροφορικής Επ. Καθ. Θεωρία Υπολογισμού Ενότητα 23: Μηχανές Turing Τυχαίας Προσπέλασης Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο

Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο Κατακερµατισµός 1 Οργάνωση Αρχείων (σύνοψη) Οργάνωση αρχείων: πως είναι τοποθετηµένες οι εγγραφές ενός αρχείου όταν αποθηκεύονται στο δίσκο 1. Αρχεία Σωρού 2. Ταξινοµηµένα Αρχεία Φυσική διάταξη των εγγραφών

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 5 : Αμοιβαίος Αποκλεισμός Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών

Διαβάστε περισσότερα

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες] Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα

Διαβάστε περισσότερα

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση Γιατί χρησιμοποιείται μοντελοποίηση των περιορισμών με ακεραίους? Υπάρχουν ήδη εργαλεία για τον υπολογισμό και την χρήση

Διαβάστε περισσότερα

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

Διαβάστε περισσότερα

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Σχεδιασµός αλγορίθµων µε Άπληστους Αλγόριθµους Στοιχεία άπληστων αλγορίθµων Το πρόβληµα επιλογής εργασιών ΕΠΛ 232

Διαβάστε περισσότερα

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές

Κεφάλαιο 2. Παραγοντοποίηση σε Ακέραιες Περιοχές Κεφάλαιο Παραγοντοποίηση σε Ακέραιες Περιοχές Γνωρίζουµε ότι στο Ÿ κάθε στοιχείο εκτός από το 0 και τα ± γράφεται ως γινόµενο πρώτων αριθµών κατά τρόπο ουσιαστικά µοναδικό Από τη Βασική Άλγεβρα ξέρουµε

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).

Διαβάστε περισσότερα

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης

Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης Τίτλος Μαθήματος: Γραμμική Άλγεβρα ΙΙ Ενότητα: Η Κανονική Μορφή Jordan - II Διδάσκων: Καθηγητής Νικόλαος Μαρμαρίδης, Καθηγητής Ιωάννης Μπεληγιάννης Τμήμα: Μαθηματικών 52 9 Η Κανονική Μορφή Jordan - II

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

1o Φροντιστήριο ΗΥ240

1o Φροντιστήριο ΗΥ240 1o Φροντιστήριο ΗΥ240 Άσκηση 1 Αποδείξτε τη μεταβατική και τη συμμετρική ιδιότητα του Θ Μεταβατική Ιδιότητα (ορισμός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)) Για να ισχύει f(n)= Θ(h(n))

Διαβάστε περισσότερα

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v. ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

Διαβάστε περισσότερα

Εισαγωγή Μοντέλο Βασικοί Αλγόριθµοι Γράφων Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα να επικοινωνούν µεταξύ τους. Με βάση

Διαβάστε περισσότερα

Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα να επικοινωνούν µεταξύ τους.

Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα να επικοινωνούν µεταξύ τους. Εισαγωγή Μοντέλο Βασικοί Αλγόριθµοι Γράφων Παναγιώτα Φατούρου Κατανεµηµένος Υπολογισµός 1 Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα

Διαβάστε περισσότερα

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε: Συµβολισµός Ω( ) Τάξη των Συναρτήσεων () Εκτίµηση Πολυπλοκότητας Αλγορίθµων Ορέστης Τελέλης telelis@unipi.gr Ορισµός. Εστω συναρτήσεις: f : N R και g : N R η f(n) είναι Ω( g(n) ) αν υπάρχουν σταθερές C

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Μοντέλο σύγχρονου κατανεμημένου δικτύου Εκλογή αρχηγού σε σύγχρονο δακτύλιο Παναγιώτα Παναγοπούλου Περίληψη Σύγχρονα Κατανεμημένα Συστήματα Μοντέλο Σφάλματα Πολυπλοκότητα Εκλογή

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 16: Πρόβλημα Συμφωνίας. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 16: Πρόβλημα Συμφωνίας ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Ορισμός του προβλήματος Συμφωνίας Αλγόριθμος Συμφωνίας με Σφάλματα Κατάρρευσης ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι 1 Πρόβλημα

Διαβάστε περισσότερα

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης.

Γενικές Παρατηρήσεις. Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα (1) Το Λήµµα της Αντλησης. Χρήση του Λήµµατος Αντλησης. Γενικές Παρατηρήσεις Μη Κανονικές Γλώσσες - Χωρίς Συµφραζόµενα () Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Υπάρχουν µη κανονικές γλώσσες, π.χ., B = { n n n }. Αυτό

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές

Διαβάστε περισσότερα

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Παράδειγµα αναδροµικού ορισµού. οµική επαγωγή ΠΑΡΑ ΕΙΓΜΑ. 3ο Μάθηµα Γενικό πλάνο Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 1 Παράδειγµα δοµικής επαγωγής 2 Ορισµός δοµικής

Διαβάστε περισσότερα

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Ταυτόχρονη εκτέλεση Ο προγραμματιστής δεν ελέγχει (άμεσα) την εκτέλεση/εναλλαγή των νημάτων Δεν γνωρίζει πότε θα αρχίσει

Διαβάστε περισσότερα

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

Διαβάστε περισσότερα

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.

Διαβάστε περισσότερα

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i.

d k 10 k + d k 1 10 k d d = k i=0 d i 10 i. Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Μαθηµατικά για Πληροφορική

Μαθηµατικά για Πληροφορική Μαθηµατικά για Πληροφορική 3ο Μάθηµα Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 14/10/2008 14/10/2008 1 / 24 Γενικό πλάνο 1 Παράδειγµα δοµικής επαγωγής

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων ΕΠΑΛ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική- 2015-2016 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 Εισαγωγή Η εντολή Στο 4 ο κεφάλαιο γνωρίσαµε την δοµή πολλαπλής επιλογής στην οποία

Διαβάστε περισσότερα

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

Διαβάστε περισσότερα

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

Διαβάστε περισσότερα

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Σύνολα Συναρτήσεις και Σχέσεις Γραφήματα Λέξεις και Γλώσσες Αποδείξεις ΕΠΛ 211 Θεωρία

Διαβάστε περισσότερα

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

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

Διαβάστε περισσότερα

Μηχανές Turing (T.M) I

Μηχανές Turing (T.M) I Μηχανές Turing (T.M) I Οι βασικές λειτουργίες μιας TM είναι: Διάβασε το περιεχόμενο του τρέχοντος κυττάρου Γράψε 1 ή 0 στο τρέχον κύτταρο Κάνε τρέχον το αμέσως αριστερότερο ή το αμέσως δεξιότερο κύτταρο

Διαβάστε περισσότερα

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (path) o Πρόγονος απόγονος (ancestor, descendant)

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1 Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση

Πίνακες Διασποράς. Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h. Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση Πίνακες Διασποράς Χρησιμοποιούμε ένα πίνακα διασποράς T και μια συνάρτηση διασποράς h Ένα στοιχείο με κλειδί k αποθηκεύεται στη θέση κλειδί k T 0 1 2 3 4 5 6 7 U : χώρος πιθανών κλειδιών Τ : πίνακας μεγέθους

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΙΟΙΚΗΣΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΙΑΧΕΙΡΙΣΗ Ε ΟΜΕΝΩΝ ΚΑΙ ΓΛΩΣΣΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (Β ΕΞΑΜΗΝΟ) ιδάσκων: Επ. Καθηγητής Γρηγόρης Χονδροκούκης ΣΗΜΕΙΩΣΕΙΣ ΜΑΘΗΜΑΤΟΣ Η ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1

ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1 To εργαλείο UPPAAL Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Εισαγωγή στo εργαλείο UPPAAL Γλώσσα Μοντελοποίησης Ο προσομοιωτής Ο επαληθευτής ΕΠΛ 664 Ανάλυση και Επαλήθευση Συστημάτων 8-1 Εισαγωγή

Διαβάστε περισσότερα

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα.

τη µέθοδο της µαθηµατικής επαγωγής για να αποδείξουµε τη Ϲητούµενη ισότητα. Αριστοτελειο Πανεπιστηµιο Θεσσαλονικης Τµηµα Μαθηµατικων Εισαγωγή στην Αλγεβρα Τελική Εξέταση 15 Φεβρουαρίου 2017 1. (Οµάδα Α) Εστω η ακολουθία Fibonacci F 1 = 1, F 2 = 1 και F n = F n 1 + F n 2, για n

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ ΕΠΛ 035 - ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΓΙΑ ΗΛΕΚΤΡΟΛΟΓΟΥΣ ΜΗΧΑΝΙΚΟΥΣ ΚΑΙ ΜΗΧΑΝΙΚΟΥΣ ΥΠΟΛΟΓΙΣΤΩΝ Ακαδηµαϊκό έτος 2017-2018 Υπεύθυνος εργαστηρίου: Γεώργιος

Διαβάστε περισσότερα

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

Κατανεμημένα Συστήματα Ι Κατανεμημένα Συστήματα Ι Συναίνεση και Σφάλματα Διεργασιών Παναγιώτα Παναγοπούλου Περίληψη Συναίνεση με σφάλματα διεργασιών Το πρόβλημα Ο αλγόριθμος FloodSet Επικύρωση δοσοληψιών Ορισμός του προβλήματος

Διαβάστε περισσότερα

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

Διαβάστε περισσότερα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα #2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:

Διαβάστε περισσότερα

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα.

Συνεκτικά σύνολα. R είναι συνεκτικά σύνολα. 4 Συνεκτικά σύνολα Έστω, Ι R διάστηµα και f : Ι R συνεχής, τότε η f έχει την ιδιότητα της ενδιαµέσου τιµής, δηλαδή, η f παίρνει κάθε τιµή µεταξύ δύο οποιονδήποτε διαφορετικών τιµών της, συνεπώς το f (

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1 Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

Διαβάστε περισσότερα

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1 Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι

Διαβάστε περισσότερα

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } } Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27)

Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27) Αλγόριθµοι Ροής σε Γράφους (CLR, κεφάλαιο 27) Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: ίκτυα ροής και το πρόβληµα της µέγιστης ροής Η µεθοδολογία Ford-Fulkerson Ο αλγόριθµος Edmonds-Karps ΕΠΛ 232

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 664: Ανάλυση και Επαλήθευση Συστημάτων ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ ΗΜΕΡΟΜΗΝΙΑ : Πέμπτη, 21 Μαρτίου 2013 ΔΙΑΡΚΕΙΑ : 14:00 16:00 ΔΙΔΑΣΚΟΥΣΑ : Άννα Φιλίππου Ονοματεπώνυμο:

Διαβάστε περισσότερα

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Γ. Κορίλη Αλγόριθµοι ροµολόγησης - Γ. Κορίλη Αλγόριθµοι ροµολόγησης http://www.seas.upenn.edu/~tcom50/lectures/lecture.pdf ροµολόγηση σε ίκτυα εδοµένων Αναπαράσταση ικτύου µε Γράφο Μη Κατευθυνόµενοι Γράφοι Εκτεταµένα έντρα Κατευθυνόµενοι

Διαβάστε περισσότερα

Τυχαιοκρατικοί Αλγόριθμοι

Τυχαιοκρατικοί Αλγόριθμοι Πιθανότητες και Αλγόριθμοι Ανάλυση μέσης περίπτωσης Μελέτα τη συμπεριφορά ενός αλγορίθμου σε μια «μέση» είσοδο (ως προς κάποια κατανομή) Τυχαιοκρατικός αλγόριθμος Λαμβάνει τυχαίες αποφάσεις καθώς επεξεργάζεται

Διαβάστε περισσότερα