ENOTHTA 4 A IEΞO O. Περιεχόµενα

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ENOTHTA 4 A IEΞO O. Περιεχόµενα"

Transcript

1 ENOTHTA 4 Περιεχόµενα 1. Aδιέξοδο 2. Eίδη πόρων 3. Συνθήκες αδιέξοδου 4. Aντιµετώπιση αδιέξοδου 5. Aγνόηση του αδιέξοδου 6. Πρόληψη του αδιέξοδου 7. Aνίχνευση και επανόρθωση αδιέξοδου 8. Aποφυγή αδιέξοδου 9. Oλοκληρωµένη πολιτική αδιέξοδου 10. Kλ ασσικά προβλήµατα ταυτοχρονίας 11. Tαυτοχρονία και αντιµετώπιση αδιέξοδου σε µερικά Λειτουργικά Συστήµατα 4-1

2 1. Aδιέξοδο Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο (deadlock) αν κάθε διεργασία του συνόλου περιµένει ένα γεγονός που µόνο µία άλλη διεργασία του συνόλου µπορεί να προκαλέσει. Eπειδή όλες οι διεργασίες του συνόλου περιµένουν, καµιά δεν θα προκαλέσει ποτέ κάποιο γεγονός για να ενεργοποιηθεί κάποια άλλη, και έτσι όλες οι διεργασίες θα περιµένουν για πάντα. Mε τον όρο γεγονός συνήθως αναφερόµαστε σε δέσµευση πόρων (resources) δηλαδή µνήµη, περιφερειακές συσκευές, την KME, κλπ. O αριθµός και είδος των διεργασιών και πόρων που εµπλέκονται σε αδιέξοδο δεν έχουν µεγάλη σηµασία. Όµως οι διάφοροι τύποι πόρων αναφορικά µε τη δυνατότητα επαναχρησιµοποίησής τους και τον τρόπο δέσµευσης και αποδέσµευσής τους από τις διεργασίες επηρεάζουν τη δηµιουργία και αντιµετώπιση του αδιέξοδου. 2. Eίδη πόρων Mε βάση τον τρόπο δέσµευσης και αποδέσµευσής τους έχουµε δύο είδη πόρων, όπου µόνο στη δεύτερη κατηγορία δηµιουργείται αδιέξοδο: τους προεκχωρήσιµους (preemptable) πόρους που µπορούν να αποδεσµευθούν από µία διεργασία χωρίς παρενέργειες, λ.χ. η µνήµη τους µη προεκχωρήσιµους (nonpreemptable) πόρους που δεν µπορούν να αποδεσµευθούν από µία διεργασία χωρίς παρενέργειες, λ.χ. µία συσκευή (όπως ο εκτυπωτής κατά τη διάρκεια χρήσης του). Mε βάση τη δυνατότητα επαναχρησιµοποίησης έχουµε δύο είδη πόρων: επαναχρησιµοποιήσιµες (reusable), π.χ. µνήµη, KME, κανάλια εισ/εξ, αναλώσιµες (consumable), π.χ. µηνύµατα, διακόπτες, κλπ. Kαι για τις δύο κατηγορίες πόρων µπορεί να υπάρξει αδιέξοδο αλλά στη δεύτερη περίπτωση είναι συνήθως πιο δύσκολο να εντοπιστεί. 4-2

3 2. Eίδη πόρων (συνέχεια) Παράδειγµα δηµιουργίας αδιέξοδου κατά τη χρήση συσκευών: P1 repeat Request(Disk); Request(Tape); Release(Tape); Release(Disk); forever P2 repeat Request(Tape); Request(Disk); Release(Disk); Release(Tape); forever Παράδειγµα δηµιουργίας αδιέξοδου κατά τη δέσµευση µνήµης. Yποθέτουµε ότι υπάρχουν διαθέσιµα για δέσµευση 200KB: P1 P2 Request 80K; Request 70K; Request 60K; Request 80K; Παράδειγµα δηµιουργίας αδιέξοδου κατά την ανταλλαγή µηνυµάτων (θεωρούµε ότι το Receive θέτει τη διεργασία υπό αναστολή αν δεν έχει αφιχθεί το µήνυµα): P1 Receive(P2,M); Send(P2,N); P2 Receive(P1,Q); Send(P1,R); 4-3

4 3. Συνθήκες αδιέξοδου Oι Coffman et al. (1971) έδειξαν ότι πρέπει να ικανοποιούνται τέσσερις συνθήκες για να οδηγηθούµε σε αδιέξοδο: H συνθήκη αµοιβαίου αποκλεισµού. Kάθε πόρος είτε είναι δεσµευµένος από µία µόνο διεργασία είτε είναι διαθέσιµος. H συνθήκη δέσµευσης και αναµονής (hold and wait). ιεργασίες που δεσµεύουν πόρους που τους εκχωρήθηκαν νωρίτερα µπορούν να ζητούν και νέους. H συνθήκη της µη προεκχώρησης. Πόροι που έχουν εκχωρηθεί σε µία διεργασία µπορούν να αποµακρυνθούν από τον έλεγχό της µόνο αν τους αποδεσµεύσει αυτή. H συνθήκη της κυκλικής αναµονής (circular wait). Πρέπει να υπάρχει µία κυκλική αλυσίδα δύο ή περισσοτέρων διεργασιών, κάθε µία από τις οποίες περιµένει έναν πόρο που είναι δεσµευµένος από το επόµενο µέλος της αλυσίδας, όπως δείχνει το παρακάτω σχήµα. A P1 P2 B Σηµειωτέον ότι πρέπει να ικανοποιούνται και οι τέσσερις συνθήκες για να δηµιουργηθεί αδιέξοδο. Oι πρώτες τρεις συνθήκες είναι αναγκαίες αλλά όχι και ικανές για τη δηµιουργία αδιέξοδου. H τέταρτη συνθήκη είναι πιθανό αποτέλεσµα της ύπαρξης των τριών πρώτων. H σηµαντική διαφορά µεταξύ των τριών πρώτων και της τέταρτης συνθήκης είναι ότι οι τρεις πρώτες έχουν να κάνουν µε αποφάσεις πολιτικής στη διαχείρηση των διεργασιών ενώ η τέταρτη αποτελεί πιθανή εξέλιξη µε βάση τον τρόπο αίτησης δέσµευσης, χρήσης και αποδέσµευσης των πόρων. 4-4

5 4. Aντιµετώπιση αδιέξοδου Σε γενικές γραµµές υπάρχουν τέσσερις στρατηγικές αντιµετώπισης του προβλήµατος του αδιέξοδου: Aπλή αγνόηση του προβλήµατος. Πρόληψη (prevention), µε συστηµατική αναίρεση µίας από τις τέσσερις αναγκαίες συνθήκες. Aνίχνευση (detection) ύπαρξης αδιέξοδου και επανόρθωσης (recovery). υναµική αποφυγή (avoidance) µε προσεκτική κατανοµή πόρων. 5. Aγνόηση του αδιέξοδου Ή άλλως ο αλγόριθµος της στρουθοκαµήλου. Aπλά δεν κάνουµε τίποτα. Όχι και τόσο λανθασµένη προσέγγιση όσο φαίνεται εκ πρώτης όψης. H λογική εδώ είναι ότι συνήθως το αδιέξοδο παρουσιάζεται τόσο σπάνια που είναι πιθανότερο µέσα σε µία συγκεκριµένη χρονική περίοδο το σύστηµα να καταρρεύσει (crash) από ένα µηχανικό λάθος παρά από τη δηµιουργία ενός αδιέξοδου. Oι περιορισµοί που πρέπει να επιβληθούν για την αντιµετώπιση του αδιέξοδου µε κάποιον από τους άλλους τρεις τρόπους είναι τόσο σοβαροί και αρκετοί που οι περισσότεροι χρήστες θα προτιµούσαν να αντιµετώπιζαν µία µικρή πιθανότητα δηµιουργίας αδιέξοδου µία φορά κάθε τόσο παρά να είναι υποχρεωµένοι να ακολουθούν συνεχώς περιοριστικούς κανόνες του τύπου µόνο ένα αρχείο ανοικτό ή µία διεργασία ενεργός ανά πάσα στιγµή. Tο δίληµµα µεταξύ απουσίας περιορισµών και ορθότητας από τη µία πλευρά και επιβολής αυστηρών περιορισµών από την άλλη δεν είναι εύκολο να επιλυθεί και δεν είναι τυχαίο ότι µοντέρνα λειτουργικά συστήµατα όπως το Unix έχουν οϊοθετήσει αυτή την πολιτική της αγνόησης του προβλήµατος. 4-5

6 6. Πρόληψη του αδιέξοδου H λογική εδώ είναι να εξασφαλίσουµε ότι τουλάχιστον µία από τις τέσσερις συνθήκες δηµιουργίας αδιέξοδου δεν µπορεί να ικανοποιηθεί. Στη γενική περίπτωση η συνθήκη του αµοιβαίου αποκλεισµού δεν µπορεί να αναιρεθεί διότι πολλοί πόροι (π.χ. KME, εκτυπωτές) απαιτούν αποκλειστική χρήση τους από µία διεργασία. H συνθήκη της δέσµευσης και αναµονής µπορεί να αναιρεθεί µε την εφαρµογή του περιορισµού ότι όλοι οι πόροι που χρειάζεται µία διεργασία θα πρέπει να ζητηθούν πριν αρχίσει η εκτέλεσή της. Aν οι πόροι είναι διαθέσιµοι, η διεργασία τούς δεσµεύει και εκτελείται, αλλιώς αν ένας ή περισσότεροι δεν είναι διαθέσιµοι, η διεργασία δεν δεσµεύει κανένα και περιµένει για µία χρονική περίοδο πριν ξαναδοκιµάσει. H µέθοδος αυτή έχει τα εξής προβλήµατα: εν είναι απαραίτητο µία διεργασία να γνωρίζει από την αρχή όλες τις ανάγκες της σε πόρους. Oι πόροι που εκχωρούνται σε µία διεργασία µένουν δεσµευµένοι από αυτήν περισσότερο χρόνο από όσο πραγµατικά τους χρειάζεται και έτσι δεν είναι διαθέσιµοι στις υπόλοιπες διεργασίες. Aν και θα µπορούσε να εκτελεσθεί ένα µέρος µίας διεργασίας µε λιγότερους πόρους, εν τούτοις παραµένει ανενεργό περιµένοντας τη δέσµευση όλων των πόρων που θα χρειασθεί συνολικά η διεργασία. H συνθήκη της µη προεκχώρησης είναι επίσης µάλλον αδύνατο να αναιρεθεί στη γενική περίπτωση (π.χ. την ώρα που τυπώνεται ένα αρχείο, ο εκτυπωτής δίνεται σε άλλη διεργασία!). Mπορεί να εφαρµοσθεί µόνο για πόρους όπου είναι εύκολη η αποθήκευση/αλλαγή καταστάσεων (π.χ. KME). H συνθήκη της κυκλικής αναµονής µπορεί να αναιρεθεί µε την απαρίθµηση όλων των πόρων και την επιβολή του περιορισµού ότι οι πόροι εκχωρούνται στις διεργασίες µε αριθµητική σειρά (ας πούµε από µικρότερο σε µεγαλύτερο). Eίναι αδύνατο εποµένως η διεργασία P1 να ζητάει κατά σειρά τους πόρους R3 και R4 και η διεργασία P2 τους πόρους R4 και R3, διότι δεν µπορούµε να έχουµε R4>R3. Έτσι αποφεύγονται κύκλοι. 4-6

7 7. Aνίχνευση και επανόρθωση αδιέξοδου Oι στρατηγικές πρόληψης του αδιέξοδου είναι πολύ συντηρητικές διότι επιβάλλουν περιορισµούς στον αριθµό και τρόπο εκχώρησης πόρων σε διεργασίες. Oι στρατηγικές της ανίχνευσης και επανόρθωσης δεν επιβάλλουν περιορισµούς αλλά περιοδικά ανιχνεύουν το σύστηµα για να εντοπίσουν αδιέξοδο και αν χρειασθεί να κάνουν επανόρθωση. H ανίχνευση µπορεί να γίνεται κάθε φορά που µία διεργασία ζητεί κάποιον πόρο αλλά σηµειωτέον ότι η ανίχνευση σπαταλά χρόνο της KME. H ανίχνευση γίνεται βασικά µέσω της υλοποίησης κάποιου από τους αλγόριθµους για εύρεση κύκλων σε κατευθυνόµενους γράφους (directed graphs) και αυτό γιατί η κυκλική αναµονή δηµιουργεί κύκλους στα γραφήµατα που αναπαριστούν την εκχώρηση των πόρων σε διεργασίες (όπως αυτό της παραγράφου 3). H επανόρθωση του αδιέξοδου µπορεί να γίνει µε τους εξής τρόπους: Aπλά, εξάλειψη όλων των διεργασιών εµπλεκόµενων σε αδιέξοδο. Oπισθοδρόµηση σε κάποιο παλαιότερο σηµείο όπου δεν υπήρχε αδιέξοδο και επανέναρξη εκτέλεσης των διεργασιών από εκείνο το σηµείο. Aπαιτεί την περιοδική αποθήκευση της κατάστασης του συστήµατος σε κάποια σηµεία ελέγχου (checkpoints). H πιθανότητα επανεµφάνισης του αδιέξοδου υπάρχει αλλά ελαχιστοποιείται λόγω της µη προκαθορισµένης συµπεριφοράς των συντρέχουσων διεργασιών. Σταδιακή εξάλειψη των διεργασιών που εµπλέκονται σε αδιέξοδο. H σειρά εξάλειψης καθορίζεται από τη λογική της ελαχιστοποίησης του κόστους επανεκτέλεσης µίας διεργασίας. Mετά την εξάλειψη µίας διεργασίας ο αλγόριθµος ανίχνευσης εκτελείται ξανά για να διαπιστωθεί αν το αδιέξοδο έχει εκλείψει. Σταδιακή προεκχώρηση πόρων σε διεργασίες που βρίσκονται σε αδιέξοδο µε την αποµάκρυνσή τους από άλλες διεργασίες. H διεργασία που έχασε ένα πόρο πρέπει να επιστρέψει στην κατάσταση που ήταν πριν τη δέσµευση του πόρου αυτού. Kαι εδώ πρέπει να ορισθούν τα κριτήρια µε βάση τα οποία επιλέγεται η διεργασία που θα χάσει ή θα πάρει πόρους. 4-7

8 7. Aνίχνευση και επανόρθωση αδιέξοδου (συνέχεια) Για τους δύο τελευταίους τρόπους επανόρθωσης του αδιέξοδου, η ιδανική διεργασία που πρέπει να επιλεγεί για να της αφαιρεθούν πόροι ή ακόµα και για να τερµατισθεί η εκτέλεσή της πρέπει να έχει: καταναλώσει τον λιγότερο χρόνο σε χρήση της KME, τον περισσότερο χρόνο για αποπεράτωσή της, παραγάγει τη λιγότερη ποσότητα αποτελεσµάτων, δεσµεύσει τους λιγότερους σε αριθµό πόρους, τη µικρότερη προτεραιότητα. 8. Aποφυγή αδιέξοδου H διαφορά µεταξύ πρόληψης και αποφυγής αδιέξοδου είναι ότι στην πρώτη περίπτωση ο στόχος είναι η παρεµπόδιση ικανοποίησης µίας τουλάχιστον από τις συνθήκες που το προκαλούν µέσω της επιβολής περιορισµών στις εκχωρήσεις πόρων ενώ στη δεύτερη περίπτωση επιτρέπεται η ικανοποίηση των πρώτων τριών συνθηκών αλλά εφ όσον δεν οδηγούν στην ικανοποίηση της τέταρτης. O έλεγχος γίνεται δυναµικά, κάθε φορά που εκχωρείται ένας νέος πόρος, αντίθετα µε τις µεθόδους στην περίπτωση της πρόληψης που είναι στατικοί. Yπάρχουν δύο προσεγγίσεις στο πρόβληµα της αποφυγής αδιέξοδου: Aποφυγή έναρξης εκτέλεσης µίας διεργασίας που µπορεί να προκαλέσει αδιέξοδο. Aποφυγή εκχώρησης ενός πόρου σε κάποια διεργασία αν αυτή η εκχώρηση µπορεί να προκαλέσει αδιέξοδο. H στρατηγική στην πρώτη προσέγγιση είναι ότι επιτρέπεται η έναρξη εκτέλεσης µίας διεργασίας αν το σύνολο των αναγκών της διεργασίας σε πόρους σε συνδυασµό και µε τις ανάγκες των υπάρχουσων διεργασιών δεν µπορεί να προκαλέσει αδιέξοδο. H στρατηγική αυτή κάθε άλλο παρά είναι βέλτιστη διότι υποθέτει ότι όλες οι εν ενεργεία διεργασίες θα ζητήσουν ταυτόχρονα όλους τους πόρους που χρειάζονται. 4-8

9 8. Aποφυγή αδιέξοδου (συνέχεια) H δεύτερη προσέγγιση, γνωστή και σαν αλγόριθµος του τραπεζίτη (banker s algorithm), προτάθηκε από τον Dijkstra το O αλγόριθµος του τραπεζίτη εξετάζει κάθε αίτηση για εκχώρηση ενός πόρου σε κάποια διεργασία και την ικανοποιεί µόνο αν αυτό οδηγεί σε ασφαλή κατάσταση. Mία κατάσταση είναι ασφαλής αν το σύστηµα δεν βρίσκεται σε αδιέξοδο και υπάρχει τρόπος να ικανοποιηθούν όλες οι εκκρεµείς αιτήσεις µε την εκτέλεση όλων των διεργασιών σε κάποια σειρά. Στην αντίθετη περίπτωση η κατάσταση είναι ανασφαλής. Πρέπει να τονισθεί ότι µία ανασφαλής κατάσταση δεν αποτελεί αδιέξοδο per se αλλά απλά υποδεικνύει ότι µπορεί να οδηγήσει σε αδιέξοδο και εποµένως πρέπει να αποφευχθεί. Aν θεωρήσουµε την απλούστερη περίπτωση µίας οµάδας διεργασιών που προσπαθούν να δεσµεύσουν ένα αριθµό πόρων του ιδίου τύπου, τότε η ακόλουθη κατάσταση είναι ασφαλής: Kωδικός Ποσότητα πόρων Mέγιστη ποσότητα πόρων διεργασίας που έχουν δεσµευθεί που µπορεί να δεσµευθούν ιαθέσιµοι πόροι: 2 Aν και οι δύο διαθέσιµοι πόροι δοθούν στη διεργασία 2, αυτή µπορεί να ολοκληρώσει την εκτέλεσή της, να αποδεσµεύσει τους 6 πόρους οι οποίοι µπορούν µετά να εκχωρηθούν στις διεργασίες 1 και 3. Έτσι όλες οι διεργασίες θα καταφέρουν τελικά να τερµατίσουν. 4-9

10 8. Aποφυγή αδιέξοδου (συνέχεια) Aντίθετα η ακόλουθη κατάσταση είναι ανασφαλής: Kωδικός Ποσότητα πόρων Mέγιστη ποσότητα πόρων διεργασίας που έχουν δεσµευθεί που µπορεί να δεσµευθούν ιαθέσιµοι πόροι: 1 Σε αυτή την περίπτωση όποια διεργασία και να δεσµεύσει τον τελευταίο διαθέσιµο πόρο θα µπορούσε να προκαλέσει αδιέξοδο αν µία από αυτές θα ήθελε κατόπιν και άλλους πόρους. Mία κατάσταση µπορεί από ασφαλής να µετατραπεί σε ανασφαλής. Aν στην περίπτωση της πρώτης κατάστασης, ένας από τους δύο διαθέσιµους πόρους δοθεί στην τρίτη διεργασία, η κατάσταση που προκύπτει είναι ανασφαλής: Kωδικός Ποσότητα πόρων Mέγιστη ποσότητα πόρων διεργασίας που έχουν δεσµευθεί που µπορεί να δεσµευθούν ιαθέσιµοι πόροι: 1 O λόγος που η νέα κατάσταση είναι ανασφαλής είναι διότι χρειάζονται πλέον τουλάχιστον δύο πόροι για να µπορέσει µία από τις διεργασίες 2 ή 3 να τελειώσει την εκτέλεσή της, οι οποίοι πόροι δεν υπάρχουν. O αλγόριθµος του τραπεζίτη µπορεί εύκολα να γενικευθεί για πόρους πολλών ειδών µε χρήση πινάκων δύο διαστάσεων που απεικονίζουν τη σχέση µεταξύ των διεργασιών, των αναγκών τους σε κάθε είδος πόρου και του διαθέσιµου αριθµού πόρων από κάθε είδος. 4-10

11 8. Aποφυγή αδιέξοδου (συνέχεια) O αλγόριθµος του τραπεζίτη είναι λιγότερο περιοριστικός από τις µεθόδους πρόληψης (δεν χρειάζεται καταφυγή σε αφαίρεση πόρων από µία διεργασία ή ακόµα και πρόωρο τερµατισµό της) αλλά έχει και αυτός µειονεκτήµατα: O µέγιστος αριθµός πόρων που µία διεργασία τυχόν θα χρειασθεί πρέπει να είναι γνωστός από την αρχή. O αριθµός των διαθέσιµων πόρων που υπάρχουν στο σύστηµα πρέπει να είναι σταθερός. Oι διεργασίες πρέπει να είναι ανεξάρτητες µεταξύ τους, ώστε η σειρά εκτέλεσής τους να µην δηµιουργεί προβλήµατα συγχρονισµού. Σε µοντέρνα λειτουργικά συστήµατα οι περιορισµοί αυτοί είναι πολύ αυστηροί και έτσι ελάχιστα συστήµατα χρησιµοποιούν αυτήν τη µέθοδο. 9. Oλοκληρωµένη πολιτική αδιέξοδου Mια και όλες οι προσεγγίσεις αντιµετώπισης του αδιέξοδου έχουν σοβαρά µειονεκτήµατα, ίσως το καλύτερο που µπορεί να γίνει είναι να οϊοθετούνται διαφορετικές στρατηγικές για διαφορετικές καταστάσεις. Συγκεκριµένα, οι Silberschatz, Peterson, και Galvin πρότειναν τα εξής: Oµαδοποίηση των πόρων σε κατηγορίες. Xρήση απαρίθµησης µεταξύ των κατηγοριών για πρόληψη αδιέξοδου. Xρήση της καλύτερης προσέγγισης για κάθε κατηγορία πόρων. Oι κατηγορίες πόρων που µπορούν να υπάρξουν (µε την αντίστοιχη καλύτερη προσέγγιση) είναι οι εξής: Περιφερειακή µνήµη (πρόληψη υπό την προϋπόθεση ότι το µέγιστο ποσό µνήµης που θα χρειασθεί είναι γνωστό). Aρχεία, συσκευές ανάγνωσης ταινιών και άλλα είδη πόρων των οποίων η χρήση µπορεί να είναι γνωστή εκ των προτέρων (αποφυγή). Kύρια µνήµη (πρόληψη µε τη µέθοδο της προεκχώρησης). Kανάλια E/E (πρόληψη µε τη µέθοδο της απαρίθµησης). 4-11

12 10. Kλασσικά προβλήµατα ταυτοχρονίας Tο πρόβληµα του παραγωγού-καταναλωτή είναι ένα κλασσικό πρόβληµα ταυτοχρονίας που δείχνει µερικά από τα προβλήµατα που πρέπει να αντιµετωπισθούν στο συντρέχοντα προγραµµατισµό. ύο άλλα κλασσικά προβλήµατα είναι των αναγνωστών και εγγραφέων (readers-writers) και των συνδαιτηµόνων φιλοσόφων (dining philosophers). Tο πρόβληµα των αναγνωστών και εγγραφέων µοντελοποιεί την πρόσβαση σε µία βάση δεδοµένων. Yπάρχει µία οµάδα από διεργασίες που προσπαθούν να διαβάσουν ταυτόχρονα µία περιοχή µνήµης και µία οµάδα από διεργασίες που προσπαθούν να γράψουν ταυτόχρονα στην περιοχή αυτή. Mόνο µία διεργασία µπορεί ανά πάσα στιγµή να γράφει αλλά πολλές να διαβάζουν. Tην ώρα που µία διεργασία γράφει καµµία άλλη δεν µπορεί να διαβάζει. Oι λύσεις που έχουν προταθεί για το συντονισµό των αναγνωστών και εγγραφέων είναι δύο ανάλογα µε το αν δίνουν προτεραιότητα στους µεν ή στους δε. H πιο απλή λύση είναι αυτή που δίνει προτεραιότητα στους αναγνώστες: όσο υπάρχουν αναγνώστες που διαβάζουν τα περιεχόµενα του χώρου µνήµης, όλες οι διεργασίες που θέλουν να γράψουν πρέπει να περιµένουν. Aυτό µπορεί να οδηγήσει σε παρατεταµένη στέρηση για τις διεργασίες που θέλουν να γράψουν. H δεύτερη λύση δίνει προτεραιότητα στους εγγραφείς: αν ένας εγγραφέας έχει ζητήσει να γράψει τότε δεν ικανοποιούνται καινούργιες αιτήσεις για διάβασµα µέχρι να ικανοποιηθεί το αίτηµά του. H λύση αυτή είναι πιο πολύπλοκη γιατί κάνει χρήση περισσότερων δοµών ελέγχου ταυτοχρονίας, αλλά είναι και πιο αποδοτική. Aκολουθεί η υλοποίηση των δύο λύσεων. 4-12

13 10. Kλασσικά προβλήµατα ταυτοχρονίας (συνέχεια) program Readers_Writers1; int readcount; semaphore x, wsem; procedure Reader; while true do wait(x); readcount:=readcount+1; if readcount=1 then wait(wsem); signal(x); < διάβασε κοινή περιοχή µνήµης > wait(x); readcount:=readcount-1; if readcount=0 then signal(wsem); signal(x); end end; procedure Writer; while true do wait(wsem); < γράψε στην κοινή περιοχή µνήµης > signal(wsem); end end; readcount:=0; x:=1; wsem:=1; par Reader; Writer; parend end. 4-13

14 10. Kλασσικά προβλήµατα ταυτοχρονίας (συνέχεια) program Readers_Writers2; int readcount, writecount; semaphore x, y, z, rsem, wsem; procedure Reader; while true do end; wait(z); wait(rsem); wait(x); readcount:=readcount+1; if readcount=1 then wait(wsem); signal(x); signal(rsem); signal(z); < διάβασε κοινή περιοχή µνήµης > wait(x); readcount:=readcount-1; if readcount=0 then signal(wsem); signal(x); end procedure Writer; while true do end; wait(y); writecount:=writecount+1; if writecount=1 then wait(rsem); signal(y); wait(wsem); < γράψε στην κοινή περιοχή µνήµης > signal(wsem); wait(y); writecount:=writecount-1; if writecount=0 then signal(rsem); signal(y); end readcount:=0; writecount:=0; x:=1; y:=1; z:=1; rsem:=1; wsem:=1; par Reader; Writer; parend end. 4-14

15 10. Kλασσικά προβλήµατα ταυτοχρονίας (συνέχεια) Tο πρόβληµα των συνδαιτηµόνων φιλοσόφων αποτελεί κλασσική περίπτωση συγχρονισµού και αποφυγής αδιέξοδου. Προτάθηκε και επιλύθηκε από τον Dijkstra το H ακόλουθη λύση είναι τόσο λανθασµένη όσο και η σωστότητά της είναι προφανής: program Dining_Philosophers1; [0:4] semaphore fork; int i, j; procedure Philosopher(int i); while true do think(); wait(fork[i]); wait(fork[(i+1) mod 5]); eat(); signal(fork[(i+1) mod 5]); signal(fork[i]); end end; for j:=0 to 4 do fork[j]:=1; par Philosopher(0); Philosopher(1); Philosopher(2); Philosopher(3); Philosopher(4); parend end. 4-15

16 10. Kλασσικά προβλήµατα ταυτοχρονίας (συνέχεια) Tο πρόβληµα µε την προηγούµενη λύση είναι ότι αν πεινάσουν ταυτόχρονα και οι 5 φιλόσοφοι και πιάσουν το αριστερό τους πηρούνι τότε στην προσπάθειά τους να πιάσουν και το δεξί δηµιουργείται αδιέξοδο. H ακόλουθη λύση δεν δηµιουργεί αδιέξοδο γιατί επιτρέποντας µόνο σε 4 φιλόσοφους ταυτόχρονα να γευµατίσουν επιτρέπει σε τουλάχιστον ένα να έχει 2 πηρούνια. program Dining_Philosophers2; [0:4] semaphore fork; semaphore room; /* όχι δυαδικός σηµαφόρος */ int i, j; procedure Philosopher(int i); while true do think(); wait(room); wait(fork[i]); wait(fork[(i+1) mod 5]); eat(); signal(fork[(i+1) mod 5]); signal(fork[i]); signal(room); end end; for j:=0 to 4 do fork[j]:=1; room:=4; par Philosopher(0); Philosopher(1); Philosopher(2); Philosopher(3); Philosopher(4); parend end. 4-16

17 11. Tαυτοχρονία και αντιµετώπιση αδιέξοδου σε µερικά Λ.Σ. Tο Unix παρέχει αρκετούς µηχανισµούς για συγχρονισµό διεργασιών και διαδιεργασιακή επικοινωνία (διοχετεύσεις, µηνύµατα, σηµαφόρους, κλπ.). O πιο καινοτοµικός είναι οι διοχετεύσεις (pipes) που αποτελούν ουσιαστικά υλοποίηση του µοντέλου του παραγωγού-καταναλωτή σε συνδυασµό µε µία επέκταση της ιδέας των συρρουτινών. Tο OS/2 επίσης παρέχει αρκετούς µηχανισµούς για συγχρονισµό διεργασιών και διαδιεργασιακή επικοινωνία παρεµφερείς µε αυτών του Unix. Στην περίπτωση των σηµαφόρων, το OS/2 επιτρέπει την αναστολή µίας διεργασίας µε τρόπο που να την ενεργοποιήσει όταν συµβεί κάποιο από µία σειρά γεγονότων. Eπίσης διαχωρίζονται οι σηµαφόροι κύριας µνήµης από τους κοινούς σηµαφόρους: οι πρώτοι είναι πιο γρήγοροι αλλά παρέχουν µόνο ένα µέρος της λειτουργικότητας των δεύτερων. Tο MVS υλοποιεί τον αµοιβαίο αποκλεισµό µε χρήση κλειδωµάτων (locks) και χρήση απαρίθµησης για αποφυγή αδιέξοδου. 4-17

6. Α ΙΕΞΟ Α Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 6.1 ΠΟΡΟΙ (1/2) Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήµατα: προεκχωρήσιµοι πόροι (preemptable resources):

Διαβάστε περισσότερα

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

ΑΔΙΕΞΟΔΑ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΑΔΙΕΞΟΔΑ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΑΔΙΕΞΟΔΑ 2 ΠΟΡΟΙ Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήματα: Προεκτοπίσιμοι πόροι

Διαβάστε περισσότερα

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

09/04/2014 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Μάθηµα: Α ΙΕΞΟ Α. ιδάσκων: Λειτουργικά Συστήµατα Ι Αν. Καθ. Κ. Λαµπρινουδάκης Α ΙΕΞΟ Α ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθηµα: Λειτουργικά Συστήµατα Ι Α ΙΕΞΟ Α ιδάσκων: Αν. Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr 1 Α ΙΕΞΟ Α 2 1 ΠΟΡΟΙ Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήµατα: Προεκτοπίσιµοι

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Αδιέξοδα Βασίλης Σακκάς 22/1/2014 1 Εισαγωγή Πόροι Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο (deadlock) αν κάθε διεργασία του συνόλου περιμένει ένα γεγονός που μόνο μια άλλη

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 6 «Αδιέξοδο» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αδιέξοδο 1. Ορισμοί είδη πόρων 2. Γράφοι εκχώρησης πόρων 3. Συνθήκες αδιεξόδου 4. Προσεγγίσεις αδιεξόδου

Διαβάστε περισσότερα

Αδιέξοδα (Deadlocks)

Αδιέξοδα (Deadlocks) Αδιέξοδα (Deadlocks) Περίληψη Αδιέξοδα (deadlocks) Τύποι πόρων (preemptable non preemptable) Μοντελοποίηση αδιεξόδων Στρατηγικές Στρουθοκαµηλισµός (ostrich algorithm) Ανίχνευση και αποκατάσταση (detection

Διαβάστε περισσότερα

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

ΑΔΙΕΞΟΔΑ (Deadlocks) Παράδειγμα 1 Θανάσιμο αγκάλιασμα (deadly embrace) Παράδειγμα 1 Ένα σύστημα με έναν εκτυπωτή και ένα σαρωτή εγγράφων Δύο διεργασίες Ρ1 και Ρ2 Η Ρ1 δεσμεύει τον εκτυπωτή Η Ρ2 δεσμεύει το σαρωτή Η Ρ1 ζητά το σαρωτή και εμποδίζεται Η Ρ2 ζητά τον εκτυπωτή

Διαβάστε περισσότερα

2.4 Κλασσικά Προβλήματα IPC

2.4 Κλασσικά Προβλήματα IPC 2.4 Κλασσικά Προβλήματα IPC 1 Οι φιλόσοφοι που γευματίζουν - Dining Philosophers Μια πρώτη λύση για Ν φιλοσόφους: philosopher (i) while (1) { think; take_fork(i);/* πάρε αριστερό ξυλάκι */ take_fork(i+1

Διαβάστε περισσότερα

6. Αδιέξοδο. 1. Ορισμοί είδη πόρων. 3. Συνθήκες αδιεξόδου. 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων

6. Αδιέξοδο. 1. Ορισμοί είδη πόρων. 3. Συνθήκες αδιεξόδου. 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων 6. Αδιέξοδο 1. Ορισμοί είδη πόρων 2. Γράφοι εκχώρησης πόρων 3. Συνθήκες αδιεξόδου 4. Προσεγγίσεις αδιεξόδου 1. Πρόληψη 2. Αποφυγή 3. Ανίχνευση 5. Το πρόβλημα των συνδαιτημόνων φιλοσόφων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 6 : Αδιέξοδο 1/2 Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Κεφάλαιο 6 Αδιέξοδο Μόνιµη αναµονή ενός συνόλου διεργασιών οι οποίες ανταγωνίζονται για πόρους του συστήµατος ή για να επικοινωνήσουν µεταξύ τους εν υπάρχει

Διαβάστε περισσότερα

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Το Πρόβλημα του Αδιεξόδου Ένα σύνολο από διεργασίες σε αναμονή, όπου η κάθε μια κατέχει έναν αριθμό από πόρους και περιμένει να αποκτήσει και έναν

Διαβάστε περισσότερα

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή

Διαβάστε περισσότερα

Περιεχόμενα. Αδιέξοδο

Περιεχόμενα. Αδιέξοδο ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 5 (Κεφάλαιο 6) Αδιέξοδο και Παρατεταμένη

Διαβάστε περισσότερα

ENOTHTA 5 XPONO POMOΛOΓHΣH

ENOTHTA 5 XPONO POMOΛOΓHΣH ENOTHTA 5 Περιεχόµενα 1. Xρονοδροµολόγηση 2. Eίδη χρονοδροµολόγησης 3. Στόχοι και κριτήρια της χρονοδροµολόγησης 4. Tαξινόµηση αλγόριθµων χρονοδροµολόγησης 5. Xρονοδροµολόγηση µε βάση τον χρόνο εισόδου

Διαβάστε περισσότερα

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Αδιέξοδα Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin and Gange,

Διαβάστε περισσότερα

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN ENOTHTA 8 Περιεχόµενα 1. οµή αρχείων 2. Λειτουργίες επί των αρχείων 3. Oργάνωση αρχείων 4. Iδιοχαρακτηριστικά αρχείων 5. Kατάλογοι αρχείων 6. ιαχείριση του χώρου του δίσκου 7. Yλοποίηση αρχείων 8-1 1.

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΔΙΕΞΟΔΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 5 ΑΔΙΕΞΟΔΑ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 7 : Αδιέξοδο 2/2 Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Αδιέξοδα ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Αδιέξοδα Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin and Gange,

Διαβάστε περισσότερα

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

Διαβάστε περισσότερα

ENOTHTA 9 AΣΦAΛEIA KAI ΠPOΣTAΣIA

ENOTHTA 9 AΣΦAΛEIA KAI ΠPOΣTAΣIA ENOTHTA 9 Περιεχόµενα 1. Aσφάλεια vs Προστασία 2. Aσφάλεια 3. Προϋποθέσεις για ύπαρξη ασφάλειας 4. Eίδη απειλών 5. Σχεδιαστικές αρχές για ασφάλεια 6. Mηχανισµοί προστασίας 9-1 1. Aσφάλεια vs Προστασία

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 4β: Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 4α: Σημαφόροι, Πρόβλημα Συνδαιτυμόνων Φιλοσόφων, Αδιέξοδα Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Αμοιβαίος αποκλεισμός

Αμοιβαίος αποκλεισμός Αμοιβαίος αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού II. Υποστήριξη εκ μέρους του υλικού III. Σηματοφορείς 4. Κλασσικά

Διαβάστε περισσότερα

Διεργασίες (Processes)

Διεργασίες (Processes) Διεργασία (process) ή καθήκον (task) Διεργασίες (Processes) στοιχειώδης οντότητα/δραστηριότητα υπολογισμού (processing entity/activity) εκτέλεση ενός προγράμματος ένα (κύριο) νήμα (thread)/ρεύμα ελέγχου/εκτέλεσης

Διαβάστε περισσότερα

ENOTHTA 3 ΣYNTPEXΩN ΠPOΓPAMMATIΣMOΣ

ENOTHTA 3 ΣYNTPEXΩN ΠPOΓPAMMATIΣMOΣ ENOTHTA 3 Περιεχόµενα 1. Oι έννοιες του ταυτοχρονισµού και συντρέχοντα προγραµµατισµού 2. Συρρουτίνες 3. Aλληλεπίδραση µεταξύ διεργασιών 4. Aνταγωνισµός µεταξύ διεργασιών 5. Συνεργασία µεταξύ διεργασιών

Διαβάστε περισσότερα

ENOTHTA 2 IEPΓAΣIEΣ: ΠEPIΓPAΦH KAI EΛEΓXOΣ

ENOTHTA 2 IEPΓAΣIEΣ: ΠEPIΓPAΦH KAI EΛEΓXOΣ ENOTHTA 2 Περιεχόµενα 1. Aνάγκη για ύπαρξη διεργασιών 2. Kαταστάσεις διεργασιών 3. Aναπαράσταση των διεργασιών στο Λειτουργικό Σύστηµα 4. Έ λεγχος διεργασιών 5. Eκτέλεση του Λειτουργικού Συστήµατος 6.

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

Γιατί υϖάρχει τέτοια καθολική κατάσταση;

Γιατί υϖάρχει τέτοια καθολική κατάσταση; ΥΛΟΠΟΙΗΣΗ ΚΑΤΑΧΩΡΗΤΩΝ ΑΝΑΓΝΩΣΗΣ/ΕΓΓΡΑΦΗΣ Καταχωρητές που µοιάζουν πιο πολύπλοκοι µπορούν να υλοποιηθούν από απλούστερους καταχωρητές. Multi-valued from Binary Βασικό Αντικείµενο: δυαδικός καταχωρητής ο

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Κεφάλαιο 6ο: Αδιέξοδα ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Κεφάλαιο 6ο: Αδιέξοδα 1 3.1 Εισαγωγή Αδιέξοδο = ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα όπου κάθε process στην αλυσίδα δεν μπορεί να προχωρήσει και περιμένει

Διαβάστε περισσότερα

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

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση Οι διαφάνειες

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθηµα 1 Ο ρόλος του ΛΣ Υλικό Υπολογιστικό σύστηµα Λειτουργικό σύστηµα Λογισµικό Προγράµµατα εφαρµογής Στόχοι του ΛΣ Χρήστες ιευκόλυνση των χρηστών ιευκόλυνση

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 6: Πόροι. Αδιέξοδα & Αποφυγή αδιεξόδων. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός

Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει

Διαβάστε περισσότερα

Αποτίµησηκαθολικού κατηγορήµατος

Αποτίµησηκαθολικού κατηγορήµατος Αποτίµησηκαθολικού κατηγορήµατος Εισαγωγή Ιδιότητες καθολικών κατηγορηµάτων Αδιέξοδα Ανίχνευση αδιεξόδων Συγκεντρωτική ανίχνευση Ιεραρχική ανίχνευση Κατανεµηµένη ανίχνευση Επανόρθωση αδιεξόδων Κατανεµηµένος

Διαβάστε περισσότερα

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1 Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 5 «Αμοιβαίος Αποκλεισμός» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αμοιβαίος Αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του

Διαβάστε περισσότερα

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

επιµέλεια Θοδωρής Πιερράτος Βασικές έννοιες προγραµµατισµού Η ύλη που αναπτύσσεται σε αυτό το κεφάλαιο είναι συναφής µε την ύλη που αναπτύσσεται στο 2 ο κεφάλαιο. Όπου υπάρχουν διαφορές αναφέρονται ρητά. Προσέξτε ιδιαίτερα, πάντως,

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ

ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΣΤΑΘΕΡΕΣ ΜΕΤΑΒΛΗΤΕΣ ΓΛΩΣΣΑ ΑΛΦΑΒΗΤΟ Κεφαλαία και μικρά γράμματα ελληνικού αλφαβήτου: Α Ω και α ω Κεφαλαία και μικρά γράμματα λατινικού αλφαβήτου: A Z και a z Αριθμητικά ψηφία: 0 9 Ειδικοί χαρακτήρες: + - * / =. ( ),! & κενός

Διαβάστε περισσότερα

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 1 Λύσεις (α) Χρησιμοποιούμε τις επιπλέον μεταβλητές PC 0, PC 1, (program counters) οι οποίες παίρνουν ως τιμές ονόματα των γραμμών του κώδικα όπως φαίνεται πιο κάτω. P[0] P[1]

Διαβάστε περισσότερα

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

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1 ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος

Διαβάστε περισσότερα

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

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1 Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος

Διαβάστε περισσότερα

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ / Γ ΕΠΑΛ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 27/01/2013 ΘΕΜΑ Α Α1. Να χαρακτηρίσετε τις προτάσεις που ακολουθούν, γράφοντας δίπλα στο γράμμα που αντιστοιχεί σε κάθε πρόταση τη

Διαβάστε περισσότερα

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα

Διαβάστε περισσότερα

ENOTHTA 7 IAXEIPIΣH ΣYΣKEYΩN E/E & AΠOΘHKEYΣHΣ

ENOTHTA 7 IAXEIPIΣH ΣYΣKEYΩN E/E & AΠOΘHKEYΣHΣ ENOTHTA 7 IAXEIPIΣH ΣYΣKEYΩN E/E & AΠOΘHKEYΣHΣ Περιεχόµενα 1. Συσκευές εισόδου/εξόδου 2. Aπευθείας προσπέλαση µνήµης 3. Pόλος του Λειτουργικού Συστήµατος στη διαχείριση των συσκευών E/E 4. ιαχείριση δίσκου

Διαβάστε περισσότερα

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 5: Αδιέξοδα Συγχρονισμός στον Πραγματικό Κόσμο Χρειάζεται οποτεδήποτε > 1 χρήστης πόρου Λίγο πολύ οι ίδιες λύσεις με τον πραγματικό κόσμο: κλείδωμα (στo WC), χρονοπρογραμματισμός

Διαβάστε περισσότερα

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Χρήση Συντονιστή Αλγόριθμος του Lamport Αλγόριθμος LeLann:

Διαβάστε περισσότερα

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

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 664: Ανάλυση και Επαλήθευση Συστημάτων ΕΝΔΙΑΜΕΣΗ ΕΞΕΤΑΣΗ ΗΜΕΡΟΜΗΝΙΑ : Πέμπτη, 21 Μαρτίου 2013 ΔΙΑΡΚΕΙΑ : 14:00 16:00 ΔΙΔΑΣΚΟΥΣΑ : Άννα Φιλίππου Ονοματεπώνυμο:

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση

Διαβάστε περισσότερα

Νήµατα. Πολύ σηµαντικό

Νήµατα. Πολύ σηµαντικό Νήµατα Πολύ σηµαντικό 1 Νήµατα (συν.) Σηµαντικό 2 Νήµατα vs ιεργασίες Νήµατα ιεργασίες Χώρος εδοµένων Περιγραφητές Αρχείων fork exit exec Σήµατα Κοινός. Ότι αλλάζει το 1 νήµα το βλέπουν/ αλλάζουν και τα

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα. ΚΕΦΑΛΑΙΟ 7 ο 1. Επιλογή της κατάλληλης γλώσσας προγραµµατισµού Εκατοντάδες γλώσσες προγραµµατισµού χρησιµοποιούνται όπως αναφέρθηκε σήµερα για την επίλυση των προβληµάτων µε τον υπολογιστή, τη δηµιουργία

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός

Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Παράλληλη Επεξεργασία Κεφάλαιο 6 ο Σύγχρονος Παραλληλισμός Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

Διαβάστε περισσότερα

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Προπτυχιακό Πρόγραμμα Σπουδών Πληροφορική - ΠΛΗ 11-2005 - 06 ΕΠΑΝΑΛΗΠΤΙΚΗ ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ 8 ΙΟΥΛΙΟΥ 2006 ΜΕΡΟΣ Α'. ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 45 ] Σε κάθε ερώτηση απαντάτε επιλέγοντας

Διαβάστε περισσότερα

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

Διαβάστε περισσότερα

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει.

Απλοποιεί τα γεγονότα έτσι ώστε να περιγράφει τι έχει γίνει και όχι πως έχει γίνει. οµηµένες τεχνικές Ο στόχος των δοµηµένων τεχνικών είναι: Υψηλής ποιότητας προγράµµατα Εύκολη τροποποίηση προγραµµάτων Απλοποιηµένα προγράµµατα Μείωση κόστους και χρόνου ανάπτυξης. Οι βασικές αρχές τους

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε:

ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: ΙΑΧΕΙΡΙΣΗ ΟΣΟΛΗΨΙΩΝ Να θυµηθούµε: Μια βάση δεδοµένων είναι σε συνεπή κατάσταση (consistent state) εάν όλοι οι περιορισµοί ακεραιότητας που έχουν δηλωθεί για αυτήν πληρούνται. Οι αλλαγές στην κατάσταση

Διαβάστε περισσότερα

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 6: Πόροι. Αδιέξοδα & Αποφυγή αδιεξόδων. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης. Περιεχόμενα. Ανάγκη για διαχείριση μνήμης. Βασικές αρχές διαχείρισης μνήμης.

Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης. Περιεχόμενα. Ανάγκη για διαχείριση μνήμης. Βασικές αρχές διαχείρισης μνήμης. ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 7 (Κεφάλαιο 7) Διαχείριση Μνήμης Οι

Διαβάστε περισσότερα

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

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε Οµοφωνία σε σύστηµα µε αϖοτυχίες κατάρρευσης διεργασιών Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες

Διαβάστε περισσότερα

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ

2ο ΓΕΛ ΑΓ.ΔΗΜΗΤΡΙΟΥ ΑΕΠΠ ΘΕΟΔΟΣΙΟΥ ΔΙΟΝ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΠΡΟΣΟΧΗ ΣΤΑ ΠΑΡΑΚΑΤΩ ΣΤΑΘΕΡΕΣ είναι τα μεγέθη που δεν μεταβάλλονται κατά την εκτέλεση ενός αλγόριθμου. Εκτός από τις αριθμητικές σταθερές (7, 4, 3.5, 100 κλπ), τις λογικές σταθερές (αληθής και ψευδής)

Διαβάστε περισσότερα

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως

Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται ως Αµοιβαίος Αϖοκλεισµός Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Ασύγχρονο Σύστηµα ιαµοιραζόµενης Μνήµης Το σύστηµα περιέχει n διεργασίες p 0,, p n-1 και m καταχωρητές R 0,, R m-1. Κάθε διεργασία µοντελοποιείται

Διαβάστε περισσότερα

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες] Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση

Διαβάστε περισσότερα

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

Κεφάλαιο 3: Λειτουργικά Συστήµατα Κεφάλαιο 3: Λειτουργικά Συστήµατα B Μέρος Συντονισµός Δραστηριοτήτων Υπολογιστή Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Εισαγωγή Σήµερα θα περιγράψουµε πως ένα λειτουργικό

Διαβάστε περισσότερα

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

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ Καθ. Παπαδάκη Αν. Λειτουργικά Συστήματα 1 Περιγραφή Διεργασίας Στους υπολογιστές που έχουν μια μόνο ΚΜΕ, σε κάθε χρονική στιγμή μπορεί να εκτελείται μια μόνο εντολή γλώσσας

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 5 : Αμοιβαίος Αποκλεισμός Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων ΕΠΑΛ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική- 2015-2016 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 Εισαγωγή Η εντολή IF Οι εντολές ενός προγράµµατος εκτελούνται διαδοχικά η µία µετά την

Διαβάστε περισσότερα

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1

Οι πράξεις της συνένωσης. Μ.Χατζόπουλος 1 Οι πράξεις της συνένωσης Μ.Χατζόπουλος 1 ΠΡΟΜΗΘΕΥΤΗΣ (ΠΡΜ) Κ_Προμ Π_Ονομα Είδος Πόλη 22 Ανδρέου 7 Αθήνα 31 Πέτρου 8 Πάτρα 28 Δέδες 12 Λάρισα 58 Παππάς 7 Αθήνα ΠΡΟΙΟΝ (ΠΡ) Κ_Πρ Πρ_Ονομα Χρώμα Βάρος Π35

Διαβάστε περισσότερα

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 5: Διεργασίες ΙΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

Διαβάστε περισσότερα

Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1

Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Υλοποίηση σηματοφόρων Οι σηματοφόροι είναι ένας ΑΤΔ με συγκεκριμένες λειτουργίες πρόσβασης Μπορεί να υλοποιηθούν με «φυσικό»

Διαβάστε περισσότερα

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

Διαβάστε περισσότερα

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων ΕΠΑΛ ΧΡΥΣΟΥΠΟΛΗΣ Γ Πληροφορική- 2015-2016 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 Εισαγωγή Η εντολή Στο 4 ο κεφάλαιο γνωρίσαµε την δοµή πολλαπλής επιλογής στην οποία

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #4

ιαφάνειες παρουσίασης #4 ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης #4!Λοιπές εντολές!

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #3 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #3 2 Γενικά Στο Τετράδιο #3 του Εργαστηρίου θα εξοικειωθούμε με τη χρήση της εντολής πολλαπλής

Διαβάστε περισσότερα

4.3. Γραµµικοί ταξινοµητές

4.3. Γραµµικοί ταξινοµητές Γραµµικοί ταξινοµητές Γραµµικός ταξινοµητής είναι ένα σύστηµα ταξινόµησης που χρησιµοποιεί γραµµικές διακριτικές συναρτήσεις Οι ταξινοµητές αυτοί αναπαρίστανται συχνά µε οµάδες κόµβων εντός των οποίων

Διαβάστε περισσότερα

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4)

Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Ανάλυση της Ορθότητας Προγραμμάτων (HR Κεφάλαιο 4) Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Η διαδικαστική γλώσσα προγραμματισμού WHILE Τριάδες Hoare Μερική και Ολική Ορθότητα Προγραμμάτων Κανόνες

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ )

Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ ) Κεφάλαιο 7 ο Βασικές Έννοιες Προγραμματισμού (σελ. 147 159) Για τις γλώσσες προγραμματισμού πρέπει να έχουμε υπόψη ότι: Κάθε γλώσσα προγραμματισμού σχεδιάζεται για συγκεκριμένο σκοπό, δίνοντας ιδιαίτερη

Διαβάστε περισσότερα

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1 Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός

Διαβάστε περισσότερα

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

Διαβάστε περισσότερα

7. Βασικά στοιχεία προγραµµατισµού.

7. Βασικά στοιχεία προγραµµατισµού. 7. Βασικά στοιχεία προγραµµατισµού. ΗΜ01-Θ1Γ Δίνονται οι παρακάτω έννοιες: 1. Λογικός τύπος δεδοµένων 2. Επιλύσιµο 3. Ακέραιος τύπος δεδοµένων 4. Περατότητα 5. Μεταβλητή 6. Ηµιδοµηµένο 7. Πραγµατικός τύπος

Διαβάστε περισσότερα

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

Διαβάστε περισσότερα