ιπλωµατική Εργασία Επιµέλεια Συγγραφή: ΗΜΗΤΡΙΑ ΟΥ ΣΟΦΙΑ 891 Υπεύθυνη Καθηγήτρια Καρατζά Ελένη

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

Download "ιπλωµατική Εργασία Επιµέλεια Συγγραφή: ΗΜΗΤΡΙΑ ΟΥ ΣΟΦΙΑ 891 Υπεύθυνη Καθηγήτρια Καρατζά Ελένη"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Χρονοδρομολόγηση Παράλληλων Εργασιών σε Κατανεμημένα Συστήματα Προσομοίωση και Εκτίμηση της Απόδοσης ιπλωµατική Εργασία Επιµέλεια Συγγραφή: ΗΜΗΤΡΙΑ ΟΥ ΣΟΦΙΑ 891 Υπεύθυνη Καθηγήτρια Καρατζά Ελένη ΙΟΥΝΙΟΣ 2007

2 Περιεχόµενα Πρόλογος 3 Κεφάλαιο 1 ο Εισαγωγή Γενικά για την Προσοµοίωση Κατηγορίες Συστηµάτων Τα Είδη Μοντέλων Προσοµοίωσης Ο Μηχανισµός Εξέλιξης του Χρόνου Οργάνωση ενός Μοντέλου Προσοµοίωσης Τα Βήµατα µιας Μελέτης µε Προσοµοίωση Πλεονεκτήµατα και Μειονεκτήµατα Προβλήµατα / υσκολίες της Προσοµοίωσης. 14 Κεφάλαιο 2 ο Ανάλυση του Συστήµατος Ουρές αναµονής Κατανεµηµένα συστήµατα Περιγραφή του συστήµατος Χαρακτηριστικά / Παραδοχές του συστήµατος Η διαδικασία των αφίξεων Η επιλογή της ουράς Χρονοδροµολόγηση των διεργασιών First Come First Served (FCFS) Shortest Task First (STF) Παράδειγµα χρονοδροµολόγησης Μετρικές απόδοσης του συστήµατος.. 27 Κεφάλαιο 3 ο Σχεδίαση του Συστήµατος Περιπτώσεις Χρήσης Άφιξη νέου job στο σύστηµα Εισαγωγή του job στην ουρά αναµονής Ολοκλήρωση της εξυπηρέτησης (Αναχώρηση) ιαχείριση των γεγονότων Ο µηχανισµός εξέλιξης του χρόνου ηµιουργία τυχαίων παρατηρήσεων 37 1

3 Κεφάλαιο 4 ο Υλοποίηση του Συστήµατος Λεπτοµέρειες Υλοποίησης ιάγραµµα κλάσεων Τεκµηρίωση του πηγαίου κώδικα class Job class Task class Queue class Event class EventList class Generator class Simulation class Statistics Είσοδος / Έξοδος του συστήµατος.. 54 Κεφάλαιο 5 ο Πειραµατισµός και Ανάλυση της Απόδοσης η Σειρά Πειραµάτων Πείραµα 1 α Πείραµα 1β Πείραµα 1γ η Σειρά Πειραµάτων Πείραµα 2α Πείραµα 2β Πείραµα 2γ η Σειρά Πειραµάτων Πείραµα 3α Πείραµα 3β Συµπεράσµατα 78 Παράρτηµα Πηγαίος Κώδικας Βασικών Κλάσεων 79 Βιβλιογραφικές Πηγές Υποστηρικτικό Υλικό

4 Πρόλογος Η παρούσα διπλωµατική εργασία εκπονήθηκε στο πλαίσιο του Προπτυχιακού Προγράµµατος Σπουδών του Αριστοτέλειου Πανεπιστηµίου Θεσσαλονίκης και η ανάθεση έγινε από την αναπληρώτρια καθηγήτρια κα. Ελένη Καρατζά. Το αντικείµενο της µελέτης είναι η χρονοδροµολόγηση παράλληλων εργασιών σε κατανεµηµένα συστήµατα και η εκτίµηση της απόδοσης µε προσοµοίωση. Στο πρώτο κεφάλαιο γίνεται µια εισαγωγή στην έννοια της προσοµοίωσης. ίνεται ο ορισµός της, αναλύονται τα είδη των µοντέλων της και αναφέρονται τα πλεονεκτήµατα και τα µειονεκτήµατα αυτής. Στο δεύτερο κεφάλαιο παρουσιάζονται τα βασικά χαρακτηριστικά του συστήµατος. Το τρίτο κεφάλαιο αναφέρεται στη σχεδίαση του συστήµατος και περιγράφει τους αλγόριθµους που θα πρέπει να εφαρµοστούν για την υλοποίηση του. Το τέταρτο κεφάλαιο περιλαµβάνει την τεκµηρίωση του πηγαίου κώδικα του προγράµµατος. Τέλος, στο πέµπτο και τελευταίο κεφάλαιο διεξάγεται µια σειρά πειραµάτων για την εκτίµηση της απόδοσης του συστήµατος, όπου γίνεται ανάλυση των αποτελεσµάτων και παρουσίαση των συµπερασµάτων. Θα ήθελα να ευχαριστήσω θερµά την επιβλέπουσα καθηγήτρια της εργασίας, κα. Ελένη Καρατζά για την εµπιστοσύνη που µου έδειξε και για την πολύτιµη βοήθεια και καθοδήγηση που µου προσέφερε καθ όλη τη διάρκεια της εκπόνησης της. Αφιερώνω την εργασία αυτή στους πολυαγαπηµένους µου γονείς, Κωνσταντίνο και Μαρία και στον Χρήστο που µε στήριξαν οικονοµικά, αλλά πρωτίστως ψυχολογικά µε την υποµονή, την κατανόηση και την αγάπη τους όλα αυτά τα χρόνια. 3

5 Κεφάλαιο 1 ο Εισαγωγή 1.1 Γενικά για την Προσοµοίωση Προσοµοίωση (simulation) είναι η µίµηση της λειτουργίας συστηµάτων ή της εξέλιξης διαδικασιών µέσα στο χρόνο µε τη βοήθεια υπολογιστή. Αποτελεί πειραµατική µέθοδο που έχει σα σκοπό τη βελτιστοποίηση ενός συστήµατος, τη µελέτη της λειτουργίας του και την ανάλυση της ευαισθησίας του. Ως πειραµατική µέθοδος όµως, εξαρτάται πολύ από την πιστότητα του µοντέλου που χρησιµοποιείται (καθορισµός παραµέτρων Μοντελοποίηση) ιαδικασία ή σύστηµα ονοµάζεται ένα σύνολο στοιχείων τα οποία εξελίσσονται και αλληλεπιδρούν σύµφωνα µε κάποιους κανόνες. Οι κανόνες αυτοί εκφράζονται µε µαθηµατικές ή λογικές σχέσεις, και αποτελούν το µοντέλο του συστήµατος. Κατάσταση είναι το σύνολο των µεταβλητών οι οποίες δίνουν την απαραίτητη πληροφορία για την περιγραφή του συστήµατος. Αν οι σχέσεις που περιγράφουν την εξέλιξη του συστήµατος είναι απλές, τότε είναι δυνατή η εύρεση λύσεων κλειστής µορφής, οπότε λέµε ότι το µοντέλο επιλύεται αναλυτικά. Ωστόσο τα περισσότερα συστήµατα έχουν διάνυσµα κατάστασης µεγάλων διαστάσεων και περιγράφονται από πολύπλοκα µοντέλα των οποίων η αναλυτική επίλυση είναι αδύνατη. Για τη µελέτη τους εφαρµόζονται οι λεγόµενες αριθµητικές µέθοδοι. Τέτοιες είναι η αριθµητική ανάλυση και η προσοµοίωση. Η προσοµοίωση συνίσταται στην ανάπτυξη ενός µοντέλου του υπό εξέταση συστήµατος µε τη µορφή προγράµµατος σε υπολογιστή και στην εκτέλεση ενός (ή περισσοτέρων) πειράµατος το οποίο καταγράφει την κατάσταση του συστήµατος σε διαδοχικές χρονικές στιγµές αποτυπώνοντας ένα πιθανό σενάριο εξέλιξης του συστήµατος στο χρόνο. Η προσοµοίωση ευρίσκει εφαρµογές: στην ανάλυση και σχεδίαση συστηµάτων παραγωγής (βιοµηχανία) στον έλεγχο αποθεµάτων (βιοµηχανία, εµπορικές επιχειρήσεις) στη µελέτη κυκλοφοριακών συστηµάτων (οδικό δίκτυο, αεροδρόµια) στη µελέτη συστηµάτων εξυπηρετήσεως πελατών (τράπεζες, νοσοκοµεία, τηλεπικοινωνίες) στην αξιολόγηση αποφάσεων υπό αβεβαιότητα (χρηµατιστήριο, επενδύσεις, marketing). Με την µοντελοποίηση και προσοµοίωση µπορεί κανείς να αξιολογήσει την αποτελεσµατικότητα ή απόδοση ενός συστήµατος πριν αυτό κατασκευασθεί µε σκοπό τη βέλτιστη σχεδίασή του. 4

6 1.2 Κατηγορίες Συστηµάτων Ανάλογα µε το αν παρουσιάζουν διαχρονική εξέλιξη, τα συστήµατα διακρίνονται σε δυναµικά και στατικά (dynamic / static). υναµικό είναι το σύστηµα του οποίου η κατάσταση είναι συνάρτηση του χρόνου. Στατικό, αντίθετα, είναι το σύστηµα το οποίο δεν εµφανίζει εξέλιξη (δεν µεταβάλλεται) µε την πάροδο του χρόνου. Ενα εκκρεµές στη θέση ισορροπίας, το αποτέλεσµα της ρίψης ενός νοµίσµατος, ένα σύστηµα εξισώσεων, είναι στατικά συστήµατα. Τα δυναµικά συστήµατα διακρίνονται σε συστήµατα διακριτού χρόνου (discretetime systems), συστήµατα συνεχούς χρόνου (continuous-time systems). Στα συστήµατα διακριτού χρόνου η κατάσταση µεταβάλλεται βηµατικά (απότοµα) σε διακριτές χρονικές στιγµές t1, t2, t3,..., ενώ παραµένει σταθερή στα διαστήµατα [t1,t2),[t2, t3),... Συνεχές είναι το σύστηµα του οποίου η κατάσταση είναι συνεχής συνάρτηση του χρόνου. Η διαχρονική συµπεριφορά συνεχών συστηµάτων περιγράφεται συνήθως από διαφορικές εξισώσεις. Το επόµενο σχήµα δείχνει τους τρόπους µε τους οποίους µπορεί κανείς να µελετήσει τη λειτουργία ενός συστήµατος. Σχήµα 1.1 Οι τρόποι µελέτης ενός συστήµατος 5

7 1.3 Τα Είδη Μοντέλων Προσοµοίωσης Έχοντας ένα µαθηµατικό µοντέλο που πρέπει να µελετήσουµε µε προσοµοίωση (δηλαδή ένα Μοντέλο Προσοµοίωσης), θα πρέπει να αναζητήσουµε κατάλληλα εργαλεία για το σκοπό αυτό. Στην προσπάθεια αυτή, είναι χρήσιµο να ταξινοµήσουµε τα Μοντέλα Προσοµοίωσης µε βάση τέσσερις διαφορετικές έννοιες: 1. Στατικά ή Δυναμικά Μοντέλα Προσομοίωσης Ένα στατικό µοντέλο προσοµοίωσης, αναπαριστά ένα σύστηµα σε µία συγκεκριµένη χρονική στιγµή, ή αναπαριστά ένα σύστηµα στο οποίο ο χρόνος δεν έχει σηµασία. Αντίθετα, ένα δυναµικό µοντέλο προσοµοίωσης αναπαριστά ένα σύστηµα, όπως αυτό εξελίσσεται µε την πάροδο του χρόνου. 2. Ντετερμινιστικά ή Στοχαστικά Μοντέλα Προσομοίωσης Αν ένα µοντέλο προσοµοίωσης δεν περιλαµβάνει πιθανοτικά (δηλαδή "τυχαία") τµήµατα, ονοµάζεται ντετερµινιστικό. Για παράδειγµα, ένα πολύπλοκο σύστηµα διαφορικών εξισώσεων που περιγράφει µία χηµική αντίδραση, µπορεί να είναι ένα τέτοιο µοντέλο. Στα ντετερµινιστικά µοντέλα, η έξοδος είναι καθορισµένη, µε δεδοµένο το σύνολο των ποσοτήτων και σχέσεων εισόδου του µοντέλου. Όµως, πολλά συστήµατα πρέπει να χρησιµοποιήσουν στοχαστικά µοντέλα προσοµοίωσης, δηλαδή µοντέλα που θα έχουν τουλάχιστον ορισµένα τµήµατα µε "τυχαία" είσοδο. Τα περισσότερα υπολογιστικά συστήµατα, που βασίζονται στα συστήµατα αναµονής (queueing systems), χρησιµοποιούν στοχαστικά µοντέλα προσοµοίωσης. 3. Αυτο-οδηγούμενα ή Ιχνο-οδηγούμενα Μοντέλα Προσομοίωσης Σε ένα αυτο-οδηγούµενο (self-driven) µοντέλο, υπάρχει µία εσωτερική πηγή τυχαίων αριθµών. Οι τυχαίοι αριθµοί οδηγούν τα τµήµατα του µοντέλου, δηλαδή χρησιµοποιούνται για τον προσδιορισµό των στιγµών εµφανίσεων των γεγονότων του συστήµατος. Το βασικό χαρακτηριστικό του αυτοοδηγούµενου µοντέλου είναι ότι αποτελεί ένα αυτάρκες µοντέλο το οποίο δεν χρειάζεται εξωτερικές εισόδους (inputs) για να λειτουργήσει. Αντίθετα, ένα ιχνο-οδηγούµενο (trace-driven) µοντέλο καθοδηγείται από ακολουθίες εισόδου που προέρχονται από δεδοµένα (trace data) που έχουν δηµιουργηθεί από τη λειτουργία ενός πραγµατικού συστήµατος. Τέτοια δεδοµένα µπορούν να παραχθούν στα περισσότερα υπολογιστικά συστήµατα που διαθέτουν ενσωµατωµένα προγράµµατα ιχνηλάτησης (tracing programs) που παρακολουθούν και καταγράφουν τις δραστηριότητες του συστήµατος. Τα ιχνο-οδηγούµενα µοντέλα έχουν ορισµένα πλεονεκτήµατα, όπως το γεγονός ότι αποφεύγονται οι δυσκολίες της πιθανοτικής ανάλυσης που χρειάζεται για τη χρήση κατανοµών στην περιγραφή των εισόδων του µοντέλου και επίσης το γεγονός ότι τα µοντέλα αυτά είναι εύκολο να επιβεβαιωθούν. Το 6

8 πρόβληµα µε τα ιχνο-οδηγούµενα µοντέλα είναι το µικρό εύρος εφαρµογών που µπορούν να αντιµετωπίσουν. Οι εφαρµογές αυτές πρακτικά περιορίζονται σε υπολογιστικά συστήµατα και µάλιστα µόνο για τη µελέτη µετατροπών σε ένα σύστηµα που ήδη λειτουργεί. 4. Συνεχή ή Διακριτά Μοντέλα Προσομοίωσης: Οι ορισµοί των συνεχών και διακριτών µοντέλων προσοµοίωσης, είναι ανάλογοι µε τους ορισµούς των συνεχών και διακριτών συστηµάτων που αναφέρθηκαν στην παράγραφο 1.2. Πάντως, πρέπει να σηµειωθεί ότι ένα διακριτό µοντέλο δεν χρησιµοποιείται µόνο για την αναπαράσταση ενός διακριτού συστήµατος και ένα διακριτό σύστηµα δεν αναπαριστάται µόνο από ένα διακριτό µοντέλο προσοµοίωσης. Η απόφαση για τη χρήση ενός διακριτού ή ενός συνεχούς µοντέλου για ένα συγκεκριµένο σύστηµα, εξαρτάται από τους ιδιαίτερους στόχους της µελέτης. Για παράδειγµα, ένα µοντέλο της ροής πακέτων δεδοµένων σε ένα WAN, θα είναι διακριτό εάν µας ενδιαφέρουν τα χαρακτηριστικά και η κίνηση των επιµέρους πακέτων και κατά συνέπεια των επιµέρους χρηστών. Αντίθετα, αν µας ενδιαφέρει µόνο η συνολική κίνηση, η ροή των πακέτων θα µπορούσε ίσως να περιγραφεί µε διαφορικές εξισώσεις σε ένα συνεχές µοντέλο. Το µοντέλο προσοµοίωσης που θα µας απασχολήσει στη συνέχεια, θα είναι διακριτό, δυναµικό, στοχαστικό και αυτο-οδηγούµενο και θα ονοµάζεται Μοντέλο Προσοµοίωσης ιακριτών Γεγονότων (discrete event simulation models). Μάλιστα, αφού τα ντετερµινιστικά µοντέλα µπορούν να θεωρηθούν ειδικές περιπτώσεις των στοχαστικών µοντέλων, δεν θα έχουµε απώλεια της γενικότητας στη µελέτη των µοντέλων προσοµοίωσης. 7

9 1.4 Ο Μηχανισµός Εξέλιξης του Χρόνου Λόγω του δυναµικού χαρακτήρα των µοντέλων προσοµοίωσης διακριτών γεγονότων, πρέπει να έχουµε τη δυνατότητα αποθήκευσης της τρέχουσας τιµής του προσοµοιωµένου χρόνου, ενώ χρειαζόµαστε και ένα µηχανισµό αύξησής του από µία τιµή σε µία άλλη. Η µεταβλητή του µοντέλου προσοµοίωσης που µας δίνει την τρέχουσα τιµή του χρόνου, ονοµάζεται ρολόι προσοµοίωσης (simulation clock) ( [1] ). Η µονάδα χρόνου που χρησιµοποιεί το ρολόι είναι συνήθως η ίδια µε αυτή που χρησιµοποιούν οι παράµετροι εισόδου, ενώ γενικά δεν υπάρχει σχέση του χρόνου που καταγράφει το ρολόι, µε το χρόνο που απαιτείται για την εκτέλεση του προσοµοιωτή στον υπολογιστή. Ιστορικά έχουν επικρατήσει δύο βασικές µέθοδοι για την εξέλιξη του ρολογιού προσοµοίωσης: Η Εξέλιξη µε βάση το Χρόνο του Εποµένου Γεγονότος (nextevent time advance) και η Εξέλιξη Σταθερής Αύξησης του Χρόνου (fixedincrement time advance). Θα χρησιµοποιήσουµε την πρώτη µέθοδο διότι είναι πιο διαδεδοµένη και διότι η δεύτερη µπορεί να θεωρηθεί ειδική περίπτωση της πρώτης. Στη µέθοδο εξέλιξης µε βάση το χρόνο του εποµένου γεγονότος, το ρολόι προσοµοίωσης αρχικοποιείται στο µηδέν και καθορίζονται οι στιγµές εµφάνισης των µελλοντικών γεγονότων. Το ρολόι τότε αυξάνει στο χρόνο εµφάνισης του πιο κοντινού στο µέλλον, από τα γεγονότα αυτά. Τη στιγµή αυτή η κατάσταση του συστήµατος ενηµερώνεται ώστε να πάρει υπ όψη της το γεγονός που εµφανίστηκε, ενώ ενηµερώνεται επίσης η γνώση µας για τις χρονικές στιγµές εµφάνισης των µελλοντικών γεγονότων. Στη συνέχεια, το ρολόι αυξάνει ώστε να δείχνει τη στιγµή εµφάνισης του νέου πιο κοντινού στο µέλλον γεγονότος, η κατάσταση του συστήµατος ενηµερώνεται, καθορίζονται οι χρονικές στιγµές εµφάνισης των µελλοντικών γεγονότων κ.ο.κ. Η διαδικασία αυτή εξέλιξης του ρολογιού προσοµοίωσης από το ένα γεγονός στο άλλο, συνεχίζεται µέχρι να ικανοποιηθεί κάποια προκαθορισµένη συνθήκη τερµατισµού της προσοµοίωσης. Αφού όλες οι αλλαγές κατάστασης γίνονται µόνο στις χρονικές στιγµές εµφάνισης των γεγονότων, οι ενδιάµεσες ανενεργοί περίοδοι δεν λαµβάνονται υπ όψη και το ρολόι µετακινείται αυτόµατα στη στιγµή εµφάνισης του εποµένου γεγονότος. Όσον δε αφορά τη µέθοδο εξέλιξης σταθερής αύξησης του χρόνου, το ρολόι προσοµοίωσης εξελίσσεται µε σταθερές αυξήσεις ακριβώς t µονάδων χρόνου κάθε φορά. Μετά από κάθε ενηµέρωση του ρολογιού, γίνεται ένας έλεγχος για να εξακριβωθεί εάν θα έπρεπε να έχουν εµφανισθεί κάποια γεγονότα κατά το προηγούµενο χρονικό διάστηµα t. Αν εµφανίσθηκαν γεγονότα στο διάστηµα αυτό, θεωρούµε ότι αυτά εµφανίζονται στο τέλος του χρονικού διαστήµατος και η κατάσταση του συστήµατος ενηµερώνεται κατάλληλα. 8

10 1.5 Οργάνωση ενός Μοντέλου Προσοµοίωσης Τα περισσότερα µοντέλα προσοµοίωσης διακριτών γεγονότων που χρησιµοποιούν τη µέθοδο εξέλιξης µε βάση το χρόνο του εποµένου γεγονότος, περιλαµβάνουν τα παρακάτω τµήµατα: Κατάσταση Συστήµατος (system state): Η συλλογή των µεταβλητών κατάστασης που είναι απαραίτητες για την περιγραφή του συστήµατος σε µία χρονική στιγµή. Ρολόι Προσοµοίωσης (simulation clock): Μία µεταβλητή που περιέχει την τρέχουσα τιµή του προσοµοιωµένου χρόνου. Λίστα Γεγονότων (event list): Μία λίστα που περιέχει την επόµενη χρονική στιγµή εµφάνισης κάθε τύπου γεγονότος. Στατιστικοί Μετρητές (statistical counters): Μεταβλητές που χρησιµοποιούνται για την αποθήκευση στατιστικών µετρήσεων της απόδοσης του συστήµατος. Ρουτίνα Έναρξης (initialization routine): Ένα υποπρόγραµµα που αρχικοποιεί το µοντέλο προσοµοίωσης τη χρονική στιγµή µηδέν. Ρουτίνα Χρόνου (timing routine): Ένα υποπρόγραµµα που αναγνωρίζει το επόµενο γεγονός από τη λίστα γεγονότων και ακολούθως αυξάνει το ρολόι προσοµοίωσης στη χρονική στιγµή που το γεγονός αυτό θα εµφανισθεί. Ρουτίνες Γεγονότων (event routines): Υποπρογράµµατα που ενηµερώνουν την κατάσταση συστήµατος όταν εµφανίζεται ένα συγκεκριµένο είδος γεγονότος (υπάρχει µία τέτοια ρουτίνα για κάθε είδος γεγονότος). Ρουτίνες Βιβλιοθήκης (library routines): Σύνολο υποπρογραµµάτων που δηµιουργούν τυχαίες εµφανίσεις τιµών από πιθανοτικές κατανοµές, που έχουν ορισθεί ως µέρος του µοντέλου προσοµοίωσης. Ρουτίνα Αποτελεσµάτων (report generator): Υποπρόγραµµα που υπολογίζει εκτιµήσεις των επιθυµητών µέτρων απόδοσης από τους µετρητές στατιστικών και παράγει αναφορές όταν τελειώσει η εκτέλεση του προσοµοιωτή. Κυρίως Πρόγραµµα (main program): Το πρόγραµµα που καλεί τη ρουτίνα χρονισµού για να καθοριστεί το επόµενο γεγονός και µετά µεταφέρει τον έλεγχο στην αντίστοιχη ρουτίνα γεγονότος για να ενηµερωθεί κατάλληλα η κατάσταση του συστήµατος. Ελέγχει επίσης αν πρέπει να τερµατισθεί η προσοµοίωση και καλεί τότε τη γεννήτρια αναφορών. 9

11 Οι λογικές σχέσεις ανάµεσα στα παραπάνω τµήµατα φαίνονται στο παρακάτω σχήµα. Σχήµα 1.2 Μοντέλο προσοµοίωσης διακριτών γεγονότων 10

12 1.6 Τα Βήµατα µιας Μελέτης µε Προσοµοίωση Στο επόµενο σχήµα παρουσιάζονται τα βήµατα που ακολουθεί µία τυπική µελέτη ενός συστήµατος µε χρήση προσοµοίωσης. Σχήµα 1.3 Τα βήµατα µελέτης µε προσοµοίωση 11

13 1.7 Πλεονεκτήµατα και Μειονεκτήµατα Η προσοµοίωση είναι µια ευρέως χρησιµοποιούµενη και συνεχώς πιο δηµοφιλής µέθοδος για τη µελέτη πολύπλοκων συστηµάτων. Έχει φυσικά τα πλεονεκτήµατα, τα µειονεκτήµατά της, αλλά και υπάρχουν πολλές αιτίες εξ αιτίας των οποίων ορισµένες προσοµοιώσεις δεν καταλήγουν στο επιθυµητό αποτέλεσµα. Πλεονεκτήματα Ορισµένα πιθανά πλεονεκτήµατα της χρήσης της µεθόδου της προσοµοίωσης είναι τα παρακάτω: Τα περισσότερα σύνθετα συστήµατα του πραγµατικού κόσµου µε "τυχαίες" παραµέτρους, δεν µπορούν να περιγραφούν ικανοποιητικά µε κάποιο µαθηµατικό µοντέλο που µπορεί να λυθεί αναλυτικά. Έτσι, η προσοµοίωση είναι συχνά η µόνη διαθέσιµη µέθοδος µελέτης. Η προσοµοίωση επιτρέπει την εκτίµηση της απόδοσης ενός υπάρχοντος συστήµατος, κάτω από κάποιο προβλεπόµενο σύνολο λειτουργικών συνθηκών. Μπορούν να συγκριθούν µέσω της προσοµοίωσης, εναλλακτικές προτεινόµενες σχεδιάσεις ή εναλλακτικές πολιτικές λειτουργίας του συστήµατος, ώστε να προσδιορισθεί η βέλτιστη λύση που ικανοποιεί τις προδιαγραφές που έχουν ορισθεί. Σε ένα µοντέλο προσοµοίωσης µπορούµε να έχουµε καλύτερο έλεγχο στις συνθήκες των πειραµάτων, σε σχέση µε πιθανό πειραµατισµό µε το πραγµατικό σύστηµα. Η προσοµοίωση επιτρέπει τη µελέτη ενός συστήµατος που έχει µακρόχρονη εξέλιξη (π.χ. ένα οικονοµικό σύστηµα), σε πολύ µικρότερο χρόνο, ή τη µελέτη της λεπτοµέρειάς του σε περισσότερο χρόνο. Είναι µια µέθοδος οικονοµική, αφού είναι δυνατό να υλοποιηθεί πλέον σε µικρούς υπολογιστές µε τη χρήση γλωσσών προγραµµατισµού γενικού σκοπού όπως η C, η Pascal και η BASIC. Η προσοµοίωση µπορεί να υλοποιηθεί από µηχανικούς που δεν είναι απαραίτητο να έχουν εκτεταµένες µαθηµατικές γνώσεις, παρά µόνο τη δυνατότητα να κατανοούν βασικές έννοιες στατιστικής και να µπορούν να εφαρµόζουν ήδη έτοιµα µαθηµατικά εργαλεία. 12

14 Μειονεκτήματα Ορισµένα µειονεκτήµατα της προσοµοίωσης είναι τα παρακάτω: Κάθε εκτέλεση ενός µοντέλου προσοµοίωσης διακριτών γεγονότων παράγει µόνο εκτιµήσεις των πραγµατικών χαρακτηριστικών του µοντέλου, για ένα συγκεκριµένο σύνολο παραµέτρων εισόδου. Έτσι, είναι πιθανό να χρειασθούν πολλές διαφορετικές ανεξάρτητες εκτελέσεις του µοντέλου για κάθε σύνολο παραµέτρων εισόδου που θα µελετηθεί. Για το λόγο αυτό, η προσοµοίωση δεν είναι γενικά τόσο καλή µέθοδος για βελτιστοποίηση, όσο είναι για τη σύγκριση εναλλακτικών σχεδιαστικών λύσεων του συστήµατος. Τα µοντέλα προσοµοίωσης συχνά απαιτούν πολύ χρόνο και πόρους για να αναπτυχθούν. Ο µεγάλος όγκος αριθµών που παράγονται από µία µελέτη προσοµοίωσης ή η εντύπωση που δηµιουργούν οι τυχόν γραφικές αναπαραστάσεις των αποτελεσµάτων της, συχνά ενισχύουν µία τάση να δίνεται µεγαλύτερη εµπιστοσύνη στα αποτελέσµατα αυτά από όσο πρέπει. Αν το µοντέλο δεν είναι µία αρκετά έγκυρη αναπαράσταση του συστήµατος, τα αποτελέσµατα της προσοµοίωσης, ανεξάρτητα του πόσο εντυπωσιακά είναι, θα προσθέσουν λίγη χρήσιµη πληροφορία για το πραγµατικό σύστηµα. 13

15 1.8 Προβλήµατα / υσκολίες της Προσοµοίωσης Από τη στιγµή που έχει ληφθεί η απόφαση να χρησιµοποιηθεί προσοµοίωση για τη µελέτη ενός συστήµατος, έχει παρατηρηθεί ότι µπορούν να εµφανισθούν αρκετά προβλήµατα στην πορεία υλοποίησης ενός επιτυχηµένου προσοµοιωτή: Όχι καλά ορισµένοι στόχοι κατά την έναρξη της µελέτης. Ακατάλληλο επίπεδο λεπτοµέρειας του µοντέλου. Χειρισµός της µελέτης µε προσοµοίωση, σαν να ήταν βασικά µία δύσκολη άσκηση προγραµµατισµού. Έλλειψη στοιχειωδών γνώσεων Επιχειρησιακής Έρευνας και Στατιστικής. Χρήση εµπορικών πακέτων προσοµοιωτών που µπορεί να περιέχουν λάθη ή να µην υλοποιούν τη λογική του συστήµατος. Αποτυχία στη σωστή καταγραφή των πηγών τυχαιότητας του συστήµατος. Χρήση αυθαίρετων κατανοµών (π.χ. κανονική ή οµοιόµορφη) για την περιγραφή των εισόδων του προσοµοιωτή. Ανάλυση των δεδοµένων εξόδου από µία εκτέλεση του προσοµοιωτή, µε τη χρήση στατιστικών τύπων που προϋποθέτουν ανεξαρτησία. Χρήση λανθασµένων µέτρων απόδοσης. 14

16 Κεφάλαιο 2 ο Ανάλυση του Συστήματος 2.1 Ουρές Αναµονής Μια ουρά αναµονής ή ισοδύναµα ένα σύστηµα εξυπηρέτησης είναι ένα µαθηµατικό πρότυπο για τη µοντελοποίηση ενός πραγµατικού συστήµατος εισόδου - εξόδου µονάδων (πελατών) στο οποίο υπεισέρχεται τυχαιότητα. Τυπικά παραδείγµατα ουρών αναµονής που παρουσιάζονται στις εφαρµογές είναι τα ταµεία των τραπεζών και γενικότερα διαφόρων οργανισµών, τα τηλεφωνικά κέντρα εξυπηρέτησης πελατών, το τηλεφωνικό δίκτυο, το διαδίκτυο καθώς και τοπικά δίκτυα υπολογιστών, οι γραµµές παραγωγής µιας βιοµηχανικής µονάδας, συγκοινωνιακά δίκτυα κλπ. Στόχος της θεωρία των ουρών αναµονής είναι η ποσοτική περιγραφή τέτοιων συστηµάτων και ο βέλτιστος σχεδιασµός τους. To υπό µελέτη σύστηµα είναι ένα κατανεµηµένο σύστηµα ουρών αναµονής. 2.2 Τα κατανεµηµένα συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από ανεξάρτητους υπολογιστές το οποίο φαίνεται προς τους χρήστες του να λειτουργεί σαν ένα ενιαίο και συµπαγές σύστηµα. Ο ορισµός αυτός συµπληρώνεται από το γεγονός ότι το κατανεµηµένο σύστηµα είναι και το λογισµικό το οποίο καταφέρνει να πραγµατοποιήσει αυτή την αφαίρεση και να παρουσιάσει τους ανεξάρτητους υπολογιστές σαν ένα σύστηµα. Το λογισµικό αυτό αναφέρεται πολλές φορές και σαν ενδιάµεσο λογισµικό ή middleware. Ένας άλλος ορισµός είναι ότι ο κατανεµηµένος υπολογισµός είναι ο αποκεντρωµένος και παράλληλος υπολογισµός µε τη χρήση τουλάχιστον δύο υπολογιστών οι οποίοι συνδέονται σε ένα δίκτυο. Τα λειτουργικά συστήµατα, οι γλώσσες προγραµµατισµού καθώς και το υλικό το οποίο χρησιµοποιείται σε ένα κατανεµηµένο σύστηµα µπορεί να διαφέρουν µεταξύ τους κατά πολύ. Ένα κατανεµηµένο σύστηµα είναι παρόµοιο µε µια συστοιχία υπολογιστών µε τη διαφορά ότι οι υπολογιστικοί πόροι είναι γεωγραφικά διάσπαρτοι. 15

17 Οι παραπάνω ορισµοί µας δίνουν τα βασικά χαρακτηριστικά ενός κατανεµηµένου συστήµατος: είναι µια συλλογή από γεωγραφικά διάσπαρτους, πιθανώς ετερογενείς πόρους οι οποίοι συνεργάζονται για να επιτύχουν ένα κοινό αποτέλεσµα. Η συνεργασία αυτή γίνεται εφικτή από ένα δίκτυο επικοινωνίας και από ένα ενδιάµεσο λογισµικό το οποίο µοιράζονται οι πόροι αυτοί. Το σύστηµα αυτό φαίνεται σαν ένα αυτόνοµο σύστηµα στον τελικό χρήστη. Υπάρχουν φυσικά πολλά είδη κατανεµηµένων συστηµάτων τα οποία κυρίως κατηγοριοποιούνται µε βάση τον τρόπο που συνεργάζονται οι πόροι για να πετύχουν το τελικό αποτέλεσµα, την ιεραρχία που υπάρχει στους πόρους καθώς και από το ενδιάµεσο λογισµικό που χρησιµοποιούν. Το βασικό χαρακτηριστικό αυτού του ενδιάµεσου λογισµικού είναι ότι καταφέρνει να παρέχει τις υπηρεσίες του κατανεµηµένου συστήµατος στον τελικό χρήστη µε έναν διάφανο τρόπο. 2.3 Περιγραφή του Συστήµατος Η παρούσα εργασία ασχολείται µε την µοντελοποίηση, προσοµοίωση και µελέτη της χρονοδροµολόγησης παράλληλων εργασιών σε ένα κατανεµηµένο σύστηµα 32 εξυπηρετών µε εκθετικές αφίξεις και εξυπηρετήσεις, όπου ο κάθε εξυπηρέτης έχει τη δικιά του ουρά αναµονής. Στο σύστηµα εφαρµόζονται διαφορετικοί αλγόριθµοι επιλογής και πειθαρχίας ουράς. Στόχος είναι η µέτρηση της απόδοσης του συστήµατος ανάλογα µε τον αλγόριθµο που χρησιµοποιείται κάθε φορά και η επιλογή του καταλληλότερου αλγορίθµου για κάθε περίπτωση. Η χρονοδροµολόγηση εργασιών σε κατανεµηµένο σύστηµα είναι µια ευρεία επιστηµονική περιοχή, που έχει αποτελέσει το αντικείµενο µελέτης πολλών ερευνητικών εργασιών ( [4-16] ). 16

18 2.4 Χαρακτηριστικά / Παραδοχές του συστήµατος Παρακάτω αναφέρονται τα κύρια χαρακτηριστικά του συστήµατος προς µελέτη. Το σύστηµα έχει 32 εξυπηρέτες Κάθε εξυπηρέτης έχει τη δική του ουρά αναµονής. Οι διεργασίες έρχονται στο σύστηµα µε ρυθµό άφιξης λ. Οι αφίξεις των jobs είναι εκθετικά κατανεµηµένες. Κάθε διεργασία (job) έχει έναν αριθµό από υποδιεργασίες, tasks. Ο αριθµός αυτός είναι δύναµη του 2, δηλαδή µπορεί να είναι: 1, 2, 4, 8, 16 ή 32. Μια διεργασία θεωρείται ότι έχει ολοκληρωθεί και µπορεί να εγκαταλείψει το σύστηµα εάν όλες οι υποδιεργασίες (tasks) της έχουν ολοκληρώσει την επεξεργασία τους. Το κάθε task έχει το δικό του χρόνο εξυπηρέτησης και οι χρόνοι αυτοί ακολουθούν την εκθετική κατανοµή. Το κάθε task είναι ανεξάρτητο από τα άλλα. Η επιλογή του επεξεργαστή που θα εξυπηρετήσει την κάθε διεργασία µπορεί να γίνει µε δύο τρόπους: 1. Επιλογή του Server µε τη µικρότερη ουρά. 2. Τυχαία επιλογή ουράς (όλες οι ουρές έχουν ίση πιθανότητα επιλογής). Να σηµειώσουµε ότι στην πρώτη περίπτωση αν δύο εξυπηρέτες έχουν το ίδιο µήκος ουράς το πρόγραµµα θα επιλέξει εκείνον που είναι idle. Οι αλγόριθµοι επιλογής των tasks προς επεξεργασία είναι δύο: 1) FCFS (First Come First Served) 2) STF (Shortest Task First) Στο σύστηµα όλα τα jobs έχουν την ίδια προτεραιότητα και δεν υπάρχουν κρίσιµες διεργασίες. Ως συνθήκη τέλους ορίζεται η χρονική στιγµή που το Ν οστό job ολοκληρώνει την επεξεργασία του. Το µέγεθος του N καθορίζεται από τον χρήστη του προγράµµατος. 17

19 Κατά την έναρξη του προγράµµατος όλοι οι επεξεργαστές και οι ουρές τους είναι κενοί. Η πρώτη διεργασία φτάνει τη χρονική στιγµή µηδέν (χρόνος προσοµοίωσης). Σχήµα 2.1 Γραφική αναπαράσταση του συστήµατος 18

20 2.5 Η διαδικασία των αφίξεων Όπως αναφέραµε παραπάνω οι µεταξύ των αφίξεων χρόνοι είναι εκθετικά κατανεµηµένοι. Κατά την άφιξη µιας διεργασίας προγραµµατίζεται η άφιξη της επόµενης διεργασίας βάσει της εκθετικής κατανοµής. Κάθε διεργασία που φτάνει στο σύστηµα αποτελείται από έναν αριθµό tasks (υποδιεργασίες). Ο αριθµός αυτός µπορεί να είναι 1, 2, 4, 8, 16 ή 32. Στο πρόγραµµα εξετάζονται τρεις περιπτώσεις: 1. Τα jobs να έχουν 1, 2, 4, 8, 16 ή 32 tasks µε ίση πιθανότητα εµφάνισης (Equal Probabilities). Στην περίπτωση αυτή που απεικονίζεται γραφικά στο παρακάτω σχήµα το κάθε job έχει κατά µέσο όρο ( )/6 = 10,5 tasks. Σχήµα 2.2 Equal Probabilities 19

21 2. Τα jobs να έχουν 1, 2, 4 και 8 tasks µε 80% πιθανότητα εµφάνισης και 16 ή 32 tasks µε 20% πιθανότητα. Σε αυτή την περίπτωση (σχήµα 2.3) το κάθε job έχει κατά µέσο όρο ( )* (16+32)*0.20 = 7.8 tasks. Σχήµα 2.3 Non Equal Probabilities (80-20) 3. Τα jobs να έχουν 1, 2, 4 και 8 tasks µε 90% πιθανότητα εµφάνισης και 16 ή 32 tasks µε 10% πιθανότητα. Εδώ (σχήµα 2.4) το κάθε Job έχει κατά µέσο όρο ( )* (16+32)*0.10 = tasks (σχεδόν τα µισά tasks σε σχέση µε την περίπτωση νούµερο ένα ). Σχήµα 2.3 Non Equal Probabilities (90-10) 20

22 2.6 Η επιλογή της ουράς Όταν ένα job εισέλθει στο σύστηµα τα task του κατανέµονται στις ουρές των εξυπηρετών. Οι αλγόριθµοι επιλογής ουράς είναι δύο. Ο χρήστης του συστήµατος έχει τη δυνατότητα να επιλέξει τον αλγόριθµο που επιθυµεί για κάθε run της προσοµοίωσης. Τυχαία επιλογή της ουράς (Random Queue) Επιλογή της ουράς µε το µικρότερο µήκος, δηλαδή, της ουράς µε τις λιγότερες υποδιεργασίες σε αναµονή (Shortest Queue) 1. Τυχαία επιλογή της ουράς (Random Queue) Για κάθε task επιλέγεται ένας τυχαίος εξυπηρέτης. Όλοι οι εξυπηρέτες έχουν την ίδια πιθανότητα να επιλεγούν ( πιθανότητα = 1/32 = 3.1%). Το task εισάγεται στην ουρά του εξυπηρέτη και εάν εκείνος είναι ελεύθερος (idle) και δεν υπάρχει άλλη διεργασία σε αναµονή, ξεκινάει αµέσως εξυπηρέτηση. Σε αντίθετη περίπτωση παραµένει στην ουρά µέχρι να επιλεγεί από τον εξυπηρέτη για επεξεργασία. 2. Επιλογή της µικρότερης ουράς (Shortest Queue) Ο αλγόριθµος Shortest Queue λειτουργεί ως εξής: ιατρέχει όλες τις ουρές και ελέγχει το µήκος τους: Εάν υπάρχει µόνο µία ουρά µε το µικρότερο µήκος εισάγει το task στην ουρά αυτή. Εάν υπάρχουν περισσότερες από µία ουρές µε το ίδιο µήκος και το µήκος τους είναι διάφορο το µηδενός, δηλαδή οι ουρές δεν είναι κενές τότε επιλέγεται τυχαία µία από αυτές. Αν οι ουρές µε το µικρότερο µήκος είναι κενές ( queue_size = 0 ) τότε γίνεται έλεγχος των εξυπηρετών των ουρών αυτών: Αν υπάρχει µόνο ένας ελεύθερος (idle) εξυπηρέτης και όλοι οι άλλοι είναι busy, τότε επιλέγεται ο εξυπηρέτης αυτός και το task ξεκινά αµέσως επεξεργασία. Αν υπάρχουν περισσότεροι από έναν idle επεξεργαστές τότε επιλέγεται ένας τυχαία και το task ξεκινά αµέσως επεξεργασία. Αν όλοι οι εξυπηρέτες είναι busy, τότε επιλέγεται ένας τυχαία, το task εισάγεται στην ουρά του και αναµένει τη σειρά του για επεξεργασία. 21

23 Παρακάτω απεικονίζεται η λειτουργία του Shortest Queue Algorithm. Σχήµα 2.4 Ο αλγόριθµος Shortest Queue 22

24 2.7 Χρονοδροµολόγηση των διεργασιών Όταν ένα Job εισέρχεται στο σύστηµα, τα tasks που τον αποτελούν κατανέµονται στις ουρές βάσει ενός εκ των αλγορίθµων που αναφέρθηκαν παραπάνω. Οι αλγόριθµοι δροµολόγησης των tasks, που υποστηρίζει το σύστηµα είναι δύο: 1. Εξυπηρέτηση µε βάση τη σειρά άφιξης (First Come First Served FCFS) 2. Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια (Shortest Task First STF) Ο χειριστής του προγράµµατος επιλέγει τον αλγόριθµο που θα χρησιµοποιηθεί σε κάθε εκτέλεση (run) First Come First Served (FCFS) Πρόκειται για τον απλούστερο αλγόριθµο χρονοδροµολόγησης. Με αυτόν, οι διεργασίες εξυπηρετούνται µέχρι την ολοκλήρωση τους µε τη σειρά που εισήλθαν στη λίστα έτοιµων διεργασιών. Όπως φαίνεται και από το όνοµα του αλγορίθµου, η διεργασία που εισέρχεται πρώτη στην ουρά θα εξυπηρετηθεί και πρώτη. Κάθε φορά που µια διεργασία εισέρχεται στην ουρά ενός εξυπηρέτη, τοποθετείται στο τέλος της ουράς αυτής. Κάθε φορά που τελειώνει η εξυπηρέτηση µιας διεργασίας ο εξυπηρέτης επιλέγει για επεξεργασία την πρώτη διεργασία στην ουρά. 23

25 2.7.2 Shortest Task First (STF) Ο αλγόριθµος εξυπηρέτησης µε βάση τη µικρότερη διάρκεια κατατάσσει τις διεργασίες µε βάση τη διάρκεια εκτέλεσης τους. Η πιο σύντοµη διεργασία (µικρός χρόνος εξυπηρέτησης) τοποθετείται στην αρχή της ουράς και η πιο µεγάλη (χρονικά) στο τέλος της ουράς. Όταν µια διεργασία εισέρχεται στην ουρά ο χρονοδροµολογητής την τοποθετεί ανάµεσα στην αµέσως πιο σύντοµη και την αµέσως µεγαλύτερη. Κάθε φορά που ολοκληρώνεται η επεξεργασία µιας διεργασίας το σύστηµα επιλέγει να εξυπηρετήσει εκείνη που βρίσκεται στην αρχή της ουράς. Τα µειονεκτήµατα του αλγόριθµου είναι ότι σε ένα σύστηµα είναι πάρα πολύ δύσκολο έως αδύνατο να εκτιµηθεί µε ακρίβεια ο χρόνος που απαιτείται για την εκτέλεση µιας διεργασίας. Για το λόγο αυτό, ο αλγόριθµος εφαρµόζεται µόνο σε ειδικά συστήµατα και στο επίπεδο της µακροχρόνιας δροµολόγησης. Στα συστήµατα αυτά, οι χρήστες, όταν υποβάλουν µια διεργασία στο σύστηµα, δηλώνουν τη µέγιστη διάρκεια εκτέλεσης της. Αν η διεργασία δεν έχει ολοκληρωθεί στο δηλωµένο χρόνο, συνήθως διακόπτεται. Εµείς στο σύστηµα µας θεωρούµε ότι γνωρίζουµε το χρόνο εκτέλεσης κάθε διεργασίας κατά την άφιξη της. Ένα άλλο µειονέκτηµα του αλγορίθµου αυτού είναι ότι καθώς επιλέγεται πάντα η διεργασία µε το µικρότερο χρόνο εξυπηρέτησης, υπάρχει η πιθανότητα µια διεργασία µε πολύ µεγάλο χρόνο εξυπηρέτησης να µην εκτελεστεί ποτέ εάν στο σύστηµα καταφτάνουν συνέχεια διεργασίες µε µικρότερο χρόνο εξυπηρέτησης από αυτή. Το φαινόµενο αυτό ονοµάζεται παρατεταµένη στέρηση (starvation) και αντιµετωπίζεται µε µεθόδους ωρίµανσης (aging). 24

26 2.7.3 Παράδειγµα χρονοδροµολόγησης Για την καλύτερη κατανόηση των αλγορίθµων χρονοδροµολόγησης θα χρησιµοποιήσουµε ένα απλό παράδειγµα: Έστω ότι εισέρχονται στην ουρά ενός εξυπηρέτη οι παρακάτω διεργασίες : Στα παρακάτω διαγράµµατα µε κίτρινο συµβολίζεται ο χρόνος αναµονής στην ουρά και µε πράσινο ο χρόνος επεξεργασίας στον εξυπηρέτη. Mε τον FCFS έχουµε: Μέσος χρόνος αναµονής = ( ) / 4 = 15 χρονικές µονάδες. Μέσος χρόνος απόκρισης = [ (0+11) + (6+25) + (28+2) + (26+10) ] / 4 = 27 χρονικές µονάδες. Γενικά η απόδοση του αλγορίθµου είναι πολύ χαµηλή σε σχέση µε όλους τους υπόλοιπους ποσοτικούς δείκτες εκτίµησης απόδοσης αλγορίθµων χρονοδροµολόγησης. Παρατηρούµε ότι η διεργασία Γ µε διάρκεια µόλις 2 χρονικές µονάδες αναγκάστηκε να περιµένει 28 χρονικές µονάδες. 25

27 Με τον STF έχουµε: Μέσος χρόνος αναµονής = ( ) / 4 = 5,5 χρονικές µονάδες. Μέσος χρόνος απόκρισης = [ (0+11) + (18+25) + (3+2) + (1+10) ] / 4= 17,5 χρονικές µονάδες. Παρατηρούµε ότι οι χρόνοι αναµονής και απόκρισης είναι πολύ µικρότεροι σε σχέση µε εκείνους που έδωσε ο FCFS. Μάλιστα αποδεικνύεται ότι ο αλγόριθµος αυτός δίνει το βέλτιστο µέσο χρόνο αναµονής. 26

28 2.8 Μετρικές απόδοσης του συστήµατος Στο σύστηµα υπολογίζονται οι παρακάτω µετρικές απόδοσης. Βάσει αυτών µπορούµε να βγάλουµε συµπεράσµατα για το ποιος αλγόριθµος είναι ο πιο αποδοτικός σε κάθε περίπτωση. Μέσος Χρόνος Απόκρισης (Mean Response Time) Ο χρόνος απόκρισης είναι ο χρόνος που κάνει το job από την είσοδο του στο σύστηµα µέχρι την έξοδο του από αυτό. Περιλαµβάνει τον χρόνο αναµονής στην ουρά και τον χρόνο εξυπηρέτησης στον server. Καθώς στο σύστηµα µας το κάθε job έχει πολλά tasks, ο χρόνος απόκρισης αρχίζει να µετράει από τη στιγµή που το job εισέρχεται στο σύστηµα µέχρι τη στιγµή που ολοκληρώνεται η εξυπηρέτηση και του τελευταίου task. Μέγιστος Χρόνος Απόκρισης (Max Response Time) Η µέση τιµή δεν είναι πάντα αρκετή για να µας δώσει µια ακριβή εικόνα του συστήµατος. Έτσι εκτός από το µέσο χρόνο απόκρισης το σύστηµα υπολογίζει και το µέγιστο χρόνο απόκρισης, δηλαδή το µεγαλύτερο χρόνο που ένα job καθυστέρησε στο σύστηµα. Μέσος χρόνος αναμονής (Mean Waiting Time) Για κάθε ουρά υπολογίζεται ο µέσος χρόνος αναµονής σε αυτήν. Χρόνος αναµονής είναι ο χρόνος από τη στιγµή που ένα task εισέρχεται στην ουρά µέχρι τη στιγµή που επιλέγεται για επεξεργασία. Μέσο μήκος ουράς (Mean Queue Length) Το σύστηµα µας έχει 32 ουρές. Υπολογίζεται λοιπόν το µέσο µήκος κάθε µία από αυτές και στη συνέχεια υπολογίζεται το µέσο µήκος όλων των ουρών. Είναι εµφανές ότι µεγαλύτερο µέσο µήκος ουράς του συστήµατος σηµαίνει µεγάλο αριθµό διεργασιών που περιµένουν στις ουρές πράγµα που συνεπάγεται µεγαλύτερο µέσο χρόνο αναµονής και κατ επέκταση µεγαλύτερο µέσο χρόνο απόκρισης. Μέγιστο μήκος ουράς (Max Queue Length) Πρόκειται για το µέγιστο µήκος ουράς που παρατηρήθηκε κατά τη διάρκεια της προσοµοίωσης. 27

29 Συνολικός χρόνος προσομοίωσης (Total Simulation Time) Πρόκειται για το χρόνο από την είσοδο του πρώτου job στο σύστηµα µέχρι να ικανοποιηθεί η συνθήκη τέλους. Μέση χρησιμοποίηση του συστήματος (Mean System Utilization) Η µέση χρησιµοποίηση του συστήµατος αφορά το πόσο απασχοληµένοι ήταν οι εξυπηρέτες του συστήµατος. Αρχικά υπολογίζεται η µέση χρησιµοποίηση για κάθε εξυπηρέτη χωριστά και έπειτα η µέση εξυπηρέτηση όλου του συστήµατος. 28

30 Κεφάλαιο 3 ο Σχεδίαση του Συστήματος 3.1 Περιπτώσεις Χρήσης Αρχικά, σχεδιάζουµε τις περιπτώσεις χρήσης του συστήµατος. Από την ανάλυση και την περιγραφή του συµπεραίνουµε ότι οι κύριες περιπτώσεις χρήσης θα είναι: Άφιξη του job στο σύστηµα Είσοδος στην ουρά κάποιου εξυπηρέτη Ολοκλήρωση της επεξεργασίας (Αναχώρηση) Έξοδος από το σύστηµα Παρακάτω απεικονίζεται το διάγραµµα περιπτώσεων χρήσης του συστήµατος: Σχήµα 3.1 Το διάγραµµα περιπτώσεων χρήσης 29

31 3.1.1 Άφιξη νέου job στο σύστηµα Στη παράγραφο αυτή εξετάζεται η περίπτωση χρήσης «άφιξη ενός job στο σύστηµα». Παρακάτω παρουσιάζεται το διάγραµµα δραστηριοτήτων για την περίπτωση αυτή. Σχήµα 3.2 Το διάγραµµα δραστηριοτήτων για την άφιξη νέου job στο σύστηµα 30

32 3.1.2 Εισαγωγή του job στην ουρά αναµονής Παρακάτω απεικονίζεται το διάγραµµα δραστηριοτήτων για την περίπτωση χρήσης: Εισαγωγή του job στην ουρά αναµονής. Ο αλγόριθµος Shortest Queue αναφέρεται συνοπτικά καθώς έχει περιγραφεί αναλυτικά στην παράγραφο 2.6. Σχήµα 3.3 Το διάγραµµα δραστηριοτήτων για την εισαγωγή ενός job στην ουρά αναµονής 31

33 3.1.3 Ολοκλήρωση της εξυπηρέτησης (Αναχώρηση) Στην παράγραφο αυτή απεικονίζεται το διάγραµµα δραστηριοτήτων για την περίπτωση χρήσης: Αναχώρηση διεργασίας από τον server. Σχήµα 3.4 Το διάγραµµα δραστηριοτήτων για την περίπτωση αναχώρησης διεργασίας από τον server 32

34 3.2 ιαχείριση των γεγονότων Στο σύστηµα παρατηρούνται δύο τύποι γεγονότων: Άφιξη νέου job στο σύστηµα Αναχώρηση διεργασίας από το σύστηµα Η πρώτη άφιξη γίνεται τη χρονική στιγµή 0 (χρόνος προσοµοίωσης). Σε κάθε νέα άφιξη διεργασίας προγραµµατίζεται η επόµενη άφιξη και εισάγεται στη λίστα γεγονότων. Η επόµενη άφιξη υπολογίζεται µε βάση την εκθετική κατανοµή. Έτσι, µε κάθε νέα άφιξη γίνονται οι παρακάτω ενέργειες: 1. Προγραµµατισµός επόµενης άφιξης µε βάση την εκθετική κατανοµή 2. Υπολογισµός του αριθµού των tasks 3. Καθορισµός του χρόνου εξυπηρέτησης για κάθε task µε βάση την εκθετική κατανοµή Παρατηρούµε λοιπόν, ότι το κάθε task έχει δύο χρόνους που µας ενδιαφέρουν. Τον χρόνο άφιξης Τον χρόνο εξυπηρέτησης Όταν ένα task επιλέγεται από κάποιον εξυπηρέτη για επεξεργασία το σύστηµα δηµιουργεί ένα γεγονός αναχώρησης, το οποίο προστίθεται στη λίστα γεγονότων και εξαρτάται από το χρόνο εξυπηρέτησης του task που είχε ήδη υπολογιστεί κατά την άφιξη του. Για παράδειγµα αν τη χρονική στιγµή 10 επιλέγεται για επεξεργασία ένα task µε χρόνο εξυπηρέτησης 3, αυτόµατα δηµιουργείται ένα γεγονός αναχώρησης µε χρόνο = 13 χρονικές µονάδες το οποίο προστίθεται στη λίστα γεγονότων. Κάθε γεγονός πρέπει να έχει τα εξής χαρακτηριστικά: 1. να προσδιορίζει το χρόνο που πρέπει να συµβεί, 2. να προσδιορίζει εάν είναι event άφιξης ή αναχώρησης, 3. αν πρόκειται για αναχώρηση θα πρέπει να καθορίζει σε ποια ουρά αναφέρεται η αναχώρηση. Στη λίστα των γεγονότων, τα events τοποθετούνται µε βάσει τη χρονική στιγµή που πρέπει να συµβεί το καθένα. Έτσι το event που θα συµβεί συντοµότερα θα είναι πρώτο στη λίστα, ενώ το πιο αποµακρυσµένο χρονικά event θα βρίσκεται τελευταίο. 33

35 Παράδειγμα Έστω ότι τη χρονική στιγµή 0 φτάνει στο σύστηµα ένα job µε 4 tasks. Για το κάθε task υπολογίζεται ο χρόνος εξυπηρέτησης του και γίνεται η κατανοµή των tasks στις ουρές. Έστω ότι η επιλογή της ουράς γίνεται µε shortest queue οπότε, καθώς όλες οι ουρές είναι άδειες το κάθε task θα τοποθετηθεί σε διαφορετική ουρά και θα ξεκινήσει αµέσως επεξεργασία. Επίσης προγραµµατίζεται η επόµενη άφιξη job τη χρονική στιγµή 1.5. Η λίστα των γεγονότων θα είναι η εξής: 34

36 3.3 Ο µηχανισµός εξέλιξης του χρόνου Η διαχείριση του χρόνου γίνεται µε τη βοήθεια µιας πραγµατικής µεταβλητής που ονοµάζεται time και προσοµοιώνει το ρολόι του συστήµατος. Η τιµή του ρολογιού δεν µεταβάλλεται κατά τακτά χρονικά διαστήµατα αλλά σύµφωνα µε τον χρόνο του επόµενου γεγονότος. ηλαδή, στο παράδειγµα της προηγούµενης παραγράφου το ρολόι θα πάρει τις τιµές: 1, 1.5, 2, 3, 5. Ολόκληρη η προσοµοίωση είναι ουσιαστικά µια δοµή επανάληψης που περιγράφεται από το παρακάτω διάγραµµα: Σχήµα 3.5 Η βασική δοµή επανάληψης της προσοµοίωσης 35

37 Είναι, δηλαδή ένα loop το οποίο ελέγχει εάν έχει συµβεί ο απαιτούµενος αριθµός αναχωρήσεων για τον τερµατισµό της προσοµοίωσης και αν όχι καλεί τη ρουτίνα χρόνου. Η λειτουργία της ρουτίνας αυτής απεικονίζεται στο παρακάτω διάγραµµα: Σχήµα 3.6 Η ρουτίνα χρόνου 36

38 3.4 ηµιουργία Τυχαίων Παρατηρήσεων Οι χρόνοι των αφίξεων και των εξυπηρετήσεων είναι εκθετικά κατανεµηµένοι. Θα πρέπει λοιπόν το πρόγραµµα να δηµιουργεί τυχαίες παρατηρήσεις µε βάση την εκθετική κατανοµή. Αυτό επιτυγχάνεται µε την τεχνική του αντίστροφου µετασχηµατισµού. Η συνάρτηση της εκθετικής κατανοµής δίνεται από τον τύπο: F(x) = Για τον υπολογισµό της αντίστροφης συνάρτησης της F(x) λύνουµε ως προς x και έχουµε: F -1 (u) = (1/λ) ln(1-u) Όπου λ είναι ο ρυθµός άφιξης των εργασιών και u ένας τυχαίος αριθµός µεταξύ του 0 και του 1. Συνεπώς, για τη δηµιουργία εκθετικών παρατηρήσεων απλά δηµιουργούµε έναν τυχαίο αριθµό U ~ U(0,1) και θέτουµε: Χ = (1/λ) ln U 37

39 Κεφάλαιο 4 ο Υλοποίηση του Συστήματος 4.1 Καθορισµός των κλάσεων Σύµφωνα µε όσα ειπώθηκαν παραπάνω καταλήγουµε ότι το πρόγραµµα θα αποτελείται από οχτώ κλάσεις που είναι οι εξής: 1. Class Job Η κλάση αυτή θα αναπαριστά τη διεργασία (job) που φτάνει και εξυπηρετείται στο σύστηµα. Κύρια attributes της κλάσης αυτής θα είναι το arrival time καθώς και ο αριθµός των tasks που περιέχει. 2. Class Task Πρόκειται για την κλάση που αναπαριστά την υποδιεργασία (task) που ανήκει σε κάποιο συγκεκριµένο job και ζητά επεξεργασία από το σύστηµα. Κύρια attributes της κλάσης αυτής θα είναι το arrival και το service time. 3. Class Queue Η κλάση αυτή προσοµοιώνει τον επεξεργαστή µε την ουρά του. Στην περίπτωση του FCFS η κλάση αυτή είναι µια απλή συνδεδεµένη λίστα ενώ στην περίπτωση του STF είναι διπλή συνδεδεµένη λίστα. 4. Class Event Εκφράζει τα γεγονότα που δηµιουργούνται κατά την άφιξη µιας διεργασίας στο σύστηµα (arrival event) και κατά την είσοδο της διεργασίας στον επεξεργαστή (departure event). 5. Class EventList Πρόκειται για µια διπλή συνδεδεµένη λίστα στην οποία αποθηκεύονται τα events. 6. Class Simulation Πρόκειται για την κλάση που προσοµοιώνει το σύστηµα και διαχειρίζεται τις αφίξεις, τις εξυπηρετήσεις, τη δηµιουργία γεγονότων κ.λ.π. 38

40 7. Class Generator Η κλάση αυτή δηµιουργεί εκθετικά κατανεµηµένους χρόνους για τις αφίξεις και της εξυπηρετήσεις καθώς και τυχαίους αριθµούς. 8. Class Statistics Η κλάση αυτή υπολογίζει τα στατιστικά στοιχεία του συστήµατος. Κάποιες από τις κλάσεις αυτές διαφοροποιούνται ανάλογα µε το εάν έχουµε First Come First Served ή Shortest Task First. Στην περίπτωση του FCFS οι ουρές θα µπορούσαν να αναπαρασταθούν µε µία απλή συνδεδεµένη λίστα ενώ στην περίπτωση του STF θα ήταν πιο εύχρηστη µία διπλή συνδεδεµένη λίστα. Έτσι, θα κατασκευάσουµε δύο διαφορετικά προγράµµατα. Το ένα θα δροµολογεί τις διεργασίες βάσει του αλγορίθµου FCFS ενώ το άλλο θα δίνει προτεραιότητα στα µικρότερα tasks (STF). 39

41 4.2 Το διάγραµµα κλάσεων Παρακάτω απεικονίζεται το διάγραµµα κλάσεων του συστήµατος. 40

42 4.3 Τεκµηρίωση του πηγαίου κώδικα Η παράγραφος αυτή περιλαµβάνει έναν αναλυτικό σχολιασµό του κώδικα ανά κλάση του προγράµµατος class Job Η κλάση Job προσοµοιώνει τις διεργασίες που καταφτάνουν στο σύστηµα σε τακτά χρονικά διαστήµατα και ζητούν επεξεργασία. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: int numoftasks Ο αριθµός των tasks του job double arrival_time Ο χρόνος άφιξης του job int numoftasksexecuted Ο αριθµός των tasks που έχουν ολοκληρώσει επεξεργασία Μέθοδοι Job(int numtasks, double AT) Πρόκειται για τον constructor της κλάσης, ο οποίος την αρχικοποιεί ορίζοντας το χρόνο άφιξης και τον αριθµό των tasks που περιέχει το Job. double getat() Επιστρέφει το χρόνο άφιξης (arrival_time). int executedtask() Η µέθοδος αυτή καλείται κάθε φορά που ολοκληρώνει την εξυπηρέτηση του κάποιο από τα tasks του job. Αυξάνει το µετρητή numoftasksexecuted κατά ένα και εάν έχουν εξυπηρετηθεί όλα τα tasks του Job επιστρέφει 1. Σε διαφορετική περίπτωση επιστρέφει 0. 41

43 4.3.2 class Task Η κλάση αυτή προσοµοιώνει τις υποδιεργασίες (tasks). Χαρακτηριστικά Σε περίπτωση που έχουµε FCFS, τα χαρακτηριστικά της κλάσης είναι τα εξής: double service_time Ο χρόνος εκτέλεσης του task. double arrival_time Ο χρόνος άφιξης του task. double time_task_enters_queue Η χρονική στιγµή που το task εισέρχεται στην ουρά. double time_task_leaves_queue Η χρονική στιγµή που το task εξέρχεται από την ουρά. Job* job είκτης στο job, στο οποίο ανήκει το task. Task *next είκτης στο επόµενο task στην ουρά. Στην περίπτωση που έχουµε STF προστίθεται ένα ακόµη χαρακτηριστικό : Task *prev. Όπως ειπώθηκε παραπάνω για να υλοποιηθεί ο STF χρησιµοποιούµε διπλή συνδεδεµένη λίστα, οπότε πρέπει να ορίσουµε και έναν ακόµα δείκτη που να δείχνει στο προηγούµενο task της ουράς (Task*prev). Επίσης, στην περίπτωση του STF έχουµε ακόµα δύο µεθόδους (Task*getprev() και void setprev(task*t)). Η κλάση Task µε FCFS Η κλάση Task µε STF 42

44 Μέθοδοι Task(double ST,double AT, Job* j) Πρόκειται για τον constructor της κλάσης, οποίος θέτει τιµές στο χρόνο εξυπηρέτησης (service_time) και στο χρόνο άφιξης (arrival_time) και υποδεικνύει το job στο οποίο ανήκει το συγκεκριµένο task (Job *j). Task* getprev(){return prev;} Επιστρέφει την τιµή του δείκτη prev. void setprev(task* t) {prev = t;} Καθορίζει την τιµή του δείκτη prev. Task* getnext(){return next;} Επιστρέφει την τιµή του δείκτη next. void setnext(task* t) {next = t;} Καθορίζει την τιµή του δείκτη next. double getst() {return service_time;} Επιστρέφει το χρόνο εξυπηρέτησης (service time). double getat() {return arrival_time;} Επιστρέφει το χρόνο άφιξης (arrival time). void settteq(double time) Καθορίζει τη χρονική στιγµή που το task εισέρχεται στην ουρά. void setttlq(double time) Καθορίζει τη χρονική στιγµή που το task φεύγει από την ουρά και ξεκινά εξυπηρέτηση. double get_delay_in_queue() Επιστρέφει το χρόνο αναµονής του task στην ουρά. Job* getjob(){return job;} Επιστρέφει το job στο οποίο ανήκει το task. 43

45 4.3.3 class Queue Η κλάση αυτή προσοµοιώνει τον εξυπηρέτη µε την ουρά του. Στην περίπτωση που έχουµε First Come First Served η κλάση Queue είναι µια απλή συνδεδεµένη λίστα, ενώ στην περίπτωση που έχουµε STF, η κλάση είναι µια διπλή συνδεδεµένη λίστα. Η κύρια διαφορά των δύο είναι στην εισαγωγή ενός task στην ουρά. Στον FCFS το task τοποθετείται στο τέλος της ουράς, ενώ στον STF τα tasks είναι ταξινοµηµένα µε βάση το χρόνο εξυπηρέτησης. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: int busy Παίρνει την τιµή 1 αν ο εξυπηρέτης είναι busy και την τιµή 0 αν είναι idle. Task* processing είκτης στο task που εξυπηρετείται εκείνη τη χρονική στιγµή. Αν δεν εξυπηρετείται κανένα task ο δείκτης έχει την τιµή NULL. Task *head είκτης στην κεφαλή της ουράς Task *tail είκτης στο τελευταίο στοιχείο της ουράς int size Το µέγεθος της ουράς Μέθοδοι Queue() Constructor της κλάσης. Αρχικοποιεί τις µεταβλητές. Task* getprocessing() Επιστρέφει έναν δείκτη στο task που εκτελείται τη δεδοµένη στιγµή. Task* deletehead() ιαγράφει το πρώτο task της ουράς. void setbusy(int b) Θέτει τον εξυπηρέτη ίσο µε busy (απασχοληµένος). 44

46 int isbusy() Επιστρέφει 1 εάν ο εξυπηρέτης είναι busy και 0 στην αντίθετη περίπτωση. bool isempty() Επιστρέφει True εάν η ουρά είναι άδεια και False σε άλλη περίπτωση. void setprocessing(task *t) Καθορίζει το task που επιδέχεται επεξεργασία εκείνη τη στιγµή. int getsize() Επιστρέφει το µέγεθος της ουράς. void insertlast(task* t) (FCFS) Η µέθοδος αυτή χρησιµοποιείται µόνο όταν έχουµε FCFS και εισάγει ένα task στο τέλος της ουράς. void insert(task* t) (STF) Η µέθοδος αυτή χρησιµοποιείται µόνο όταν έχουµε STF και εισάγει το task στην κατάλληλη θέση ανάλογα µε την τιµή του χρόνου εξυπηρέτησης του. Η κλάση Queue µε FCFS Η κλάση Queue µε STF 45

47 4.3.4 class Event Η κλάση event προσοµοιώνει τα γεγονότα στο σύστηµα µας. Υπάρχουν δύο κατηγορίες γεγονότων: οι αφίξεις και οι αναχωρήσεις. Και οι δύο τύποι πρέπει υποχρεωτικά να καθορίζουν τη χρονική στιγµή που θα λάβουν χώρα. Επιπρόσθετα, η κάθε αναχώρηση πρέπει να προσδιορίζει και την ουρά στην οποία αναφέρεται. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: double EventTime Ο χρόνος που θα συµβεί το γεγονός int EventType Ο τύπος του Event (arrival ή departure) int Serv_num Ο server στον οποίο αναφέρεται το event αν πρόκειται για departure. Event *next είκτης στο επόµενο event της λίστας Event *prev είκτης στο προηγούµενο event της λίστας Μέθοδοι Event (int, int, double) O constructor της κλάσης. int gettype() Επιστρέφει την τιµή της µεταβλητής EventType int getsn() Επιστρέφει την τιµή της µεταβλητής Serv_num, δηλαδή, τον αριθµό της ουράς στην οποία αναφέρεται η αναχώρηση. void seteventtime(double ET) Θέτει την τιµή του EventType ίση µε ET. double geteventtime() Επιστρέφει την τιµή του EventType. 46

48 void setnext(event *e) Θέτει το δείκτη next ίσο µε e. Event *getnext(void) Επιστρέφει την τιµή του next class EventList Η κλάση EventList αποτελεί ουσιαστικά τη λίστα γεγονότων. Πρόκειται για µία διπλή συνδεδεµένη λίστα (Doubly Linked List) στην οποία τα γεγονότα ταξινοµούνται µε βάση τη χρονική στιγµή που θα συµβούν. Έτσι το event που θα συµβεί συντοµότερα θα είναι πρώτο στη λίστα, ενώ το πιο αποµακρυσµένο χρονικά event θα βρίσκεται τελευταίο. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: int size Το µέγεθος της λίστας Event *first είκτης στο πρώτο στοιχείο της λίστας Event *last Το τελευταίο στοιχείο της λίστας Μέθοδοι EventList() Ο constructor της κλάσης. Αρχικοποιεί τις µεταβλητές της. void insert(event* e) Ρουτίνα που εισάγει ένα νέο event στη λίστα. Η θέση που θα τοποθετηθεί το νέο event εξαρτάται από τη χρονική στιγµή που θα συµβεί αυτό. Event* getfirst() Επιστρέφει το δείκτη first. int getsize() Επιστρέφει το µέγεθος της λίστας. void deletefirst() ιαγράφει το πρώτο στοιχείο της λίστας. 47

49 4.3.6 class Generator Η κλάση αυτή αποτελεί τη γεννήτρια των τυχαίων και εκθετικών αριθµών, που χρησιµοποιούνται στις κατανοµές. Περιλαµβάνει 6 seeds, ένα για κάθε τυχαίο αριθµό που πρέπει να υπολογίσουµε. Παρακάτω αναγράφονται τα χαρακτηριστικά και οι µέθοδοι της κλάσης. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: double seed1, seed2, seed3, seed4, seed5, seed6 Πρόκειται για τα seeds, απαραίτητα για τη δηµιουργία τυχαίων παρατηρήσεων. double y1, y2, y3, y4, y5, y6 Μεταβλητές απαραίτητες για τη γεννήτρια τυχαίων αριθµών. Είναι έξι γιατί χρειαζόµαστε έξι διαφορετικές ακολουθίες τυχαίων αριθµών στο πρόγραµµα. Μέθοδοι Generator() Ο constructor της κλάσης. Αρχικοποιεί τις µεταβλητές της. double random(double ygen, int type) Η παραπάνω µέθοδος παράγει τυχαίους αριθµούς µεταξύ του 0 και του 1. Χρησιµοποιεί το κατάλληλο seed ανάλογα µε την τιµή της µεταβλητής type. Για παράδειγµα θα χρησιµοποιηθεί διαφορετικό seed αν ο τυχαίος αριθµός που υπολογίζεται αναφέρεται στην επιλογή ουράς και διαφορετικό αν αναφέρεται στις αφίξεις. double expon(double mean, int type) Η µέθοδος αυτή παράγει εκθετικούς αριθµούς χρησιµοποιώντας τη µέθοδο random. Και πάλι παίζει ρόλο η µεταβλητή type καθώς θέλουµε διαφορετική κατανοµή για τις αφίξεις και άλλη για τις εξυπηρετήσεις. 48

50 4.3.7 class Statistics Η κλάση Statistics περιέχει µεθόδους υπολογισµού των στατιστικών στοιχείων του συστήµατος. Μετά το τέλος της προσοµοίωσης καταγράφει τα αποτελέσµατα σε ένα αρχείο κειµένου. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: double mean_interarrival_time Μεταβλητή για το χρόνο που µεσολαβεί µεταξύ των αφίξεων. double last_arrival_time Ο χρόνος που είχαµε την τελευταία άφιξη. double mean_serv_time Ο µέσος χρόνος εξυπηρέτησης. double Serv_Utilisation[32] Η χρησιµοποίηση του server (για κάθε server ξεχωριστά). double time_last_delay[32] Η χρονική στιγµή που έγινε η τελευταία καθυστέρηση. double Avg_delay_in_queue[32] Μέση καθυστέρηση στην ουρά. int total_jobs_in_queue[32] Ο αριθµός των Jobs στην ουρά. int total_delays[32] Ο αριθµός των καθυστερήσεων. double Avg_queue_length[32] Το µέσο µήκος της ουράς. int last_queue_size[32] Το τελευταίο µήκος της ουράς. double time_last_queue_size[32] Η χρονική στιγµή που είχαµε το τελευταίο µήκος της ουράς. double mean_response_time Μέσος χρόνος απόκρισης για τα tasks. 49

51 double mean_response_time_jobs Μέσος χρόνος απόκρισης για τα jobs. double max_response_time Μέγιστος χρόνος απόκρισης για τα jobs. double last_system_change Η χρονική στιγµή που είχαµε την τελευταία αλλαγή στην κατάσταση του συστήµατος (αφιξη/αναχώρηση). double Avg_jobs_in_system Μέσος αριθµός των jobs στο σύστηµα. int jobs_in_system Ο αριθµός των jobs στο σύστηµα. int max_jobs_in_system Ο µέγιστος αριθµός των jobs στο σύστηµα. int total_tasks O συνολικός αριθµός των tasks που πέρασαν από το σύστηµα. int total_jobs O συνολικός αριθµός των jobs που πέρασαν από το σύστηµα. ofstream file Το αρχείο στο οποίο καταγράφονται τα στατιστικά στοιχεία του συστήµατος. 50

52 Μέθοδοι Παρακάτω καταγράφονται οι βασικότεροι µέθοδοι της κλάσης Statistics. Statistics() Ο constructor της κλάσης. Αρχικοποιεί τις µεταβλητές της. void calc_mean_interarrival_time(double time) H µέθοδος αυτή υπολογίζει το χρόνο µεταξύ των αφίξεων (mean interarrival time). void calc_mean_serv_time(double time) Η παραπάνω µέθοδος υπολογίζει το µέσο χρόνο εξυπηρέτησης (mean service time). void printstats(double time, int QD, int, int, int, char, char) Καταγράφει τα στατιστικά στοιχεία στο αρχείο file. void increase_serv_utilisation(int qnum, double time) Καλείται κάθε φορά που έχουµε αναχώρηση και ενηµερώνει τη µεταβλητή που κρατά τη χρησιµοποίηση των εξυπηρετών. Έτσι υπολογίζεται η µέση χρησιµοποίηση για κάθε server και κατ επέκταση και όλου του συστήµατος. void calc_avg_delay_in_queue(int qnum, double delay) Υπολογίζει το µέσο χρόνο αναµονής στην ουρά. void queue_size_change(int qnum, int qsize, double time) Καλείται όποτε αλλάζει το µήκος της ουράς, δηλαδή, όποτε έχουµε άφιξη η αναχώρηση και υπολογίζει το µέσο µήκος ουράς. void increase_response_time(double time, double AT) Υπολογίζει το µέσο χρόνο απόκρισης για τα tasks του συστήµατος. void increase_response_time_jobs(double time, double AT) Υπολογίζει το µέσο χρόνο απόκρισης για τα Jobs του συστήµατος. void calc_mean_jobs_in_system(double time, int ) Υπολογίζει το µέσο αριθµό των Jobs στο σύστηµα. 51

53 4.3.7 class Simulation Η κλάση Simulation αποτελεί την κύρια κλάση προσοµοίωσης του συστήµατος και περιέχει τη διαχείριση των αφίξεων, των αναχωρήσεων, του χρόνου, της λίστας των γεγονότων κ.λ.π. Χαρακτηριστικά Τα χαρακτηριστικά της κλάσης είναι τα εξής: Statistics s Αντικείµενο της κλάσης Statistics. Generator gen Αντικείµενο της κλάσης Generator. Queue queues[32] Οι 32 ουρές / εξυπηρέτες του συστήµατος. double time Το ρολόι του συστήµατος. EventList events Αντικείµενο της κλάσης EventList. int system_arrivals Ο αριθµός των αφίξεων στο σύστηµα. int system_departs Ο αριθµός των αναχωρήσεων από το σύστηµα. int tasks_in_system Ο αριθµός των tasks στο σύστηµα. int queue_departs Ο αριθµός των αναχωρήσεων από τις ουρές. int system_delays; Ο αριθµός των καθυστερήσεων στο σύστηµα. double l Ο ρυθµός άφιξης των jobs (λ). double m Ο ρυθµός εξυπηρέτησης (µ). 52

54 char type Μεταβλητή που κρατά την επιλογή του χρήστη για τον τρόπο επιλογής της ουράς. char type2 Μεταβλητή που κρατά την επιλογή του χρήστη για το µέσο αριθµό των tasks ανά job. ofstream file Το log file. Μέθοδοι Παρακάτω καταγράφονται οι βασικότεροι µέθοδοι της κλάσης Simulation. Simulation(double d1, double d2, char c1, char c2) Ο constructor της κλάσης. int getsd() Επιστρέφει την τιµή της µεταβλητής system_delays. void stats() Καλεί την printstats της Statistics. void Arrival() Άφιξη νέου job στο σύστηµα. void Departure(int qnum) Ρουτίνα αναχώρησης job από το σύστηµα. void AdvanceClock() Μετακίνηση του ρολογιού στο χρόνο του επόµενου event. int pickqueue() Επιλέγει τη µικρότερη ουρά. Αν δυο ουρές έχουν ίδιο µήκος επιλέγεται αυτή µε idle επεξεργαστή. int pickqueue2() Τυχαία επιλογή της ουράς. int random_numoftasks() Το κάθε job έχει 1,2,4,8,16 ή 32 tasks µε ίση πιθανότητα εµφάνισης. int numoftasks2(char) Το κάθε job έχει 1,2,4,8,16 ή 32 tasks µε µεγαλύτερη πιθανότητα εµφάνισης των 1,2,3,4 και 8. 53

55 4.4 Είσοδος / Έξοδος του συστήµατος Το σύστηµα έχει σαν είσοδο ένα αρχείο κειµένου (Input.txt) στο οποίο ο χρήστης καθορίζει το mean interarrival time (µέσος χρόνος µεταξύ τον αφίξεων, λ) και το mean service time (µέσος χρόνος εξυπηρέτησης, 1/µ) των διεργασιών. Επίσης καθορίζει τη συνθήκη τέλους. Κατά την εκτέλεση του προγράµµατος ο χρήστης καλείται να επιλέξει τον αλγόριθµο επιλογής της ουράς καθώς και τον αριθµό των tasks που θα έχει το κάθε job (µε πιθανότητες ή χωρίς). Η έξοδος του συστήµατος είναι δύο αρχεία κειµένου. Statistics.txt περιέχει τις µετρικές απόδοσης που περιγράφηκαν στην ενότητα 2.8. Επίσης, σε αυτό καταγράφονται στατιστικά στοιχεία για όλες τις ουρές του συστήµατος. Log_File.txt περιέχει όλα τα γεγονότα µε τη σειρά που συµβαίνουν στο σύστηµα. Input.txt Παράδειγµα του αρχείου εισόδου. 54

56 Statistics.txt Παράδειγµα του αρχείου Statistics.txt για το παραπάνω input file. Statistika stoixeia tis prosomoiosis ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ FCFS -- Shortest Queue -- Equal Probabilities Total Simulation Time: Mean system utilization: % Mean interarrival time: Mean service time: Jobs --- Total Delays (Jobs): Jobs in System (when simulation ends): 6 Total Jobs: Mean Response Time: Max Response Time: Tasks --- Total Delays (Tasks): Tasks in System (when simulation ends): 16 Total Tasks: Mean Response Time: Mean queue length (mean jobs in system): Max queue Length (max number of jobs in system): 75 Server 1 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 2 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 3 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 4 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 5 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays:

57 Server 6 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 7 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 8 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 9 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 10 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 11 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 12 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 13 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 14 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays:

58 Server 15 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 16 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 17 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 18 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 19 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 20 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 21 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 22 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 23 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays:

59 Server 24 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 25 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 26 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 27 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 28 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 29 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 30 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 31 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays: Server 32 ~~~~~~~~~~~ Utilization : % Mean waiting time in queue: Mean queue length: Total delays:

60 Log_File.txt Το Log_File αποτελείται από πέντε στήλες: 1. Ο χρόνος που συµβαίνει το γεγονός 2. Ο τύπος του γεγονότος (άφιξη, αναχώρηση) 3. Η ουρά στην οποία εισάγεται το task αν πρόκειται για άφιξη ή η ουρά από την οποία αναχωρεί το task αν πρόκειται για αναχώρηση. 4. Ο χρόνος άφιξης του task στο σύστηµα. 5. O χρόνος εξυπηρέτησης του task. Όλες οι εγγραφές αναφέρονται σε tasks και όχι σε jobs. Για καλύτερη παρακολούθηση των jobs του συστήµατος, υπάρχουν επιπλέον εγγραφές που καταγράφουν τη χρονική στιγµή που έφτασε ένα job στο σύστηµα ή αναχώρησε από αυτό. Παράδειγµα: 59

61 Κεφάλαιο 5 ο Πειραματισμός και Ανάλυση της Απόδοσης Για τη µελέτη της απόδοσης του υπό εξέταση συστήµατος έχουν διεξαχθεί τρεις σειρές πειραµάτων. Κάθε σειρά εξετάζει µια διαφορετική παράµετρο απόδοσης. Έτσι η πρώτη σειρά αναφέρεται στο µέσο χρόνο απόκρισης, η δεύτερη στο µέγιστο χρόνο απόκρισης και η τρίτη στη µέση χρησιµοποίηση του συστήµατος. Για να καλυφθούν όλοι οι δυνατοί συνδυασµοί αλγορίθµων, η κάθε σειρά χωρίζεται σε πειράµατα ανάλογα µε τον µέσο αριθµό των tasks ανά διεργασία. Κάθε πείραµα περιλαµβάνει µια σειρά από εκτελέσεις του προγράµµατος (συνήθως 12 runs) και από αυτές προκύπτουν δύο διαγράµµατα (ένα για κάθε αλγόριθµο επιλογής ουράς, Random / Shortest Queue ) από τα οποία µπορούν να διεξαχθούν συµπεράσµατα για την απόδοση των αλγορίθµων δροµολόγησης, STF και FCFS. Σε όλα τα πειράµατα ο µέσος χρόνος εξυπηρέτησης είναι 1 και το πρόγραµµα τερµατίζει µόλις αναχωρήσει και το 32000στό job από το σύστηµα. Σε κάθε πείραµα, το πρόγραµµα εκτελείται για 3 διαφορετικούς ρυθµούς άφιξης των διεργασιών (λ). Για να µπορεί να γίνει η σύγκριση, οι ρυθµοί άφιξης που χρησιµοποιούνται σε όλες τις σειρές πειραµάτων είναι τέτοιοι ώστε η χρησιµοποίηση να παραµένει η ίδια. 60

62 5.1 1 η Σειρά Πειραµάτων Mean Response Time Η πρώτη σειρά πειραµάτων εξετάζει το µέσο χρόνο απόκρισης του συστήµατος για διαφορετικό φόρτο εργασίας και για όλες τις πιθανές περιπτώσεις (καλύπτονται όλοι οι δυνατοί συνδυασµοί αλγορίθµων). Στα διαγράµµατα γίνεται σύγκριση των δύο αλγορίθµων δροµολόγησης (STF- FCFS). Στην πρώτη σειρά πειραµάτων γίνονται 3 πειράµατα ανάλογα µε το µέσο αριθµό των tasks των διεργασιών Πείραµα 1α Equal Probabilities (Κάθε job μπορεί να έχει 1, 2, 4, 8, 16, 32 tasks με ίση πιθανότητα εμφάνισης Το πρόγραµµα εκτελείται 12 φορές. Ο αριθµός των tasks που µπορεί να έχει κάθε job (1, 2, 4, 8, 16, 32 tasks µε ίση πιθανότητα εµφάνισης) µένει σταθερός και γίνεται σύγκριση των αλγορίθµων FCFS, STF για την περίπτωση που έχουµε Shortest Queue ή Random Queue πάντα όσον αφορά τη µέση απόκριση του συστήµατος (mean response time). λ = 2.3 4,067 4,276 λ = λ = 2.5 4,988 5,498 λ = λ = 2.7 7,214 8,599 λ = Παρατηρήσεις Χρησιµοποιώντας τον αλγόριθµο shortest queue, ο FCFS είναι ελάχιστα καλύτερος του STF για όλα τα λ ( ο µέσος χρόνος απόκρισης είναι µικρότερος µε τη χρήση του FCFS), ενώ για τυχαία επιλογή ουράς (Random Queue), ο STF δείχνει κατά πολύ καλύτερος του FCFS. 61

63 Στα παρακάτω διαγράµµατα φαίνεται ακριβώς το ποσοστό βελτίωσης της απόδοσης µε τη χρήση του FCFS στην πρώτη περίπτωση (Shortest Queue) και το ποσοστό µείωσης της απόδοσης µε τη χρήση του ίδιου αλγόριθµου αλλά για Random Queue (επιλογή τυχαίας ουράς). Με πράσινο συµβολίζεται τη αύξηση της απόδοσης και µε µπλε η µείωση. Ο FCFS θεωρείται πάντα η βάση και εξάγονται τα στατιστικά αποτελέσµατα. Παρατηρήσεις Στο πρώτο διάγραµµα ο FCFS είναι µέχρι και 19% καλύτερος σε σχέση µε τον STF ( για λ=2.7 ). Επίσης όσο µεγαλύτερο είναι το λ, ο ρυθµός άφιξης, δηλαδή, των διεργασιών στο σύστηµα τόσο καλύτερα αποδίδει ο FCFS (τόσο µικρότερος είναι ο µέσος χρόνος απόκρισης σε σχέση µε τον STF). Αντίθετα, όπως φαίνεται από το δεύτερο διάγραµµα, όταν έχουµε τυχαία επιλογή ουράς ο FCFS είναι µέχρι και 90% χειρότερος από τον STF. 62

64 5.1.2 Πείραµα 1β Non equal Probabilities (Κάθε job μπορεί να έχει 1, 2, 4, 8 tasks με 80% πιθανότητα εμφάνισης και 16, 32 με 20% πιθανότητα Τρέχουµε το πρόγραµµα 12 φορές. Κρατάµε σταθερό τον αριθµό των tasks που µπορεί να έχει κάθε job ( 1, 2, 4, 8 tasks µε 80% πιθανότητα εµφάνισης και 16, 32 µε 20% πιθανότητα ) και συγκρίνουµε τους αλγορίθµους FCFS, STF όσον αφορά τη µέση απόκριση του συστήµατος (mean response time) για δύο περιπτώσεις: Shortest Queue και Random Queue. λ=3.096 λ=3.365 λ=3.634 λ=3.096 λ=3.365 λ=3.634 λ = ,47 3,55 λ = ,48 λ = ,055 6,47 λ = ,69 λ = λ = Παρατηρούµε ότι παίρνουµε ανάλογα αποτελέσµατα µε το πείραµα 1α παρόλο που εδώ ο αριθµός των tasks που θα έχει κάθε job καθορίζεται βάσει πιθανοτήτων (80% πιθανότητα να έχει 1, 2, 4, 8 tasks και 20% πιθανότητα για 16 και 32 tasks). Με τον αλγόριθµο αυτό στο σύστηµα έρχονται λιγότερα tasks σε σχέση µε την πρώτη περίπτωση (για ίδιο ρυθµό άφιξης εργασιών). Γι αυτό και χρησιµοποιούµε µεγαλύτερα λ έτσι ώστε η χρησιµοποίηση του συστήµατος να παραµένει η ίδια. Και πάλι ο FCFS είναι καλύτερος από τον STF όσον αφορά το Mean Response Time όταν έχουµε επιλογή της µικρότερης ουράς (Shortest Queue), ενώ ο STF είναι καλύτερος όταν έχουµε τυχαία επιλογή ουράς (Random Queue). 63

65 Το πόσο καλύτερος / χειρότερος είναι ο FCFS σε σχέση µε τον STF για κάθε µία από της δύο περιπτώσεις φαίνεται στα παρακάτω διαγράµµατα: Στο πείραµα 1α για Shortest Queue ο FCFS ήταν µέχρι και 19% καλύτερος από τον STF. Εδώ η βελτίωση της απόδοσης µε τη χρήση του FCFS είναι 6,85% στην καλύτερη περίπτωση. Για Random Queue, τα αποτελέσµατα είναι παρόµοια µε το πείραµα 1α. Ο FCFS είναι πολύ χειρότερος σε σχέση µε τον STF µέχρι και 89,64%. 64

66 5.1.3 Πείραµα 1γ Non equal Probabilities (Κάθε job μπορεί να έχει 1, 2, 4, 8 tasks με 90% πιθανότητα εμφάνισης και 16, 32 με 10% πιθανότητα Τρέχουµε πάλι το πρόγραµµα 12 φορές. Κρατάµε σταθερό τον αριθµό των tasks που µπορεί να έχει κάθε Job ( 1, 2, 4, 8 tasks µε 90% πιθανότητα εµφάνισης και 16, 32 µε 10% πιθανότητα ) και συγκρίνουµε τους αλγορίθµους FCFS, STF όσον αφορά τη µέση απόκριση του συστήµατος (mean response time) για δύο περιπτώσεις: Shortest Queue και Random Queue. λ = ,93 2,95 λ = ,62 λ = ,45 3,49 λ = λ = 4.9 4,58 4,59 λ = Και εδώ χρησιµοποιούµε διαφορετικό ρυθµό άφιξης (λ) έτσι ώστε η χρησιµοποίηση του συστήµατος να παραµένει η ίδια µε τα προηγούµενα πειράµατα. Και πάλι παρατηρούµε ότι ο FCFS είναι ελάχιστα καλύτερος όταν έχουµε Shortest Queue, ενώ ο STF ενδείκνυται για τις περιπτώσεις που έχουµε Random Queue. 65

67 Στα παρακάτω διαγράµµατα συγκρίνουµε τον FCFS σε σχέση µε τον STF για κάθε µία από της δύο περιπτώσεις. Παρατηρούµε ότι σε αυτήν την περίπτωση ο FCFS είναι ελάχιστα καλύτερος σε σχέση µε τον STF. Έτσι ενώ στο πρώτο πείραµα είχαµε µέχρι και 19% βελτίωση, στο δεύτερο 6,85% εδώ έχουµε το πολύ 1,24%. Για Random Queue ο FCFS συνεχίζει να είναι πολύ χειρότερος του STF µε ποσοστό που αγγίζει το 89%. 66

68 5.2 εύτερη σειρά Πειραµάτων Max Response Time Στη δεύτερη σειρά πειραµάτων εξετάζουµε το µέγιστο χρόνο απόκρισης του συστήµατος για διαφορετικό φόρτο εργασίας και για όλες τις πιθανές περιπτώσεις (καλύπτονται όλοι οι δυνατοί συνδυασµοί αλγορίθµων). Στα διαγράµµατα γίνεται σύγκριση των δύο αλγορίθµων δροµολόγησης (STF- FCFS). Στην πρώτη σειρά πειραµάτων γίνονται 3 πειράµατα ανάλογα µε το µέσο αριθµό των tasks των διεργασιών Πείραµα 2α Equal Probabilities (Κάθε job μπορεί να έχει 1, 2, 4, 8, 16, 32 tasks με ίση πιθανότητα εμφάνισης Τρέχουµε το πρόγραµµα 12 φορές. Κρατάµε σταθερό τον αριθµό των tasks που µπορεί να έχει κάθε Job (1, 2, 4, 8, 16, 32 tasks µε ίση πιθανότητα εµφάνισης) και συγκρίνουµε τους αλγορίθµους FCFS, STF για την περίπτωση που έχουµε Shortest Queue ή Random Queue πάντα όσον αφορά τη µέγιστη απόκριση του συστήµατος (max response time). Shortest Queue λ= λ = λ = Για shortest queue παρατηρούµε ότι το max response time όταν χρησιµοποιούµε τον STF είναι πολύ µεγαλύτερο σε σχέση µε τον FCFS. Επίσης όσο µεγαλύτερο το λ ( ο αριθµός τον jobs που φτάνουν στο σύστηµα στη µονάδα του χρόνου ) τόσο µεγαλύτερο είναι και το max response time του συστήµατος. 67

69 Random Queue λ= λ = λ = Για random queue παρατηρούµε ότι το max response time του STF είναι πάντα πολύ µεγαλύτερο σε σχέση µε εκείνο του FCFS. Αυτό ίσως φανεί παράξενο αν αναλογιστούµε ότι ο µέσος ρυθµός απόκρισης του συστήµατος στην ίδια περίπτωση είναι πολύ µικρότερος µε τη χρήση του STF. Καθώς όµως ο STF επιλέγει για εξυπηρέτηση το task µε το µικρότερο χρόνο εκτέλεσης είναι λογικό κατά µέσο όρο τα jobs να εκτελούνται γρήγορα για random queue. Όµως εάν κάποιο task έχει µεγάλο χρόνο εκτέλεσης, αυτό θα καθυστερήσει την εκτέλεση ολόκληρου του job. Γενικά ο STF είναι πολύ αποδοτικός όταν το κάθε job έχει µόνο ένα task. Στην περίπτωση πολλαπλών task αυξάνεται η πολυπλοκότητα του συστήµατος. Ωστόσο ο αλγόριθµος συνεχίζει να είναι η καλύτερη επιλογή για την περίπτωση που έχουµε Random Queue, όπως φαίνεται και από την πρώτη σειρά πειραµάτων. 68

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση

Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση Κεφάλαιο 5: Εισαγωγή στην Προσομοίωση Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Γιάννης Γαροφαλάκης Αν. Καθηγητής Προσομοίωση Τεχνικές χρήσης υπολογιστών για τη «μίμηση» των λειτουργιών διαφόρων ειδών

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 5: Εισαγωγή στην Προσομοίωση

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 5: Εισαγωγή στην Προσομοίωση Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 5: Εισαγωγή στην Προσομοίωση Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής Σκοποί ενότητας Κατά τη διάρκεια της ζωής ενός συστήματος,

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

3. Προσομοίωση ενός Συστήματος Αναμονής.

3. Προσομοίωση ενός Συστήματος Αναμονής. 3. Προσομοίωση ενός Συστήματος Αναμονής. 3.1. Διατύπωση του Προβλήματος. Τα συστήματα αναμονής (queueing systems), βρίσκονται πίσω από τα περισσότερα μοντέλα μελέτης της απόδοσης υπολογιστικών συστημάτων,

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

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής

Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής Κεφάλαιο 6: Προσομοίωση ενός συστήματος αναμονής Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Γιάννης Γαροφαλάκης Αν. Καθηγητής ιατύπωση του προβλήματος (1) Τα συστήματα αναμονής (queueing systems), βρίσκονται

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

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

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

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

ΠΡΟΣΟΜΟΙΩΣΗ. Προσομοίωση είναι η μίμηση της λειτουργίας ενός πραγματικού συστήματος και η παρακολούθηση της εξέλιξης του μέσα στο χρόνο.

ΠΡΟΣΟΜΟΙΩΣΗ. Προσομοίωση είναι η μίμηση της λειτουργίας ενός πραγματικού συστήματος και η παρακολούθηση της εξέλιξης του μέσα στο χρόνο. ΠΡΟΣΟΜΟΙΩΣΗ Προσομοίωση είναι η μίμηση της λειτουργίας ενός πραγματικού συστήματος και η παρακολούθηση της εξέλιξης του μέσα στο χρόνο. δημιουργία μοντέλου προσομοίωσης ( - χρήση μαθηματικών, λογικών και

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

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

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

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

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

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

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

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

ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΠΡΟΣΟΜΟΙΩΣΗ ΚΑΙ ΜΕΛΕΤΗ ΤΗΣ ΑΠΟ ΟΣΗΣ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΘΕΜΑ : ΠΡΟΣΟΜΟΙΩΣΗ ΚΑΙ ΜΕΛΕΤΗ ΤΗΣ ΑΠΟ ΟΣΗΣ ΚΑΤΑΝΕΜΗΜΕΝΟΥ ΣΥΣΤΗΜΑΤΟΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ.. Μαλιούφα Αικατερίνη Α.Ε.Μ : 633 Τµήµα Πληροφορικής Α.Π.Θ. Επιβλέπουσα Καθηγήτρια : Καρατζά Ελένη

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

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

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

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Προσομοίωση ενός συστήματος αναμονής

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Προσομοίωση ενός συστήματος αναμονής Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 1: Προσομοίωση ενός συστήματος αναμονής Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Διατύπωση του προβλήματος

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

Μεταπτυχιακή ιατριβή ΗΜΗΤΡΙΑ ΟΥ ΣΟΦΙΑ. Πτυχιούχος Πληροφορικής ΑΠΘ. Επιβλέπουσα Καθηγήτρια Καρατζά Ελένη

Μεταπτυχιακή ιατριβή ΗΜΗΤΡΙΑ ΟΥ ΣΟΦΙΑ. Πτυχιούχος Πληροφορικής ΑΠΘ. Επιβλέπουσα Καθηγήτρια Καρατζά Ελένη ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μοντελοποίηση και προσοµοίωση µεθόδων συνανάθεσης εργασιών σε πολλαπλά sites στο Grid - Αποτίµηση της απόδοσης Μεταπτυχιακή

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

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

ΤΕΙ Κρήτης, Παράρτηµα Χανίων ΠΣΕ, Τµήµα Τηλεπικοινωνιών & ικτύων Η/Υ Εργαστήριο ιαδίκτυα & Ενδοδίκτυα Η/Υ ( ηµιουργία συστήµατος µε ροint-tο-ροint σύνδεση) ρ Θεοδώρου Παύλος Χανιά 2003 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ...2 2 ΤΟ ΚΑΝΑΛΙ PΟINT-TΟ-PΟINT...2

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 10 ΟΥ ΚΕΦΑΛΑΙΟΥ ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ 1. Πως ορίζεται ο τμηματικός προγραμματισμός; Τμηματικός προγραμματισμός

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Κεντρικής Μονάδας Επεξεργασίας (CPU) Βασίλης Σακκάς 4/12/2013 1 Xρονοδρομολόγηση Διεργασιών 1 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί

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

Προσομοίωση ΚΕΦΑΛΑΙΟ 7

Προσομοίωση ΚΕΦΑΛΑΙΟ 7 ΚΕΦΑΛΑΙΟ 7 Προσομοίωση 7.1 Συστήματα και πρότυπα συστημάτων 7.2 Η διαδικασία της προσομοίωσης 7.3 Ανάπτυξη προτύπων διακριτών γεγονότων 7.4 Τυχαίοι αριθμοί 7.5 Δείγματα από τυχαίες μεταβλητές 7.6 Προσομοίωση

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

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ

ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ ΚΕΦΑΛΑΙΟ 2ο ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΑΚΡΙΤΩΝ ΓΕΓΟΝΟΤΩΝ 2.1 Εισαγωγή Η μέθοδος που θα χρησιμοποιηθεί για να προσομοιωθεί ένα σύστημα έχει άμεση σχέση με το μοντέλο που δημιουργήθηκε για το σύστημα. Αυτό ισχύει και

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

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend

Εργαστήριο Διοίκησης Παραγωγής & Έργων. Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend Εργαστήριο Διοίκησης Παραγωγής & Έργων Εισαγωγή στην προσομοίωση διεργασιών χρησιμοποιώντας το λογισμικό Extend ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ EXTEND Το Extend είναι ένα λογισμικό εικονικής προσομοίωσης που μπορεί να

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

Υπάρχουν τρεις εναλλακτικές τεχνικές για την ανάλυση της απόδοσης ενός συστήµατος:

Υπάρχουν τρεις εναλλακτικές τεχνικές για την ανάλυση της απόδοσης ενός συστήµατος: ΕΝΟΤΗΤΑ 4 η ΑΝΑΛΥΣΗ ΑΠΟ ΟΣΗΣ ΜΟΝΤΕΛΩΝ ΡΟΗΣ ΕΡΓΑΣΙΑΣ ΜΕ ΤΗ ΧΡΗΣΗ ΧΡΩΜΑΤΙΣΜΕΝΩΝ ΙΚΤΥΩΝ PETRI 4.1 Εισαγωγή Η απόδοση αποτελεί συνήθως σηµαντικό παράγοντα στο σχεδιασµό, την ανάπτυξη και την παραµετροποίηση

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

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Επώνυµη ονοµασία. Ενότητα 13 η Σχεδίαση,Επιλογή, ιανοµή Προϊόντων 1

Επώνυµη ονοµασία. Ενότητα 13 η Σχεδίαση,Επιλογή, ιανοµή Προϊόντων 1 Επώνυµη ονοµασία Η επώνυµη ονοµασία είναι αυτή η ονοµασία που ξεχωρίζει τα προϊόντα και τις υπηρεσίες µας από αυτές των ανταγωνιστών. Οι σχετικές αποφάσεις θα επηρεαστούν από τις εξής ερωτήσεις: 1. Χρειάζεται

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΛΟΓΙΣΜΙΚΟ EXTEND. 1 ο εργαστήριο Διοίκησης και Παραγωγής Έργων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΛΟΓΙΣΜΙΚΟ EXTEND. 1 ο εργαστήριο Διοίκησης και Παραγωγής Έργων ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΡΟΣΟΜΟΙΩΣΗ ΔΙΕΡΓΑΣΙΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΟ ΛΟΓΙΣΜΙΚΟ EXTEND 1 ο εργαστήριο Διοίκησης και Παραγωγής Έργων ΙΣΤΟΤΟΠΟΣ ΕΡΓΑΣΤΗΡΙΟΥ http://www.mech.upatras.gr/~adamides/dpe ΠΡΟΣΟΜΟΙΩΣΗ Η τεχνική

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΑΡΑ ΕΙΓΜΑ ΠΡΟΣΟΜΕΙΩΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ. Καθηγητής Γ: Χρυσολούρης και ρ.. Μούρτζης ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ & ΑΕΡΟΝΑΥΠΗΓΩΝ ΜΗΧΑΝΙΚΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΑΡΑ ΕΙΓΜΑ ΠΡΟΣΟΜΕΙΩΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ. Καθηγητής Γ: Χρυσολούρης και ρ.. Μούρτζης ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ & ΑΕΡΟΝΑΥΠΗΓΩΝ ΜΗΧΑΝΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΑΡΑ ΕΙΓΜΑ ΠΡΟΣΟΜΕΙΩΣΗΣ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ Καθηγητής Γ: Χρυσολούρης και ρ.. Μούρτζης ΠΑΤΡΑ 2001 ΠΡΟΣΟΜΟΙΩΣΗ ΣΥΣΤΗΜΑΤΩΝ ΠΑΡΑΓΩΓΗΣ Η προσοµοίωση είναι µία πειραµατική µέθοδος µε τη

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

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

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

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

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ Βασικός τελικός στόχος κάθε επιστηµονικής τεχνολογικής εφαρµογής είναι: H γενική βελτίωση της ποιότητας του περιβάλλοντος Η βελτίωση της ποιότητας ζωής Τα µέσα µε τα

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

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 7: Η επιλογή των πιθανοτικών κατανομών εισόδου

Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 7: Η επιλογή των πιθανοτικών κατανομών εισόδου Τεχνικές Εκτίμησης Υπολογιστικών Συστημάτων Ενότητα 7: Η επιλογή των πιθανοτικών κατανομών εισόδου Γαροφαλάκης Ιωάννης Πολυτεχνική Σχολή Τμήμα Μηχ/κών Η/Υ & Πληροφορικής Περιεχόμενα ενότητας Εισαγωγή Συλλογή

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης Εισαγωγή στην Πληροφορική Α σ κ ή σ ε ι ς σ τ η ν Χ ρ ο ν ο δ ρ ο µ ο λ ό γ η σ η ς Αντώνης Σταµατάκης Αλγόριθµοι Χρονοδροµολόγησης (1/5) Υπάρχουν διάφοροι αλγόριθµοι χρονοδροµολόγησης της κεντρικής µονάδας

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μοντελοποίηση και προσομοίωση πολιτικών χρονοδρομολόγησης παράλληλων εργασιών σε πολλαπλά sites στο Grid Modeling and simulation

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

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ

ΚΕΦΑΛΑΙΟ 10 ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΚΕΦΑΛΑΙΟ 10 Όπως είδαμε και σε προηγούμενο κεφάλαιο μια από τις βασικότερες τεχνικές στον Δομημένο Προγραμματισμό είναι ο Τμηματικός Προγραμματισμός. Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης

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

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Ορισµός. (neighboring) καταστάσεων. ηλαδή στην περίπτωση αλυσίδας Markov. 1.2 ιαµόρφωση µοντέλου

Ορισµός. (neighboring) καταστάσεων. ηλαδή στην περίπτωση αλυσίδας Markov. 1.2 ιαµόρφωση µοντέλου 200-04-25. ιαδικασίες γεννήσεων-θανάτων. Ορισµός Οι διαδικασίες γεννήσεων-θανάτων (birth-death rocesses) αποτελούν µια σπουδαία κλάση αλυσίδων Markov (διακριτού ή συνεχούς χρόνου). Η ιδιαίτερη συνθήκη

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Προσομοίωση Συστημάτων

Προσομοίωση Συστημάτων Προσομοίωση Συστημάτων Μεθοδολογίες προσομοίωσης Άγγελος Ρούσκας Μηχανισμός διαχείρισης χρόνου και μεθοδολογίες προσομοίωσης Έχουμε αναφερθεί σε δύο μηχανισμούς διαχείρισης χρόνου: Μηχανισμός επόμενου

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

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

ΜΟΝΤΕΛΑ ΙΑΚΡΙΤΩΝΣΥΣΤΗΜΑΤΩΝ ΜΟΝΤΕΛΑ ΙΑΚΡΙΤΩΝΣΥΣΤΗΜΑΤΩΝ Στα διακριτά συστήµατα, οι αλλαγές της κατάστασής των συµβαίνουν µόνο σε συγκεκριµένες χρονικές στιγµές, δηλ όταν συµβαίνει κάποιο γεγονός! Τα διακριτά συστήµατα µπορούν να προσοµοιωθούν

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

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

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

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

Μοντελοποίηση, Ανάλυση και Σχεδιασμός Στοχαστικών Συστημάτων

Μοντελοποίηση, Ανάλυση και Σχεδιασμός Στοχαστικών Συστημάτων ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΟΙΚΟΝΟΜΙΑΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ Μοντελοποίηση, Ανάλυση και Σχεδιασμός Στοχαστικών Συστημάτων Ακαδ. Έτος 2017-2018 Διδάσκων: Βασίλης ΚΟΥΤΡΑΣ Επικ. Καθηγητής

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

Πληροφοριακά Συστήματα Διοίκησης. Προσομοίωση Simulation

Πληροφοριακά Συστήματα Διοίκησης. Προσομοίωση Simulation Πληροφοριακά Συστήματα Διοίκησης Προσομοίωση Simulation Προσομοίωση Έστω ότι το σύστημα βρίσκεται σε κάποια αρχική κατάσταση Αν γνωρίζουμε τους κανόνες σύμφωνα με τους οποίους το σύστημα αλλάζει καταστάσεις

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Χρονοδροµολόγηση εργασιών σε κατανεµηµένα συστήµατα Μοντελοποίηση, Προσοµοίωση και Αποτίµηση της Απόδοσης Πτυχιακή Εργασία

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

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού... ΚΕΦΑΛΑΙΟ 5. ΧΩΡΟΤΑΞΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Περιεχόμενα 5.1. Χωροταξικός Σχεδιασμός... 2 5.2. Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού... 4 5.3. Δραστηριότητες Χωροταξικού Σχεδιασμού... 5 5.4. Τύποι Χωροταξίας...

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8 Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8 Κεφάλαιο 8 ιαχείριση ΚΜΕ στα Λειτουργικά Συστήµατα Σκοπός του κεφαλαίου αυτού είναι να σου γνωρίσει τον τρόπο µε τον οποίο ένα λειτουργικό

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

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 2. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης

Τµήµα Πληροφορικής. Δοµές Δεδοµένων - Εργασία 2. Φθινοπωρινό Εξάµηνο Διδάσκων: E. Μαρκάκης Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα Πληροφορικής Φθινοπωρινό Εξάµηνο 2016 Δοµές Δεδοµένων - Εργασία 2 Διδάσκων: E. Μαρκάκης Ουρές προτεραιότητας - Προσοµοίωση της λειτουργίας ενός print server Σκοπός

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή Βασίλης Μάγκλαρης maglaris@netmode.ntua.gr Χρύσα Παπαγιάννη chrisap@noc.ntua.gr 24/2/2016 Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή (1/2) Βασίλης Μάγκλαρης maglaris@netmode.ntua.gr 1/3/2017 ΠΕΡΙΕΧΟΜΕΝΑ (1/3) http://www.netmode.ntua.gr/main/index.php?option=com_content&task=view& id=130&itemid=48

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης και Βέλτιστου Σχεδιασμού Δικτύων - NETMODE

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

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

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

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Ανάλυση Χρόνου, Πόρων & Κόστους

Ανάλυση Χρόνου, Πόρων & Κόστους ΠΜΣ: «Παραγωγή και ιαχείριση Ενέργειας» ιαχείριση Ενέργειας και ιοίκηση Έργων Ανάλυση Χρόνου, Πόρων & Κόστους Επ. Καθηγητής Χάρης ούκας, Καθηγητής Ιωάννης Ψαρράς Εργαστήριο Συστημάτων Αποφάσεων & ιοίκησης

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

ιοίκηση Παραγωγής και Υπηρεσιών

ιοίκηση Παραγωγής και Υπηρεσιών ιοίκηση Παραγωγής και Υπηρεσιών Προγραµµατισµός Παραγωγής Εισαγωγή Ορισµοί Προβλήµατα µίας µηχανής Γιώργος Ιωάννου, Ph.D. Αναπληρωτής Καθηγητής Σύνοψη διάλεξης Ορισµός Προγραµµατισµού Παραγωγής Είδη προβληµάτων

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

Ανάλυση Δεδοµένων µε χρήση του Στατιστικού Πακέτου R

Ανάλυση Δεδοµένων µε χρήση του Στατιστικού Πακέτου R Ανάλυση Δεδοµένων µε χρήση του Στατιστικού Πακέτου R, Επίκουρος Καθηγητής, Τοµέας Μαθηµατικών, Σχολή Εφαρµοσµένων Μαθηµατικών και Φυσικών Επιστηµών, Εθνικό Μετσόβιο Πολυτεχνείο. Περιεχόµενα Εισαγωγή στη

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

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

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

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

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

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

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

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

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

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων Ι Σύνολο- Περιεχόμενο Μαθήματος Χιωτίδης Γεώργιος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων

Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων Ζ Εξάμηνο 2Θ+2Ε jdim@staff.teicrete.gr ΠΡΟΣΟΜΟΙΩΣΗ 1 ΠΡΟΣΟΜΟΙΩΣΗ: ΟΡΙΣΜΟΣ Wikipedia: Simulation is the imitation of the operation of a real-world process

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

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Η χρήση του χρόνου Μ.Στεφανιδάκης Συστήματα πραγματικού χρόνου: ελεγκτής και ελεγχόμενο σύστημα real-time system

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

Αδιέξοδα (Deadlocks)

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

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ 1

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ 1 ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ 1 Συστήµατα αναµονής Οι ουρές αναµονής αποτελούν καθηµερινό και συνηθισµένο φαινόµενο και εµφανίζονται σε συστήµατα εξυπηρέτησης, στα οποία η ζήτηση για κάποια υπηρεσία δεν µπορεί να

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

Σχεδιασµός βασισµένος σε συνιστώσες

Σχεδιασµός βασισµένος σε συνιστώσες Σχεδιασµός βασισµένος σε συνιστώσες 1 Ενδεικτικά περιεχόµενα του κεφαλαίου Ποια είναι τα "άτοµα", από τα οποία κατασκευάζονται οι υπηρεσίες; Πώς οργανώνουµε τις συνιστώσες σε ένα αρµονικό σύνολο; Τι είναι

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

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

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

Πολύγωνο αθροιστικών σχετικών συχνοτήτων και διάµεσος µιας τυχαίας µεταβλητής ρ. Παναγιώτης Λ. Θεοδωρόπουλος πρώην Σχολικός Σύµβουλος ΠΕ03 e-mail@p-theodoropoulos.gr Πρόλογος Στην εργασία αυτή αναλύονται

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις Υλικό από: Κ Διαμαντάρας, Λειτουργικά Συστήματα, Τμήμα Πληροφορικής ΤΕΙΘ Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

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

Ηρώων Πολυτεχνείου 9, Ζωγράφου, Αθήνα, Τηλ: , Fax: URL

Ηρώων Πολυτεχνείου 9, Ζωγράφου, Αθήνα, Τηλ: , Fax: URL ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Τομέας Επικοινωνιών, Ηλεκτρονικής & Συστημάτων Πληροφορικής Εργαστήριο Διαχείρισης και Βέλτιστου Σχεδιασμού Δικτύων - NETMODE

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

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές

Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες

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

5. Γεννήτριες Τυχαίων Αριθµών.

5. Γεννήτριες Τυχαίων Αριθµών. 5. Γεννήτριες Τυχαίων Αριθµών. 5.1. Εισαγωγή. Στο Κεφάλαιο αυτό θα δούµε πώς µπορούµε να δηµιουργήσουµε τυχαίους αριθµούς από την οµοιόµορφη κατανοµή στο διάστηµα [0,1]. Την κατανοµή αυτή, συµβολίζουµε

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΣΟΜΟΙΩΣΗ ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗΣ ΔΙΕΡΓΑΣΙΩΝ ΣΤΟ GRID ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ της ΓΚΟΥΤΙΟΥΔΗ ΚΥΡΙΑΚΗΣ Προπτυχιακή Φοιτήτρια Τμήματος

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

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

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

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1 Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

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

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1

Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1 Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 1 Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 2 Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 3 Μάιος 02. Αναγνωστόπουλος - Παν. Αθηνών 4 Μάιος 02. Αναγνωστόπουλος - Παν.

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

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

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ Συνδυασμένη χρήση μοντέλων προσομοίωσης βελτιστοποίησης. Η μέθοδος του μητρώου μοναδιαίας απόκρισης Νικόλαος

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

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

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 15 Ιουνίου 2009 1 / 26 Εισαγωγή Η ϑεωρία

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

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

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

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

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού.

Ε Ι Α Γ Ω Γ Η Σ Ο Ν Π Ρ Ο Γ Ρ Α Μ Μ Α Σ Ι Μ Ο Κ Ε Υ Α Λ Α Ι Ο 6. Σο πρόγραμμα γράφεται σε κάποια γλώσσα προγραμματισμού. Κεφάλαιο 6 6.1 Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει τρία σημαντικά στάδια : Σον ακριβή προσδιορισμό του προβλήματος Σην ανάπτυξη του αντίστοιχου αλγορίθμου

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

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι Μ.Στεφανιδάκης Χρονοδρομολόγηση (scheduling) αλγόριθμος επιλογή (init) READY RUNNING (terminate)

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

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

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

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 9 «Δρομολόγηση Διεργασιών» Διδάσκων: Δ, Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Δρομολόγηση σε σύστημα ενός επεξεργαστή 1. Εισαγωγή 2. Κριτήρια αποτίμησης της απόδοσης

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

Εφαρμογές Προσομοίωσης

Εφαρμογές Προσομοίωσης Εφαρμογές Προσομοίωσης H προσομοίωση (simulation) ως τεχνική μίμησης της συμπεριφοράς ενός συστήματος από ένα άλλο σύστημα, καταλαμβάνει περίοπτη θέση στα πλαίσια των εκπαιδευτικών εφαρμογών των ΤΠΕ. Μπορούμε

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

Επικοινωνία:

Επικοινωνία: Σπύρος Ζυγούρης Καθηγητής Πληροφορικής Επικοινωνία: spzygouris@gmail.com Πως ορίζεται ο τμηματικός προγραμματισμός; Πρόγραμμα Εντολή 1 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή 5 Εντολή 2 Εντολή 3 Εντολή 4 Εντολή

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

Ελεγκτικής. ΤΕΙ Ηπείρου (Παράρτηµα Πρέβεζας)

Ελεγκτικής. ΤΕΙ Ηπείρου (Παράρτηµα Πρέβεζας) Πληροφοριακά Συστήµατα ιοίκησης Management Information Systems Εργαστήριο 2 Τµήµα Χρηµατοοικονοµικής και Ελεγκτικής ΤΕΙ Ηπείρου (Παράρτηµα Πρέβεζας) ΑΝΤΙΚΕΙΜΕΝΟ: Προσοµοίωση (Simulation) και τυχαίες µεταβλητές

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

Άρα, Τ 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 αντιστοιχούν σε ακολουθιακά υποέργα

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

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

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

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

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ

ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ ΑΞΙΟΠΙΣΤΙΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Εισαγωγή Ηεµφάνιση ηλεκτρονικών υπολογιστών και λογισµικού σε εφαρµογές µε υψηλές απαιτήσεις αξιοπιστίας, όπως είναι διαστηµικά προγράµµατα, στρατιωτικές τηλεπικοινωνίες,

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

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών

Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών 1 Αλγόριθµοι δροµολόγησης µε µέσα µαζικής µεταφοράς στο µεταφορικό δίκτυο των Αθηνών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Κωτσογιάννη Μαριάννας Περίληψη 1. Αντικείµενο- Σκοπός Αντικείµενο της διπλωµατικής αυτής εργασίας

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

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

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

Βασικές οµές εδοµένων

Βασικές οµές εδοµένων Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης

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

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

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

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Διαδικασίες Birth-Death, Ουρές Markov:

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Διαδικασίες Birth-Death, Ουρές Markov: ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Διαδικασίες Birth-Death, Ουρές Markov: 1. Διαγράμματα Μεταβάσεων Εργοδικών Καταστάσεων, Εξισώσεις Ισορροπίας 2. Προσομοιώσεις, Άσκηση Προσομοίωσης Ουράς M/M/1/10 Βασίλης

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

Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.

Μέρος Β /Στατιστική. Μέρος Β. Στατιστική. Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua. Μέρος Β /Στατιστική Μέρος Β Στατιστική Γεωπονικό Πανεπιστήμιο Αθηνών Εργαστήριο Μαθηματικών&Στατιστικής/Γ. Παπαδόπουλος (www.aua.gr/gpapadopoulos) Από τις Πιθανότητες στη Στατιστική Στα προηγούμενα, στο

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ανάπτυξη μιας προσαρμοστικής πολιτικής αντικατάστασης αρχείων, με χρήση

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

Χρησιμοποιούμε από το Λογισμικό Προσομοίωσης AnyLogic το αρχείο-μοντέλο Call Center.alp που υπάρχει στο φάκελο \models\call Center\

Χρησιμοποιούμε από το Λογισμικό Προσομοίωσης AnyLogic το αρχείο-μοντέλο Call Center.alp που υπάρχει στο φάκελο \models\call Center\ ΤΕΙ ΚΡΗΤΗΣ-ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ Προσομοίωση Βιομηχανικής Παραγωγής & Επιχειρήσεων-ΕΡΓΑΣΤΗΡΙΟ ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ 2018-19 6 η ΑΣΚΗΣΗ: ΠΡΟΣΟΜΟΙΩΣΗ AnyLogic-CALL CENTER Χρησιμοποιούμε από το Λογισμικό

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