ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 4 θ Διάλεξθ θμαφόροι

Σχετικά έγγραφα
Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

ςυςτιματα γραμμικϊν εξιςϊςεων

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Παράςταςη ςυμπλήρωμα ωσ προσ 1

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Απάντηση ΘΕΜΑ1 ΘΕΜΑ2. t=t 1 +T/2. t=t 1 +3T/4. t=t 1 +T ΔΙΑΓΩΝΙΣΜΑ ΣΕ ΤΑΛΑΝΤΩΣΕΙΣ-ΚΥΜΑΤΑ 1) (Β), 2. (Γ), 3. (Γ), 4. (Γ), 5. (Δ).

Ειδικά Θζματα Βάςεων Δεδομζνων

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Σχεδίαςη Σφγχρονων Ακολουθιακών Κυκλωμάτων

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 6 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Β

Άπειρεσ κροφςεισ. Τθ χρονικι ςτιγμι. t, ο δακτφλιοσ ςυγκροφεται με τον τοίχο με ταχφτθτα (κζντρου μάηασ) μζτρου

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Διαγώνισμα Φυσική ς Α Λυκει ου Έργο και Ενε ργεια

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Διαγώνισμα Φυσική ς Κατευ θυνσής Γ Λυκει ου - Ταλαντώσεις

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Ακολουκιακά Λογικά Κυκλώματα

Επαναληπτικό Διαγώνισμα Φυσικη ς Α Λυκει όυ Ε.Ο.Κ. και Ε.Ο.Μ.Κ.

ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά"

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 θ Διάλεξθ υγχρονιςμόσ Διεργαςιϊν

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

ΑΔΡΑΝΕΙΑ ΜΑΘΗΣΕ: ΜΑΡΙΑΝΝΑ ΠΑΡΑΘΤΡΑ ΑΝΑΣΑΗ ΠΟΤΛΙΟ ΠΑΝΑΓΙΩΣΗ ΠΡΟΔΡΟΜΟΤ ΑΝΑΣΑΙΑ ΠΟΛΤΧΡΟΝΙΑΔΟΤ ΙΩΑΝΝΑ ΠΕΝΓΚΟΤ

Ενδεικτικζσ Λφςεισ Θεμάτων

Θεςιακά ςυςτιματα αρίκμθςθσ

Η γλώςςα προγραμματιςμού C

Ανάλυςη κλειςτϊν δικτφων

Τμήματα Μνήμησ Υπολογιςμόσ Φυςικών διευθύνςεων. Εκπαιδεφτρια: Μαρία Πολίτθ

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 12 θ Διάλεξθ Διαχείριςθ Αρχείων

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

Ψθφιακά Ηλεκτρονικά. Ενότθτα 7 : Ελαχιςτοποίθςθ και κωδικοποίθςθ καταςτάςεων Φϊτιοσ Βαρτηιϊτθσ

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

17. Πολυδιάςτατοι πίνακεσ

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Διαγώνισμα Φυσική ς Α Λυκει ου Δυναμική σε μι α δια στασή και στο επι πεδο

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Διάδοση θερμότητας σε μία διάσταση

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Η άςκθςθ αποτελεί τροποποιθμζνθ εκδοχι του κζματοσ φυςικισ, τθσ Ευρωπαϊκισ Ολυμπιάδασ Φυςικών Επιςτθμών 2009_επιμζλεια κζματοσ: Κώςτασ Παπαμιχάλθσ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Εφδοξοσ+ Συνδεκείτε ςτθν Εφαρμογι Φοιτθτϊν και μεταβείτε ςτθ ςελίδα «Ανταλλαγι Βιβλίων (Εφδοξοσ+)».

ΜΑΘΗΜΑΤΙΚΑ Α Γυμνασίου

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

Α ΕΚΦΕ ΑΝ. ΑΤΤΙΚΗΣ Υπ. Κ. Παπαμιχάλθσ. Μζτρηςη του λόγου γ=c P /C V των αερίων με τη μζθοδο Clement Desormes

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

Πλατφόρμα χάρεσ ειςόδου Εξόδου Εξοπλιςμόσ Αζρα/ Νερό

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 5 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Α

Πανελλαδικε σ Εξετα ςεισ Γ Τα ξησ Ημερη ςιου και Δ Τα ξησ Εςπερινου Γενικου Λυκει ου

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 2 θ Διάλεξθ - Διεργαςίεσ

ΝΟΜΟ ΣΟΤ BOYLE(βαςιςμζνο ςε πείραμα)

Επαναληπτικό Διαγώνισμα Φυσικη ς Α Λυκει όυ

Δείκτεσ απόδοςθσ υλικών

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

ΟΙΚΙΑΚΗ ΟΙΚΟΝΟΜΙΑ ΑΡΙΘΜΟ ΑΝΑΠΛΗΡΩΣΩΝ

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

1 0 ΕΠΑΛ ΞΑΝΘΗ ΕΙΔΙΚΟΣΗΣΑ : ΗΛΕΚΣΡΟΝΙΚΩΝ ΕΙΔΙΚΗ ΘΕΜΑΣΙΚΗ ΕΡΓΑΙΑ Β ΗΛΕΚΣΡΟΝΙΚΩΝ ΘΕΜΑ : ΚΑΣΑΚΕΤΗ ΠΟΜΠΟΤ FM

Μάρκετινγκ V Κοινωνικό Μάρκετινγκ. Πόπη Σουρμαΐδου. Σεμινάριο: Αναπτφςςοντασ μια κοινωνική επιχείρηςη

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

Πωσ δθμιουργώ φακζλουσ;

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

ΗΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Slide 1. Εισαγωγή στη ψυχρομετρία

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

ΧΗΜΕΙΑ Γ ΛΥΚΕΙΟΥ Κεφάλαια: (μέχρι ενότητα 8) Ονοματεπϊνυμο:... Ημ/νία:... Τάξθ:...Χρονικι Διάρκεια:... Βακμόσ:

cdna ΒΙΒΛΙΟΘΗΚΗ Καρβέλης Φώτης Φώτο 1

ΠΡΟΦΟΡΑ ΖΗΣΗΗ ΚΡΑΣΘΚΗ ΠΑΡΕΜΒΑΗ

Επιχειρηςιακή Ζρευνα και εφαρμογζσ με την χρήςη του λογιςμικοφ R

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

ΤΙΤΛΟΣ: "SWITCH-ΠΩ ΝΑ ΚΑΣΑΦΕΡΕΙ ΣΗΝ ΑΛΛΑΓΗ ΟΣΑΝ Η ΑΛΛΑΓΗ ΕΙΝΑΙ ΔΤΚΟΛΗ" Σσγγραφείς: Chip Heath & Dan Heath. Εκδόζεις: Κσριάκος Παπαδόποσλος/ΕΕΔΕ

Ενεργειακά Τηάκια. Πουκεβίλ 2, Ιωάννινα Τθλ

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

ΓΕΦΤΡΟΠΟΙΪΑ: ΜΟΝΙΜΑ ΚΑΙ ΚΙΝΗΣΑ ΦΟΡΣΙΑ. ΔΙΟΝΥΣΙΟΣ Ε. ΜΠΙΣΚΙΝΗΣ Τμήμα Πολιτικών Μηχανικών Τ.Ε. Τ.Ε.Ι. Δυτικής Ελλάδας

Δομζσ Δεδομζνων Πίνακεσ

ΧΕΔΙΑΜΟ ΠΡΟΪΟΝΣΩΝ ΜΕ Η/Τ

Το Δίκτυο Multi-Layer Perceptron και ο Κανόνασ Back-Propagation. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Αςφάλεια και Προςταςία Δεδομζνων

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Transcript:

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 4 θ Διάλεξθ θμαφόροι

Αντιμετϊπιςθ Προβλθμάτων Σαυτοχρονιςμοφ Σο πρϊτο μεγάλο βιμα για τθν αντιμετϊπιςθ των προβλθμάτων των ταυτόχρονων διεργαςιϊν ςθμειϊκθκε το 1965, ςτθ διατριβι του Dijkstra Σον απαςχόλθςε: Η ςχεδίαςθ του λειτουργικοφ ςυςτιματοσ ωσ ςυλλογι ςυνεργαηόμενων ςειριακϊν διεργαςιϊν Η ανάπτυξθ αποδοτικϊν και αξιόπιςτων μθχανιςμϊν για τθν υποςτιριξθ τθσ ςυνεργαςίασ Για να απλοποιθκοφν οι διαδικαςίεσ που φροντίηουν τισ ταυτόχρονεσ διεργαςίεσ, ο Dijkstra ειςιγαγε τθν ζννοια των σηματοφόρων

Θεμελιϊδθσ Κανόνασ Δφο ι περιςςότερεσ διεργαςίεσ μποροφν να ςυνεργάηονται μζςω απλϊν ςθμάτων, τζτοιασ μορφισ ϊςτε μία διεργαςία να μπορεί να εξαναγκαςτεί να ςταματιςει ςε ςυγκεκριμζνθ κζςθ, μζχρι να λάβει ςυγκεκριμζνο ςιμα Οποιαδιποτε απαίτθςθ πολφπλοκου ςυντονιςμοφ μπορεί να ικανοποιθκεί από τθν κατάλλθλθ δομι ςθμάτων

θμαφόροι (1/5) Σθμαφόροι ι ςθμαφόροι μζτρθςθσ ι γενικοί ςθμαφόροι Είναι ζνασ μθχανιςμόσ ςυγχρονιςμοφ διεργαςιϊν για τθν αποκλειςτικι χριςθ κοινϊν πόρων όπωσ μνιμθσ ι αρχείων Είναι ειδικοφ τφπου ακζραιεσ μεταβλθτζσ με τισ οποίεσ ςυνδζονται κάποιεσ ατομικζσ λειτουργίεσ (δθλαδι όλεσ οι εντολζσ που αντιςτοιχοφν ςτθ λειτουργία εκτελοφνται αδιάςπαςτα από τον πυρινα)

θμαφόροι (2/5) Για τθ μετάδοςθ ςιματοσ διαμζςου του ςθμαφόρου s, μια διεργαςία εκτελεί τθν πρωτογενι λειτουργία semsignal (s) Για τθν παραλαβι ςιματοσ διαμζςου του ςθμαφόρου s, μια διεργαςία εκτελεί τθν πρωτογενι λειτουργία semwait (s) Αν το αντίςτοιχο ςιμα δεν ζχει μεταδοκεί ακόμα, θ διεργαςία αναςτζλλεται μζχρι να λάβει χϊρα θ μετάδοςθ

θμαφόροι (3/5) Οι ατομικζσ λειτουργίεσ των ςθμαφόρων είναι μόνο τρεισ: αρχικοποίθςθ, μείωςθ και αφξθςθ υγκεκριμζνα: Ο ςθμαφόροσ μπορεί να αρχικοποιθκεί, λαμβάνοντασ μθ αρνθτικι ακζραια τιμι Η λειτουργία semwait μειϊνει τθν τιμι του ςθμαφόρου Αν θ τιμι του ςθμαφόρου γίνει αρνθτικι, τότε μπλοκάρεται θ διεργαςία που εκτελεί τθ semwait Διαφορετικά, θ διεργαςία ςυνεχίηει τθν εκτζλεςι τθσ Η λειτουργία semsignal αυξάνει τθν τιμι του ςθμαφόρου Αν θ τιμι που προκφπτει είναι μικρότερθ ι ίςθ με το μθδζν, τότε ξεμπλοκάρεται μια διεργαςία (αν υπάρχει) που ζχει μπλοκαριςτεί από μία λειτουργία semwait

θμαφόροι (4/5) Εξιγθςθ λειτουργιϊν: τθν αρχι, ο ςθμαφόροσ ζχει μθδενικι ι κετικι τιμι Αν θ τιμι είναι κετικι, τότε θ τιμι αυτι ιςοφται με το πλικοσ των διεργαςιϊν που μποροφν να εκδϊςουν αίτθςθ αναμονισ και αμζςωσ να ςυνεχίςουν να εκτελοφνται Αν θ τιμι είναι μθδενικι, είτε εξαιτίασ τθσ αρχικοποίθςθσ είτε επειδι το πλικοσ των διεργαςιϊν που ζχει εκδϊςει αίτθςθ αναμονισ είναι ίςο με τθν αρχικι τιμι του ςθμαφόρου, τότε μπλοκάρεται θ επόμενθ διεργαςία που εκδίδει αίτθςθ αναμονισ και θ τιμι του ςθμαφόρου γίνεται αρνθτικι Η αρνθτικι τιμι ιςοφται με το πλικοσ των διεργαςιϊν που αναμζνουν να ξεμπλοκαριςτοφν

θμαφόροι (5/5) Αναλυτικά: Όταν κζλουμε να ειςζλκουμε ςτο κρίςιμο τμιμα μιασ διεργαςίασ (δθλαδι τθν πρόςβαςθ ςτο κοινό πόρο), τότε εκτελείται μια ενζργεια semwait ςτον αντίςτοιχο ςθμαφόρο Αν ο ςθμαφόροσ ζχει τιμι 0 τότε θ εντολι μπαίνει ςε κατάςταςθ blockwait Αν ο ςθμαφόροσ ζχει τιμι μεγαλφτερθ από 0 τότε ειςζρχεται ςτο κρίςιμο τμιμα αφοφ μειϊςει τθν τιμι κατά 1 Μόλισ βγει από το κρίςιμο τμιμα, τότε εκτελεί μια ενζργεια semsignal και ςτθν περίπτωςθ που περιμζνει μια διεργαςία ςε block-wait ενεργοποιείται και ο ςθμαφόροσ παραμζνει ςτο 0, ενϊ αν δεν περιμζνει μια διεργαςία τότε θ τρζχουςα τιμι αυξάνεται κατά 1

Δυαδικόσ θμαφόροσ (1/2) Είναι μια περιοριςμζνθ ζκδοςθ, θ οποία μπορεί να πάρει μόνο τισ τιμζσ 0 και 1 Προςδιορίηεται από τισ ακόλουκεσ λειτουργίεσ: Ο δυαδικόσ ςθμαφόροσ μπορεί να αρχικοποιθκεί λαμβάνοντασ είτε τθν τιμι 0 είτε τθν τιμι 1 Η λειτουργία semwaitb ελζγχει τθν τιμι του ςθμαφόρου Αν θ τιμι είναι ίςθ με μθδζν, τότε μπλοκάρεται θ διεργαςία που εκτελεί τθ semwaitb Αν θ τιμι είναι ίςθ με ζνα, τότε θ τιμι τροποποιείται και λαμβάνει τθν τιμι μθδζν και θ διεργαςία ςυνεχίηει να εκτελείται Η λειτουργία semsignalb κάνει ζλεγχο για να διαπιςτϊςει αν υπάρχουν διεργαςίεσ που είναι μπλοκαριςμζνεσ ςτο ςθμαφόρο αυτό(θ τιμι του ςθμαφόρου ιςοφται με μθδζν) Αν ιςχφει αυτό, τότε μια διεργαςία που ζχει μπλοκαριςτεί από μία λειτουργία semwaitb ξεμπλοκάρεται Αν δεν υπάρχουν μπλοκαριςμζνεσ διεργαςίεσ, τότε θ τιμι του ςθμαφόρου λαμβάνει τθν τιμι ζνα

Δυαδικόσ θμαφόροσ (2/2) Κατά κανόνα: Είναι ευκολότερθ θ υλοποίθςθ του δυαδικοφ ςθμαφόρου Μπορεί να αποδειχκεί πωσ ζχει τθν ίδια εκφραςτικι δφναμθ με το γενικό ςθμαφόρο Για να ξεχωρίηουν οι δφο τφποι ςθμαφόρων, ο μθ δυαδικόσ ςθμαφόροσ ςυχνά αναφζρεται είτε ωσ ςθμαφόροσ μζτρθςθσ είτε ωσ γενικόσ ςθμαφόροσ

Κλειδαριά Αμοιβαίου Αποκλειςμοφ (1/2) Κλειδαριά Αμοιβαίου Αποκλειςμοφ (mutual exclusion lock, mutex): Η mutex αποτελεί προγραμματιςτικι ςθμαία* που χρθςιμοποιείται για τθν απόκτθςθ και τθν αποδζςμευςθ κάποιου αντικειμζνου Όταν αποκτϊνται δεδομζνα τα οποία δεν μποροφν να αποτελζςουν αντικείμενο διαμοιραςμοφ ι εκκινείται επεξεργαςία θ οποία δε μπορεί να εκτελεςτεί ταυτόχρονα κάπου αλλοφ ςτο ςφςτθμα, τότε θ mutex τίκεται ςε κατάςταςθ κλειδϊματοσ (ςυνικωσ λαμβάνεται θ τιμι μθδζν), γεγονόσ που παρεμποδίηει οποιεςδιποτε άλλεσ προςπάκειεσ χρθςιμοποίθςισ τθσ Η mutex τίκεται ςε κατάςταςθ ξεκλειδϊματοσ όταν δεν απαιτοφνται πλζον τα δεδομζνα ι όταν ολοκλθρωκεί θ ρουτίνα *Λζξθ μνιμθσ που χρθςιμοποιείται ωσ μθχανιςμόσ ςυγχρονιςμοφ

Κλειδαριά Αμοιβαίου Αποκλειςμοφ (2/2) Η βαςικι διαφορά μεταξφ του δυαδικοφ ςθμαφόρου και τθσ mutex: Η διεργαςία που κλειδϊνει τθ mutex (κζτει ςε αυτιν τθν τιμι 0) πρζπει να είναι και αυτι που κα τθν ξεκλειδϊςει (κα κζςει ςε αυτιν τθν τιμι 1) τουσ δυαδικοφσ ςθμαφόρουσ ςυμβαίνει κάποια διεργαςία να κλειδϊςει κάποιον ςθμαφόρο και κάποια άλλθ διεργαςία να το ξεκλειδϊςει

Πολιτικζσ Διαχείριςθσ Ουράσ Σόςο για τουσ ςθμαφόρουσ μζτρθςθσ όςο και για τουσ δυαδικοφσ ςθμαφόρουσ χρθςιμοποιείται ουρά για τθ διατιρθςθ των διεργαςιϊν που αναμζνουν το ςθμαφόρου Με ποια ςειρά αφαιροφνται οι διεργαςίεσ από μία ουρά; Η πιο δίκαιθ πολιτικι απομάκρυνςθσ είναι θ πρϊτο-μζςαπρϊτο-ζξω (FIFO): Η διεργαςία που ζχει μπλοκάρει το μεγαλφτερο χρονικό διάςτθμα απελευκερϊνεται πρϊτθ από τθν ουρά Οι ςθμαφόροι που διακζτουν ςτον οριςμό τουσ τθν πολιτικι αυτι ονομάηονται ισχυροί σημαφόροι Οι ςθμαφόροι που δεν κακορίηουν τθ ςειρά με τθν οποία αφαιροφνται οι διεργαςίεσ από τθν ουρά, ονομάηονται ασθενείς σημαφόροι

Αμοιβαίοσ Αποκλειςμόσ Μόνο μία διεργαςία τθ φορά επιτρζπεται να βρίςκεται ςτο κρίςιμο τμιμα τθσ μεταξφ όλων των διεργαςιών που ζχουν κρίςιμα τμιματα για τον ίδιο πόρο ι για το ίδιο διαμοιραηόμενο αντικείμενο

Πρόβλθμα Αμοιβαίου Αποκλειςμοφ (1/2) Λφςθ προβλιματοσ με τθ χριςθ ενόσ ςθμαφόρου s: Ασ εξετάςουμε n διεργαςίεσ, το ςφνολο των οποίων χρειάηεται πρόςβαςθ ςτον ίδιο πόρο Κάκε διεργαςία ζχει ζνα κρίςιμο τμιμα που χρθςιμοποιείται για τθν πρόςβαςθ ςτον πόρο ε κάκε διεργαςία εκτελείται μια semwait (s), ακριβϊσ πριν το κρίςιμο τμιμα τθσ Αν θ τιμι του s είναι αρνθτικι, θ διεργαςία μπλοκάρεται Αν θ τιμι ιςοφται με 1, τότε μειϊνεται ςε 0 και θ διεργαςία αμζςωσ ζρχεται ςτο κρίςιμο τμιμα τθσ Επειδι ο s δεν είναι πλζον κετικόσ, καμία άλλθ διεργαςία δεν είναι ςε κζςθ να ειςζλκει ςτο κρίςιμο τμιμα τθσ

Πρόβλθμα Αμοιβαίου Αποκλειςμοφ (2/2) Λφςθ προβλιματοσ με τθ χριςθ ενόσ ςθμαφόρου s : Ο ςθμαφόροσ αρχικοποιείται λαμβάνοντασ τιμι ίςθ με 1 επομζνωσ, θ πρϊτθ διεργαςία που εκτελεί τθ semwait μπορεί να ειςζλκει ςτο κρίςιμο τμιμα αμζςωσ, κζτοντασ ςτον s τθν τιμι 0 Οποιαδιποτε άλλθ διεργαςία επιχειριςει να ειςζλκει ςτο κρίςιμο τμιμα, κα τον βρει απαςχολθμζνο και κα μπλοκαριςτεί μειϊνοντασ τον s κατά 1 Όταν θ διεργαςία που αρχικά ειςιλκε ςτο κρίςιμο τμιμα απζρχεται, αυξάνεται ο s και μία από τισ μπλοκαριςμζνεσ διεργαςίεσ, εφόςον υπάρχουν, αφαιρείται από τθν ουρά των μπλοκαριςμζνων διεργαςιϊν που ζχει ςχζςθ με το ςθμαφόρο και τοποκετείται ςτθν «ζτοιμθ» κατάςταςθ Σθν επόμενθ φορά που δρομολογείται από το Λ, μπορεί να ειςζλκει ςτο κρίςιμο τμιμα

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (1/9) Τπάρχει ζνασ ι περιςςότεροι παραγωγοί που παράγουν κάποιο τφπο δεδομζνων (εγγραφζσ, χαρακτιρεσ) και τα τοποκετοφν ςε ζναν απομονωτι Τπάρχει ζνασ καταναλωτισ που αναςφρει ςτοιχεία από τον απομονωτι, ζνα κάκε φορά το ςφςτθμα πρόκειται να τεκοφν κάποιοι περιοριςμοί για τθν παρεμπόδιςθ τθσ επικάλυψθσ των λειτουργιϊν του απομονωτι (οποιαδιποτε χρονικι ςτιγμι μόνο ζνασ ςυντελεςτισ μπορεί να προςπελάςει τον απομονωτι)

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (2/9) Σο πρόβλθμα είναι: Να διαςφαλιςκεί ότι ο παραγωγόσ δε κα προςπακιςει να προςκζςει δεδομζνα ςτον απομονωτι, εάν αυτόσ είναι γεμάτοσ Να διαςφαλιςκεί ότι ο καταναλωτισ δε κα προςπακιςει να αφαιρζςει δεδομζνα από ζναν κενό απομονωτι τθν ςυνζχεια παρουςιάηονται λφςεισ για το προαναφερόμενο πρόβλθμα, οι οποίεσ αναδείχνουν τόςο τα ιςχυρά ςθμεία των ςθμαφόρων όςο και τισ παγίδεσ που κρφβουν

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (3/9) Πρϊτθ πρόταςθ: Ασ υποκζςουμε ότι ο απομονωτισ είναι απεριόριςτοσ και ότι αποτελείται από γραμμικό πίνακα ςτοιχείων Ο παραγωγόσ μπορεί να παράγει ςτοιχεία και να τα αποκθκεφει ςτον απομονωτι με το δικό του ρυκμό κάκε φορά αυξάνεται ζνασ δείκτθσ (in) του απομονωτι Ο καταναλωτισ προχωράει με ανάλογο τρόπο αυξάνοντασ επίςθσ ζνα δείκτθ (out) Ο καταναλωτισ κα πρζπει να βεβαιωκεί ότι δεν επιχειρεί να διαβάςει από ζναν κενό απομονωτι Άρα πριν ξεκινιςει βεβαιϊνεται ότι ο παραγωγόσ προπορεφεται από αυτόν (in>out)

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (4/9) Πρϊτθ πρόταςθ : Αν υλοποιιςουμε το ςφςτθμα αυτό χρθςιμοποιϊντασ δυαδικοφσ ςθμαφόρουσ: Αντί να αςχολθκοφμε με τουσ δείκτεσ in και out, μποροφμε απλά να καταγράψουμε το πλικοσ των ςτοιχείων του απομονωτι ςε μία μεταβλθτι n (=in-out) Ο ςθμαφόροσ s χρθςιμοποιείται για τθν επιβολι του αμοιβαίου αποκλειςμοφ Ο ςθμαφόροσ delay χρθςιμοποιείται για να αναγκάςει τον καταναλωτι να περιμζνει ςτο semwait, αν ο απομονωτισ είναι κενόσ

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (5/9) Πρϊτθ πρόταςθ : Η λφςθ είναι αρκετά ςαφισ: Ο παραγωγόσ είναι ελεφκεροσ να προςκζςει δεδομζνα ςτον απομονωτι οποιαδιποτε χρονικι ςτιγμι Εκτελεί τθ semwaitb(s) πριν τθν προςκικθ και μετά τθ semsignalb(s) για τθν παρεμπόδιςθ είτε του καταναλωτι είτε οποιουδιποτε άλλου παραγωγοφ από τθν προςπζλαςθ του απομονωτι κατά τθ διάρκεια τθσ λειτουργίασ τθσ προςκικθσ Επίςθσ, ο παραγωγόσ, ενϊ βρίςκεται ςτο κρίςιμο τμιμα, αυξάνει τθν τιμι τθσ n Αν θ n=1, τότε ο απομονωτισ ιταν κενόσ πριν τθν προςκικθ και επομζνωσ ο παραγωγόσ εκτελεί τθ semsignalb(delay) ϊςτε να ειδοποιιςει τον καταναλωτι για το γεγονόσ αυτό Ο καταναλωτισ ξεκινά, αναμζνοντασ τθν παραγωγι του πρϊτου ςτοιχείου, χρθςιμοποιϊντασ τθ semwaitb(delay) Ζπειτα παίρνει ζνα ςτοιχείο και μειϊνει τθν τιμι τθσ n ςτο κρίςιμο τμιμα του Αν ο παραγωγόσ είναι ςε κζςθ να προθγείται του καταναλωτι (θ πιο ςυχνι περίπτωςθ), τότε θ n κα είναι κετικι, ςπάνια κα μπλοκαριςτεί ςτο ςθμαφόρο delay και καταναλωτισ και παραγωγόσ κα εκτελοφνται ομαλά

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (6/9) Μειονζκτθμα πρόταςθσ: Όταν ο καταναλωτισ ζχει εξαντλιςει τον απομονωτι, χρειάηεται να μθδενίςει το ςθμαφόρο delay, ζτςι ϊςτε να αναγκαςτεί να βρίςκεται ςε αναμονι μζχρι ο παραγωγόσ να τοποκετιςει περιςςότερα ςτοιχεία ςτον απομονωτι (αυτό γίνεται με τον ζλεγχο if n==0 semwaitb(delay)) Τπάρχει περίπτωςθ να ςυμβεί: Ο καταναλωτισ αποτυγχάνει νε εκτελζςει τθ λειτουργία semwaitb Ο καταναλωτισ πράγματι εξάντλθςε τον απομονωτι και ζκεςε ςτθ n τθν τιμι 0 αλλά ο παραγωγόσ αφξθςε τον n πριν να είναι ςε κζςθ να τον ελζγξει ο καταναλωτισ Άρα ο καταναλωτισ ζχει καταναλϊςει ςτοιχείο που δεν υπάρχει αδιζξοδο

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (7/9) Δεφτερθ πρόταςθ: Επίλυςθ του προαναφερόμενου προβλιματοσ είναι θ ειςαγωγι μια βοθκθτικισ μεταβλθτισ που μπορεί να οριςτεί ςτο κρίςιμο τμιμα του καταναλωτι, ϊςτε να χρθςιμοποιθκεί αργότερα Η προςζγγιςθ αυτι δεν οδθγεί ςε αδιζξοδο

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (8/9) Σρίτθ πρόταςθ: Μια πιο ξεκάκαρθ λφςθ μπορεί να δοκεί με τθ χριςθ γενικϊν ςθμαφόρων Η μεταβλθτι n αυτι τθ φορά αποτελεί ςθμαφόρο και θ τιμι τθσ εξακολουκεί να είναι ίςθ με το πλικοσ των ςτοιχείων του απομονωτι Η χριςθ των γενικϊν ςθμαφόρων επιλφει το πρόβλθμα που προαναφζρκθκε αλλά μπορεί να οδθγιςει πάλι ςε αδιζξοδο το ςφςτθμα Αν κατά λάκοσ οι λειτουργίεσ semwait(n) και semwait(s) αντιςτραφοφν και ο καταναλωτισ ειςζλκει ςτο κρίςιμο τμιμα του όταν ο απομονωτισ είναι κενόσ τότε κανζνασ παραγωγόσ δεν κα μπορεί ποτζ να προςκζςει ςτον απομονωτι και το ςφςτθμα καταλιγει ςε αδιζξοδο

Πρόβλθμα του Παραγωγοφ/Καταναλωτι (9/9) τθν πραγματικότθτα ο απομονωτισ διακζτει πεπεραςμζνθ χωρθτικότθτα: Η λφςθ ςτο πρόβλθμα δίνεται με τθ χριςθ ενόσ επιπλζον ςθμαφόρου e που θ τιμι του είναι ίςθ με το πλικοσ των κενϊν κζςεων ςτον απομονωτι

Βιβλιογραφία Stallings, W. (2017). Λειτουργικά Συςτιματα: Αρχζσ Σχεδίαςθσ. Εκδόςεισ Σηιόλα: Θεςςαλονίκθ.