«ροµολόγηση ιεργασιών (2/2): Οργάνωση Επεξεργαστών και ιεργασιών (β)»



Σχετικά έγγραφα
Οργάνωση επεξεργαστών και διεργασιών

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 6: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κινητά και Διάχυτα Συστήματα. Ενότητα # 10: Κατανομή φόρτου Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

«ροµολόγηση ιεργασιών (2/2): Οργάνωση Επεξεργαστών και ιεργασιών (α)» Εργασία

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

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

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

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

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

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

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

7.9 ροµολόγηση. Ερωτήσεις

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

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

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

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

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

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

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

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

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

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

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

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

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

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

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

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

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

Κατανεµηµένασυστήµατα αρχείων

Τη φυσική (MAC) διεύθυνση που δίνει ο κατασκευαστής του δικτυακού υλικού στις συσκευές του (π.χ. στις κάρτες δικτύου). Η περιοχή διευθύνσεων που

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

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

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

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

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

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

Σελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

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

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

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

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

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

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Κεφάλαιο 3: Λειτουργικά Συστήµατα

Συνεχής ροή πολυµέσων

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

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

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

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

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

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

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

Τεχνολογία Πολυμέσων. Ενότητα # 3: Συστήματα πολυμέσων Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Σύστηµα CORBA. Κατανεµηµένα Συστήµατα 18-1

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

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

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

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

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

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

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

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

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

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

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

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

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

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

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

ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ. Παράδοση Ασκήσεων Κεφάλαιο 2 Ασκήσεις 3,6,8,9,15,22,24,26. Γεωργόπουλος Άλκης Α.Μ.: 39 Κοντογιώργης Αναστάσιος A.M.

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

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

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

ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος

ΚΕΦΑΛΑΙΟ 8 ΣΥΜΠΕΡΑΣΜΑΤΑ. 8.1 Εισαγωγή

Ιατρική Πληροφορική. Δρ. Π. ΑΣΒΕΣΤΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΪΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Τ. Ε. Χρήσιμοι Σύνδεσμοι

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

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

7.7 Πρωτόκολλο ARP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Συστήματα πολυμέσων. Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Πρωτόκολλα Διαδικτύου

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

Transcript:

Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «ροµολόγηση ιεργασιών (2/2): Οργάνωση Επεξεργαστών και ιεργασιών (β)» Οργάνωση επεξεργαστών Πολιτικές καταχώρισης επεξεργαστών Προσέγγιση στάθµισης φόρτου Προσέγγιση καταµερισµού φόρτου Μετανάστευση κώδικα ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εργασία Έχει ανακοινωθεί στη σελίδα του µαθήµατος Η πρώτη από τις δύο φάσεις ήλωση οµάδων εν θα υπάρχει ενδιάµεση παράδοση E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Τεχνικές χρονοπρογραµµατισµού σε ΚΣ Προσέγγιση εκχώρησης καθηκόντων (task assignment) Κάθε διεργασία που υποβάλλεται από κάποιο χρήστη θεωρείται σαν µια συλλογή από σχετικά καθήκοντα που δροµολογούνται στους κόµβους ώστε να επιτυγχάνεται βελτίωση της επίδοσης Προσέγγιση στάθµισης φόρτου (load balancing) Όλες οι διεργασίες κατανέµονται στους κόµβους έτσι ώστε να εξισώνεται ο φόρτος εργασίας (workload) τους Προσέγγιση καταµερισµού φόρτου (load sharing) Προσπαθεί να διατηρήσει την ικανότητα του συστήµατος να παράγει έργο εξασφαλίζοντας ότι κανένας κόµβος δεν παραµένει αδρανής Προσέγγιση στάθµισης φόρτου Πολιτικές Πολιτική εκτίµησης φόρτου (load estimation) Τρόπος εκτίµησης φόρτου εργασίας ενός συγκεκριµένου κόµβου του συστήµατος Πολιτική µεταφοράς διεργασιών (process transfer) Καθορισµός τοπικής ή αποµακρυσµένης εκτέλεσης µίας διεργασίας Πολιτική επιλογής (selection) Επιλογή διεργασίας που θα µεταφερθεί σε κάποιον αποµακρυσµένο κόµβο Πολιτική τοποθέτησης (location) Καθορισµός του κόµβου στον οποίον θα αποσταλεί η διεργασία που έχει επιλεγεί για µεταφορά E-03: Λειτουργικά Συστήµατα ΙΙ 3 E-03: Λειτουργικά Συστήµατα ΙΙ 4 Προσέγγιση στάθµισης φόρτου Πολιτικές Πολιτική ανταλλαγής πληροφοριών κατάστασης (state information exchange) Πως και πότε ανταλλάσσονται πληροφορίες για το φόρτο του συστήµατος µεταξύ των κόµβων, καθώς και το είδος τους Πολιτική εκχώρησης προτεραιοτήτων (priority assignment) Καθορισµός προτεραιοτήτων εκτέλεσης των τοπικών και αποµακρυσµένων διεργασιών σε ένα συγκεκριµένο κόµβο Πολιτική περιορισµού µετανάστευσης (migration limiting) Προσδιορισµός συνολικού αριθµού φορών που µία διεργασία µπορεί να µεταναστεύσει από έναν κόµβο σε έναν άλλον Πολιτικές ανταλλαγής πληροφοριών κατάστασης Στόχος: επιθυµητή ισορροπία ανάµεσα στο όφελος και το κόστος της ανταλλαγής πληροφοριών Πολιτικές Περιοδική πανεκποµπή Πανεκποµπή όταν αλλάζει η κατάσταση Ανταλλαγή κατ απαίτηση Ανταλλαγή µε δηµοσκόπηση E-03: Λειτουργικά Συστήµατα ΙΙ 5 E-03: Λειτουργικά Συστήµατα ΙΙ 6 1

Πολιτικές ανταλλαγής πληροφοριών κατάστασης Περιοδική πανεκποµπή (periodic broadcast) Κάθε κόµβος πανεκπέµπει την κατάστασή του µετά την παρέλευση t µονάδων χρόνου Ιδιότητες: ηµιουργία σηµαντικής κυκλοφορίας στο δίκτυο Μη αποφυγή αποστολής άσκοπων µηνυµάτων (σταθερή κατάσταση) Προβλήµατα κλιµακωσιµότητας Πανεκποµπή όταν αλλάζει η κατάσταση (broadcast when state changes) Αποφυγή άσκοπων µηνυµάτων Αποστολή κατάστασης µόνο όταν αυτή µεταβάλλεται Άφιξη (δηµιουργία ή αποδοχή) διεργασίας Αναχώρηση (τερµατισµός ή µετανάστευση) διεργασίας Περαιτέρω βελτίωση: µεταφορά σε υπερφορτωµένη ή υποφορτωµένη κατάσταση Πολιτικές ανταλλαγής πληροφοριών κατάστασης Ανταλλαγή κατ απαίτηση (exchange on demand) Ένας κόµβος χρειάζεται να πληροφορηθεί την κατάσταση των υπολοίπων µόνο όταν είναι υπερφορτωµένος ή υποφορτωµένος Όταν µεταβεί σε µια τέτοια κατάσταση, πανεκπέµπει µήνυµα Κάθε κόµβος στέλνει την κατάστασή του στον αιτούντα Σε έναν υπερφορτωµένο στέλνουν οι υποφορτωµένοι κι αντίστροφα, ενώ οι άλλοι σιωπούν Ανταλλαγή µε δηµοσκόπηση (exchange by polling) Κλιµακωσιµότητα µε αποφυγή πανεκποµπής Αναζήτηση συνέταιρου ρωτώντας τυχαία έναν-έναν τους υπόλοιπους κόµβους Ανταλλαγή πληροφοριών µόνο µεταξύ δύο κόµβων Μέχρι να βρεθεί κατάλληλος συνέταιρος ή ξεπεραστεί ένα προκαθορισµένο όριο ερωτήσεων E-03: Λειτουργικά Συστήµατα ΙΙ 7 E-03: Λειτουργικά Συστήµατα ΙΙ 8 Πολιτικές εκχώρησης προτεραιοτήτων Αναγκαιότητα καθορισµού κανόνα εκχώρησης προτεραιοτήτων για τοπικές και αποµακρυσµένες διεργασίες Κανόνες εκχώρησης Εγωιστικός Αλτρουιστικός Ενδιάµεσος Εγωιστικός (selfish) ίνει µεγαλύτερη προτεραιότητα στις τοπικές διεργασίες Έχει τη χειρότερη επίδοση χρόνου απόκρισης Αλτρουιστικός (altruistic) ίνει µεγαλύτερη προτεραιότητα στις αποµακρυσµένες διεργασίες Παραµελεί τον πρωταρχικό φόρτο εργασίας ενός κόµβου Ενδιάµεσος (intermediate) Εξαρτάται από τον αριθµό τοπικών και αποµακρυσµένων διεργασιών. ίνεται προτεραιότητα σε αυτές που είναι περισσότερες (συνήθως οι τοπικές) Η επίδοση βρίσκεται ανάµεσα στις επιδόσεις των δύο παραπάνω Πολιτικές περιορισµού µετανάστευσης Πόσες φορές επιτρέπεται σε µια διεργασία να µεταναστεύσει Πολιτικές Ανεξέλεγκτη (uncontrolled) Ελεγχόµενη (controlled) Ανεξέλεγκτη (uncontrolled) Μια διεργασία µπορεί να µεταναστεύσει όσες φορές χρειαστεί Σηµαντικό µειονέκτηµά της είναι η αστάθεια που προκαλεί Ελεγχόµενη (controlled) Χρησιµοποιεί έναν µετρητή και ένα όριο µεταναστεύσεων για κάθε διεργασία Ακριβή µετανάστευση: όριο 1 Το όριο µπορεί να τίθεται στατικά ή δυναµικά και µπορεί να είναι διαφορετικό ανά διεργασία (π.χ. µεγαλύτερη τιµή για χρονοβόρες) Ένας κόµβος µπορεί να περιορίσει τις µεταναστεύσεις δυσφηµίζοντας τον εαυτό του Κατάσταση φόρτου χειρότερη από την πραγµατική E-03: Λειτουργικά Συστήµατα ΙΙ 9 E-03: Λειτουργικά Συστήµατα ΙΙ 10 Προσέγγιση καταµερισµού φόρτου (load sharing) Στόχος της προσέγγισης στάθµισης φόρτου: εξίσωση φόρτου εργασίας όλων των κόµβων Υπερβολική επιβάρυνση από τη συλλογή πληροφοριών Υπάρχουν πάντα ανισορροπίες µεταξύ των κόµβων λόγω της συνεχούς αυξοµείωσης του αριθµού των διεργασιών Η καλύτερη χρησιµοποίηση των πόρων δεν απαιτεί στάθµιση του φόρτου σε όλους τους κόµβους µα εξάλειψη της ύπαρξης αδρανών κόµβων όταν κάποιοι άλλοι έχουν περισσότερες από δύο διεργασίες Οι παραπάνω λόγοι έχουν οδηγήσει στην προσέγγιση καταµερισµού φόρτου Πολιτικές Οι πολιτικές επιλογής, εκχώρησης προτεραιοτήτων και περιορισµού µετανάστευσης παραµένουν ίδιες ιαφέρουν οι πολιτικές εκτίµηση φόρτου, µεταφοράς διεργασιών, τοποθέτησης και ανταλλαγής πληροφοριών Πολιτικές εκτίµησης φόρτου (load estimation) Αποφυγή αδρανών κόµβων ενώ υπάρχουν διεργασίες σε άλλους κόµβους που περιµένουν να εξυπηρετηθούν Αρκεί να γνωρίζουµε αν ένας κόµβος είναι απασχοληµένος (busy) ή αδρανής (idle), και όχι το ακριβές επίπεδο του φόρτου του Κριτήρια Αριθµός διεργασιών που υπάρχουν σε έναν κόµβο (µόνιµη ύπαρξη διάφορων διεργασιών) Χρησιµοποίηση της ΚΜΕ Κάτω από κάποιο όριο θεωρείται αδρανής E-03: Λειτουργικά Συστήµατα ΙΙ 11 E-03: Λειτουργικά Συστήµατα ΙΙ 12 2

Πολιτικές µεταφοράς διεργασιών Στρατηγική «όλα ή τίποτα» (all-or-nothing) Πολιτική µοναδικού κατωφλιού, µε τιµή κατωφλιού για όλους τους κόµβους ίση µε 1 Ένας κόµβος είναι υποψήφιος για Αποδοχή αποµακρυσµένης διεργασίας αν δεν έχει καµία άλλη Μεταφορά µιας διεργασίας αν έχει περισσότερες από µια διεργασίες Μειονέκτηµα: απώλεια διαθέσιµης επεξεργαστικής ισχύος εφόσον ένας κόµβος που γίνεται αδρανής δεν εκτελεί άµεσα µια νέα διεργασία Αντιµετώπιση µε τιµή κατωφλιού ίση µε 2 Πολιτικές τοποθέτησης Αναζήτηση κόµβου-αποστολέα ή κόµβου-παραλήπτη για µεταφορά µιας διεργασίας ύο πολιτικές τοποθέτησης Εκκινηµένη από τον αποστολέα (sender initiated): ο αποστολέας της διεργασίας αποφασίζει πού θα τη στείλει Εκκινηµένη από τον παραλήπτη (receiver initiated): ο παραλήπτης αποφασίζει από πού θα πάρει τη διεργασία Εκκινηµένη από τον αποστολέα πολιτική Όταν ο φόρτος ενός κόµβου υπερβεί την τιµή κατωφλιού, ο κόµβος αναζητά έναν ελαφριά φορτωµένο κόµβο για µεταφορά διεργασιών Η µεταφορά δεν πρέπει να αυξήσει το φόρτο του κόµβου παραλήπτη πέραν της τιµής του κατωφλιού Αναζήτηση µε πανεκποµπή ή τυχαία σειρά ερωτήσεων (µε όριο) Αν δε βρεθεί κατάλληλος κόµβος-παραλήπτης, τοπική εκτέλεση Μέθοδος διερεύνησης: καλύτερη κλιµακωσιµότητα λόγω σταθερού αριθµού µηνυµάτων στην χειρότερη περίπτωση E-03: Λειτουργικά Συστήµατα ΙΙ 13 E-03: Λειτουργικά Συστήµατα ΙΙ 14 Πολιτικές τοποθέτησης Πολιτικές τοποθέτησης Εκκινηµένη από τον παραλήπτη πολιτική Όταν ο φόρτος ενός κόµβου πέσει κάτω από την τιµή κατωφλιού, ο κόµβος αναζητά έναν βαριά φορτωµένο κόµβο για µεταφορά διεργασιών Η µεταφορά δεν πρέπει να µειώσει το φόρτο του κόµβου αποστολέα πέραν της τιµής του κατωφλιού Αναζήτηση µε πανεκποµπή ή τυχαία διερεύνηση (µε όριο) Σε περίπτωση µε εντοπισµού κατάλληλου κόµβου-αποστολέα, ο αδρανής κόµβος περιµένει κάποιο χρονικό διάστηµα πριν την νέα αναζήτηση Υπερφορτωµένο σύστηµα Η εκκινηµένη από τον παραλήπτη δεν προσθέτει επιπλέον φόρτο Η εκκινηµένη από τον αποστολέα δηµιουργεί υπερβολικά µεγάλο αριθµό µηνυµάτων Υποφορτωµένο σύστηµα Η εκκινηµένη από τον παραλήπτη δηµιουργεί µεγάλο αριθµό µηνυµάτων Εκκινηµένη από τον αποστολέα πολιτική Οι αποφάσεις χρονοπρογραµµατισµού λαµβάνονται σε αφίξεις διεργασιών Οι µεταναστεύσεις µπορεί να είναι διακοπτόµενες ή µη, ανάλογα µε τη διεργασία που αποφασίζει ο αποστολέας να µεταφέρει Εκκινηµένη από τον παραλήπτη πολιτική Οι αποφάσεις χρονοπρογραµµατισµού λαµβάνονται σε αναχωρήσεις διεργασιών Οι µεταναστεύσεις είναι κυρίως διακοπτόµενες E-03: Λειτουργικά Συστήµατα ΙΙ 15 E-03: Λειτουργικά Συστήµατα ΙΙ 16 Πολιτικές ανταλλαγής πληροφοριών κατάστασης Στην προσέγγιση καταµερισµού φόρτου δεν απαιτείται οι κόµβοι να ανταλλάσσουν περιοδικά πληροφορία για την κατάστασής τους Ενηµέρωση κόµβου για την κατάσταση των υπολοίπων Εκκινηµένη από τον αποστολέα πολιτική: µόνο όταν ένας κόµβος υπερφορτώνεται Εκκινηµένη από τον παραλήπτη πολιτική: µόνο όταν ένας κόµβος υποφορτώνεται Βασικές πολιτικές Πανεκποµπή όταν αλλάζει η κατάσταση ενός µηνύµατος αίτησης πληροφοριών κατάστασης Πανεκποµπή σε περίπτωση αδράνειας ηµοσκόπηση όταν αλλάζει η κατάσταση: διαδικασία τυχαίας επιλογής και διερεύνησης κόµβων ηµοσκόπηση σε περίπτωση αδράνειας Μετανάστευση κώδικα (code migration) Μεταβίβαση εκτελέσιµων προγραµµάτων µέσω του δικτύου, καθώς αυτά εκτελούνται Συνηθισµένη περίπτωση: µετανάστευση διεργασίας Μεταφορά κώδικα, δεδοµένων και κατάστασης Μεγάλο κόστος και πολυπλοκότητα Χρήσεις στόχοι διεργασιών από τις πιο φορτωµένες στις λιγότερο φορτωµένες µηχανές του συστήµατος Ελαχιστοποίηση της επικοινωνίας µεταξύ των διεργασιών µιας εφαρµογής Αύξηση της ευελιξίας του συστήµατος E-03: Λειτουργικά Συστήµατα ΙΙ 17 E-03: Λειτουργικά Συστήµατα ΙΙ 18 3

Μετανάστευση κώδικα Ελαχιστοποίηση της επικοινωνίας µεταξύ των διεργασιών µιας εφαρµογής Βάση δεδοµένων και µοντέλου πελάτη εξυπηρετητή Αν οι ενέργειες του πελάτη επηρεάζουν πολλά δεδοµένα αλλά παράγουν λίγα αποτελέσµατα τότε συµφέρει η µετανάστευση κώδικα του πελάτη στον εξυπηρετητή Αν απαιτείται έλεγχος από τον εξυπηρετητή των παραµέτρων του πελάτη, είναι αποδοτικότερο να µεταφερθεί κώδικας στον πελάτη Αύξηση της ευελιξίας του συστήµατος ιάσπαση των εφαρµογών σε τµήµατα και στατική κατανοµή τους σε µηχανές Η µετανάστευση κώδικα επιτρέπει τη δυναµική διάρθρωση του συστήµατος κατά την εκτέλεση της εφαρµογής Είδη µετανάστευσης Κάθε διεργασία αποτελείται από τρία τµήµατα Τµήµα κώδικα (code segment): εντολές του προγράµµατος Τµήµα πόρων (resource segment): αναφορές προς τους πόρους που χρησιµοποιεί το πρόγραµµα (αρχεία, συσκευές) Τµήµα εκτέλεσης (execution segment): κατάσταση της εκτελούµενης διεργασίας (ιδιωτικά δεδοµένα, στοίβα, µετρητή προγράµµατος) Είδη µετανάστευσης Ασθενής κινητικότητα (weak mobility) Υπάρχουσα διεργασία Καινούρια διεργασία Ισχυρή κινητικότητα (strong mobility) Μετανάστευση διεργασίας Κλωνοποίηση διεργασίας E-03: Λειτουργικά Συστήµατα ΙΙ 19 E-03: Λειτουργικά Συστήµατα ΙΙ 20 Είδη µετανάστευσης Είδη µετανάστευσης Ασθενής κινητικότητα Μεταναστεύουν µόνο το τµήµα κώδικα και κάποιες πληροφορίες αρχικοποίησης της διεργασίας Ο κώδικας ξεκινά πάντα την εκτέλεσή του από την αρχή Η µηχανή προορισµού πρέπει να µπορεί να εκτελέσει τον κώδικα (φορητότητα) Μεταναστεύει µόνο ο στατικός κώδικας και όχι η δυναµική διεργασία Ισχυρή κινητικότητα Μαζί µε το τµήµα κώδικα µεταφέρεται και το τµήµα εκτέλεσης της διεργασίας Προσωρινή διακοπή εκτέλεσης, µετανάστευση και συνέχιση εκτέλεσης σε µία νέα µηχανή Το νέο σύστηµα πρέπει να µπορεί να αξιοποιήσει το τµήµα εκτέλεσης της διεργασίας ύσκολο για παραδοσιακές γλώσσες προγραµµατισµού και ετερογενή συστήµατα Το σύστηµα υποστήριξης της εκτέλεσης του κώδικα µπορεί να διαφέρει, π.χ. τρόπος αποθήκευσης πλαισίων κλήσης στην στοίβα Ασθενής κινητικότητα: η εκτέλεση του κώδικα που µετανάστευσε µπορεί να γίνει Μέσα στη διεργασία που µετέφερε τον κώδικα (π.χ. Java) Αποφυγή κόστους δηµιουργίας νέας διεργασίας Ο κώδικας έχει πρόσβαση στην υπάρχουσα διεργασία και τους πόρους της Σε µία χωριστή διεργασία Ο κώδικας µπορεί να εκτελείται µε περιορισµένα δικαιώµατα Απαιτείται κατάλληλος ορισµός δικαιωµάτων Στην ισχυρή κινητικότητα µετακινείται µια ολόκληρη διεργασία, οπότε απαιτείται πάντοτε η δηµιουργία µίας νέας διεργασίας Ισχυρή κινητικότητα και αποµακρυσµένη κλωνοποίηση διεργασίας σε µια αποµακρυσµένη µηχανή και παράλληλη συνέχιση της εκτέλεσής της (παρόµοιο µοντέλο µε την fork) Μετατροπή υπάρχοντα κώδικα σε κατανεµηµένο, αυξάνοντας τον παραλληλισµό του συστήµατος E-03: Λειτουργικά Συστήµατα ΙΙ 21 E-03: Λειτουργικά Συστήµατα ΙΙ 22 έσµευση πόρων Ο χειρισµός του τµήµατος πόρων αποτελεί βασικό ζήτηµα υλοποίησης για υποστήριξη ισχυρής κινητικότητας Ορισµένοι πόροι είναι τοπικοί και δεν µπορούν να µεταφερθούν σε άλλες µηχανές Μια τοπική θύρα επικοινωνίας TCP ή UDP πρέπει να αντικατασταθεί µε µία άλλη στη νέα µηχανή Αναφορές σε αρχεία κατανεµηµένου συστήµατος αρχείων είναι έγκυρες παντού Τρεις κατηγορίες αναφορών του τµήµατος πόρων µιας διεργασίας µε βάση τον τρόπο δέσµευσης µεταξύ πόρου και διεργασίας έσµευση µε αναγνωριστικό (binding by identifier) έσµευση µε τιµή (binding by value) έσµευση µε τύπο (binding by type) Κατηγορίες αναφορών µε βάση τη δέσµευση έσµευση µε αναγνωριστικό (binding by identifier) Η αναφορά γίνεται σε έναν σαφώς καθορισµένο πόρο ο οποίος κατονοµάζεται επακριβώς και δεν µπορεί να υποκατασταθεί Αναφορές σε ιστοσελίδες, διευθύνσεις IP έσµευση µε τιµή (binding by value) Ασθενέστερη µορφή δέσµευσης Η αναφορά γίνεται στις τιµές ενός πόρου, οπότε ο πόρος µπορεί να υποκατασταθεί από άλλους που παρέχουν τις ίδιες τιµές Αναφορές σε βιβλιοθήκες γλωσσών προγραµµατισµού έσµευση µε τύπο (binding by type) Η ασθενέστερη µορφή δέσµευσης Μας ενδιαφέρει µόνο ο τύπος του πόρου και µπορεί να υποκατασταθεί από άλλους πόρους του ίδιου τύπου Αναφορές σε εκτυπωτές και οθόνες E-03: Λειτουργικά Συστήµατα ΙΙ 23 E-03: Λειτουργικά Συστήµατα ΙΙ 24 4

Κατηγορίες πόρων Η τροποποίηση µιας αναφοράς µετά τη µετανάστευση εξαρτάται από τον τύπο της δέσµευσης ανάµεσα στον πόρο και τη µηχανή από όπου ξεκινά ο κώδικας Κατηγορίες πόρων Ελεύθεροι (unattached): µπορούν να µετακινηθούν µαζί µε τον κώδικα Π.χ. αρχεία που σχετίζονται µόνο µε ένα πρόγραµµα Συνδεδεµένοι (fastened): θεωρητικά µετακινούνται µα το κόστος µετακίνησής τους είναι πολύ µεγάλο Π.χ. τοπικές βάσεις δεδοµένων Σταθεροί πόροι (fixed): άρρηκτα δεµένοι µε µία συγκεκριµένη µηχανή και δεν µπορούν να µετακινηθούν Π.χ. τοπικές συσκευές έσµευση πόρων µε διεργασία και µηχανή Κάθε αναφορά µπορεί να ανήκει σε έναν από εννέα πιθανούς συνδυασµούς υνατές επιλογές αντιµετώπισης ενός πόρου µετά τη µετανάστευση µιας διεργασίας πόρου της τιµής του στη νέα θέση Υποκατάσταση του πόρου από έναν οµοειδή πόρο στον προορισµό Αποµακρυσµένη αναφορά προς τον αρχικό πόρο Απαιτεί επιπλέον τη δηµιουργία µίας µοναδικής αναφοράς προς τον πόρο αυτόν E-03: Λειτουργικά Συστήµατα ΙΙ 25 E-03: Λειτουργικά Συστήµατα ΙΙ 26 έσµευση πόρων µε διεργασία και µηχανή Α έσµευση µε αναγνωριστικό Με αναγνωριστικό Με τιµή Με τύπο Ελεύθεροι Συνδεδεµένοι Σταθεροί Ο πόρος είναι αναντικατάστατος Ελεύθερος πόρος µε τη διεργασία Αν χρησιµοποιείται από άλλες διεργασίες, προσπέλαση µε αποµακρυσµένη αναφορά Συνδεδεµένος ή σταθερός πόρος Χρήση αποµακρυσµένης αναφοράς (η πιο πρακτική λύση) Η επικοινωνία µέσω δικτύου κατά τη χρήση της αναφοράς µπορεί να έχει τεράστιο κόστος (π.χ. µεταφορά δεδοµένων βάσης) συνδεδεµένου πόρου (για την αποφυγή συνεχούς αποµακρυσµένης αναφοράς) E-03: Λειτουργικά Συστήµατα ΙΙ 27 E-03: Λειτουργικά Συστήµατα ΙΙ 28 Β έσµευση µε τιµή Γ έσµευση µε τύπο Ελεύθερος πόρος ή αντιγραφή εφόσον χρησιµοποιείται από άλλες διεργασίες Χρησιµοποίηση πόρου µέσω αποµακρυσµένων αναφορών όταν ο όγκος του είναι πολύ µεγάλος Συνδεδεµένος πόρος (π.χ. βιβλιοθήκες) Αποµακρυσµένη αναφορά (λόγω µεγάλου όγκου) Σταθερός πόρος Αποµακρυσµένη αναφορά Ευκολότερη περίπτωση, αφού επιτρέπεται σχεδόν πάντα η υποκατάσταση µε τοπικό πόρο Εξαίρεση όταν δεν υπάρχει ανάλογος πόρος Σταθερός πόρος: αποµακρυσµένη αναφορά Συνδεδεµένος πόρος: αποµακρυσµένη αναφορά ή αντιγραφή (όγκος) Ελεύθερος πόρος: µετακίνηση ή αντιγραφή (χρησιµοποίηση από άλλες διεργασίες) E-03: Λειτουργικά Συστήµατα ΙΙ 29 E-03: Λειτουργικά Συστήµατα ΙΙ 30 5

έσµευση πόρων µε διεργασία και µηχανή Εργασία Με αναγνωριστικό Με τιµή Με τύπο Ελεύθεροι Συνδεδεµένοι Σταθεροί Χρονοπρογραµµατιστής διεργασιών (δροµολογητής) Είσοδος: εφαρµογές προς εκτέλεση ιάβασµα από αρχείο και εισαγωγή σε λίστα Υλοποίηση πολιτικών: Εξυπηρέτηση µε βάση τη σειρά άφιξης (FCFS): οι εφαρµογές εκτελούνται µε τη σειρά εισαγωγής τους στη λίστα Εξυπηρέτηση µε βάση τη µικρότερη διάρκεια (SJF): κάθε εφαρµογή χαρακτηρίζεται από ένα στατικό χρόνο εκτέλεσης (αριθµό), ο οποίος καθορίζει τη σειρά εκτέλεσής της ροµολόγηση εκ περιτροπής (RR): οι εφαρµογές εκτελούνται εκ περιτροπής για χρόνο ίσο µε το κβάντο δροµολόγησης. ροµολόγηση µε βάση την προτεραιότητα (PRIO): κάθε εφαρµογή χαρακτηρίζεται από µια στατική προτεραιότητα (αριθµό). Οι εφαρµογές µε το µικρότερο αριθµό έχουν µεγαλύτερη προτεραιότητα και εκτελούνται πρώτα. Μεταξύ εφαρµογών µε τον ίδιο βαθµό προτεραιότητας, εφαρµόζεται δροµολόγηση εκ περιτροπής. E-03: Λειτουργικά Συστήµατα ΙΙ 31 E-03: Λειτουργικά Συστήµατα ΙΙ 32 οµές δεδοµένων οµές δεδοµένων Περιγραφέας εφαρµογής έσµευση και αρχικοποίηση για κάθε διεργασία Εισαγωγή στην ουρά εκτέλεσης Πεδία: όνοµα αρχείου, προτεραιότητα, αναγνωριστικό, κατάσταση εκτέλεσης υνατές καταστάσεις NEW: Η εφαρµογή έχει µόλις εισαχθεί για εκτέλεση fork - exec RUNNING: Η εφαρµογή διεργασία είναι ενεργή SUSPENDED: Η εκτέλεση της εφαρµογής έχει διακοπεί DEAD: Η εφαρµογή έχει τερµατίσει Ουρά εργασιών: διπλά διασυνδεδεµένη λίστα Εισαγωγή στο τέλος, εξαγωγή από την αρχή Τόσες λίστες όσες και οι δυνατές τιµές προτεραιοτήτων Ο δροµολογητής επιλέγει κάθε φορά την επόµενη προς εκτέλεση εφαρµογή Κατάλληλες ενέργειες ή τερµατισµός Οι εφαρµογές περιλαµβάνουν αποκλειστικά υπολογισµούς Στις στατικές πολιτικές (FCFS, SJF), ο δροµολογητής θα ενεργοποιείται µόνο όταν µια διεργασία τερµατίζει Στις δυναµικές πολιτικές (RR, PRIO), ο δροµολογητής θα ενεργοποιείται σε τακτά χρονικά διαστήµατα nanosleep και alarm Αναστολή και συνέχισης της εκτέλεσής των διεργασιών µε χρήση των σηµάτων SIGSTOP και SIGCONT Χειριστής σήµατος SIGCHLD µόνο για ενηµέρωση τερµατισµού διεργασιών Εκτέλεση απαραίτητων ενεργειών ιατήρηση πληροφορίας για την τρέχουσα εκτελούµενη διεργασία Εκτύπωση χρόνου εκτέλεσης από εισαγωγή στη λίστα και από έναρξη δροµολογητή E-03: Λειτουργικά Συστήµατα ΙΙ 33 E-03: Λειτουργικά Συστήµατα ΙΙ 34 Χρήση Επέκταση sched <policy> <quantum> <input_filename> sched: εκτελέσιµο δροµολογητή policy: πολιτική δροµολόγησης (FCFS, SJF, RR, PRIO) quantum: κβάντο δροµολόγησης (msec) input_filename: αρχείο εφαρµογών όνοµα εφαρµογής, αριθµός (διάρκεια, προτεραιότητα) Παραδείγµατα > sched FCFS input.txt > sched SJF input2.txt > sched RR 250 input3.txt > sched PRIO 1000 input4.txt Μόνο µια διεργασία να είναι ενεργή κάθε φορά Επέκταση δροµολογητή για συστήµατα µε πολλούς επεξεργαστές Σε κάθε κβάντο θα πρέπει να εκτελούνται ταυτόχρονα τόσες διεργασίες όσοι και οι επεξεργαστές του συστήµατος Ο αριθµός επεξεργαστών θα αποτελεί παράµετρο του προγράµµατός του > sched RR 250 4 input.txt E-03: Λειτουργικά Συστήµατα ΙΙ 35 E-03: Λειτουργικά Συστήµατα ΙΙ 36 6

εύτερη Φάση Εξοµοίωση εντολών I/O Μια διεργασία ενηµερώνει τον δροµολογητή µε κατάλληλο µηχανισµό (σήµα) για έναρξη και τερµατισµό Ι/Ο Έναρξη: αποστολή σήµατος Ι/Ο για κάποιο χρονικό διάστηµα (nanosleep) Τερµατισµός: αποστολή σήµατος Ζητήµατα υλοποίησης Εκτέλεση του δροµολογητή σαν ανεξάρτητη διεργασία Οι διεργασίες θα εισάγονται µέσω κατάλληλου προγράµµατος Ο δροµολογητής θα ενηµερώνεται δυναµικά για Αλλαγή πολιτικής δροµολόγησης Εισαγωγή νέας διεργασίας E-03: Λειτουργικά Συστήµατα ΙΙ 37 7