Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

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

Download "Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης"

Transcript

1 Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Πληροφορικής Priority Queues Simulator with Hard Disk I/O support Υλοποίηση εφαρμογής προσομοίωσης του αλγόριθμου χρονοδρομολόγησης C.P.U. ουρών προτεραιοτήτων σε συνδυασμό με τους αλγορίθμους χρονοδρομολόγησης δίσκου Scan & C-Scan Εργασία για το μάθημα Λειτουργικά Συστήματα (Εργασία 3 Τελική εργασία) Ελευθέριος Τιάκας (Α.Ε.Μ.: 80) Στέφανος Ουγιάρογλου (Α.Ε.Μ.: 68) Φοιτητές της κατεύθυνσης Πληροφοριακά Συστήματα του Μεταπτυχιακού προγράμματος του τμήματος Πληροφορικής Ιανουάριος 2005

2 Πίνακας Περιεχομένων Περιγραφή της τρίτης (τελικής) έκδοσης της εργασίας (Εισαγωγή)...3 ΚΕΦΑΛΑΙΟ Τι είναι χρονοδρομολόγηση Κύκλος Εκτέλεσης Διεργασιών Τι είναι αλγόριθμος χρονοδρομολόγησης Κ.Μ.Ε Ο αλγόριθμος κυκλικής επαναφοράς (Round Robin- R.R.) Παράδειγμα του αλγορίθμου κυκλικής επαναφοράς Ο αλγόριθμος ουρών προτεραιοτήτων Παράδειγμα του αλγορίθμου ουρών προτεραιοτήτων Αλγόριθμοι χρονοδρομολόγησης δίσκων Αλγόριθμος Σάρωσης (Scan) Αλγόριθμος Κυκλικής Σάρωσης (C-Scan)...8 ΚΕΦΑΛΑΙΟ Υλοποίηση της εφαρμογής Επεξήγηση εικονιδίων Εκτέλεση διεργασιών Παραμετροποίηση της εφαρμογής Λειτουργίες Ι/Ο Λειτουργίες Ι/Ο δίσκου Παραδείγματα χρήσης της εφαρμογής Priority Queues Simulator with Hard Disk I/O support Παράδειγμα 1: Δρομολόγηση απλών διεργασιών Παράδειγμα 2: Δρομολόγηση απλών διεργασιών με ανάγκη λειτουργιών Ι/Ο Παράδειγμα 3: Δρομολόγηση παραγομένων αυτόματα απλών διεργασιών Παράδειγμα 4: Δρομολόγηση παραγομένων αυτόματα διεργασιών με ανάγκη για λειτουργίες Ι/Ο Παράδειγμα 5: Δρομολόγηση διεργασιών Ι/Ο δίσκου που παράγονται αυτόματα...19 ΚΕΦΑΛΑΙΟ Τεκμηρίωση δημόσιων μεταβλητών και σταθερών του πηγαίου κώδικα Τεκμηρίωση της διαδικασίας αρχικοποίησης μεταβλητών και γραφικών αντικειμένων Τεκμηρίωση της διαδικασίας εισαγωγής διεργασίας στο σύστημα Τεκμηρίωση διαδικασίας εκτέλεσης διεργασιών Τεκμηρίωση διαδικασίας αυτόματης παραγωγής διεργασιών Τεκμηρίωση διαδικασίας υπολογισμού αποτελεσμάτων Τεκμηρίωση διαδικασιών που σχετίζονται με Ι/Ο δίσκου Παρουσίαση των οθόνων της εφαρμογής Βασική οθόνη εφαρμογής Οθόνη αποτελεσμάτων Οθόνη επιλογών Οθόνη «Σχετικά»...38 ΠΑΡΑΡΤΗΜΑ...39 Πηγαίος Κώδικας της εφαρμογής

3 Περιγραφή της τρίτης (τελικής) έκδοσης της εργασίας Πριν ξεκινήσουμε με την τεκμηρίωση της τελικής εργασίας, θα θέλαμε να αναφέρουμε περιληπτικά στο τι έχει αλλάξει στην εργασία σε σχέση με τις δυο προηγούμενες εκδόσεις Συγκεκριμένα, σε αυτή την έκδοση, υποστηρίζονται διεργασίες Ι/Ο δίσκου. Για το λόγο αυτό οι διεργασίες χωρίζονται σε δύο κατηγορίες : στις απλές διεργασίες που απαιτούν χρήση της CPU και σε αυτές που απαιτούν να γράψουν ή να διαβάσουν από στον/από το σκληρό δίσκο. Οι αλγόριθμοι που μπορούν να χρησιμοποιηθούν για την χρονοδρομολόγηση δίσκου είναι ο αλγόριθμος σάρωσης (Scan) και ο αλγόριθμος κυκλικής σάρωσης (C-scan). Στην εργασία αυτή παρέμειναν όλες οι λειτουργίες που μπορούσαν να εκτελεστούν από τις προηγούμενες εκδόσεις, έτσι ώστε να υπάρχει μια συνολική παρουσίαση της εφαρμογής. Στις παρακάτω σελίδες ακολουθούν κάποιες θεωρητικές παράγραφοι, ώστε να γίνει κατανοητός ο αλγόριθμός χρονοδρομολόγησης CPU ουρών προτεραιοτήτων (οι παράγραφοι αυτοί περιλαμβανόντουσαν και στις προηγούμενες εργασίες) και οι αλγόριθμοι χρονοδρομολόγησης δίσκου scan και c-scan. Στην συνέχεια ακολουθεί η τεκμηρίωση της νέας εφαρμογής με τη χρήση παραδειγμάτων και τη παρουσίαση σημαντικών τμημάτων του κώδικα. Ενώ στο τέλος περιλαμβάνεται ο πηγαίος κώδικας συνολικά. -3-

4 ΚΕΦΑΛΑΙΟ Τι είναι χρονοδρομολόγηση Η ανάθεση των διεργασιών ενός υπολογιστικού συστήματος στους διάφορους επεξεργαστές είναι η λειτουργία που επιτρέπει τη διεκπαιρέωση των διεργασιών και την παραγωγή υπολογιστικού έργου. Αυτή η λειτουργία, που στην περίπτωση της κεντρικής μονάδας επεξεργασίας (Κ.Μ.Ε.) αναφέρεται ως χρονοδρομολόγηση Κ.Μ.Ε. (CPU scheduling), είναι ένα από τα κρισιμότερα προβλήματα που αντιμετωπίζονται μέσω των λειτουργικών συστημάτων. Αυτό γιατί, με την μεταγωγή της Κ.Μ.Ε. μεταξύ των διαφόρων διεργασιών, το υπολογιστικό σύστημα μπορεί να γίνει πιο αποδοτικό. 1.2 Κύκλος Εκτέλεσης Διεργασιών. Σε ένα απλό σύστημα πολύ-προγραμματισμού κάθε διεργασία μπορεί να θεωρηθεί ότι βρίσκεται σε μια από τις τρεις καταστάσεις που φαίνονται στο παρακάτω σχήμα. Όταν υπάρχει μόνο ένας επεξεργαστής, το πολύ μια διεργασία μπορεί να εκτελείτε κάθε στιγμή. Αυτή η διεργασία είναι στην κατάσταση εκτελούμενη (running). Μια διεργασία που είναι έτοιμη για εκτέλεση, οποιαδήποτε στιγμή ελευθερωθεί ο επεξεργαστής, βρίσκεται στην κατάσταση έτοιμη (ready). Σε μια τέτοια διεργασία έχει ήδη εκχωρηθεί ο απαραίτητος χώρος στην κύρια μνήμη, καθώς επίσης και όλα τα μέσα που είναι απαραίτητα για την εκτέλεση της συγκεκριμένης διεργασίας. Η μόνη μονάδα που απομένει να αποδοθεί για την εκτέλεση της διεργασίας είναι η Κ.Μ.Ε. Αν μια διεργασία δεν μπορεί να συνεχίσει την εκτέλεση της, περιμένοντας κάποιο γεγονός λέγεται μπλοκαρισμένη (blocked). Αυτή η διεργασία δεν είναι ακόμη έτοιμη για εκτέλεση, επειδή αναμένει την ολοκλήρωση κάποιας άλλης λειτουργίας (ή γεγονότος). ΝΕΑ ΕΤΟΙΜΗ ΕΚΤΕΛΟΥ ΜΕΝΗ ΟΛΟΚΛΗ ΡΩΜΕΝΗ ΜΠΛΟΚΑ ΡΙΣΜΕΝΗ Σε ένα λειτουργικό σύστημα ομαδικής επεξεργασίας, μια νεοεισερχόμενη εργασία τοποθετείτε κανονικά σε μια ουρά, οπού περιμένει στην κατάσταση νέα, αναμένοντας τη μετάβαση της στην κατάσταση έτοιμη. Όταν η παραπάνω εργασία αποκτήσει όλα τα απαραίτητα μέσα (μνήμη, συσκευές Ε/Ε κλπ), τότε μπορεί να δημιουργηθεί η αντίστοιχη διεργασία στη κατάσταση έτοιμη. Όταν τελειώσει η εκτέλεση μιας διεργασίας, τότε αυτή διαγράφεται από τις ενεργές διεργασίες του συστήματος, περνώντας στην κατάσταση ολοκληρωμένη (completed). Γενικά μια διεργασία φεύγει από την κατάσταση εκτελούμενη για έναν από του τρεις παρακάτω λόγους : Α. Η διεργασία τερματίζεται. Β. Η διεργασία περνά στη κατάσταση μπλοκαρισμένη κάνοντας αίτηση για λειτουργία Ε/Ε, που πρέπει να ολοκληρωθεί πριν η διεργασία μπορεί να συνεχίσει την εκτέλεση της. Η διεργασία θα περιμένει σε αυτή την κατάσταση μέχρι να ολοκληρωθεί η λειτουργία Ε/Ε που εκκρεμεί. Γ. Η διεργασία απομακρύνεται από την κατάσταση εκτέλεσης επειδή ξεπέρασε ένα ορισμένο χρονικό όριο. Η νέα κατάσταση της διεργασίας είναι έτοιμη. Αυτή η μετάβαση συμβαίνει μόνο όταν χρησιμοποιείται διακοπτός αλγόριθμός χρονοδρομολόγησης. 1.3 Τι είναι αλγόριθμος χρονοδρομολόγησης Κ.Μ.Ε. Η χρονοδρομολόγηση της Κ.Μ.Ε. σχετίζεται με το πρόβλημα τις απόφασης για το ποια από τις διεργασίες θα παραχωρηθεί στην Κ.Μ.Ε. -4-

5 Διαφορετικοί αλγόριθμοι χρονοδρομολόγησης έχουν διαφορετικά χαρακτηριστικά και μπορούν να ευνοούν μια ομάδα διεργασιών σε σχέση με άλλες.τα κριτήρια που έχουν προταθεί για την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης της Κ.Μ.Ε. είναι πολλά και μπορούν να οδηγήσουν σε ουσιαστικές διαφορές στην επιλογή του κατάλληλου αλγορίθμου.. Στα κριτήρια που χρησιμοποιούνται περιλαμβάνεται ο βαθμός χρησιμοποίησης της Κ.Μ.Ε. (C.P.U. utilization), δηλαδή το ποσοστό του χρόνου που η Κ.Μ.Ε. είναι απασχολημένη, καθώς και η ρυθμοαπόδοση (throughput), δηλαδή ο αριθμός των εργασιών που ολοκληρώνονται στη μονάδα του χρόνου. Από την πλευρά μιας ορισμένης εργασίας κριτήριο αποτελεί ο χρόνος που απαιτείται για την εκτέλεση επίσης της εργασίας. Το χρονικό διάστημα από τη στιγμή της υποβολής μέχρι την στιγμή της ολοκλήρωσης αναφέρεται ως χρόνος ανακύκλωσης. Αποτελείται από το άθροισμα του χρόνου που περιμένει μια διεργασία για να φορτωθεί στην κεντρική μνήμη, του χρόνου αναμονής στην ουρά, του χρόνου εκτέλεσης στην Κ.Μ.Ε. και του χρόνου που απαιτείται για την ολοκλήρωση των λειτουργιών Ε/Ε. Επειδή ο αλγόριθμος χρονοδρομολόγησης Κ.Μ.Ε. δεν μπορεί να επηρεάσει το χρόνο που μια διεργασία εκτελείται στην Κ.Μ.Ε. ή κάνει Ε/Ε, μπορεί αντί του χρόνου ανακύκλωσης, να εξετάζεται ο χρόνος αναμονής για κάθε διεργασία στην ουρά. Ένα άλλο κριτήριο για την επιλογή αλγορίθμου χρονοδρομολόγησης, ειδικά για διαλογικά συστήματα, είναι ο χρόνος που μεσολαβεί από την υποβολή μιας αίτησης μέχρι την παραγωγή της πρώτης απόκρισης και ονομάζεται χρόνος απόκρισης. Ο χρόνος απόκρισης δεν περιέχει τον χρόνο που απαιτείται για τη λειτουργία εξόδου της απόκρισης, σε αντίθεση με το χρόνο ανακύκλωσης που επηρεάζεται και από την ταχύτητα της συσκευής εξόδου. Στους αλγόριθμους χρονοδρομολόγησης επιδιώκεται η μεγιστοποίηση του βαθμού χρησιμοποίησης καθώς επίσης η ελαχιστοποίηση του χρόνου ανακύκλωσης, του χρόνου αναμονής και του χρόνου απόκρισης. 1.4 Ο αλγόριθμος κυκλικής επαναφοράς (Round Robin- R.R.) Ο αλγόριθμος κυκλικής επαναφοράς σχεδιάστηκε ειδικά για συστήματα καταμερισμού χρόνου. Ορίζεται μια μικρή μονάδα χρόνου που λέγεται κβάντο χρόνου (quantum time). Η ουρά των διεργασιών υλοποιείται ως μια κυκλική λίστα. Ο χρονοδρομολογητής της Κ.Μ.Ε. παραχωρεί την Κ.Μ.Ε. σε κάθε διεργασία της ουράς για χρονικό διάστημα το πολύ ίσο με το κβάντο χρόνου. ΚΜΕ Ο χρονοδρομολογητής κάθε φορά παίρνει την πρώτη διεργασία από την ουρά. δίνει κάποια τιμή σε κάποιο χρόνιστη και προωθεί την διεργασία για εκτέλεση. στην συνέχεια μπορούν να συμβούν δυο πράγματα : Α. αν η διεργασία απαιτεί έκρηξη Κ.Μ.Ε. μικρότερο από το κβάντο χρόνου, τότε η διεργασία αποδεσμεύει εκούσια την Κ.Μ.Ε., τερματιζόμενη ή κάνοντας αίτηση για Ε/Ε Β. Αν η έκρηξη της Κ.Μ.Ε. της εκτελούμενης διεργασίας είναι μεγαλύτερη από το κβάντο χρόνου, τότε ο χρονιστης θα διακόψει την εκτέλεση της διεργασίας δημιουργώντας μια διακοπή στο λειτουργικό σύστημα. Η διακοπή αυτή πιθανόν να μη γίνει δεκτή στην περίπτωση που η ουρά είναι άδεια. Αν γίνει δεκτή η διακοπή, οι καταχωρητές της διεργασίας που διακόπηκε, καθώς και οι άλλες πληροφορίες αποθηκεύονται στο σύνολο ελέγχου διεργασίας (ΣΕΔ) και η διεργασία τοποθετείτε στο τέλος της ουράς. Στη συνέχεια ο χρονοδρομολογητής επιλέγει την επόμενη διεργασία από την κεφαλή της ουράς και την παραχωρεί στην Κ.Μ.Ε. για ένα κβάντο χρόνου. 1.5 Παράδειγμα του αλγορίθμου κυκλικής επαναφοράς Έστω οι παρακάτω ουρά με τέσσερις διεργασίες : Δ (μήκος = 5 ) Γ (μήκος = 6 ) Β (μήκος = 2 ) Α (μήκος = 7 ) -5-

6 Α Β Γ Δ Α Β Γ Δ Α Β Γ Δ Α Γ Δ Α Γ Δ Α Γ Δ Α Γ Α Για το παραπάνω παράδειγμα ο μέσος χρόνος απόκρισης είναι : = 6 / 4 = 1,5 Και ο μέσος χρόνος επιστροφής είναι : = 62 / 4 = 15,5 1.6 Ο αλγόριθμος ουρών προτεραιοτήτων Ο αλγόριθμος ουρών προτεραιοτήτων λαμβάνει υπόψη του το πόσο σημαντική είναι μια διεργασία, έτσι όλες οι διεργασίες εκτελούνται σύμφωνα με την προτεραιότητα τους. Άρα η διεργασία με την μεγαλύτερη προτεραιότητα εκτελείται πρώτη (σημείωση : η διεργασία με την μεγαλύτερη προτεραιότητα είναι αυτή με τον μικρότερο αριθμό προτεραιότητας). Το πρόβλημα που δημιουργείται σε αυτό τον αλγόριθμο είναι το τι γίνεται με τις διεργασίες που έχουν ίδιο αριθμό προτεραιότητας. Στην περίπτωση αυτή χρησιμοποιείται ο αλγόριθμός κυκλικής επαναφοράς (Round Robin - RR), ο οποίος επεξηγήθηκε στην προηγούμενη παράγραφό. Το αποτέλεσμα των παραπάνω έχει την ύπαρξη πολλαπλών ουρών. Η κάθε ουρά περιέχει διεργασίες ίδιας προτεραιότητας και χρησιμοποιεί τον αλγόριθμο χρονοδρομολόγησης κυκλικής επαναφοράς για να χρονοδρομολόγηση τις διεργασίες της. Η εκτέλεση των διεργασιών της ουράς με προτεραιότητα δυο θα αρχίσει αν και μόνο αν δεν υπάρχει καμία διεργασία στην ουρά με προτεραιότητα ένα. Το ίδιο ισχύει και με τις ουρές χαμηλότερης προτεραιότητας. 1.7 Παράδειγμα του αλγορίθμου ουρών προτεραιοτήτων Έστω οι παρακάτω διεργασίες : Δ (μήκος = 5 ) Γ (μήκος = 6 ) Β (μήκος = 2 ) Α (μήκος = 7 ) Η διεργασία Α έχει προτεραιότητα 3, η διεργασία Β έχει προτεραιότητα 2 και οι διεργασίες Γ και Δ έχουν προτεραιότητα 1. Χρησιμοποιώντας τον αλγόριθμο χρονοδρομολόγησης ουρών προτεραιοτήτων, η σειρά εκτέλεσης των διεργασιών στη Κ.Μ.Ε. θα έχει την παρακάτω μορφή : Α Β Γ Δ

7 Γ Δ Γ Δ Γ Δ Γ Δ Γ Δ Γ Β Β Α Α Α Α Α Α Α Για το παραπάνω παράδειγμα ο μέσος χρόνος απόκρισης είναι : = 25 / 4 = 6,25 Και ο μέσος χρόνος επιστροφής είναι : = 54 / 4 = 13,5 Βλέπουμε ότι οι διεργασίες Γ και Δ, επειδή είναι της ίδιας προτεραιότητας δρομολογούνται σύμφωνα με τον αλγόριθμο κυκλικής επαναφοράς (Round Robin). Αυτό που μπορούμε να διαπιστώσουμε εύκολα μελετώντας το παραπάνω παράδειγμα είναι ότι παρόλο που η διεργασία Α έχει χρόνο άφιξης μικρότερο από αυτό των υπόλοιπων διεργασιών θα εκτελεστεί τελευταία αφού έχει την χαμηλότερη προτεραιότητα. 1.8 Αλγόριθμοι χρονοδρομολόγησης δίσκων Όπως είναι γνωστό σε ένα σύστημα υπάρχουν πολλές διεργασίες που μπορεί να ζητήσουν να διαβάσουν ή να γράψουν στο δίσκο. Επειδή είναι πολύ πιθανό, σε ορισμένες στιγμές οι συχνότητα των αιτήσεων για δίσκο να είναι μεγαλύτερη από το ρυθμό εξυπηρέτησης τους, συχνά δημιουργούνται ουρές από εκκρεμείς αιτήσεις για δίσκο. Μερικά συστήματα εξυπηρετούν αυτές τις αιτήσεις με βάση την σειρά άφιξης τους (FCFS). Αυτή η πολιτική εξυπηρέτησης, αν και είναι δίκαιη, μπορεί να οδηγήσει σε ουρές πολύ μεγάλου μήκους καθώς και σε μεγάλους χρόνους αναμονής. Ένας άλλος αλγόριθμός δρομολόγησης δίσκου είναι αυτός που εξυπηρετεί τις αιτήσεις σύμφωνα το χρόνο αναζήτησης. Δηλαδή εξυπηρετείτε η αίτηση που απαιτεί το λιγότερο χρόνο αναζήτησης (SSTF). Με αυτή την προσέγγιση όμως αγνοείται πλήρως η σειρά άφιξης των αιτήσεων. Στις παρακάτω παραγράφους γίνεται μια περιγραφή δυο άλλων αλγορίθμων και συγκεκριμένα του Scan και του C- Scan. Οι δύο αυτή αλγόριθμοί αναλύονται αφού χρησιμοποιούνται στην εφαρμογή προσημείωσης που υλοποιήθηκε κατά την εκπόνηση αυτής της εργασίας. 1.9 Αλγόριθμος Σάρωσης (Scan) Με τον αλγόριθμο σάρωσης (Scan), επιδιώκεται η αποφυγή των μειονεκτημάτων των αλγόριθμων FCFS και SSTF. Σε αυτό τον αλγόριθμο προηγείται η ικανοποίηση εκείνης της αίτησης, που αντιστοιχεί στο μικρότερο χρόνο αναζήτησης προς μια συγκεκριμένη κατεύθυνση. Ετσι η κεφαλή ταλαντεύεται από το ένα άκρο στο άλλο. Ο αλγόριθμος σάρωσης θεωρείται ότι μεταχειρίζεται όλα τα ίχνη περίπου ισοδύναμα, αν και τα ενδιάμεσα ίχνη εξετάζονται συχνότερα από τα ακραία. Η σχετικά ίση μεταχείριση των ιχνών σε συνδυασμό με την υψηλή ρυθμοαπόδοση έχουν καθιερώσει τον αλγόριθμο scan σε πολλά συστήματα διαχείρισης δίσκων. Αναπαράσταση του αλγορίθμου scan (I1-I5 τα ίχνη είναι διατεταγμένα με βάση το χρόνο στον οποίο ζητήθηκαν) -7-

8 1.10 Αλγόριθμος Κυκλικής Σάρωσης (C-Scan) Μια παραλλαγή του αλγορίθμου σάρωσης αναφέρεται με τον όρο αλγόριθμος κυκλικής σάρωσης. Στην περίπτωση αυτή, η κεφαλή διαβάζει ή γράφει μόνο κατά μια κατεύθυνση (π.χ. από τα εξωτερικά προς τα εσωτερικά ίχνη). Όταν φτάσει στο πιο εσωτερικό ίχνος, μεταφέρεται με μια κίνηση στο πιο εξωτερικό ίχνος και συνεχίζει με τον ίδιο τρόπο την εξυπηρέτηση των αιτήσεων. Με αυτή την προσέγγιση εξαφανίζεται τελείως ο διαχωρισμός των ιχνών σε προνομιούχα και μη προνομιούχα, ανάλογα με τη θέση στην επιφάνεια του δίσκο. Πειράματα έχουν δείξει ότι ο απλός αλγόριθμος σάρωσης είναι καλύτερος για μικρά φορτία, ενώ για μεγαλύτερα φορτία ο αλγόριθμος κυκλικής επαναφοράς δίνει καλύτερα αποτελέσματα. Αναπαράσταση του αλγορίθμου c scan (I1-I4 τα ίχνη που ζητήθηκαν πριν την ικανοποίηση του Ι1. Ι1 -Ι3 τα ίχνη που ζητήθηκαν μετά την ικανοποίηση του Ι1 ΚΕΦΑΛΑΙΟ Υλοποίηση της εφαρμογής Ο στόχος της εφαρμογής Priority Queues Simulator with Hard Disk I/O support είναι να μπορεί ο χρήστης να δει τα αποτελέσματα του αλγορίθμου Ουρών προτεραιοτήτων λαμβάνοντας υπόψη και πιθανές input-output λειτουργίες. Σαν ανάγκη θεωρούμε και την γραφική απεικόνιση του αλγορίθμου, έτσι ώστε να είναι καλύτερα κατανοητός. Για το λόγο αυτό δόθηκε μεγάλη βαρύτητα στη γραφική απεικόνιση. Πριν προχωρήσουμε στην παρουσίαση της εφαρμογής πρέπει να πούμε ότι υλοποιήθηκε με την χρήση της γλώσσας προγραμματισμού Visual Basic 6 και της δόθηκε το όνομα Priority Queues Simulator with Hard Disk I/O support δείχνοντας έτσι τις δυνατότητες της. Στο τέλος της παρουσίασης, ακολουθούν πέντε παραδείγματα χρήσης. Τα παραδείγματα αυτά θεωρήσαμε ότι είναι χρήσιμα για να γίνει καλύτερα κατανοητή η πλήρης λειτουργικότητα του Priority Queues Simulator with Hard Disk I/O Support. 2.2 Επεξήγηση εικονιδίων Πριν ξεκινήσουμε με την παρουσίαση της λειτουργικότητας της εφαρμογής, Θεωρούμε χρήσιμο να επεξηγηθούν τα εικονίδια που χρησιμοποιούνται στο interface της εφαρμογής. Στον παρακάτω πίνακα ακολουθεί ο πίνακας των εικονιδίων με τις κατάλληλες περιγραφές. Κουμπί «εισαγωγή». Με το πάτημα του αυτού του κουμπιού ο χρήστης μπορεί να εισάγει μια διεργασία στο σύστημα αφού πρώτα έχει πληκτρολογήσει τα δεδομένα που αφορούν την διεργασία αυτή (προτεραιότητα, χρόνος καταιγισμού, χρόνος άφιξης) Κουμπί «εκτέλεση». Με το πάτημα αυτού του κουμπιού, ο χρήστης εκτελεί ένα tick επεξεργαστή στο σύστημα. -8-

9 Κουμπί «εκτέλεση όλων». Με αυτό το κουμπί, όλες οι διεργασίες που έχουν εισαχθεί από τον χρήστη (ή παράγονται αυτόματα αν είναι ενεργοποιημένη η επιλογή αυτόματης παραγωγής διεργασιών) εκτελούνται στο σύστημα (όλα τα ticks που απαιτούνται) Κουμπί «αποτελέσματα». Το κουμπί αυτό μπορεί να πατηθεί μόνο όταν η προσομοίωση έχει εκτελεστεί και είναι υπεύθυνο για την παρουσίαση των αποτελεσμάτων της προσομοίωσης στον χρήστη. Κουμπί «Reset». Το κουμπί αυτό κάνει αρχικοποιεί τον προσομοιωτη. Κουμπί «αποθήκευση αποτελεσμάτων». Το κουμπί αυτό βρίσκεται στην οθόνη των αποτελεσμάτων και είναι υπεύθυνο για την αποθήκευση των αποτελεσμάτων της προσομοίωσης σε αρχείο κειμένου. Κουμπί «επιστροφή». Το κουμπί αυτό υπάρχει σε όλες τις δευτερεύουσες οθόνες τις εφαρμογής και είναι υπεύθυνο για την επιστροφή στην αρχική οθόνη. 2.3 Εκτέλεση διεργασιών Κάθε απλή διεργασία έχει τρία χαρακτηριστικά: τον αριθμό προτεραιότητας, τον χρόνο καταιγισμού και το χρόνο άφιξης. Αυτά τα τρία χαρακτηριστικά στο βασικό σύστημα (πρώτη εργασία) εισάγονται από το χρήστη και στο τυχαίο σύστημα (δεύτερη εργασία) παράγονται αυτόματα. Η παρουσίαση της εφαρμογής (πρώτη εργασία) θα γίνει με την χρήση ενός παραδείγματος. Για την παρουσίαση της εργασίας με την υποστήριξη λειτουργιών Ι/Ο θα ακολουθήσει άλλο παράδειγμα, ενώ στο τέλος θα περιγράφει τι έχει αλλάξει ώστε να υποστηρίζονται από το σύστημα διεργασίες Ι/Ο δίσκου. Παράδειγμα Έστω οι παρακάτω διεργασίες : Δ (μήκος = 5 ) Γ (μήκος = 6 ) Β (μήκος = 2 ) Α (μήκος = 7 ) Η διεργασία Α έχει προτεραιότητα 3 και χρόνο άφιξης πέντε, η διεργασία Β έχει προτεραιότητα 2 και χρόνο άφιξης δύο ενώ οι διεργασίες Γ και Δ έχουν προτεραιότητα 1 και χρόνο άφιξης επτά και τέσσερα αντίστοιχα. Το μήκος (χρόνος καταιγισμού), η προτεραιότητα των διεργασιών και ο χρόνο άφιξης τους πρέπει να πληκτρολογηθούν από το χρήστη στα τρία πεδία που βρίσκονται στο πάνω μέρος του βασικού παραθύρου της εφαρμογής. -9-

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

11 2.4 Παραμετροποίηση της εφαρμογής Μεγάλη βαρύτητα δόθηκε και στην παραμετροποίηση της εφαρμογής. Ο χρήστης μπορεί να παραμετροποιήσει την εφαρμογή από την επιλογή «επιλογές» του Μενού. Το παράθυρο των επιλογών φαίνεται στην παρακάτω εικόνα. Όπως φαίνεται στην οθόνη αυτή υπάρχουν πέντε frames. Θα περιγράψουμε τις παραμέτρους που φαίνονται στην παραπάνω οθόνη ανά frame: Πρώτο frame (Βασικές επιλογές εφαρμογής): Στο frame αυτό υπάρχουν κάποιες βασικές παράμετροι της εφαρμογής. Συγκεκριμένα η πρώτη παράμετρο αφορά το πόσες ουρές προτεραιότητας θα υπάρχουν στο σύστημα και η δεύτερη παράμετρο αφορά το πόσες διεργασίες μπορούν να φιλοξενηθούν από μια ουρά προτεραιότητας. Τέλος η τρίτη παράμετρο ορίζει το χρόνο που διαρκεί κάθε tick. Δεύτερο frame (Επιλογές γραφικών): Σε αυτό το frame περιλαμβάνονται οι παράμετροι των γραφικών. Αλλάζοντας αυτές της παραμέτρους, ο χρήστης μπορεί να προσαρμόσει την γραφική απεικόνιση στις ανάγκες του. Τρίτο frame (Σύστημα): Ο χρήστης μπορεί από αυτό το frame να αλλάζει τη συμπεριφορά του συστήματος. Αν το check Box που βρίσκεται στο Frame αυτό είναι τσεκαρισμένο, το σύστημα παράγει αυτόματα διεργασίες διαφορετικά οι διεργασίες θα πρέπει να εισάγονται από τον χρήστη. Αν ο χρήστης έχει επιλέξει την αυτόματη παραγωγή διεργασιών, ο χρήστης μπορεί να ορίσει την πιθανότητα παραγωγής διεργασιών ανά tick, το μέγιστο όριο διάρκειας της παραγόμενης διεργασίας και το διάστημα για το οποίο θα παράγονται διεργασίες. Ο χρήστης δε μπορεί να αλλάξει τις παραπάνω τρεις παραμέτρους αφού τα πεδία είναι απενεργοποιημένο εφόσον ο check box δεν είναι τσεκαρισμένο. Τέταρτο frame (Επιλογές Ι/Ο δίσκου): Το frame αυτό αφορά τις παραμέτρους που έχουν σχέση με τις επιλογές Ι/Ο δίσκου. Συγκεκριμένα αν το check box αυτού του frame είναι ενεργοποιημένο, ο χρήστης μπορεί να επιλέξει τον αλγόριθμο δρομολόγησης δίσκου που επιθυμεί (scan c-scan), να ορίσει το πλήθος τωn tracks του δίσκου, την αρχική θέση της κεφαλής, την κατεύθυνση της κεφαλής καθώς επίσης τα ticks που απαιτούνται για μια κίνηση της κεφαλής, το μέγιστο πλήθος αιτήσεων και την πιθανότητα παραγωγής διεργασίας Ι/Ο δίσκου. Πέμπτο frame (Επιλογές Ι/Ο): Ο χρήστης μπορεί από εδώ να ορίσει αν θέλει ή όχι την ενεργοποίηση του μέρους της εργασίας που αφορά την υποστήριξη Ι/Ο λειτουργιών. Αν το check box αυτού του frame είναι τσεκαρισμένο, υποστηρίζονται λειτουργίες Ι/Ο και ο χρήστης μπορεί να ορίσει το χρόνο που διαρκεί μια λειτουργία Ι/Ο σε ticks και το ποιο είναι το μέγιστο πλήθος λειτουργιών Ι/Ο που μπορεί να εκτελέσει μια διεργασία. Το τελευταίο πεδίο αυτού του frame αφορά την πιθανότητα παραγωγής λειτουργίας(-ων) Ι/Ο σε μια διεργασία. Το πεδίο αυτό είναι ενεργό αν και μόνο αν είναι ενεργοποιημένο το σύστημα αυτόματης παραγωγής διεργασιών και το σύστημα υποστήριξης Ι/Ο. Θα πρέπει να αναφερθεί ότι όταν ο χρήστης ενεργοποιεί την υποστήριξη Ι/Ο δίσκου, το τυχαίο σύστημα ενεργοποιείται αυτόματα. -11-

12 2.5 Λειτουργίες Ι/Ο Αν ο χρήστης έχει δηλώσει στην οθόνη των επιλογών ότι επιθυμεί την υποστήριξη λειτουργιών Ι/Ο και δεν επιθυμεί την αυτόματη παραγωγή διεργασιών τότε στην αρχική οθόνη θα μπορεί εκτός από το χρόνο άφιξης, τη διάρκεια και την προτεραιότητα της διεργασίας να εισάγει και τις στιγμές που η διεργασία θα εκτελέσει λειτουργία Ι/Ο. Έτσι αν θέλουμε να εισάγουμε μια διεργασία που έχει προτεραιότητα 2, διάρκεια 20, χρόνο άφιξης 5 και έχει ανάγκη για λειτουργία Ι/Ο στο πέμπτο, δωδέκατο και δέκατοεκτο tick, πληκτρολογούμε τις τιμές στα αντίστοιχα πεδία όπως φαίνεται στη διπλανή εικόνα. Για να εισάγουμε μια λειτουργία Ι/Ο στο σύστημα κάνουμε διπλό κλικ σε κελί της στήλης Ι/Ο και πληκτρολογούμε στο πλαίσιο διαλόγου που μας παρουσιάζεται την στιγμή της λειτουργίας Ι/Ο. Θα πρέπει να αναφερθεί ότι ο αριθμός των κελιών της στήλης Ι/Ο εξαρτάται από τον αριθμό που έχει δηλώσει ο χρήστης σαν μέγιστο πλήθος Ι/Ο στην οθόνη των επιλογών. Έτσι, αν στο σύστημα έχει εισαχθεί μια διεργασία Ι/Ο, τότε τη στιγμή εκτέλεσης της λειτουργίας Ι/Ο, η διεργασία αυτή θα παρουσιαστεί στη γραφική απεικόνιση της προσομοίωσης με διαφορετικό χρώμα, ενώ στο εσωτερικό μέρος της διεργασίας θα εμφανιστεί ο χρόνος που απομένει για την ολοκλήρωση της Ι/Ο λειτουργίας. Ο χρόνος αυτός εξαρτάται από τον αριθμό που έχει δηλώσει ο χρήστης ως διάρκεια Ι/Ο λειτουργίας στην οθόνη των επιλογών. Αν ο χρήστης έχει επιλέξει την αυτόματη παραγωγή διεργασιών τότε όλα τα παραπάνω χαρακτηριστικά μιας διεργασίας επιλέγονται τυχαία με τέτοιο τρόπο ώστε να ικανοποιούν τις προϋποθέσεις που έχει θέσει ο χρήστης στην οθόνη των επιλογών. Θα πρέπει να αναφερθεί η παραδοχή που έγινε σχετικά με τις λειτουργίες Ι/Ο. Θεωρούμε ότι οι λειτουργίες Ι/Ο μπορούν να εκτελούνται παράλληλα. Δηλαδή αν μια διεργασία έχει σταματήσει για να εκτελέσει Ι/Ο και ενώ η λειτουργία Ι/Ο δεν έχει τελειώσει έρχεται στο σύστημα μια διεργασία μεγαλύτερης προτεραιότητας, τότε η διεργασία αυτή θα εκτελείται ταυτόχρονα με την λειτουργία Ι/Ο. Φυσικά, η διεργασία που εκτελεί το Ι/Ο μετά το την ολοκλήρωση του Ι/Ο θα περιμένει μέχρι η διεργασία με μεγαλύτερη προτεραιότητα ολοκληρωθεί. Επίσης, αν διεργασίες ιδίας προτεραιότητας (κατά το round robin) θέλουν να εκτελέσουν λειτουργία Ι/Ο τότε αυτές οι λειτουργίες εκτελούνται παράλληλα, δηλαδή με κάθε tick εκτελείται η ι/ο λειτουργία για κάθε διεργασία που εκτελεί ι/ο. 2.6 Λειτουργίες Ι/Ο δίσκου Όπως έχει προαναφερθεί, το σύστημα έχει αλλάξει κατά την εκπόνηση της τρίτης εργασίας, έτσι ώστε αυτό να προσομοιώνει και τους αλγόριθμους δρομολόγησης δίσκου Scan και C-Scan. Με την προσθήκη αυτή το σύστημα μας μπορεί να δρομολογεί διεργασίες που έχουν ανάγκη ανάγνωσης ή γραφής στον δίσκο. Πριν προχωρήσουμε σε ένα παράδειγμα, θεωρούμε χρήσιμο σε αυτό το σημείο να αναφέρουμε κάποιες παραδοχές που έχουν γίνει για αυτό το σημείο της εφαρμογής: Οι διεργασίες που προορίζονται για τον δίσκο τοποθετούνται εξ αρχής στο σύστημα με χρώμα καφέ, και δεν έχουν χρόνο καταιγισμού (0), ούτε χρόνο αναμονής (0) αφού η εξυπηρέτησή τους εξαρτάται από τον δίσκο και από την κίνηση της κεφαλής του και μόνο. Επίσης, αντί για διάρκεια στις διεργασίες αυτές θα αναγράφεται το πλήθος των αιτήσεων των tracks που δεν έχουν ακόμα εξυπηρετηθεί. Έτσι η διεργασία θα παραμένει στο σύστημα τόσο χρόνο, όσο χρειάζεται ώστε να εξυπηρετηθούν όλες οι αιτήσεις της. Η προτεραιότητά τους ορίζεται να είναι από 7-1 (<0) και αυτό είναι ένα σημείο στους αλγορίθμους που τις διακρίνει από τις άλλες. Φυσικά, για να τις τοποθετήσουμε στο σύστημά μας τις μεταφέρουμε με πρόσθεση του 8 στις αντίστοιχες 1..7 ώστε να παρασταθούν γραφικά και να έχουμε οπτική επαφή μαζί τους. Όμως η επεξεργασία τους στο σύστημα είναι τελικά ανεξάρτητη από τις απλές διεργασίες. Οι υπόλοιπες διεργασίες (απλές) θα τοποθετούνται κανονικά στο σύστημα με τις προτεραιότητές τους 1 7 και θα εξυπηρετούνται με τον αλγόριθμο priority queues όπως και στην προηγούμενη έκδοση. Μάλιστα η επεξεργασία τους είναι τελικά ανεξάρτητη από την επεξεργασία των άλλων Στο σύστημα εισάγονται διεργασίες του κάθε είδους με μία πιθανότητα που ορίζεται από τον χρήστη. Επίσης ο χρήστης ορίζει στις επιλογές (παραμετρικά) το πλήθος των tracks, την αρχική θέση της κεφαλής του δίσκου, την αναλογία χρόνων μεταξύ επεξεργαστή και δίσκου, την αρχική κατεύθυνση της κίνησής του, το μέγιστο πλήθος των αιτήσεων tracks που μπορεί να έχει μία διεργασία με ΙΟ δίσκου και φυσικά όλες τις προηγούμενες παραμέτρους του προγράμματος. Όταν εισάγεται μία διεργασία ΙΟ δίσκου τότε οι αιτήσεις της για τα tracks εκλέγονται τυχαία στο σύνολο των tracks του δίσκου και σχεδιάζονται στον δίσκο με καφέ στις θέσεις που αντιστοιχούν. Κάθε φορά που η κεφαλή εξυπηρετεί ένα track το ασπρίζει. Επίσης, να σημειωθεί ότι μπορεί δύο ή -12-

13 περισσότερες διεργασίες δίσκου να ζητούν το ίδιο track. Τότε το σύστημα, όπως και στην πραγματικότητα, όταν φτάσει η κεφαλή σε εκείνα τα track εξυπηρετεί κάθε διεργασία που έχει αιτήσεις για αυτά και έτσι μειώνονται ταυτόχρονα οι καφέ τιμές τους στο σύστημα. Το σύστημα θα δημιουργεί διεργασίες για όσο χρονικό διάστημα υπάρχει διαθέσιμος χρόνος, ενώ μόλις αυτός εξαντληθεί, σταματά μεν η δημιουργία αλλά το σύστημα συνεχίζει μέχρις ότου να εξυπηρετήσει όλες τις διεργασίες κάθε είδους. Το πρόγραμμα υποστηρίζει τις προηγούμενες εκδόσεις του συστήματος (εργασία 1 και εργασία 2) όταν η παράμετρος (δημόσια μεταβλητή) hdf είναι false. Όταν ο χρήστης ενεργοποιεί από την οθόνη των επιλογών τις λειτουργίες Ι/Ο δίσκου τότε, το τυχαίο σύστημα (αυτόματη παραγωγή διεργασιών) ενεργοποιείται αυτόματα ενώ απενεργοποιούνται οι λειτουργίες Ι/Ο (εργασία 2). Για τον υπολογισμό των μέσων χρόνων (μέσος χρόνος αναμονής και μέσος χρόνος επιστροφής) λαμβάνονται υπόψη και οι διεργασίες Ι/Ο δίσκου. Υπενθυμίζουμε ότι οι διεργασίες που προορίζονται για δίσκο τοποθετούνται εξαρχής στο σύστημα, δηλαδή έχουν χρόνο αναμονής μηδέν. Για λόγους ευκολίας θα αναφερόμαστε σε tracks δίσκου αντί σε κυλίνδρους. Αυτό γιατί θεωρούμε ότι υπάρχει μόνο ένας δίσκος και όχι συστοιχία δίσκων Παρακάτω ακολουθεί μια περιγραφή του τι έχει αλλάξει στις βασικές διαδικασίες του κώδικα καθώς επίσης υπάρχει μια περιγραφή των βασικών διαδικασιών που έχουν προστεθεί στο κώδικα ώστε να υποστηρίζονται διαδικασίες Ι/Ο δίσκου. Στην InitializeGraphicsAndVars (διαδικασία αρχικοποίησης γραφικής αναπαράστασης ) έγιναν όλες οι νέες απαραίτητες δηλώσεις παραμέτρων και μεταβλητών και αρχικοποιήσεις, ενώ προστέθηκε το τμήμα σχεδίασης και αυτόματης προσαρμογής της απεικόνισης του δίσκου στο σύστημά μας όταν φυσικά είναι ενεργοποιημένος. Οι InsertActivity (διαδικασία εισαγωγής απλής διεργασίας στο σύστημα), ExecuteActivities (διαδικασία εκτέλεσης απλών διεργασιών) δεν αλλοιώθηκαν καθόλου ώστε το σύστημα να λειτουργεί και με τις προηγούμενες περιπτώσεις των εκδόσεων του προγράμματος. Η διαδικασία ExecuteAll1 (διαδικασία εκτέλεσης όλων των διεργασιών) μεταβλήθηκε ώστε να εκτελεί κατά περίπτωση χρήσης του συστήματος τις προηγούμενες εκδόσεις αλλά και τη νέα έκδοση με το δίσκο καλώντας την νέα ExecuteActivitiesHD. Η διαδικασία Statistics (διαδικασία δημιουργίας στατιστικών στοιχείων) μεταβλήθηκε ώστε να εμφανίζει και τις προηγούμενες περιπτώσεις χρήσης αλλά και στη νέα περίπτωση τις αιτήσεις track που έχει κάθε διεργασία ΙΟ δίσκου Η Hdmove είναι νέα διαδικασία που μετακινεί στη νέα θέση την κεφαλή του δίσκου στο γραφικό σύστημα και κάνει τις απαραίτητες μεταβολές και εξυπηρετήσεις που απαιτούνται. Η ExecuteActivitiesHD είναι μία νέα διαδικασία που αφορά την εκτέλεση του νέου συστήματος με υποστήριξη ΙΟ δίσκου και η οποία βασίστηκε μεν στην ExecuteActivities όμως η δομή της έχει σχεδόν ριζικά αλλάξει με τα νέα δεδομένα. Η διαδικασία αυτή είναι η καρδιά της λειτουργίας του νέου συστήματος. Η CheckIOsHD είναι μία νέα διαδικασία που ελέγχει σε όλες τις διεργασίες δίσκου εάν την τρέχουσα χρονική στιγμή η κεφαλή του δίσκου είναι σε θέση να τις εξυπηρετήσει και αν ναι τότε εκτελεί τις ακόλουθες μεταβολές στο σύστημα (υπολογιστικές και γραφικές). Η CreateRandomActivityHD είναι παραλαγή της CreateRandomActivity όπου ισχύει στο νέο σύστημα και δημιουργεί διεργασίες ΙΟ δίσκου ή απλές με όλες τις απαραίτητες παραμέτρους της και καταχωρείται στο σύστημα. Να σημειωθεί ότι οι διεργασίες τοποθετούνται στο σύστημα ανάλογα με το είδος τους καλώντας διαφορετική διαδικασία InsertActivityHD και InsertActivity αντίστοιχα κατά περίπτωση. Η InsertActivityHD είναι παραλλαγή της InsertActivity η οποία τοποθετεί μία διεργασία ΙΟ δίσκου στο σύστημα σύμφωνα με τις υποθέσεις που αναφέραμε. Η συνάρτηση TotalTracksLeft επιστρέφει για μία διεργασία ΙΟ δίσκου το πλήθος των αιτήσεων tracks που ακόμα δεν έχουν εξυπηρετηθεί (την φαινομενική της διάρκεια δηλαδή). Η συνάρτηση XfromID επιστρέφει την θέση της προτεραιότητας μίας διεργασίας στο σύστημα εφόσον βρίσκεται μέσα σ αυτό. Η συνάρτηση YfromID επιστρέφει το κελί της ουράς στη προτεραιότητα μιας διεργασίας στο σύστημα εφόσον βρίσκεται μέσα σ αυτό. Όπως έχουμε πει οι διαδικασίες Ι/Ο δίσκου υποστηρίζονται μόνο στο τυχαίο σύστημα. Αυτό σημαίνει ότι δε μπορούμε να εισάγουμε διεργασίες Ι/Ο δίσκου manually. Έστω ότι εκτελούμε το προσημείωση με τις παρακάτω παραμέτρους (η τελευταία παράμετρο σημαίνει ότι όλες οι διαδικασίες θα είναι Ι/Ο δίσκου): Συνολικό πλήθος tracks δίσκου : 24 Ticks επεξεργαστή που εκτελούνται σε μια κίνηση της κεφαλής : 1-13-

14 Μέγιστο πλήθος αιτήσεων tracks : 5 Πιθανότητα δημιουργίας διεργασίας Ι/Ο δίσκου : 100% Αλγόριθμος : Scan Πιθανότητα παραγωγής διεργασίας ανά tick : 40% Χρονικό διάστημα παραγωγής διεργασιών : 20 Εκτελώντας την προσημείωση με τις παραπάνω παραμέτρους, θα εισαχθούν σε τυχαία χρονικά διαστήματα ένας αριθμός διεργασιών Ι/Ο δίσκου κατά την διάρκεια 20 ticks. Η γραφική αναπαράσταση του συστήματος θα προσαρμόζεται κατάλληλα μετά το πέρας του κάθε tick. Στην εικόνα που ακολουθεί φαίνεται η κεντρική οθόνη της εφαρμογής κατά την εκτέλεση της Η οθόνη προσομοίωσης κατά την εκτέλεση προσομοίωσης των αλγορίθμων Priority Queues και Scan. Ενώ στην συνέχεια παρουσιάζεται η οθόνη των αποτελεσμάτων μετά την ολοκλήρωση της προσομοίωσης. Η οθόνη των αποτελεσμάτων. Στην στήλη απαιτούμενα tracks δίσκου περιέχονται οι αριθμοί των tracks που απαιτεί η κάθε διεργασία. -14-

15 2.7 Παραδείγματα χρήσης της εφαρμογής Priority Queues Simulator with Hard Disk I/O support Όπως έχουμε προαναφέρει, θα προσπαθήσουμε να κάνουμε κατανοητή τη λειτουργικότητα του λογισμικού μας κυρίως μέσω παραδειγμάτων. Σε αυτή την ενότητα περιλαμβάνονται πέντε παραδείγματα χρήσης, συνοψίζοντας έτσι όλες τις λειτουργίες της εφαρμογής. Αρχικά θα παρουσιαστεί ένα παράδειγμα δρομολόγησης απλών διεργασιών (εργασία 1), και ένα παράδειγμα δρομολόγησης απλών διεργασιών με ανάγκη για λειτουργίες Ι/Ο (εργασία 2). Στην συνέχεια θα ακολουθήσει ένα παράδειγμα αυτόματης παραγωγής απλών διεργασιών (εργασία 2) και ένα παράδειγμα αυτόματης παραγωγής διεργασιών με ανάγκη για Ι/Ο λειτουργίες (εργασία 2). Το τελευταίο παράδειγμα χρήσης αφορά την αυτόματη παραγωγή απλών διεργασιών σε συνδυασμό με την αυτόματη παραγωγή διεργασιών Ι/Ο δίσκου (εργασία 3) Παράδειγμα 1: Δρομολόγηση απλών διεργασιών (εργασία 1) Προτεραιότητα Χρ. Καταιγισμού Χρ. Άφιξης Διεργασία Διεργασία Διεργασία Διεργασία Διεργασία Διεργασία Οι παραπάνω διεργασίες εισάγονται από τον χρήστη από το βασικό παράθυρο της εφαρμογής πληκτρολογώντας τις τιμές του πίνακα στα αντίστοιχα πεδία και πατώντας το κουμπί εισαγωγή. Στην παρακάτω εικόνα εμφανίζονται οι τιμές που έχουν επιλεχτεί για τις παραμέτρους τις εφαρμογής στην οθόνη των επιλογών. Πατώντας το κουμπί «εκτέλεση όλων» η γραφική απεικόνιση της εφαρμογής προσαρμόζεται κατάλληλα ώστε να ανταποκρίνεται στην κατάσταση της δρομολόγησης σε κάθε tick. Η γραφική απεικόνιση μετά το δέκατο tick φαίνεται στη διπλανή εικόνα. -15-

16 Μετά την ολοκλήρωση της εκτέλεσης όλων των διεργασιών έχουμε τα παρακάτω αποτελέσματα Παράδειγμα 2: Δρομολόγηση απλών διεργασιών με ανάγκη λειτουργιών Ι/Ο (εργασία2) Προτεραιότητα Χρ. Καταιγισμού Χρ. Άφιξης Ι/Ο Διεργασία ,6 Διεργασία Διεργασία ,6,10 Διεργασία Διεργασία ,7 Διεργασία Διεργασία Στην περίπτωση αυτή, όπως φαίνεται και στον παραπάνω πίνακα, κάποιες από τις διεργασίες απαιτούν λειτουργίες Ι/Ο. Στην τελευταία στήλη του πίνακα φαίνονται τα σημεία στα οποία η αντίστοιχη διεργασία πρέπει να διακόψει ώστε να εκτελέσει λειτουργία Ι/Ο. Οι παραπάνω τιμές πληκτρολογούνται από το χρήστη από το βασικό παράθυρο της εφαρμογής (όπως και στην προηγούμενη περίπτωση). Για να εισάγουμε μια λειτουργία Ι/Ο απλά κάνουμε διπλό κλικ στο ένα από τα κελιά τις στήλης Ι/Ο και πληκτρολογούμε τη στιγμή που η διεργασία θα διακόψει για Ι/Ο. Στην παρακάτω εικόνα φαίνεται το παράθυρο των παραμέτρων. Όπως φαίνεται και σε αυτή την εικόνα, η διάρκεια τις κάθε λειτουργίας Ι/Ο είναι πέντε ticks και το μέγιστο πλήθος των λειτουργιών Ι/Ο που μπορεί να έχει μια διεργασία είναι τρεις. -16-

17 Στη διπλανή εικόνα φαίνεται η γραφική απεικόνιση της προσομοίωσης μετά 48 ticks και στη συνέχεια ακολουθούν τα αποτελέσματα μετά την εκτέλεση όλων των διεργασιών Παράδειγμα 3: Δρομολόγηση παραγομένων αυτόματα απλών διεργασιών (εργασία 2). Σε αυτή την περίπτωση οι διεργασίες δεν εισάγονται από το χρήστη αλλά παράγονται αυτόματα. Παρακάτω φαίνεται το παράθυρό των παραμέτρων για αυτή την περίπτωση. Όπως φαίνεται σε αυτό το παράθυρο, το σύστημα θα παράγει αυτόματα διεργασίες για 30 ticks με πιθανότητα παραγωγής διεργασίας σε κάθε tick 30%. Με την παράμετρο αυτής της πιθανότητας μπορούμε να ορίσουμε την «κίνηση» στο σύστημα. Η εκκίνηση της εκτέλεσης γίνεται πατώντας απλά το κουμπί εκτέλεσης όλων. -17-

18 2.7.4 Παράδειγμα 4: Δρομολόγηση παραγομένων αυτόματα διεργασιών με ανάγκη για λειτουργίες Ι/Ο (εργασία2) Σε αυτή την περίπτωση το μόνο που αλλάζει σε σχέση με το προηγούμενο παράδειγμα είναι ότι τι σύστημα μπορεί να παράγει αυτόματα είτε διεργασίες με ανάγκη για Ι/Ο είτε χωρίς. Το μόνο που κάνουμε στο παράθυρο των παραμέτρων είναι να ενεργοποιήσουμε στο σύστημα Ι/Ο. Σε αυτή την περίπτωση, είναι ενεργοποιημένο το πεδίο της πιθανότητας παραγωγής Ι/Ο ανά διεργασία. Από το πεδίο αυτό ο χρήστης μπορεί να επιλέξει την πιθανότητα με την οποία μια διεργασία θα έχει λειτουργίες Ι/Ο. Τα αποτελέσματα μιας τέτοιας εκτέλεσης φαίνονται παρακάτω. -18-

19 2.7.5 Παράδειγμα 5: Δρομολόγηση διεργασιών Ι/Ο δίσκου που παράγονται αυτόματα (εργασία3) Αυτή είναι η πιο σύνθετη περίπτωση του συστήματος μας. Οι διεργασίες παράγονται αυτόματα και ένα ποσοστό αυτών πρέπει να δρομολογηθούν στο σκληρό δίσκο του υπολογιστή και οι υπόλοιπες στον επεξεργαστή. Από το παράθυρο των επιλογών ο χρήστης μπορεί να ορίσει ποιος από τους αλγόριθμους σάρωσης θα χρησιμοποιηθεί για τη δρομολόγηση των διεργασιών δίσκου (scan, c-scan). Επίσης μπορεί να δηλώσει κάποιες παραμέτρους που αφορούν την κεφαλή του σκληρού δίσκου καθώς επίσης μπορεί να επιλέξει το μέγιστο αριθμό αιτήσεων για tracks και την πιθανότητα η παραγόμενη διεργασία να είναι I/O δίσκου ή όχι. Στο συγκεκριμένο παράδειγμα θα χρησιμοποιήσουμε τις παρακάτω παραμέτρους. Στην παραπάνω οθόνη φαίνεται ότι υπάρχει πιθανότητα 40% σε ένα tick να παραχθεί μια διεργασία και κατά 40% αυτή η διεργασία θα είναι Ι/Ο δίσκου. Τα περισσότερα tracks που μπορεί να ζητήσει μια διεργασία δίσκου είναι πέντε και θα χρησιμοποιηθεί ο αλγόριθμος κυκλικής σάρωσης (c-scan). Όπως φαίνεται στην παρακάτω εικόνα, ενεργοποιώντας την επιλογή λειτουργιών Ι/Ο δίσκου, στο κάτω μέρος της βασικής οθόνης εμφανίζεται το σύστημα του δίσκου. Τα αποτελέσματα της παραπάνω εκτέλεσης φαίνονται στην παρακάτω εικόνα. Οι διεργασίες που έχουν αρνητική προτεραιότητα είναι διεργασίες δίσκου ενώ αυτές με θετική προτεραιότητα είναι διεργασίες επεξεργαστή. -19-

20 -20-

21 ΚΕΦΑΛΑΙΟ Τεκμηρίωση δημόσιων μεταβλητών και σταθερών του πηγαίου κώδικα Πίνακες διεργασιών Public a() As Integer (Πίνακας αριθμού (χρόνου άφιξης) διεργασίας) Public d() As Integer (Πίνακας διάρκειας διεργασιών) Public e() As Boolean (Πίνακας εκτέλεσης η όχι της διεργασίας) Public pr() As Integer (Πίνακας προτεραιοτήτων των διεργασιών) Public dur() As Integer (Πίνακας διάρκειας των διεργασιών) Public ar() As Integer (Πίνακας χρόνου άφιξης διεργασιών) Πινακες αποτελεσμάτων για τις διεργασίες Public ta() As Integer (Πίνακας χρόνου αναμονής διεργασιών) Public tr() As Integer (Πίνακας χρόνου επιστροφής διεργασιών) Βασικές μεταβλητές Public cells As Integer (Αριθμός διεργασιών που μπορεί να φιλοξενίσει κάθε ουρά προτεραιότητας) Public priorities As Integer (Αριθμός προτεραιοτήτων) Public Const MaxDuration As Integer = 999 (Μέγιστο όριο διάρκειας διεργασίας) Public Const qmax As Integer = 1000 (Μέγιστο πλήθος διεργασιών) Public Const MaxWaiting As Integer = 999 (Μέγιστο όριο άφιξης διεργασιών) Public ctime As Long (Συνολικός χρόνος σε ticks που εκτέλεσε το σύστημα) Public qcount As Integer (Πλήθος διεργασιών στο σύστημα) Public s As String (Κείμενο αποτελεσμάτων που εμφανίζεται στο textbox Δεξί μέρος του παραθύρου) Public fe As Boolean (εκτέλεση ή όχι όλων των διεργασιών που βρίσκονται στο σύστημα) Public delay As Single (Χρόνος διαδοχής των ticks στο σύστημα) Μεταβλητές Γραφικών Public vx As Integer (Πλάτος τετραγώνου διεργασίας) Public vy As Integer (Ύψος τετραγώνου διεργασίας) Public dx As Integer (Απόσταση τετραγώνων διεργασιών) Public dy As Integer (Απόσταση ουρών) Public x() As Integer (Πίνακας τετμημένης της διεργασίας σε pixels στο picture box) Public y() As Integer (Πίνακας τεταγμένης της διεργασίας σε pixels στο picture box) Public Const vect As Integer = 5 (Ύψος και πλάτος βέλους) Public yoff As Integer (Περιθώριο γραφικού από την πάνω μέρος της οθόνης) Παράμετροι τυχαιότητας Public rand As Boolean (σημαία ενεργοποίησης αυτόματης παραγωγής διεργασιών) Public MaxTime As Integer (χρονικό διάστημα αυτόματης παραγωγής διεργασιών) Public fr As Boolean (Δείκτης παύσης παραγωγής διεργασιών μετά το πέρας του χρόνου) Public ppa As Single (Πιθανότητα παραγωγής διεργασίας) Public rdur As Integer (Μέγιστο όριο διάρκειας παραγόμενων διεργασιών) Παράμετροι Ι/Ο Public iof As Boolean (Σημαία δήλωσης υποστήριξης λειτουργιών Ι/Ο) Public IOMax As Integer (Μέγιστο πλήθος Ι/Ο) Public IODur As Integer (Διάρκεια λειτουργίας Ι/Ο) Public ios() As Integer (Πίνακας λειτουργιών Ι/Ο ανά διεργασία 2 διαστάσεις) Public pio() As Integer (Πίνακας καταστάσεων παύσης διεργασιών για Ι/Ο) Public ppio As Single (Πιθανότητα ύπαρξης Ι/Ο) 'Παράμετροι δίσκου Public hdf As Boolean (Ενεργοποίηση δίσκου για ι/ο ή όχι) Public tickperhd As Integer (Ποσα tick της CPU εκτελούνται σε ένα scan-read κυλίνδρου-track του δίσκου (>=1)) Public tracks As Integer (Πόσους κυλίνδρους-αυλάκια έχει ο δίσκος) Public strack As Integer (Αρχική θέση της κεφαλής) Public mtrack As Integer (Κατεύθυνση κίνηση της κεφαλής (1δεξια, -1 αριστερά)) Public xt() As Integer (Τετμημένη γραφικής θέσης track του δίσκου) Public yt() As Integer (Τεταγμένη γραφικής θέσης track του δίσκου) Παράμετροι Ι/Ο για δίσκους Public hdiomax As Integer (Μέγιστο πλήθος αιτούμενων HD-Tracks ανά διεργασία με ι/ο) Public hdios() As Integer (Πίνακας καταχώρησης των αιτούμενων HD-tracks κάθε διεργασίας με μεταβολές) Public hdpios() As Integer (Πίνακας καταχώρησης των αιτούμενων HD-tracks κάθε διεργασίας - πρωτότυπα) Public hdppio As Single (Πιθανότητα μια διεργασία να έχει ι/ο για το δίσκο) Public algflag As Boolean (Σημαία χρησιμοποίησης αλγορίθμου (true:cscan false:scan)) -21-

22 Οι μεταβλητές : priorities, cells, delay, dx, dy, vx, vy, IOMax, IODur, ppio, ppa, iof, yoff, maxtime, rand, rdur, algflag hdppio, hdiomax, mtrack, strack, tracks, tickperhd, hdf, αποθηκεύονται στην registry των windows χρησιμοποιώντας την εντολή SaveSetting και ανακτώνται από εκεί με την εντολή GetSetting. Παράδειγμα SaveSetting APPNAME:="SimulatorValues", Section:="Settings", _ Key:="option_1", setting:=cstr(priorities) priorities=val(getsetting(appname:="simulatorvalues",section:="settings",_ Key:="option_1", Default:="7")) 3.2 Τεκμηρίωση της διαδικασίας αρχικοποίησης μεταβλητών και γραφικών αντικειμένων. Η διαδικασία αυτή καλείται κατά το load της εφαρμογής και κάθε φορά που πατάει ο χρήστης το κουμπί Reset. Public Sub InitializeGraphicsAndVars(pbox As PictureBox, tbox As TextBox) Αρχικοποίηση δημόσιων μεταβλητών και πινάκων Dim x0 As Integer Dim y0 As Integer Dim x1 As Integer Dim y1 As Integer Dim xc As Integer Dim yc As Integer Dim I As Integer Dim J As IntegerReDim a(priorities, cells) ReDim a(priorities, cells) ReDim d(priorities, cells) ReDim x(priorities, cells) ReDim y(priorities, cells) ReDim e(priorities, cells) ReDim pr(qmax) ReDim dur(qmax) ReDim ar(qmax) ReDim ta(qmax) ReDim tr(qmax) 'Ορισμός πινάκων ιο ReDim ios(qmax, IOMax) ReDim pio(qmax) 'Ορισμός πινάκων δίσκου ReDim xt(tracks) ReDim yt(tracks) ReDim hdios(qmax, hdiomax) ReDim hdpios(qmax, hdiomax) For i = 1 To priorities For j = 1 To cells a(i, j) = 0 d(i, j) = 0 x(i, j) = 0 y(i, j) = 0 e(i, j) = False Next j Next i For I = 1 To qmax For J = 1 To IOMax ios(i, J) = 0 Next J pio(i) = 0 For J = 1 To hdiomax hdios(i, J) = 0 hdpios(i, J) = 0 Next J Next I qcount = 0 ctime = 0 s = "" -22-

23 fe = False fr = False Αρχικοποίηση γραφικών αντικειμένων. Εδώ σχεδιάζονται ουρές προτεραιότητας, τα βέλη κτλ τα οποία φαίνονται στο βασικό παράθυρο της εφαρμογής. pbox.scalemode = 3 pbox.fillstyle = 1 pbox.autoredraw = True tbox.locked = True tbox.text = "" For I = 1 To priorities x0 = vx y0 = yoff + dy + (vy + dy) * I If I = 1 Then pbox.line (x0, y0 + dy / 2)-(x0 + (vx + dx) * cells + 13 * vx, y0 + dy / 2) pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * _ vx + dx, y0 + vy), QBColor(15), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U. pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx _ + dx, y0 + vy),, B pbox.line (x0 + (vx + dx) * cells + 13 * vx, y0 + dy / 2)-(x0 + (vx + dx) * _ cells + 13 * vx - vect, y0 + dy / 2 - vect) pbox.line (x0 + (vx + dx) * cells + 13 * vx, y0 + dy / 2)-(x0 + (vx + dx) * _ cells + 13 * vx - vect, y0 + dy / 2 + vect) pbox.line (x0 + (vx + dx) * cells + 13 * vx - vect, y0 + dy / 2 - vect)-(x0 + _ (vx + dx) * cells + 13 * vx - vect, y0 + dy / 2 + vect) pbox.line (x0, y0 + dy / 2)-(x0 + (vx + dx) * cells + 2 * vx, y0 + dy / 2) pbox.line (x0 + vx + dx, y0 + dy / 2)-(x0 + vx + dx - vect, y0 + dy / 2 - vect) pbox.line (x0 + vx + dx, y0 + dy / 2)-(x0 + vx + dx - vect, y0 + dy / 2 + vect) pbox.line (x0 + vx + dx - vect, y0 + dy / 2 - vect)-(x0 + vx + dx - vect, y0 + dy / 2 + vect) pbox.line (x0 + (vx + dx) * cells + 2 * vx, y0 + dy / 2)-(x0 + (vx + dx) * cells + 2 _ * vx - vect, y0 + dy / 2 - vect) pbox.line (x0 + (vx + dx) * cells + 2 * vx, y0 + dy / 2)-(x0 + (vx + dx) * cells + 2 _ * vx - vect, y0 + dy / 2 + vect) pbox.line (x0 + (vx + dx) * cells + 2 * vx - vect, y0 + dy / 2 - vect)-(x0 + (vx + dx) _ * cells + 2 * vx - vect, y0 + dy / 2 + vect) For J = 1 To cells xc = x0 + (vx + dx) * J yc = y0 X(I, J) = xc Y(I, J) = yc pbox.line (xc, yc)-(xc + vx, yc + vy), QBColor(15), BF pbox.line (xc, yc)-(xc + vx, yc + vy), QBColor(I Mod 6 + 9), B Next J Next I pbox.line (x0, yoff + dy + (vy + dy) + dy / 2)-(x0, yoff + dy + (vy + dy) * priorities + dy / 2) pbox.line (0, yoff + dy + (vy + dy) * (priorities + 1) / 2 + dy / 2)-(x0, yoff + dy + (vy + dy) * _ (priorities + 1) / 2 + dy / 2) pbox.line (x0 + (vx + dx) * cells + 2 * vx, yoff + dy + (vy + dy) + dy / 2)-(x0 + (vx + dx) _ * cells + 2 * vx, yoff + dy + (vy + dy) * priorities + dy / 2) tbox.left = vx + (vx + dx) * cells + 4 * vx tbox.top = yoff + 2 * dy + 3 * vy tbox.width = 9 * vx tbox.height = yoff + dy + (vy + dy) * priorities - tbox.top + vy αν είναι ενεργοποιημένο το σύστημα υποστήριξης ι/ο δίσκου τότε σχεδιάζεται το σύστημα του If hdf = True Then tbox.height = yoff + dy + (vy + dy) * priorities - tbox.top + 3 * vy 'σχεδιασμός των tracks σε προσαρμογή του μεγέθους των ουρών y0 = yoff + dy + (vy + dy) * (priorities + 1) x0 = 2 * vx y1 = y0 x1 = x0 + (vx + dx) * cells pbox.pset (vx, y0 + 5) pbox.print "HD" -23-

24 For J = 1 To tracks xc = x0 + (J - 1) * (x1 - x0) / tracks yc = y0 xt(j) = xc yt(j) = yc pbox.line (xc, yc)-(xc + (x1 - x0) / tracks, yc + vy), QBColor(15), BF pbox.line (xc, yc)-(xc + (x1 - x0) / tracks, yc + vy), QBColor(0), B Σχεδιάζουμε την κεφαλή αν φτάσουμε στην αρχική της θέση If J = strack Then pbox.line (xc + (x1 - x0) / (2 * tracks), yc + vy)-(xc + (x1 - x0) / (2 * tracks), yc + vy + dy) pbox.line (xc + (x1 - x0) / (2 * tracks) - vect, yc + vy + vect)-(xc + (x1 - x0) / (2 * tracks), yc + vy) pbox.line (xc + (x1 - x0) / (2 * tracks) + vect, yc + vy + vect)-(xc + (x1 - x0) / (2 * tracks), yc + vy) pbox.line (xc + (x1 - x0) / (2 * tracks) + vect, yc + vy + vect)-(xc + (x1 - x0) / (2 * tracks) - vect, yc + vy + vect) Next J tbox.height = yoff + dy + (vy + dy) * priorities - tbox.top + vy 3.3 Τεκμηρίωση της διαδικασίας εισαγωγής διεργασίας στο σύστημα Η διαδικασία αυτή δέχεται τρεις παραμέτρους, το id της διεργασίας, τη διάρκεια της διαδικασίας (χρόνος καταιγισμού), την προτεραιότητα, και αποθηκεύονται τα στοιχεία των διεργασιών στους αντίστοιχους πίνακες. Επίσης η διαδικασία αυτή είναι υπεύθυνη για την εισαγωγή της διεργασίας στη γραφική αναπαράσταση των ουρών. Η διαδικασία αυτή καλείται όταν το τρέχον tick είναι ίσο με τον χρόνο άφιξης της διεργασίας. Public Sub InsertActivity(id As Integer, priority As Integer, duration As Integer, pbox As PictureBox) Dim f As Boolean, j as integer f = False For J = cells To 1 Step -1 (σαρώνονται τα κελιά της συγκεκριμένης προτεραιότητας) If a(priority, J) = 0 Then (και αν δε βρεθεί διεργασία) f = True (καταχορούνται τα στοιχεία της διεργασίας ) a(priority, J) = id d(priority, J) = duration e(priority, J) = False (εισάγεται η διεργασία στο γραφικό) pbox.line (X(priority, J), Y(priority, J))-(X(priority, J) + vx, Y(priority, J) + vy), QBColor(priority Mod 6 + 9), BF pbox.pset (X(priority, J), Y(priority, J) + 5) pbox.print duration Next J If f = False Then (Σε περίπτωση που δεν υπάρχει χώρος εμφάνισε μήνυμα) MsgBox "Η συγκεκριμένη διεργασία δεν χωράει στο σύστημα και έτσι αγνοείται από το σύστημά,, Προσοχή Παρακάτω ακολουθεί η διαδικασία που καλείται όταν ο χρήστης πατήσει το κουμπί εισαγωγής διεργασίας στο σύστημα. -24-

25 Private Sub Command4_Click() Dim c As Integer, c1 As Integer, I As Integer Σε περίπτωση μη αποδεκτών τιμών έξοδος If Not (checkifok) Then If Val(Text4.Text) < ctime Then 'ο αριθμός είναι μεγαλύτερος απο τον αριθμό των προτεραιότητων MsgBox "Παρακαλώ πληκτρολογήστε χρόνο άφιξης μεγαλύτερο ή ίσο του "+CStr(ctime), vbcritical,"λάθος Text4.Text = "" qcount = qcount + 1 'αυξάνεται ο μετρητής διεργασιών Label3.Caption = "Σύνολο διεργασιών : " + CStr(qcount) pr(qcount) = Val(Text3.Text) 'αποθηκεύεται η προτεραιότητα της διεργασίας dur(qcount) = Val(Text2.Text) 'αποθηκεύεται η διάρκεια της διεργασίας ar(qcount) = Val(Text4.Text) 'αποθηκεύεται ο χρόνος άφιξης της διεργασίας If iof Then Αν το σύστημα υποστηρίζει Ι/Ο, αποθηκεύονται οι στιγμές παύσης για Ι/Ο στον πίνακα ios c = 0 c1 = 0 For I = 1 To Grid.Rows - 1 If Grid.TextMatrix(I, 0) <> "" And Val(Grid.TextMatrix(I, 0)) <= dur(qcount) Then c = c + 1 ios(qcount, c) = Val(Grid.TextMatrix(I, 0)) If Val(Grid.TextMatrix(I, 0)) > dur(qcount) Then αυξάνεται ο μετρητής που δείχνει πόσα ι/ο είναι μεγαλύτερα από την διάρκεια της διεργασίας ώστε νε εμφανιστεί στο μήνυμα ενημέρωσης c1 = c1 + 1 Next I If c1 > 0 Then MsgBox CStr(c1) + " διαδικασίες Ι/Ο θα αγνοηθούν απο το σύστημα αφού έχουν χρόνο " + _ "παύσης για Ι/Ο μεγαλύτερο από τη διάρκεια της διεργασίας (" + CStr(dur(qcount)) + ")", _ vbinformation, "Ενημέρωση" Text2.Text = "" Text3.Text = "" Text4.Text = "" Grid.Clear Grid.FormatString = "I/O " Text3.SetFocus fe = False 3.4 Τεκμηρίωση διαδικασίας εκτέλεσης διεργασιών Η διαδικασία αυτή είναι υπεύθυνη για την εκτέλεση των διεργασιών. Πρέπει να αναφερθεί ότι η διαδικασία αυτή εκτελεί είτε μόνο ένα tick μιας διεργασίας, είτε όλες τις διεργασίες μαζί. Αυτό εξαρτάται από το κουμπί που θα πατηθεί από το χρήστη. Το κουμπί «εκτέλεση» εκτελεί μόνο ένα tick και το κουμπί «εκτέλεση όλων» εκτελεί όλα τα ticks. Πριν την παρουσίαση της διαδικασίας εκτέλεσης, τεκμηριώνεται η διαδικασία που εκτελείται με το πάτημα του κουμπιού «εκτέλεση όλων» -25-

26 Public Sub ExecuteAll1(pbox As PictureBox, tbox As TextBox) Dim x0 As Integer Dim y0 As Integer x0 = vx y0 = yoff + dy + (vy + dy) MainForm.Enabled = False If hdf = False Then δεν χρησιμοποιείται δίσκος If rand = False Then (τυχαίο σύστημα) While fe = False (όσο υπάρχουν διαργασίες προς εκτέλεση δεν έχουν αφιχθεί ακόμη) ExecuteActivities pbox, tbox (εκτέλεσε ένα tick καλώντας την διαδικασία της εκτέλεσης) Wend (εμφάνιση μηνύματος τερματισμού) MsgBox όλες οι διεργασίες έχουν εκτελεστεί", vbinformation, "Ενημέρωση" (Βασικό σύστημα) While CheckIfActivityExists (όσο υπάρχει διεργασία) (εκτέλεσε ένα tick καλώντας την διαδικασία της εκτέλεσης) ExecuteActivities pbox, tbox Wend MsgBox "Εξαντλήθηκε ο διαθέσιμος χρόνος και εκτελέστηκαν όλες οι διεργασίες που έμειναν ", vbinformation, "ενημέρωση (εμφάνιση μηνύματος τερματισμού) (σχεδιάζεται το τετράγωνο της CPU με άσπρο χρώμα pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * _ vx + dx, y0 + vy), QBColor(15), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U." pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * _ vx + dx, y0 + vy),, B 'στην περίπτωση χρήσης δίσκου έχουμε τυχαίο σύστημα 'και όσο υπάρχουν διεργασίες στο σύστημα και διαθέσιμός χρόνος While CheckIfActivityExists ExecuteActivitiesHD pbox, tbox Wend MsgBox " Εξαντλήθηκε ο διαθέσιμος χρόνος και εκτελέστηκαν όλες οι διεργασίες που έμειναν.", vbinformation, "Ενημέρωση" pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * _ vx + dx, y0 + vy), QBColor(15), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U." pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * _ vx + dx, y0 + vy),, B MainForm.Enabled = True Public Sub ExecuteActivities(pbox As PictureBox, tbox As TextBox) Διαδικασία εκτέλεσης διεργασιών Dim f As Boolean σημαία ελέγχου ύπαρξης διεργασίας Dim ff As Boolean σημαία ελέγχου άφιξης όλων των διεργασιών Βοηθητικές μεταβλητές Dim I As Integer Dim J As Integer Dim k As Integer Dim m As Integer Dim x0 As Integer Dim y0 As Integer Μεταβλητές χρόνου (timer) Dim Start As Single Dim PauseTime As Single f = False x0 = vx y0 = yoff + dy + (vy + dy) -26-

27 Σαρώνεται το σύστημα κατά σειρά προτεραιότητας από την πρώτη (ισχυρότερη προτεραιότητα) ως την τελευταία For I = 1 To priorities J = cells επιλέγεται το δεξιότερο κελί για έλεγχο While a(i, J) > 0 για κάθε κέλι που έχει διεργασία (με την ίδια προτεραιότητα) f = True σημειώνει ότι βρέθηκε διεργασία για εκτέλεση e(i, J) = True και θέτει την διεργασία προς εκτέλεση If rand = False Then (βασικό συστημα) For k = 1 To qcount If ar(k) = ctime Then InsertActivity k, pr(k), dur(k), pbox Next k (συστημα αυτόματης παραγωγής διεργασιών τυχαίο σύστημα) If fr = False Then CreateRandomActivity pbox Αυξηση του χρόνου και παύση PauseTime = delay 'second Start = Timer Do While Timer < Start + PauseTime DoEvents Loop ctime = ctime + 1 Statistics καλείται η διαδικασία υπολογισμού στατιστικών (ενημέρωση της δημόσιας μεταβλητής s) Έλεγχος για Ι/Οs If iof = True Then (αν είναι ενεργοποιημένη η διαδικασία ι/ο τότε) If pio(a(i, J)) = 0 Then (η διεργασία δεν είναι σε παύση για ιο) For k = 1 To IOMax (ελέγχεται η διερασία που εκτελείται αν έχει κάποια παύση για ιο) If ios(a(i, J), k) = dur(a(i, J)) - d(i, J) + 1 Then (παύση για ιο) Ο δείκτης της παύσης παίρνει αρχική τιμή (idur) pio(a(i, J)) = IODur Next k d(i, J) = d(i, J) - 1 μειώνεται η διάρκεια της διεργασίας d(i, J) = d(i, J) - 1 μειώνεται η διάρκεια της διεργασίας tbox.text = s ενημερώνεται το text box με το νέο s (στατιστικά) στο τυχαίο σύστημα αν τελειώσει το χρονικό διάστημα παραγωγής διεργασιών σταμάτα την παραγωγή νέων διεργασιών If rand = True And ctime >= MaxTime Then fr = True Σχεδιάζεται το τετράγωνο της cpu με το χρώμα της διεργασίας που εκτελείται pbox.line (x0 + (vx + dx) * cells+4*vx, y0)-(x0+(vx + dx)*cells+7 * vx + dx, y0 + vy), QBColor(I Mod 6 + 9), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U." pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx + dx, y0 + vy),, B αν η διεργασία τελείώσει (μηδενιστεί) If d(i, J) <= 0 Then Πρέπει να φύγει από την ουρά και να μετακινηθούν τυχόν διεργασίες κατά μιαθέση δεξιά Σάρωση προς τα δεξιά κελίά Do J = J 1 If d(i, J) > 0 Then Γίνεται μετακίνηση κατά μία θέση και ενημερόνονται οι τιμές στους πίνακες d,a d(i, J + 1) = d(i, J) a(i, J + 1) = a(i, J) If iof = True Then Εάν είναι ενεργοποιημένο το ιο τότε για κάθε μια διεργασία που είναι σε ιο τη στιγμή ctime γίνεται μείωση του pio και σχεδιάζεται For k = 1 To priorities For m = 1 To cells If pio(a(k, m)) > 0 Then -27-

28 pio(a(k, m)) = pio(a(k, m)) - 1 pbox.forecolor = QBColor(15) pbox.line (X(k, m), Y(k, m))-(x(k, m) + vx, Y(k, m) + vy), QBColor(4), BF pbox.pset (X(k, m), Y(k, m) + 5) pbox.print pio(a(k, m)) Next m Next k If pio(a(i, J + 1)) = 0 Then Σχεδιάζεται η κάθε διεργασία κατά τη μετακίνηση στο σύστημα pbox.line (X(I, J + 1), Y(I, J + 1))-(X(I, J + 1) + vx, Y(I, J + 1) + vy), QBColor(I Mod 6 + 9), BF pbox.pset (X(I, J + 1), Y(I, J + 1) + 5) pbox.print d(i, J + 1) Σχεδιάζεται η κάθε διεργασία κατά τη μετακίνηση στο σύστημα pbox.line (X(I, J + 1), Y(I, J + 1))-(X(I, J + 1) + vx, Y(I, J + 1) + vy), _ QBColor(I Mod 6 + 9), BF pbox.pset (X(I, J + 1), Y(I, J + 1) + 5) pbox.print d(i, J + 1) Loop While d(i, J) > 0 Μετά τη μετακίνηση το τελευταίο κελί πρέπει να διαγραφεί J = J + 1 Οπότε μηδενίζονται οι τιμές στους πίνακες a,d a(i, J) = 0 d(i, J) = 0 σχεδιάζεται άσπρο (χωρίς διεργασία) το κελί pbox.line (X(I, J), Y(I, J))-(X(I, J) + vx, Y(I, J) + vy), QBColor(15), BF pbox.line (X(I, J), Y(I, J))-(X(I, J) + vx, Y(I, J) + vy), QBColor(I Mod 6 + 9), B Αν δεν μηδενιστει η διάρκεια της διεργασίας σχεδιάζεται το κελί της διεργασίας If iof = True Then Εάν στο σύστημα είναι ενεργοποιημένα τα ι/ο τότε σε κάθε διεργασία που είναι σε ιο τη στιγμή ctime γίνεται μείωση του pio κατά ένα και σχεδιάζεται For k = 1 To priorities For m = 1 To cells If pio(a(k, m)) > 0 Then pio(a(k, m)) = pio(a(k, m)) - 1 pbox.forecolor = QBColor(15) pbox.line (X(k, m), Y(k, m))-(x(k, m) + vx, Y(k, m) + vy), QBColor(4), BF pbox.pset (X(k, m), Y(k, m) + 5) pbox.print pio(a(k, m)) Next m Next k If pio(a(i, J)) = 0 Then Τέλος ιο pbox.line (X(I, J), Y(I, J))-(X(I, J) + vx, Y(I, J) + vy), QBColor(I Mod 6 + 9), BF pbox.pset (X(I, J), Y(I, J) + 5) pbox.print d(i, J) pbox.line (X(I, J), Y(I, J))-(X(I, J) + vx, Y(I, J) + vy), QBColor(I Mod 6 + 9), BF pbox.pset (X(I, J), Y(I, J) + 5) pbox.print d(i, J) Μειώνει το δείκτη κελιών κατά ένα ώστε να πάει στην επόμενη διεργασία εφόσον υπάρχει J = J - 1 Wend If f = True Then -28-

29 Next I Σχεδιασμός του πλαίσιου της cpu με άσπρο χρώμα pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx + dx, y0 + vy), QBColor(15), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U." pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx + dx, y0 + vy),, B If rand = False Then Βασικό σύστημα μη αυτόματη παραγωγή διεργασιών If f = False Then Αν δε βρεθούν διεργασίες στο σύστημα τότε γίνεται έλεγχος αν όλες έχουν φτάσει ff = True For k = 1 To qcount If ar(k) >= ctime Then ff = False Exit For Next k If ff = False Then Αν υπάρχει έστω και μια που δεν έχει φτάσει For k = 1 To qcount If ar(k) = ctime Then InsertActivity k, pr(k), dur(k), pbox Next k Αυξηση των ticκs κατά ένα και παύση PauseTime = delay 'second Start = Timer Do While Timer < Start + PauseTime DoEvents Loop ctime = ctime + 1 Statistics καλείται η διαδικασία υπολογισμού στατιστικών (ενημέρωσης του S) tbox.text = s fe = True Τυχαίο σύστημα - αυτόματη παραγωγή διεργασιών If fr = False Then CreateRandomActivity pbox PauseTime = delay 'second (αυξηση των ticks και παύση) Start = Timer Do While Timer < Start + PauseTime DoEvents Loop ctime = ctime + 1 If qcount > 0 Then Statistics καλείται η διαδικασία υπολογισμού στατιστικών (ενημέρωσης του S) s = "Συνολικός χρόνος που πέρασε" + Str(ctime - 1) + vbcrlf tbox.text = s If ctime >= MaxTime Then αν τελειώσει ο διαθέσιμος χρόνος σταμάτα την εισαγωγή των διεργασιών fr = True 3.5 Τεκμηρίωση διαδικασίας αυτόματης παραγωγής διεργασιών Η διαδικασία αυτή είναι υπεύθυνη για την αυτόματη παραγωγή τυχαίων διεργασιών. Παρακάτω παρουσιάζεται τεκμηριωμένος με σχόλια ο κώδικας αυτής της διαδικασίας. Στην συνέχεια ακολουθεί η τεκμηρίωση της διαδικασίας εισαγωγής διεργασίας ι/ο δίσκου. -29-

30 Public Sub CreateRandomActivity(pbox As PictureBox) Dim r As Single, r2 As Single Dim k As Integer, c As Integer, t As Integer, l As Integer Dim f As Boolean Randomize r = Rnd ppa είναι η πιθανότητα παραγωγής διεργασίας σε ένα tick που έχει επιλέξει ο χρήστης If r <= ppa Then Δημιουργία διεργασίας qcount = qcount + 1 αύξηση του counter των διεργασιών MainForm.Label3.Caption = "Σύνολο διεργασιών : " + CStr(qcount) If qcount >= qmax Then Αν υπερβούμε το μέγιστο αριθμό διεργασιών τότε δεν δημιουργούμε διεργασία pr(qcount)=int(rnd*priorities)+1 τυχαία εκλογή της προτεραιότητας (1 έως priorities) dur(qcount) = Int(Rnd * rdur) + 1 τυχαία εκλογή της διάρκειας της διεργασίας ar(qcount) = ctime τυχαία εκλογή του χρόνου άφιξης αν το σύστημα υποστηρίζει ι/ο τότε γίνεται αυτόματα η παραγωγή των Ι/Ο If iof = True Then r2 = Rnd If r2 <= ppio Then Αν ικανοποιείται η πιθανότητα για τα Ι/Οs c = Int(Rnd * IOMax) + 1 For k = 1 To c εκλέγονται σε τυχαία σημεία της διάρκειας της διεργασίας T = Int(Rnd * dur(qcount)) + 1 f = False For l = 1 To c If ios(qcount, l) = t Then f = True Exit For Next l Αν η τιμή (ι/ο) αυτή δεν υπάρχει ήδη τότε καταχωρείται If f = False Then ios(qcount, k) = t Next k InsertActivity qcount, pr(qcount), dur(qcount), pbox 3.6 Τεκμηρίωση διαδικασίας υπολογισμού αποτελεσμάτων Οι ρουτίνα αυτή ενημερώνει την δημόσια μεταβλητή s με τα αποτελέσματα της εφαρμογής. Τα αποτελέσματα αυτά εμφανίζονται στο text box που βρίσκονται στο δεξί μέρος της οθόνης. Η ρουτίνα αυτή καλείτε μετά την εκτέλεση κάθε tick, έτσι ώστε ο χρήστης να βλέπει τα αποτελέσματα κατά την διάρκεια εκτέλεσης των διεργασιών. Public Sub Statistics() (Οι ρουτίνα αυτή δημιουργεί το string που εμφανίζεται στο text box των αποτελεσμάτων στο δέξι μέρος της οθόνης) (Βοηθητικές μεταβλητές) Dim I As Integer Dim J As Integer Dim k As Integer Dim w As Integer Dim sa As Long Dim sr As Long (Μέσοι χρόνοι) Dim ma As Single Dim mr As Single (Σάρωση του συστήματος κατά σειρά προτεραιότητας) s = "" For I = 1 To priorities For J = 1 To cells If a(i, J) > 0 Then (αν βρεθεί διεργασία σε οποιοδήποτε κελί) -30-

31 (αυξάνεται ο χρόνος επιστροφής και αν δεν έχει ξεκινήσει η εκτέλεση της αυξάνεται ο χρόνος αναμονής της) tr(a(i, J)) = tr(a(i, J)) + 1 If e(i, J) = False Then ta(a(i, J)) = ta(a(i, J)) + 1 Next J Next I (υπολογίζονται οι μέσοι χρόνοι για όλες τις διεργασίες) sa = 0 sr = 0 s = s + "Συνολικός χρόνος που πέρασε" + Str(ctime - 1) + vbcrlf For k = 1 To qcount s = s + "[" + Mid(Str(k), 2, Len(Str(k)) - 1) + "] " + "Προτεραιότητα" + Str(pr(k)) + _ vbcrlf + " Χρόνος καταιγισμού :" + Str(dur(k)) + vbcrlf s = s + " Χρόνος Άφιξης=" + Str(ar(k)) + vbcrlf (αν το σύστημα υποστηρίζει Ι/Ο τότε αυτά εμφανίζονται) If iof = True Then If ios(k, 1) > 0 Then s = s + " χρόνοι Ι/Ο=" + Str(ios(k, 1)) For w = 2 To IOMax If ios(k, w) > 0 Then s = s + "," + Str(ios(k, w)) Next w s = s + vbcrlf (αν το σύστημα έχει ιο δίσκου τότε οι αιτήσεις των tracks εμφανίζονται) If hdf = True Then If hdpios(k, 1) > 0 Then s = s + " Αιτήσεις tracks HD=" + Str(hdpios(k, 1)) For w = 2 To hdiomax If hdpios(k, w) > 0 Then s = s + "," + Str(hdpios(k, w)) Next w s = s + vbcrlf (προστίθενται οι χρόνοι αναμονής και επιστροφής στο αποτέλεσμα) s = s + " Χρόνος αναμονής=" + Str(ta(k) - 1) + vbcrlf + " χρόνος επιστροφής=" + Str(tr(k) - 1) + vbcrlf sa = sa + ta(k) - 1 sr = sr + tr(k) - 1 Next k (οι μέσοι χρόνοι είναι το πυλίκο των αθροισμάτων δια το πλήθος των διεργασιών) ma = Round(sa / qcount, 2) mr = Round(sr / qcount, 2) (προστίθενται οι μέσοι χρόνοι στο αποτέλεσμα) s = s + "Μέσος όρος χρόνου αναμονής : " + Str(ma) + vbcrlf s = s + "Μέσος όρος χρόνου επιστροφής : " + Str(mr) + vbcrlf 3.7 Τεκμηρίωση διαδικασιών που σχετίζονται με Ι/Ο δίσκου Public Sub InsertActivityHD(id As Integer, pbox As PictureBox) Διαδικασία εισαγωγής διεργασίας με χρήση δίσκου Dim f As Boolean σημαία ελέγχου εάν υπάρχει σε ένα κελί ήδη άλλη διεργασία Dim J As Integer δεικτης κελιών Dim k As Integer 'δείκτης tracks Dim t As Integer 'αριθμός track Dim priority As Integer 'προτεραιότητα της διεργασίας f = False priority = pr(id) priority = priority + priorities + 1 αντιστοιχούμε την αρνητικής προτεραιότητα -7,...,-1 σε θετική 1,...,7 'ώστε να σχεδιαστεί το σύστημα γραφικά For J = cells To 1 Step -1 σαρώνονται τα κελιά της συγκεκριμένης προτεραιότητας If a(priority, J) = 0 Then και αν δεν βρεθεί διεργασία σε ένα από αυτά f = True τότε τοποθετείται εκεί a(priority, J) = id 'αποθυκεύεται ο αριθμός σειράς της -31-

32 d(priority, J) = TotalTracksLeft(id) στο πίνακα δ αποθυκεύονται ως διάρκεια το πλήθος των μη με εκπληρωμένων tracks e(priority, J) = True και μπαίνει σε κατάσταση αναμονής 'σχεδιάζεται το αντιστοιχο κελί με το κατάλληλο χρώμα pbox.forecolor = QBColor(15) pbox.line (x(priority, J), y(priority, J))-(x(priority, J) + vx, y(priority, J) + vy), _ QBColor(4), BF pbox.pset (x(priority, J), y(priority, J) + 5) pbox.print d(priority, J) 'σχεδιάζονται τα tracks που εκκρεμούν στο δίσκο για επεξεργασία For k = 1 To hdiomax t = hdios(id, k) 'αν υπάρχει αίτηση σχεδιάζεται If t > 0 Then pbox.line (xt(t), yt(t))-(xt(t) + ((vx + dx) * cells) / tracks, yt(t) + vy), QBColor(4), BF pbox.line (xt(t), yt(t))-(xt(t) + ((vx + dx) * cells) / tracks, yt(t) + vy), QBColor(0), B Next k Next J 'σε περίπτωση που δεν υπάρχει άδειο κελι εμφανίζεατι μήνυμα If f = False Then MsgBox "η συγκεκριμένη διεργασία δεν χωράει στην ουρά της προτεραιότητας της και έτσι αγνοείται από το σύστημα",, "Προσοχή " Public Sub CreateRandomActivityHD(pbox As PictureBox) Η CreateRandomActivityHD είναι παραλαγή της CreateRandomActivity όπου ισχύει στο νέο σύστημα και δημιουργεί διεργασίες ΙΟ δίσκου ή απλές με όλες τις απαραίτητες παραμέτρους της και καταχωρείται στο σύστημα. Να σημειωθεί ότι οι διεργασίες τοποθετούνται στο σύστημα ανάλογα με το είδος τους καλώντας διαφορετική διαδικασία InsertActivityHD και InsertActivity αντίστοιχα κατά περίπτωση. Dim r As Single Dim r2 As Single Dim k As Integer, c As Integer, t As Integer, l As Integer Dim f As Boolean Randomize r = Rnd If r <= ppa Then Διαδικασία δημιουργίας απλής ή ιο δίσκου διεργασίας qcount = qcount + 1 αυξάνεται ο μετρητής διεργασιών MainForm.Label3.Caption = "Óýíïëï äéåñãáóéþí : " + CStr(qcount) If qcount >= qmax Then αν υπερβούμε το μέγιστο πλήθος των διεργασιών σταματάμε την παραγωγή διεργασιών 'εκλέγεται με πιθανότητα hdppio διαργασία με ιο ή απλή χωρίς ιο r2 = Rnd If r2 <= hdppio Then αν εκλέγεται ιο δίσκου pr(qcount) = -(Int(Rnd * priorities) + 1) εκλέγεται αυτόματα η προτεραιότητα dur(qcount) = 0 'η διάρκεια της διεργασίας δεν ορίζεται εφόσον είναι ιο ar(qcount) = ctime 'αποθηκεύεται ο χρόνος άφιξης c = Int(Rnd * hdiomax) + 1 ' εκλέγονται c πλήθους αιτήσεις tracks ΙΟ For k = 1 To c t = Int(Rnd * tracks) + 1 'εκλέγεται τυχαία ένα track του δίσκου f = False For l = 1 To c If hdios(qcount, l) = t Then f = True Exit For Next l If f = False Then 'εάν η τιμή αυτή δεν υπάρχει τότε καταχωρείται hdios(qcount, k) = t hdpios(qcount, k) = t Next k -32-

33 InsertActivityHD qcount, pbox Εάν εκλεγεί χωρίς ΙΟ pr(qcount) = Int(Rnd * priorities) + 1 'εκλέγεται τυχαία η προτεραιότητα dur(qcount) = Int(Rnd * rdur) + 1 εκλέγεται τυχαία η διάρκεια της διεργασίας ar(qcount) = ctime 'αποθυκεύεται ο χρόνος άφιξης InsertActivity qcount, pr(qcount), dur(qcount), pbox Public Sub HDmove(pbox As PictureBox) Η Hdmove είναι νέα διαδικασία που μετακινεί στη νέα θέση την κεφαλή του δίσκου στο γραφικό σύστημα και κάνει τις απαραίτητες μεταβολές και εξυπηρετήσεις που απαιτούνται Dim xc As Integer Dim yc As Integer Αν είναι στιγμή μετακίνησης κεφαλής και ανάγνωσης δεδομένων τότε If ctime Mod tickperhd = 0 Then εξυπηρετείται το track στην θέση κεφαλής του δίσκου και γίνεται άσπρο το πλαίσιο xc = xt(strack) yc = yt(strack) pbox.line (xc, yc)-(xc + ((vx + dx) * cells) / tracks, yc + vy), QBColor(15), BF pbox.line (xc, yc)-(xc + ((vx + dx) * cells) / tracks, yc + vy), QBColor(0), B Διαγράφεται η παλια θέση της κεφαλής pbox.line (xc, yc + vy + 1)-(xc + ((vx + dx) * cells) / tracks, yc + vy + dy), &HE0E0E0, BF σχεδιάζεται η νέα θέση της κεφαλής strack = strack + mtrack If strack < 1 Then If algflag Then strack = tracks cscan mtrack = -mtrack scan strack = 1 + mtrack If strack > tracks Then If algflag Then strack = 1 cscan mtrack = -mtrack scan strack = tracks + mtrack xc = xt(strack) yc = yt(strack) pbox.line (xc + ((vx + dx) * cells) / (2 * tracks), yc + vy)-(xc + ((vx + dx) * cells) / (2 * tracks), yc + vy + dy), QBColor(0) pbox.line (xc + ((vx + dx) * cells) / (2 * tracks) - vect, yc + vy + vect)-(xc + ((vx + dx) * cells) / (2 * tracks), yc + vy), QBColor(0) pbox.line (xc + ((vx + dx) * cells) / (2 * tracks) + vect, yc + vy + vect)-(xc + ((vx + dx) * cells) / (2 * tracks), yc + vy), QBColor(0) pbox.line (xc + ((vx + dx) * cells) / (2 * tracks) + vect, yc + vy + vect)-(xc + ((vx + dx) * cells) / (2 * tracks) - vect, yc + vy + vect), QBColor(0) Public Function TotalTracksLeft(id As Integer) As Integer Η συνάρτηση TotalTracksLeft επιστρέφει για μία διεργασία ΙΟ δίσκου το πλήθος των αιτήσεων tracks που ακόμα δεν έχουν εξυπηρετηθεί (την φαινομενική της διάρκεια δηλαδή). Dim I As Integer Dim c As Integer c = 0 For I = 1 To hdiomax If hdios(id, I) > 0 Then c = c + 1 Next I TotalTracksLeft = c End Function -33-

34 Public Sub ExecuteActivitiesHD(pbox As PictureBox, tbox As TextBox) Η ExecuteActivitiesHD είναι μία νέα διαδικασία που αφορά την εκτέλεση του νέου συστήματος με υποστήριξη ΙΟ δίσκου και η οποία βασίστηκε μεν στην ExecuteActivities όμως η δομή της έχει σχεδόν ριζικά αλλάξει με τα νέα δεδομένα. Φυσικά είναι η καρδιά της λειτουργίας του νέου συστήματος Dim f As Boolean σημαία ύπαρξης διεργασίας προς εκτέλεση Dim ff As Boolean σημαία άφιξης ολως των διεργασιών στο σύστημα Dim I As Integer Dim J As Integer Dim k As Integer Dim m As Integer Dim x0 As Integer Dim y0 As Integer Dim xio As Integer Dim yio As Integer Dim Start As Single Dim PauseTime As Single f = False x0 = vx y0 = yoff + dy + (vy + dy) σαρώνεται το σύστημα κατά σειρά προτεραιότητας For I = 1 To priorities από την πρώτη ως την τελευταία J = cells επιλέγεται το δεξιότερο κελίi While a(i, J) > 0 όσο υπάρχει απλή διεργασία με την ίδια προτεραιότητα If pr(a(i, J)) > 0 Then 'εάν πρόκειται για απλή διεργασία f = True σημειώνεται ότι βρέθηκε διεργασία e(i, J) = True θέτουμε την διεργασία προς εκτέλεση έλεγχος διεργασιών για εισαγωγή στο τυχαίο σύστημα δίσκου If fr = False Then CreateRandomActivityHD pbox Αυξηση των ticks και πάυση PauseTime = delay 'second Start = Timer Do While Timer < Start + PauseTime DoEvents Loop ctime = ctime + 1 ελέγχεται το σύστημα για εξυπηρέτηση όλων των προτεραιότητων CheckIOsHD pbox HDmove pbox Statistics Αν έχουμε απλή διεργασία If pr(a(i, J)) > 0 Then d(i, J) = d(i, J) - 1 μειώνεται η διάρκεια της διεργασίας pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx+dx,y0+vy),qbcolor(i Mod 6+ 9), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U." pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx + dx, y0 + vy),, B αν τελειώσει η διεργασία If d(i, J) <= 0 Then πρέπει να φύγει από την ουρά και να μετακινηθούν οι υπόλοιπες διεργασίες Do J = J - 1 'σάρωση προς τα αριστερά If a(i, J) > 0 Then d(i, J + 1) = d(i, J) Μετακίνηση και ενημέρωση των πινάκων a(i, J + 1) = a(i, J) If d(i, J) > 0 Then 'αν είναι απλή σχεδιάζεται pbox.line (x(i, J + 1), y(i, J + 1))-(x(I, J + 1) + vx, y(i, J + 1) + vy), QBColor(I Mod 6 + 9), BF pbox.pset (x(i, J + 1), y(i, J + 1) + 5) pbox.print d(i, J + 1) αν είναι διεργασία ιο δίσκου pbox.forecolor = QBColor(15) pbox.line (x(i, J + 1), y(i, J + 1))-(x(I, J + 1) + vx, y(i, J + 1) + vy), QBColor(4), BF pbox.pset (x(i, J + 1), y(i, J + 1) + 5) pbox.print TotalTracksLeft(a(I, J + 1)) -34-

35 Loop While a(i, J) > 0 Μετα την μετακίνηση πρέπει να διαγραφεί το τελευταίο κελί J = J + 1 a(i, J) = 0 d(i, J) = 0 pbox.line (x(i, J), y(i, J))-(x(I, J) + vx, y(i, J) + vy), QBColor(15), BF pbox.line (x(i, J), y(i, J))-(x(I, J) + vx, y(i, J) + vy), QBColor(I Mod 6 + 9), B αν δεν έγινε μηδέν η διάρκεια της διεργασίας τοτε ξανα σχεδιάζεται pbox.line (x(i, J), y(i, J))-(x(I, J) + vx, y(i, J) + vy), QBColor(I Mod 6 + 9), BF pbox.pset (x(i, J), y(i, J) + 5) pbox.print d(i, J) tbox.text = s ενημέρωση του text box των στατιστικών If ctime >= MaxTime Then αν περάσει ο διαθέσιμος χρόνος, σταματάει η εισαγωγή νέων διεργασιών fr = True J = J 1 επόμενη διεργασία της ίδιας προτεραιότητας εφόσον υπάρχει εάν είναι διεργασία ΙΟ τότε πρέπει να συνεχίσει στηνεπόμενη οπότε μειώνει το δείκτη κελιών κατά ένα για να προχωρήσει στην επόμενη διεργασία με την ίδια προτεραιότητα εφόσον υπάρχει J = J - 1 Wend If f = True Then Next I pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 * vx + dx, y0 + vy), QBColor(15), BF pbox.pset (x0 + (vx + dx) * cells + 4 * vx + 25, y0 + 7) pbox.print "C.P.U." pbox.line (x0 + (vx + dx) * cells + 4 * vx, y0)-(x0 + (vx + dx) * cells + 7 *vx + dx, y0 + vy),, B If fr = False Then CreateRandomActivityHD pbox PauseTime = delay αυξηση των ticks και παύση Start = Timer Do While Timer < Start + PauseTime DoEvents Loop ctime = ctime + 1 ελέγχεται το σύστημα για την εξυπηρέτηση των αιτήσεων όλων των διεργασιών CheckIOsHD pbox HDmove pbox If qcount > 0 Then Statistics s = "Συνολικός χρόνος που πέρασε:" + Str(ctime - 1) + vbcrlf tbox.text = s If ctime >= MaxTime Then Σταμάτα την παραγωγή διεργασιών αν πέρασε ο διαθέσιμος χρόνος fr = True End sub -35-

36 Public Sub CheckIOsHD(pbox As PictureBox) Η CheckIOsHD είναι μία νέα διαδικασία που ελέγχει σε όλες τις διεργασίες δίσκου εάν την τρέχουσα χρονική στιγμή η κεφαλή του δίσκου είναι σε θέση να τις εξυπηρετήσει και αν ναι τότε εκτελεί τις ακόλουθες μεταβολές στο σύστημα (υπολογιστικές και γραφικές). Dim m As Integer Dim k As Integer Dim xio As Integer Dim yio As Integer Έλεγχος εξυπηρετ ησεων ιο από την κεφαλή του δίσκου. Ελέγχουμε αν κάποια αίτηση track εξυπηρετείται τη στιγμή αυτή για όλες της διεργασίες For m = 1 To qcount Εντοπίζεται αν η διεργασία είναι στο σύστημα xio = XfromID(m) yio = YfromID(m) επίσης ελέγχεται αν είναι διεργασία δίσκου και τότε ελέγχεται If pr(m) < 0 And xio > 0 And yio > 0 Then For k = 1 To hdiomax ιf hdios(m, k) = strack Then Μηδαίνηζεατι η αίτηση του track, που εκείνη τη στιγμή βρίσκεται η κεφαλή, στο πίνακα των ιο hdios(m, k) = 0 Next k Κατόπιν ελέγχεται αν υπάρχουν εκκρεμείς αιτήσεις της If TotalTracksLeft(m) > 0 Then pbox.forecolor = QBColor(15) pbox.line (x(xio, yio), y(xio, yio))-(x(xio, yio) + vx, y(xio, yio) + vy), QBColor(4), BF pbox.pset (x(xio, yio), y(xio, yio) + 5) pbox.print TotalTracksLeft(m) Αν δεν υπάρχουν άλλες αιτήσεις τότε διαγράφεται από το σύστημα Και επανεσχιδιάζονται οιουρές κατά μία θέη δεξιότερα Do yio = yio - 1 σάρωση προς τα αριστερά If a(xio, yio) > 0 Then Αν ενπτοπιστούν διεργασίες οποιαδήποτε μορφής, γίνεται μετακίνηση κατά μια θέση και Ενημερώνονται οι πίνακες d,a d(xio, yio + 1) = d(xio, yio) a(xio, yio + 1) = a(xio, yio) If d(xio, yio) > 0 Then pbox.line (x(xio, yio + 1), y(xio, yio + 1))-(x(xio, yio + 1) + vx, y(xio, yio + 1) + vy), QBColor(xio Mod 6 + 9), BF pbox.pset (x(xio, yio + 1), y(xio, yio + 1) + 5) pbox.print d(xio, yio + 1) 'αν είναι διεργασία δίσκου pbox.forecolor = QBColor(15) pbox.line (x(xio, yio + 1), y(xio, yio + 1))-(x(xio, yio + 1) + vx, y(xio, yio + 1) + vy), QBColor(4), BF pbox.pset (x(xio, yio + 1), y(xio, yio + 1) + 5) pbox.print TotalTracksLeft(a(xio, yio + 1)) Loop While a(xio, yio) > 0 Μετα την μετακίνηση το τελευταίο κελι πρέπει να διαγραφεί yio = yio + 1 Οπότε μηδενίζονται οι τιμές στους πίνακες a,d a(xio, yio) = 0 d(xio, yio) = 0 pbox.line (x(xio, yio), y(xio, yio))-(x(xio, yio) + vx, y(xio, yio) + vy), QBColor(15), BF pbox.line (x(xio, yio), y(xio, yio))-(x(xio, yio) + vx, y(xio, yio) + vy), QBColor(xio Mod 6 + 9), B Next m -36-

37 3.8 Παρουσίαση των οθόνων της εφαρμογής Παρακάτω εμφανίζονται οι οθόνες της εφαρμογής και όλα τα ονόματα των δομικών στοιχείων. Αυτές οι παράγραφοι θεωρήθηκε χρήσιμο να συμπεριληφθούν στην τεκμηρίωση της εφαρμογής ώστε ο κώδικας της εφαρμογής που ακολουθεί να είναι ευκολότερα κατανοητός. 3.9 Βασική οθόνη εφαρμογής Mainform Κουμπί εισαγωγής : Command4, Κουμπί εκτέλεσης : Command 2, Κουμπί εκτέλεσης όλων : Command3, Κουμπί αποτελεσμάτων : Command1 Κουμπί Reset Q Command 5, Πεδίο προτεραιότητας : Text3, Πεδίο χρόνου καταιγισμού : Text2, Πεδίο αποτελεσμάτων : Text1 Component Εμφάνισης γραφικών: Picture1, στήλη εισαγωγής Ι/Ο : grid, ετικέτα προσδιορισμού συστήματος (τυχαίο ή μη σύστημα) : label2, ετικέτα εμφάνισης αριθμού διεργασιών : label Οθόνη αποτελεσμάτων -37-

38 ResultsForm Πινακας αποτελεσμάτων : Grid, Πεδίο συνολικού χρόνου : Label4 Πεδίο μέσου χρόνου αναμονής : Label5, Πεδίο μέσου χρόνου επιστροφής : Label5, Κουμπί επιστροφής : Command1, Κουμπί αποθήκευσης : Command Οθόνη επιλογών OptionForm Πεδίο αριθμού ουρών: Text(1), Πεδίο μήκους ουρών: Text(2), Πεδίο χρόνου διαδοχής των Ticks : Combo1, Πεδίο αρχής γραφικής αναπαράστασης: Text(7), Πεδίο πλάτος κελιού : Text(3), Πεδίο μήκους κελιού : Text(4), Πεδίο οριζόντιας απόστασης : Text(5), Πεδίο κάθετης απόστασης : Text(6), Κουμπί επιστροφής : Command1, check box αυτόματης παραγωγής διεργασιών : check1, πεδίο πιθανότητας παραγωγής διεργασία; : combo2, πεδίο όριο διάρκειας παραγόμενης διεργασίας : Text1, Πεδίο χρονικού διαστήματος παραγωγής διεργασιών : Text2, Check box ενεργοποίησης Ι/Ο : text3, Πεδίο μέγιστου πλήθους Ι/Ο : Text4, Πεδίο πιθανότητας παραγωγής διεργασίας : Combo3, radio buttons επιλογής αλγορίθμου δρομολόγησης δίσκου: option1(0), option1(1), Πεδίο πλήθους tracks : text5, πεδίο αρχικής θέσης κεφαλής : text6, πεδίο κατεύθυνσης κεφαλής : combo4, πεδίο ticks cpu που απαιτούνται για την κίνηση της κεφαλής : text7, μέγιστο 3.12 Οθόνη πλήθος αιτήσεων «Σχετικά» tracks : text8, πεδίο πιθανότητας δημιουργίας διεργασίας i/o δίσκου: combo5 AboutForm -38-

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling) Μάθημα 6 ο Χρονοδρομολόγηση (Scheduling) Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και τη λειτουργία της χρονοδρομολόγησης σε ένα Λειτουργικό Σύστημα. Θα μάθουμε: Να ορίζουμε τι είναι

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

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

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

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

ροµολόγηση Επεξεργαστή

ροµολόγηση Επεξεργαστή ροµολόγηση Επεξεργαστή Κεφάλαιο 9 Στόχοι της ροµολόγησης Χρόνος Απόκρισης Throughput Αποδοτική χρήση επεξεργαστή Τύποι ροµολόγησης Μακροπρόθεσµη δροµολόγηση Μεσοπρόθεσµη δροµολόγηση Βραχυπρόθεσµη δροµολόγηση

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

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

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

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

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

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

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

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ

ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ ΜΑΘΗΜΑ : Πληροφορική Κατεύθυνσης ΤΑΞΗ : Β Αρ. σελίδων : 11 Ηµεροµηνία : 10/6/2008 Ώρα Έναρξης : 7:45 π.µ ιάρκεια : 2 ώρες Ονοµατεπώνυµο :...Τµήµα : Αριθµός :...Βαθµός

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

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

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

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

του προγράμματος diagrama_rohs.zip )

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

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

MK Prosopsis Ltd - Assistive Technology Products & Services

MK Prosopsis Ltd - Assistive Technology Products & Services Βασικά Στοιχεία Λογισμικό Επικοινωνώ: Συμβολογράφος Σύντομος Οδηγός Σημειώσεις Τι είναι: o Πρόκειται για ένα λογισμικό το οποίο έχει σκοπό να στηρίξει του μαθητές που δυσκολεύονται στο γραπτό λόγο (και

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

Σύστημα Πρακτικής Άσκησης Εγχειρίδιο χρήσης Επιστημονικά Υπευθύνου

Σύστημα Πρακτικής Άσκησης Εγχειρίδιο χρήσης Επιστημονικά Υπευθύνου Σύστημα Πρακτικής Άσκησης Εγχειρίδιο χρήσης Επιστημονικά Υπευθύνου Σύντομη περιγραφή και σειρά εικόνων για την χρήση του Πληροφοριακού Συστήματος της Πρακτικής Άσκησης από τους/τις Επιστημονικά Υπευθύνους

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) ..8 Κατανομή των αρχείων σε συσκευές Ακολουθείται κάποια λογική στην αποθήκευση των αρχείων:.αρχεία που χρησιμοποιούνται συχνά τοποθετούνται στους σκληρούς δίσκους που έχουν μεγάλη ταχύτητα πρόσβασης..αν

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

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Κεφάλαιο 2.3: Ρυθμίσεις των Windows Κεφάλαιο 2.3: Ρυθμίσεις των Windows 2.3.1 Βασικές πληροφορίες συστήματος Για να δούμε βασικές πληροφορίες για τον υπολογιστή μας, πατάμε το κουμπί «Έναρξη» και επιλέγουμε διαδοχικά «Πίνακας Ελέγχου», «Σύστημα

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

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στην επιλογή «Κενή βάση δεδομένων» στο Παράθυρο Εργασιών. Θα εμφανιστεί το

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ :

4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ : 4 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΓΕΝΙΚΟΣ ΣΚΟΠΟΣ : Σκοπός του συγκεκριμένου φύλλου εργασίας είναι ο μαθητής να εξοικειωθεί με τις συναρτήσεις, τις αριθμητικές πράξεις καθώς και την επισήμανση κελιών υπό όρους με στόχο

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

Δρομολόγηση σε σύστημα ενός επεξεργαστή

Δρομολόγηση σε σύστημα ενός επεξεργαστή Δρομολόγηση σε σύστημα ενός επεξεργαστή 1. Εισαγωγή 2. Κριτήρια αποτίμησης της απόδοσης 3. Κριτήρια βελτιστοποίησης 4. Τύποι δρομολόγησης του επεξεργαστή 5. Ο κύκλος καταιγισμού CPU-I/O 6. Πολιτικές δρομολόγησης

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

Οδηγός γρήγορης εκκίνησης του PowerSuite

Οδηγός γρήγορης εκκίνησης του PowerSuite Το PowerSuite είναι η ολοκληρωμένη λύση απόδοσης για τον υπολογιστή σας. Ενσωματώνοντας το RegistryBooster, το DriverScanner και το SpeedUpMyPC σε ένα ενιαίο περιβάλλον εργασίας σάρωσης, το PowerSuite

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

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

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

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

Ελέγξτε την ταινία σας

Ελέγξτε την ταινία σας Ελέγξτε την ταινία σας Σε αυτές τις ασκήσεις, θα κάνετε εισαγωγή μιας ταινίας και θα χρησιμοποιήσετε τις επιλογές που παρουσιάστηκαν στο μάθημα. Άσκηση 1: Εισαγωγή αρχείου ταινίας 1. Κάντε κλικ στη μικρογραφία

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

Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία ο χρήστης πρέπει να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής.

Παρακάτω προτείνεται μια αλληλουχία ενεργειών την οποία ο χρήστης πρέπει να ακολουθήσει για να αξιοποιήσει τις δυνατότητες της εφαρμογής. Έκδοση Επιταγών Το συγκεκριμένο εγχειρίδιο δημιουργήθηκε για να βοηθήσει την κατανόηση της διαδικασίας Έκδοσης Επιταγών στην εφαρμογή Λογιστική Διαχείριση της σειράς HyperΛογιστική. Παρακάτω προτείνεται

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

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

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

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

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

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

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

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

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

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011

ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011 ΛΥΚΕΙΟ ΑΓΙΟΥ ΝΕΟΦΥΤΟΥ ΣΧΟΛΙΚΗ ΧΡΟΝΙΑ 2010 2011 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2011 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΚΑΤΕΥΘΥΝΣΗΣ ΗΜΕΡΟΜΗΝΙΑ: 07/06/2011 ΤΑΞΗ: Β ΛΥΚΕΙΟΥ ΩΡΑ: 11:00 ΑΡ. ΣΕΛΙΔΩΝ: 14 ΣΤΟΙΧΕΙΑ ΜΑΘΗΤΗ

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

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες» 1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΣΥΣΤΗΜΑΤΟΣ ΑΓΡΟΠΕΡΙΒΑΛΛΟΝΤΙΚΩΝ ΕΝΙΣΧΥΣΕΩΝ. Μέτρο 2.2.1 On line ΔΗΛΩΣΗ ΕΦΑΡΜΟΓΗΣ Μέτρο 2.2.1 ΙΑΝΟΥΑΡΙΟΣ 2017 ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ 1 ΓΕΝΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ... 3 1.1 Υποχρεωτικά Πεδία... 3 1.2 Βοηθητική Λίστα Τιμών (drop down list)... 3 1.3 Αναζήτηση... 3 1.3.1

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

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009

ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΛΥΚΕΙΟ ΣΟΛΕΑΣ Σχολική χρονιά 2008-2009 ΓΡΑΠΤΕΣ ΠΡΟΑΓΩΓΙΚΕΣ ΕΞΕΤΑΣΕΙΣ ΙΟΥΝΙΟΥ 2009 ΜΑΘΗΜΑ: ΠΛΗΡΟΦΟΡΙΚΗ ΤΑΞΗ : Β ΗΜΕΡΟΜΗΝΙΑ: Τετάρτη, 3 Ιουνίου 2009 ΩΡΑ: 07:45 10:15 ΟΔΗΓΙΕΣ: Το εξεταστικό δοκίμιο αυτό αποτελείται

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

Διαχείριση Πάγιου Ενεργητικού

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

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

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 5γ: Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση Οι διαφάνειες

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

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

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

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

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

Σκελετός Παρουσίασης

Σκελετός Παρουσίασης Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Σκελετός

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

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας

Microsoft Excel Κεφάλαιο 1. Εισαγωγή. Βιβλίο εργασίας Περιεχόμενα Κεφάλαιο 1 Microsoft Excel 2010... 7 Κεφάλαιο 2 Η δομή ενός φύλλου εργασίας... 19 Κεφάλαιο 3 ημιουργία νέου βιβλίου εργασίας και καταχώριση δεδομένων... 24 Κεφάλαιο 4 Συμβουλές για την καταχώριση

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

Αναπαραγωγή με αρχεία ήχου

Αναπαραγωγή με αρχεία ήχου Αναπαραγωγή με αρχεία ήχου Ανοίγει η παρουσίαση και εμφανίζεται η διαφάνεια τίτλου, "Πειράματα με αρχεία ήχου". Άσκηση 1: Εισαγωγή ήχου για συνεχή αναπαραγωγή Βήμα 1: Εισαγωγή ήχου Στη διαφάνεια 1, με

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΙΑΧΕΙΡΙΣΗ ΠΡΟΣΚΛΗΣΕΩΝ ΕΡΓΩΝ ΣΧΕΔΙΩΝ ΧΟΡΗΓΙΩΝ» 1η Έκδοση: 2015 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...3

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

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

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

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

ΠΑΡΑΤΗΡΗΣΕΙΣ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 1 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ

ΠΑΡΑΤΗΡΗΣΕΙΣ. ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 1 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ ΠΑΡΑΤΗΡΗΣΕΙΣ (υποχρεωτικές για τον/την επόπτη/τρια) ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΠΡΟΓΡΑΜΜΑ ΠΑΙΔΑΓΩΓΙΚΗΣ ΚΑΤΑΡΤΙΣΗΣ 1 η ΕΡΓΑΣΙΑ ΠΡΑΚΤΙΚΗΣ ΑΣΚΗΣΗΣ ΣΤΟΙΧΕΙΑ ΑΣΚΗΣΗΣ Επώνυμο: ΣΕΪΤΑΡΙΔΗΣ ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ Όνομα: ΝΙΚΟΛΑΟΣ

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

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων.

POWERPOINT 2003. Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. POWERPOINT 2003 1. Τι είναι το PowerPoint (ppt)? Είναι το δημοφιλέστερο πρόγραμμα παρουσιάσεων. 2. Τι δυνατότητες έχει? Δημιουργία παρουσίασης. Μορφοποίηση παρουσίασης. Δημιουργία γραφικών. Δημιουργία

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

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

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

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 7η ΕΝΟΤΗΤΑ: ΟΡΓΑΝΩΣΗ ΧΡΟΝΟΥ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 7η ΕΝΟΤΗΤΑ: ΟΡΓΑΝΩΣΗ ΧΡΟΝΟΥ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 7η ΕΝΟΤΗΤΑ: ΟΡΓΑΝΩΣΗ ΧΡΟΝΟΥ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Περιβάλλον εργασίας Ηλεκτρονικού Ταχυδρομείου: Το περιβάλλον εργασίας

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

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 1 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΑΝΑΛΥΣΗ ΜΕΝΟΥ ΕΦΑΡΜΟΓΗΣ... 4 2. ΕΠΕΞΗΓΗΣΗ ΚΕΝΤΡΙΚΟΥ ΜΕΝΟΥ ΚΑΡΤΕΛΑΣ... 5 3. ΔΗΜΙΟΥΡΓΙΑ ΠΕΛΑΤΗ... 6 4. ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ... 6 5. ΕΠΕΞΕΡΓΑΣΙΑ/ΔΙΑΓΡΑΦΗ

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record) Διαχείριση Αρχείων Αρχεία Για να είναι δυνατή η επεξεργασία μεγάλου αριθμού δεδομένων τα δεδομένα είναι αποθηκευμένα σε ψηφιακά μέσα κατάλληλα οργανωμένα. Η αποθήκευση γίνεται σε αρχεία. Πολλά προγράμματα

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

Browsers. Λειτουργικότητα και Παραμετροποίηση

Browsers. Λειτουργικότητα και Παραμετροποίηση Browsers Λειτουργικότητα και Παραμετροποίηση 1 Πίνακας περιεχομένων Γενική περιγραφή... 3 Γενικά... 3 Ποιο αναλυτικά τα μέρη ενός browser... 4 Φίλτρα αναζήτησης... 4 Σενάρια αναζήτησης... 4 Όψεις εμφάνισης

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

Διαδικασία Διαχείρισης Παγίου Ενεργητικού

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

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

Λειτουργικά συστήματα πραγματικού χρόνου

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα πραγματικού χρόνου Τι είναι λειτουργικό σύστημα πραγματικού χρόνου; Λειτουργικό Σύστημα Πραγματικού Χρόνου (ΛΣΠΧ) είναι ένα λειτουργικό σύστημα που προορίζεται για εφαρμογές πραγματικού

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

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.

ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. Το πρώτο πράγμα που βλέπουμε μόλις ξεκινάμε το παιχνίδι είναι μια λίστα με όλα τα διαθέσιμα βίντεο με τα οποία μπορούμε να εξασκηθούμε. Σε αυτή περιλαμβάνονται επίσης πληροφορίες

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

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Εισαγωγή στη Python Νικόλαος Ζ. Ζάχαρης Αναπληρωτής

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

AVS. Workshop. Εγχειρίδιο Χρήσης. Standard/Premium Edition AUTOMOTIVE

AVS. Workshop. Εγχειρίδιο Χρήσης. Standard/Premium Edition AUTOMOTIVE AVS AUTOMOTIVE Εγχειρίδιο Χρήσης Workshop Standard/Premium Edition Περιεχόμενα 1. Σχετικά με την εφαρμογή/βασικές Λειτουργίες...2 1.1. Εγκατάσταση Προγράμματος...3 1.2 Αρχική Οθόνη - Κύριο Μενού...5 1.2.1

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης

Η πρώτη παράμετρος είναι ένα αλφαριθμητικό μορφοποίησης Η συνάρτηση printf() Η συνάρτηση printf() χρησιμοποιείται για την εμφάνιση δεδομένων στο αρχείο εξόδου stdout (standard output stream), το οποίο εξ ορισμού συνδέεται με την οθόνη Η συνάρτηση printf() δέχεται

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος... Περιεχόμενα Πρόλογος...11 Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών... 13 1.1 Εισαγωγή στους υπολογιστές... 15 1.2 Μονάδες μέτρησης... 27 1.3 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή...

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

Εγχειρίδιο χρήσης Print2PDF σελ. 1 από 32

Εγχειρίδιο χρήσης Print2PDF σελ. 1 από 32 Πρόγραμμα Print2PDF (Εκτύπωση κειμένου και εικόνων σε αρχεία PDF) Πρόλογος Η εφαρμογή Print2PDF (Print to PDF Εκτύπωση σε αρχεία PDF) σας επιτρέπει να εκτυπώσετε το δικό σας κείμενο πάνω σε ένα έντυπο

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΕΠΑΛΗΘΕΥΣΕΙΣ ΦΟΡΕΑ ΕΠΑΛΗΘΕΥΣΕΩΝ ΔΑΠΑΝΩΝ (ΦΕΔ)» 1η Έκδοση: 2016 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΜΑΘΗΜΑ : Η/Υ I (ενότητα WINDOWS) ΥΠΕΥΘΥΝΟΣ : ΑΝΑΣΤΑΣΙΟΣ ΟΙΚΟΝΟΜΙΔΗΣ, Καθηγητής ΕΡΓΑΣΤΗΡΙΑ : ΘΕΑΝΩ ΧΑΤΖΙΔΑΚΗ, Εργαστηριακό

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

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας Δημιουργία η-μαθήματος με τη χρήση του Moodle 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας Δημιουργία η-μαθήματος με τη χρήση του Moodle 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

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

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10

Εισαγωγή στην εφαρμογή Βασική Σελίδα (Activity) Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Περιεχόμενα Εισαγωγή στην εφαρμογή... 2 Βασική Σελίδα (Activity)... 3 Ρυθμίσεις... 3 Πελάτες... 6 Αναζήτηση Πελάτη... 6 Προβολή Πελάτη... 7 Επεξεργασία Πελάτη... 10 Αποθήκη... 11 Αναζήτηση προϊόντος...

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΟΙΚΟΝΟΜΙΚΩΝ ΚΑΙ ΚΟΙΝΩΝΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ ΥΠΟΛΟΓΙΣΜΩΝ ΚΑΙ ΑΥΤΟΜΑΤΩΝ Τελικές εξετάσεις 3 Ιανουαρίου 27 Διάρκεια εξέτασης: 3 ώρες (2:-5:) ΘΕΜΑ ο

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

1. Τα τμήματα της επιφάνειας εργασίας των Windows

1. Τα τμήματα της επιφάνειας εργασίας των Windows 1. Τα τμήματα της επιφάνειας εργασίας των Windows Εικονίδια συντομεύσεων (αρχείου-φακέλου) Εικονίδια Ανενεργά Ενεργό Επιφάνεια (αρχείου-φακέλου) παράθυρα παράθυρο εργασίας Γραμμή μενού Γραμμή εργαλείων

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ 2014-2020 ΕΝΟΤΗΤΑ «ΔΕΛΤΙΑ ΠΑΡΑΚΟΛΟΥΘΗΣΗΣ ΥΠΟΨΗΦΙΩΝ ΣΧΕΔΙΩΝ ΧΟΡΗΓΙΩΝ» 1η Έκδοση: 2016 ΠΕΡΙΕΧΟΜΕΝΑ 1. ΕΙΣΑΓΩΓΗ...3

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

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch Τι θα μάθουμε σήμερα: Να ενεργοποιούμε το λογισμικό Scratch Να αναγνωρίζουμε τα κύρια μέρη του περιβάλλοντος του Scratch Να δημιουργούμε/εισάγουμε/τροποποιούμε

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

Pascal, απλοί τύποι, τελεστές και εκφράσεις

Pascal, απλοί τύποι, τελεστές και εκφράσεις Pascal, απλοί τύποι, τελεστές και εκφράσεις 15 Νοεμβρίου 2011 1 Γενικά Στην standard Pascal ορίζονται τέσσερις βασικοί τύποι μεταβλητών: integer: Παριστάνει ακέραιους αριθμούς από το -32768 μέχρι και το

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

1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ

1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ 1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ Σελίδα 1 ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ... 3 1 ο Βήμα: Δημιουργία νέας χρήσης.... 3 2 ο Βήμα: Εισαγωγή στην νέα χρήση... 3 3ο

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

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

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

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave

ΠΛΗΡΟΦΟΡΙΚΗ Ι Εργαστήριο 1 MATLAB ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1 Θέμα εργαστηρίου: Εισαγωγή στο MATLAB και στο Octave Περιεχόμενο εργαστηρίου: - Το περιβάλλον ανάπτυξης προγραμμάτων Octave - Διαδικασία ανάπτυξης προγραμμάτων MATLAB - Απλά

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

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

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

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

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30 4 Σεπτεμβρίου 2009 Σελ. 1/6 ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30 Θέμα 1 (3 μονάδες) α) (0,75

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

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

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

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

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL

Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC ΤΙ ΜΠΟΡΟΎΜΕ ΝΑ ΚΆΝΟΥΜΕ ΜΕ ΤΗ VISUAL BASIC ΑΝΤΙΚΕΊΜΕΝΑ: ΦΌΡΜΑ ΚΑΙ ΧΕΙΡΙΣΤΉΡΙΑ ΕΤΙΚΈΤΑ LABEL Γ3.3.Μ7 ΕΠΑΝΆΛΗΨΗ ΜΈΡΟΣ Α: ΈΝΝΟΙΕΣ ΤΙ ΕΊΝΑΙ Η VISUAL BASIC Η Visual Basic είναι μια γλώσσα προγραμματισμού οδηγούμενη από συμβάντα που έχει ένα ολοκληρωμένο περιβάλλον ανάπτυξης Έχει δημιουργηθεί από τη

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

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS Ακαδημαϊκό Έτος 2016-2017, Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS A. Εισαγωγή στις βάσεις δεδομένων - Γνωριμία με την ACCESS B. Δημιουργία Πινάκων 1. Εξήγηση των

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

Σημειωματάριο Τετάρτης 18 Οκτ. 2017

Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Σημειωματάριο Τετάρτης 18 Οκτ. 2017 Περισσότερα για λίστες και ανακύκλωση Είδαμε σήμερα διάφορα προβλήματα και λύσεις για λίστες. Είδαμε επίσης την ανακύκλωση while. Στο επόμενο βλέπουμε πώς μπορούμε να

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

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων

Pylon Entry. Πόροι. Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων Pylon Entry Πόροι Στη διαδικασία αυτή περιγράφεται η Δημιουργία- Μεταβολή-Διαγραφή Αναζήτηση Πόρων Περιεχόμενα Δημιουργία Νέου Πόρου... 3 Καρτέλα Βασικά Στοιχεία... 4 Καρτέλα Βασικά Στοιχεία... 4 Καρτέλα

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