ΠΡΟΛΟΓΟΣ Η εργασία αυτή, παρουσιάζει και αναλύει τις δυνατότητες µοντελοποίησης και προσοµοίωσης που είναι διαθέσιµες στο λογισµικό Extend και πιο συγκεκριµένα περιγράφει τη λειτουργία, µοντελοποίηση και προσοµοίωση ενός Μοντέλου Ελέγχου Ταυτοχρονισµού συναλλαγών από ένα Σύστηµα ιαχείρισης Βάσεων εδοµένων. Στο µοντέλο αυτό, γίνεται χρήση του αυστηρού πρωτοκόλλου κλειδώµατος δύοφάσεων (Strict 2PL). Η εργασία αποτελείται από πέντε κεφάλαια, µε τα οποία φιλοδοξεί να εισάγει τον αναγνώστη στις βασικές αρχές ενός µοντέλου ελέγχου ταυτοχρονισµού. Όµως, µεγαλύτερη έµφαση δίνουµε στην εξοικείωση µε το λογισµικό προσοµοίωσης Extend, µέσα από την υλοποίηση ενός φιλόδοξου µοντέλου, που εµπεριέχει το σύνολο, σχεδόν, των δυνατοτήτων που προσφέρει το Extend. Στο πρώτο κεφάλαιο, που αποτελεί µια εισαγωγή, γίνεται αναφορά στην ανάγκη υιοθέτησης ενός αλγορίθµου ελέγχου ταυτοχρονισµού, στην περίπτωση ταυτόχρονης εκτέλεσης συναλλαγών από ένα Σ Β και συγκεκριµένα στην υιοθέτηση του Αυστηρού Πρωτοκόλλου Κλειδώµατος ύο-φάσεων (Strict 2PL). Παρουσιάζουµε ταυτόχρονα τις έννοιες της συναλλαγής, της σειριοποίησης συναλλαγών, του έλεγχου ταυτοχρονισµού και του τρόπου διαχείρισης των κλειδωµάτων. Το δεύτερο κεφάλαιο της εργασίας, παρουσιάζει, τόσο ενδιαφέρον θεωρητικής µελέτης του µοντέλου ελέγχου ταυτοχρονισµού που θα υλοποιήσουµε παρακάτω, αλλά και ενδιαφέρον των απαραίτητων προδιαγραφών και τελικών συµπερασµάτων που απαιτούνται και προσδωκούµε, αντίστοιχα. Συγκεκριµένα, ο αναγνώστης έχει στη διάθεση του µια πλήρη περιγραφή για το πώς είναι η δοµή ενός µοντέλου κλειστού δικτύου ουρών που χρησιµοποιείται για τον έλεγχο ταυτοχρονισµού σε ένα Σ Β. Η µελέτη αυτή, προσφέρει όλες τις προδιαγραφές για το µοντέλο που θα υλοποιηθεί στο επόµενο κεφάλαιο. Το τρίτο κεφάλαιο, πραγµατεύεται τις απεριόριστες δυνατότητες που συνοδεύουν το πακέτο µοντελοποίησης και προσοµοίωσης Extend. Μας εισάγει, ταυτόχρονα, στο περιβάλλον, στο οποίο υλοποιήσαµε την εφαρµογή µας, ώστε να είµαστε εξοικειωµένοι, όσο το δυνατόν, στην περιγραφή του µοντέλου µας, που ακολουθεί. Στο τέταρτο κεφάλαιο παρατίθεται η υλοποίηση της εφαρµογής που πραγµατοποιήσαµε στα πλαίσια της πτυχιακής µας εργασίας. Πρόκειται για την Υλοποίηση ενός Μοντέλου Ελέγχου Ταυτοχρονισµού. Η εφαρµογή πραγµατοποιήθηκε χρησιµοποιώντας το λογισµικό προσοµοίωσης Extend v4, µε όλες τις δυνατότητες που αυτό παρέχει, ανάµεσα στις οποίες τη γλώσσα προγραµµατισµού Modl. Γίνεται επεξήγηση όλων των διαδικασιών που ακολουθήθηκαν, στάδιο προς στάδιο. Σκοπός υλοποίησης αυτής της εφαρµογής είναι να επιτευχθεί η άµεση και αποτελεσµατικότερη µοντελοποίηση ενός µοντέλου ταυτοχρονισµού. Ταυτόχρονα, γίνεται διερεύνηση όλων των δυνατοτήτων του Extend. Στο κεφάλαιο πέντε, παρατίθεται ένα σύνολο από συµπεράσµατα στα οποία καταλήξαµε ύστερα από την εφαρµογή της προσοµοίωσης στο Extend v4. Γίνεται αναφορά των διάφορων αποτελεσµάτων της προσοµοίωσης και µεταξύ τους συγκρίσεις. Επιπλέον, στο κεφάλαιο αυτό γίνονται προτάσεις περαιτέρω ανάπτυξής i
της εφαρµογής που υλοποιήσαµε, αλλά και προτάσεις για µελλοντικές εφαρµογές µε βάση την τεχνογνωσία που αποκτήσαµε. Στο τέλος της εργασίας, ο αναγνώστης θα βρει ένα χρήσιµο παράρτηµα στο οποίο παρατίθεται ο πηγαίος κώδικας υλοποίησης στο Extend του "Lock Table", για το Αυστηρό Πρωτόκολλο Κλειδώµατος 2-Φάσεων, χρήσιµες πληροφορίες, λεξιλόγιο, βιβλιογραφία. ΕΥΧΑΡΙΣΤΙΕΣ Αισθάνοµαστε την ανάγκη να ευχαριστήσουµε τον ρ. Παναγιώτη Κατσαρό, ο οποίος συµµετείχε, έλεγξε και µας βοήθησε ουσιαστικά σε όλη την προσπάθειά µας. Ιδιαίτερα εκτιµώνται, η προσηνής ενθάρρυνση και η πολύτιµη εποικοδοµητική κριτική από µέρους του. Επίσης, θα επιθυµούσαµε να ευχαριστήσουµε όλους τους φίλους και συµφοιτητές µας, για τη ζεστή σχέση αλληλεγγύης και άψογης συνεργασίας που είχαµε όλα αυτά τα χρόνια µαζί. Ευχαριστούµε Πολύ και τους γονείς µας, που παρά τις δυσκολίες, µας παρείχαν όλες εκείνες τις απαραίτητες συνθήκες για να εργαστούµε απρόσκοπτα όλα αυτά τα χρόνια και να φτάσουµε ως εδώ. Η συνεισφορά τους υπήρξε ανεκτίµητη. ii
ΠΕΡΙΕΧΟΜΕΝΑ ΠΡΟΛΟΓΟΣ. i ΕΥΧΑΡΙΣΤΙΕΣ. ii ΠΕΡΙΕΧΟΜΕΝΑ.. iii 1. ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ.. 1 1.1 ΣΥΝΑΛΛΑΓΕΣ...... 2 1.1.1 Καταστάσεις Συναλλαγών...... 3 1.1.2 Ιδιότητες Συναλλαγών.... 4 1.2 ΣΥΝΑΛΛΑΓΕΣ ΚΑΙ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΑ... 5 1.2.1 Χρονοπρογράµµατα...... 5 1.2.2 Ισοδύναµα Χρονοπρογράµµατα....6 1.3 ΣΕΙΡΙΟΠΟΙΗΣΗ ΣΥΝΑΛΛΑΓΩΝ...... 7 1.3.1 Σειριοποίηση Σύγκρουσης...... 7 1.3.2 Σειριοποίηση Όψης...... 9 1.4 ΤΑΥΤΟΧΡΟΝΗ ΕΚΤΕΛΕΣΗ ΤΩΝ ΣΥΝΑΛΛΑΓΩΝ.... 10 1.4.1 Πλεονεκτήµατα και Κίνητρα...... 11 1.4.2 Μερικές Ανωµαλίες που σχετίζονται µε την ταυτόχρονη εκτέλεση..11 1.4.3 Συγκρούσεις που πρέπει να αποφευχθούν... 13 1.5 ΕΛΕΓΧΟΣ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ ΜΕ ΚΛΕΙ ΑΡΙΕΣ... 15 1.5.1 Μηχανισµοί κλειδώµατος....... 15 1.5.2 Πρωτόκολλα Κλειδώµατος: Αυστηρό 2PL... 17 1.5.3 Βασικό 2PL... 19 1.6 ΑΥΣΤΗΡΟ ΠΡΩΤΟΚΟΛΛΟ ΚΛΕΙ ΩΜΑΤΟΣ ΥΟ ΦΑΣΕΩΝ... 20 1.6.1 2PL: Σειριοποιησιµότητα και επαναφερσιµότητα... 20 1.6.2 Πλεονέκτηµα του Αυστηρού (Strict) 2PL, έναντι του βασικού 2PL..22 1.6.3 ιαχείριση Κλειδιών... 22 1.6.3.1 Υλοποιώντας Αιτήσεις Κλειδώµατος και Ξεκλειδώµατος.. 23 1.6.3.2 Ατοµικότητα του Κλειδώµατος και του Ξεκλειδώµατος. 24 2. ΜΟΝΤΕΛΟ ΕΛΕΓΧΟΥ ΤΑΥΤΟΧΡΟΝΙΣΜΟΥ ΣΕ Σ Β... 25 2.1 ΕΙΣΑΓΩΓΗ.... 25 2.2 ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΜΟΝΤΕΛΟΥ ΠΡΟΣΟΜΟΙΩΣΗΣ... 25 2.2.1 Γενικά...... 25 2.2.1 Περιγραφή της Λειτουργίας... 25 2.2.2 Παρουσίαση στο Λογικό Επίπεδο και στο Φυσικό Επίπεδο... 28 2.3 ΓΕΝΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΟ ΠΕΙΡΑΜΑ ΜΑΣ... 29 2.3.1 Μέτρα απόδοσης (Performance Metrics). 29 2.3.2 Ορισµός Παραµέτρων (Parameter Settings). 30 2.4 ΠΤΥΧΕΣ ΤΗΣ ΑΠΟ ΟΣΗΣ ΤΟΥ ΜΟΝΤΕΛΟΥ.... 31 iii
3. ΤΟ ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ EXTEND (v4) 32 3.1 ΕΝΑ ΣΥΓΧΡΟΝΟ ΕΡΓΑΛΕΙΟ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ ΠΡΟΣΟΜΟΙΩΣΗΣ... 32 3.2 ΤΟ ΓΡΑΦΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΟΥ EXTEND...... 32 3.2.1 οµή των Blocks, δουλεύοντας µε το Extend 32 3.2.2 Σύντοµο παράδειγµα....... 33 3.3 ΠΕΡΙΓΡΑΦΗ ΤΟΥ EXTEND... 34 3.3.1 Discrete Event Library... 35 3.3.2 Generic Library... 35 3.3.3 Η γλώσσα ModL...... 36 4. ΥΛΟΠΟΙΗΣΗ ΤΟΥ ΜΟΝΤΕΛΟΥ ΣΤΟ EXTEND 37 4.1 ΗΜΙΟΥΡΓΙΑ ΤΩΝ ΙΕΡΓΑΣΙΩΝ... 37 4.1.1 Μοντελοποίηση της ηµιουργίας των ιεργασιών... 37 4.2 Ι ΙΟΤΗΤΕΣ ΤΩΝ ΙΕΡΓΑΣΙΩΝ.. 38 4.2.1 Θέµατα που προκύπτουν κατά την υλοποίηση της διεργασίας... 40 4.2.2 Μοντελοποίηση των Ιδιοτήτων των ιεργασιών.... 41 4.2.2.1 Απόδοση Τιµών στις Ιδιότητες.... 41 4.2.2.2 Απόδοση Τιµών για τα Obj_id..... 43 4.2.2.3 Απόδοση ιαφορετικών Τιµών για τα Obj_id κάθε διεργασίας.. 45 4.2.2.4 Απόδοση Τιµής για Εγγραφή, Πιθανοτικά, σε κάθε Αντικείµενο της διεργασίας..47 4.2.2.5 Απόδοση Τιµών στην Write_obj..48 4.2.3 Συνθέτουµε το puzzle της διεργασίας..... 50 4.3 READY, CC, OBJECT AND BLOCKING QUEUES, READ και WRITE ΕΝΕΡΓΕΙΕΣ... 53 4.3.1 Το µοντέλο µετά την υλοποίηση της διεργασίας...... 53 4.3.2 Ανάγνωση και Εγγραφή σε Αντικείµενα της Β... 56 4.4 CONCURRENCY CONTROL (έλεγχος ταυτοχρονισµού)... 58 4.4.1 Θέµατα που προκύπτουν κατά τη Μοντελοποίηση του Concurrency Control...... 58 4.4.2 Μοντελοποίηση του Concurrency Control.... 64 4.4.3 Το Block Lock Table... 65 4.4.3.1 Θέµατα που αφορούν την υλοποίηση του Lock Table..... 65 4.4.3.2 Μοντελοποίηση του Lock Table.. 66 4.4.4 Μοντελοποίηση της Αποφυγής Αδιεξόδων... 67 4.5 UPDATE ΚΑΙ ΕΡΓΑΣΙΕΣ ΠΟΥ ΟΛΟΚΛΗΡΩΝΟΥΝ... 69 4.5.1 Ενηµέρωση (Update).... 69 4.5.2 Εργασίες που Ολοκληρώνουν (Commit)... 70 4.5.3 Εργασίες που Επανεκκινούνται (Restart)... 71 4.6 ΣΥΝΟΨΗ ΤΟΥ ΜΟΝΤΕΛΟΥ...... 72 5. ΣΥΜΠΕΡΑΣΜΑΤΑ 74 5.1 ΑΝΑΛΥΣΗ ΤΗΣ ΑΠΟ ΟΣΗΣ ΤΟΥ ΜΟΝΤΕΛΟΥ ΜΑΣ... 74 5.1.1 Τρέξιµο της Προσοµοίωσης... 74 5.1.2 Αποτελέσµατα - συγκρίσεις... 77 5.2 ΠΡΟΤΑΣΕΙΣ ΠΕΡΑΙΤΕΡΩ ΑΝΑΠΤΥΞΗΣ. 80 5.2.1 Μελλοντικές Εφαρµογές µε Βάση την Τεχνογνωσία που Αποκτήθηκε.. 80 iv
ΠΑΡΑΡΤΗΜΑ : Ο Πηγαίος Κώδικας για την Υλοποίηση του Lock Table block... 81 ΛΕΞΙΛΟΓΙΟ.. 88 Τι περιέχει το cd rom.. 89 ΒΙΒΛΙΟΓΡΑΦΙΑ... 89 v