ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ

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

Download "ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ"

Transcript

1 ΚΕΦΑΛΑΙΟ 1 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ Σε αυτό το κεφάλαιο θα ασχοληθούµε µε βασικές έννοιες που αφορούν τη διαχείριση των συναλλαγών και ειδικότερα τον έλεγχο ταυτοχρονισµού. Ασχολούµαστε πρωταρχικά µε την έννοια της συναλλαγής, η οποία είναι ο θεµέλιος λίθος για την ταυτόχρονη χρήση σε ένα Σύστηµα ιαχείρισης Βάσεων εδοµένων (Σ Β ). Στη διάρκεια του κεφαλαίου θα επεκταθούµε περισσότερο στον έλεγχο ταυτοχρονισµού, έτσι ώστε να αποκτήσουµε το θεωρητικό υπόβαθρο που απαιτείται για τη συνέχεια της πτυχιακής µας εργασίας. Παραθέτουµε παρακάτω ορισµένους βασικούς ορισµούς που θα µας βοηθήσουν στην περαιτέρω αποσαφήνιση των εννοιών που θα µας απασχολήσουν : Πολλές φορές υπάρχει η ανάγκη για ατοµική εκτέλεση (atomic execution) ενός συνόλου λειτουργιών. Αυτό σηµαίνει ότι αν έστω και µια λειτουργία αποτύχει, η επεξεργασία αποτυγχάνει στο σύνολο της. Ένα σύνολο λειτουργιών το οποίο αποτελεί µία λογική λειτουργική µονάδα καλείται συναλλαγή (transaction). Οι λειτουργίες µίας συναλλαγής µπορεί να περιέχουν εντολές ανάγνωσης, εισαγωγής, διαγραφής ή ενηµέρωσης των δεδοµένων της Β. Την ευθύνη για την ολοκλήρωση ή όχι της επεξεργασίας των συναλλαγών έχει αποκλειστικά και µόνο το Σύστηµα ιαχείρισης Βάσης εδοµένων (Σ Β ) ή Data Base Management System (DBMS) και πιο συγκεκριµένα το τµήµα του Σ Β που είναι υπεύθυνο για τη διαχείριση των συναλλαγών (transaction manager). Ένα Σ Β διαθέτει µια γλώσσα υψηλού επιπέδου για την υποβολή αιτηµάτων προσπέλασης και για την ενηµέρωση των δεδοµένων στην οποία γράφονται τα αντίστοιχα προγράµµατα των χρηστών του. Για να γίνει αντιληπτό το πώς το Σ Β χειρίζεται τις αιτήσεις αυτές είναι βολικό να θεωρήσουµε πως η εκτέλεση του προγράµµατος ενός χρήστη, ή αλλιώς συναλλαγή, είναι µια σειρά από ενέργειες ανάγνωσης (read) και εγγραφής (write) αντικειµένων της βάσης: - Για να διαβαστεί ένα αντικείµενο της βάσης, πρώτα µεταφέρεται στην κύρια µνήµη από το δίσκο (ειδικότερα, σε κάποια σελίδα του χώρου ενδιάµεσης µνή- µης) και µετά η τιµή του αντιγράφεται σε µια µεταβλητή του προγράµµατος. - Για να γραφεί ένα αντικείµενο της βάσης, πρώτα ενηµερώνεται η τιµή ενός αντιγράφου του που βρίσκεται στη µνήµη και µετά αυτό γράφεται στο δίσκο.) Αντικείµενα της βάσης είναι οι οντότητες, στις οποίες τα προγράµµατα διαβάζουν ή γράφουν κάποια πληροφορία. Οι οντότητες αυτές µπορεί να είναι σελίδες του δίσκου, εγγραφές, κλπ., αλλά αυτό έχει να κάνει µε το συγκεκριµένο κάθε φορά Σ Β και δεν είναι βασικό στοιχείο των εννοιών του ελέγχου ταυτοχρονισµού. 1

2 Μετά την επεξεργασία µίας συναλλαγής τα δεδοµένα πρέπει να ικανοποιούν όλους τους περιορισµούς ακεραιότητας που έχουν ορισθεί κατά το σχεδιασµό της βάσης. Για παράδειγµα, η ανάληψη ενός ποσού από έναν τραπεζικό λογαριασµό πρέπει να συνοδεύεται από ενηµέρωση του λογαριασµού, διαφορετικά δεν υπάρχει συνέπεια στα δεδοµένα της βάσης. Η διαχείριση των συναλλαγών, λοιπόν, αποτελεί ένα σύνθετο πρόβληµα, το οποίο γίνεται ακόµη δυσκολότερο, λαµβάνοντας υπ όψην ότι τα σύγχρονα Σ Β έχουν την ικανότητα να εξυπηρετούν πολλούς χρήστες ταυτόχρονα. Για λόγους βελτίωσης της απόδοσης του, ένα Σ Β πρέπει να εναλλάσσει την εκτέλεση των ενεργειών πολλών συναλλαγών. Ο τρόπος µε τον οποίο ένα Σ Β χειρίζεται την ταυτόχρονη εκτέλεση των συναλλαγών είναι ένα σηµαντικό θέµα της ιαχείρισης Συναλλαγών και είναι το θέµα του ελέγχου ταυτοχρονισµού. Το Σ Β, µέσω του ελέγχου ταυτοχρονισµού (concurrency control), διαχειρίζεται τις συναλλαγές, έτσι ώστε να αποφεύγονται οι παθολογικές καταστάσεις. 1.1 ΣΥΝΑΛΛΑΓΕΣ Μία συναλλαγή ή διεργασία είναι συνήθως το αποτέλεσµα της εκτέλεσης ενός προγράµµατος που είναι γραµµένο σε µία γλώσσα προγραµµατισµού υψηλού επιπέδου. Συγκεκριµένα, ως συναλλαγή ορίζουµε την οποιαδήποτε εκτέλεση ενός προγράµµατος χρήστη σε ένα Σ Β. Η συναλλαγή διαφέρει σηµαντικά από την εκτέλεση ενός προγράµµατος εκτός του Σ Β (π.χ. ενός C προγράµµατος που εκτελείται στο UNIX). (Η εκτέλεση του ίδιου προγράµµατος πολλές φορές θα δηµιουργήσει πολλές διαφορετικές συναλλαγές.) Καταστάσεις Συναλλαγών Μία συναλλαγή είτε θα τερµατίσει κανονικά (committed), επιφέροντας µόνιµες αλλαγές στη Β, είτε θα απορριφθεί (aborted) και τα δεδοµένα θα επανέλθουν στην προηγούµενη κατάσταση. Οι δύο αυτές καταστάσεις είναι οι µοναδικές καταστάσεις τερµατισµού µίας συναλλαγής. Ωστόσο, πριν τον τερµατισµό της, µία συναλλαγή µπορεί να βρεθεί σε άλλη ενδιάµεση κατάσταση. Οι καταστάσεις στις οποίες µπορεί να υπεισέλθει µία συναλλαγή παρουσιάζονται στην Εικόνα 1.1 και περιγράφονται στη συνέχεια: Ενεργή Κατάσταση (active). Η συναλλαγή εισέρχεται στην ενεργή κατάσταση κατά την αρχή της επεξεργασίας της και παραµένει σε αυτή καθώς εκτελείται. Κατάσταση Μερικής Ολοκλήρωσης (partially committed). Η συναλλαγή θεωρείται µερικώς ολοκληρωµένη όταν έχει ολοκληρωθεί και η τελευταία εντολή της συναλλαγής. Κατάσταση Αποτυχίας (failed). Η συναλλαγή αποτυγχάνει όταν το Σ Β αντιληφθεί ότι δεν µπορεί να συνεχίσει η οµαλή επεξεργασία της. Κατάσταση Απόρριψης (aborted). Η συναλλαγή βρίσκεται στην κατάσταση αυτή όταν τα δεδοµένα έχουν επανέλθει στην προηγούµενη σταθερή κατάσταση, πριν την αρχή της εκτέλεσης της συναλλαγής. 2

3 Κατάσταση Ολοκλήρωσης (committed). Η συναλλαγή έχει ολοκληρώσει την εκτέλεσή της µε επιτυχία. Εικόνα 1.1 : Καταστάσεις συναλλαγής. Όταν ξεκινά την επεξεργασία της, η συναλλαγή, εισέρχεται στην ενεργή κατάσταση και παραµένει µέχρι α) να ολοκληρωθεί και η τελευταία εντολή ή β) να µην µπορεί να συνεχισθεί η εκτέλεση της. - Στην πρώτη περίπτωση, η συναλλαγή εισέρχεται στην κατάσταση µερικής ολοκλήρωσης. Όλες οι εντολές έχουν ολοκληρωθεί µε επιτυχία, όµως, ενδέχεται κάποια αποτελέσµατα της συναλλαγής να βρίσκονται ακόµη στην κυρία µνήµη. Αν η εγγραφή των δεδοµένων στο δίσκο πραγµατοποιηθεί µε επιτυχία, τότε η συναλλαγή εισέρχεται στην τερµατική κατάσταση ολοκλήρωσης και τελειώνει η επεξεργασία της. Η εγγραφή αυτή ονοµάζεται ενηµέρωση (update). - Στη δεύτερη περίπτωση, εισέρχεται στην κατάσταση αποτυχίας. Αυτό σηµαίνει ότι κάποια από τις εντολές της συναλλαγής δεν µπόρεσε να ολοκληρωθεί µε επιτυχία. Στο σηµείο αυτό, το Σ Β πρέπει να επαναφέρει τα δεδοµένα στην προηγουµένη κατάσταση συνέπειας (rollback). Στη συνέχεια η συναλλαγή εισέρχεται στην κατάσταση απόρριψης και το Σ Β έχει δυο επιλογές: α) την επανεκκίνηση της συναλλαγής από την αρχή ή β) την καταστροφή της συναλλαγής Ιδιότητες Συναλλαγών Υπάρχουν τέσσερις σηµαντικές ιδιότητες των συναλλαγών που πρέπει να εξασφαλίζει ένα Σ Β, ώστε να προστατεύει τα δεδοµένα του στην περίπτωση που έχουµε ταυτόχρονη χρήση ή βλάβη του συστήµατος. Ο διαχειριστής συναλλαγών του Σ Β πρέπει να ικανοποιεί τις ακόλουθες βασικές ιδιότητες των συναλλαγών, οι οποίες είναι γνωστές ως ACID ιδιότητες, από τις λέξεις: 3

4 - ατοµικότητα (Atomicity), - συνέπεια (Consistency), - αποµόνωση (Isolation) και - αντοχή (Durability). Ατοµικότητα: αν υπάρχει έστω και µία εντολή της συναλλαγής η οποία αποτυγχάνει να εκτελεσθεί, τότε ολόκληρη η συναλλαγή αποτυγχάνει επίσης. (είτε όλες οι ενέργειες µιας συναλλαγής ολοκληρώνονται είτε καµία). Οι χρήστες δε θα πρέπει να ανησυχούν για την περίπτωση µερικώς ολοκληρωµένων συναλλαγών (π.χ., όταν καταρρεύσει το σύστηµα). Συνέπεια: κάθε συναλλαγή, όταν θεωρήσουµε πως εκτελείται µόνη της, χωρίς την ταυτόχρονη εκτέλεση άλλων συναλλαγών, πρέπει να διατηρεί τη συνέπεια της βάσης. Η συναλλαγή µε την ολοκλήρωσή της, πρέπει να µετατρέπει τη Β από µία κατάσταση συνέπειας σε άλλη. To Σ Β θεωρεί πως η λεγόµενη ιδιότητα της συνέπειας ισχύει για όλες τις συναλλαγές και υπεύθυνος για την διασφάλιση της είναι ο χρήστης. Οι µηχανισµοί ακεραιότητας δεδοµένων δεν επαρκούν για την εγγύηση της συνέπειας. Τα παραπάνω γίνονται πιο κατανοητά µε το εξής παράδειγµα: Θεωρείστε τη µεταφορά ενός ποσού από έναν τραπεζικό λογαριασµό σε άλλον. Ο χρήστης µπορεί να έχει ως κριτήριο συνέπειας ότι µεταφορές κεφαλαίων ανάµεσα σε τραπεζικούς λογαριασµούς δεν πρέπει να αλλάζουν το συνολικό ποσό χρηµάτων στους λογαριασµούς (όπως είναι φυσικό!). Η αφαίρεση του ποσού από τον πρώτο λογαριασµό πρέπει να συνοδεύεται από την πρόσθεση του ποσού στο δεύτερο. Αν το ποσό που αφαιρείται διαφέρει από αυτό που προστίθεται, τότε τα δεδοµένα της βάσης δεν έχουν συνέπεια (δεν είναι σωστά). Η συνέπεια της βάσης συνάγεται από την ατοµικότητα, την αποµόνωση και την συνέπεια των συναλλαγών. Στα επόµενα, θα δούµε πως το Σ Β εγγυάται την ατοµικότητα και την µονιµότητα των συναλλαγών. Αποµόνωση: κάθε συναλλαγή πρέπει να εκτελείται ανεξάρτητα από άλλες συναλλαγές. Ακόµα κι αν το Σ Β εναλλάσσει την εκτέλεση των ενεργειών πολλών συναλλαγών για λόγους βελτίωσης της απόδοσης του συστήµατος, οι χρήστες θα πρέπει να κατανοούν µια µεµονωµένη συναλλαγή, χωρίς να λαµβάνουν υπόψη τους την επίδραση των άλλων, ταυτόχρονα εκτελούµενων συναλλαγών Αντοχή: αν µία συναλλαγή ολοκληρωθεί µε επιτυχία, τότε οι αλλαγές που έχει επιφέρει καταγράφονται µόνιµα στη Β και δεν µπορούν να ανακληθούν. Οι επιδράσεις της, δηλαδή στη Β, θα πρέπει να θεωρούνται σταθερές, ακόµη κι αν υπάρξει κατάρρευση του συστήµατος πριν ολοκληρωθεί η καταγραφή τους στο δίσκο Υπάρχουν τρεις λόγοι για τους οποίους µια συναλλαγή µπορεί να µην ολοκληρωθεί. Ο πρώτος, επειδή µια συναλλαγή µπορεί να εγκαταλειφθεί ή να τερµατιστεί ανεπιτυχώς, από το Σ Β, εξαιτίας κάποιας ανωµαλίας κατά τη διάρκεια της εκτέλεσης της. Τότε αυτή επανεκκινείται αυτόµατα και εκτελείται εξαρχής. Ο δεύτερος, επειδή το σύστηµα µπορεί να καταρρεύσει, ενώ µια ή περισσότερες συναλλαγές εκτελούνται. Ο τρίτος, επειδή µια συναλλαγή µπορεί να αντιµετωπίσει µια απρόσµενη κατάσταση (για παράδειγµα, να διαβάσει µια µη αναµενόµενη τιµή ή να µην µπορεί να προσπελάσει το δίσκο) και να αποφασίσει να εγκαταλείψει (δηλαδή να τερµατίσει τον εαυτό της). 4

5 Όµως, ενώ οι χρήστες θεωρούν τις συναλλαγές ως ατοµικές, µια συναλλαγή που διακόπτεται στη µέση της εκτέλεσής της µπορεί να αφήσει τη βάση σε ασυνεπή κατάσταση. Άρα, ένα Σ Β πρέπει να βρει έναν τρόπο για να απαλείφει τις ασυνέπειες των µερικώς ολοκληρωµένων συναλλαγών, ή µε άλλα λόγια, να διασφαλίζει την ατοµικότητα των συναλλαγών: είτε όλες οι ενέργειες µια συναλλαγής εκτελούνται ή καµιά. Ένα Σ Β διασφαλίζει την ατοµικότητα των συναλλαγών αναιρώντας τις ενέργειες των ηµιτελών συναλλαγών. Η αναίρεση σηµαίνει πως οι χρήστες µπορούν να αγνοούν τις ηµιτελείς συναλλαγές, όταν θεωρούν την τροποποίηση της βάσης από τις συναλλαγές στην πάροδο του χρόνου. Για να υλοποιηθεί αυτό, το Σ Β διατηρεί ένα αρχείο όλων των ενεργειών εγγραφής στη βάση, που λέγεται ιστορικό. Το ιστορικό χρησιµοποιείται επίσης για τη διασφάλιση της µονιµότητας: αν το σύστηµα καταρρεύσει πριν οι αλλαγές που προκαλεί µια ολοκληρωµένη συναλλαγή γραφούν στο δίσκο, το ιστορικό χρησιµοποιείται για να ανακαλέσει και να αποκαταστήσει αυτές τις αλλαγές µε την επανεκκίνηση του συστήµατος. 1.2 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΑ Η επεξεργασία συναλλαγών σε ένα Σ Β έχει πολλά κοινά σηµεία µε την εκτέλεση διαδικασιών σε ένα λειτουργικό σύστηµα. Θεωρείστε ένα σύνολο συναλλαγών που αναµένουν για επεξεργασία. Ένας τρόπος επεξεργασίας είναι η ακολουθιακή ή σειριακή εκτέλεση, όπου οι συναλλαγές εκτελούνται η µία µετά την άλλη. Η εκτέλεση µίας συναλλαγής ξεκινά µόλις ολοκληρωθεί η εκτέλεση της προηγούµενης. Η σειριακή εκτέλεση των συναλλαγών, όµως, παρότι αποτελεί την πιο ασφαλή και σαφή οδό για την εκτέλεση των συναλλαγών, µπορεί να επιφέρει σηµαντικές καθυστερήσεις µε αποτέλεσµα να µειώνεται η απόδοση του συστήµατος Χρονοπρογράµµατα Ένα Σ Β θεωρεί ως συναλλαγή µια ακολουθία ή λίστα από ενέργειες. Μεταξύ των ενεργειών που µπορούν να εκτελεστούν από µια συναλλαγή είναι οι διάβασε (read) και γράψε (write) αντικειµένων της βάσης. Ως συναλλαγή µπορεί, επίσης, να οριστεί ένα σύνολο από µερικώς ταξινοµηµένες ενέργειες, όπου δηλαδή, η σχετική σειρά µερικών ενεργειών µπορεί να µην έχει σηµασία. Για να επικεντρώσουµε στα σηµαντικά θέµατα, θα θεωρήσουµε ότι οι συναλλαγές (και παρακάτω τα χρονοπρογράµµατα) είναι µια λίστα από ενέργειες. Επίσης, για απλότητα στους χρησιµοποιούµενους συµβολισµούς, θα θεωρήσουµε πως ένα πρόγραµµα που διαβάζει ένα αντικείµενο Ο χρησιµοποιεί την µεταβλητή Ο για να αναφερθεί σε αυτό. Συνεπώς, µπορούµε να συµβολίσουµε την ενέργεια ανάγνωσης του αντικειµένου Ο από την συναλλαγή Σ, ως R Σ {Ο) και παρόµοια την εγγραφή, ως W Σ (O). To όνοµα της συναλλαγής Σ θα παραλείπεται όταν εννοείται. Εκτός των ενεργειών της ανάγνωσης και εγγραφής, η τελευταία ενέργεια κάθε συναλλαγής πρέπει να είναι είτε ολοκλήρωσε (commit) δηλαδή, τερµάτισε επιτυχώς, είτε εγκατέλειψε (abort) δηλαδή, τερµάτισε και αναίρεσε όλες τις πραγµατοποιηθείσες ενέργειες.to Abort Σ συµβολίζει ότι η συναλλαγή Σ εγκαταλείπει και το Commit Σ ότι ολοκληρώνει. 5

6 Ένα χρονοπρόγραµµα είναι µια λίστα από ενέργειες (διάβασε, γράψε, ολοκλήρωσε, ή εγκατέλειψε) µιας οµάδας συναλλαγών, όπου η σειρά εµφάνισης δυο ενεργειών µιας συναλλαγής Σ είναι η ίδια µε τη σειρά εµφάνισης των ενεργειών αυτών στην Σ. ιαισθητικά, ένα χρονοπρόγραµµα είναι µια πραγµατική ή ενδεχόµενη αλληλουχία εκτέλεσης ενεργειών. Για παράδειγµα, στην Εικόνα φαίνεται η αλληλουχία εκτέλεσης των ενεργειών δυο συναλλαγών Σ 1 και Σ 2. Κάθε γραµµή ακολουθεί χρονικά την προηγούµενη. Πρέπει να τονίσουµε, πως ένα χρονοπρόγραµµα περιγράφει τις ενέργειες των συναλλαγών όπως τις βλέπει το Σ Β. Σ 1 Σ 2 R(A) W(A) R(B) W(B) R(C) W(C) Εικόνα 1.2.1: Χρονοπρόγραµµα µε δυο συναλλαγές Προσέξτε ότι το χρονοπρόγραµµα της Εικόνας δεν περιέχει τις ενέργειες Αbort ή Commit για καµιά συναλλαγή. Ένα χρονοπρόγραµµα, που περιέχει abort ή commit, για κάθε συναλλαγή του, ονοµάζεται πλήρες χρονοπρόγραµµα. Ένα πλήρες χρονοπρόγραµµα πρέπει να περιέχει όλες τις ενέργειες των συναλλαγών που εµφανίζονται σε αυτό. Σε περίπτωση που η εκτέλεση των ενεργειών των διαφορετικών συναλλαγών δεν είναι εναλλασσόµενη, µε άλλα λόγια, όταν οι συναλλαγές εκτελούνται εξ ολοκλήρου η µια µετά την άλλη (σειριακή ακολουθία), το χρονοπρόγραµµα ονοµάζεται σειριακό χρονοπρόγραµµα. Στην Εικόνα παρουσιάζονται δύο σειριακά χρονοπρογράµµατα εκτέλεσης των συναλλαγών Σ 1 και Σ Ισοδύναµα Χρονοπρογράµµατα Αν υποθέσουµε ότι έχουµε η συναλλαγές, ο αριθµός των δυνατών σειριακών χρονοπρογραµµάτων ισούται µε τον αριθµό των διατάξεων των η συναλλαγών. Εποµένως υπάρχουν η! δυνατά σειριακά χρονοπρογράµµατα εκτέλεσης. Όταν οι συναλλαγές εκτελούνται ταυτόχρονα, το χρονοπρόγραµµα εκτέλεσης, συνήθως, δεν είναι σειριακό. Αυτό συµβαίνει διότι ο τρόπος εκτέλεσης των συναλλαγών εξαρτάται και από το λειτουργικό σύστηµα, που διαµοιράζει τους πόρους (CPU, δίσκο) µεταξύ των συναλλαγών. Ο τρόπος εκτέλεσης των συναλλαγών ορίζεται από τη µέθοδο χρονοδροµολόγησης που χρησιµοποιεί το λειτουργικό σύστηµα και εποµένως δεν µπορούµε να γνωρίζουµε µε ακρίβεια το χρόνο εκτέλεσης της κάθε εντολής µίας συναλλαγής. Το ερώτηµα που προκύπτει είναι µε ποιον τρόπο το Σ Β θα εγγυηθεί ότι το επιλεγόµενο χρονοπρόγραµµα διατηρεί τη συνέπεια των δεδοµένων της Β. Για να συµβεί αυτό θα πρέπει το χρονοπρόγραµµα εκτέλεσης συναλλαγών να είναι ισοδύναµο µε κάποιο σειριακό χρονοπρόγραµµα. 6

7 Εικόνα 1.2.2: ύο σειριακά χρονοπρογράµµατα εκτέλεσης των συναλλαγών Σ 1 & Σ 2 Συναλλαγή Σ 1 Συναλλαγή Σ 2 Read(A); A:=A-N; Write(A); Read(B); B:=B+N; Write(B); χρόνος Read(A); A:=A+M; Write(A); Συναλλαγή Σ 1 Συναλλαγή Σ 2 Read(A); A:=A+M; Read(A); A:=A-N; Write(A); Read(B); B:=B+N; Write(B); χρόνος Write(A); ύο χρονοπρογράµµατα καλούνται ισοδύναµα αν µετά την εκτέλεσή τους επιφέρουν τις ίδιες αλλαγές στη Β. 1.3 ΣΕΙΡΙΟΠΟΙΗΣΗ ΣΥΝΑΛΛΑΓΩΝ Η παραγωγή ενός χρονοπρογράµµατος εκτέλεσης συναλλαγών ισοδύναµου µε ένα σειριακό χρονοπρόγραµµα καλείται σειριοποίηση (serializability) και έχει δύο µορφές: α) σειριοποίηση σύγκρουσης (conflict serializability) και β) σειριοποίηση όψης (view serializability). Στη µελέτη που ακολουθεί εστιάζουµε στις εντολές ανάγνωσης (read) και αποθήκευσης (write). Οι υπόλοιπες εντολές µίας συναλλαγής δεν επηρεάζουν τη σειριοποίηση Σειριοποίηση Σύγκρουσης Θεωρείστε ένα χρονοπρόγραµµα εκτέλεσης συναλλαγών S και δύο χρονικά συνεχόµενες εντολές Ei και Ej των συναλλαγών Σ 1 και Σ 2, αντιστοίχως: Αν οι Ei και Ej αναφέρονται σε διαφορετικά δεδοµένα, τότε η σειρά εκτέλεσης των εντολών αυτών µπορεί να αλλάξει χωρίς να επηρεάζεται το αποτέλεσµα. Αν όµως οι εντολές αναφέρονται στα ίδια δεδοµένα D, τότε η σειρά εκτέλεσης έχει σηµασία. Συγκεκριµένα, όταν δύο εντολές, χρονικά συνεχόµενες (Ei, Ej), δύο διαφορετικών συναλλαγών (Σ 1 και Σ 2, αντιστοίχως), αναφέρονται στα ίδια δεδοµένα D (κι εφόσον µας ενδιαφέρουν µόνο οι εντολές ανάγνωσης και αποθήκευσης), διακρίνουµε τις εξής περιπτώσεις: 1. Ei = read(d) και Ej = read(d) : Η σειρά εκτέλεσης δεν έχει σηµασία διότι και οι δύο συναλλαγές διαβάζουν τα ίδια δεδοµένα. 2. Ei = read(d) και Ej = write(d) : Αν η Ei εκτελεσθεί πριν την Ej, τότε η νέα τιµή που θέτει η Ej στο D δεν είναι ορατή από την Ei. Αν η Ej εκτελεσθεί πριν από την Ei, τότε η 7

8 Ei θα διαβάσει τη νέα τιµή που θέτει η Ej. Εποµένως, η σειρά εκτέλεσης των συναλλαγών έχει σηµασία για την πορεία της εκτέλεσης. 3. Ei = read(d) και Ej = write(d) : Η περίπτωση αυτή είναι όµοια µε την προηγουµένη. 4. Ei = write(d) και Ej = write(d) : Φαινοµενικά η σειρά εκτέλεσης δεν έχει σηµασία. Ωστόσο, η τιµή του D, που θα διαβασθεί από την επόµενη εντολή ανάγνωσης, εξαρτάται από το ποια εντολή αποθήκευσης εκτελέσθηκε τελευταία. Παρατηρούµε, λοιπόν, ότι η µοναδική περίπτωση, όπου η σειρά εκτέλεσης δεν επηρεάζει το αποτέλεσµα του χρονοπρογράµµατος, είναι όταν και οι δυο εντολές είναι εντολές ανάγνωσης. Αν τουλάχιστον µία εντολή είναι εντολή αποθήκευσης, τότε οι εντολές Ei και Ej βρίσκονται σε σύγκρουση (conflict). Αν οι εντολές Ei και Ej δε βρίσκονται σε σύγκρουση, τότε µπορούµε να αλλάξουµε τη σειρά εκτέλεσης και να δηµιουργήσουµε ένα νέο χρονοπρόγραµµα εκτέλεσης S'. Το χρονοπρόγραµµα S' είναι ισοδύναµο µε το S, διότι όλες οι εντολές διατηρούν την ίδια σειρά εκτός από τις δύο εντολές των οποίων η σειρά εκτέλεσης έχει αλλάξει. Αν ένα χρονοπρόγραµµα S µπορεί να µετασχηµατισθεί σε ένα άλλο χρονοπρόγραµµα S', χρησιµοποιώντας αλλαγές στη σειρά εκτέλεσης των εντολών, τότε τα S και S' καλούνται ισοδύναµα ως προς τις συγκρούσεις (conflict equivalent). To χρονοπρόγραµµα S καλείται σειριοποιήσιµο ως προς τις συγκρούσεις αν είναι ισοδύναµο, ως προς τις συγκρούσεις, µε ένα σειριακό χρονοπρόγραµµα. Συναλλαγή Συναλλαγή Συναλλαγή Συναλλαγή Συναλλαγή Συναλλαγή Σ 1 Σ 2 Σ 1 Σ 2 Σ 1 Σ 2 Read(X); Read(X); Read(X); Write(X); Write(X); Write(X); Read(X); Read(X); Read(Y); Write(X); Read(Y); Write(Y); Read(Y); Write(X); Read(X); Write(Y); Write(Y); Write(X); Read(Y); Read(Y); Read(Y); Write(Y) Write(Y); Write(Y); Χρόνος Χρόνος Χρόνος (α) (β) (γ) Εικόνα : Μετατροπή χρονοπρογράµµατος µε σειριοποίηση σύγκρουσης. Θεωρείστε το χρονοπρόγραµµα εκτέλεσης της Εικόνας 1.3.1(α). Παρατηρούµε ότι η εντολή Write(X) της συναλλαγής Σ 2 δε συγκρούεται µε την εντολή Read(Υ) της Σ 1, εποµένως µπορούµε να αλλάξουµε τη σειρά εκτέλεσης. Το ισοδύναµο χρονοπρόγραµµα παρουσιάζεται στο Σχήµα (β). Αν συνεχίσουµε την ίδια διαδικασία, αλλάζοντας τη σειρά εκτέλεσης εντολών 8

9 που δε συγκρούονται, παίρνουµε τελικά το χρονοπρόγραµµα εκτέλεσης του Σχήµατος (γ) το οποίο είναι σειριακό. Εποµένως, έχουµε δείξει ότι το αρχικό χρονοπρόγραµµα είναι ισοδύναµο µε ένα σειριακό χρονοπρόγραµµα. Είναι όλα τα χρονοπρογράµµατα ισοδύναµα µε κάποιο σειριακό χρονοπρόγραµµα; Η απάντηση είναι αρνητική και στην Εικόνα δίνουµε ένα παράδειγµα όπου το χρονοπρόγραµµα (α) δεν είναι ισοδύναµο ούτε µε το (β) ούτε µε το (γ) Συναλλαγή Σ 1 Read(X); Συναλλαγή Σ 2 Συναλλαγή Σ 1 Read(X); Συναλλαγή Σ 2 Συναλλαγή Σ 1 Write(X); Write(X); Read(X); Συναλλαγή Σ 2 Write(X); Write(X); Write(X); Write(X); Χρόνος Χρόνος Χρόνος (α) (β) (γ) Εικόνα 1.3.2: Παράδειγµα χρονοπρογράµµατος που δε σειριοποιείται Σειριοποίηση Όψης Έστω, δύο χρονοπρογράµµατα S και S' που περιέχουν τα ίδια σύνολα συναλλαγών. Τα S και S' καλούνται ισοδύναµα ως προς την όψη (view equivalent) αν πληρούνται οι εξής κανόνες: Για κάθε στοιχείο δεδοµένων D, αν η συναλλαγή Σ i διαβάζει την αρχική τιµή του D στο χρονοπρόγραµµα S, τότε η συναλλαγή Σ i πρέπει επίσης να διαβάζει την αρχική τιµή του D στο χρονοπρόγραµµα S'. Για κάθε στοιχείο δεδοµένων D, αν η συναλλαγή Σ i εκτελεί την εντολή Read(D) στο χρονοπρόγραµµα S και αυτή η τιµή έχει παραχθεί από τη συναλλαγή Σ j, τότε η Σ i πρέπει, επίσης, να διαβάσει την τιµή που παράγει η Σ j στο χρονοπρόγραµµα S' Για κάθε στοιχείο δεδοµένων D, η συναλλαγή που εκτελεί την τελευταία εντολή Write(D) στο χρονοπρόγραµµα S, πρέπει να εκτελεί την τελευταία εντολή Write(D) και στο χρονοπρόγραµµα S'. Οι πρώτοι δύο κανόνες εγγυώνται ότι οι συναλλαγές και στα δυο χρονοπρογράµµατα θα διαβάσουν τα ίδια δεδοµένα και εποµένως θα εκτελέσουν τις ίδιες λειτουργίες στα δεδοµένα. Ο τρίτος κανόνας, σε συνδυασµό µε τους δύο πρώτους, εγγυάται ότι το αποτέλεσµα της συνολικής εκτέλεσης των συναλλαγών θα είναι το ίδιο και για τα δύο χρονοπρογράµµατα και εποµένως θα επιφέρουν το ίδιο τελικό αποτέλεσµα στη Β. 9

10 Ένα χρονοπρόγραµµα S καλείται σειριοποιήσιµο ως προς την όψη (view serializable) αν είναι ισοδύναµο ως προς την όψη µε κάποιο σειριακό χρονοπρόγραµµα. Στην Εικόνα απεικονίζονται δύο χρονοπρογράµµατα τα οποία είναι ισοδύναµα ως προς την όψη. Επειδή, το χρονοπρόγραµµα της Εικόνας 1.3.3(β) είναι σειριακό, το χρονοπρόγραµµα 1.3.3(α) είναι σειριοποιήσιµο ως προς την όψη. Συναλλαγή Σ 1 Read(X); Write(X); Συναλλαγή Σ 2 Write(X); Συναλλαγή Σ 3 Write(X); Συναλλαγή Σ 1 Read(X); Write(X); Συναλλαγή Σ 2 Write(X); Συναλλαγή Σ 3 Write(X); (α) (β) Εικόνα 1.3.3: Παράδειγµα χρονοπρογράµµατος που είναι σειριοποιήσιµο ως προς την όψη. 1.4 ΤΑΥΤΟΧΡΟΝΗ ΕΚΤΕΛΕΣΗ ΤΩΝ ΣΥΝΑΛΛΑΓΩΝ Η εισαγωγή της έννοιας του χρονοπρογράµµατος, που προηγήθηκε, θα µας βοηθήσει να περιγράψουµε τις εναλλασσόµενες εκτελέσεις συναλλαγών. To Σ Β επιδιώκει κάτι τέτοιο, ώστε να βελτιώσει τις επιδόσεις του συστήµατος, δηλαδή να αυξήσει την απόδοση επεξεργασίας ή το χρόνο απόκρισης για σύντοµες συναλλαγές, όµως δεν είναι όλες οι εναλλασσόµενες εκτελέσεις επιτρεπτές. Σε αυτήν την ενότητα, θα θεωρήσουµε τις εναλλασσόµενες εκτελέσεις, ή χρονοπρογράµµατα, που είναι επιτρεπτές από ένα Σ Β. Για να δοθεί στους χρήστες ένας απλός τρόπος για να αντιληφθούν το αποτέλεσµα που επιφέρει η εκτέλεση των προγραµµάτων τους, η εναλλαγή των συναλλαγών ή διεργασιών γίνεται πολύ προσεκτικά, ώστε να εξασφαλιστεί το γεγονός ότι το αποτέλεσµα της ταυτόχρονης εκτέλεσης των συναλλαγών θα είναι ισοδύναµο (ως προς τις µεταβολές που προκαλούνται στη βάση δεδοµένων) µε κάποια σειριακή εκτέλεση των ίδιων συναλλαγών, δηλαδή, µια εκτέλεση όπου οι ενέργειες της κάθε συναλλαγής ολοκληρώνονται, πριν αρχίσει να εκτελείται η επόµενη συναλλαγή.. Ο σωστός συντονισµός των συναλλαγών είναι ευθύνη του Σ Β, το οποίο µέσω του µηχανισµών ελέγχου ταυτοχρονισµού (concurrency control), εγγυάται την οµαλή εκτέλεση των συναλλαγών. Ο έλεγχος ταυτοχρονισµού µπορεί να επιτευχθεί µε αλγορίθµους χρονοδροµολόγησης των διεργασιών. Θα µας απασχολήσει, συγκεκριµένα ο µηχανισµός κλειδώµατος των διεργασιών, τον οποίο και θα χρησιµοποιήσουµε αργότερα. Με το ζήτηµα αυτό θα ασχολοθούµε εκτενέστερα στην ενότητα 1.5. Προς το παρόν θα ασχοληθούµε µε την αναγκαιότητα της ταυτόχρονης εκτέλεσης, αλλά και µε τα προβλήµατα που αυτή συνεπάγεται. 10

11 1.4.1 Πλεονεκτήµατα και Κίνητρα για την Ταυτόχρονη εκτέλεση των Συναλλαγών Οι λόγοι που οδήγησαν ερευνητές και κατασκευαστές στη µελέτη της ταυτόχρονης εκτέλεσης συναλλαγών είναι, όπως προαναφέρθηκε, να βελτιωθούν οι επιδόσεις του συστήµατος. Αναλυτικότερα : Μια συναλλαγή αποτελείται από πολλά διαφορετικά τµήµατα εκ των οποίων, άλλα απαιτούν περισσότερο χρόνο από την κεντρική µονάδα επεξεργασίας (CPU) και άλλα απαιτούν περισσότερες προσπελάσεις στο δίσκο (I/O). Ο δίσκος και η CPU του συστήµατος µπορούν να λειτουργούν παράλληλα, εξυπηρετώντας, έτσι, διαφορετικά τµήµατα της ίδιας συναλλαγής ή διαφορετικών συναλλαγών. Το χρονικό διάστηµα κατά το οποίο ο δίσκος του συστήµατος είναι απασχοληµένος µε την ανάγνωση ή αποθήκευση δεδοµένων εκ µέρους µίας συναλλαγής, η CPU µπορεί να χρησιµοποιηθεί για την εκτέλεση υπολογισµών για λογαριασµό µίας άλλης συναλλαγής. Το αποτέλεσµα είναι ότι αυξάνεται ο αριθµός των συναλλαγών που ολοκληρώνονται στη µονάδα του χρόνου (throughput). Ένα σύνολο συναλλαγών µπορεί να περιλαµβάνει συναλλαγές που έχουν µικρές απαιτήσεις και µπορούν να ολοκληρωθούν γρήγορα και συναλλαγές µε περισσότερες απαιτήσεις, η εκτέλεση των οποίων µπορεί να απαιτεί µεγάλα χρονικά διαστήµατα. Χρησιµοποιώντας σειριακή εκτέλεση συναλλαγών µία µικρή συναλλαγή, ίσως, χρειασθεί να περιµένει πολύ χρόνο για την ολοκλήρωση µίας µεγαλύτερης. Η ταυτόχρονη εκτέλεση των συναλλαγών συµβάλλει στη µείωση των καθυστερήσεων (waiting time) και του µέσου χρόνου εκτέλεσης των συναλλαγών (mean response time) Προβλήµατα που προκύπτουν στην εναλλασσόµενη εκτέλεση Η ταυτόχρονη εκτέλεση πολλών συναλλαγών, ωστόσο, ενδέχεται να επιφέρει προβλήµατα στην ακεραιότητα και συνέπεια των δεδοµένων της Β. Αν όλες οι συναλλαγές πραγµατοποιούν µόνο λειτουργίες ανάγνωσης, τότε δεν υπάρχει κίνδυνος για τα δεδοµένα. Όµως, ενδέχεται κάποιες από τις συναλλαγές να πραγµατοποιούν ενηµερώσεις σε δεδοµένα που προσπελαύνονται από άλλες. Εποµένως, πρέπει να υπάρχουν αξιόπιστοι µηχανισµοί ελέγχου της ακεραιότητας των δεδοµένων καθώς πολλές συναλλαγές µπορεί να βρίσκονται σε εξέλιξη, προσπελαύνοντας (πιθανότατα) κοινά δεδοµένα. Αν επιτρέψουµε σε δύο συναλλαγές να ενηµερώσουν τα ίδια δεδοµένα, τότε υπάρχει µεγάλη πιθανότητα αλλοίωσης των δεδοµένων Ας δούµε τρεις περιπτώσεις όπου ο συντονισµός των συναλλαγών είναι απαραίτητος και µπορεί να επιλύσει σηµαντικά προβλήµατα που εµφανίζονται από την ταυτόχρονη εκτέλεση των συναλλαγών. Στην πρώτη περίπτωση, εξετάζουµε το πρόβληµα της χαµένης ενηµέρωσης(lost update problem).το πρόβληµα αυτό µπορεί να εµφανιστεί όταν δύο συναλλαγές πραγµατοποιούν ανάγνωση και αποθήκευση στα ίδια δεδοµένα. Έστω, οι δυο συναλλαγές που απεικονίζονται στο Σχήµα (α), όπου παρουσιάζεται η αλληλουχία εκτέλεσης των εντολών 11

12 των δυο συναλλαγών. Η συναλλαγή Σ 2 διαβάζει την τιµή του Χ πριν να καταχωρηθεί η νέα τιµή από τη Σ 1, και αποθηκεύει τη νέα τιµή του Χ στη Β µετά από τη Σ 1. Το αποτέλεσµα της εκτέλεσης αυτής είναι ότι η ενηµέρωση του Χ από τη Σ 1 έχει χαθεί. Το δεύτερο πρόβληµα που εξετάζουµε είναι το πρόβληµα της λανθασµένης ανάγνωσης (dirty read), το οποίο απεικονίζεται στο Σχήµα (β). Το πρόβληµα αυτό εµφανίζεται όταν µία συναλλαγή πραγµατοποιεί αλλαγές στα δεδοµένα και για κάποιο λόγο αποτυγχάνει. Πριν την επαναφορά των δεδοµένων στην αρχική κατάσταση κάποια άλλη συναλλαγή διαβάζει τα δεδοµένα µε αποτέλεσµα να πραγµατοποιείται µία λανθασµένη ανάγνωση. Στο παράδειγµα του σχήµατος, η συναλλαγή Σ 1 αλλάζει την τιµή του Χ και έστω, ότι αµέσως µετά αποτυγχάνει. Αµέσως µετά, η συναλλαγή Σ 2 διαβάζει την τιµή του Χ, προσθέτει το Μ και στη συνέχεια αποθηκεύει τη νέα τιµή του Χ. Η τιµή του Χ που διαβάζεται από τη Σ 2 είναι λανθασµένη, διότι η Σ 1 έχει αποτύχει και εποµένως, η τιµή του Χ έπρεπε να έχει αποκατασταθεί µε την προηγουµένη τιµή (πριν την αλλαγή της Σ 1 ). Συναλλαγή Σ 1 Συναλλαγή Σ 2 Συναλλαγή Σ 1 Συναλλαγή Σ 2 Συναλλαγή Σ 1 Συναλλαγή Σ 2 Read(A); Read(A); Sum:=0; A:=A-N A:=A-N; Read(A); Read(A); Write(A); Sum:=Sum+A; A:=A+M; Read(A); : Read(X); Write(A); A:=A+M; : X:=X-N; Read(B); Write(A); : Write(X); Write(A); Read(B); Read(X); B:=B+N; Write(B); sum:=sum+x; Read(Y); sum:=sum+y; Read(Y); Y:=Y+N; Write(Y); Χρόνος Χρόνος Χρόνος (α)χαµένη Ενηµέρωση (β)λανθασµένη Ανάγνωση (γ)λανθασµένη Άθροιση Εικόνα 1.4.1: τρία προβλήµατα που προκύπτουν από την ταυτόχρονη εκτέλεση συναλλαγών Το τρίτο πρόβληµα που εξετάζουµε αφορά στην παραγωγή συγκεντρωτικών στοιχείων (π.χ. άθροισµα, µέσο όρο) από τα δεδοµένα της Β. Πιο συγκεκριµένα εξετάζουµε το πρόβληµα της λανθασµένης άθροισης (incorrect summary) το οποίο απεικονίζεται στο Σχήµα (γ). Η συναλλαγή Σ 1 διαβάζει κάποια δεδοµένα και παράγει το άθροισµα των δεδοµένων αυτών. Ωστόσο, κάποια δεδοµένα ενηµερώνονται από τη Σ 2 πριν να διαβασθούν από τη Σ 1 (όπως το Χ), ενώ κάποια άλλα δεδοµένα ενηµερώνονται από τη Σ 2 µετά την ανάγνωση τους από τη Σ 1 (όπως το Υ). Το τελικό αποτέλεσµα της άθροισης είναι λανθασµένο. 12

13 1.4.3 Συγκρούσεις που πρέπει να αποφευχθούν Περιγράφουµε τρεις τρόπους µε τους οποίους ένα χρονοπρόγραµµα που περιλαµβάνει δύο ολοκληρωµένες συναλλαγές, που διατηρούν τη συνέπεια της βάσης, µπορεί να εκτελεστεί σε µια συνεπή βάση και να την καταστήσει ασυνεπή. Όπως έχει προαναφερθεί, δύο ενέργειες πάνω σε ένα αντικείµενο της βάσης συγκρούονται, αν έστω, µια από αυτές, είναι ενέργεια εγγραφής (write). Οι τρεις ανώµαλες περιπτώσεις µπορούν να περιγραφούν µε βάση τις συγκρουόµενες ενέργειες δύο συναλλαγών Σ 1 και Σ 2 : σε µια σύγκρουση write-read (WR) η Σ 2 διαβάζει ένα αντικείµενο της βάσης το οποίο έχει προηγουµένως γραφεί από την Σ 1. Παρόµοια, ορίζουµε και τις συγκρούσεις read-write (RW) και write-write (WW). ιαβάζοντας µη ολοκληρωµένα δεδοµένα (Συγκρούσεις WR) Η πρώτη περίπτωση ανωµαλίας είναι όταν µια συναλλαγή Σ 2 µπορεί να διαβάσει ένα αντικείµενο της βάσης Α που έχει τροποποιηθεί από µια άλλη συναλλαγή Σ 1, η οποία, όµως, δεν έχει ακόµα ολοκληρωθεί. Αυτό ονοµάζεται ασυνεπής ανάγνωση. Ένα απλό παράδειγµα δείχνει πως ένα τέτοιο χρονοπρόγραµµα µπορεί να οδηγήσει τη βάση σε ασυνεπή κατάσταση. Θεωρείστε δύο συναλλαγές Σ 1 και Σ 2, κάθε µια από τις οποίες όταν εκτελεστεί από µόνη της διατηρεί τη συνέπεια της βάσης: η Σ 1 µεταφέρει 100 από το Α στο Β, και η Σ 2 αυξάνει και το Α και το Β κατά 6% (π.χ., καταθέτει τους ετήσιους τόκους στους δύο λογαριασµούς). Υποθέστε πως οι ενέργειές τους εκτελούνται εναλλασσόµενα, έτσι ώστε (1) το πρόγραµµα µεταφοράς Σ 1 να χρεώνει 100 τον Α, έπειτα (2) το πρόγραµµα κατάθεσης τόκων Σ 2 να διαβάσει τις τρέχουσες τιµές των λογαριασµών Α και Β και να προσθέτει τόκους 6% στον καθένα, και τέλος (3) το πρόγραµµα µεταφοράς Σ 1 να πιστώνει 100 στο λογαριασµό Β. Το αντίστοιχο χρονοπρόγραµµα, που είναι ο τρόπος µε τον οποίο το Σ Β αντιλαµβάνεται τη σειρά των γεγονότων που συµβαίνουν, περιγράφεται σχηµατικά στην Εικόνα Το αποτέλεσµα αυτού του χρονοπρογράµµατος είναι διαφορετικό από όλα τα αποτελέσµατα που θα µπορούσαµε να έχουµε εκτελώντας µια από τις δύο συναλλαγές και µετά την άλλη. Το πρόβληµα έγκειται στο γεγονός πως η τιµή του Α που έγραψε η Σ 1 διαβάστηκε από την Σ 2, πριν η Σ 1 ολοκληρώσει τις µεταβολές που είχε να επιτελέσει. Σ 1 Σ 2 R(A) W(A) R(A) W(A) R(B) W(B) Commit R(B) W(B) Commit Εικόνα

14 Το γενικό πρόβληµα που περιγράφεται εδώ είναι ότι η Σ 1 µπορεί να γράψει κάποια τιµή στο Α που κάνει τη βάση ασυνεπή. Εφόσον η Σ 1, πριν ολοκληρωθεί, επανεγγράψει αυτή την τιµή µε µια «σωστή» τιµή για το Α, δεν υπάρχει πρόβληµα αν η Σ 1 και η Σ 2 εκτελεστούν µε κάποια σειρά, επειδή η Σ 2 δε θα δει την (προσωρινή) ασυνέπεια. Αντίθετα, µια εναλλασσόµενη εκτέλεση µπορεί να φανερώσει αυτή την ασυνέπεια και να οδηγήσει σε µια ασυνεπή τελική κατάσταση της βάσης. Σηµειώστε, πως, παρόλο που µια συναλλαγή πρέπει µετά την ολοκλήρωση της να αφήνει τη βάση σε µια συνεπή κατάσταση, δεν είναι υποχρεωτικό να διατηρεί τη βάση συνεπή κατά τη διάρκεια της εκτέλεσης της. Κάτι τέτοιο θα ήταν πολύ περιοριστικό: για να µεταφέρει χρήµατα από ένα λογαριασµό σε έναν άλλο, µια συναλλαγή πρέπει να χρεώσει τον ένα λογαριασµό, προσωρινά, αφήνοντας τη βάση ασυνεπή, και µετά να πιστώσει τον άλλο λογαριασµό, επαναφέροντας ξανά τη συνέπεια στη βάση. Μη επαναλαµβανόµενες αναγνώσεις (Συγκρούσεις RW) Η δεύτερη περίπτωση, στην οποία µπορεί να έχουµε ανώµαλη συµπεριφορά, είναι όταν µια συναλλαγή Σ 2 θα µπορούσε να αλλάξει την τιµή ενός αντικειµένου Α που έχει διαβαστεί από µια συναλλαγή Σ 1, ενώ η Σ 1 είναι ακόµα ενεργή. Κάτι τέτοιο δηµιουργεί δύο προβλήµατα. Πρώτον, αν η Σ 1 προσπαθήσει να ξαναδιαβάσει την τιµή του Α, θα πάρει µια διαφορετική τιµή, παρόλο που εντωµεταξύ η ίδια δεν έχει αλλάξει το Α. Η κατάσταση αυτή, που δεν µπορεί να συµβεί σε µια σειριακή εκτέλεση των δύο συναλλαγών, ονοµάζεται µη επαναλαµβανόµενη ανάγνωση. εύτερον, υποθέστε πως και η Σ 1 και η Σ 2 διαβάζουν την ίδια τιµή του Α, έστω 5, και έπειτα η Σ 1 που θέλει να αυξήσει την τιµή του Α κατά 1 την αλλάζει σε 6, και η Σ 2 που θέλει να µειώσει την τιµή του Α κατά 1, µειώνει την τιµή που είχε διαβάσει (δηλαδή 5) αλλάζοντας το Α σε 4. Η σειριακή εκτέλεση αυτών των συναλλαγών µε οποιαδήποτε σειρά θα έδινε στο Α την τελική τιµή 5. Συνεπώς η εναλλασσόµενη εκτέλεση οδηγεί σε µια ασυνεπή κατάσταση. Στην περίπτωση αυτή, η ουσία του προβλήµατος έγκειται στο ότι ενώ η αλλαγή της Σ 2 δεν διαβάζεται άµεσα από την Σ 1, ανατρέπει την υπόθεση της Σ 1 σχετικά µε την τιµή του Α, πάνω στην οποία στηρίζονται οι επόµενες ενέργειες της Σ 1. Επανεγγράφοντας µη-ολοκληρωµένα δεδοµένα (Συγκρούσεις WW) Η τρίτη περίπτωση ανώµαλης συµπεριφοράς είναι όταν µια συναλλαγή Σ 2 θα µπορούσε να επανεγγράψει την τιµή ενός αντικειµένου Α, ενώ αυτή έχει ήδη τροποποιηθεί από µια συναλλαγή Σ 1 που είναι ακόµα ενεργή. Ακόµα και αν η Σ 2 δε διαβάσει την τιµή του Α που έχει γραφεί από την Σ 1, υπάρχει ένα πιθανό πρόβληµα, όπως δείχνει το παρακάτω παράδειγµα. Υποθέστε δύο υπάλληλους, των οποίων οι µισθοί πρέπει να είναι ίσοι. Η συναλλαγή Σ 1 δίνει στους µισθούς την τιµή 1000, και η συναλλαγή Σ 2 τους δίνει την τιµή Αν εκτελέσουµε τις συναλλαγές αυτές σειριακά, µε την Σ 1 να ακολουθείται από την Σ 2, τότε ο µισθός των υπαλλήλων είναι Η σειριακή εκτέλεση µε την Σ 2 να ακολουθείται από την Σ 1 δίνει µισθό Τα δύο αυτά σενάρια είναι αποδεκτά όσον αφορά τη συνέπεια της 14

15 βάσης. Παρατηρείστε, όµως, πως καµιά συναλλαγή δε διαβάζει την τιµή του µισθού πριν τον τροποποιήσει. Αυτό ονοµάζεται τυφλή εγγραφή για προφανείς λόγους. Τώρα υποθέστε την ακόλουθη εναλλασσόµενη εκτέλεση των ενεργειών των συναλλαγών Σ 1 και Σ 2, που είναι η εξής : η Σ 1 κάνει το µισθό του πρώτου υπαλλήλου 1000, η Σ 2 κάνει το µισθό του δεύτερου 2000, η Σ 1 κάνει το µισθό του δεύτερου 1000, και τέλος η Σ 2 κάνει το µισθό του πρώτου Το αποτέλεσµα δεν είναι ταυτόσηµο µε το αποτέλεσµα καµιάς από τις δύο δυνατές σειριακές εκτελέσεις, και συνεπώς το εναλλασσόµενο χρονοπρόγραµµα δεν είναι σειριοποιήσιµο. Καταστρατηγεί το απαιτούµενο κριτήριο συνέπειας ότι οι δύο µισθοί πρέπει να είναι ίσοι. 1.5 ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ ΜΕ ΚΛΕΙ ΩΜΑΤΑ Στο κεφάλαιο αυτό, εξετάζουµε πιο αναλυτικά τον έλεγχο ταυτοχρονισµού. Ξεκινάµε µελετώντας τα πρωτόκολλα κλειδώµατος και το πως αυτά εγγυώνται τις διάφορες σηµαντικές ιδιότητες των χρονοπρογραµµάτων της προηγούµενης ενότητας. Στη συνέχεια, δίνουµε βαρύτητα σε αυτά που θα µας απασχολήσουν και στη συνέχεια. Τα πρωτόκολλα, δηλαδή, κλειδώµατος δύο φάσεων Μηχανισµοί Κλειδώµατος Ένας από τους βασικότερους µηχανισµούς συντονισµού της εκτέλεσης ενός συνόλου συναλλαγών στηρίζεται στη χρήση κλειδωµάτων (locks). Το κλείδωµα αντιστοιχεί σε ένα τµήµα δεδοµένων και πρόκειται για µία µεταβλητή που περιγράφει την κατάσταση του τµήµατος των δεδοµένων σε σχέση µε τις λειτουργίες που ενεργούν στα συγκεκριµένα δεδοµένα. ύο είναι οι βασικοί τύποι κλειδωµάτων που χρησιµοποιούνται: κλείδωµα ανάγνωσης (read lock) ή διαµοιραζόµενο κλειδί (shared lock) που επιτρέπει σε µία συναλλαγή να διαβάσει τα δεδοµένα, αλλά όχι να τα ενηµερώσει ή να τα διαγράψει, κλείδωµα αποθήκευσης (write lock) ή αποκλειστικό κλειδί (exclusive lock) που επιτρέπει σε µία συναλλαγή να διαβάσει ή/και να ενηµερώσει τα δεδοµένα. Κάθε φορά που µία συναλλαγή θέλει να προσπελάσει µία σελίδα δεδοµένων ζητά να της χορηγηθεί ένα κλείδωµα. Επειδή, η ανάγνωση της ίδιας σελίδας δεδοµένων από πολλές συναλλαγές δε δηµιουργεί πρόβληµα, επιτρέπεται να χορηγηθούν πολλά κλειδώµατα ανάγνωσης σε πολλές συναλλαγές. Αντίθετα, ένα κλείδωµα αποθήκευσης µπορεί να χορηγηθεί µόνο σε µία συναλλαγή, διότι δεν επιτρέπεται σε πολλές συναλλαγές να ενηµερώνουν ταυτόχρονα την ίδια σελίδα δεδοµένων. Έτσι, για όσο διάστηµα µία συναλλαγή έχει κλείδωµα απoθήκευσης για µία σελίδα δεδοµένων, δεν επιτρέπεται η χορήγηση κλειδώµατος σε άλλες συναλλαγές Ο µηχανισµός κλειδωµάτων λειτουργεί ως εξής: Μία συναλλαγή που απαιτεί ανάγνωση δεδοµένων ζητά από το σύστηµα να της χορηγηθεί ένα κλείδωµα ανάγνωσης. Αν απαιτείται ενηµέρωση δεδοµένων, τότε ζητά κλείδωµα αποθήκευσης 15

16 Αν δεν υπάρχει άλλο κλείδωµα για τη συγκεκριµένη σελίδα δεδοµένων, τότε το κλείδωµα χορηγείται στη συναλλαγή Αν υπάρχει, ήδη, άλλο κλείδωµα που έχει χορηγηθεί σε άλλη συναλλαγή, τότε πραγµατοποιείται έλεγχος για το αν θα χορηγηθεί το κλείδωµα στη νέα συναλλαγή ή όχι. Αν η σελίδα δεδοµένων έχει κλειδωθεί µε χρήση κλειδώµατος ανάγνωσης και η νέα συναλλαγή ζητά επίσης κλείδωµα ανάγνωσης, τότε το σύστηµα επιτρέπει τη χορήγηση του κλειδώµατος. Σε διαφορετική περίπτωση η νέα συναλλαγή πρέπει να περιµένει µέχρι η προηγούµενη συναλλαγή ολοκληρώσει την εργασία µε τη σελίδα δεδοµένων και απελευθερώσει κλείδωµα. Μία συναλλαγή απελευθερώνει το κλείδωµα, όταν η εκτέλεση της ολοκληρωθεί µε επιτυχία είτε µε αποτυχία. Οι µόνιµες αλλαγές στα δεδοµένα είναι ορατές από τις υπόλοιπες συναλλαγές, µόνο µετά την απελευθέρωση του κλειδώµατος αποθήκευσης από τη συναλλαγή. Μερικά συστήµατα επιτρέπουν σε µία συναλλαγή να αλλάξει τον τύπο του κλειδώµατος που της έχει χορηγηθεί. Θεωρείστε µία συναλλαγή που έχει ένα κλείδωµα ανάγνωσης σε σελίδα δεδοµένων. Αν αργότερα η συναλλαγή πρέπει να ενηµερώσει κάποια δεδοµένα, µπορεί να ζητήσει αναβάθµιση (upgrade) του κλειδώµατος από κλείδωµα ανάγνωσης σε κλείδωµα αποθήκευσης. Αντίθετα, αν η εγγραφή των δεδοµένων έχει ολοκληρωθεί, αλλά η συναλλαγή δεν έχει ολοκληρώσει την ανάγνωση των δεδοµένων, τότε µπορεί να ζητήσει υποβάθµιση (downgrade) του κλειδώµατος από αποθήκευσης σε ανάγνωσης. Συναλλαγή Σ 1 Read(X); X:=X+100; Write(X); Read(Y); Y:=Y-100; Write(Y); Συναλλαγή Σ 2 Read(X); X:=X*1.1; Write(X); Read(Y); Y:=Y*1.1; Write(Y); Συναλλαγή Σ 1 Lock-W(X); Read(X); X:=X+100; Write(X); Unlock-W(X); Lock-W(Y); Read(Y); Y:=Y-100; Write(Y); Unlock-W(Y); Συναλλαγή Σ 2 Lock-W(X); Read(X); X:=X*1.1; Write(X); Unlock-W(X); Lock-W(Y); Read(Y); Y:=Y*1.1; Write(Y); Unlock-W(Y); (α) (β) Εικόνα 1.5.1: Παράδειγµα χρήσης µηχανισµού κλειδώµατος µε λανθασµένο αποτέλεσµα. 16

17 Ο µηχανισµός κλειδώµατος, όπως αναλύθηκε προηγουµένως, δε δίνει πάντοτε λύση στο πρόβληµα της συνέπειας των δεδοµένων. Για παράδειγµα, θεωρείστε το χρονοπρόγραµµα εκτέλεσης της Εικόνας 1.5.1(α). Προσθέτοντας τις κατάλληλες εντολές Lock και Unlock παίρνουµε το χρονοπρόγραµµα στην Εικόνα 1.5.1(β). Έστω ότι οι αρχικές τιµές για τα δεδοµένα Χ και Υ είναι Χ = 100 και Υ=400. Αν εκτελεσθεί πρώτα η συναλλαγή Σ 1 και µετά η Σ 2 θα έχουµε στο τέλος της εκτέλεσης και των δύο συναλλαγών Χ=220 και Υ=330. Αν η Σ 2 εκτελεσθεί πριν τη Σ 1 τότε θα έχουµε Χ=210 και Υ=340. Όµως, η εκτέλεση του χρονοπρογράµµατος του παραδείγµατος δίνει Χ=220 και Υ=340. Αυτό σηµαίνει ότι το χρονοπρόγραµµα δεν είναι σειριοποιήσιµο. Το πρόβληµα εντοπίζεται στον τρόπο δέσµευσης και απελευθέρωσης των κλειδιών από τις συναλλαγές. Η αυθαίρετη δέσµευση ή απελευθέρωση κλειδιών µπορεί να δηµιουργήσει σοβαρά προβλήµατα στη συνέπεια των δεδοµένων Πρωτόκολλα Κλειδώµατος : Αυστηρό 2PL Ένας µηχανισµός κλειδώµατος πρέπει να πληρεί ορισµένους κανόνες που να εγγυώνται τη συνέπεια των δεδοµένων. Οι κανόνες αυτοί ορίζουν ένα πρωτόκολλο κλειδώµατος (locking protocol) και εγγυώνται ότι το χρονοπρόγραµµα που προκύπτει είναι σειριοποιήσιµο. Στη συνέχεια εξετάζουµε δύο από τα βασικότερα πρωτόκολλα κλειδώµατος. Ένα Σ Β πρέπει να µπορεί να εξασφαλίσει ότι επιτρέπονται µόνο σειριοποιήσιµα, επαναφέρσιµα χρονοπρογράµµατα και ότι δε χάνονται ενέργειες ολοκληρωµένων συναλλαγών, κατά την αναίρεση εγκαταλειµµένων συναλλαγών. Συνήθως, ένα Σ Β χρησιµοποιεί ένα πρωτόκολλο κλειδώµατος για να επιτύχει κάτι τέτοιο. Ένα πρωτόκολλο κλειδώµατος είναι ένα σύνολο κανόνων που πρέπει να ακολουθεί κάθε συναλλαγή (και να επιβάλλεται από το Σ Β ), ώστε, ακόµα και αν οι ενέργειες πολλών συναλλαγών εκτελούνται µε εναλλασσόµενο τρόπο, να διασφαλίζεται ότι το τελικό αποτέλεσµα είναι ταυτόσηµο µε αυτό της εκτέλεσης όλων των συναλλαγών µε κάποια συγκεκριµένη σειρά Αυστηρό Κλείδωµα ύο Φάσεων (Αυστηρό 2PL) Το πιο συνηθισµένο πρωτόκολλο κλειδώµατος, ονοµάζεται Αυστηρό Κλείδωµα ύο Φάσεων, ή Αυστηρό 2PL (Two-Phase Locking), και έχει δύο κανόνες. Ο πρώτος κανόνας είναι: (1) Αν µια συναλλαγή Σ 1 θέλει να διαβάσει (αντίστοιχα να τροποποιήσει) ένα αντικείµενο, πρώτα ζητά ένα κοινόχρηστο (αντίστοιχα ένα αποκλειστικό) κλείδωµα πάνω στο αντικείµενο. Βέβαια, µια συναλλαγή που έχει ένα αποκλειστικό κλείδωµα µπορεί και να διαβάσει το αντικείµενο και δεν απαιτείται ένα επιπλέον κοινόχρηστο κλείδωµα. Μια συναλλαγή που ζητά ένα κλείδωµα αναστέλλεται, µέχρι να µπορέσει το Σ Β να χορηγήσει το ζητούµενο κλείδωµα. To Σ Β καταγράφει τα κλειδώµατα που έχει χορηγήσει και διασφαλίζει πως αν µια συναλλαγή κρατά ένα αποκλειστικό κλείδωµα σε ένα αντικείµενο, καµιά άλλη συναλλαγή δεν κρατά ένα κοινόχρηστο ή αποκλειστικό κλείδωµα στο ίδιο αντικείµενο. Ο δεύτερος κανόνας του Αυστηρού 2PL είναι: 17

18 (2) Όλα τα κλειδώµατα που κρατούνται από µια συναλλαγή αποδεσµεύονται µε την ολοκλήρωση της συναλλαγής. Οι αιτήσεις απόκτησης και αποδέσµευσης κλειδωµάτων εισάγονται σε µια συναλλαγή αυτόµατα από το Σ Β. Οι χρήστες δεν χρειάζεται να ασχολούνται µε αυτές τις λεπτοµέρειες. Ουσιαστικά, το πρωτόκολλο κλειδώµατος επιτρέπει µόνο «ασφαλείς» εναλλασσόµενες εκτελέσεις των συναλλαγών. Αν δύο συναλλαγές προσπελαύνουν τελείως ανεξάρτητα µέρη της βάσης, είναι δυνατό να αποκτήσουν ταυτόχρονα τα κλειδώµατα που χρειάζονται. Αντίθετα, αν δύο συναλλαγές προσπελαύνουν το ίδιο αντικείµενο, και µια από αυτές θέλει να το τροποποιήσει, στην πραγµατικότητα οι ενέργειες τους ταξινοµούνται σειριακά - όλες οι ενέργειες της µιας συναλλαγής (αυτής που παίρνει το κλείδωµα στο αντικείµενο πρώτη) ολοκληρώνονται πριν (το κλείδωµα αποδεσµευτεί και) η άλλη συναλλαγή µπορέσει να συνεχίσει. Συµβολίζουµε την ενέργεια µιας συναλλαγής Σ να ζητήσει ένα κοινόχρηστο (αντίστοιχα αποκλειστικό) κλείδωµα σε ένα αντικείµενο Ο µε S Σ (O) (αντίστοιχα µε Χ Σ (Ο)), και παραλείπουµε τον δείκτη που δηλώνει τη συναλλαγή όταν αυτό προκύπτει από τα συµφραζόµενα.για παράδειγµα, θεωρείστε το χρονοπρόγραµµα όπου: η Σ 1 θα άλλαζε το Α από 10 σε 20, έπειτα η Σ 2 (που διαβάζει την τιµή 20 για το Α) θα άλλαζε το Β από 100 σε 200, και τέλος η Σ 1 θα διάβαζε την τιµή 200 για το Β. Αν όµως εκτελούνταν σειριακά, είτε η Σ 1 είτε η Σ 2 θα εκτελούνταν πρώτη και θα διάβαζε τις τιµές 10 για το,4 και 100 για το Β: προφανώς η εναλλασσόµενη εκτέλεση δεν είναι ταυτόσηµη µε καµιά σειριακή εκτέλεση. Αν χρησιµοποιηθεί το Αυστηρό πρωτόκολλο 2PL η παραπάνω εναλλασσόµενη εκτέλεση δεν επιτρέπεται. Ας δούµε γιατί. Ας υποθέσουµε πως οι συναλλαγές εκτελούνται µε την ίδια σχετική ταχύτητα όπως στο παράδειγµα. Η Σ 1 θα αποκτούσε πρώτα ένα αποκλειστικό κλείδωµα στο Α και έπειτα θα το διάβαζε και θα το έγραφε (Εικόνα 1.5.2). Μετά, η Σ 2 θα ζητούσε ένα κλείδωµα στο Α. Όµως, αυτή η αίτηση δεν µπορεί να ικανοποιηθεί έως ότου η Σ 1 αποδεσµεύσει το αποκλειστικό κλείδωµα στο Α, οπότε το Σ Β αναστέλλει την Σ 2. Έτσι, η Σ 1 προχωρά και αποκτά ένα αποκλειστικό κλείδωµα στο Β, και τελικά ολοκληρώνεται οπότε αποδεσµεύει τα κλειδώµατά της. Τώρα, η αίτηση της Σ 2 ικανοποιείται και η Σ 2 συνεχίζει την εκτέλεση της. Σε αυτό το παράδειγµα η χρήση του πρωτοκόλλου κλειδώµατος οδηγεί σε µια σειριακή εκτέλεση των συναλλαγών. Σ 1 Σ 2 Χ(Α) R(A) W(A) Εικόνα 1.5.2: Χρονοπρόγραµµα που περιγράφει το Αυστηρό πρωτόκολλο 2PL Γενικά, όµως, οι ενέργειες διαφορετικών συναλλαγών θα µπορούσαν να εκτελούνται εναλλασσόµενα. Ως παράδειγµα, δείτε την εναλλαγή των συναλλαγών που φαίνονται στην Εικόνα 1.5.3, και η οποία επιτρέπεται από το Αυστηρό πρωτόκολλο 2ΡL. 18

19 Σ 1 Σ 2 S(Α) R(A) S(A) R(A) X(B) R(B) W(B) Commit X(C) R(C) W(C) Commit Εικόνα 1.5.3: εναλλαγή των ενεργειών µε το Strici 2PL protocol Πρωτόκολλο Κλειδώµατος υο Φάσεων (Βασικό 2PL) Μια ευρέως µελετηµένη παραλλαγή του αυστηρού κλειδώµατος δυο φάσεων που ονοµάζεται Κλείδωµα υο Φάσεων (2PL) ή Βασικό 2PL, χαλαρώνει τον δεύτερο κανόνα του Αυστηρού 2PL, ώστε να επιτρέπει τις συναλλαγές να αποδεσµεύουν τα κλειδώµατά τους πριν το τέλος, δηλαδή, πριν την ενέργεια ολοκλήρωσε(commit) ή εγκατέλειψε(abort). Για το βασικό 2PL, ο δεύτερος κανόνας του Αυστηρού 2PL Πρωτοκόλλου αντικαθίσταται από τον παρακάτω κανόνα: (2) Μια συναλλαγή δεν µπορεί να ζητήσει επιπλέον κλειδώµατα, εφόσον αποδεσµεύσει ένα οποιoδήποτε κλείδωµα. Έτσι, κάθε συναλλαγή έχει µια φάση «επέκτασης», στην οποία αποκτά κλειδώµατα, που ακολουθείται από µια φάση «συρρίκνωσης», στην οποία αποδεσµεύει κλειδώµατα. Μπορεί να αποδειχτεί ότι, ακόµα και το (µη αυστηρό) βασικό 2PL, εξασφαλίζει την απουσία κύκλων στο γράφηµα προτεραιότητας και συνεπώς επιτρέπει µόνο σειριοποιήσιµα χρονοπρογράµµατα. ιαισθητικά, µια ισοδύναµη σειριακή ταξινόµηση των συναλλαγών δίνεται από τη σειρά µε την οποία οι συναλλαγές µεταβαίνουν στη φάση της συρρίκνωσης: αν η Σ 2 διαβάζει ή γράφει ένα αντικείµενο που έχει γραφεί από την Σ 1, η Σ 1 θα πρέπει να έχει αποδεσµεύσει το κλείδωµά της στο αντικείµενο πριν η Σ 2 ζητήσει κλείδωµα για το αντικείµενο αυτό. Έτσι, η Σ 1 θα προηγείται της Σ 2. (Παρόµοια, η Σ 1 προηγείται της Σ 2, αν η Σ 2 γράφει ένα αντικείµενο που έχει ήδη διαβάσει η Σ 1. Μια απόδειξη των παραπάνω, θα έπρεπε να δείξει πως δεν υπάρχει κύκλος µε συναλλαγές που «προηγούνται» η µια της άλλης, σύµφωνα µε την παραπάνω διατύπωση.) Αποδεικνύεται ότι αν κάθε συναλλαγή ικανοποιεί τους κανόνες του πρωτοκόλλου κλειδώµατος δυο φάσεων, τότε το χρονοπρόγραµµα που προκύπτει είναι πάντοτε σειριοποιήσιµο ως προς τις συγκρούσεις. 19

20 Στην αρχή του κεφαλαίου περιγράψαµε τρία προβλήµατα που µπορούν να εµφανισθούν κατά την ταυτόχρονη εκτέλεση συναλλαγών: α) χαµένη ενηµέρωση, β) λανθασµένη ανάγνωση και γ) λανθασµένη άθροιση. Παραδείγµατα συναλλαγών που παρουσιάζουν τα προβλήµατα αυτά απεικονίζονται στην Εικόνα Ας δούµε πως µπορεί το πρωτόκολλο δυο φάσεων να δώσει λύση στα δυο πρώτα. Στην Εικόνα παρουσιάζεται η εφαρµογή του πρωτοκόλλου δυο φάσεων για το πρόβληµα της χαµένης ενηµέρωσης και της λανθασµένης ανάγνωσης. Συναλλαγή Σ 1 Συναλλαγή Σ 2 Συναλλαγή Σ 1 Συναλλαγή Σ 2 Lock-W(A); Lock-W(A); Read(A); Read(A); A:=A-N; Lock-W(A); A:=A-N; Write(A); WAIT; Write(A); Lock-W(A); Lock-W(B); WAIT; WAIT; Read(B); WAIT; WAIT; B:=B+N; WAIT; WAIT; Write(B); WAIT; Lock-R(B); WAIT; Unlock-W(B); WAIT; Read(B); WAIT; Unlock-W(A); WAIT; Unlock-R(B); WAIT; Read(A); ROLLBACK; WAIT; A:=A+M; Unlock-W(A); WAIT; Write(A); Unlock-W(A); Read(A); A:=A+M; Write(A); Unlock-W(A); Χρόνος Χρόνος (α)χαµένη Ενηµέρωση (β)λανθασµένη Ανάγνωση Εικόνα 1.5.4: Εφαρµογή του πρωτοκόλλου κλειδώµατος δυο φάσεων για τα χρονοπρογράµµατα 1.6 ΑΥΣΤΗΡΟ ΠΡΩΤΟΚΟΛΛΟ ΚΛΕΙ ΩΜΑΤΟΣ ΥΟ ΦΑΣΕΩΝ Στο κεφάλαιο αυτό επανεξετάζουµε αναλυτικότερα το Αυστηρό Πρωτόκολλο Κλειδώµατος ύο Φάσεων, ώστε να αποδειχτούν τα πλεονεκτήµατά του. Το Πρωτόκολλο αυτό είναι που θα χρησιµοποιηθεί στο µοντέλο που θα υλοποιήσουµε στη συνέχεια της εργασίας µας Σειριοποιησιµότητα και Επαναφερσιµότητα ύο χρονοπρογράµµατα ονοµάζονται συγκρουσιακώς ισοδύναµα αν εµπεριέχουν το ίδιο σύνολο ενεργειών, των ίδιων συναλλαγών και ταξινοµούν µε τον ίδιο τρόπο κάθε ζευγάρι συγκρουόµενων ενεργειών δύο ολοκληρωµένων συναλλαγών. 20

21 Όπως είδαµε στα προηγούµενα, δύο ενέργειες συγκρούονται αν ενεργούν πάνω στο ίδιο αντικείµενο της βάσης και τουλάχιστον η µια από αυτές είναι ενέργεια write. To αποτέλεσµα ενός χρονοπρογράµµατος εξαρτώνται µόνο από τη σειρά των συγκρουόµενων ενεργειών. Μπορούµε να αλλάξουµε τη σειρά των ενεργειών οποιουδήποτε ζευγαριού µη συγκρουόµενων ενεργειών, χωρίς να αλλάξει το αποτέλεσµα του χρονοπρογράµµατος πάνω στη βάση. Αν δύο χρονοπρογράµµατα είναι συγκρουσιακώς ισοδύναµα, είναι εύκολο να δούµε πως έχουν το ίδιο αποτέλεσµα πάνω στη βάση. Πράγµατι, επειδή ταξινοµούν µε τον ίδιο τρόπο όλα τα ζευγάρια συγκρουόµενων ενεργειών, µπορούµε να µετασχηµατίσουµε το ένα από αυτά και να πάρουµε το άλλο µε την επαναλαµβανόµενη ανταλλαγή των ενεργειών ζευγαριών µη συγκρουόµενων ενεργειών, δηλαδή, µε την ανταλλαγή ενεργειών των οποίων η σχετική σειρά δεν επηρεάζει το αποτέλεσµα του χρονοπρογράµµατος. Ένα χρονοπρόγραµµα είναι συγκρουσιακώς σειριοποιήσιµο, αν είναι συγκρουσιακώς ισοδύναµο µε κάποιο σειριακό χρονοπρόγραµµα. Κάθε συγκρουσιακώς σειριοποιήσιµο χρονοπρόγραµµα είναι σειριοποιήσιµο, αν υποθέσουµε ότι το σύνολο των αντικειµένων της βάσης δεν αυξάνεται ούτε µειώνεται. Με άλλα λόγια, οι τιµές των αντικειµένων µπορούν να µεταβληθούν, αλλά αντικείµενα δεν προστίθενται ούτε διαγράφονται. Ωστόσο, µερικά σειριοποιήσιµα χρονοπρογράµµατα δεν είναι συγκρουσιακώς σειριοποιήσιµα όπως φαίνεται στο χρονοπρόγραµµα της Εικόνας Το χρονοπρόγραµµα αυτό είναι ισοδύναµο µε τη σειριακή εκτέλεση των συναλλαγών µε τη σειρά Σ 1, Σ 2, Σ 3, αλλά δεν είναι συγκρουσιακώς ισοδύναµο µε αυτό το σειριακό χρονοπρόγραµµα, επειδή οι ενέργειες write των Σ 1 και Σ 2 έχουν διαφορετική σειρά. Σ 1 Σ 2 Σ 3 R(A) W(A) Commit W(A) Commit W(A) Commit Εικόνα 1.6.1: Σειριοποιήσιµο Χρονοπρόγραµµα που δεν είναι Συγκρουσιακώς Σειριοποιήσιµο Είναι χρήσιµο να µπορούµε να αναπαραστήσουµε όλες τις πιθανές συγκρούσεις µεταξύ των συναλλαγών σε ένα χρονοπρόγραµµα, σε ένα γράφηµα προτεραιότητας ή αλλιώς γράφηµα σειριοποιησιµότητας. Το γράφηµα προτεραιότητας για ένα χρονοπρόγραµµα S περιέχει: Ένα κόµβο για κάθε ολοκληρωµένη συναλλαγή S. Μια ακµή από την Ti στην Tj, αν µια ενέργεια της Ti προηγείται και συγκρούεται µε µια ενέργεια της Tj. -Τα γραφήµατα προτεραιότητας για τα χρονοπρογράµµατα των Εικόνων 5,8, και 19.1 φαίνονται στην Εικόνα (τµήµατα (a), (b), και (c) αντίστοιχα). 21

22 Εικόνα 1.6.2: Παραδείγµατα γραφηµάτων προτεραιότητας (a) (b) (c ) Το πρωτόκολλο αυστηρού 2PL, επιτρέπει µόνο σειριοποιήσιµα χρονοπρογράµµατα, όπως φαίνεται από τα επόµενα δυο αποτελέσµατα: 1. Ένα χρονοπρόγραµµα S είναι συγκρουσιακώς σειριοποιήσιµο, αν και µόνο αν το γράφηµα προτεραιότητας του δεν έχει κύκλους. (Στην περίπτωση αυτή, ένα ισοδύναµο σειριακό χρονοπρόγραµµα δίνεται από µια οποιαδήποτε τοπολογική ταξινόµηση του γραφήµατος προτεραιότητας.) 2. Το Αυστηρό 2PL εξασφαλίζει ότι κάθε χρονοπρόγραµµα που επιτρέπει δεν έχει κύκλους στο γράφηµα προτεραιότητας του Πλεονέκτηµα του Αυστηρού (Strict) 2PL, έναντι του βασικού 2PL Ένα χρονοπρόγραµµα ονοµάζεται αυστηρό όταν µια τιµή που γράφεται από µια συναλλαγή Σ 1 δεν διαβάζεται ούτε επανεγγράφεται από άλλες συναλλαγές, ωσότου η Σ 1 είτε εγκαταλείψει, είτε ολοκληρώσει. Τα αυστηρά χρονοπρογράµµατα είναι επαναφέρσιµα, αποφεύγουν τις επακόλουθες εγκαταλείψεις συναλλαγών, και µπορούν να αναιρέσουν τις ενέργειες εγκαταλειµµένων συναλλαγών, επαναφέροντας τις αρχικές τιµές των αντικειµένων που έχουν µεταβληθεί. Το Αυστηρό 2PL αποτελεί βελτίωση του 2PL, επειδή εγγυάται ότι κάθε επιτρεπτό χρονοπρόγραµµα, εκτός από συγκρουσιακώς σειριοποιήσιµο, είναι και αυστηρό. Αυτό προκύπτει, επειδή στο 2PL όταν µια συναλλαγή S γράφει ένα αντικείµενο διατηρεί το (αποκλειστικό) κλείδωµα, µέχρι να ολοκληρώσει ή να εγκαταλείψει. Συνεπώς, καµιά άλλη συναλλαγή δεν µπορεί να διαβάσει ή να µεταβάλλει το αντικείµενο αυτό, έως ότου η S τερµατίσει ΙΑΧΕΙΡΙΣΗ ΚΛΕΙ ΙΩΝ (Lock Manager) Το τµήµα του Σ Β που διαχειρίζεται τα κλειδιά τα οποία παρέχονται στις συναλλαγές, ονοµάζεται διαχειριστής κλειδιών ή κλειδωµάτων ή κλειδαριών. Ο διαχειριστής κλειδιών διατηρεί έναν πίνακα κλειδιών (Lock Table), που είναι ένας πίνακας κατακερµατισµού µε κλειδί το αναγνωριστικό του αντικειµένου της βάσης (Data Item). 22

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης Συναλλαγές ιαχείριση Συναλλαγών Αυγουστάκη Αργυρώ Συναλλαγές Κράτησε για τον κ. Χ την θέση 13Α για LA! Κράτησε για τον κ. Y την θέση 13Α για

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

Επεξεργασία οσοληψιών

Επεξεργασία οσοληψιών οσοληψίες Επεξεργασία οσοληψιών Ηταυτόχρονη εκτέλεση προγραµµάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός Σ Β Επειδή οι προσπελάσεις στο δίσκο είναι συχνές και σχετικά αργές, είναι σηµαντικό

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης Συναλλαγές ιαχείριση Συναλλαγών Αυγουστάκη Αργυρώ Συναλλαγές Κράτησε για τον κ. Χ την θέση 13Α για LA! Κράτησε για τον κ. Y την θέση 13Α για

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Συναλλαγές ιαχείριση Συναλλαγών Τζικούλης Βασίλειος Credits:Γιάννης Μακρυδάκης Συναλλαγές Η ταυτόχρονες συναλλαγές (δοσοληψίες, transactions) µε µια

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

Βάσεις Δεδομένων ΙΙ Ενότητα 1

Βάσεις Δεδομένων ΙΙ Ενότητα 1 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 1: Επεξεργασία Δοσοληψιών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόμου Επεξεργασία Δοσοληψιών (Transaction Processing) (παρουσίαση βασισμένη εν μέρη σε σημειώσεις των Silberchatz, Korth και Sudarshan και του

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

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη Δοσοληψίες Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Βασικές έννοιες της δοσοληψίας Δοσοληψία είναι μία

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction)

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Επεξεργασία οσοληψιών. το πώς βλέπει το Σ Β τα προγράµµατα των χρηστών. οσοληψία (transaction) Ύλη Ύλη Έννοιες Επεξεργασίας οσοληψιών Τεχνικές Ελέγχου Συνδροµικότητας ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ Τεχνικές Ανάκαµψεις από Σφάλµατα Κατανεµηµένες και Παράλληλες Βάσεις εδοµένων Βάσεις εδοµένων και ιαδίκτυο Βάσεις

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

Έλεγχος Ταυτοχρονισμού

Έλεγχος Ταυτοχρονισμού Έλεγχος Ταυτοχρονισμού (εμπλουτισμένο λ έ υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/ Ευχαριστίες Μέρος του υλικού είναι βασισμένο στο βιβλίο Database Systems: The Complete Book Κεφάλαια 18.1 18.3

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

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 7: Transactions (Συναλλαγές) Ο λόγος που αναπτύχθηκαν

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

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4)

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ. Σχετικά µε το µάθηµα: Αξιολόγηση. Σχετικά µε το µάθηµα:faq ΟΧΙ ΝΑΙ. Λιγότερος! (ας πούµε το 1/3-1/4) ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙΙ Κάποιες γενικές πληροφορίες συνοπτικά... Βάσεις εδοµένων II 2004-2005 Ευαγγελία Πιτουρά 1 Βάσεις εδοµένων II 2004-2005 Ευαγγελία Πιτουρά 2 Σχετικά µε το µάθηµα: Ύλη Σχετικά µε το µάθηµα:

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

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών

Βάσεις Δεδομένων ΙΙ. Διάλεξη 1 η Επεξεργασία Δοσοληψιών. Σύστημα Επεξεργασίας Δοσοληψιών Βάσεις Δεδομένων ΙΙ Διάλεξη 1 η Επεξεργασία Δοσοληψιών Δ. Χριστοδουλάκης - Α. Φωκά Τμήμα Μηχανικών Η/Υ & Πληροφορικής - Εαρινό Εξάμηνο 2007 Ορισμός Προβλήματος Σύστημα Επεξεργασίας Δοσοληψιών Συστήματα

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

Έλεγχος Ταυτοχρονισμού

Έλεγχος Ταυτοχρονισμού Έλεγχος Ταυτοχρονισμού Κεφάλαιο 17 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 1 Συγκρουσιακώς Σειριοποιήσιμα Χρονοπρογράμματα Δυο χρονοπρογράμματα

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

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: Μια βάση δεδοµένων είναι σε συνεπή κατάσταση (consistent state) εάν όλοι οι περιορισµοί ακεραιότητας που έχουν δηλωθεί για αυτήν πληρούνται. Οι αλλαγές στην κατάσταση

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

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη Έλεγχος συγχρονικότητας Μέρος 1 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Έλεγχος συγχρονικότητας Διάφορες

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

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος 2008-09

Βάσεις Δεδομένων 2. Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας. Ημερ: 05/5/2009 Ακ.Έτος 2008-09 Βάσεις Δεδομένων 2 Φροντιστήριο Δοσοληψίες Τεχνικές ελέγχου συνδρομικότητας Ημερ: 05/5/2009 Ακ.Έτος 2008-09 Θεωρία-Επανάληψη Δοσοληψία-ορισμός Το πρόβλημα της απώλειας των ενημερώσεων Το πρόβλημα της προσωρινής

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

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. Πληροφοριακά Συστήματα και Βάσεις Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας Πληροφοριακά Συστήματα και Βάσεις Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΑ και ΔΥΝΑΤΟΤΗΤΑ ΑΝΑΚΑΜΨΗΣ Όταν οι δοσοληψίες

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος cman@unipi.gr Δοσοληψίες (Transactions) Μέχρι στιγμής θεωρούσαμε πως υπάρχει μόνο ένας DB χρήστης που εκτελεί μία

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

Βάσεις Δεδομένων ΙΙ Ενότητα 2

Βάσεις Δεδομένων ΙΙ Ενότητα 2 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Δεδομένων ΙΙ Ενότητα 2: Ελέγχου Συνδρομικότητας Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Έλεγχος Ταυτοχρονισμού

Έλεγχος Ταυτοχρονισμού Έλεγχος Ταυτοχρονισμού (εμπλουτισμένο λ έ υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/ Ευχαριστίες Μέρος του υλικού είναι βασισμένο στο βιβλίο Database Systems: The Complete Book 2 Εισαγωγικά γ Ένα

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

ΕΥΧΑΡΙΣΤΙΕΣ. της εφαρµογής που υλοποιήσαµε, αλλά και προτάσεις για µελλοντικές εφαρµογές µε βάση την τεχνογνωσία που αποκτήσαµε.

ΕΥΧΑΡΙΣΤΙΕΣ. της εφαρµογής που υλοποιήσαµε, αλλά και προτάσεις για µελλοντικές εφαρµογές µε βάση την τεχνογνωσία που αποκτήσαµε. ΠΡΟΛΟΓΟΣ Η εργασία αυτή, παρουσιάζει και αναλύει τις δυνατότητες µοντελοποίησης και προσοµοίωσης που είναι διαθέσιµες στο λογισµικό Extend και πιο συγκεκριµένα περιγράφει τη λειτουργία, µοντελοποίηση και

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

Διαχείριση Δοσοληψιών

Διαχείριση Δοσοληψιών Διαχείριση Δοσοληψιών Ορισμός της δοσοληψίας Συνδρομικές εκτελέσεις (concurrency) Έλεγχος σειριοποιησιμότητας Ανάκαμψη δοσοληψιών (recovery) Υλοποίηση της Απομόνωσης Βασική πηγή διαφανειών: Silberschatz

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

Συναλλαγές. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών. Συναλλαγές. Βάσεις Δεδομένων ΙΙ

Συναλλαγές. Εαρινό Εξάμηνο Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών. Συναλλαγές. Βάσεις Δεδομένων ΙΙ Τμήμα Μηχανικών Η/Υ και Πληροϕορικής Πολυτεχνική Σχολή, Πανεπιστήμιο Πατρών Εαρινό Εξάμηνο 2011-2012 Table of contents 1 Table of contents 1 2 Table of contents 1 2 3 1 2 3 T read(a) A -= 30 write(a) read(b)

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΙI Β. Μεγαλοοικονόµου Έλεγχος συνδροµικότητας (παρουσίαση βασισµένη εν µέρη σε σηµειώσεις των Silberchatz, Korth και Sudarshan και του C. Faloutsos) Γενική Επισκόπηση

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

Θεµατολόγιο. Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη;

Θεµατολόγιο. Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη; Θεµατολόγιο Κλειδώµατα 2 Phase Locking Πώς γίνεται στην πράξη; Αδιέξοδα 1 Πώς ελέγχουµε σειριοποιησιµότητα στην πράξη; Η σειριοποιησιµότητα όψεων είναι πολύ ακριβή για να ελεγχθεί, ούτως ή άλλως... Οι

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

Δοσοληψίες. Κατανεμημένα Συστήματα

Δοσοληψίες. Κατανεμημένα Συστήματα Δοσοληψίες Κατανεμημένα Συστήματα 2018-2019 http://www.cslab.ece.ntua.gr/courses/distrib Στο προηγούμενο μάθημα Group communication Multicast για FIFO διάταξη Multicast για ολική διάταξη Sequencer ISIS

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

Επαναφορά του Συστήματος (Μέρος Α')

Επαναφορά του Συστήματος (Μέρος Α') Επαναφορά του Συστήματος (Μέρος Α') Κεφάλαιο 18 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 1 Επανάληψη: Οι ιδιότητες ACID A tomicity (Ατομικότητα):

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΦΘΙΝΟΠΩΡΟ 2005 Λύση ΑΣΚΗΣΗΣ #1 Τ. Σελλής

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

Επεξεργασία οσοληψιών (συνέχεια)

Επεξεργασία οσοληψιών (συνέχεια) Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών (συνέχεια) Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων όταν επιτρέπουµε ταυτοχρονισµό και ακόµα και αν υπάρχουν αποτυχίες 1 2 οσοληψία (transaction) Επανάληψη: οσοληψίες

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

Επανάκτηση δεδομένων. (εμπλουτισμένο υλικό)

Επανάκτηση δεδομένων. (εμπλουτισμένο υλικό) Επανάκτηση δεδομένων (εμπλουτισμένο υλικό) http://delab.csd.auth.gr/courses/c_dbimpl/ Ευχαριστίες Μέρος του υλικού είναι βασισμένο στο βιβλίο Database Systems: The Complete Book 2 Επανάκτηση ηδεδομένων

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

Δοσοληψίες. Κατανεμημένα Συστήματα

Δοσοληψίες. Κατανεμημένα Συστήματα Δοσοληψίες Κατανεμημένα Συστήματα 2016-2017 http://www.cslab.ece.ntua.gr/courses/distrib Στο προηγούμενο μάθημα Group communication Multicast για FIFO διάταξη Multicast για ολική διάταξη Sequencer ISIS

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

Σηµειώσεις Βάσεων εδοµένων. ιαχείριση οσοληψιών. Γιάννης Θεοδωρίδης. Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά. http://isl.cs.unipi.

Σηµειώσεις Βάσεων εδοµένων. ιαχείριση οσοληψιών. Γιάννης Θεοδωρίδης. Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά. http://isl.cs.unipi. Σηµειώσεις Βάσεων εδοµένων ιαχείριση οσοληψιών Γιάννης Θεοδωρίδης Τµήµα Πληροφορικής, Πανεπιστήµιο Πειραιά http://isl.cs.unipi.gr/db/ version: 2006-11-28 Περιεχόµενα Ορισµός της δοσοληψίας Καταστάσεις

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

Προχωρημένα Θέματα Βάσεων Δεδομένων

Προχωρημένα Θέματα Βάσεων Δεδομένων Προχωρημένα Θέματα Βάσεων Δεδομένων 1ο Σετ Ασκήσεων ΕΡΩΤΗΜΑ 1 Ατομικότητα : Η ατομικότητα πρακτικά εξασφαλίζει ότι είτε όλες οι πράξεις μιας δοσοληψίας θα εκτελεστούν ή καμμιά από αυτές δεν θα εκτελεστεί.

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

Επεξεργασία οσοληψιών

Επεξεργασία οσοληψιών οσοληψίες Επεξεργασία οσοληψιών Ηταυτόχρονη εκτέλεση προγραµµάτων χρηστών είναι απαραίτητη για την καλή απόδοση ενός Σ Β Επειδή οι προσπελάσεις στο δίσκο είναι συχνές και σχετικά αργές, είναι σηµαντικό

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

Επεξεργασία οσοληψιών

Επεξεργασία οσοληψιών Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών Ανακεφαλαίωση Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων όταν επιτρέπουµε ταυτοχρονισµό και ακόµα και αν υπάρχουν αποτυχίες Βάσεις εδοµένων II 2003-2004 Ευαγγελία

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

Επαναληπτικές ασκήσεις

Επαναληπτικές ασκήσεις Επαναληπτικές ασκήσεις Ασκ 1: Θεωρείστε τα παρακάτω χρονοδιαγράμματα σύγχρονης εκτέλεσης : S 1 = r 1 (A); w 4 (B); w 1 (C); w 3 (D); r 2 (C); w 3 (A); w 1 (A); r 3 (B); w 3 (B); r 2 (D); w 2 (A) S 2 =

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

Κεφάλαιο 13 Δοσοληψίες

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

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

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

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

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

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης

ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών ΗΥ-460 Συστήµατα ιαχείρισης Βάσεων εδοµένων ηµήτρης Πλεξουσάκης Βασίλης Χριστοφίδης Ονοµατεπώνυµο: Αριθµός Μητρώου: Επαναληπτική Εξέταση (3 ώρες) Ηµεροµηνία:

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

Επεξεργασία οσοληψιών

Επεξεργασία οσοληψιών Επανάληψη: οσοληψίες Επεξεργασία οσοληψιών Ανακεφαλαίωση Πρόβληµα «Σωστή» εκτέλεση προγραµµάτων προσπέλασης µίας βδ, στην περίπτωση: ταυτοχρονισµού αποτυχιών 1 2 Επανάληψη: οσοληψίες Επανάληψη: οσοληψίες

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

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε Επιθυµητές Ιδιότητες µιας οσοληψίας Τεχνικές Ανάκαµψης Ιδιότητες οσοληψιών Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε καµία Consistency (συνέπεια) - διατήρηση συνέπειας της Β Isolation (αποµόνωση)

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

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

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

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

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

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων

ΗΥ360 Αρχεία και Βάσεις εδοµένων 1 ΗΥ360 Αρχεία και Βάσεις εδοµένων ιαχείριση Συναλλαγών II - Tree Protocols Αυγουστάκη Αργυρώ 2 Διαχείριση Συναλλαγών - Επανάληψη Συναλλαγή (Τ) είναι ένα σύνολο από ενέργειες σε κάποιο αντικείμενο της

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

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε

Τεχνικές Ανάκαµψης. Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε Επιθυµητές Ιδιότητες µιας οσοληψίας Τεχνικές Ανάκαµψης Ιδιότητες οσοληψιών Αtomicity (ατοµικότητα) - είτε όλες οι πράξεις είτε καµία Consistency (συνέπεια) - διατήρηση συνέπειας της Β Isolation (αποµόνωση)

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

Χρονοδιάγραμμα/Χρονοπρόγραμμα

Χρονοδιάγραμμα/Χρονοπρόγραμμα Χρονοδιάγραμμα/Χρονοπρόγραμμα Χρονοδιάγραμμα ή Χρονοπρόγραμμα (Schedule) είναι μια σειρά/ακολουθία ενεργειών που πραγματοποιούνται από μια ή περισσότερες δοσοληψίες. Σημαντικές ενέργειες: ανάγνωση, εγγραφή

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

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Πληροφορικής Ενότητα 8η: Συσκευές Ε/Ε - Αρτηρίες Άσκηση 1: Υπολογίστε το µέσο χρόνο ανάγνωσης ενός τµήµατος των 512 bytes σε µια µονάδα σκληρού δίσκου µε ταχύτητα περιστροφής

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Μανουσόπουλος Χρήστος cman@unipi.gr Δοσοληψίες Concurrent Data Access (Ταυτόχρονη Πρόσβαση σε Δεδομένα) Συνήθως πολλοί χρήστες έχουν ταυτόχρονη

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7 ο Αλγόριθμοι Χρονοδρομολόγησης Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης, και θα παρουσιάσουμε τους κυριότερους. Θα μάθουμε:

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Σημεία ελέγχου (Checkpoints)

Σημεία ελέγχου (Checkpoints) Σημεία ελέγχου (Checkpoints) Από την στιγμή που γίνεται ένα σε ένα Undo Recovery θα μπορούσε κανείς να υποθέσει ότι τα πρακτικά της δοσοληψίας μέχρι το δεν είναι πλέον απαραίτητα για

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

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

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

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

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης 7.1 Ορισμός Στόχοι Αλγόριθμο χρονοδρομολόγησης (scheduling algorithm) ονομάζουμε την μεθοδολογία την οποία χρησιμοποιεί ο κάθε χρονοδρομολογητής (βραχυχρόνιος, μεσοχρόνιος

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

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ

ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ ΠΡΟΒΛΗΜΑΤΑ ΕΛΑΧΙΣΤΟΠΟΙΗΣΗΣ Ελαχιστοποίηση κόστους διατροφής Ηεπιχείρηση ζωοτροφών ΒΙΟΤΡΟΦΕΣ εξασφάλισε µια ειδική παραγγελίααπό έναν πελάτη της για την παρασκευή 1.000 κιλών ζωοτροφής, η οποία θα πρέπει

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

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 4 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2011-2012 Προθεσµία: 8/1/12, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη Επιλογή και επανάληψη Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως, ότι στο

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

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ ΕΙΣΑΓΩΓΗ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΑΣΕΩΝ ΔΕΔΟΜΕΝΩΝ 1 Περιγραφή των Δεδομένων: Τα μοντέλα ενός ΣΔΒΔ Ένα μοντέλο δεδομένων είναι μια συλλογή από έννοιες που χρησιμοποιούνται για την περιγραφή δεδομένων

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

FAIL PASS PASS οριακά

FAIL PASS PASS οριακά AEM 0001 0002 COMMENTS οριακά -Το πρόγραµµά σου δουλεύει λάθος για τις εισόδους: 7 -Δεν έχεις µεριµνήσει για την περίπτωση step=1. Μπορούσες να θεωρήσεις ειδική περίπτωση και να την υλοποιείς σε άλλον

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

Transactions Management. (Διαχείριση Δοσοληψιών)

Transactions Management. (Διαχείριση Δοσοληψιών) Transactions Management (Διαχείριση Δοσοληψιών) Επισκόπηση διαλέξεων Αντιμετώπιση αστοχιών συστήματος (failure recovery) Χρήση ιστορικού/πρακτικού - Logging (Undo, Redo, Undo/Redo) Χρονοπρογράμματα Δοσοληψιών

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Άσκηση 3 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών ΗΥ 460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Διδάσκων: Δημήτρης

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

Κατανεµηµένες Συναλλαγές Ασφαλείας Πολλών Επιπέδων

Κατανεµηµένες Συναλλαγές Ασφαλείας Πολλών Επιπέδων Αριστοτέλειο Πανεπιστήµιο Θεσσαλονίκης Σχολή Θετικών Επιστηµών Τµήµα Πληροφορικής Πτυχιακή Εργασία Κατανεµηµένες Συναλλαγές Ασφαλείας Πολλών Επιπέδων Πολυµέρου Γεώργιος Επιβλέπων Λέκτορας Παναγιώτης Κατσαρός

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

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

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

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

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ

ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ Γ ΤΑΞΗ ΑΡΧΗ 1ΗΣ ΣΕΛΙ ΑΣ ΑΠΟΛΥΤΗΡΙΕΣ ΕΞΕΤΑΣΕΙΣ Σ ΗΜΕΡΗΣΙΟΥ ΕΝΙΑΙΟΥ ΛΥΚΕΙΟΥ ΤΡΙΤΗ 3 ΙΟΥΝΙΟΥ 2003 ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ (ΚΥΚΛΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης. 01 Εκφώνηση

Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης. 01 Εκφώνηση Μάθημα Βάσεις Δεδομένων ΙΙ - Ασκήσεις Επανάληψης 01 Εκφώνηση Θεωρείστε το παρακάτω B+tree (κάθε κόμβος ευρετηρίου χωρά 4 καταχωρίσεις ευρετηρίου και κάθε κόμβος φύλλο χωρά 4 καταχωρίσεις δεδομένων): (Α)

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Το Πρόβλημα του Αδιεξόδου Ένα σύνολο από διεργασίες σε αναμονή, όπου η κάθε μια κατέχει έναν αριθμό από πόρους και περιμένει να αποκτήσει και έναν

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

Έλεγχος Συγχρονικότητας. (Concurrency Control)

Έλεγχος Συγχρονικότητας. (Concurrency Control) Έλεγχος Συγχρονικότητας (Concurrency Control) Συγχρονικότητα δοσοληψιών Οι αλληλεπιδράσεις ανάμεσα σε πολλαπλές δοσοληψίες που εκτελούνται ταυτόχρονα (multiple transactions execute concurrently) μπορεί

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

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN ENOTHTA 8 Περιεχόµενα 1. οµή αρχείων 2. Λειτουργίες επί των αρχείων 3. Oργάνωση αρχείων 4. Iδιοχαρακτηριστικά αρχείων 5. Kατάλογοι αρχείων 6. ιαχείριση του χώρου του δίσκου 7. Yλοποίηση αρχείων 8-1 1.

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

Σηµειώσεις στις σειρές

Σηµειώσεις στις σειρές . ΟΡΙΣΜΟΙ - ΓΕΝΙΚΕΣ ΕΝΝΟΙΕΣ Σηµειώσεις στις σειρές Στην Ενότητα αυτή παρουσιάζουµε τις βασικές-απαραίτητες έννοιες για την µελέτη των σειρών πραγµατικών αριθµών και των εφαρµογών τους. Έτσι, δίνονται συστηµατικά

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση Εργαστηριακή Άσκηση Οι Αλγόριθμοι Χρονοπρογραμματισμού First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Επιμέλεια: Βασίλης Τσακανίκας Περιεχόμενα Αλγόριθμοι

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΛΥΣΗ ΣΤΗΝ ΕΥΤΕΡΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ ΑΚΑ. ΕΤΟΣ 2012-13 Ι ΑΣΚΟΝΤΕΣ Ιωάννης Βασιλείου Καθηγητής, Τοµέας Τεχνολογίας

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον 2.4.5 8.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 αντιστοιχούν σε ακολουθιακά υποέργα

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

Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη

Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη Έλεγχος συγχρονικότητας Μέρος 2 Βάσεις Δεδομένων Διδάσκων: Μαρία Χαλκίδη με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Πρωτόκολλα βασισμένα σε γράφο

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

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

Τεχνικές Ανάνηψης Περιεχόµενα

Τεχνικές Ανάνηψης Περιεχόµενα Τεχνικές Ανάνηψης Περιεχόµενα Εισαγωγή & υποθέσεις εργασίας Αλγόριθµος Write-Ahead Log (WAL) Ανάνηψη τη παρουσία WAL 2 Επίπεδα αποθήκευσης Κυρίως µνήµη RAM, cache Ταχύτητα στην προσπέλαση Τα δεδοµένα χάνονται

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

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

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

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

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

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

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

Ψευδοκώδικας. November 7, 2011

Ψευδοκώδικας. November 7, 2011 Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε

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

Προχωρημένα Θέματα Βάσεων Δεδομένων

Προχωρημένα Θέματα Βάσεων Δεδομένων Προχωρημένα Θέματα Βάσεων Δεδομένων Δοσοληψίες & Ταυτοχρονισμός Διδάσκων: Νεκτάριος Κοζύρης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Ε.Μ.Π. Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

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

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 1: Λυµένες Ασκήσεις Έστω ένας επεξεργαστής, στον οποίο ένα πρόγραµµα ολοκληρώνει την εκτέλεσή

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

8 FORTRAN 77/90/95/2003

8 FORTRAN 77/90/95/2003 ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ 1: Εισαγωγή... 17 1.1. Ανασκόπηση της ιστορίας των υπολογιστών... 18 1.2. Πληροφορία και δεδομένα... 24 1.3. Ο Υπολογιστής... 26 1.4. Δομή και λειτουργία του υπολογιστή... 28 1.5.

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

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

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Εικονική Μνήµη Κεφάλαιο 8 Υλικό και δοµές ελέγχου Οι αναφορές στην µνήµη υπολογίζονται δυναµικά κατά την εκτέλεση Ηδιεργασίαχωρίζεταισετµήµατα τα οποία δεν απαιτείται να καταλαµβάνουν συνεχόµενες θέσεις

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

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

Αποκατάσταση συστήματος Βάσεις Δεδομένων

Αποκατάσταση συστήματος Βάσεις Δεδομένων Αποκατάσταση συστήματος Βάσεις Δεδομένων με βάση slides από A. Silberschatz, H. Korth, S. Sudarshan, Database System Concepts, 5 th edition Κατηγοριοποίηση αποτυχιών Αποτυχία συναλλαγής (Transaction failure):

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

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΠΡΟΧΩΡΗΜΕΝΑ ΘΕΜΑΤΑ ΒΑΣΕΩΝ Ε ΟΜΕΝΩΝ ΦΘΙΝΟΠΩΡΟ 2007 Λύση ΑΣΚΗΣΗΣ #2 Τ. Σελλής

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

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

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων

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

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΧΗ 1ης ΣΕΛΙ ΑΣ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΑΞΗ : Γ ΛΥΚΕΙΟΥ ΣΠΟΥΔΕΣ ΟΙΚΟΝΟΜΙΑΣ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΓΩΝΙΣΜΑ ΠΕΡΙΟΔΟΥ : ΦΕΒΡΟΥΑΡΙΟΥ ΣΥΝΟΛΟ ΣΕΛΙΔΩΝ : 7 ΘΕΜΑ Α :

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