Νήµατα ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων Κατανεµηµένα Συστήµατα 10-1
ιεργασίεςκαι νήµατα ιεργασία 1 Μνήµη ιεργασία 2 Μνήµη ιεργασία 3 Μνήµη Λειτουργικό Σύστηµα ιεργασία: ένα εκτελούµενο πρόγραµµα Κώδικας + κατάσταση Καταχωρητές και µνήµη Κάθε διεργασία εκτελείται στο δικό της εικονικό επεξεργαστή Ψευδοταυτόχρονη ή παράλληλη εκτέλεση των διεργασιών Αποµόνωση διεργασιών για λόγους ασφάλειας Υψηλό κόστος δηµιουργίας και µεταγωγής συµφραζοµένων Αλλαγή χώρου διευθύνσεων και περιβάλλοντος Κατανεµηµένα Συστήµατα 10-2
ιεργασίεςκαι νήµατα Νήµα 3 Μνήµη Λειτουργικό Σύστηµα Νήµα: µια ροή ελέγχου σε µια διεργασία Επιτρέπονται πολλά νήµατα ανά διεργασία Όλα τα νήµατα µοιράζονται τον ίδιο χώρο διευθύνσεων Χωριστή στοίβα, καταχωρητές, µετρητής προγράµµατος Κοινά αρχεία και περιβάλλον διεργασίας Ψευδοταυτόχρονη εκτέλεση νηµάτων σε έναν επεξεργαστή Παράλληλη εκτέλεση σε πολυεπεξεργαστές Κατανεµηµένα Συστήµατα 10-3
ιεργασίεςκαι νήµατα Γιατί νήµατα; Κοινός χώρος διευθύνσεων στην ίδια διεργασία εν υπάρχει µηχανισµός προστασίας Συνεργασία νηµάτων µέσω κοινής µνήµης Χαµηλό κόστος µεταγωγής συµφραζοµένων νηµάτων Μόνο οι καταχωρητές αλλάζουν, όχι η εικονική µνήµη Χρήσεις νηµάτων Παράλληλη εκτέλεση πολλών βηµάτων Χωριστά νήµατα για κλήσεις εισόδου/εξόδου Ταυτόχρονη επικοινωνία µε χρήστη και επεξεργασία Αξιοποίηση εγγενούς παραλληλισµού εφαρµογής Χρήση όλων των διαθέσιµων επεξεργαστών Γρήγορη επικοινωνία µέσω κοινής µνήµης Κατανεµηµένα Συστήµατα 10-4
Υλοποίησηνηµάτων ιεργασία 1 ιεργασία n Πακέτο νηµάτων Πακέτο νηµάτων Λειτουργικό Σύστηµα Πακέτο νηµάτων ηµιουργία και καταστροφή νηµάτων ιαχείριση συνθηκών (conditions) Πακέτα νηµάτων επιπέδου χρήστη Οικονοµική υλοποίηση λειτουργιών και µεταγωγής Ο εµποδισµός ισχύει για ολόκληρη τη διεργασία Όλα τα νήµατα εµποδίζονται µαζί Κατανεµηµένα Συστήµατα 10-5
Υλοποίησηνηµάτων ιεργασία 1 ιεργασία n Πακέτο νηµάτων Λειτουργικό Σύστηµα Πακέτα νηµάτων επιπέδου πυρήνα Ακριβή υλοποίηση λειτουργιών και µεταγωγής συµφραζοµένων Ο εµποδισµός ισχύει µόνο για το νήµα Επίπεδο χρήστη ή επίπεδο πυρήνα; Ορισµένα λειτουργικά συστήµατα υποστηρίζουν νήµατα Η Java υποστηρίζει νήµατα σε όλα τα συστήµατα Κατανεµηµένα Συστήµατα 10-6
Ελαφριέςδιεργασίες ιεργασία 1 ιεργασία n Πακέτο νηµάτων Πακέτο νηµάτων Ελαφριά διεργασία Ελαφριά διεργασία Ελαφριά διεργασία Λειτουργικό Σύστηµα Ελαφριές διεργασίες: υβριδική λύση Βασική υποστήριξη νηµάτων από πυρήνα Πακέτο νηµάτων επιπέδου χρήστη Κατανεµηµένα Συστήµατα 10-7
Επίπεδο πυρήνα Ελαφριέςδιεργασίες Πολλές ελαφριές διεργασίες σε µία κανονική (Κατά)µερισµός του ενιαίου χώρου διευθύνσεων Επίπεδο χρήστη ηµιουργία, διαγραφή και συγχρονισµός νηµάτων Κάθε νήµα εκτελείται από κάποια διαθέσιµη ελαφριά διεργασία Η συσχέτιση µεταξύ τους δεν είναι µόνιµη Μεταγωγή συµφραζοµένων: επίπεδο χρήστη Κλήση χρονοπρογραµµατιστή επιπέδου χρήστη Εκτέλεση νήµατος µε απλή κλήση διαδικασίας Εµποδισµός νήµατος πάνω σε συνθήκη Ανάθεση νέου νήµατος από το χρονοπρογραµµατιστή Η ελαφριά διεργασία δεν εµποδίζεται Κατανεµηµένα Συστήµατα 10-8
Ελαφριέςδιεργασίες Μεταγωγή συµφραζοµένων: επίπεδο πυρήνα Κλήση πυρήνα που προκαλεί εµποδισµό Ο πυρήνας µπορεί να δώσει τον έλεγχο σε άλλη διεργασία ε χρειάζεται κάποια ειδική µεταχείριση Αρκετές ελαφριές διεργασίες για αύξηση παραλληλισµού Ιδιότητες ελαφριών διεργασιών Οι ελαφριές διεργασίες δε συνδέονται µόνιµα µε ένα νήµα Ο χρονοπρογραµµατιστής τους αναθέτει νήµατα δυναµικά Ο εµποδισµός πάνω σε συνθήκες γίνεται σε επίπεδο χρήστη Πλεονεκτήµατα ελαφριών διεργασιών Όλες οι λειτουργίες νηµάτων γίνονται σε επίπεδο χρήστη Ο πυρήνας παρεµβαίνει µόνο για να εξυπηρετήσει τις κλήσεις του Ο χρονοπρογραµµατιστής µπορεί να αλλάξει Κατανεµηµένα Συστήµατα 10-9
Αξιοποίησηνηµάτων Αξιοποίηση στους πελάτες Απόκρυψη καθυστερήσεων του δικτύου Παράδειγµα: φυλλοµετρητήςιστοσελίδων Εµφάνιση κειµένου προς ανάγνωση Πολλά νήµατα µεταφοράς εικόνων Αξιοποίηση στους εξυπηρετητές ιαχείριση πολλών πελατών Αξιοποίηση πολλών επεξεργαστών Παράδειγµα: εξυπηρετητής αρχείων Πολλά νήµατα για εξυπηρέτηση αιτήσεων Ένα νήµα για διανοµή αιτήσεων Κάθε νήµα λειτουργεί και εµποδίζεται αυτόνοµα (Κατά)µερισµός κρυφής µνήµης ενταµιευτών Κατανεµηµένα Συστήµατα 10-10
Αξιοποίησηνηµάτων ιεργασία ιεργασία Εργάτης 1 ιανοµέας Εργάτης 2 Εργάτης n Εργάτης 1 Εργάτης 2 Εργάτης n Μοντέλο διανοµέα/εργατών: εξυπηρετητής αρχείων Όλα τα νήµατα-εργάτες είναι παρόµοια Εξυπηρέτηση αιτήσεων από οποιοδήποτε νήµα Μοντέλο σωλήνωσης: εκτέλεση εργασίας σε στάδια Κάθε νήµα είναι διαφορετικό Ιδανικά, όλα τα νήµατα απαιτούν τον ίδιο περίπου χρόνο Κατανεµηµένα Συστήµατα 10-11