ΤΕΙ Σερρών, Τµήµα Πληροφορικής & Επικοινωνιών 27/11/2003. Λειτουργικά Συστήµατα. Σπύρος Καζαρλής. Επίκουρος Καθηγητής 1

Σχετικά έγγραφα
Ερµήνευση Boot Sector :

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Διαχείριση Μνήμης

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

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

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

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

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

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

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

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

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

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

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

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

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

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace)


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

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

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

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

Αδιέξοδα (Deadlocks)

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

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

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

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

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

Περιγραφή και Έλεγχος ιεργασιών

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

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

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

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

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

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

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

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

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

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

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

Εικονική Μνήμη (Virtual Μemory)

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

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

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

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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


Εισαγωγή στην Επιστήμη των Υπολογιστών

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Ε-85: Ειδικά Θέµατα Λογισµικού

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΕΠΑΝΑΛΗΨΗ

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

Εξετάσεις Προόδου 8/1/2014 Τεχνικός Εφαρμογών Πληροφορικής (Πολυμέσα/ Web designer - developper/video games)

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

Transcript:

Τι είναι το Λ.Σ. και τι έργο επιτελεί, Οµαδική Επεξεργασία, Πολυπρογραµµατισµός, Καταµερισµός Χρόνου ιεργασίες και ταυτόχρονη εκτέλεση, Μεταγωγή Περιβάλλοντος Ελαφρές διεργασίες νήµατα (threads), απεικόνιση διεργασιώνγράφος προήγησης, κρίσιµα τµήµατα, αµοιβαίος αποκλεισµός. Σηµατοφορείς, Χρονοδροµολόγηση, Αλγόριθµοι (διακοπτοί µη διακοπτοί), Αδιέξοδα, αντιµετώπιση αδιεξόδων. Εικονική µνήµη, τεχνικές διαχείρισης εικονικής µνήµης Συστήµατα αρχείων, αρχεία / κατάλογοι, οργάνωση αρχείων στο δίσκο Ασφάλεια Υπολογιστικών Συστηµάτων, Παράλληλα και Κατανεµηµένα Λειτουργικά Συστήµατα. Το Λειτουργικό Σύστηµα UNIX (case study) Batch Processing, οµαδοποίηση προγραµµάτων και σειριακή εκτέλεση Σειριακή έξοδος των αποτελεσµάτων Ένα πρόγραµµα εκτελείται ανά πάσα στιγµή υποαπασχόληση συσκευών. Χρόνος ανακύκλωσης εύτερη Γενιά Η/Υ (955965). Κατασκευή Η/Υ µε τρανζίστορ. Κάρτες ταινίες εκτυπώσεις χειροκίνητα. Προγραµµατισµός σε συµβολική γλώσσα (assembly) ή FORTRAN. Μηχανές ΙΒΜ 40 και 7094. Σύστηµα µαζικής επεξεργασίας (batch processing system). Αυτόµατη µεταφορά κάρτεςταινίες και ταινίεςεκτυπωτής. Οι πρόγονος των Λ.Σ. : συστήµατα FMS (FORTRAN monitoring system και IBSYS (Λ.Σ. Της IBM για τον 7094) Επίκουρος Καθηγητής

ιαδικασία n... ιαδικασία Batch Processing System Μνήµη ιαδικασία Κεντρική Μονάδα Επεξεργασίας CPU Αποτέλεσµα Λειτουργικό Σύστηµα Αποτέλεσµα... Αποτέλεσµα n Multiprogramming, µείωση του άεργου χρόνου των µονάδων και του χρόνου ανακύκλωσης. Πολλαπλά προγράµµατα στη µνήµη και ταυτόχρονη εκτέλεση, µε παράλληλη απασχόληση των υποµονάδων. Εργασία Εργασία Εργασία Λ.Σύστηµα Τµήµατα µνήµης Χρόνος 4 5 6 7 CPU π π π π π π π ίσκος π π π π Εκτυπ. π π π Το Λ.Σ. γίνεται πλέον ένα πολύπλοκο πρόγραµµα και απασχολεί την CPU σε βάρος των προγραµµάτων Επίκουρος Καθηγητής

Time Sharing. Εξυπηρέτηση πολλών χρηστών από τερµατικά σε πραγµατικό χρόνο, καταµερισµός του χρόνου στους χρήστες και τις διεργασίες τους. Χρονιστής (timer) δηµιουργεί σε τακτά διαστήµατα σήµατα διακοπής. υνατότητα προτεραιοτήτων για εκτέλεση εφαρµογών πραγµατικού χρόνου και χρονοβόρων διαδικασιών. Χρόνος 4 5 6 7 CPU π π π π π π π ίσκος Εκτυπ. π π π π π π Στα σύγχρονα Λ.Σ. συνδυάζονται οι παραπάνω µέθοδοι. Συστήµατα πολυεπεξεργαστών, δίκτυα, κατανεµηµένα συστήµατα. Τα προγράµµατα είναι κώδικας σε γλώσσα µηχανής. Μια εντολή µπορεί να εκτελείται κάθε φορά. Κατανοµή του χρόνου της CPU στα προγράµµατα. Κβάντα χρόνου (time quanta) όπου εκτελείται τµήµα του κάθε προγράµµατος εκ περιτροπής. Αύξηση της απόδοσης του Η/Υ. Μείωση του χρόνου ανακύκλωσης. Καταγραφή της κατάστασης κάθε προγράµµατος. Πρόγραµµα σε εκτέλεση = διεργασία. ιεργασία είναι ένα πρόγραµµα ή αυτόνοµο τµήµα προγράµµατος σε εκτέλεση (ενεργητική οντότητα) Μεταγωγή Περιβάλλοντος. Θέση εντολής προγράµµατος. Κατάσταση CPU, ενδιάµεσα αποτελέσµατα. Process Control Block. Πίνακες διεργασιών Επίκουρος Καθηγητής

Μεταγωγή Περιβάλλοντος από µία διαδικασία P0 σε µία άλλη P : Παράδειγµα τριών προγραµµάτων και των χρονικών τους απαιτήσεων : Πρόγ. Πρόγ. Πρόγ. Σύνολο CPU 7 ίσκος 7 Εκτυπ. 6 Σύνολο Σχεδιάγραµµα εκτέλεσης για ένα Λ.Σ. οµαδικής επεξεργασίας : Χρόνο ς CPU ίσκος Εκτυπ π π π 4 π 5 π 6 π 7 π 8 π 9 π 0 π π π π 7 6 7 0 4 π 5 π 6 π 7 π 8 π 9 π 0 π Αποτελέσµατα Συν.Χρόνος Ανενεργός Τέλος π Τέλος π Τέλος π Οµαδικής Επεξεργασίας 0 40 7 0 Επίκουρος Καθηγητής 4

Σχεδιάγραµµα εκτέλεσης για ένα Λ.Σ. πολυπρογραµµατισµού : Χρόνος CPU ίσκος Εκτυπ π π π π 4 π π 5 π π 6 π π π 7 π π π 8 π π 9 π 0 π π π Σχεδιάγραµµα εκτέλεσης για ένα Λ.Σ. καταµερισµού χρόνου : Χρόνος CPU ίσκος Εκτυπ π π π 4 π 5 π π 6 π π 7 π π π 8 π π 9 π π 0 π π π π π Αποτελέσµατα Συν.Χρόνος Ανενεργός Τέλος π Τέλος π Τέλος π Οµαδικής Επεξεργασίας 0 40 7 0 Πολυπρογραµµατισµού 6 7 8 Καταµερισµού Χρόνου 6 9 To Λ.Σ. Αποτελείται από πολλές διεργασίες που εκτελούνται παράλληλα για εξυπηρέτηση χρηστών και προγραµµάτων. Οι διεργασίες µπορούν επίσης να χωριστούν σε υποτµήµατα ελαφρές διεργασίες ή νήµατα (threads) που µοιράζονται ένα τµήµα µνήµης όπου έχουν όλα πρόσβαση. Thread Control Block. Η µεταγωγή περιβάλλοντος µεταξύ νηµάτων είναι πιό γρήγορη. Επιτάχυνση των διεργασιών. int x,y,sum,diff,prod; void Athroisma () { sum=x+y; } void Diafora () { diff=xy; } void Ginomeno() ( prod=x*y; } Tα προγράµµατα που µπορούν να διαιρεθούν σε νήµατα λέγονται ταυτόχρονα (concurrent) Επίκουρος Καθηγητής 5

ιεργασίες µονού νήµατος (singlethreaded) και πολλαπλών νηµάτων (multithreaded) : Πλεονεκτήµατα των νηµάτων (threads) : Γρήγορη απόκριση λόγω ταχύτερων µεταγωγών περιβάλλοντος Κοινή χρήση πόρων του συστήµατος (µνήµης) Οικονοµία χρόνου και χώρου Κατάλληλα για χρήση σε αρχιτεκτονικές παράλληλων επεξεργαστών Νήµατα χρήστη (user threads) νήµατα πυρήνα (kernel threads) Μοντέλα πολυνηµατικών διεργασιών : Πολλά σε ένα Ένα σε ένα Πολλά σε πολλά User threads User threads User threads kernel thread kernel threads kernel threads Επίκουρος Καθηγητής 6

Γραφική αναπαράσταση ταυτόχρονων προγραµµάτων µε γράφο προήγησης (precedence graph) Κάθε διεργασία αναπαρίσταται µε έναν κόµβο (node). Αν η πρέπει να ολοκληρωθεί για να αρχίσει η, τότε η συνδέεται µε την µε µία κατευθυνόµενη ακµή (directed edge) εν πρέπει να περιέχουν κύκλους (acyclic). Αν περιέχουν τότε είναι αδύνατη η εκτέλεση διεργασιών αδιέξοδο (deadlock). Σε ένα γράφο προήγησης άν δεν υπάρχει µετάβαση από την x στην y τότε οι δύο διεργασίες µπορούν να εκτελεστούν παράλληλα. Η ακολουθιακή εκτέλεση διεργασιών επιτρέπεται µόνο µε την φορά των κατευθυνόµενων ακµών. Παράδειγµα : υπολογισµός της έκφρασης : Α = χ x χ + (χ χ4) / χ5 Μερικά αποτελέσµατα : M = χ x χ χ χ χ χ4 χ5 M = χ χ4 x M = M / χ5 Μ Μ Α = Μ + Μ / + Μ Τα Μ και Μ, όπως και τα Μ και Μ µπορούν να εκτελεστούν ταυτόχρονα. Α Επίκουρος Καθηγητής 7

Στους Η/Υ υπάρχουν πόροι για κοινή χρήση. Η προσπέλαση των πόρων από µία διεργασία µπορεί να επηρεάσει τις άλλες. Οι διεργασίες περιλαµβάνουν «κρίσιµα τµήµατα» (χρήση κοινών πόρων) και µή κρίσιµα τµήµατα. Κρίσιµο τµήµα διεργασίας είναι το τµήµα της που προσπελαύνει πόρους που µπορεί να επηρεάσουν άλλες διεργασίες εν πρέπει δύο διεργασίες να εκτελούν ταυτόχρονα το κρίσιµο τµήµα τους Αµοιβαίος Αποκλεισµός (mutual exclusion) Παράδειγµα Ανάληψης :. Ρώτα τον πελάτη για το ποσό Α. ιάβασε το υπόλοιπο του λογαριασµού Υ. Υπολόγισε το νέο υπόλοιπο Υ =ΥΑ 4. Αποθήκευσε το νέο υπόλοιπο Υ Ώρα ιεργασία Α ιεργασία Β Υπόλοιπο 0:00 Ζήτα ποσό (Α=500) 000 0:0 Ζήτα ποσό (Α=00) 000 0:0 ιάβασε υπόλοιπο (000) 000 0:0 ιάβασε υπόλοιπο (000) 000 0:04 000 500 = 500 000 0:05 000 00 = 800 000 0:06 Αποθήκευσε υπόλοιπο 500 0:07 Αποθήκευσε υπόλοιπο 800 Η ακολουθίες Ανάγνωση υπολοίπου Μεταβολή υπολοίπου Καταχώρηση αποτελούν κρίσιµα τµήµατα των διεργασιών Α και Β και δεν πρέπει να εκτελούνται ταυτόχρονα. Επίκουρος Καθηγητής 8

Μεταβλητή κλειδώµατος. Π.χ. Seira= εκτέλεσε το κρίσιµο τµήµα της Α, Seira= εκτέλεσε το κρίσιµο τµήµα της Β. ιεργασία Α A=DiabasePoso() while (Seira==) do_nothing Y = Y A Seira = DosePoso() Seira = ιεργασία B A=DiabasePoso() while (Seira==) do_nothing Y = Y A Seira = DosePoso() Αν εκτελεστεί η Α και είναι η σειρά της Β αλλά στην A=DiabasePoso() ο πελάτης αργήσει, τότε η Α δεν µπορεί να ξαναεκτελεστεί. Ηλύση του Peterson (98). Προστίθενται µεταβλητές Eisodos και Eisodos. while (Seira== and Eisodos) do_nothing Y = Y A Eisodos = false DosePoso() ιεργασία Α A=DiabasePoso() Eisodos = true, Seira = ιεργασία B A=DiabasePoso() Eisodos = true, Seira = while (Seira== and Eisodos) do_nothing Y = Y A Eisodos = false DosePoso() Αν είναι η σειρά της Β αλλά δεν είναι έτοιµη (Eisodos=false) τότε η Α µπαίνει στο κρίσιµο τµήµα της αποκλείοντας την Β. Αν οι Α και Β είναι ταυτόχρονα έτοιµες η σειρά τους καθορίζεται από την Seira. Επίκουρος Καθηγητής 9

Οι προηγούµενες λύσεις δεν είναι αποδεκτές γιατί :. Προσθέτουν πολλές µεταβλητές και αυξάνουν την πολυπλοκότητα. εν επεκτείνονται εύκολα για πάνω από διεργασίες Παράδειγµα Ανελκυστήρα. Χρήση ανελκυστήρα = διεργασία σε κρίσιµο τµήµα. Όταν χρησιµοποιείται ανάβει ένδειξη «κατειληµµένος». Όταν ελευθερωθεί σβήνει η ένδειξη. Ο πρώτος που θα πατήσει το κουµπί καλεί τον ανελκυστήρα. Οι ένοικοι (διεργασίες) µπορεί να βρίσκονται σε καταστάσεις :. Περιµένουν να σβήσει η ένδειξη «κατειληµµένος» και πατούν το κουµπί κλήσης.. Ελευθερώνουν τον ανελκυστήρα (τέλος κρίσιµου τµήµατος) και η ένδειξη σβήνει. Σηµατοφορέας = µεταβλητή µε ακέραιες τιµές 0 ή (ένδειξη «κατειληµµένος» αναµµένη ή σβηστή). ιεργασία Α A=DiabasePoso() Περίµενε (σηµατοφορέα) P Y = Y A Ελευθέρωσε (σηµατοφορέα) V DosePoso() ιεργασία B A=DiabasePoso() Περίµενε (σηµατοφορέα)p Y = Y A Ελευθέρωσε (σηµατοφορέα) V DosePoso() Οι λειτουργίες P και V εκτελούνται αδιαίρετα (atomic actions). Πρόβληµα : όταν ο σηµατοφορέας είναι κατειληµµένος οι άλλες διεργασίες σπαταλούν χρόνο CPU στις διαδικασίες P. Υλοποίηση σηµατοφορέων µε λίστες αναµονής (waiting lists) Επίκουρος Καθηγητής 0

Κάθε σηµατοφορέας έχει µία λίστα αναµονής όπου καταχωρούνται οι διεργασίες που περιµένουν την ελευθέρωση του σηµατοφορέα, και είναι ανενεργές (blocked). Όταν ελευθερωθεί ο σηµατοφορέας, το Λ.Σ. επιλέγει την πρώτη διεργασία στη λίστα και την κάνει εκτελέσιµη. Λειτουργία P : Αν ο σηµατοφορέας είναι ελεύθερος καταλαµβάνεται, αλλιώς η διεργασία καταγράφεται στην λίστα αναµονής και απενεργοποιείται (blocked). Λειτουργία V : όταν ελευθερώνεται ο σηµατοφορέας, το Λ.Σ. εξετάζει τη λίστα αναµονής, λαµβάνει την πρώτη κατά σειρά διεργασία και την κάνει εκτελέσιµη. Οι λίστες αναµονής υλοποιούνται ως ουρές (queues) FIFO. Οι διεργασίες που δεν περιµένουν κανένα σηµατοφορέα καταχωρούνται σε ξεχωριστή λίστα Έτοιµων ιεργασιών (Ready List RL). Εκτελούµενη (Running) Η διεργασία απασχολεί την CPU. Έτοιµη ή Εκτελέσιµη (Ready ή Runnable) Η διεργασία δεν περιµένει σηµατοφορέα ή ο σηµατοφορέας είναι ελεύθερος. Καταχωρείται στη λίστα έτοιµων διεργασιών RL και εκτελούνται µε τη σειρά. Υπό αναστολή (Blocked) Η διεργασία περιµένει στην λίστα αναµονής κάποιου σηµατοφορέα. Λίστα έτοιµων διεργασιών Εκτελούµενη Λίστες σηµατοφορέων Επίκουρος Καθηγητής

Το τµήµα του Λ.Σ. που αναλαµβάνει την εναλλαγή διεργασιών προς εκτέλεση στον επεξεργαστή (CPU scheduling). Η µέθοδος χρονοδροµολόγησης είναι σηµαντική για την απόδοση του συστήµατος και πρέπει να ικανοποιεί τα παρακάτω κριτήρια : ικαιοσύνη (fairness) : κάθε διεργασία λαµβάνει δίκαιο ποσοστό χρήσης της CPU. Αποδοτικότητα (efficiency) : η CPU πρέπει να είναι απασχοληµένη για το 00% του χρόνου. Χρόνος απόκρισης (response time) : ελαχιστοποίηση του χρόνου απόκρισης του συστήµατος για διαλογικούς χρήστες (interactive users) Κύκλος διεκπεραίωσης (turnaround time) : ελαχιστοποίηση του χρόνου ολοκλήρωσης των διεργασιών και διάθεσης των αποτελεσµάτων. Χρόνος αναµονής (waiting time) : ελαχιστοποίηση του χρόνου που οι διεργασίες είναι ανενεργές. Ρυθµός απόδοσης (throughput) : µεγιστοποίηση του αριθµού των διεργασιών που επεξεργάζονται στη µονάδα του χρόνου. Συνήθως χρησιµοποιούνται δύο επίπεδα χρονοδροµολόγησης :. Επιλογή διεργασιών από το δίσκο για προώθηση στην µνήµη του Η/Υ (µετάπτωση σε εκτελέσιµες και προώθηση στη λίστα έτοιµων διεργασιών). Μακροχρόνιος χρονοδροµολογητής (long term ή job scheduler). Εκτελείται αραιά και µπορεί να είναι σχετικά αργός.. Εκ περιτροπής επιλογή από αυτές για εκτέλεση στην CPU (µετάπτωση σε εκτελούµενη). Βραχυχρόνιος χρονοδροµολογητής (short term ή CPU scheduler). Εκτελείται συχνά (κάθε ~0 msec) και πρέπει να είναι γρήγορος. Μπορεί να χρησιµοποιηθεί και ενδιάµεσο επίπεδο Μεσοχρόνιος χρονοδροµολογητής (mid term scheduler), ελέγχει τη λίστα έτοιµων διεργασιών και διακόπτει ή επαναφέρει σε αυτήν διεργασίες, χρησιµοποιώντας µία επιπλέον λίστα µε διακοπείσες διεργασίες. Επίκουρος Καθηγητής

Προσωρινά διακοπείσες διεργασίες Μεσοχρόνιος Χρονοδροµολογητής Λίστα έτοιµων διεργασιών Βραχυχρόνιος Χρονοδροµολογητής CPU Εκτελούµενη Μακροχρόνιος Χρονοδροµολογητής HDD Λίστες σηµατοφορέων Ηζωή µίας διεργασίας είναι ένας κύκλος από περιόδους εκτέλεσης και περιόδους αναµονής. Κάθε συνεχόµενη περίοδος εκτέλεσης ονοµάζεται «έκρηξη ΚΜΕ» (CPU burst). Η περίοδος εκτέλεσης λειτουργιών Εισόδου/Εξόδου ονοµάζεται «έκρηξη εισόδου/εξόδου» (I/O burst). Οι εκρήξεις ΚΜΕ και εισόδου/εξόδου µπορεί να έχουν διαφορετική διάρκεια. Συνήθως πολλές µικρής διάρκειας και λίγες µεγάλης διάρκειας. ιεργασίες που χρειάζονται περισσότερο την CPU ονοµάζονται «περιορισµένες από CPU» (CPU bound), ενώ αυτές που χρειάζονται περισσότερο είσοδο/έξοδο ονοµάζονται «περιορισµένες από είσοδο/έξοδο» (I/O bound). Ο µακροχρόνιος χρονοδροµολογητής πρέπει να επιλέγει διεργασίες και των δύο ειδών ώστε να µην υποαπασχολείται ούτε η CPU ούτε οι µονάδες εισόδου/εξόδου. Επίκουρος Καθηγητής

Σε κάθε επίπεδο µπορεί να χρησιµοποιείται διαφορετικός αλγόριθµος. Ο αλγόριθµος χρονοδροµολόγησης πρέπει να ικανοποιεί τα κριτήρια απόδοσης και να είναι γρήγορος. Λαµβάνει υπόψιν δεδοµένα όπως :. Συνολικός αριθµός διεργασιών προς εκτέλεση. Την κατάσταση των πόρων του συστήµατος (αριθµός διαθέσιµων επεξεργαστών, µέγεθος µνήµης, µονάδες εισόδου/εξόδου κ.λ.π.). Το είδος των διεργασιών (CPU bound, I/O bound) 4. Τις απαιτήσεις των διεργασιών σε πόρους (CPU, Ι/Ο, µνήµη,...) 5. Την ύπαρξη και τον αριθµό διαδραστικών χρηστών. 6. Την προτεραιότητα των διεργασιών (administrator users) 7. Τα δικαιώµατα και τους περιορισµούς των ιδιοκτητών των διεργασιών Σε σχέση µε την διαχείριση διεργασιών : Μή διακοπτοί (non preemptive) : κάθε εκτελούµενη διεργασία ολοκληρώνεται ή διακόπτεται για είσοδο/έξοδο. ιακοπτοί (preemptive) : κάθε διεργασία εκτελείται στην CPU για ένα κβάντο χρόνου και µετά διακόπτεται για να συνεχίσει µία άλλη είτε έχει ολοκληρωθεί είτε όχι. Σε σχέση µε το υλικό : Αλγόριθµοι ενός επεξεργαστή (single processor schedulers) Αλγόριθµοι πολλών επεξεργαστών (multi processor schedulers), οµοιογενείς/ανοµοιογενείς CPU, χαλαρή/στενή σύνδεση, master/slave, πολλαπλών αντιγράφων του Λ.Σ., κατανεµηµένου Λ.Σ. Επίκουρος Καθηγητής 4

FirstComeFirstServed (FCFS) : Οι διεργασίες εισάγονται σε ουρά FIFO και εκτελούνται µε την σειρά. Κάθε νέα διεργασία που εισέρχεται στην λίστα RL τίθεται στο τέλος της ουράς. Χαµηλή απόδοση καθώς µπορεί διεργασίες µε µικρές εκρήξεις ΚΜΕ να περιµένουν πολλή ώρα. Απλή µέθοδος, εύκολη στην υλοποίηση και πολύ γρήγορη Παράδειγµα : ( ιεργ. : άφιξη/διάρκεια), δ:0/, δ:6/, δ:8/, δ4:4/ 0 0 0 40 50 60 δ δ δ 6 δ4 5 Μέσος χρόνος αναµονής = (0+6+5+)/4 = 8.5 Μέσος χρόνος απόκρισης = ( + 6+ + 5+ + +)/4=.5 Shortest Job First (SJF) : κατατάσσει τις διεργασίες κατά αύξουσα σειρά διάρκειας. Πρώτα εκτελείται η συντοµότερη και τελευταία η πιό µεγάλη. Κάθε νέα διεργασία που εισέρχεται στην λίστα RL τίθεται στην κατάταξη ανάλογα µε την διάρκειά της. Βέλτιστος ως προς τον χρόνο αναµονής. υσκολία στην εκτίµηση της διάρκειας ανώτατα όρια από τους χρήστες δυσκολία εκτίµησης έκρηξης ΚΜΕ από τον βραχυχρόνιο χρονοδροµολογητή 0 0 0 40 50 60 δ δ 0 δ δ4 4 Μέσος χρόνος αναµονής = (0+0+4+)/4 = 6.5 Μέσος χρόνος απόκρισης = ( + 0+ + 4+ + +)/4=0.5 Επίκουρος Καθηγητής 5

Highest Responseratio First (HRF) : λόγος απόκρισης = χρόνος απόκρισης/χρόνος εκτέλεσης = (χρόνος αναµονής+χρόνος εκτέλεσης) / χρόνος εκτέλεσης = +(χρόνος αναµονής/χρόνος εκτέλεσης). Όταν τελειώνει η δ, η δ έχει αναµονή 6 και λ.α.=+6/=.9, και η δ έχει αναµονή 4 και λ.α.=+4/=. και επιλέγεται. Όταν τελειώσει, η δ έχει αναµονή 9 και λ.α.=+9/=.9, και η δ4 έχει αναµονή και λ.α. +/=.09, επιλέγεται η δ. 0 0 0 40 50 60 δ δ δ 9 δ4 4 Μέσος χρόνος αναµονής = (0+9+4+)/4 =.5 Μέσος χρόνος απόκρισης = ( + 9+ + 4+ + +)/4=5.5 Οι προηγούµενοι αλγόριθµοι είναι υποπεριπτώσεις ενός γενικότερου αλγόριθµου που είναι η εξυπηρέτηση µε βάση την προτεραιότητα. Σε κάθε διεργασία ανατίθεται µία τιµή προτεραιότητας. Αυτή µε την µεγαλύτερη προτεραιότητα εξυπηρετείται πρώτη. Αν διεργασίες έχουν την ίδια προτεραιότητα εξυπηρετείται η παλαιότερη.. Εξυπηρέτηση µε σειρά άφιξης (FCFS) : όλες οι προτεραιότητες είναι ίσες µε, άρα έχουµε εξυπηρέτηση µε τη σειρά άφιξης.. Εξυπηρέτηση µε βάση τη διάρκεια (SJF) : προτεραιότητα = /διάρκεια.. Εξυπηρέτηση µε βάση το λόγο απόκρισης (HRF) : προτεραιότητα = λόγος απόκρισης. Στατικές προτεραιότητες (FCFS, SJF) γρήγορες στον υπολογισµό. υναµικές προτεραιότητες (HRF), προκαλούν επιβάρυνση χρόνου. Εσωτερικές προτεραιότητες Εξωτερικές προτεραιότητες Το πρόβληµα της µήεξυπηρέτησης διεργασιών χαµηλής προτεραιότητας και οι τεχνικές Ηλικίωσης (aging). p=(αναµ/64) (6εκτέλ+γρ.εκτ) Επίκουρος Καθηγητής 6

Preemptive scheduling : οι διεργασίες δεν καταλαµβάνουν την CPU για όλη τη διάρκεια της έκρηξης ΚΜΕ. Το Λ.Σ. µπορεί να τις διακόπτει και να παραχωρεί τη CPU σε άλλες διεργασίες. ιακοπή γίνεται αν εισέλθει διεργασία µεγαλύτερης προτεραιότητας ή όταν ξεπεραστεί το κβάντο χρόνου. ιανεµητής Dispatcher : Ο µηχανισµός που διακόπτει µία διεργασία και ξεκινά µία άλλη. Καθυστέρηση ιανεµητή (Dispatch latency) ο χρόνος που καταναλώνεται κατά την εναλλαγή. Αυξάνει την διαδραστικότητα του Λ.Σ. µε τους συνδεδεµένους χρήστες. Πετυχαίνει καλύτερους µέσους χρόνους αναµονής και απόκρισης. Αυξάνει την πολυπλοκότητα των χρονοδροµολογητών. ιακοπτοί αλγόριθµοι χρονοδροµολόγησης :. ιακοπτή Εξυπηρέτηση µε βάση τη ιάρκεια (Preemptive SJF).. Χρονοδροµολόγηση Κυκλικής Επαναφοράς (Round RobinRR).. Ουρές Ανατροφοδότησης Πολλαπλών Επιπέδων. Κάθε φορά που µία νέα διεργασία εισέρχεται στην RL ελέγχεται αν η έκρηξη ΚΜΕ που θα εκτελέσει είναι µικρότερη από τον χρόνο εκτέλεσης που αποµένει στην εκτελούµενη διεργασία. Αν ναι τότε αυτή που εκτελείται διακόπτεται και µπαίνει στην RL. Η νέα διεργασία γίνεται εκτελούµενη. Όταν µία διεργασία ολοκληρωθεί, επιλέγεται από την RL η διεργασία µε την συντοµότερη έκρηξη ΚΜΕ (όπως και στον µηδιακοπτό). 0 0 0 40 50 60 δ 8 4 δ 0 δ δ4 Μέσος χρόνος αναµονής = (+0+0+)/4 = 6 καλύτερος και από τον SJF Μέσος χρόνος απόκρισης = (+ + 0+ + 0+ + +)/4=0.5 Επίκουρος Καθηγητής 7

Σε περιπτώσεις µή ύπαρξης ανώτατων ορίων χρόνου εκτέλεσης ανά διεργασία γίνεται εκτίµηση της διάρκειας εκτέλεσης. Χρησιµοποιούνται οι διάρκειες των προηγούµενων διεργασιών και η εκτίµηση γίνεται µε τη µέθοδο του exponential averaging. Tn είναι ο πραγµατικός χρόνος εκτέλεσης της nοστής διεργασίας. Εn ο χρόνος εκτίµησης της nοστής διεργασίας, En+ η εκτίµηση για την επόµενη διεργασία. Εn+ = αtn + (α)εn, 0 α Για α=0, En+ = En (Η ιστορία δεν λαµβάνεται υπ όψιν) Για α=, En+ = Tn (Λαµβάνεται υπ όψιν µόνο η τελευταία διεργασία) Σε ανάπτυξη : En+=αTn+(α)αΤn+...+(α) j ατnj+ +(α) n+ E0 διάρκεια Ei Ti χρόνος Οι εκρήξεις ΚΜΕ ακολουθούν συνήθως την παρακάτω κατανοµή (πολλές µε µικρή διάρκεια και λίγες µε µεγάλη διάρκεια). Επίκουρος Καθηγητής 8

Round Robin RR : Ειδικός για συστήµατα καταµερισµού χρόνου µε κβάντα χρόνου ~ 0msec 00msec. Όταν η εκτελούµενη καταναλώσει ένα κβάντο χρόνου διακόπτεται και τοποθετείται στο τέλος της RL. Λαµβάνεται η πρώτη διεργασία της RL και προωθείται στην CPU. Αν µία διεργασία ολοκληρωθεί πριν το πέρας του κβάντου χρόνου, επιλέγεται αµέσως η επόµενη διεργασία. Αν υπάρχει µόνο µία διεργασία της παραχωρούνται διαδοχικά κβάντα χρόνου µέχρι τέλους. 0 0 0 40 50 60 δ 0 δ 5 5 5 5 δ 4 δ4 7 5 5 Μέσος χρόνος αναµονής = (8+0+7+)/4 = 4 αρκετά µεγάλος. Μέσος χρόνος απόκρισης = (8+ + 0+ + 7+ + +)/4=8.5 Μεγάλοι µέσοι χρόνοι αναµονής και απόκρισης αλλά αύξηση της διαδραστικότητας. Η επίδοση του Round Robin επηρεάζεται πολύ από την επιλογή της διάρκειας του κβάντου χρόνου. Αν το κβάντο χρόνου είναι µεγάλο τότε εκφυλίζεται στον αλγόριθµο µε βάση τη σειρά άφιξης FCFS. Αν είναι πολύ µικρό τότε γίνονται πολλές εναλλαγές µεταξύ διεργασιών (µεταγωγές περιβάλλοντος) που επιβαρύνουν το σύστηµα σε χρόνο. Θα πρέπει να έχει µία κατά το δυνατό βέλτιστη ενδιάµεση τιµή. Πρακτικός κανόνας : το 80% των εκρήξεων ΚΜΕ των διαφόρων διεργασιών θα πρέπει να είναι µικρότερο από το κβάντο χρόνου. Επίκουρος Καθηγητής 9

χρόνος Μέσος χρόνος απόκρισης Χρονική επιβάρυνση λόγω εναλλαγής διεργασιών βέλτιστη τιµή κβάντο χρόνου Όσο αυξάνει το κβάντο χρόνου τόσο µειώνεται η επιβάρυνση λόγω εναλλαγής διεργασιών. Ο µέσος χρόνος απόκρισης παρουσιάζει ένα ελάχιστο για µία τιµή κβάντου. Μετά αυξάνεται λόγω αύξησης των χρόνων αναµονής. Πρέπει να ευνοούνται οι σύντοµες διεργασίες, και να επιλέγονται πιό συχνά για εκτέλεση. Μία τεχνική που το επιτυγχάνει είναι οι Ουρές Ανατροφοδότησης Πολλαπλών Επιπέδων. Αντί για µία RL υπάρχουν Ν λίστες διαβαθµισµένες σε επίπεδα. Επίπεδο 0 Επίπεδο Επίπεδο... CPU Επίπεδο Ν Επίκουρος Καθηγητής 0

Κάθε νέα διεργασία τοποθετείται στο τέλος της ουράς του επιπέδου 0. Όταν έρθει η σειρά της για εκτέλεση, προωθείται στην CPU για ένα κβάντο χρόνου. Αν δεν ολοκληρωθεί, διακόπτεται και προωθείται στο τέλος της ουράς όχι του ίδιου επιπέδου αλλά ενός επιπέδου παρακάτω. Η διαδικασία επαναλαµβάνεται για όλες τις διεργασίες του επιπέδου 0. Οι διεργασίες των άλλων επιπέδων αναµένουν. Όταν αδειάσει η λίστα επιπέδου 0, λαµβάνεται η διεργασία στην κορυφή της λίστας του επιπέδου. Αν δεν ολοκληρωθεί για ένα κβάντο χρόνου τότε διακόπτεται και πηγαίνει στο τέλος της λίστας επιπέδου. κ.ο.κ. Για να εκτελεστεί µία διεργασία στο επίπεδο I θα πρέπει να είναι άδειες οι λίστες των επιπέδων 0 έως Ι. Αν δεν ολοκληρωθεί υποπίπτει στο επίπεδο Ι+. Οι διεργασίες του τελευταίου επιπέδου (Ν) ξαναγυρνούν στο τέλος της ουράς του ίδιου επιπέδου (Round Robin). Οι διεργασίες των ανώτερων επιπέδων έχουν απόλυτη προτεραιότητα σε σχέση µε αυτές των κατώτερων. Μία διεργασία µπορεί να διακοπεί αν εισέλθει µία νέα σε ανώτερο από αυτήν επίπεδο. Όσο περισσότερο χρόνο απαιτεί µία διεργασία για να ολοκληρωθεί τόσο θα υποβιβάζεται σε λίστες χαµηλότερου επιπέδου και θα έχει λιγότερες πιθανότητες να εκτελεστεί σύντοµα. Για αντιστάθµιση το κβάντο χρόνου µεγαλώνει καθώς πηγαίνουµε σε χαµηλότερα επίπεδα. Μικρές διεργασίες εκτελούνται µε µικρά κβάντα χρόνου και συχνά. Μεγάλες διεργασίες εκτελούνται αραιά αλλά για µεγαλύτερα κβάντα χρόνου, έχοντας την ευκαιρία έτσι να ολοκληρωθούν. ιεργασίες I/O bound εισέρχονται στο επίπεδο 0, εξυπηρετούνται γρήγορα και συνεχίζουν µε εκρήξεις Ι/Ο. Μικρός χρόνος απόκρισης και καλή χρησιµοποίηση των Ι/Ο. Οι CPU bound διεργασίες διαχωρίζονται σε επίπεδα ανάλογα µε την διάρκειά τους. Αυτόµατη κατηγοριοποίηση των διεργασιών ανάλογα µε την διάρκεια. Επίκουρος Καθηγητής

Ανάλυση της συµπεριφοράς του αλγορίθµου για συγκεκριµένο φορτίο ντετερµινιστική µοντελοποίηση (deterministic modeling). Τα αποτελέσµατα που παίρνουµε είναι εξαρτώµενα από το φορτίο διεργασιών και είναι περιορισµένης χρησιµότητας. Ανάπτυξη πιθανοτικών µοντέλων για την διερεύνηση των ιδιοτήτων των αλγορίθµων. Καθορισµός χαρακτηριστικών : συνάρτηση πυκνότητας πιθανότητας για τον χρόνο ανάµεσα σε αφίξεις διεργασιών, διάρκεια διεργασιών,... Ανάλυση πιθανοτικού µοντέλου για χρονοδροµολόγηση µε τον FCFS σε ένα σύστηµα µε πολλούς επεξεργαστές. CPU Άφιξη διεργασιών Με ρυθµό λ RL άπειρης χωρητικότητας CPU CPU k Η µέση τιµή των εκρήξεων ΚΜΕ των διεργασιών είναι /µ. Ο µέσος χρόνος ανάµεσα σε δύο αφίξεις είναι /λ. λ=µέσος ρυθµός αφίξεων. Υποθέτουµε ότι οι διάρκειες των εκρήξεων ΚΜΕ και οι χρόνοι άφιξης ακολουθούν εκθετική κατανοµή f(x)=ae ax. Αν w είναι ο µέσος χρόνος αναµονής και n ο µέσος αριθµός διεργασιών τότε n=λw (ισότητα του Little). Αν u=λ/µ είναι η «κυκλοφοριακή ένταση» του συστήµατος τότε ο βαθµός χρησιµοποίησης επεξεργαστών είναι ρ=u/k. O µέσος χρόνος απόκρισης R(ρ,u) υπολογίστηκε από τον Kleinrock µε βάση την θεωρία πιθανοτήτων ως: C(ρ,u) είναι ο τύπος του Erlang: C( ρ, u) R( ρ, u) = + µ k ( ρ) µ C( ρ, u) = u k + k! u k k ( ρ) m= m u 0 m! Επίκουρος Καθηγητής

Σε συστήµατα πολλών παράλληλων επεξεργαστών η χρονοδροµολόγηση είναι πιό πολύπλοκη και δύσκολη. Λαµβάνονται υπ όψιν : Αριθµός επεξεργαστών, οµοιογενής / ανοµοιογενής διάταξη, βαθµός σύνδεσης (χαλαρή σύνδεση στενή σύνδεση). Τρείς διαφορετικοί τρόποι χρονοδροµολόγησης : Κύριου/ ούλου (master/slave) : Ενας επεξεργαστής είναι υπεύθυνος για την διαχείριση του συστήµατος (master) και εκτελεί τον αλγόριθµο χρονοδρ/σης για τους υπόλοιπους επεξεργαστές (slaves). Ο master εκτελεί το Λ.Σ. χειρίζεται τις ουρές διεργασιών, την µνήµη κ.λ.π. Έλλειψη αξιοπιστίας σε περίπτωση βλάβης του master. Πολλαπλών αντιγράφων του Λ.Σ. : κάθε επεξεργαστής τρέχει ένα Λ.Σ. Κοινή µνήµη, κοινοί και µη κοινοί πίνακες διεργασιών και ουρές. Προβλήµατα ακεραιότητας και συγχρονισµού. Κατανεµηµένου Λ.Σ. : το Λ.Σ. βρίσκεται σε κοινή µνήµη και είναι reentrable. Οι πίνακες και ουρές είναι κοινές. Κάθε CPU εκτελεί χρονοδροµολόγηση διεργασιών. Η διεργασία µπορεί να ανατίθεται σε διαφορετική CPU κάθε φορά. Συµµετρικό φορτίο, αξιοπιστία, προβλήµατα συγκρούσεων και αδιεξόδων στην κοινή µνήµη. RealTime Scheduling : χρησιµοποιείται σε συστήµατα πραγµατικού χρόνου όπου οι διεργασίες πρέπει να ολοκληρώνονται σε σαφή χρονικά περιθώρια (έλεγχος πραγµατικού χρόνου, Συστήµατα Αυτοµάτου Ελέγχου, βιοµηχανία, ροµποτική, κ.λ.π.) Hard RealTime Systems : απαιτούν την ολοκλήρωση διεργασιών σε ένα συγκεκριµένο χρονικό όριο. Soft RealTime Computing : έχουν ελαστικότερα χρονικά περιθώρια και απαιτούν οτι οι κρίσιµες διεργασίες θα έχουν αυξηµένη προτεραιότητα σε σχέση µε τις µη κρίσιµες. Χρήση σε Multimedia, ιαδραστικά γραφικά υψηλής ταχύτητας, Τηλεσυνδιάσκεψη, Games, κ.λ.π. Χρονοδροµολόγηση στο UNIX : Πολλαπλές Ουρές (). Τιµές προτεραιότητας διεργασιών (0..7). ιεργασίες πυρήνα (0..49) µή διακοπτές. ιεργασίες χρηστών (50..7) διακοπτές. Επιλέγεται από την κορυφαία µήάδεια ουρά η διεργασία υψηλότερης προτεραιότητας και εκτελείται µε κβάντο χρόνου ~00msec. Αλγόριθµος Round Robin σε κάθε ουρά. Κάθε δευτερόλεπτο αυξάνονται οι προτεραιότητες των διεργασιών. Επίκουρος Καθηγητής

Σε ένα περιβάλλον πολυπρογραµµατισµού πολλές διεργασίες εκτελούνται παράλληλα και απαιτούν πόρους (resources) για την λειτουργία τους. Οι πόροι του συστήµατος (επεξεργαστική ισχύς, µνήµη, θύρες Ι/Ο, χώρος στο δίσκο) είναι πεπερασµένοι. Είναι δυνατόν µία διεργασία να περιµένει να χρησιµοποιήσει κάποιον πόρο ενώ ήδη έχει δεσµεύσει κάποιους άλλους πόρους. Αν µία διεργασία κατέχει τον πόρο Α και ζητά τον πόρο Β, ενώ µία άλλη διεργασία κατέχει τον πόρο Β και ζητά τον πόρο Α το σύστηµα περιέρχεται σε αδιέξοδο, και δεν µπορεί να συνεχίσει. Αδιέξοδο (deadlock) : όταν µία διεργασία περιµένει για ένα συγκεκριµένο αγαθό το οποίο όµως είναι δεσµευµένο και δεν µπορεί να ελευθερωθεί για λόγους που εµπλέκουν και την ίδια τη διεργασία. Το Λ.Σ. πρέπει να παραχωρεί τους πόρους κατά τέτοιο τρόπο ώστε να αποφεύγονται οι καταστάσεις αδιεξόδων. Αν όµως προκληθούν θα πρέπει το Λ.Σ. να επιλύει τα αδιέξοδα. Α. Πρόληψη : το Λ.Σ. λειτουργεί µε κατάλληλους κανόνες και απαγορεύσεις για την παραχώρηση και χρήση των αγαθών έτσι ώστε να µην υπάρχει πιθανότητα δηµιουργίας αδιεξόδου.. Αποφυγή : Το Λ.Σ. εξετάζει συνέχεια τις διεργασίες και τις απαιτήσεις τους σε πόρους, ώστε να διαπιστώσει άν βρίσκονται σε «ασφαλή κατάσταση». Ένα σύνολο διεργασιών είναι σε ασφαλή κατάσταση όταν υπάρχει ένα σαφές σενάριο παραχώρησης πόρων προς αυτές ώστε να ικανοποιηθούν οι απαιτήσεις τους και να ολοκληρωθούν κανονικά.. Ανίχνευση : Σε τακτά χρονικά διαστήµατα το Λ.Σ. ελέγχει αν µία ή περισσότερες διεργασίες είναι σε αδιέξοδο και δεν µπορούν να συνεχίσουν. 4. Ανάνηψη : Αν συµβεί αδιέξοδο, το Λ.Σ. φροντίζει για την εξάλειψή του και την κανονική συνέχιση των διεργασιών. Β Αµοιβαίο Αδιέξοδο των και Επίκουρος Καθηγητής 4

Ηπρόληψη αδιεξόδων γίνεται µε τοποθέτηση κανόνων µε περιορισµούς και απαγορεύσεις στη χρήση αγαθών. Συνθήκες δηµιουργίας αδιεξόδων Coffman (97) :. Κάθε αγαθό είτε είναι δεσµευµένο είτε διαθέσιµο (αµοιβ.αποκλεισµός). Συνθήκη «Κράτησης και Αναµονής» : µία διεργασία έχει δεσµεύσει ένα αγαθό και περιµένει για την απελευθέρωση κάποιου άλλου.. Οι πόροι µίας διεργασίας µπορούν να αποδεσµευτούν µόνο απ την ίδια 4. Συνθήκη «Κυκλικής Αναµονής Αγαθών» : σε µία οµάδα διεργασιών υπάρχει αλυσιδωτή αναµονή αγαθών και η τελευταία περιµένει την απελευθέρωση του αγαθού που έχει δεσµεύσει η πρώτη. Β Γ Α 4 Μέθοδοι πρόληψης αδιεξόδων :. Αναίρεση αµοιβαίου αποκλεισµού ετεροχρονισµός συσκευών (spool). έσµευση αγαθών από την αρχή : Κατά την εκκίνησή της κάθε διεργασία δεσµεύει όλα τα αγαθά που θα χρησιµοποιήσει. Αν δεν µπορέσει να δεσµεύσει έστω και ένα, τότε αναστέλλεται και απελευθερώνει όλα τα αγαθά που είχε δεσµεύσει.. Απελευθέρωση αγαθών και επαναδέσµευση : Το Λ.Σ. επιτρέπει σε µία διεργασία να ζητήσει την παραχώρηση αγαθών µόνο όταν η ίδια δεν κατέχει κανένα αγαθό. Αν µία διεργασία ήδη κατέχει κάποια αγαθά και χρειάζεται και άλλα τότε απελευθερώνει όσα ήδη κατείχε και τα ξαναζητά όλα µαζί (παλαιά και νέα) από το Λ.Σ. 4. Ταξινόµηση των αγαθών : Τα αγαθά του συστήµατος ταξινοµούνται µε κάποια σειρά (π.χ. Α, Α, Α, Α4, Αν) και αν µία διεργασία δεσµεύσει ένα αγαθό Ακ µπορεί µετέπειτα να ζητήσει για δέσµευση αγαθά µε αριθµό µεγαλύτερο του κ. εν επιτρέπεται να ζητήσει για δέσµευση αγαθά από Α0 Ακ. Με αυτό τον τρόπο αποφεύγονται οι συνθήκες κυκλικής αναµονής αγαθών. Επίκουρος Καθηγητής 5

Το Λ.Σ. γνωρίζοντας τις απαιτήσεις κάθε διεργασίας σε πόρους µπορεί να εφαρµόζει ένα αλγόριθµο παραχώρησης αγαθών στις διεργασίες µε συγκεκριµένη σειρά ώστε να αποφεύγονται τα αδιέξοδα. Αν υπάρχει τέτοιο σενάριο παραχώρησης αγαθών τότε το σύστηµα είναι σε «ασφαλή κατάσταση» (safe state). Ασφαλής κατάσταση : υπάρχει τουλάχιστον µία συγκεκριµένη σειρά παραχώρησης αγαθών στις διεργασίες, ώστε να ικανοποιηθούν όλες και να ολοκληρωθούν χωρίς να υπάρξει αδιέξοδο. Συµπεριφορά Λ.Σ. : κάθε φορά που µία διεργασία ζητά την δέσµευση ενός αγαθού που είναι ήδη ελεύθερο, το Λ.Σ. ελέγχει άν µετά την παραχώρηση του αγαθού, το σύστηµα εξακολουθεί να είναι σε «ασφαλή κατάσταση». Αν δεν είναι τότε η παραχώρηση αναβάλλεται. Όταν απελευθερώνεται ένα αγαθό που ζητείται από έναν αριθµό διεργασιών, το Λ.Σ. ελέγχει ποιές από τις διεργασίες θα αφήσουν το σύστηµα σε ασφαλή κατάσταση µετά από την παραχώρηση, και επιλέγει µία από αυτές. Παράδειγµα : Έστω ότι υπάρχουν αγαθά ίδιου τύπου διαθέσιµα και διεργασίες : η δ απαιτεί συνολικά 4 αγαθά και έχει ήδη πάρει, η δ απαιτεί 6 αγαθά και έχει πάρει 4 και η δ απαιτεί 9 αγαθά και έχει πάρει 5. Έτσι µένουν 45= αγαθά ελεύθερα. Το Λ.Σ. προσπαθεί να καταρτίσει µία ακολουθία απόδοσης αγαθών που να ικανοποιεί τις απαιτήσεις των διεργασιών και να µην προκαλεί αδιέξοδο. Σε κάθε βήµα ελέγχεται άν το σύστηµα είναι σε ασφαλή κατάσταση. Αλγόριθµος απόδοσης αγαθών (σε ασφαλή κατάσταση) : Τα δύο ελεύθερα αγαθά αποδίδονται στην δ που µπορεί έτσι να ολοκληρωθεί. Με την ολοκλήρωση της δ απελευθερώνονται 6 αγαθά. από αυτά θα δοθούν στη δ η οποία και θα ολοκληρωθεί. Με την ολοκλήρωση της δ απελευθερώνονται 4 αγαθά που µε τα ήδη ελεύθερα φτάνουν τα 7. 4 από αυτά παραχωρούνται στην δ η οποία επίσης ολοκληρώνεται. Επίκουρος Καθηγητής 6