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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling)

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός (ή Χρονοδρομολόγηση ή Δρομολόγηση)

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

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling)

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

Εισαγωγή στους Υπολογιστές

Λειτουργικά. Συστήματα Ι. Διεργασίες-Νήματα. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

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

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

Εισαγωγή στους Η/Υ. Ενότητα 4: Λειτουργικά Συστήματα Ι. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Παράμετροι Συστημάτων Αναμονής Τύπος Little

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

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

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

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

Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

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

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

Πληροφορική 2. Λειτουργικά Συστήματα

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

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

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

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

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

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

Εισαγωγή στην Πληροφορική

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

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

[4] Στόχοι. Λογισμικό. Υπολογιστικά συστήματα: Στρώματα

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Λειτουργικά συστήματα

Κεφάλαιο 4: Λογισμικό Συστήματος

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

ΛΟΓΙΣΜΙΚΟ ΠΡΟΣΟΜΟΙΩΣΗΣ ANYLOGIC

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

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

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Άσκηση Προσομοίωσης Στατιστικές Εξόδου Ουράς Μ/Μ/1 - Θεώρημα Burke Ανοικτά Δίκτυα Ουρών Μ/Μ/1 - Θεώρημα Jackson

Κεφάλαιο 1 : Εισαγωγή

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Εγγυημένη ποιότητα υπηρεσίας

ΘΕΜΑ 1 ο. Στήλη Β Προτάσεις. β. Ο βρόχος επανάληψης τερµατίζεται, όταν η συνθήκη είναι αληθής. όταν η συνθήκη είναι ψευδής.

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

Transcript:

Εργαστηριακή Άσκηση Οι Αλγόριθμοι Χρονοπρογραμματισμού First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Επιμέλεια: Βασίλης Τσακανίκας Περιεχόμενα Αλγόριθμοι Χρονοπρογραμματισμού... 2 First Come First Serve... 2 Shortest Job First... 2 Priority Weighted... 2 Round Robin... 3 Κριτήρια Αξιολόγησης αλγορίθμων δρομολόγησης... 3 Ο προσομοιωτής CPU Scheduler Simulator... 4 Είσοδος Προσομοίωσης... 5 Εκτέλεση Προσομοίωσης... 6 Έξοδος Προσομοίωσης... 7 Πειραματικό μέρος... 8 Βιβλιογραφία... 8 1/8

Αλγόριθμοι Χρονοπρογραμματισμού Παρακάτω ακολουθεί μία σύντομη περιγραφή των βασικότερων αλγορίθμων χρονοπρογραμματισμού. First Come First Serve Ο πιο απλός αλγόριθμος χρονοδρομολόγησης ονομάζεται αλγόριθμος με βάση τη σειρά άφιξης (First Come First Served - FCFS). Η υλοποίηση του γίνεται πολύ εύκολα: η λίστα έτοιμων διεργασιών λειτουργεί όπως μια ουρά αναμονής. Κάθε νέα διεργασία που ετοιμάζεται να εκτελεστεί στην επόμενη έκρηξή της στην ΚΜΕ εισάγεται στο τέλος της λίστας έτοιμων διεργασιών. Όταν έρθει η ώρα να εισαχθεί στην ΚΜΕ μια νέα διεργασία, επιλέγεται αυτή που είναι στην αρχή της λίστας, προωθείται στην ΚΜΕ και εκεί εκτελεί ολόκληρη την έκρηξή της στην ΚΜΕ. Η επίδοση του αλγορίθμου αυτού αν κριθεί με βάση το χρόνο ανακύκλωσης (turnaround time) είναι χαμηλή, γιατί εξαναγκάζει ακόμα και διεργασίες με πολύ σύντομες εκρήξεις ΚΜΕ να αναμένουν για την εκτέλεση άλλων. Παρόμοιες επιδόσεις πετυχαίνει και με βάση τα υπόλοιπα κριτήρια αξιολόγησης που αναφέρθηκαν στο μάθημα αυτό η χρησιμοποίηση π.χ. της ΚΜΕ μπορεί να είναι χαμηλή. Το βασικό πλεονέκτημα της εξυπηρέτησης με βάση τη σειρά άφιξης είναι η απλότητά της. Ο αλγόριθμος είναι πάρα πολύ απλός να προγραμματιστεί και καταναλώνει ελάχιστο χρόνο για την εκτέλεσή του. Shortest Job First Ο αλγόριθμος εξυπηρέτησης με βάση τη διάρκεια (Shortest Job First - SJF), κατατάσσει τις διεργασίες κατά αύξουσα σειρά διάρκειας. Πρώτα εκτελείται η συντομότερη διεργασία, μετά αυτή με την αμέσως μεγαλύτερη διάρκεια κ.ο.κ. Τελευταία εκτελείται αυτή με τη μεγαλύτερη διάρκεια. Μια διεργασία που εισάγεται στη λίστα έτοιμων διεργασιών, όταν μια άλλη ήδη εκτελείται, θα τοποθετηθεί στο κατάλληλο σημείο ανάλογα με τη διάρκεια της έκρηξής της στην ΚΜΕ, και θα εκτελεστεί πριν από κάποια άλλη που είχε εισαχθεί στη λίστα νωρίτερα αλλά είχε μεγαλύτερη διάρκεια. Όσον αφορά το χρόνο που οι διεργασίες βρίσκονται σε αναμονή, ο αλγόριθμος με βάση τη διάρκεια είναι βέλτιστος, δηλαδή κανένας άλλος αλγόριθμος δεν μπορεί να επιτύχει καλύτερο μέσο χρόνο αναμονής. Priority Weighted Οι δύο αλγόριθμοι που περιγράφηκαν στις προηγούμενες παραγράφους αποτελούν ειδική περίπτωση ενός γενικότερου αλγόριθμου, ο οποίος δρομολογεί διεργασίες με βάση την προτεραιότητά (priority) τους. Στον αλγόριθμο αυτό, σε κάθε διεργασία αντιστοιχίζεται μια αριθμητική τιμή, που είναι η προτεραιότητά της, και η διεργασία με τη μεγαλύτερη προτεραιότητα επιλέγεται κάθε φορά για εκτέλεση. Όταν δυο ή περισσότερες διεργασίες έχουν την ίδια προτεραιότητα, τότε επιλέγεται πρώτα η παλαιότερη, δηλαδή χρονοδρομολογούνται με βάση τη σειρά άφιξης. 2/8

Round Robin Ο αλγόριθμος κυκλικής επαναφοράς (Round Robin - RR) έχει σχεδιασθεί ειδικά για συστήματα καταμερισμού χρόνου (time sharing) όπου δίνεται ένα μικρό ποσό χρόνου εναλλάξ σε κάθε διεργασία. Αυτό το μικρό ποσό χρόνου, όπως ήδη έχουμε πει, ονομάζεται κβάντο χρόνου (time quantum) και έχει συνήθως διάρκεια της τάξης των 10 msec. Η λίστα έτοιμων διεργασιών είναι η ουρά στην οποία περιμένουν οι διεργασίες. Κάθε φορά που περνά ένα κβάντο χρόνου, η ΚΜΕ διακόπτει την τρέχουσα διεργασία και την τοποθετεί στο τέλος της λίστας έτοιμων διεργασιών. Αφαιρεί στη συνέχεια τη διεργασία που βρίσκεται στην αρχή της ουράς και την παραχωρεί στην ΚΜΕ για το επόμενο κβάντο χρόνου. Αν μια διεργασία ολοκληρώσει την εκτέλεσή της προτού τελειώσει το κβάντο χρόνου που της έχει παραχωρηθεί, απελευθερώνει οικειοθελώς την ΚΜΕ και το ΛΣ παραχωρεί την ΚΜΕ στην επόμενη έτοιμη διεργασία. Αν υπάρχει μόνο μια διεργασία στο σύστημα, τότε της παραχωρούνται διαδοχικά κβάντα χρόνου. Κριτήρια Αξιολόγησης αλγορίθμων δρομολόγησης Τα πιο συνηθισμένα κριτήρια αξιολόγησης είναι: 1. Ο βαθμός χρησιμοποίησης της ΚΜΕ (CPU utilization). Πρόκειται για το ποσοστό του χρόνου που η ΚΜΕ είναι απασχολημένη. Αν το υπολογιστικό σύστημα λειτουργεί για χρονικό διάστημα Τ ολ και η ΚΜΕ έχει απασχοληθεί για χρόνο Τ απ, ο βαθμός χρησιμοποίησής της είναι Τ απ/τ ολ. Οι «καλοί» βαθμοί χρησιμοποίησης είναι κοντά στο 1 (όπου η ΚΜΕ είναι συνεχώς απασχολημένη). 2. Η ρυθμαπόδοση (throughput). Είναι το πλήθος των εργασιών που ολοκληρώνονται στη μονάδα του χρόνου. Αν π.χ. μέσα σε μια ώρα ολοκληρωθούν 1800 εργασίες, τότε η ρυθμαπόδοση του συστήματος είναι 1800/3600 = 0,5 εργασίες/sec. Όσο πιο μεγάλη είναι η ρυθμαπόδοση, τόσο καλύτερη γίνεται η απόδοση του συστήματος. 3. Ο χρόνος ανακύκλωσης (turnaround time). Είναι ο συνολικός χρόνος που απαιτείται για την πλήρη εκτέλεση μιας εργασίας, από τη στιγμή που αυτή υποβάλλεται στο σύστημα μέχρι τη στιγμή που ολοκληρώνεται. Αυτός ο χρόνος περιλαμβάνει την αρχική αναμονή της εργασίας μέχρι να επιλεγεί για φόρτωση στην κύρια μνήμη, το χρόνο εκτέλεσης στην ΚΜΕ, το χρόνο Ε/Ε και το χρόνο αναμονής σε διάφορες ουρές του συστήματος. 4. Ο χρόνος αναμονής (waiting time). Πρόκειται για το χρόνο που πέρασε η διεργασία στη λίστα έτοιμων διεργασιών αναμένοντας την εκτέλεσή της. Ο χρόνος αναμονής είναι ένας «καλύτερος» δείκτης της καθυστέρησης που επιβάλλει το σύστημα σε μια διεργασία από το χρόνο ανακύκλωσης, γιατί ο δεύτερος περιέχει και το χρόνο που εκτελείται η διεργασία στην ΚΜΕ ή εκτελεί λειτουργίες Ε/Ε, ο οποίος είναι σταθερός για κάθε διεργασία και δεν εξαρτάται από το ΛΣ. 5. Ο χρόνος απόκρισης (response time). Σε διαλογικά συστήματα ενδιαφέρει πολλές φορές ο χρόνος που απαιτείται μέχρι το σύστημα να δώσει την πρώτη έξοδοαπόκριση για μια διεργασία, που ονομάζεται χρόνος απόκρισης. Αυτός διαφέρει από 3/8

το χρόνο ανακύκλωσης κατά το χρονικό διάστημα που απαιτείται για την ολοκλήρωση της εξόδου μιας διεργασίας, και συνεπώς δεν εξαρτάται από την ταχύτητα της συσκευής εξόδου. Αν π.χ. μια διεργασία μετά το τέλος των υπολογισμών της εκτυπώνει τα αποτελέσματα, ο χρόνος απόκρισης μετριέται μέχρι τη στιγμή που αρχίζει η εκτύπωση ο χρόνος της εκτύπωσης δεν συνυπολογίζεται. Ο προσομοιωτής CPU Scheduler Simulator Ο προσομοιωτής «CPU Scheduler Simulator» είναι ένας προσομοιωτής γραμμένος στην γλώσσα προγραμματισμού JAVA, ο οποίος έχει την δυνατότητα να προσομοιώσει την λειτουργία βασικών αλγορίθμων χρονοπρογραμματισμού. Ο προσομοιωτής δέχεται ως είσοδο ένα σύνολο εργασιών με συγκεκριμένα χαρακτηριστικά (ανάλογα με τον αλγόριθμο χρονοπρογραμματισμού που δοκιμάζουμε) και υπολογίζει και στατιστικά στοιχεία σχετικά με την λειτουργία του επεξεργαστή που εκτελεί τις εργασίες. Μπορούμε να επιλέξουμε τον αλγόριθμο δρομολόγησης που επιθυμούμε να χρησιμοποιήσουμε από την επιλογή: Options -> Algorithm. Αξίζει να σημειωθεί πως δύο από τους προαναφερθέντες αλγόριθμους (Shortest Job First και Priority weighted) έχουν υλοποιηθεί στον προσομοιωτή σε δύο εκδόσεις, με προτίμηση (Preemptive) και χωρίς προτίμηση (Non-preemptive). Η επιλογή αυτή γίνεται στον προσομοιωτή εκτελώντας Options -> Preemption (check: Preemptive, uncheck: Non- Preemptive). Όταν εκτελούμε την έκδοση με προτίμηση, στο ενδεχόμενο όπου εμφανίζεται στην ουρά αναμονής μία διεργασία είτε με μικρότερο χρόνο εκτέλεσης από αυτή που εκτελείται (SJF) είτε με μεγαλύτερη προτεραιότητα (PW), η ΚΜΕ παύει να εκτελεί την τρέχουσα διεργασία και εκτελεί την νέα διεργασία. Στις αντίστοιχες εκδόσεις χωρίς προτίμηση, ολοκληρώνεται η εκτέλεση της τρέχουσας διεργασίας και μετά ξεκινά η εκτέλεση της νέας διεργασίας. 4/8

Είσοδος Προσομοίωσης Η είσοδος του προσομοιωτή είναι αρχεία CSV, δομημένα ως εξής: Διάρκεια εκτέλεσης (Initial Burst Time) o Είναι ο απαιτούμενος χρόνος που η ΚΜΕ χρειάζεται για να εκτελέσει την διεργασία. Καθυστέρηση (Delay) o Είναι ο χρόνος που μεσολαβεί από την άφιξη της (n-1) διεργασίας μέχρι την άφιξη της n διεργασίας στην οποία αναφέρεται ο εν λόγω χρόνος. Προτεραιότητα (Priority) o Για αλγορίθμους που χρησιμοποιούν την παράμετρο της προτεραιότητας, αυτή η είσοδος αναφέρεται στο σχετικό βάρος της διεργασίας. Στην κλίμακα 0-9, 9 είναι η χαμηλότερη προτεραιότητα και 0 η υψηλότερη. Στον παρακάτω πίνακα εμφανίζεται ένα παράδειγμα εισόδου. Sample Process Data Burst Delay Priority 7 70 5 24 70 4 37 95 8 13 25 3 3 45 0 56 55 6 25 95 1 20 10 1 15 45 2 17 60 5 29 15 7 6 70 0 Για να δημιουργήσουμε μία είσοδο για τον προσομοιωτή, δημιουργούμε με έναν απλό κειμενογράφο (notepad) ένα αρχείο και το αποθηκεύουμε με κατάληξη.dat. Στην συνέχεια δημιουργούμε τις τρεις προαναφερθείσες στήλες δεδομένων (χωρίς τις επικεφαλίδες). Κάθε αριθμός στην ίδια γραμμή είναι χωρισμένος με διάστημα tab (\t) με τον διπλανό του (δείτε στο eclass ένα παράδειγμα αρχείου). Υπάρχει πάντα φυσικά η δυνατότητα δημιουργίας τυχαίας πηγής εισόδου. 5/8

Εκτέλεση Προσομοίωσης Ο προσομοιωτής ξεκινά ή/και διακόπτει την εκτέλεση της προσομοίωσης πατώντας το checkbox στο κάτω μέρος του περιβάλλοντος. Επίσης μπορούμε να δούμε την ουρά αναμονής καθώς εκτελείται η προσομοίωση πατώντας Options -> Show hidden. 6/8

Έξοδος Προσομοίωσης Τα στατιστικά εξόδου που υπολογίζει ο προσομοιωτής εμφανίζονται κατά την διάρκεια προσομοίωσης στο κάτω μέρος του περιβάλλοντος. Αυτά είναι: CPU (Χρόνος ΚΜΕ) o Time: Ο συνολικός χρόνος λειτουργίας της ΚΜΕ o Idle: Ο χρόνος που η ΚΜΕ είναι ανενεργή και δεν εκτελεί καμία διεργασία. o Busy: Ο χρόνος που η ΚΜΕ είναι ενεργή και εκτελεί κάποια διεργασία. Response (Απόκριση): Αναφέρεται στο χρόνο όπου μία έτοιμη προς εκτέλεση διεργασία έμεινε στην ουρά πριν αρχίσει να εκτελείται. o Min: Ελάχιστη τιμή o Mean: Μέση τιμή o Max: Μέγιστη τιμή o StdDev: Τυπική απόκλιση τιμών Turnaround Time (χρόνος ανακύκλωσης) o Min: Ελάχιστη τιμή o Mean: Μέση τιμή o Max: Μέγιστη τιμή o StdDev: Τυπική απόκλιση τιμών Wait Time (χρόνος αναμονής) o Min: Ελάχιστη τιμή o Mean: Μέση τιμή o Max: Μέγιστη τιμή o StdDev: Τυπική απόκλιση τιμών 7/8

Πειραματικό μέρος i. Εκτελέστε 20 προσομοιώσεις (New random source) 50 διεργασιών η κάθε μία τους για τον αλγόριθμο χρονοπρογραμματισμού RoundRobin. Καταγράψτε για κάθε προσομοίωση τα στατιστικά εξόδου και συμπληρώστε κατάλληλα το φύλλο εργασίας. ii. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο FCFS. iii. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο SJF. iv. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο SJF (preemptive). v. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο PW. vi. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο PW (preemptive). vii. Συνδυάστε όλα τα αποτελέσματα σε κοινό διάγραμμα. Τι παρατηρείτε; Ποιος αλγόριθμος και σε ποιο μετρικό είναι καλύτερος; Συμβαδίζει το αποτέλεσμα με την θεωρία; viii. Δημιουργήστε ένα αρχείο εισόδου με 100 διεργασίες για τις οποίες ο RR δίνει την μικρότερη μέση τιμή αναμονής για τις διεργασίες. Ποιο κριτήριο εκμεταλλευτήκατε; ix. Επαναλάβετε το ερώτημα (viii) για τον FCFS. x. Επαναλάβετε το ερώτημα (viii) για τον SJF. xi. Ποίο είναι το % κέρδος στον χρόνο της ΚΜΕ όταν χρησιμοποιώ την επιλογή preemptive στον SJF και ποιο όταν χρησιμοποιούμε το PW; Ποιο είναι το μετρικό που επηρεάζεται περισσότερο από την είσοδο της επιλογής preemptive; Βιβλιογραφία 1. http://jimweller.com/jim-weller/jim/java_proc_sched/ 2. http://www.gitam.edu/eresource/comp/gvr(os)/5.3.htm 3. http://wiki.osdev.org/scheduling_algorithms 8/8