ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΠΡΟΣΟΜΟΙΩΣΗ ΚΑΙ ΣΥΓΚΡΙΣΗ ΤΗΣ ΑΠΟ ΟΣΗΣ ΜΕΘΟ ΩΝ ΧΡΟΝΟ ΡΟΜΟΛΟΓΗΣΗΣ ΕΡΓΑΣΙΩΝ ΣΕ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΠΙΣΚΟΠΗΣΗ ΜΕΘΟ ΟΛΟΓΙΑ ΟΥΡΕΣ ΕΠΕΞΕΡΓΑΣΤΕΣ ΑΦΙΞΗ ΙΑΣΠΑΣΗ ΤΩΝ JOBS ΧΩΡΟΣ ΠΡΟΣΩΡΙΝΗΣ ΠΑΡΑΜΟΝΗΣ ΤΩΝ TASKS ΑΝΑΧΩΡΗΣΗ Γκουντέλα Ζωή Α.Ε.Μ. : 601 Τµήµα Πληροφορικής Α.Π.Θ. Ε ιβλέ ουσα Καθηγήτρια : Καρατζά Ελένη Θεσσαλονίκη, εκέµβριος 2005
2 Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΕΧΟΜΕΝΑ...2 ΠΡΟΛΟΓΟΣ.......4 ΚΕΦΑΛΑΙΟ 1: ΠΡΟΣΟΜΟΙΩΣΗ 1.1 Τι είναι η προσοµοίωση..5 1.2 Σκοπός της προσοµοίωσης.6 1.3 Ιστορία..8 1.4 Ταξινόµηση Μοντέλων Προσοµοίωσης...9 1.5 Πλεονεκτήµατα και µειονεκτήµατα της Προσοµοίωσης.10 1.6 Βήµατα µιας µελέτης Προσοµοίωσης 13 1.7 Περιοχές Εφαρµογών...18 1.8 Τι είναι το σύστηµα και το περιβάλλον του συστήµατος..21 1.9 Συστατικά ενός συστήµατος..22 1.10 Μοντέλο ενός συστήµατος.....23 ΚΕΦΑΛΑΙΟ 2: ΤΥΠΟΙ ΠΡΟΣΟΜΟΙΩΣΗΣ 2.1 Προσοµοίωση διακεκριµένων γεγονότων....24 2.2 Συνεχής προσοµοίωση...30 2.3 Κατανεµηµένη προσοµοίωση. 30 2.4 Προσοµοίωση Monte Carlo...32 ΚΕΦΑΛΑΙΟ 3: ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 3.1 Κατανεµηµένα συστήµατα..33 3.2 Πλεονεκτήµατα και µειονεκτήµατα των κατανεµηµένων συστηµάτων...35 3.3 Τι είναι τα οµογενή και ετερογενή κατανεµηµένα συστήµατα... 36 3.4 Μετρικές της απόδοσης..37
3 ΚΕΦΑΛΑΙΟ 4: ΛΟΓΙΣΜΙΚΟ ΤΗΣ ΠΡΟΣΟΜΟΙΩΣΗΣ 4.1 GPSS GPSS/H..40 4.2 SIMAN V.41 4.3 SIMSCRIPT II.5...42 4.4 SLAM II...43 4.5 SIMULA 67...44 4.6 MODSIM III 44 4.7 JAVA 45 ΚΕΦΑΛΑΙΟ 5: ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΓΙΑ ΤΑ ΣΥΣΤΗΜΑΤΑ ΟΥΡΩΝ 5.1 Γενικά 46 5.2 Αλγόριθµοι δροµολόγησης.48 5.2.1 Βασικά στοιχεία 48 5.2.2 Παρουσίαση των αλγορίθµων 52 5.3 Κανόνας του Little...66 5.4 Στατιστικοί µετρητές...67 ΚΕΦΑΛΑΙΟ 6: ΕΡΕΥΝΕΣ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 6.1 A COMPARATIVE ANALYSIS OF SCHEDULING POLICIES IN A DISTRIBUTED SYSTEM USING SIMULATION...69 6.2 A Synchronous Co-Allocation Mechanism for Grid Computing Systems..76 6.3 Group Scheduling in System Software..81 6.4 LOAD SHARING IN HETEROGENEOUS DISTRIBUTED SYSTEMS...84 ΚΕΦΑΛΑΙΟ 7: ΜΕΘΟ ΟΛΟΓΙΑ 7.1 Το πραγµατικό σύστηµα..88 7.2 Το µοντέλο του συστήµατος 89 7.3 Μετρικές της απόδοσης...90 7.4 Μεθοδολογία προγράµµατος...91 ΒΙΒΛΙΟΓΡΑΦΙΑ....106
4 Π Ρ Ο Λ Ο Γ Ο Σ Η παρούσα εργασία αποτελεί την τεκµηρίωση της ιπλωµατικής εργασίας που µου ανατέθηκε από την αναπληρώτρια καθηγήτρια κ. Ελένη Καρατζά κατά τη διάρκεια των προπτυχιακών µου σπουδών στο Τµήµα Πληροφορικής του Α.Π.Θ. Θεωρώ πρωταρχικό µου καθήκον να εκφράσω την απεριόριστη ευγνωµοσύνη και τις ευχαριστίες µου προς την κ. Ελένη Καρατζά, για την υποστήριξή της, ενθάρρυνση και συµπαράσταση κατά την εκτέλεση της εργασίας αυτής και της οποίας οι συµβουλές υπήρξαν ιδιαίτερα πολύτιµες για την περάτωσή της. Θεσσαλονίκη, εκέµβριος 2005
5 ΚΕΦΑΛΑΙΟ 1 ΠΡΟΣΟΜΟΙΩΣΗ 1.1 Τι είναι η ροσοµοίωση Μια προσοµοίωση είναι µια µίµηση κάποιας πραγµατικής συσκευής ή παρούσας κατάστασης. Η προσοµοίωση προσπαθεί να παρουσιάσει ορισµένα χαρακτηριστικά γνωρίσµατα της συµπεριφοράς ενός φυσικού ή αφηρηµένου συστήµατος από τη συµπεριφορά ενός άλλου συστήµατος. Η προσοµοίωση χρησιµοποιείται σε πολλά περιβάλλοντα, συµπεριλαµβανοµένης της αναπαράστασης φυσικών συστηµάτων, και σε ανθρώπινα συστήµατα για να αποκτήσει επίγνωση της λειτουργίας αυτών των συστηµάτων, και τέλος προσοµοίωση χρησιµοποιείται στην τεχνολογία και στην επιστήµη της εφαρµοσµένης µηχανικής όπου ο στόχος είναι να εξεταστεί κάποιο πραγµατικό πρακτικό σενάριο. Η προσοµοίωση, µε χρήση κάποιου προσοµοιωτή ή διαφορετικά πειραµατιζόµενοι µε µια φανταστική κατάσταση, µπορεί να παρουσιάσει ενδεχόµενα πραγµατικά αποτελέσµατα µερικών πιθανών καταστάσεων. Μια προσοµοίωση µε ηλεκτρονικό υπολογιστή είναι ένα πρόγραµµα του υπολογιστή που προσπαθεί να µιµηθεί ένα αφηρηµένο µοντέλο ενός συγκεκριµένου συστήµατος. Οι προσοµοιώσεις µε υπολογιστές έχουν γίνει πολύ χρήσιµες, γιατί αναπαριστούν πολλά φυσικά συστήµατα στον τοµέα της φυσικής, της χηµείας και της βιολογίας, ανθρώπινα συστήµατα στην οικονοµία και στις κοινωνικές επιστήµες και στη διαδικασία
εφαρµογής της µηχανικής στη νέα τεχνολογία. Με τις προσοµοιώσεις µπορεί να αποκτηθεί επίγνωση της λειτουργίας αυτών των συστηµάτων. Παραδοσιακά, ο επίσηµος τρόπος αναπαράστασης των συστηµάτων ήταν µέσω ενός µαθηµατικού προτύπου, το οποίο προσπαθεί να βρει αναλυτικές λύσεις στα προβλήµατα, οι οποίες επιτρέπουν την πρόβλεψη της συµπεριφοράς του συστήµατος µέσα από ένα σύνολο παραµέτρων και αρχικών καταστάσεων. Οι προσοµοιώσεις µε υπολογιστές αναπτύσσονται συνεχώς και αποτελούν ένα χρήσιµο συµπλήρωµα στα απολύτως µαθηµατικά πρότυπα της επιστήµης, της τεχνολογίας και της ψυχαγωγίας. 6 1.2 Σκο ός της ροσοµοίωσης Η προσοµοίωση είναι η διαδικασία σχεδιασµού προτύπου ενός πραγµατικού ή φανταστικού συστήµατος και η διεξαγωγή πειραµάτων µε το πρότυπο αυτό. Ο σκοπός των πειραµάτων προσοµοίωσης είναι να γίνει κατανοητή η συµπεριφορά του συστήµατος ή να αξιολογηθούν οι στρατηγικές για τη λειτουργία του συστήµατος. Στη συνέχεια γίνονται υποθέσεις για το σύστηµα αυτό και µαθηµατικοί αλγόριθµοι και σχέσεις παράγονται για να περιγράψουν τις υποθέσεις αυτές - αυτό το "πρότυπο" µπορεί να αποκαλύψει πώς το σύστηµα λειτουργεί. Εάν το σύστηµα είναι απλό, το πρότυπο µπορεί να αναπαρασταθεί και να λυθεί αναλυτικά. Έτσι µια απλή εξίσωση όπως η «ΑΠΟΣΤΑΣΗ = (ΡΥΘΜΟΣ * ΧΡΟΝΟΣ)», είναι µια αναλυτική λύση που αναπαριστά την απόσταση που διανύεται από ένα αντικείµενο µε σταθερό ρυθµό σε µια δεδοµένη χρονική περίοδο. Εντούτοις, τα προβλήµατα που µας ενδιαφέρουν στον πραγµατικό κόσµο είναι συνήθως πιο σύνθετα από αυτό. Στην πραγµατικότητα, µπορούν να είναι τόσο σύνθετα που ένα απλό µαθηµατικό πρότυπο δεν µπορεί να κατασκευαστεί για να τα αναπαραστήσει. Σε αυτήν την περίπτωση, η συµπεριφορά του συστήµατος πρέπει να υπολογιστεί µε µια προσοµοίωση. Ακριβής αναπαράσταση είναι σπάνια δυνατή µε ένα πρότυπο, το οποίο µας
περιορίζει σε προσεγγίσεις µε ένα βαθµό πιστότητας που είναι αποδεκτός για τους σκοπούς της µελέτης. Τα πρότυπα έχουν κατασκευαστεί σχεδόν για κάθε διανοητό σύστηµα, για να συµπεριλάβουν τα εργοστάσια, τις επικοινωνίες και τα δίκτυα υπολογιστών, τα ολοκληρωµένα κυκλώµατα, τα συστήµατα εθνικών οδών, τη δυναµική της πτήσης, τις εθνικές οικονοµίες, τις κοινωνικές αλληλεπιδράσεις και τους φανταστικούς κόσµους. Σε κάθε ένα από αυτά τα περιβάλλοντα, ένα πρότυπο του συστήµατος έχει αποδειχθεί οικονοµικώς πιο αποδοτικό, λιγότερο επικίνδυνο, γρηγορότερο, ή πρακτικότερο από πειραµατισµούς µε το πραγµατικό σύστηµα. Για παράδειγµα, µια επιχείρηση µπορεί να ενδιαφέρεται για την οικοδόµηση ενός νέου εργοστασίου για να αντικαταστήσει ένα παλαιό, αλλά δεν είναι σίγουρη εάν η αυξανόµενη παραγωγικότητα θα δικαιολογήσει την επένδυση. Σε αυτήν την περίπτωση, η προσοµοίωση θα χρησιµοποιούταν για να αξιολογήσει ένα πρότυπο του νέου εργοστασίου. Το πρότυπο αυτό, θα περιέγραφε το διάστηµα πατωµάτων που απαιτούνται, τον αριθµό µηχανών, τον αριθµό υπαλλήλων, την τοποθέτηση του εξοπλισµού, την παραγωγική ικανότητα κάθε µηχανής, και τον χρόνο αναµονής µεταξύ των µηχανών. Οι πειραµατισµοί µε την προσοµοίωση θα αξιολογούσαν έπειτα το σύστηµα και θα παρείχαν µια εκτίµηση της παραγωγικής ικανότητας και των δαπανών του νέου εργοστασίου. Αυτό το είδος πληροφοριών είναι ανεκτίµητο στη λήψη των αποφάσεων χωρίς να πρέπει να χτιστεί ένα πραγµατικό εργοστάσιο για να φθάσουµε σε µια απάντηση. Συνοψίζοντας, η προσοµοίωση επιτρέπει την ανάλυση των δυνατοτήτων του συστήµατος, της χωρητικότητάς του και της συµπεριφοράς του χωρίς απαίτηση κατασκευής του πραγµατικού συστήµατος ή πειραµατισµού µε αυτό. εδοµένου ότι είναι εξαιρετικά ακριβό να πειραµατιστούµε µε ένα ολόκληρο εργοστάσιο για να καθορίσουµε την καλύτερη διαµόρφωσή του, µια προσοµοίωση του εργοστασίου µπορεί να είναι εξαιρετικά πολύτιµη. Υπάρχουν επίσης συστήµατα, όπως οι πυρηνικές αντιδράσεις και πολεµικές διενέξεις, οι οποίες είναι πάρα πολύ επικίνδυνες για να πραγµατοποιηθούν χάριν της ανάλυσης, αλλά που µπορούν να αναλυθούν ωφέλιµα µέσω της προσοµοίωσης. 7
8 1.3 Ιστορία Η προσοµοίωση µε υπολογιστές αναπτύχθηκε µε την ταχεία ανάπτυξη του υπολογιστή, µετά από την πρώτη µεγάλης κλίµακας επέκτασή του κατά τη διάρκεια του προγράµµατος Manhattan, κατά τη διάρκεια του δευτέρου παγκοσµίου πολέµου, για να αναπαραστήσει τη διαδικασία της πυρηνικής έκρηξης. Ήταν µια προσοµοίωση µε 12 σφαίρες που χρησιµοποιούσαν έναν αλγόριθµο Monte Carlo. Ένας από τους πρωτοπόρους των σκέψεων για προσοµοίωση συστηµάτων, ήταν o John von Neumann. Στα τέλη του 1940, συνέλαβε την ιδέα πειραµατισµού µε πολλαπλές επαναλήψεις ενός προτύπου, συγκεντρώνοντας µε τον τρόπο αυτό στατιστικά στοιχεία και παράγοντας συµπεριφορές του πραγµατικού συστήµατος βασισµένες σε αυτό το πρότυπο. Αυτό έγινε γνωστό ως µέθοδος Monte Carlo, λόγω της χρήσης τυχαία επιλεγµένων µεταβλητών, για να αναπαραστήσει τις συµπεριφορές που δεν θα µπορούσαν να διαµορφωθούν ακριβώς, αλλά θα µπορούσαν να διαµορφωθούν στατιστικά. Ο John von Neumann χρησιµοποίησε αυτήν την µέθοδο για να µελετήσει τις τυχαίες ενέργειες των νετρονίων και την αποτελεσµατικότητα των αποστολών βοµβαρδισµού αεροσκαφών. Τέτοιες µεθόδους χρησιµοποιήσαµε αρχικά στη βιοµηχανία για να καθοριστεί η µέγιστη πιθανή παραγωγικότητα των εργοστασίων. Σκέψεις για προσοµοιώσεις διακριτών γεγονότων (Discrete Event Simulations - DES) αναπτύχθηκαν προς το τέλος της δεκαετίας του '50. Η πρώτη ιδιαίτερη γλώσσα για το DES αναπτύχθηκε στη General Electric από τους K.D. Tocher και D.G. Owen. Το General Simulation Program (GSP) δηµιουργήθηκε για να µελετήσει τα προβλήµατα κατασκευής στη General Electric και έγινε διαθέσιµο και για τον υπόλοιπο κόσµο στη δεύτερη ιεθνή ιάσκεψη για την έρευνα διαδικασιών(second International Conference on Operations Research). Η προσοµοίωση µε υπολογιστές χρησιµοποιείται συχνά ως συµπλήρωµα, ή αντικατάσταση για την αναπαράσταση
συστηµάτων, στα οποία απλές κλειστού τύπου αναλυτικές λύσεις δεν είναι δυνατές. Υπάρχουν πολλοί διαφορετικοί τύποι προσοµοιώσεων µε υπολογιστές. Το κοινό χαρακτηριστικό γνώρισµα που όλοι µοιράζονται, είναι η προσπάθεια να παραχθεί ένα δείγµα των αντιπροσωπευτικών σεναρίων για ένα πρότυπο, στο οποίο µια πλήρης απαρίθµηση όλων των πιθανών καταστάσεων του προτύπου θα ήταν απαγορευτική ή αδύνατη. Τα πρότυπα υπολογιστών χρησιµοποιήθηκαν αρχικά ως συµπλήρωµα για άλλα επιχειρήµατα, αλλά η χρήση τους έγινε αργότερα µάλλον διαδεδοµένη. Ο φυσικός Richard Feynman, δεν υποστήριξε ποτέ τέτοια πρότυπα και τα αποκάλεσε «ασθένεια». 9 1.4 Ταξινόµηση Μοντέλων Προσοµοίωσης Τα µοντέλα προσοµοίωσης µπορούµε να τα ταξινοµήσουµε στις παρακάτω κατηγορίες: Στατικά ή υναµικά Μοντέλα Προσοµοίωσης: Ένα στατικό (static) µοντέλο προσοµοίωσης, αναπαριστά ένα σύστηµα σε µία συγκεκριµένη χρονική στιγµή, ή αναπαριστά ένα σύστηµα στο οποίο ο χρόνος δεν έχει σηµασία, όπως για παράδειγµα ο υπολογισµός ενός ορισµένου ολοκληρώµατος µε Monte Carlo προσοµοίωση. Αντίθετα, ένα δυναµικό (dynamic) µοντέλο προσοµοίωσης αναπαριστά ένα σύστηµα, όπως αυτό εξελίσσεται µε την πάροδο του χρόνου. Ντετερµινιστικά ή Στοχαστικά Μοντέλα Προσοµοίωσης: Αν ένα µοντέλο προσοµοίωσης δεν περιλαµβάνει τυχαία (probabilistic ή random) στοιχεία ονοµάζεται ντετερµινιστικό (deterministic). Για παράδειγµα, ένα πολύπλοκο σύστηµα διαφορικών εξισώσεων που περιγράφει µία χηµική αντίδραση, µπορεί να είναι ένα τέτοιο µοντέλο. Στα ντετερµινιστικά µοντέλα, η έξοδος είναι καθορισµένη, µε δεδοµένο το σύνολο των
ποσοτήτων και σχέσεων εισόδου του µοντέλου. Όµως, πολλά συστήµατα πρέπει να µοντελοποιηθούν έχοντας τουλάχιστον µερικά τυχαία στοιχεία εισόδου και για αυτό ονοµάζονται στοχαστικά (stochastic) µοντέλα προσοµοίωσης. Τα περισσότερα υπολογιστικά συστήµατα, που βασίζονται στα συστήµατα αναµονής (queuing systems), χρησιµοποιούν στοχαστικά µοντέλα προσοµοίωσης. Συνεχή ή ιακριτά Μοντέλα Προσοµοίωσης: Σε ένα διακριτό (discrete) µοντέλο προσοµοιώνεται ένα σύστηµα στο οποίο οι µεταβλητές κατάστασης µεταβάλλονται στιγµιαία σε διακριτές χρονικές στιγµές. Αντίθετα σε ένα συνεχές µοντέλο προσοµοίωσης οι µεταβλητές κατάστασης µεταβάλλονται συνεχώς µε το χρόνο. 10 Τα µοντέλα προσοµοίωσης που θα εξετάσουµε θα είναι διακριτά, δυναµικά και στοχαστικά και θα τα ονοµάζουµε µοντέλα προσοµοίωσης διακεκριµένων γεγονότων (discrete-event simulation models). 1.5 Πλεονεκτήµατα και µειονεκτήµατα της Προσοµοίωσης Η προσοµοίωση χρησιµοποιείται ευρέως και θεωρείται πολύ δηµοφιλής µέθοδος για τη µελέτη σύνθετων συστηµάτων. Μερικά από τα πλεονεκτήµατά της είναι: Οι What if ερωτήσεις µπορούν να απαντηθούν. Αυτό είναι ιδιαίτερο χρήσιµο στο σχεδιασµό των νέων συστηµάτων. Είναι µία µέθοδος οικονοµική, αφού είναι δυνατό να υλοποιηθεί πλέον σε µικρούς υπολογιστές µε τη χρήση γλωσσών προγραµµατισµού γενικού σκοπού όπως η C, C++, Pascal κτλ.
Τα περισσότερα σύνθετα συστήµατα µε στοχαστικά στοιχεία δεν µπορούν να υπολογιστούν αναλυτικά. Έτσι συχνά η προσοµοίωση είναι η µόνη δυνατή µέθοδος µελέτης. Με την προσοµοίωση, πειραµατιζόµενοι µε το µοντέλο µπορούµε να έχουµε καλύτερο έλεγχο από ότι θα ήταν δυνατό αν πειραµατιζόµασταν µε το ίδιο σύστηµα. Η προσοµοίωση µας επιτρέπει να µελετήσουµε σε ελάχιστο χρόνο ένα µεγάλης χρονικής διάρκειας διάστηµα λειτουργίας ενός συστήµατος. Η προσοµοίωση µας επιτρέπει να υπολογίσουµε την απόδοση ενός υπάρχοντος συστήµατος κάτω από προτεινόµενες συνθήκες λειτουργίας. Εναλλακτικοί σχεδιασµοί ενός συστήµατος (ή εναλλακτικοί τρόποι λειτουργίας ενός συστήµατος) µπορούν να συγκριθούν µέσω της προσοµοίωσης για να βρεθεί ποιος τρόπος ανταποκρίνεται καλύτερα στις προκαθορισµένες απαιτήσεις. 11 Παρόλα αυτά η προσοµοίωση έχει και τα µειονεκτήµατά της. Μερικά από αυτά είναι: Τα µοντέλα προσοµοίωσης είναι συνήθως ακριβά και απαιτείται πολύς χρόνος και κόπος για την ανάπτυξή τους. Κάθε εκτέλεση (τρέξιµο-run) ενός στοχαστικού µοντέλου προσοµοίωσης παράγει µόνο εκτιµήσεις (estimates) των πραγµατικών χαρακτηριστικών ενός µοντέλου για ένα συγκεκριµένο σύνολο παραµέτρων εισόδου. Συνεπώς απαιτείται να µελετηθούν αρκετές ανεξάρτητες εκτελέσεις του µοντέλου για κάθε σύνολο παραµέτρων εισόδου. Αντίθετα, ένα αναλυτικό µοντέλο, εφόσον είναι το κατάλληλο, µπορεί συχνά να παράγει εύκολα τα ακριβή πραγµατικά χαρακτηριστικά του µοντέλου αυτού για διάφορα σύνολα παραµέτρων εισόδου.
12 Εάν ένα µοντέλο δεν παριστάνει σωστά το προς µελέτη σύστηµα, τότε τα αποτελέσµατα της προσοµοίωσης δεν θα δώσουν σωστές πληροφορίες για το πραγµατικό σύστηµα. Τα αποτελέσµατα της προσοµοίωσης είναι λιγότερο ακριβή από εκείνα των αναλυτικών λύσεων.
13 1.6 Βήµατα µιας µελέτης Προσοµοίωσης ΚΑΘΟΡΙΣΜΟΣ ΣΤΟΧΩΝ & ΑΝΑΓΚΩΝ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΚΑΘΟΡΙΣΜΟΣ ΤΗΣ ΓΕΝΙΚΗΣ Ι ΕΑΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΜΗ ΕΓΚΥΡΟΤΗΤΑ ΣΥΛΛΟΓΗ Ε ΟΜΕΝΩΝ ΕΙΣΟ ΟΥ ΙΑΜΟΡΦΩΣΗ & ΜΕΤΑΦΡΑΣΗ ΤΟΥ ΜΟΝΤΕΛΟΥ ΜΗ ΕΠΑΛΗΘΕΥΣΗ ΕΠΑΛΗΘΕΥΣΗ ΕΓΚΥΡΟΤΗΤΑ ΕΠΙΚΥΡΩΣΗ ΠΕΙΡΑΜΑΤΙΚΗ ΣΧΕ ΙΑΣΗ ΕΚΤΕΛΕΣΗ ΠΡΟΣΟΜΟΙΩΣΗΣ ΣΥΛΛΟΓΗ Ε ΟΜΕΝΩΝ ΕΞΟ ΟΥ ΑΝΑΛΥΣΗ Ε ΟΜΕΝΩΝ ΑΝΑΦΟΡΑ & ΤΕΚΜΗΡΙΩΣΗ ΥΛΟΠΟΙΗΣΗ & ΕΠΕΚΤΑΣΗ ΤΟΥ ΜΟΝΤΕΛΟΥ
14 Η δηµιουργία και η λειτουργία µιας προσοµοίωσης ήταν κάποτε µια µαύρη σελίδα την οποία µόνο οι πεπειραµένοι επαγγελµατίες θα µπορούσαν να κατανοήσουν και να χρησιµοποιήσουν. Εντούτοις, κατά τη διάρκεια των τελευταίων δεκαετιών, µια καθορισµένη διαδικασία έχει εξελιχθεί για την ανάπτυξη, την επικύρωση, τη λειτουργία, και την ανάλυση των αποτελεσµάτων των προσοµοιώσεων. Σε αυτό το τµήµα θα περιγράψουµε τη διαδικασία ανάπτυξης µιας προσοµοίωσης, όπως αυτή εµφανίζεται στο παραπάνω διάγραµµα. Καθορισµός στόχων και αναγκών του ροβλήµατος. Το πρώτο βήµα στην ανάπτυξη µιας προσοµοίωσης είναι να καθοριστεί ρητά το πρόβληµα που πρέπει να εξεταστεί από το πρότυπο. Οι στόχοι και οι ανάγκες του προγράµµατος πρέπει να εκφραστούν µαζί µε την απαραίτητη ακρίβεια των αποτελεσµάτων. Τα όρια πρέπει να καθοριστούν µεταξύ του προβλήµατος που µας ενδιαφέρει και των συνθηκών που επικρατούν στο περιβάλλον (δηλαδή καθορίζουµε το εύρος του συστήµατος). Οι διεπαφές πρέπει να καθοριστούν µε τέτοιο τρόπο ώστε να περάσουµε τα όρια αυτά, για να επιτύχουµε τη διαλειτουργικότητα µε τα εξωτερικά συστήµατα. Ένα πρότυπο, δεν µπορεί να χτιστεί βασισµένο σε ασαφείς ορισµούς αναµένοντας τα αποτελέσµατα. Καθορισµός της γενικής ιδέας του ροβλήµατος. Μόλις καθοριστεί το πρόβληµα, ένα ή περισσότερα κατάλληλα εννοιολογικά πρότυπα µπορούν να καθοριστούν. Αυτά περιλαµβάνουν τους αλγορίθµους που χρησιµοποιούνται για να περιγράψουν το σύστηµα, τα δεδοµένα εισόδου που απαιτούνται, και τα αποτελέσµατα που παράγονται. Οι υποθέσεις που γίνονται για το σύστηµα σε αυτή τη φάση είναι τεκµηριωµένες, µαζί µε τις πιθανές επιδράσεις αυτών των υποθέσεων στα αποτελέσµατα ή την ακρίβεια και ορθότητα της προσοµοίωσης. Περιορισµοί βασισµένοι στο πρότυπο, στοιχεία, και υποθέσεις καθορίζονται σαφώς έτσι ώστε να µπορούν να καθοριστούν οι κατάλληλες χρήσεις της
προσοµοίωσης. Το εννοιολογικό πρότυπο περιλαµβάνει µια περιγραφή του χρονικού διαστήµατος, του αριθµού προσωπικού, και του εξοπλισµού που θα απαιτηθούν για να παραχθεί και να λειτουργήσει το πρότυπο. Όλα τα πιθανά πρότυπα συγκρίνονται έως ότου καθοριστεί µια ενιαία λύση. Η λύση αυτή θα καλύπτει τους στόχους και τις απαιτήσεις του προβλήµατος και για αυτή οι αλγόριθµοι θα µπορούν να κατασκευαστούν και τα δεδοµένα εισόδου να αποκτηθούν. Συλλογή δεδοµένων εισόδου. Μόλις καθοριστούν οι συνθήκες τις οποίες πρέπει να καλύπτει η λύση, τα στοιχεία που απαιτούνται για να τη λειτουργία και τον προσδιορισµό του προτύπου πρέπει να συλλεχθούν. Αυτή η διαδικασία περιλαµβάνει τις πληροφορίες που θα χρησιµεύσουν ως παράµετροι εισόδου, θα βοηθήσουν στην ανάπτυξη των αλγορίθµων και θα χρησιµοποιηθούν για να αξιολογήσουν την απόδοση των εκτελέσεων της προσοµοίωσης. Αυτά τα δεδοµένα περιλαµβάνουν τις γνωστές συµπεριφορές των συστηµάτων εργασίας και τις πληροφορίες για τις στατιστικές κατανοµές των τυχαία επιλεγµένων µεταβλητών που θα χρησιµοποιηθούν. Η συλλογή των σωστών δεδοµένων εισόδου είναι µια από τις δυσκολότερες φάσεις στη διαδικασία της προσοµοίωσης, και η πιο επιρρεπής σε λάθη και κακή εφαρµογή. ιαµόρφωση του µοντέλου. Το πρότυπο προσοµοίωσης κατασκευάζεται βασισµένο στη λύση που καθορίστηκε και τα στοιχεία που συλλέχθηκαν. Οι µαθηµατικές και λογικές περιγραφές του πραγµατικού συστήµατος κωδικοποιούνται σε µια µορφή που µπορεί να εκτελεσθεί από έναν υπολογιστή. Η δηµιουργία µιας προσοµοίωσης µε υπολογιστή, όπως µε οποιοδήποτε άλλο προϊόν λογισµικού, πρέπει να κατευθυνθεί από τις αρχές της τεχνολογίας λογισµικού. Ε αλήθευση, εγκυρότητα και ε ικύρωση του ροτύ ου. Η επαλήθευση, η εγκυρότητα και η επικύρωση, είναι µια ουσιαστική φάση στην εξασφάλιση ότι οι αλγόριθµοι του προτύπου, τα δεδοµένα εισόδου, και οι υποθέσεις σχεδίασης είναι σωστοί και λύνουν το 15
πρόβληµα που προσδιορίστηκε στην αρχή της διαδικασίας. εδοµένου ότι ένα πρότυπο προσοµοίωσης και τα στοιχεία του είναι η κωδικοποίηση εννοιών που είναι δύσκολο να καθοριστούν πλήρως, είναι εύκολο να δηµιουργηθεί ένα πρότυπο που είτε δεν είναι σωστό είτε λύνει ένα πρόβληµα διαφορετικό από αυτό που προσδιορίστηκε. Η διαδικασία αυτή έχει ως σκοπό να αναγνωρίσει αυτά τα προβλήµατα προτού να τεθεί το πρότυπο σε λειτουργία. Για τους σκοπούς αυτούς, η διαδικασία ανάπτυξης της προσοµοίωσης διαιρείται σε ένα πρότυπο συνθηκών του περιβάλλοντος, ένα εννοιολογικό πρότυπο προβλήµατος και ένα πρότυπο λογισµικού µε καθορισµένες µεταβάσεις και ποιοτικές αξιολογήσεις µεταξύ αυτών των σταδίων. Η εγκυρότητα είναι η διαδικασία που καθορίζει αν το εννοιολογικό πρότυπο απεικονίζει τις πτυχές των συνθηκών του περιβάλλοντος του προβλήµατος που πρέπει να εξεταστούν και αν οι απαιτήσεις της µελέτης µπορούν να καλυφθούν. Η εγκυρότητα χρησιµοποιείται επίσης για να καθορίσει αν οι διαδικασίες του τελικού προτύπου λογισµικού είναι σύµφωνες µε τον πραγµατικό κόσµο, συνήθως µέσω του πειραµατισµού και της σύγκρισης µε το σύνολο των γνωστών δεδοµένων. Η επαλήθευση είναι η διαδικασία που καθορίζει αν το πρότυπο λογισµικού απεικονίζει ακριβώς το εννοιολογικό πρότυπο. Η επικύρωση είναι η επίσηµη αποδοχή του προτύπου λογισµικού για ένα συγκεκριµένο σκοπό. Ένα πρότυπο λογισµικού που αναγνωρίζεται για έναν σκοπό µπορεί να µην είναι αποδεκτό για άλλο. 16 Πειραµατική σχεδίαση. Αυτή η φάση προσδιορίζει τις παραγωγικότερες και ακριβέστερες µεθόδους για την εκτέλεση της προσοµοίωσης, για να παράγει τις επιθυµητές απαντήσεις. Οι στατιστικές τεχνικές µπορούν να χρησιµοποιηθούν για το σχεδιασµό πειραµάτων που παράγουν τα ακριβέστερα δεδοµένα µε τον µικρότερο αριθµό επαναληπτικών εκτελέσεων της προσοµοίωσης. Όταν οι εκτελέσεις της προσοµοίωσης είναι ακριβές και δύσκολες στο να σχεδιαστούν, το πειραµατικό σχέδιο µπορεί να
εξασφαλίσει απαντήσεις µε χαµηλότερο κόστος και µε πιο σύντοµα προγράµµατα. Εκτέλεση ροσοµοίωσης. Αυτή είναι η πραγµατική εκτέλεση του σχεδιασµένου, κατασκευασµένου, και επικυρωµένου προτύπου, σύµφωνα µε το πειραµατικό σχέδιο που δηµιουργήθηκε. Οι εκτελέσεις της προσοµοίωσης παράγουν τα δεδοµένα εξόδου που απαιτούνται για να απαντήσουν στο πρόβληµα που προσδιορίστηκε αρχικά. Στην περίπτωση των προτύπων που δηµιουργήθηκαν µε τη µέθοδο Monte Carlo, πολλές εκατοντάδες ή χιλιάδες επαναλήψεις του προγράµµατος µπορούν να απαιτηθούν για να φθάσουν στα στατιστικά αξιόπιστα αποτελέσµατα. 17 Συλλογή δεδοµένων εξόδου. Ταυτόχρονα µε την εκτέλεση του προτύπου, δεδοµένα εξόδου συλλέγονται, οργανώνονται και αποθηκεύονται. Αυτή η φάση αντιµετωπίζεται κάποιες φορές ως αναπόσπαστο τµήµα του προτύπου, αλλά πρέπει να χωριστεί ευδιάκριτα, δεδοµένου ότι είναι δυνατό να αλλαχθούν τα δεδοµένα που συλλέγονται χωρίς αλλαγή των αλγορίθµων ή του σχεδίου του προτύπου. Ανάλυση των δεδοµένων. Τα δεδοµένα που συλλέγονται κατά τη διάρκεια της εκτέλεσης µιας προσοµοίωσης µπορούν να είναι διαφορετικά και κατανεµηµένα. Λεπτοµερείς αναλύσεις πρέπει να παρουσιαστούν για να εξαχθούν οι µακροπρόθεσµες τάσεις και για να ποσοτικοποιήσουν τις απαντήσεις στις καθοδηγητικές ερωτήσεις που παρακίνησαν την κατασκευή της προσοµοίωσης. Η ανάλυση µπορεί να παράγει πληροφορίες συνοπτικά µε µορφή πίνακα, µε γραφική µορφή, µε µορφή χάρτη, µε τη µορφή δυναµικής κίνησης και µε τη µορφή κειµένου. Οι σύγχρονες διεπαφές χρήστη έχουν ενισχύσει πολύ αυτήν την φάση µε την εµφάνιση των στοιχείων σε µορφές οι οποίες µπορούν να γίνουν εύκολα κατανοητές από τα διαφορετικά ακροατήρια. Αναφορά και τεκµηρίωση. Τα αποτελέσµατα της περιόδου µελέτης ή χρήσης της προσοµοίωσης πρέπει να τεκµηριωθούν και να γίνουν γνωστά στα ενδιαφερόµενα συµβαλλόµενα µέρη. Αυτά τα
συµβαλλόµενα µέρη προσδιορίζουν το βαθµό στον οποίο η προσοµοίωση έχει απαντήσει σε συγκεκριµένες ερωτήσεις και ελέγχει για πιθανές µελλοντικές βελτιώσεις. Υλο οίηση και ε έκταση του µοντέλου. Τα πρότυπα προσοµοίωσης είναι ακριβά και είναι δύσκολο να δηµιουργηθούν. Κατά συνέπεια, µόλις δηµιουργηθεί ένα πρότυπο, θα τροποποιηθεί για να χρησιµοποιηθεί σε πολλά σχετικά προγράµµατα. Οι νέες απαιτήσεις θα ενσωµατωθούν, οι νέοι χρήστες θα το υιοθετήσουν, και ολόκληρη η διαδικασία ανάπτυξης θα αναπτυχθεί πολλές φορές. 18 1.7 Περιοχές Εφαρµογών Η χρήση της προσοµοίωσης βρίσκει εφαρµογή σε πολλούς τοµείς. Ενδεικτικά αναφέρουµε τους πιο σηµαντικούς τοµείς: 1. Φυσική ροσοµοίωση και ροσοµοίωση µε αλληλε ίδραση. Η φυσική προσοµοίωση αναφέρεται στην προσοµοίωση στην οποία τα φυσικά αντικείµενα υποκαθιστούν την πραγµατικότητα. Αυτά τα φυσικά αντικείµενα επιλέγονται συχνά επειδή είναι µικρότερα ή φθηνότερα, από το πραγµατικό αντικείµενο ή σύστηµα. Η προσοµοίωση µε αλληλε ίδραση είναι ένα ειδικό είδος φυσικής προσοµοίωσης και περιλαµβάνει τους ανθρώπους που συµµετέχουν, όπως το πρότυπο που χρησιµοποιείται για έναν προσοµοιωτή πτήσης. 1.1. Χρήση ροσοµοίωσης για λόγους κατάρτισης. Η προσοµοίωση χρησιµοποιείται συχνά για την κατάρτιση του πολιτικού και στρατιωτικού προσωπικού. Στην περίπτωση αυτή χρησιµοποιείται προσοµοίωση όταν είναι απαγορευτικά ακριβό ή απλά πάρα πολύ επικίνδυνο να επιτραπεί στους εκπαιδευόµενους να χρησιµοποιήσουν τον πραγµατικό εξοπλισµό στην
πραγµατικότητα. Στις περιπτώσεις αυτές, οι εκπαιδευόµενοι αφιερώνουν το χρόνο τους στην εξάσκησή τους σε ένα «ασφαλές» εικονικό περιβάλλον. Στο περιβάλλον αυτό επιτρέπονται τα όποια λάθη κάνουν οι εκπαιδευόµενοι, µε σκοπό να µάθουν µέσα από αυτά και να µην τα επαναλάβουν σε περίπτωση χρήσης του πραγµατικού συστήµατος. Οι προσοµοίωσεις για λόγους κατάρτισης ανήκουν σε µια από τέσσερις κατηγορίες: 1.1.1. "live" προσοµοίωση (όπου πραγµατικοί άνθρωποι χρησιµοποιούν «οµοίωµα» του εξοπλισµού στον πραγµατικό κόσµο), 1.1.2. "virtual" προσοµοίωση (όπου πραγµατικοί άνθρωποι χρησιµοποιούν τον προσοµοιωµένο εξοπλισµό σε ένα εικονικό περιβάλλον), 1.1.3. "constructive" προσοµοίωση (όπου προσοµοιωµένοι άνθρωποι χρησιµοποιούν τον προσοµοιωµένο εξοπλισµό σε ένα εικονικό περιβάλλον). Η constructive προσοµοίωση αναφέρεται συχνά ως "wargaming" δεδοµένου ότι χρησιµοποιείται για τη δηµιουργία πολεµικών παιχνιδιών, στα οποία οι παίκτες δίνουν διαταγές στους στρατιώτες, που κινούνται γύρω από έναν πίνακα και ελέγχουν τη χρήση του εξοπλισµού τους. 1.1.4. "Role play Simulation" προσοµοίωση,(όπου οι πραγµατικοί άνθρωποι επιλέγουν µια προσωπικότητα και αναλόγως µε την επιλογή τους αναλαµβάνουν να διεκπεραιώσουν µια εικονική εργασία). 1.2. Προσοµοιωτής όλεων. Ο προσοµοιωτής πόλεων είναι ένα παιχνίδι µε το οποίο µπορούµε να προσοµοιώσουµε µια πόλη. 1.3. Προσοµοιωτής τήσης. Ένας προσοµοιωτής πτήσης χρησιµοποιείται για να εκπαιδεύσει τους πιλότους στο έδαφος. Επιτρέπει σε έναν πιλότο ακόµα και να συντρίψει τα προσοµοιωµένα «αεροσκάφη του» χωρίς να πάθει κακό. Είναι πολύ χρήσιµο για να µελετήσουν τις πτήσεις µε τα αεροσκάφη πριν τα χρησιµοποιήσουν σε εξαιρετικά επικίνδυνες καταστάσεις, όπως οι αποβάσεις χωρίς µηχανές, ή 19
να ελέγξουν τις ηλεκτρικές ή υδραυλικές αποτυχίες. Οι πιο προηγµένοι προσοµοιωτές έχουν οπτικά συστήµατα υψηλής πιστότητας και υδραυλικά συστήµατα κινήσεων. Ο προσοµοιωτής είναι φτηνότερος από τη χρήση ενός πραγµατικού εκπαιδευτικού αεροσκάφους. 1.4. Προσοµοίωση και αιχνίδια. Πολλά τηλεοπτικά παιχνίδια είναι επίσης προσοµοιωτές που εφαρµόζονται ανέξοδα. Αυτοί ονοµάζονται συνήθως «sim - games». Τέτοια παιχνίδια µπορούν να προσοµοιώσουν διάφορες πτυχές της πραγµατικότητας. 1.5. Προσοµοίωση στον τοµέα της εφαρµοσµένης µηχανικής. Η προσοµοίωση είναι ένα σηµαντικό εργαλείο όταν ασχολούµαστε µε συστήµατα της εφαρµοσµένης µηχανικής. Για παράδειγµα χρησιµοποιούνται στην ηλεκτρονική, σε γραµµές καθυστέρησης για µπορούν να προσοµοιώσουν την καθυστέρηση διάδοσης και µετατόπιση φάσης που µπορεί να προκληθεί από µία πραγµατική γραµµή µετάδοσης. Ένας προσοµοιωτής µπορεί να αναπαραστήσει µόνο µερικές από τις διαδικασίες και τις λειτουργίες της µονάδας που αναπαριστά. Οι περισσότερες προσοµοιώσεις στον τοµέα της εφαρµοσµένης µηχανικής συνεπάγονται µαθηµατική αναπαράσταση και έρευνα µε υπολογιστή. Υπάρχουν πολλές περιπτώσεις εντούτοις, όπου η µαθηµατική αναπαράσταση δεν είναι αξιόπιστη. 20 2. Προσοµοίωση µε υ ολογιστές. Η προσοµοίωση µε υπολογιστές, έχει γίνει ένα χρήσιµο µέρος αναπαράστασης πολλών φυσικών συστηµάτων µέσα στους τοµείς της φυσικής, χηµείας και βιολογίας, και ανθρώπινων συστηµάτων στους τοµείς της οικονοµίας και των κοινωνικών επιστηµών (υπολογιστική κοινωνιολογία) καθώς επίσης και στους τοµείς της εφαρµοσµένης µηχανικής, για να αποκτηθεί επίγνωση της λειτουργίας εκείνων των συστηµάτων. Ένα καλό παράδειγµα της χρησιµότητας των υπολογιστών που χρησιµοποιούνται για την προσοµοίωση, µπορεί να βρεθεί στον τοµέα προσοµοίωσης δικτύων κυκλοφοριακής κίνησης. Σε τέτοιου είδους προσοµοιώσεις, η συµπεριφορά τους
αλλάζει κάθε φορά σύµφωνα µε το σύνολο των αρχικών παραµέτρων που υπάρχουν στο περιβάλλον. 21 3. Προσοµοίωση στην ε ιστήµη της ληροφορικής. Στον προγραµµατισµό µε τη χρήση υπολογιστών, ένας προσοµοιωτής χρησιµοποιείται συχνά για να εκτελέσει ένα πρόγραµµα που πρέπει να τρέξει σε κάποιο τύπο υπολογιστή. Παραδείγµατος χάριν, οι προσοµοιωτές χρησιµοποιούνται συνήθως για να διορθώσουν ένα µικροπρόγραµµα. εδοµένου ότι η λειτουργία του υπολογιστή προσοµοιώνεται, όλες οι πληροφορίες για τη λειτουργία του υπολογιστή είναι άµεσα διαθέσιµες στον προγραµµατιστή και έτσι η ταχύτητα και η εκτέλεση της προσοµοίωσης µπορούν να ελεγχθούν για διαφορετικές συνθήκες 4. Προσοµοίωση στην εκ αίδευση. Οι προσοµοιώσεις στην εκπαίδευση είναι όπως οι προσοµοιώσεις για λόγους κατάρτισης. Εστιάζουν στους συγκεκριµένους στόχους. Στο παρελθόν, το βίντεο έχει χρησιµοποιηθεί για τους δασκάλους και τους εκπαιδευόµενους για παρατήρηση, λύση προβλήµατος και σε ρόλο παιχνιδιού. Εντούτοις, µια πιο πρόσφατη χρήση των προσοµοιώσεων στην εκπαίδευση περιλαµβάνει σύντοµα χρονογραφήµατα µε αφήγηση και σχεδιοκίνηση. Έχουν χρησιµοποιηθεί για να αξιολογήσουν τη γνώση, τις δεξιότητες επίλυσης προβλήµατος και τις διαθέσεις των παιδιών, των επαγγελµατιών και των δασκάλων. 1.8 Τι είναι το σύστηµα και το εριβάλλον του συστήµατος Για να µοντελοποιήσουµε ένα σύστηµα είναι απαραίτητο να καταλάβουµε τη «γενική ιδέα» του συστήµατος, δηλαδή τι είναι το σύστηµα, καθώς και τι περιλαµβάνει το σύστηµα αυτό (δηλαδή το µέγεθος του συστήµατος). Το σύστηµα ορίζεται ως ένα σύνολο αντικειµένων που συνδέονται µε µια αλληλεπίδραση ή
αλληλεξάρτηση προκειµένου να επιτευχθεί ένας συγκεκριµένος σκοπός. Εξωτερικές µεταβολές που επηρεάζουν το σύστηµα λέµε ότι επιδρούν στο περιβάλλον του συστήµατος. Στη µοντελοποίηση είναι αναγκαίο να ορίζουµε το εύρος του συστήµατος και του περιβάλλοντός του. Το εύρος αυτό κάθε φορά εξαρτάται από το σκοπό της διεργασίας. 22 1.9 Συστατικά ενός συστήµατος Για να γίνει κατανοητό και να αναλυθεί ένα σύστηµα είναι απαραίτητο να προηγηθεί ο καθορισµός κάποιων όρων. Μία οντότητα (entity) είναι ένα αντικείµενο του συστήµατος που προκαλεί ενδιαφέρον. Χαρακτηριστικό (attribute) ονοµάζεται µία ιδιότητα (τιµή δεδοµένων) µιας οντότητας. Μία δραστηριότητα (activity) αντιστοιχεί σε µια χρονική περίοδο συγκεκριµένου µήκους. Η συλλογή οντοτήτων που συνθέτουν ένα σύστηµα µιας εφαρµογής, µπορεί να αποτελέσει ένα υποσύνολο ενός µεγαλύτερου συστήµατος µιας άλλης εφαρµογής. Κατάσταση (state) ενός συστήµατος ορίζεται το σύνολο των µεταβλητών που απαιτούνται για να το περιγράψουν σε µια συγκεκριµένη χρονική στιγµή. Ένα γεγονός είναι µία στιγµιαία ενέργεια που µπορεί να αλλάξει την κατάσταση του συστήµατος. Ο όρος ενδογενής (endogenous) χρησιµοποιείται για να περιγράψει λειτουργίες και γεγονότα που συµβαίνουν µέσα σε ένα σύστηµα, ενώ µε τον όρο εξωγενή (exogenous) περιγράφονται λειτουργίες και γεγονότα από το περιβάλλον που επηρεάζουν το σύστηµα.
23 1.10 Μοντέλο ενός συστήµατος Μερικές φορές είναι ενδιαφέρον να µελετηθεί ένα σύστηµα, ώστε να µπορούν να γίνουν κατανοητές οι σχέσεις των συστατικών του ή να προβλεφθεί η απόδοσή του, αν ακολουθηθεί µια διαφορετική πολιτική λειτουργίας. Η µελέτη του ίδιου του συστήµατος πολλές φορές λόγω της πολυπλοκότητας του δεν είναι εφικτή. Ο πειραµατισµός µε ένα πραγµατικό σύστηµα µπορεί να είναι ανέφικτος, δαπανηρός ή να εµποδίζει την λειτουργία του παρόντος συστήµατος. Αυτό είναι προφανές, αφού τις περισσότερες φορές τα συστήµατα που µας ενδιαφέρουν δεν υπάρχουν στην πράξη. Εξαιτίας της αδυναµίας πειραµατισµού µε τα περισσότερα συστήµατα, οι αναλυτές συστήµατος συχνά χρησιµοποιούν ένα µοντέλο του συστήµατος για να εξάγουν συµπεράσµατα που αφορούν τη λειτουργία του συστήµατος. Ως µοντέλο ενός συστήµατος ορίζεται η αναπαράστασή του, που αναπτύχθηκε για να υπηρετήσει τους σκοπούς της µελέτης του. Για τις περισσότερες µελέτες είναι αρκετό να µελετήσουµε εκείνες τις πλευρές του συστήµατος οι οποίες επηρεάζονται από την πλοήγηση. Αυτές οι πλευρές στοιχειοθετούν το µοντέλο του συστήµατος που εξ ορισµού αποτελεί την απλοποίησή του. Το µοντέλο θα πρέπει να είναι αρκετά λεπτοµερές και έγκυρο ώστε να οδηγεί στη λήψη των ίδιων αποφάσεων ως προς το σύστηµα µε αυτές που θα λαµβάνονταν αν ήταν δυνατό να χρησιµοποιηθεί δοκιµαστικά το ίδιο σύστηµα. Ένα µοντέλο αναπαρίσταται µε τον ίδιο τρόπο όπως και το σύστηµα. ηλαδή αποτελείται από οντότητες, χαρακτηριστικά και δραστηριότητες. Πολλές φορές µπορεί να απαιτούνται περισσότερα από ένα διαφορετικά µοντέλα για το ίδιο σύστηµα.
24 ΚΕΦΑΛΑΙΟ 2 ΤΥΠΟΙ ΠΡΟΣΟΜΟΙΩΣΗΣ 2.1 Προσοµοίωση διακεκριµένων γεγονότων Η ροσοµοίωση διακεκριµένων γεγονότων (discrete-event simulation) είναι η µοντελοποίηση συστηµάτων στα οποία οι µεταβλητές κατάστασης µεταβάλλονται στιγµιαία σε διακεκριµένες χρονικές στιγµές. Τα µοντέλα προσοµοίωσης αναλύονται περισσότερο µε µαθηµατικές παρά µε αναλυτικές µεθόδους. Οι αναλυτικές µέθοδοι χρησιµοποιούν την αφαιρετική αιτιολόγηση των µαθηµατικών για να επιλύσουν µαθηµατικά µοντέλα. Στην περίπτωση των µοντέλων προσοµοίωσης που χρησιµοποιούν αριθµητικές µεθόδους, τα µοντέλα είναι προτιµότερο να εκτελεστούν παρά να επιλυθούν. Με τη διαδικασία αυτή δηµιουργείται µια τεχνητή ιστορία του συστήµατος βασισµένη στις αρχικές παραδοχές και στις παρατηρήσεις και η οποία αναλύεται για να καθοριστούν τα κατάλληλα µέτρα της απόδοσης του συστήµατος. Από τη στιγµή που τα µοντέλα προσοµοίωσης πραγµατικού χρόνου είναι µάλλον µεγάλα και η ποσότητα των δεδοµένων που αποθηκεύονται και επεξεργάζονται τεράστια, οι δοκιµές των µοντέλων γίνονται συνήθως µε τη βοήθεια υπολογιστή. Παρόλα αυτά, είναι δυνατό να οδηγηθεί ο µελετητής σε χρήσιµα συµπεράσµατα παρατηρώντας µικρά µοντέλα χωρίς να πρέπει να χρησιµοποιήσει υπολογιστή. Όλα τα µοντέλα προσοµοίωσης διακεκριµένων γεγονότων περιέχουν ορισµένους παράγοντες οι οποίοι είναι οργανωµένοι µε κάποια λογική για την εύκολη
κωδικοποίηση, για την εύρεση λαθών και για µελλοντικές µεταβολές του προγράµµατος του µοντέλου προσοµοίωσης. Πιο συγκεκριµένα, οι επόµενοι παράγοντες συναντώνται στα περισσότερα µοντέλα προσοµοίωσης διακεκριµένων γεγονότων: 25 Σύστηµα (system): Ένα σύνολο από οντότητες (π.χ. άνθρωποι, µηχανές κτλ) που αλληλεπιδρούν µεταξύ τους για την επίτευξη ενός ή περισσοτέρων στόχων. Μοντέλο (model): Μία αφηρηµένη αναπαράσταση ενός συστήµατος, που συνήθως περιλαµβάνει δοµικές, λογικές ή µαθηµατικές σχέσεις που περιγράφουν ένα σύστηµα µε όρους της κατάστασης του, των οντοτήτων του και των χαρακτηριστικών τους, των συνόλων, των διαδικασιών, των γεγονότων, των δραστηριοτήτων και των καθυστερήσεων. Κατάσταση συστήµατος (system state): Μια συλλογή µεταβλητών που περιλαµβάνει όλη την πληροφορία που είναι απαραίτητη για την περιγραφή του συστήµατος κάποια συγκεκριµένη χρονική στιγµή. Οντότητα (entity): Κάθε αντικείµενο ή συστατικό του συστήµατος που απαιτεί ξεχωριστή αναπαράσταση σε µοντέλο. Χαρακτηριστικά (attributes): Οι ιδιότητες µιας δεδοµένης οντότητας. Λίστα (list): Ένα σύνολο συσχετιζόµενων οντοτήτων, τοποθετηµένων σε µια λογική σειρά. Γεγονός (event): Ένα στιγµιαίο συµβάν που µπορεί να αλλάξει την κατάσταση του συστήµατος. Ειδο οίηση γεγονότος (event notice): Μία εγγραφή ενός γεγονότος που θα συµβεί σε κάποια χρονική στιγµή στο µέλλον. Περιλαµβάνει και τα δεδοµένα που χρειάζονται για την εκτέλεση του γεγονότος αυτού.
Λίστα γεγονότων (event list): Μία λίστα που περιλαµβάνει ειδοποιήσεις γεγονότων, διατεταγµένες ως προς τη χρονική στιγµή που θα συµβούν. Είναι επίσης γνωστή και ως FEL (Future Event List). ραστηριότητα (activity): Ένα χρονικό διάστηµα συγκεκριµένης διάρκειας που γίνεται αντιληπτό τη στιγµή που ξεκινά. Καθυστέρηση (delay): Ένα χρονικό διάστηµα ακαθόριστης διάρκειας, η οποία δεν είναι γνωστή µέχρι να τερµατιστεί. Ρολόι (clock): Μία µεταβλητή που αναπαριστά το χρόνο προσοµοίωσης. Στατιστικοί µετρητές (statistical counters): Μεταβλητές που χρησιµοποιούνται για την αποθήκευση στατιστικών µετρήσεων της απόδοσης του συστήµατος. Ρουτίνα αρχικο οίησης (initialization routine): Ένα υποπρόγραµµα που αρχικοποιεί το µοντέλο προσοµοίωσης τη χρονική στιγµή µηδέν. Ρουτίνα χρονισµού (timing routine): Είναι ένα υποπρόγραµµα το οποίο καθορίζει ποιο θα είναι το επόµενο γεγονός που θα συµβεί από τη λίστα γεγονότων και το οποίο στη συνέχεια προχωρά το ρολόι προσοµοίωσης για να δείξει το χρόνο που θα συµβεί το γεγονός αυτό. Ρουτίνα γεγονότος (event routine): Ένα υποπρόγραµµα που ενηµερώνει την κατάσταση συστήµατος όταν συµβεί ένα γεγονός συγκεκριµένου τύπου (υπάρχει µία τέτοια ρουτίνα για κάθε είδος γεγονότος). Ρουτίνες βιβλιοθήκης (library routines): Σύνολο υποπρογραµµάτων τα οποία χρησιµοποιούνται για την παραγωγή τυχαίων παρατηρήσεων από κατανοµές πιθανοτήτων που έχουν οριστεί σαν τµήµα του µοντέλου προσοµοίωσης. 26
Γεννήτρια αναφορών (report generator): Υποπρόγραµµα που υπολογίζει εκτιµήσεις των επιθυµητών µέτρων απόδοσης από τους στατιστικούς µετρητές και παράγει αναφορές όταν τελειώσει η προσοµοίωση. Κυρίως ρόγραµµα (main program): Το πρόγραµµα που καλεί τη ρουτίνα χρονισµού για να καθοριστεί το επόµενο γεγονός και στη συνέχεια µεταφέρει τον έλεγχο στην αντίστοιχη ρουτίνα γεγονότος, για να ενηµερωθεί κατάλληλα η κατάσταση του συστήµατος. Το κυρίως πρόγραµµα επίσης ελέγχει τη συνθήκη τέλους και καλεί τη γεννήτρια αναφορών. 27
28 ΕΝΑΡΞΗ Ρουτίνα αρχικοποίησης 1.Θέσε το ρολόι =0 2.Θέσε αρχικές συνθήκες στην κατάσταση του συστήµατος και στατιστικούς µετρητές 3.Θέσε αρχικές τιµές στη λίστα γεγονότων Κυρίως πρόγραµµα 0 0.Κάλεσε τη ρουτίνα Έναρξης Με επανάληψη τα 1 και 2: 1.Κάλεσε τη ρουτίνα χρόνου 2.Κάλεσε τη ρουτίνα γεγονότος i 1 i Ρουτίνα χρονισµού 1.Καθόρισε τον τύπο του επόµενου γεγονότος, π.χ. i 2.Προχώρησε το ρολόι Ρουτίνα γεγονότος i 1.Ενηµέρωσε την κατάσταση του συστήµατος 2.Ενηµέρωσε τους στατιστικούς µετρητές 3. ηµιούργησε µελλοντικά γεγονότα και πρόσθεσέ τα στη λίστα γεγονότων Ρουτίνες βιβλιοθήκης ηµιούργησε τυχαίες variates Τέλος Προσοµοίωσης OXI ΝΑΙ Γεννήτρια αναφορών 1.Να υπολογισθούν οι εκτιµήτριες που ενδιαφέρουν 2.Να γραφούν τα αποτελέσµατα ΤΕΛΟΣ ΣΧΗΜΑ 2.1: Μέθοδος «να προχωρήσει ο χρόνος στο επόµενο γεγονός». [14]
Η προσοµοίωση ξεκινά τη χρονική στιγµή µηδέν οπότε το κυρίως πρόγραµµα καλεί τη ρουτίνα αρχικοποίησης. Στη συνέχεια ο έλεγχος επιστρέφει στο κυρίως πρόγραµµα που καλεί τη ρουτίνα χρονισµού για τον καθορισµό του επόµενου γεγονότος. Έστω ότι πρόκειται να συµβεί γεγονός τύπου i, τότε το ρολόι προχωρά στη χρονική στιγµή που θα συµβεί το γεγονός i και ο έλεγχος επιστρέφει στο κυρίως πρόγραµµα. Στη συνέχεια καλείται η ρουτίνα γεγονότος i και µετά το τέλος της εκτέλεσης της, πραγµατοποιείται ένας έλεγχος ώστε να αποφασιστεί αν πρέπει να σταµατήσει η προσοµοίωση. Αν η απόφαση είναι καταφατική, τότε καλείται η γεννήτρια αναφορών. Αν όχι, ο έλεγχος επιστρέφεται στο κυρίως πρόγραµµα. Ο µηχανισµός για την πάροδο του χρόνου προσοµοίωσης που εγγυάται ότι όλα τα γεγονότα θα συµβούν µε την κατάλληλη σειρά ως προς το χρόνο, βασίζεται στη λίστα γεγονότων. Η δροµολόγηση ενός µελλοντικού γεγονότος σηµαίνει ότι από τη στιγµή που ξεκινά µια λειτουργία, η διάρκειά της, υπολογίζεται µε βάση κάποια στατιστική κατανοµή και το γεγονός τέλους της, τοποθετείται στη λίστα γεγονότων. Στο πραγµατικό σύστηµα όµως, συµβαίνουν κάποια γεγονότα που δεν είναι δυνατόν να προβλεφθούν, τα οποία µεταβάλλουν την κατάσταση του συστήµατος. Αυτά τα γεγονότα στην προσοµοίωση αντιστοιχούν µε το τέλος κάποιας λειτουργίας. Πιο συγκεκριµένα το ρολόι προσοµοίωσης παίρνει αρχική τιµή µηδέν και υπολογίζονται οι χρονικές στιγµές που θα συµβούν τα µελλοντικά γεγονότα. Στη συνέχεια το ρολόι προχωράει και δείχνει το χρόνο του πιο επικείµενου µελλοντικού γεγονότος. Στο σηµείο αυτό ενηµερώνεται η κατάσταση του συστήµατος καθώς έχει συµβεί κάποιο γεγονός. Τότε, το ρολόι προχωράει και δείχνει το χρόνο του καινούριου επικείµενου γεγονότος, ενηµερώνεται η κατάσταση του συστήµατος και ορίζονται οι χρόνοι που θα συµβούν τα µελλοντικά γεγονότα. Η διαδικασία αυτή προωθεί το ρολόι από το ένα γεγονός στο άλλο και συνεχίζεται έως ότου τελικά ικανοποιηθεί κάποια συνθήκη τέλους. 29
30 2.2 Συνεχής ροσοµοίωση Η συνεχής ροσοµοίωση (continuous simulation) είναι η µοντελοποίηση ενός συστήµατος κατά µήκος του χρόνου όπου οι µεταβλητές κατάστασης µεταβάλλονται συνεχώς σε σχέση µε το χρόνο. Γίνεται χρήση των διαφορικών εξισώσεων που δίνουν σχέσεις για τους ρυθµούς αλλαγής των µεταβλητών κατάστασης σε σχέση µε το χρόνο. Οι εξισώσεις αυτές, µπορούν να λυθούν αναλυτικά αν είναι πολύ απλές, για να δώσουν τις τιµές των µεταβλητών κατάστασης για όλες τις τιµές του χρόνου σαν συνάρτηση των τιµών των µεταβλητών κατάστασης στο χρόνο µηδέν. Για τα περισσότερα συνεχή µοντέλα όµως δεν είναι δυνατές οι αναλυτικές λύσεις και χρησιµοποιούνται τεχνικές της αριθµητικής ανάλυσης. Για την κατασκευή συνεχών µοντέλων προσοµοίωσης, υπάρχουν ειδικές γλώσσες προσοµοίωσης όπως η ACSL και η CSSL-IV. 2.3 Κατανεµηµένη ροσοµοίωση Σε ένα σύστηµα ουρών µε έναν εξυπηρέτη, η εκτέλεση εξαρτάται από το χρόνο που συµβαίνουν τα γεγονότα στο µοντέλο προσοµοίωσης. Συνεπώς, η προσοµοίωση είναι σειριακή (sequential) και όλη η δουλειά γίνεται µε έναν υπολογιστή. Είναι δυνατόν να συνδεθούν µαζί είτε ανεξάρτητοι υπολογιστές, είτε ανεξάρτητοι υπολογιστές σχηµατίζοντας παράλληλα (parallel) ή κατανεµηµένα (distributed) υπολογιστικά συστήµατα. Στα κατανεµηµένα συστήµατα τα διαφορετικά τµήµατα της υπολογιστικής εργασίας κατανέµονται σε διαφορετικούς επεξεργαστές που δουλεύουν παράλληλα, γεγονός που οδηγεί σε ελαχιστοποίηση του συνολικού χρόνου εκτέλεσης της εργασίας. Αυτό όµως, εξαρτάται από το
διαθέσιµο υλικό και λογισµικό. Η κατανεµηµένη και η παράλληλη επεξεργασία εφαρµόζονται σε πολλές περιοχές. Παράδειγµα αποτελεί η εφαρµογή τους στη δυναµική προσοµοίωση. Είναι δυνατό να χωριστεί το ίδιο το µοντέλο σε τµήµατα που καταχωρούνται σε διαφορετικούς επεξεργαστές για εκτέλεση. Ιδιαίτερη προσοχή χρειάζεται για να διατηρηθεί η σωστή διάταξη των ενεργειών του όλου συστήµατος σε σχέση µε το χρόνο. ηλαδή, να συγχρονιστεί η λειτουργία των τµηµάτων του µοντέλου στους διαφορετικούς επεξεργαστές έτσι ώστε να παριστάνεται σωστά η όλη λειτουργία του µοντέλου. Το πλεονέκτηµα αυτής της διαδικασίας είναι ότι δεν υπάρχει ούτε ένα ολικό (global) ρολόι προσοµοίωσης, ούτε µια ολοκληρωµένη λίστα γεγονότων για όλο το µοντέλο. Αντίθετα υπάρχει ένα σύστηµα για πέρασµα µηνυµάτων (message passing) µεταξύ των επεξεργαστών, όπου κάθε µήνυµα µεταφέρει µαζί του µια χρονική επιγραφή (time stamp). Ένα µειονέκτηµα αυτού του τύπου προσοµοίωσης είναι ότι µπορεί να συµβεί αδιέξοδο όπου και οι δύο επεξεργαστές πρέπει να περιµένουν ένα µήνυµα ο ένας από τον άλλο πριν µπορέσουν να προχωρήσουν. Μία έννοια, που σχετίζεται µε την κατανοµή των τµηµάτων του µοντέλου στους παράλληλους επεξεργαστές, είναι γνωστή ως εικονικός χρόνος (virtual time). Ο εικονικός χρόνος χρησιµοποιείται από το µηχανισµό στρέβλωσης του χρόνου (time-warp mechanism). Στην περίπτωση αυτή κάθε επεξεργαστής προσοµοιώνει το δικό του τµήµα του µοντέλου κατά µήκος του χρόνου, αλλά δεν περιµένει να πάρει µηνύµατα από άλλους επεξεργαστές οι οποίοι προχωρούν στο δικό τους χρόνο. Μία άλλη βασική έννοια είναι η έννοια της αναδίπλωσης (rollback). Συµβαίνει όταν ένα τµήµα µοντέλου που προσοµοιώνεται σε κάποιον επεξεργαστή λάβει κάποιο µήνυµα το οποίο θα έπρεπε να το είχε λάβει στο παρελθόν του (και το οποίο ίσως να επηρέαζε τη λειτουργία του από εκείνο το σηµείο και πέρα). Με την αναδίπλωση ο χρόνος του τµήµατος αυτού του µοντέλου αναστρέφεται στο χρόνο που έπρεπε να είχε φθάσει το µήνυµα. 31
32 2.4 Προσοµοίωση Monte Carlo Η Monte Carlo προσοµοίωση ορίζεται ως ένα σχήµα παραγωγής τυχαίων αριθµών, που χρησιµοποιούνται για την επίλυση συγκεκριµένων ντετερµινιστικών και στοχαστικών µοντέλων στα οποία η πάροδος του χρόνου δεν παίζει σηµαντικό ρόλο. Έτσι η Monte Carlo προσοµοίωση µπορεί να χαρακτηριστεί περισσότερο στατική παρά δυναµική.
33 ΚΕΦΑΛΑΙΟ 3 ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ 3.1 Κατανεµηµένα συστήµατα Μερικοί ορισµοί που µπορούµε να συναντήσουµε στη βιβλιογραφία είναι οι παρακάτω: You know you have one when the crash of a computer you ve never heard of stops you from getting any work done (Lamport 1987) We define a distributed system as a collection of autonomous computers linked by a network, with software designed to produce an integrated computing facility (Coulouris 1994) a system of multiple autonomous processing elements, cooperating in a common purpose or to achieve a common goal (Burns & Wellings 1997) one in which components located at networked computers communicate and coordinate their actions only by passing messages (Coulouris et al 2001)
Ένα κατανεµηµένο σύστηµα είναι ένα σύνολο ετερογενών υπολογιστών οι οποίοι διασυνδέονται µέσω ενός δικτύου, µε στόχο την από κοινού παροχή υπηρεσιών στους χρήστες τους. Η εξέλιξη των κατανεµηµένων συστηµάτων επηρεάζεται από την εξέλιξη της τεχνολογίας των υπολογιστών και των δικτύων, αλλά και από τις µεταβαλλόµενες ανάγκες των χρηστών τους. Από τεχνολογικής πλευράς, οι ραγδαίες εξελίξεις στο χώρο των υπολογιστών έχουν επιτρέψει τη µαζική παραγωγή πολύ οικονοµικών µικροεπεξεργαστών, οι οποίοι αποτελούν τις Κεντρικές Μονάδες Επεξεργασίας, ΚΜΕς (Central Processing Units, CPUs) των σύγχρονων µικροϋπολογιστών. Εδώ και αρκετά χρόνια οι περισσότεροι χρήστες έχουν δικό τους προσωπικό υπολογιστή (personal computer) ή σταθµό εργασίας (workstation), χωρίς να χρειάζεται πια να µοιράζονται ένα µεγάλο υπολογιστικό σύστηµα µε άλλους χρήστες. Σηµαντικές τεχνολογικές εξελίξεις έχουν σηµειωθεί όµως, και στα δίκτυα υπολογιστών, τα οποία επιτρέπουν την οικονοµική σύνδεση δεκάδων, εκατοντάδων ή και εκατοµµυρίων συστηµάτων µε τέτοιον τρόπο, ώστε τα διασυνδεόµενα συστήµατα να ανταλλάσσουν µεγάλο όγκο πληροφοριών σε µικρό χρονικό διάστηµα. Έτσι, παρά το ότι κάθε χρήστης έχει το δικό του σταθµό εργασίας, ο σταθµός αυτός µπορεί να επικοινωνήσει εύκολα και γρήγορα µε οποιονδήποτε άλλο. Η δυνατότητα εύκολης και οικονοµικής διασύνδεσης πολλών προσωπικών υπολογιστών µέσω τοπικών δικτύων και δικτύων ευρείας περιοχής έχει δώσει ώθηση στη σχεδίαση υπολογιστικών συστηµάτων πολλών επεξεργαστών, τα οποία ονοµάζονται κατανεµηµένα συστήµατα (distributed systems), σε αντιδιαστολή µε τα παραδοσιακά συγκεντρωτικά συστήµατα (centralized systems) ενός επεξεργαστή. Στην πράξη ο όρος κατανεµηµένο σύστηµα είναι πιο εξειδικευµένος: ονοµάζουµε κατανεµηµένο σύστηµα ένα υπολογιστικό σύστηµα το οποίο αποτελείται από ανεξάρτητους υπολογιστές και το οποίο παρουσιάζει στους χρήστες του την εικόνα ενός µόνο συστήµατος. Το ενδιαφέρον για τα συστήµατα αυτά οφείλεται στο ότι µπορούν να κατασκευαστούν µε βάση απλούς (συγκεντρωτικούς ή µη ) υπολογιστές, και στο ότι, εκτός από αυξηµένη επίδοση, 34
επιτρέπουν και τον (κατά)µερισµό των πόρων των ανεξάρτητων συστηµάτων από τα οποία αποτελούνται. 35 3.2 Πλεονεκτήµατα και µειονεκτήµατα των κατανεµηµένων συστηµάτων Τα κατανεµηµένα συστήµατα παρουσιάζουν σηµαντικά πλεονεκτήµατα έναντι των συγκεντρωτικών συστηµάτων και έναντι των ανεξάρτητων υπολογιστών. Τα πλεονεκτήµατα αυτά είναι: 1. Έναντι των συγκεντρωτικών συστηµάτων. 1.1. Οικονοµία: οι µικροεπεξεργαστές παρέχουν καλύτερο λόγο κόστους/απόδοσης από τα κεντρικά υπολογιστικά συστήµατα. 1.2. Ταχύτητα: Ένα κατανεµηµένο σύστηµα µπορεί να έχει συνολικά περισσότερη υπολογιστική ισχύ από ένα κεντρικό υπολογιστικό σύστηµα. 1.3. Έµφυτη κατανοµή: Μερικές εφαρµογές είναι από τη φύση τους κατανεµηµένες δηλαδή. αναφέρονται σε ξεχωριστές µηχανές. 1.4. Αξιοπιστία: Αν µία µηχανή καταρρεύσει, το σύστηµα µπορεί να συνεχίσει να λειτουργεί. 1.5. ιαδοχική ανάπτυξη: Μπορεί να προστεθεί υπολογιστική ισχύς µέσω διαδοχικών αυξήσεων. 2. Έναντι των ανεξάρτητων υ ολογιστών. 2.1. ιαµοιρασµός δεδοµένων: Επιτρέπεται η πρόσβαση πολλαπλών χρηστών σε κοινές βάσεις δεδοµένων.
2.2. ιαµοιρασµός συσκευών: Επιτρέπεται σε πολλούς χρήστες να διαµοιράζονται κοινές συσκευές (π.χ. εκτυπωτές). 2.3. Ευελιξία: ιανέµει το φόρτο εργασίας στις διαθέσιµες µηχανές µε τον περισσότερο αποτελεσµατικό, σε ό,τι αφορά το κόστος, τρόπο. 36 Τα κατανεµηµένα συστήµατα παρουσιάζουν όµως και µειονέκτηµα. Μερικά από αυτά είναι: 1. Λογισµικό: ύσκολο στον προγραµµατισµό το λογισµικό για κατανεµηµένα συστήµατα. 2. ικτύωση: Το δίκτυο µπορεί να κορεστεί. 3. Ασφάλεια: Η έννοια της εύκολης πρόσβασης έχει εφαρµογή σε κρυφά δεδοµένα. 3.3 Τι είναι τα οµογενή και ετερογενή κατανεµηµένα συστήµατα. Οι πολύ-υπολογιστές (multicomputers), είναι συστήµατα στα οποία έχουµε διασύνδεση αυτόνοµων υπολογιστών, δηλαδή επεξεργαστών µε ιδιωτική κύρια µνήµη, οι οποίοι µπορούν να λειτουργήσουν και αυτόνοµα. ΜΝΗΜΗ 1 ΕΠΕΞΕΡΓΑΣΤΗΣ 1 ΜΝΗΜΗ 2 ΕΠΕΞΕΡΓΑΣΤΗΣ 2 ΜΝΗΜΗ 3 ΕΠΕΞΕΡΓΑΣΤΗΣ 3 ΙΚΤΥΟ ΙΑΣΥΝ ΕΣΗΣ
37 Τα συστήµατα αυτά αποτελούνται από κοινούς σταθµούς εργασίας συνδεδεµένους µέσω δικτύου, µε αποτέλεσµα να έχουν πολύ χαµηλό κόστος, αφού δεν απαιτούν εξειδικευµένο υλισµικό. Στην απλούστερη περίπτωση όλες οι µηχανές είναι πανοµοιότυπες, δηλαδή το σύστηµα είναι οµοιογενές (homogeneous), ενώ στην πιο σύνθετη περίπτωση οι µηχανές διαφέρουν οπότε το σύστηµα είναι ετερογενές (heterogeneous). Στα οµοιογενή συστήµατα µπορούµε να έχουµε το ίδιο ακριβώς λειτουργικό σύστηµα σε κάθε µηχανή, ενώ στα ετερογενή συστήµατα τα λειτουργικά συστήµατα µπορεί να διαφέρουν σηµαντικά. Στην πράξη τα ετερογενή συστήµατα παρουσιάζουν µεγαλύτερο ενδιαφέρον, αφού µπορούν να κατασκευαστούν µε οποιονδήποτε διαθέσιµο εξοπλισµό. Ωστόσο και οι δύο κατηγορίες πολύυπολογιστών κατατάσσονται στα κατανεµηµένα συστήµατα. 3.4 Μετρικές Α όδοσης Προκειµένου να εκτιµήσουµε την απόδοση ενός συστήµατος χρησιµοποιούµε ορισµένες µετρικές απόδοσης. Κάποιες από αυτές είναι: Χρόνος Ολοκλήρωσης (turnaround time) ή διάρκεια κύκλου εξυ ηρέτησης: Είναι ο χρόνος ανάµεσα στη χρονική στιγµή που δίδεται η εργασία δέσµης (batch job) για εκτέλεση και στη χρονική στιγµή που τελειώνει η έξοδος της εργασίας αυτής. Σηµειώνεται ότι ο χρόνος για να διαβαστεί η είσοδος περιλαµβάνεται στην διάρκεια του κύκλου εξυπηρέτησης.
38 Χρόνος α όκρισης (response time): Σε ένα σύστηµα πραγµατικού χρόνου ή σε αλληλεπιδραστικό σύστηµα είναι το διάστηµα µεταξύ της αίτησης του χρήστη και της απάντησης του συστήµατος. Χρόνος αντίδρασης (reaction time): Ο χρόνος ανάµεσα στην υποβολή της αίτησης και της έναρξης της εκτέλεσής της από το σύστηµα. Συντελεστής ε ιµήκυνσης (stretch factor): Ο λόγος του χρόνου απόκρισης για κάποιο συγκεκριµένο φόρτο προς εκείνο για τον ελάχιστο φόρτο. Ρυθµοα όδοση (throughput): Ορίζεται ως ο µέσος αριθµός εργασιών που εξυπηρετούνται από το σύστηµα στη µονάδα του χρόνου. throughput= Num_ Of _ Pr ograms t Είναι ένα µέτρο της παραγωγικότητας του συστήµατος. Αν οι εργασίες φθάνουν στο σύστηµα µε τρόπο ανεξάρτητο της κατάστασης του συστήµατος, τότε η ρυθµοαπόδοση είναι ίση µε το µέσο ρυθµό αφίξεων, εφόσον το σύστηµα µπορεί να εξυπηρετεί τις εργασίες, χωρίς να δηµιουργούνται συνεχώς αυξανόµενες ουρές από εργασίες που περιµένουν να εξυπηρετηθούν. Στην περίπτωση αυτή, η ρυθµοαπόδοση δεν είναι µέτρο απόδοσης, αλλά µέτρο του φόρτου εργασίας του συστήµατος. Κατά συνέπεια, η ρυθµοαπόδοση έχει νόηµα ως µέτρο απόδοσης, αν υπάρχουν πάντα αιτήσεις που περιµένουν εξυπηρέτηση από το σύστηµα ή ο µηχανισµός αφίξεων εργασιών εξαρτάται από την κατάσταση του συστήµατος.