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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΟΓΙΣΜΙΚΟ (software)

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

Αδιέξοδα (Deadlocks)

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

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

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

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

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

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

Γ ΤΑΞΗ ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ÑÏÌÂÏÓ

Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Μάρτιος 2005

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

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

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

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

Ερωτήσεις. ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Φθινόπωρο 2011

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

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

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

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

Θέμα 1 (20%) (α) Πότε είναι εργοδικό το παραπάνω σύστημα; Για πεπερασμένο c, το σύστημα είναι πάντα εργοδικό.

Transcript:

Εργαστηριακή Άσκηση Εργαστήριο Λειτουργικών Συστημάτων Οι First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Β. Τσακανίκας Β. Ταμπακάς Τμήμα Μηχανικών Πληροφορικής ΤΕ Περιεχόμενα... 1 First Come First Serve... 1 Shortest Job First... 2 Priority Weighted... 2 Round Robin... 2 Κριτήρια Αξιολόγησης αλγορίθμων δρομολόγησης... 3 Ο προσομοιωτής CPU Scheduler Simulator... 4 Είσοδος Προσομοίωσης... 4 Εκτέλεση Προσομοίωσης... 6 Έξοδος Προσομοίωσης... 7 Πειραματικό μέρος...σφάλμα! Δεν έχει οριστεί σελιδοδείκτης. Παρακάτω ακολουθεί μία σύντομη περιγραφή των βασικότερων αλγορίθμων χρονοπρογραμματισμού. First Come First Serve Ο πιο απλός αλγόριθμος χρονοδρομολόγησης ονομάζεται αλγόριθμος με βάση τη σειρά άφιξης (First Come First Served - FCFS). Η υλοποίηση του γίνεται πολύ εύκολα: η λίστα έτοιμων διεργασιών λειτουργεί όπως μια ουρά αναμονής. Κάθε νέα διεργασία που ετοιμάζεται να εκτελεστεί στην επόμενη έκρηξή της στην ΚΜΕ εισάγεται στο τέλος της λίστας έτοιμων διεργασιών. Όταν έρθει η ώρα να εισαχθεί στην ΚΜΕ μια νέα διεργασία, επιλέγεται αυτή που είναι στην αρχή της λίστας, προωθείται στην ΚΜΕ και εκεί εκτελεί ολόκληρη την έκρηξή της στην ΚΜΕ. Η επίδοση του αλγορίθμου αυτού αν κριθεί με βάση το χρόνο ανακύκλωσης (turnaround time) είναι χαμηλή, γιατί εξαναγκάζει ακόμα και διεργασίες με πολύ σύντομες εκρήξεις ΚΜΕ 1/9

να αναμένουν για την εκτέλεση άλλων. Παρόμοιες επιδόσεις πετυχαίνει και με βάση τα υπόλοιπα κριτήρια αξιολόγησης που αναφέρθηκαν στο μάθημα αυτό η χρησιμοποίηση π.χ. της ΚΜΕ μπορεί να είναι χαμηλή. Το βασικό πλεονέκτημα της εξυπηρέτησης με βάση τη σειρά άφιξης είναι η απλότητά της. Ο αλγόριθμος είναι πάρα πολύ απλός να προγραμματιστεί και καταναλώνει ελάχιστο χρόνο για την εκτέλεσή του. Shortest Job First Ο αλγόριθμος εξυπηρέτησης με βάση τη διάρκεια (Shortest Job First - SJF), κατατάσσει τις διεργασίες κατά αύξουσα σειρά διάρκειας. Πρώτα εκτελείται η συντομότερη διεργασία, μετά αυτή με την αμέσως μεγαλύτερη διάρκεια κ.ο.κ. Τελευταία εκτελείται αυτή με τη μεγαλύτερη διάρκεια. Μια διεργασία που εισάγεται στη λίστα έτοιμων διεργασιών, όταν μια άλλη ήδη εκτελείται, θα τοποθετηθεί στο κατάλληλο σημείο ανάλογα με τη διάρκεια της έκρηξής της στην ΚΜΕ, και θα εκτελεστεί πριν από κάποια άλλη που είχε εισαχθεί στη λίστα νωρίτερα αλλά είχε μεγαλύτερη διάρκεια. Όσον αφορά το χρόνο που οι διεργασίες βρίσκονται σε αναμονή, ο αλγόριθμος με βάση τη διάρκεια είναι βέλτιστος, δηλαδή κανένας άλλος αλγόριθμος δεν μπορεί να επιτύχει καλύτερο μέσο χρόνο αναμονής. Priority Weighted Οι τρεις αλγόριθμοι που περιγράφηκαν στις προηγούμενες παραγράφους αποτελούν ειδική περίπτωση ενός γενικότερου αλγόριθμου, ο οποίος δρομολογεί διεργασίες με βάση την προτεραιότητά (priority) τους. Στον αλγόριθμο αυτό, σε κάθε διεργασία αντιστοιχίζεται μια αριθμητική τιμή, που είναι η προτεραιότητά της, και η διεργασία με τη μεγαλύτερη προτεραιότητα επιλέγεται κάθε φορά για εκτέλεση. Όταν δυο ή περισσότερες διεργασίες έχουν την ίδια προτεραιότητα, τότε επιλέγεται πρώτα η παλαιότερη, δηλαδή χρονοδρομολογούνται με βάση τη σειρά άφιξης. Round Robin Ο αλγόριθμος κυκλικής επαναφοράς (Round Robin - RR) έχει σχεδιασθεί ειδικά για συστήματα καταμερισμού χρόνου (time sharing) όπου δίνεται ένα μικρό ποσό χρόνου εναλλάξ σε κάθε διεργασία. Αυτό το μικρό ποσό χρόνου, όπως ήδη έχουμε πει, ονομάζεται κβάντο χρόνου (time quantum) και έχει συνήθως διάρκεια της τάξης των 10 msec. Η λίστα έτοιμων διεργασιών είναι η ουρά στην οποία περιμένουν οι διεργασίες. Κάθε φορά που περνά ένα κβάντο χρόνου, η ΚΜΕ διακόπτει την τρέχουσα διεργασία και την τοποθετεί στο τέλος της λίστας έτοιμων διεργασιών. Αφαιρεί στη συνέχεια τη διεργασία που βρίσκεται στην αρχή της ουράς και την παραχωρεί στην ΚΜΕ για το επόμενο κβάντο χρόνου. 2/9

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

Ο προσομοιωτής 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), η ΚΜΕ παύει να εκτελεί την τρέχουσα διεργασία και εκτελεί την νέα διεργασία. Στις αντίστοιχες εκδόσεις χωρίς επαναεισαγωγή, ολοκληρώνεται η εκτέλεση της τρέχουσας διεργασίας και μετά ξεκινά η εκτέλεση της νέας διεργασίας. Είσοδος Προσομοίωσης Η είσοδος του προσομοιωτή είναι αρχεία CSV, δομημένα ως εξής: 4/9

Διάρκεια εκτέλεσης (Initial Burst Time) o Είναι ο απαιτούμενος χρόνος που η ΚΜΕ χρειάζεται για να εκτελέσει την διεργασία. Καθυστέρηση (Delay) o Είναι ο χρόνος που μεσολαβεί από την άφιξη της (n-1) διεργασίας μέχρι την άφιξη της n διεργασίας στην οποία αναφέρεται ο εν λόγω χρόνος. Προτεραιότητα (Priority) o Για αλγορίθμους που χρησιμοποιούν την παράμετρο της προτεραιότητας, αυτή η είσοδος αναφέρεται στο σχετικό βάρος της διεργασίας. Στην κλίμακα 0-9, 9 είναι η χαμηλότερη προτεραιότητα και 0 η υψηλότερη. Στον παρακάτω πίνακα εμφανίζεται ένα παράδειγμα εισόδου. Προσοχή: Στους αλγορίθμους που δεν χρησιμοποιούν προτεραιότητα, η στήλη αυτή πρέπει να συμπληρωθεί με προτεραιότητα 1 για όλες τις διεργασίες. 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 Σημείωση: Ειδικά για τον αλγόριθμο RR (Round Robin), o προσομοιωτής διαθέτει σταθερό κβάντο χρόνου (=10), το οποίο δεν μπορεί να τροποποιηθεί στα πειράματά μας. Για να δημιουργήσουμε μία είσοδο για τον προσομοιωτή, δημιουργούμε με έναν απλό κειμενογράφο (notepad) ένα αρχείο και το αποθηκεύουμε με κατάληξη *.dat. Στην συνέχεια δημιουργούμε τις τρεις προαναφερθείσες στήλες δεδομένων (χωρίς τις επικεφαλίδες). Κάθε 5/9

αριθμός στην ίδια γραμμή είναι χωρισμένος με διάστημα tab (\t) με τον διπλανό του (δείτε openclass για παράδειγμα αρχείου). Υπάρχει πάντα φυσικά η δυνατότητα δημιουργίας τυχαίας πηγής εισόδου. Εκτέλεση Προσομοίωσης Ο προσομοιωτής ξεκινά ή/και διακόπτει την εκτέλεση της προσομοίωσης πατώντας το checkbox στο κάτω μέρος του περιβάλλοντος. Επίσης μπορούμε να δούμε την ουρά αναμονής καθώς εκτελείται η προσομοίωση πατώντας Options > Show hidden. 6/9

Έξοδος Προσομοίωσης Τα στατιστικά εξόδου που υπολογίζει ο προσομοιωτής εμφανίζονται κατά την διάρκεια προσομοίωσης στο κάτω μέρος του περιβάλλοντος. Αυτά είναι: 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: Τυπική απόκλιση τιμών Άσκηση 1 Θεωρείστε τέσσερις διεργασίες P1,P2,P3,P4 με χρόνους άφιξης 0, 20, 29, 50 και διάρκεια εκτέλεσης 60,40,30,30 αντίστοιχα. Εάν στο σύστημα εκτελείται αλγόριθμος FCFS, ποια θα 7/9

είναι η σειρά ολοκλήρωσης των διεργασιών; Πότε θα ολοκληρωθεί η εκτέλεση και των τεσσάρων διεργασιών; Υπολογίστε το μέσο χρόνο διεκπεραίωσης (ΜΧΔ) και το μέσο χρόνο αναμονής (ΜΧΑ) των 4 διεργασιών (θεωρείστε ότι ο χρόνος θεματικής εναλλαγής context switch είναι αμελητέος). Υπόδειξη: Δημιουργείστε το διάγραμμα Gantt και βρείτε «χειρωνακτικά» τους παραπάνω χρόνους. Στη συνέχεια δημιουργείστε το κατάλληλο αρχείο εισόδου για τον προσομειωτή και εκτελέστε το πείραμα. Συγκρίνετε τους χρόνους που υπολογίσατε εσείς με τους χρόνους (turnaround time, wait time) του προσομοιωτή. Άσκηση 2 Επαναλάβατε την προηγούμενη άσκηση για την πολιτική χρονοδρομολόγησης SJF (Shortest Job First) στην μη-προεκχωρητική (non preemptive) και στην προεκχωρητική (preemptive) έκδοσή της η οποία είναι γνωστή ως Shortest Remaining Time First SRTF. Άσκηση 3 Επαναλάβατε την άσκηση 1 για την πολιτική χρονοδρομολόγησης RR (Round Robin). Θεωρείστε κβάντο χρόνου 10. Άσκηση 4 Δίνονται οι διεργασίες P1, P2, P3, P4. Υποθέστε ότι όλες οι διεργασίες φθάνουν στην ready queue τη χρονική στιγμή 0, με τη σειρά που εμφανίζονται στον πίνακα ιεργασία Χρόνος Εκτέλεσης Προτεραιότητα (msec) P1 5 2 P2 2 1 P3 3 4 P4 2 2 Η υψηλότερη προτεραιότητα δηλώνεται από το μικρότερο αριθμό στη σχετ ική στήλη. Βρείτε το ΜΧΑ και το ΜΧΔ για τον αλγόριθμο προτεραιοτήτων. Λάβετε υπόψη την υπόδειξη της άσκησης 1. Άσκηση 5 i. Εκτελέστε 20 προσομοιώσεις (New random source) 50 διεργασιών η κάθε μία τους για τον αλγόριθμο χρονοπρογραμματισμού RoundRobin. Καταγράψτε για κάθε προσομοίωση τα στατιστικά εξόδου και συμπληρώστε κατάλληλα το φύλλο εργασίας. ii. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο FCFS. iii. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο SJF. iv. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο SJF (preemptive). v. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο PW. vi. Επαναλάβετε το ερώτημα (i) για τον αλγόριθμο PW (preemptive). v ii. Συνδυάστε όλα τα αποτελέσματα σε κοινό διάγραμμα. Τι παρατηρείτε; Ποιος αλγόριθμος και σε ποιο μετρικό είναι καλύτερος; Συμβαδίζει το αποτέλεσμα με την θεωρία; 8/9

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/er esource/comp/gvr(os)/5.3.htm 3. http://wiki.o sdev.org/scheduling_algorithms 9/9