ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν
Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται χρονικά ε περιβάλλον πολυεπεξεργαςτϊν, οι εντολζσ γλϊςςασ μθχανισ δφο παραλλιλων διεργαςιϊν μπορεί να επικαλφπτονται πράγματι χρονικά (true parallelism) ε περιβάλλον ενόσ μόνο επεξεργαςτι, οι διεργαςίεσ εναλλάςςονται χρονικά, ζτςι ϊςτε να δίνεται θ εντφπωςθ ταυτόχρονθσ εκτζλεςθσ Δθλαδι, μια εντολι γλϊςςασ μθχανισ κάποιασ διεργαςίασ μπορεί μόνο να «παρεμβλθκεί» ανάμεςα ςε δφο εντολζσ άλλων διεργαςιϊν
Παράλλθλεσ Διεργαςίεσ (2/5) Με τθν πρϊτθ ματιά: Φαίνεται πωσ θ εναλλαγι και θ επικάλυψθ αναπαριςτοφν εντελϊσ διαφορετικζσ καταςτάςεισ εκτζλεςθσ και παρουςιάηουν διαφορετικά προβλιματα τθν πραγματικότθτα: ΌΜΩ Και οι δφο τεχνικζσ μποροφν να κεωρθκοφν παραδείγματα ταυτόχρονθσ επεξεργαςίασ και παρουςιάηουν τα ίδια προβλιματα
Άςκθςθ 1 Μπορείτε να αναφζρεται ζνα κετικό και ζνα αρνθτικό χαρακτθριςτικό του ταυτοχρονιςμοφ; Θετικά: Σο ςθμαντικότερο πλεονζκτθμα Σαχφτθτα
Παράλλθλεσ Διεργαςίεσ (3/5) τθν περίπτωςθ ενόσ επεξεργαςτι: Σα προβλιματα απορρζουν από ζνα βαςικό χαρακτθριςτικό των πολυπρογραμματιςτικϊν ςυςτθμάτων: Η ςχετικι ταχφτθτα εκτζλεςθσ των διεργαςιϊν δεν μπορεί να προβλεφτεί Εξαρτάται από: Σθ δραςτθριότθτα των υπόλοιπων διεργαςιϊν Σον τρόπο με τον οποίο το Λ χειρίηεται τισ διακοπζσ Σθν πολιτικι χρονοδρομολόγθςθσ του Λ
Παράλλθλεσ Διεργαςίεσ (4/5) Από τισ προαναφερόμενεσ δυςκολίεσ ανακφπτουν τα ακόλουκα κζματα: Ο διαμοιραςμόσ των κακολικϊν πόρων εμπεριζχει κινδφνουσ π.χ.: αν δφο διεργαςίεσ χρθςιμοποιοφν τθν ίδια κακολικι μεταβλθτι και εκτελοφν λειτουργίεσ ανάγνωςθσ και εγγραφισ ςτθ μεταβλθτι αυτι, τότε θ ςειρά με τθν οποία εκτελοφνται οι διάφορεσ λειτουργίεσ ανάγνωςθσ και εγγραφισ είναι ιδιαίτερα κρίςιμθ
Παράλλθλεσ Διεργαςίεσ (5/5) Θζματα (ςυνζχεια): Είναι δφςκολθ για το Λ θ βζλτιςτθ διαχείριςθ τθσ ανάκεςθσ των πόρων π.χ.: θ διεργαςία Α μπορεί να ηθτιςει τθ χριςθ ενόσ ςυγκεκριμζνου καναλιοφ Ε/Ε και να τθσ παραχωρθκεί ο ζλεγχοσ του και, ςτθ ςυνζχεια, να αναςταλεί πριν τθ χρθςιμοποίθςθ του καναλιοφ αυτοφ Σο κλείδωμα του καναλιοφ και θ παρεμπόδιςθ τθσ χριςθσ του από άλλεσ διεργαςίεσ μπορεί να μθν είναι το επικυμθτό αποτζλεςμα για το Λ, κακϊσ μπορεί να οδθγιςει ςε ςυνκικθ αδιεξόδου Ο εντοπιςμόσ ενόσ προγραμματιςτικοφ ςφάλματοσ γίνεται πολφ δφςκολοσ, κακϊσ τα αποτελζςματα δεν είναι αιτιοκρατικά και αναπαραγωγίςιμα
Ζνα παράδειγμα (1/2) Ζχουμε τθ διαδικαςία: τθ διαδικαςία αυτι: Παρουςιάηονται τα ςτοιχεία ενόσ προγράμματοσ που παρζχει μθχανιςμό εγγραφισ ενόσ χαρακτιρα Η είςοδοσ παρζχεται από τθν πλθκτρολόγθςθ ενόσ πλικτρου κάκε χρονικι ςτιγμι Κάκε χαρακτιρασ ειςόδου αποκθκεφεται ςτθ μεταβλθτι chin τθ ςυνζχεια μεταφζρεται ςτθ μεταβλθτι chout και αποςτζλλεται ςτθν οκόνθ Οποιοδιποτε πρόγραμμα μπορεί να καλζςει επανειλθμμζνα τθ διαδικαςία αυτι για τθν αποδοχι δεδομζνων ειςόδου από το χριςτθ και τθν προβολι τουσ ςτθν οκόνθ
Ζνα παράδειγμα (2/2) Ασ εξετάςουμε το πολυπρογραμματιςτικό ςφςτθμα ενόσ επεξεργαςτι, το οποίο υποςτθρίηει ζνα χριςτθ: Ο χριςτθσ μπορεί να μεταπθδά από τθ μία εφαρμογι ςτθν άλλθ και κάκε εφαρμογι χρθςιμοποιεί το ίδιο πλθκτρολόγιο για είςοδο και τθν ίδια οκόνθ για ζξοδο Ασ εξετάςουμε τθν ακολουκία: Η διεργαςία Ρ1 καλεί τθ διαδικαςία echo και διακόπτεται μόλισ θ ςυνάρτθςθ getchar επιςτρζφει τθν τιμι τθσ και τθν αποκθκεφει ςτθν chin. το ςθμείο αυτό ο χαρακτιρασ x, που είναι αυτόσ που ζχει ειςαχκεί τελευταίοσ, αποκθκεφεται ςτθ μεταβλθτι chin Η διεργαςία Ρ2 ενεργοποιείται και καλεί τθ διαδικαςία echo, θ οποία εκτελείται ωσ τθν ολοκλιρωςι τθσ, ειςάγοντασ και, ςτθ ςυνζχεια, προβάλλοντασ ζνα μοναδικό χαρακτιρα, y, ςτθν οκόνθ Η διεργαςία Ρ1 ςυνεχίηει. Μζχρι το ςθμείο αυτό, θ τιμι x ζχει επανεγγραφεί ςτθν chin και ωσ εκτοφτου χάνεται. Αντικζτωσ, θ chin περιζχει τθν y, θ οποία μεταφζρεται ςτθν chout και προβάλλεται ςτθν οκόνθ
Άςκθςθ 2 Σι ςυμβαίνει με τουσ δφο χαρακτιρεσ; Ο πρϊτοσ χαρακτιρασ χάνεται και ο δεφτεροσ προβάλλεται δφο φορζσ Η ουςία του προβλιματοσ είναι θ διαμοιραςμζνθ μεταβλθτι chin πολλαπλζσ διεργαςίεσ ζχουν πρόςβαςθ ςτθ μεταβλθτι αυτι Αν μια διεργαςία ενθμερϊςει τθν κακολικι μεταβλθτι και ςτθ ςυνζχεια διακοπεί, τότε μια άλλθ διεργαςία μπορεί να τροποποιιςει τθ μεταβλθτι πριν θ πρϊτθ μεταβλθτι να μπορζςει να χρθςιμοποιιςει τθν τιμι τθσ
Ανάγκθ υντονιςμοφ Όταν περιςςότερεσ από μία διεργαςίεσ κάνουν χριςθ κοινϊν μεταβλθτϊν, τότε το αποτζλεςμα που παράγεται επθρεάηεται από τθ ςχετικι ταχφτθτα διεργαςιϊν αυτϊν Καταςτάςεισ ςαν τισ παραπάνω ζχουν το εξισ χαρακτθριςτικό: Επειδι εξαρτϊνται από τισ ςχετικζσ ταχφτθτεσ των διαδικαςιϊν, γενικά δεν επαναλαμβάνονται / αναπαράγονται (δθλαδι δεν είναι το ίδιο αποτζλεςμα κάκε φορά που τρζχουν παράλλθλα οι ίδιεσ διαδικαςίεσ) Πρζπει να αςκηθεί κάποιοσ ζλεγχοσ ςτην αλληλεπίδραςή τουσ υντονιςμόσ (ςυγχρονιςμόσ): Κάκε περιοριςμό ςτθ ςχετικι διάταξθ των εντολϊν (των διαδικαςιϊν που αλλθλεπιδροφν) ςτο χρόνο Κοινι πρακτικι: δθλαδι επιτρζπεται μόνο ςε μία διεργαςία τθ φορά να βρίςκεται ςε αυτι τθ διαδικαςία
Επαναλθπτικζσ Αςκιςεισ Άςκθςθ 3: Βρείτε τθν ανάλυςθ και το ρυκμό ανανζωςθσ τθσ οκόνθσ που χρθςιμοποιείτε Τποκζτουμε ότι χρθςιμοποιεί τα φυςικά χρϊματα, δθλαδι το βάκοσ χρϊματοσ που χρθςιμοποιοφνται ςτα Windows του υπολογιςτι ςασ είναι 32 bit. Τπολογίςτε το μζγεκοσ ςε MB που κα χρειαηόταν για να αποκθκευτεί αςυμπίεςτο ζνα ςτιγμιότυπο τθσ επιφάνειασ εργαςίασ
Απάντθςθ Ασ υποκζςουμε ότι θ ανάλυςθ τθσ οκόνθσ είναι 1600 Χ 900 pixels Βάκοσ χρϊματοσ 32 bit 32/8 = 4 Byte για κάκε pixel Άρα για κάκε οκόνθ απαιτοφνται: 1600 * 900 * 4 = 5.760.000 Bytes ι περίπου 5.76 ΜΒ (MegaBytes)
Επαναλθπτικζσ Αςκιςεισ Άςκθςθ 4: Ποιο ςφςτθμα αρχείων χρθςιμοποιεί ο ςκλθρόσ δίςκοσ του υπολογιςτι ςτον οποίο εργάηεςτε; Άςκθςθ 5: Ποια θ χωρθτικότθτα του δίςκου και πόςοσ είναι ο ελεφκεροσ χϊροσ; Άςκθςθ 6: Πωσ μπορείτε να ζχετε πρόςβαςθ ςτισ ακόλουκεσ παραμζτρουσ του ςκλθροφ δίςκου; υνολικοί Κφλινδροι Αυλάκια / Κφλινδρο Σομείσ / Αυλάκι Byte / Σομζασ θμειϊςτε τισ τιμζσ msinfo32