ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Παναγιώτα Φατούρου. Παύλος Σπυράκης

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

Download "ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Παναγιώτα Φατούρου. Παύλος Σπυράκης"

Transcript

1 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Παναγιώτα Φατούρου Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων Παύλος Σπυράκης Τµήµα Μηχανικών Η/Υ και Πληροφορικής, Πανεπιστήµιο Πατρών & Ινστιτούτο Τεχνολογίας Υπολογιστών Σεπτέµβριος 2007

2 ΑΚΟΥΓΕ ΟΤΑΝ ΜΙΛΑΣ Μη λες πολύ συχνά ότι έχεις δίκιο δάσκαλε! Άσε να το δουν κι οι µαθητές! Μην πιέζεις πολύ την αλήθεια, εν το αντέχει. Άκουγε όταν µιλάς! Μπέρτολτ Μπρεχτ από τη συλλογή «76 Ποιήµατα»

3 Πίνακας Περιεχοµένων 1 ΕΙΣΑΓΩΓΗ ΣΎΝΤΟΜΗ ΑΝΑΣΚΌΠΗΣΗ ΥΛΙΚΟΎ ΥΠΟΛΟΓΙΣΤΏΝ ΣΚΟΠΌΣ & ΥΠΗΡΕΣΊΕΣ ΕΝΌΣ ΛΣ ΠΟΛΥΠΡΟΓΡΑΜΜΑΤΙΣΜΌΣ ΚΑΙ ΙΑΜΟΙΡΑΣΜΌΣ ΧΡΌΝΟΥ ΚΑΤΑΣΤΆΣΕΙΣ ΛΕΙΤΟΥΡΓΊΑΣ ΣΥΣΤΗΜΆΤΩΝ ΤΑ ΚΎΡΙΑ ΜΈΡΗ ΕΝΌΣ ΛΕΙΤΟΥΡΓΙΚΟΎ ΣΥΣΤΉΜΑΤΟΣ ΚΑΤΑΝΕΜΗΜΈΝΑ ΣΥΣΤΉΜΑΤΑ & ΣΥΣΤΉΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΎ ΧΡΌΝΟΥ ΓΙΑ ΠΕΡΙΣΣΌΤΕΡΗ ΜΕΛΈΤΗ ΒΙΒΛΙΟΓΡΑΦΙΚΈΣ ΑΝΑΦΟΡΈΣ ΙΕΡΓΑΣΙΕΣ ΧΡΟΝΟ ΡΟΜΟΛΟΓΗΣΗ ΙΕΡΓΑΣΙΩΝ ΙΕΡΓΑΣΊΕΣ ΚΑΤΑΣΤΆΣΕΙΣ ΙΕΡΓΑΣΙΏΝ ΤΟ ΜΠΛΟΚ ΕΛΈΓΧΟΥ ΙΕΡΓΑΣΙΏΝ ΛΕΙΤΟΥΡΓΊΕΣ ΕΠΊ ΙΕΡΓΑΣΙΏΝ ΙΑΚΟΠΈΣ ΧΡΟΝΟ ΡΟΜΟΛΌΓΗΣΗ ΑΛΓΌΡΙΘΜΟΙ ΧΡΟΝΟ ΡΟΜΟΛΌΓΗΣΗΣ Πρώτη Εισερχόµενη Πρώτη Εξυπηρετούµενη (First Come First Served, FCFS) Εκ Περιτροπής (Round Robin, RR) Προτεραιοτήτων (Priority) Θεωρητική Μελέτη Απόδοσης Χρονοδροµολογητών ΒΙΒΛΙΟΓΡΑΦΙΚΈΣ ΑΝΑΦΟΡΈΣ ΙΑ ΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ & ΣΥΓΧΡΟΝΙΣΜΟΣ ΤΑΥΤΌΧΡΟΝΗ ΕΚΤΈΛΕΣΗ ΙΕΡΓΑΣΙΏΝ Η ΑΝΆΓΚΗ ΣΥΓΧΡΟΝΙΣΜΟΎ ΤΟ ΠΡΌΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΊΟΥ ΑΠΟΚΛΕΙΣΜΟΎ ΛΎΣΕΙΣ ΜΕ ΤΗ ΒΟΉΘΕΙΑ ΤΟΥ ΥΛΙΚΟΎ ΛΎΣΕΙΣ ΜΕ ΧΡΉΣΗ ΛΟΓΙΣΜΙΚΟΎ ΜΌΝΟ Πρώτες Προσπάθειες προς την λύση Λύση του Peterson ΣΗΜΑΦΌΡΟΙ ΠΡΟΒΛΉΜΑΤΑ ΙΑ ΙΕΡΓΑΣΙΑΚΉΣ ΕΠΙΚΟΙΝΩΝΊΑΣ Για Προθέρµανση Το Πρόβληµα του Ζωολογικού Κήπου (Θέµα 6, Α Τελική Εξέταση, Ιούνιος 2003) Το Πρόβληµα του Κουρέα (Θέµα 3Β, Α Τελική Εξέταση, Μάιος 2001) Το Πρόβληµα των Αναγνωστών-Εγγραφέων Για περισσότερη εξάσκηση Γενικές Παρατηρήσεις ΚΡΊΣΙΜΕΣ ΠΕΡΙΟΧΈΣ ΚΑΙ ΚΡΊΣΙΜΕΣ ΠΕΡΙΟΧΈΣ ΥΠΌ ΣΥΝΘΉΚΗ ΛΊΓΟ ΠΙΟ ΎΣΚΟΛΑ Λύση του Lamport (Bakery Algorithm) Λύση του Dekker ικαιοσύνη Προσοµοιώσεις ΒΙΒΛΙΟΓΡΑΦΙΚΈΣ ΑΝΑΦΟΡΈΣ ΠΑΡΑΡΤΗΜΑ Ι ΜΟΡΦΗ ΨΕΥ ΟΚΩ ΙΚΑ ΠΕΡΙΓΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ ΙΕΡΓΑΣΙΑΣ Πρόταση ήλωσης Μεταβλητών Πρόταση Καταχώρησης Βρόγχοι Προτάσεις Ελέγχου

4 Πρόταση goto Πίνακες και οµές Typedef Συναρτήσεις Άλλα Θέµατα ΒΙΒΛΙΟΓΡΑΦΙΑ

5 Πίνακας Σχηµάτων ΣΧΗΜΑ 1: ΒΑΣΙΚΗ ΟΡΓΑΝΩΣΗ ΕΝΟΣ ΥΠΟΛΟΓΙΣΤΗ ΣΧΗΜΑ 2: ΣΧΕΣΗ ΤΟΥ ΛΣ ΜΕ ΤΟ ΥΛΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΑΙ ΤΟΥΣ ΧΡΗΣΤΕΣ ΣΧΗΜΑ 3: ΓΡΑΦΗΜΑ ΚΑΤΑΣΤΑΣΕΩΝ ΙΕΡΓΑΣΙΑΣ ΣΧΗΜΑ 4: ΤΟ PCB ΜΙΑΣ ΙΕΡΓΑΣΙΑΣ ΣΧΗΜΑ 5: Η ΟΥΡΑ ΕΤΟΙΜΩΝ ΙΕΡΓΑΣΙΩΝ ΣΧΗΜΑ 6: ΣΧΗΜΑΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΗΣ ΧΡΟΝΟ ΡΟΜΟΛΟΓΗΣΗΣ ΙΕΡΓΑΣΙΩΝ ΣΧΗΜΑ 7: ΕΙ ΟΣ ΡΟΜΟΛΟΓΗΣΗΣ ΠΟΥ ΠΑΡΕΧΕΤΑΙ ΑΠΟ ΤΟΥΣ ΧΡΟΝΟ ΡΟΜΟΛΟΓΗΤΕΣ ΚΜΕ ΚΑΙ ΜΝΗΜΗΣ- ΙΣΚΟΥ ΣΧΗΜΑ 8: ΠΙΝΑΚΑΣ ΧΡΟΝΟ ΡΟΜΟΛΟΓΗΣΗΣ ΓΙΑ ΤΟΝ ΑΛΓΟΡΙΘΜΟ RR ΣΧΗΜΑ 9: ΙΑΓΡΑΜΜΑΤΑ GANNT ΓΙΑ ΤΟΥΣ ΑΛΓΟΡΙΘΜΟΥΣ ΧΡΟΝΟ ΡΟΜΟΛΟΓΗΣΗΣ ΤΟΥ ΠΑΡΑ ΕΙΓΜΑΤΟΣ ΣΧΗΜΑ 10: 1 Ο ΠΑΡΑ ΕΙΓΜΑ ΥΝΑΤΗΣ ΤΑΥΤΟΧΡΟΝΗΣ ΕΚΤΕΛΕΣΗΣ ΣΧΗΜΑ 11: 1 Ο ΠΑΡΑ ΕΙΓΜΑ ΥΝΑΤΗΣ ΤΑΥΤΟΧΡΟΝΗΣ ΕΚΤΕΛΕΣΗΣ: ΠΙΟ ΕΥΑΝΑΓΝΩΣΤΗ ΠΑΡΟΥΣΙΑΣΗ ΣΧΗΜΑ 12: 2 Ο ΠΑΡΑ ΕΙΓΜΑ ΥΝΑΤΗΣ ΤΑΥΤΟΧΡΟΝΗΣ ΕΚΤΕΛΕΣΗΣ ΣΧΗΜΑ 13: ΚΩ ΙΚΕΣ ΠΟΥ ΕΚΤΕΛΟΥΝ ΟΙ ΙΕΡΓΑΣΙΕΣ Α ΚΑΙ Β ΣΧΗΜΑ 14: ΣΕΝΑΡΙΟ ΠΟΥ Ο ΗΓΕΙ ΣΤΗΝ ΜΙΚΡΟΤΕΡΗ ΤΙΜΗ ΓΙΑ ΤΗ ΙΑΜΟΙΡΑΖΟΜΕΝΗ ΜΕΤΑΒΛΗΤΗ TALLY ΣΧΗΜΑ 15: ΟΥΡΑ ΣΤΗΝ ΟΠΟΙΑ ΚΑΤΑΓΡΑΦΟΝΤΑΙ ΠΛΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΑ ΠΡΟΣ ΕΚΤΥΠΩΣΗ ΑΡΧΕΙΑ ΣΧΗΜΑ 16: ΣΕΝΑΡΙΟ ΠΟΥ Ο ΗΓΕΙ ΣΕ ΑΝΑΛΗΨΗ 1000 ΑΠΟ ΕΝΑ ΛΟΓΑΡΙΑΣΜΟ ΠΟΥ ΠΕΡΙΕΧΕΙ ΜΟΝΟ ΣΧΗΜΑ 17: ΕΝΑΛΛΑΚΤΙΚΕΣ ΙΣΟ ΥΝΑΜΕΣ ΓΕΝΙΚΕΣ ΜΟΡΦΕΣ ΚΩ ΙΚΑ ΙΕΡΓΑΣΙΩΝ ΣΧΗΜΑ 18: ΙΑΚΟΠΕΣ ΕΝΟΣΩ ΜΙΑ ΙΕΡΓΑΣΙΑ ΕΚΤΕΛΕΙ ΤΟ ΚΡΙΣΙΜΟ ΤΜΗΜΑ ΤΗΣ ΣΧΗΜΑ 19: Η ΕΝΤΟΛΗ TEST&SET() ΣΧΗΜΑ 20: ΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΗΣ ΕΝΤΟΛΗΣ TEST&SET().. 69 ΣΧΗΜΑ 21: ΚΩ ΙΚΑΣ ΠΟΥ ΕΚΤΕΛΕΙΤΑΙ ΣΤΗΝ ΠΡΑΞΗ ΑΠΟ ΥΟ ΙΕΡΓΑΣΙΕΣ 0 ΚΑΙ 1 ΟΤΑΝ Η TEST&SET() ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ ΓΙΑ ΕΠΙΤΕΥΞΗ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 22: ΕΚΤΕΛΕΣΗ ΠΟΥ ΠΑΡΑΒΙΑΖΕΙ ΤΗ ΣΥΝΘΗΚΗ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΑΝ Η TEST&SET() ΕΝ ΕΚΤΕΛΕΙΤΑΙ ΑΤΟΜΙΚΑ ΣΧΗΜΑ 23: ΑΤΟΜΙΚΗ ΕΚ ΟΣΗ ΤΗΣ DEPOSIT() ΣΧΗΜΑ 24: ΑΤΟΜΙΚΗ ΕΚ ΟΣΗ ΤΗΣ WITHDRAW() ΣΧΗΜΑ 25: ΕΚΤΕΛΕΣΗ ΠΟΥ Ο ΗΓΕΙ ΣΕ ΠΑΡΑΤΕΤΑΜΕΝΗ ΣΤΕΡΗΣΗ ΓΙΑ ΤΗ ΙΕΡΓΑΣΙΑ 1 ΣΤΗ ΛΥΣΗ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΕΙ ΤΗΝ TEST&SET() ΣΧΗΜΑ 26: Η ΕΝΤΟΛΗ FETCH&ADD() ΣΧΗΜΑ 27: Η ΕΝΤΟΛΗ SWAP() ΣΧΗΜΑ 28: Η ΕΝΤΟΛΗ RMW() ΣΧΗΜΑ 29: ΠΡΩΤΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 30: ΣΕΝΑΡΙΟ ΠΟΥ ΚΑΤΑΣΤΡΑΤΗΓΕΙ ΤΗ ΣΥΝΘΗΚΗ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΓΙΑ ΤΗΝ 1 Η ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΣΧΗΜΑ 31: ΕΥΤΕΡΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 32: ΣΕΝΑΡΙΟ ΠΟΥ ΚΑΤΑΣΤΡΑΤΗΓΕΙ ΤΗ ΣΥΝΘΗΚΗ ΤΗΣ ΠΡΟΟ ΟΥ ΓΙΑ ΤΗ 2 Η ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΣΧΗΜΑ 33: ΤΡΙΤΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ (ΛΥΣΗ ΤΗΣ ΑΥΣΤΗΡΗΣ ΕΝΑΛΛΑΓΗΣ) ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 34: ΣΕΝΑΡΙΟ ΠΟΥ ΚΑΤΑΣΤΡΑΤΗΓΕΙ ΤΗ ΣΥΝΘΗΚΗ ΤΗΣ ΠΡΟΟ ΟΥ ΓΙΑ ΤΗΝ 3 Η ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ.. 80 ΣΧΗΜΑ 35: ΤΕΤΑΡΤΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΓΙΑ ΥΟ ΙΕΡΓΑΣΙΕΣ ΣΧΗΜΑ 36: Η ΛΥΣΗ ΤΟΥ PETERSON ΣΧΗΜΑ 37: ΠΕΜΠΤΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΓΙΑ ΥΟ ΙΕΡΓΑΣΙΕΣ ΣΧΗΜΑ 38: ΈΚΤΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 39: ΣΕΝΑΡΙΟ ΠΟΥ ΚΑΤΑΣΤΡΑΤΗΓΕΙ ΤΗ ΣΥΝΘΗΚΗ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΓΙΑ ΤΗΝ 5 Η ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΣΧΗΜΑ 40: ΕΛΑΦΡΩΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚ ΟΣΗ ΤΗΣ ΛΥΣΗΣ ΤΟΥ PETERSON... 89

6 ΣΧΗΜΑ 41: ΈΝΑ ΣΕΝΑΡΙΟ ΠΟΥ Ο ΗΓΕΙ ΣΕ ΠΑΡΑΤΕΤΑΜΕΝΗ ΣΤΕΡΗΣΗ ΤΗΝ ΕΛΑΦΡΩΣ ΤΡΟΠΟΠΟΙΗΜΕΝΗ ΕΚ ΟΣΗ ΤΗΣ ΛΥΣΗΣ ΤΟΥ PETERSON ΣΧΗΜΑ 42: ΈΒ ΟΜΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 43: ΌΓ ΟΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΣΧΗΜΑ 44: ΠΙΟ ΑΝΑΛΥΤΙΚΗ ΠΕΡΙΓΡΑΦΗ ΤΟΥ ΚΩ ΙΚΑ ΤΩΝ ΙΕΡΓΑΣΙΩΝ ΤΗΣ ΟΓ ΟΗΣ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗΣ ΣΧΗΜΑ 45: ΈΝΑΤΗ ΠΡΟΤΕΙΝΟΜΕΝΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΓΙΑ ΥΟ ΙΕΡΓΑΣΙΕΣ ΣΧΗΜΑ 46: ΥΛΟΠΟΙΗΣΗ ΛΕΙΤΟΥΡΓΙΩΝ UP() ΚΑΙ DOWN() ΜΕ ΧΡΗΣΗ ΛΟΓΙΣΜΙΚΟΥ ΣΧΗΜΑ 47: ΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΜΕ ΣΗΜΑΦΟΡΟΥΣ ΣΧΗΜΑ 48: ΈΝΑ ΚΟΙΝΟ ΛΑΘΟΣ ΣΤΗ ΧΡΗΣΗ ΣΗΜΑΦΟΡΩΝ ΣΧΗΜΑ 49: ΈΝΑ ΑΚΟΜΗ ΚΟΙΝΟ ΛΑΘΟΣ ΣΤΗ ΧΡΗΣΗ ΣΗΜΑΦΟΡΩΝ ΣΧΗΜΑ 50: ΥΛΟΠΟΙΗΣΗ ΣΗΜΑΦΟΡΩΝ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΑΚΕΡΑΙΕΣ ΙΑΜΟΙΡΑΖΟΜΕΝΕΣ ΜΕΤΑΒΛΗΤΕΣ ΚΑΙ ΤΗΝ ΑΤΟΜΙΚΗ ΛΕΙΤΟΥΡΓΙΑ TEST&SET() ΠΟΥ ΠΑΡΕΧΕΤΑΙ ΑΠΟ ΤΟ ΥΛΙΚΟ ΣΧΗΜΑ 51: ΠΕΡΙΓΡΑΦΗ ΕΝΕΡΓΕΙΩΝ ΠΟΥ ΕΚΤΕΛΟΥΝ ΟΙ ΙΕΡΓΑΣΙΕΣ ΠΕΛΑΤΩΝ ΚΑΙ ΕΞΥΠΗΡΕΤΗ ΣΧΗΜΑ 52: ΜΙΑ ΠΡΩΤΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΠΕΛΑΤΩΝ-ΕΞΥΠΗΡΕΤΗ ΣΧΗΜΑ 53: ΜΙΑ ΒΕΛΤΙΣΤΟΠΟΙΗΜΕΝΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΠΕΛΑΤΩΝ-ΕΞΥΠΗΡΕΤΗ ΣΧΗΜΑ 54: ΜΙΑ ΛΑΘΟΣ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΠΕΛΑΤΩΝ-ΕΞΥΠΗΡΕΤΗ ΣΧΗΜΑ 55: ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΩΝ ΚΑΠΝΙΣΤΩΝ-ΠΩΛΗΤΗ ΣΧΉΜΑ 56: PING-PONG ΣΧΗΜΑ 57: ΠΕΡΙΓΡΑΦΗ ΑΠΛΩΝ ΕΝΕΡΓΕΙΩΝ ΠΟΥ ΕΚΤΕΛΟΥΝ ΟΙ ΙΕΡΓΑΣΙΕΣ ΕΠΙΒΑΤΩΝ ΚΑΙ ΑΥΤΟΚΙΝΗΤΩΝ. 107 ΣΧΗΜΑ 58: ΑΠΛΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΖΩΟΛΟΓΙΚΟΥ ΚΗΠΟΥ ΣΧΗΜΑ 59: ΠΡΩΤΗ ΒΕΛΤΙΩΜΕΝΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΖΩΟΛΟΓΙΚΟΥ ΚΗΠΟΥ ΣΧΗΜΑ 60: ΕΥΤΕΡΗ ΒΕΛΤΙΩΜΕΝΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΖΩΟΛΟΓΙΚΟΥ ΚΗΠΟΥ ΣΧΗΜΑ 61: ΛΥΣΗ ΣΤΗΝ ΑΠΛΗ ΕΚ ΟΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΤΟΥ ΚΟΥΡΕΑ ΣΧΗΜΑ 62: ΜΙΑ ΑΚΟΜΗ ΣΩΣΤΗ ΛΥΣΗ ΣΤΗΝ ΑΠΛΗ ΕΚ ΟΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΤΟΥ ΚΟΥΡΕΑ ΣΧΗΜΑ 63: ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΚΟΥΡΕΑ ΣΧΗΜΑ 64: ΠΡΩΤΗ ΠΡΟΣΠΑΘΕΙΑ ΕΠΙΛΥΣΗΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΓΝΩΣΤΩΝ-ΕΓΓΡΑΦΕΩΝ ΣΧΗΜΑ 65: ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΑΝΑΓΝΩΣΤΩΝ-ΕΓΓΡΑΦΕΩΝ ΣΧΗΜΑ 66: ΣΚΕΛΕΤΟΣ ΚΩ ΙΚΑ ΙΕΡΓΑΣΙΑΣ ΑΥΤΟΚΙΝΗΤΟΥ ΣΧΗΜΑ 67: ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΕΝΕΡΓΕΙΩΝ ΤΩΝ ΙΕΡΓΑΣΙΩΝ ΤΗΣ ΆΣΚΗΣΗΣ ΑΥΤΟΑΞΙΟΛΟΓΗΣΗΣ ΣΧΗΜΑ 68: ΣΚΕΛΕΤΟΣ ΚΩ ΙΚΑ ΙΕΡΓΑΣΙΩΝ ΓΙΑ ΤΟ ΠΡΟΒΛΗΜΑ ΠΟΥ ΠΕΡΙΓΡΑΦΕΤΑΙ ΣΤΗΝ ΆΣΚΗΣΗ ΑΥΤΟΑΞΙΟΛΟΓΟΓΗΣΗΣ ΣΧΗΜΑ 69: ΓΛΩΣΣΙΚΗ ΈΚΦΡΑΣΗ ΤΟΥ HANSEN ΣΧΗΜΑ 70: ΑΤΟΜΙΚΗ ΕΚ ΟΣΗ ΤΩΝ DEPOSIT() ΚΑΙ WITHDRAW() ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΤΗ ΓΛΩΣΣΙΚΗ ΕΚΦΡΑΣΗ ΤΟΥ HANSEN. 120 ΣΧΗΜΑ 71: ΓΛΩΣΣΙΚΗ ΈΚΦΡΑΣΗ ΚΡΙΣΙΜΗΣ ΠΕΡΙΟΧΗΣ ΥΠΟ ΣΥΝΘΗΚΗ ΣΧΗΜΑ 72: ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΖΩΟΛΟΓΙΚΟΥ ΚΗΠΟΥ ΜΕ ΧΡΗΣΗ ΚΡΙΣΙΜΩΝ ΠΕΡΙΟΧΩΝ ΥΠΟ ΣΥΝΘΗΚΗ (ΑΝΤΙΣΤΟΙΧΗ ΕΚΕΙΝΗΣ ΤΟΥ ΣΧΗΜΑΤΟΣ 59) ΣΧΗΜΑ 73: ΠΡΩΤΗ ΒΕΛΤΙΩΜΕΝΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΖΩΟΛΟΓΙΚΟΥ ΚΗΠΟΥ ΜΕ ΧΡΗΣΗ ΚΡΙΣΙΜΩΝ ΠΕΡΙΟΧΩΝ ΥΠΟ ΣΥΝΘΗΚΗ (ΑΝΤΙΣΤΟΙΧΗ ΕΚΕΙΝΗΣ ΤΟΥ ΣΧΗΜΑΤΟΣ 60) ΣΧΗΜΑ 74: ΕΥΤΕΡΗ ΒΕΛΤΙΩΜΕΝΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΖΩΟΛΟΓΙΚΟΥ ΚΗΠΟΥ ΜΕ ΧΡΗΣΗ ΚΡΙΣΙΜΩΝ ΠΕΡΙΟΧΩΝ ΥΠΟ ΣΥΝΘΗΚΗ (ΑΝΤΙΣΤΟΙΧΗ ΕΚΕΙΝΗΣ ΤΟΥ ΣΧΗΜΑΤΟΣ 61) ΣΧΗΜΑ 75: ΛΥΣΗ ΑΝΤΙΣΤΟΙΧΗ ΕΚΕΙΝΗΣ ΤΟΥ ΣΧΗΜΑΤΟΣ 75 ΑΛΛΑ ΠΟΥ ΕΠΙΤΥΓΧΑΝΕΙ ΜΕΓΑΛΥΤΕΡΟ ΠΑΡΑΛΛΗΛΙΣΜΟ ΣΧΗΜΑ 76: ΠΡΩΤΗ ΠΡΟΣΠΑΘΕΙΑ ΕΠΙΛΥΣΗΣ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΓΝΩΣΤΩΝ-ΕΓΓΡΑΦΕΩΝ ΜΕ ΧΡΗΣΗ ΚΡΙΣΙΜΩΝ ΠΕΡΙΟΧΩΝ ΥΠΟ ΣΥΝΘΗΚΗ ΣΧΗΜΑ 77: ΣΩΣΤΗ ΛΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΑΝΑΓΝΩΣΤΩΝ-ΕΓΓΡΑΦΕΩΝ ΜΕ ΧΡΗΣΗ ΚΡΙΣΙΜΩΝ ΠΕΡΙΟΧΩΝ ΥΠΟ ΣΥΝΘΗΚΗ ΣΧΗΜΑ 78: Ο ΑΛΓΟΡΙΘΜΟΣ ΤΟΥ ΑΡΤΟΠΩΛΕΙΟΥ ΣΧΗΜΑ 79: Η ΛΥΣΗ ΤΟΥ DEKKER ΣΧΗΜΑ 80: ΙΚΑΙΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΟΥ ΑΜΟΙΒΑΙΟΥ ΑΠΟΚΛΕΙΣΜΟΥ ΜΕ ΧΡΗΣΗ TEST&SET() ΣΧΗΜΑ 81: ΙΚΑΙΗ ΛΥΣΗ ΣΤΟ ΠΡΟΒΛΗΜΑ ΤΩΝ ΑΝΑΓΝΩΣΤΩΝ-ΕΓΓΡΑΦΕΩΝ

7 ΣΧΗΜΑ 82: ΕΝΕΡΓΕΙΕΣ ΠΟΥ ΕΠΙΤΕΛΟΥΝ ΟΙ ΛΕΙΤΟΥΡΓΙΕΣ SEM_DOWN() ΚΑΙ GSEM_UP() ΣΧΗΜΑ 83: ΥΛΟΠΟΙΗΣΗ ΓΕΝΙΚΟΥ ΣΗΜΑΦΟΡΟΥ ΑΠΟ ΥΑ ΙΚΟ ΣΗΜΑΦΟΡΟ ΣΧΗΜΑ 84: ΣΚΕΛΕΤΟΣ ΚΩ ΙΚΑ ΓΙΑ ΤΗΝ ΥΛΟΠΟΙΗΣΗ ΚΡΙΣΙΜΩΝ ΠΕΡΙΟΧΩΝ ΥΠΟ ΣΥΝΘΗΚΗ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ ΣΗΜΑΦΟΡΟΥΣ

8 Πρόλογος Το εκπαιδευτικό υλικό αυτό αποτελεί βοηθητικό διδακτικό υλικό για το µάθηµα των Λειτουργικών Συστηµάτων και έχει γραφτεί για τις ανάγκες των φοιτητών της θεµατικής ενότητας ΠΛΗ-11 του ΕΑΠ, της οποίας τα µαθήµατα διδάσκονται στο 1 ο έτος σπουδών του Τµήµατος Πληροφορικής, δηλαδή σε φοιτητές που δεν έχουν πολύ µεγάλη εξοικείωση µε θέµατα προγραµµατισµού και αρχιτεκτονικής υπολογιστών. Έτσι, το εκπαιδευτικό υλικό αυτό παρουσιάζει βασικά µόνο θέµατα των ΛΣ και αυτά µε συνοπτικό και όσο το δυνατό πιο απλό τρόπο. Πολλά από τα παραδείγµατα και τις ασκήσεις αυτοαξιολόγησης που περιγράφονται στο εκπαιδευτικό υλικό, έχουν προταθεί από διάφορα µέλη ΣΕΠ της θεµατικής ενότητας και έχουν αποτελέσει µέρος των εργασιών των φοιτητών της ΠΛΗ-11 στο παρελθόν. Οι συγγραφείς έχουν βάλει τη προσωπική τους σφραγίδα στα περισσότερα µέρη του εκπαιδευτικού υλικού, πολλές φορές αποκλίνοντας από τις προτεινόµενες λύσεις της θεµατικής ενότητας, προκειµένου να καλύψουν διάφορα θέµατα που θα ήθελαν να συζητηθούν µε µεγαλύτερη λεπτοµέρεια. Ωστόσο, δεν παύουν να πιστεύουν πως το εκπαιδευτικό υλικό αυτό είναι αποτέλεσµα και της συλλογικής προσπάθειας των µελών ΣΕΠ της θεµατικής ενότητας. Σε επόµενες εκδόσεις του εκπαιδευτικού υλικού θα προστεθεί υλικό που θα αφορά τη διαχείριση µνήµης (και θα ενσωµατωθούν οποιεσδήποτε αλλαγές και βελτιώσεις θεωρηθούν απαραίτητες στα υπάρχοντα κεφάλαια).

9 1ο Κεφάλαιο Εισαγωγή

10 1 ο Κεφάλαιο Εισαγωγή Ένα Λειτουργικό Σύστηµα (ΛΣ) είναι ένα πρόγραµµα που αποσκοπεί στο να διευκολύνει τους χρήστες στη χρήση του υλικού (hardware) ενός υπολογιστή και των υπολοίπων πόρων του συστήµατος. Ονοµάζουµε πόρο οτιδήποτε µπορεί να χρησιµοποιηθεί κάθε χρονική στιγµή από ένα µόνο πρόγραµµα που εκτελείται. Οι πόροι µπορεί να είναι είτε συσκευές υλικού (π.χ., η κεντρική µονάδα επεξεργασίας, η µνήµη, ο δίσκος, ο εκτυπωτής, ο σχεδιογράφος, άλλες συσκευές εισόδου/εξόδου, κλπ.) είτε δεδοµένα ή λογικές οντότητες (π.χ., ένα αρχείο, µια εγγραφή σε βάση δεδοµένων, µια δοµή δεδοµένων στην οποία το ΛΣ αποθηκεύει πληροφορίες, κλπ.). Προφανώς, είναι δυνατόν να υπάρχουν δύο ή περισσότεροι πόροι του ίδιου είδους (π.χ., δύο εκτυπωτές). Το ΛΣ ελέγχει όλους τους πόρους του συστήµατος, παρέχοντας ένα εύχρηστο περιβάλλον για την ανάπτυξη των εφαρµογών των χρηστών. 1.1 Σύντοµη Ανασκόπηση Υλικού Υπολογιστών Τα βασικά µέρη του υλικού ενός υπολογιστή παρουσιάζονται στο Σχήµα 1. Ένα από τα κυριότερα συστατικά του είναι η κεντρική µονάδα επεξεργασίας (ΚΜΕ). Η ΚΜΕ ελέγχει τη λειτουργία του υπολογιστή και πραγµατοποιεί την επεξεργασία των δεδοµένων κατά την εκτέλεση ενός προγράµµατος. Η ΚΜΕ εκτελεί επαναληπτικά τα εξής. ιαβάζει την επόµενη προς εκτέλεση εντολή, την αποκωδικοποιεί και την εκτελεί. Η εκτέλεση των λειτουργιών αυτών είναι γνωστή ως κύκλος λειτουργίας ΚΜΕ. Η ΚΜΕ ξεκινά µε την πρώτη εντολή ενός προγράµµατος (1 ος κύκλος λειτουργίας) και συνεχίζει µε όσους κύκλους είναι απαραίτητοι για να εκτελεστούν όλες οι εντολές του προγράµµατος. Κάθε χρονική στιγµή µπορεί να εκτελείται µόνο ένα πρόγραµµα στην ΚΜΕ και ένα πρόγραµµα µπορεί να εκτελεστεί µόνο αν υπάρχει διαθέσιµη ΚΜΕ που θα το εκτελέσει. ίσκος Καταχωρητές Συσκευή Λήψης Εφεδρικών Αντιγράφων ίσκος Κύρια Μνήµη Κρυφή Μνήµη ΚΜΕ ίσκος Σχήµα 1: Βασική οργάνωση ενός υπολογιστή. Κάθε υπολογιστής έχει ένα ρολόι συστήµατος (system clock) που χρησιµοποιείται από την ΚΜΕ για να συγχρονίζει τις λειτουργίες επεξεργασίας. Ένας κύκλος λειτουργίας συνήθως απαιτεί έναν µικρό σταθερό αριθµό από χτύπους του ρολογιού συστήµατος. 2 η έκδοση 10

11 1 ο Κεφάλαιο Εισαγωγή Η ΚΜΕ χρησιµοποιεί ένα µικρό αριθµό γρήγορων στοιχείων αποθήκευσης που ονοµάζονται καταχωρητές. Ένας καταχωρητής συνήθως αποθηκεύει δεδοµένα των 32 ή των 64 bit (ωστόσο, σήµερα έχουν κάνει την εµφάνισή τους και υπολογιστικά συστήµατα των οποίων οι καταχωρητές έχουν µέγεθος 128 bit). Μερικοί καταχωρητές χρησιµοποιούνται για την εκτέλεση πολύ συγκεκριµένων λειτουργιών. Ένας τέτοιος καταχωρητής είναι ο µετρητής προγράµµατος (Program Counter, PC). Ο καταχωρητής αυτός περιέχει την πληροφορία του ποια είναι η επόµενη προς εκτέλεση εντολή του εκτελούµενου προγράµµατος. Η εντολή αυτή µεταφέρεται από τη µνήµη σε έναν άλλο καταχωρητή, που ονοµάζεται καταχωρητής εντολών (Instruction Register, IR), προκειµένου να την προσπελάσει και να την επεξεργαστεί η ΚΜΕ. Οι καταχωρητές είναι ενσωµατωµένοι στο chip του επεξεργαστή και έτσι µπορούν να προσπελασθούν πάρα πολύ γρήγορα (µε την ίδια ταχύτητα όπως εκείνη της λειτουργίας της ΚΜΕ), αλλά είναι εξαιρετικά ακριβοί. Έτσι, οι σηµερινοί υπολογιστές περιέχουν έναν µικρό µόνο αριθµό καταχωρητών. Είναι εποµένως απαραίτητη η ύπαρξη πολύ µεγαλύτερου χώρου αποθήκευσης προκειµένου να αποθηκεύονται εκεί τα εκτελούµενα προγράµµατα, καθώς και τα δεδοµένα που χρησιµοποιούνται από αυτά. Για το λόγο αυτό, το δεύτερο βασικό συστατικό κάθε υπολογιστή είναι η κύρια µνήµη. Η κύρια µνήµη χρησιµοποιείται ως χώρος αποθήκευσης και επεξεργασίας από τα προγράµµατα και περιέχει προσωρινά δεδοµένα (που χάνονται όταν πάψει να λειτουργεί ο υπολογιστής). Η ΚΜΕ επικοινωνεί µε τη µνήµη (και τις υπόλοιπες µονάδες του υπολογιστή) διαµέσου του διαύλου του συστήµατος (system bus). Ο δίαυλος αποτελείται από έναν αριθµό καναλιών µέσω των οποίων γίνεται η ανταλλαγή των πληροφοριών µεταξύ των διαφορετικών µονάδων του συστήµατος (π.χ., µεταξύ µνήµης και καταχωρητών). Ένα πρόγραµµα δεν µπορεί να εκτελεστεί αν δεν βρίσκεται στη µνήµη του υπολογιστή. Καθώς το πρόγραµµα εκτελείται, τα δεδοµένα που απαιτούνται θα πρέπει να τοποθετηθούν στους καταχωρητές του συστήµατος. Η ΚΜΕ λειτουργεί σε υψηλότερες ταχύτητες από την κύρια µνήµη. Έτσι, πολύς χρόνος καταναλώνεται για τη µετακίνηση δεδοµένων µεταξύ ΚΜΕ και κύριας µνήµης. Για τη µείωση του χρόνου αυτού, κάθε υπολογιστικό σύστηµα χρησιµοποιεί µία ή περισσότερες κρυφές µνήµες. Η κρυφή µνήµη βρίσκεται µεταξύ της κύριας µνήµης και των καταχωρητών. Οι κρυφές µνήµες κατασκευάζονται από ειδικά κυκλώµατα ώστε να είναι πολύ γρήγορες, αλλά έχουν µεγάλο κόστος και εποµένως το µέγεθος τους είναι περιορισµένο (αρκετά µικρότερο από εκείνο της κύριας µνήµης). Όταν η ΚΜΕ χρειάζεται να διαβάσει δεδοµένα (ή εντολές) από τη µνήµη, τα δεδοµένα αναζητούνται πρώτα στην κρυφή µνήµη. Αν βρίσκονται εκεί, η µεταφορά τους στους καταχωρητές θα γίνει πολύ γρήγορα (απευθείας από την κρυφή µνήµη). ιαφορετικά, τα δεδοµένα θα πρέπει να αναζητηθούν στην κύρια µνήµη και να φορτωθούν στους καταχωρητές από εκεί. Ταυτόχρονα τα δεδοµένα τοποθετούνται και στην κρυφή µνήµη, ώστε να είναι διαθέσιµα εκεί στο µέλλον (αν εν τω µεταξύ δεν αντικατασταθούν από άλλα πιο πρόσφατα δεδοµένα). Τα δύο βασικότερα χαρακτηριστικά µιας µονάδας αποθήκευσης (όπως η µνήµη) είναι η ταχύτητα προσπέλασής της και το κόστος της. υστυχώς, τα δύο αυτά χαρακτηριστικά αντιπαλεύονται το ένα το άλλο. Γρήγορες µνήµες είναι εξαιρετικά ακριβές για να µπορούν να παρέχονται σε µεγάλες ποσότητες. Επιπρόσθετα, τόσο η κύρια όσο και οι 2 η έκδοση 11

12 1 ο Κεφάλαιο Εισαγωγή κρυφές µνήµες δεν διατηρούν τα δεδοµένα τους, όταν ο υπολογιστής δεν είναι σε λειτουργία. Έτσι, οι υπολογιστές χρησιµοποιούν και άλλες µονάδες αποθήκευσης που το κόστος τους είναι αρκετά χαµηλό ώστε να παρέχονται σε µεγάλες ποσότητες. Οι µονάδες αυτές είναι αρκετά αργές συγκριτικά µε την κύρια µνήµη. Οι µονάδες εξωτερικής αποθήκευσης, όπως π.χ., µονάδες ταινίας, κλπ., έχουν το µικρότερο κόστος αλλά το µεγαλύτερο χρόνο προσπέλασης. Μια άλλη µονάδα αποθήκευσης είναι οι (ηλεκτρονικοί) δίσκοι που είναι σχετικά φθηνοί αλλά και σχετικά αργοί (παρότι σαφώς πιο γρήγοροι από τις µονάδες εξωτερικής αποθήκευσης). Όπως είναι αναµενόµενο, οι µονάδες κύριας µνήµης είναι αρκετά ακριβότερες από τις µονάδες βοηθητικής αποθήκευσης (δίσκοι, µονάδες εξωτερικής αποθήκευσης). Το µέγεθος της κύριας µνήµης επηρεάζει σηµαντικά την ισχύ ενός υπολογιστή. Περισσότερη µνήµη σηµαίνει πως ο υπολογιστής µπορεί να εκτελεί περισσότερο απαιτητικά σε µνήµη προγράµµατα και µάλιστα περισσότερα του ενός από αυτά ταυτόχρονα. Κάθε υπολογιστικό σύστηµα περιλαµβάνει ένα σύνολο συσκευών Εισόδου/Εξόδου (Ε/Ε), όπως η οθόνη, το πληκτρολόγιο, το ποντίκι, ο εκτυπωτής, το modem, το τερµατικό, κλπ. Τα προγράµµατα των χρηστών αποτελούνται από αλληλουχίες εκτέλεσης υπολογισµών και λειτουργιών Ε/Ε. Ένα πρόγραµµα επιτελεί λειτουργίες Ε/Ε αν δεν µπορεί να χρησιµοποιήσει την ΚΜΕ επειδή περιµένει κάποια εξωτερική συσκευή να ολοκληρώσει την εργασία της. Μια συσκευή Ε/Ε µπορεί να λειτουργεί ταυτόχρονα µε την ΚΜΕ. Αυτό είναι πολύ επιθυµητό για λόγους απόδοσης, αφού οι συσκευές Ε/Ε είναι πολύ πιο αργές στη λειτουργία τους από την ΚΜΕ. Σε όλους τους υπολογιστές το υλικό παρέχει ένα µηχανισµό για τη διακοπή της κανονικής λειτουργίας της ΚΜΕ. Μια διακοπή είναι ένα σήµα που στέλνεται στην ΚΜΕ π.χ., από κάποια συσκευή Ε/Ε (µια διακοπή µπορεί να προκληθεί και για άλλους λόγους µερικούς από τους οποίους θα µελετήσουµε στο Κεφάλαιο 2). Η συσκευή Ε/Ε µπορεί, για παράδειγµα, να ενηµερώσει µε αυτό τον τρόπο την ΚΜΕ για το πότε ολοκληρώνεται η εκτέλεση της τρέχουσας λειτουργίας της. Όταν πραγµατοποιείται µια διακοπή, η ΚΜΕ σταµατά την εκτέλεση του τρέχοντος προγράµµατος και ξεκινά την εκτέλεση ενός κατάλληλου προγράµµατος χειρισµού της διακοπής ανάλογα µε το είδος της συσκευής Ε/Ε από όπου προήλθε η διακοπή. Όταν πραγµατοποιηθούν οι κατάλληλες ενέργειες χειρισµού διακοπής, η ΚΜΕ µπορεί να συνεχίσει µε την εκτέλεση του προγράµµατος που εκτελούσε πριν προκληθεί η διακοπή. Προκειµένου η ΚΜΕ και οι συσκευές Ε/Ε να δουλεύουν ταυτόχρονα κάποιες χρονικές περιόδους κατά την εκτέλεση ενός προγράµµατος, συχνά χρησιµοποιούνται από τις συσκευές Ε/Ε µικροί χώροι προσωρινής αποθήκευσης (buffers). Η βασική ιδέα είναι η εξής. Αφού διαβαστούν τα δεδοµένα από τη συσκευή Ε/Ε, τοποθετούνται σε έναν µικρό χώρο προσωρινής αποθήκευσης και στη συνέχεια αντιγράφονται στη µνήµη, προκειµένου να τα επεξεργαστεί η ΚΜΕ. Καθώς γίνεται η επεξεργασία αυτή, η συσκευή Ε/Ε διαβάζει νέα δεδοµένα και τα τοποθετεί στον ενδιάµεσο χώρο προσωρινής αποθήκευσης. Κάτι αντίστοιχο µπορεί να συµβεί και κατά την έξοδο δεδοµένων. Η ΚΜΕ τοποθετεί τα δεδοµένα εξόδου σε ένα χώρο προσωρινής αποθήκευσης και συνεχίζει την εκτέλεση του προγράµµατος. Η συσκευή Ε/Ε διαβάζει τα δεδοµένα από το χώρο αυτό. Ένας προσωρινός χώρος αποθήκευσης συνήθως δεν µπορεί να αποθηκεύσει περισσότερα από µερικές εκατοντάδες bytes. 2 η έκδοση 12

13 1 ο Κεφάλαιο Εισαγωγή Μια δεύτερη τεχνική που επιτρέπει την ταυτόχρονη λειτουργία ΚΜΕ και Ε/Ε, είναι η τεχνική της παροχέτευσης (Spooling Simultaneous Peripheral Operation On Line). Η βασική ιδέα είναι να χρησιµοποιείται µεγάλο µέρος του δίσκου σαν ένας τεράστιος προσωρινός χώρος αποθήκευσης. Όταν ένα πρόγραµµα εκτελείται διαβάζει τα δεδοµένα εισόδου του από το χώρο παροχέτευσης του δίσκου και αντίστοιχα γράφει τα δεδοµένα εξόδου του στο χώρο αυτό, αντί να διαβάζει κα να γράφει απευθείας στις συσκευές Ε/Ε. Παρόµοια, µια συσκευή Ε/Ε διαβάζει τα δεδοµένα από το χώρο παροχέτευσης του δίσκο και γράφει τα δεδοµένα εισόδου επίσης στο χώρο αυτό. Με τον τρόπο αυτό, οι λειτουργίες Ε/Ε ενός προγράµµατος µπορούν να εκτελεστούν ακόµη και µετά τον τερµατισµό του (offline) προγράµµατος. Είναι αξιοσηµείωτο ότι η τεχνική της παροχέτευσης επιτρέπει σε πολλά προγράµµατα να διαβαστούν και να αποθηκευτούν στο δίσκο. ίνεται έτσι η δυνατότητα, οποιοδήποτε από αυτά να είναι το επόµενο που θα τοποθετηθεί στη µνήµη προκειµένου να µπορέσει να εκτελεστεί. 1.2 Σκοπός & Υπηρεσίες ενός ΛΣ Η κυρίαρχη φροντίδα ενός ΛΣ είναι η κατάλληλη διαχείριση όλων των πόρων του υπολογιστή. Αυτό κατανέµει τους πόρους στα προγράµµατα των χρηστών και µεσολαβεί όταν υπάρχουν αντικρουόµενες αιτήσεις. Για παράδειγµα, φανταστείτε τι θα συµβεί αν δύο διαφορετικά προγράµµατα χρησιµοποιήσουν ταυτόχρονα τον εκτυπωτή. Το πιθανότερο είναι το αποτέλεσµα να είναι ένα µπερδεµένο σύνολο σελίδων. Το λειτουργικό εξασφαλίζει πως κάτι τέτοιο δεν θα συµβεί. Μέριµνα του ΛΣ είναι όχι µόνο η ελεγχόµενη αλλά και η συστηµατική κατανοµή των πόρων ώστε να επιτυγχάνεται ως επί το πλείστον η αποδοτική λειτουργία του συστήµατος. Ένας δεύτερος βασικός στόχος ενός λειτουργικού συστήµατος είναι η διευκόλυνση του χρήστη στην εκτέλεση προγραµµάτων. Κάθε µέρος του υλικού ενός συστήµατος έχει τις δικές του ιδιαιτερότητες. Το λειτουργικό σύστηµα αναλαµβάνει να αποκρύψει από τον µέσο προγραµµατιστή τις ιδιαιτερότητες αυτές, παρέχοντάς του µια απλή και υψηλού επιπέδου αφαιρετική εικόνα. Τέλος, ένας ακόµη σηµαντικός στόχος ενός λειτουργικού συστήµατος είναι η παροχή προστασίας στους χρήστες. Το ΛΣ είναι υπεύθυνο για τον έλεγχο των συσκευών και των προγραµµάτων, προκειµένου να αποφεύγονται σφάλµατα και να γίνεται δόκιµη χρήση του υπολογιστή. Με λίγα λόγια, το λειτουργικό σύστηµα αποσκοπεί στην αποτελεσµατική εκτέλεση προγραµµάτων και την εύκολη και γρήγορη επίλυση των προβληµάτων επικοινωνίας του χρήστη µε τον υπολογιστή. Η τοποθέτηση του ΛΣ σε ένα υπολογιστικό σύστηµα φαίνεται στο Σχήµα 2 (ένα αντίστοιχο σχήµα παρουσιάζεται στην Ενότητα 1.1 του Τόµου Γ της θεµατικής ενότητας). Η άποψη που έχει ο χρήστης για το σύστηµα είναι η άποψη ενός συνόλου εφαρµογών (όπως µεταγλωττιστών, συστηµάτων βάσεων δεδοµένων, επεξεργαστών κειµένου, διορθωτών, κλπ.) Οι λεπτοµέρειες του υλικού αποκρύπτονται µε τη βοήθεια του ΛΣ. 2 η έκδοση 13

14 1 ο Κεφάλαιο Εισαγωγή Χρήστης 1 Π ρ ο γ ρ ά µ µ Λειτουργικό Σύστηµα α τ α Χρήστης 2 Υλικό Χρήστης 3 Ε φ α ρ µ ο γ ώ ν Χρήστης 5 Χρήστης 4 Σχήµα 2: Σχέση του ΛΣ µε το υλικό του υπολογιστή και τους χρήστες. Όταν βάζουµε τον υπολογιστή σε λειτουργία, εκκινείται αυτόµατα η εκτέλεση του λειτουργικού συστήµατος πριν αρχίσει η εκτέλεση οποιουδήποτε άλλου προγράµµατος στο σύστηµα. 1.3 Πολυπρογραµµατισµός και ιαµοιρασµός Χρόνου Όταν σε έναν υπολογιστή εκτελείται ένα µόνο πρόγραµµα, η ΚΜΕ παραµένει για αρκετό χρόνο ανενεργή. Αυτό συµβαίνει γιατί, όπως έχει ήδη αναφερθεί, τα περισσότερα προγράµµατα απαιτούν λειτουργίες Ε/Ε των οποίων η εκτέλεση είναι εξαιρετικά αργή. Προκειµένου να αυξηθεί η απόδοση των συστηµάτων, τα σύγχρονα λειτουργικά συστήµατα χρησιµοποιούν µια τεχνική που λέγεται πολυ-προγραµµατισµός. Η βασική ιδέα είναι να υπάρχουν αρκετά έτοιµα προς εκτέλεση προγράµµατα στη µνήµη. Κάθε φορά που η εκτέλεση ενός από αυτά φθάνει σε σηµείο που απαιτείται η εκτέλεση κάποιας λειτουργία Ε/Ε, ένα άλλο πρόγραµµα επιλέγεται και εκτελείται στην ΚΜΕ. Η τεχνική αυτή εφαρµόζεται επαναληπτικά (όσο υπάρχουν έτοιµα προς εκτέλεση προγράµµατα στο σύστηµα). Έτσι, σε µια τυχαία χρονική στιγµή µπορεί να υπάρχουν πολλά προγράµµατα που έχουν µερικώς εκτελεστεί. Κάποια από αυτά µπορεί να εκτελούν κάποια λειτουργία Ε/Ε την τρέχουσα χρονική στιγµή, ενώ άλλα ίσως βρίσκονται στη µνήµη και είναι έτοιµα να εκτελεστούν, όταν η ΚΜΕ γίνει διαθέσιµη. Το ΛΣ είναι και αυτό ένα πρόγραµµα που χρησιµοποιεί περιοδικά την ΚΜΕ προκειµένου να εκτελέσει τα δικά του καθήκοντα. Το ΛΣ είναι το πρόγραµµα µε την υψηλότερη προτεραιότητα στη χρήση της ΚΜΕ. Το ΛΣ και πιο συγκεκριµένα ένα µέρος του, που ονοµάζεται χρονο-δροµολογητής (ή χρονοπρογραµµατιστής), είναι αυτό που θα αποφασίσει ποιο πρόγραµµα θα απασχολεί κάθε χρονική στιγµή την ΚΜΕ. Ο 2 η έκδοση 14

15 1 ο Κεφάλαιο Εισαγωγή πολυπρογραµµατισµός επιφέρει εποµένως την ανάγκη σχεδιασµού καλών αλγορίθµων χρονοδροµολόγησης. Επιπρόσθετα, εφόσον περισσότερα του ενός προγράµµατα πρέπει να βρίσκονται στη µνήµη ταυτόχρονα, ο πολυπρογραµµατισµός οδηγεί στην αναγκαιότητα ύπαρξης µηχανισµών διαχείρισης της µνήµης, δηλαδή αλγορίθµων που θα αποφασίζουν πώς η µνήµη κατανέµεται στα διάφορα προγράµµατα. Το πρόβληµα της διαχείρισης της µνήµης είναι ένα ακόµη σηµαντικό πρόβληµα που θα µελετηθεί σε κάποια από τα επόµενα κεφάλαια. Πολλά προγράµµατα απαιτούν κάποιου είδους αλληλεπίδραση µε το χρήστη. Για παράδειγµα, ο χρήστης µπορεί να πρέπει να καθορίσει διάφορες παραµέτρους καθώς το πρόγραµµα εκτελείται ή µπορεί να χρειαστεί να παρέχει δεδοµένα εισόδου, κλπ. Προγράµµατα τα οποία απαιτούν αλληλεπίδραση µε το χρήστη ονοµάζονται αλληλεπιδραστικά (interactive) και τα συστήµατα που παρέχουν αυτή τη δυνατότητα ονοµάζονται αλληλεπιδραστικά συστήµατα. Ένα λειτουργικό σύστηµα διαµοιρασµού χρόνου επιτρέπει σε πολλούς χρήστες ταυτόχρονα να χρησιµοποιούν το σύστηµα, παρέχοντας τους ωστόσο τη ψευδαίσθηση ότι ο κάθε ένας από αυτούς είναι ο µοναδικός χρήστης του συστήµατος. Αυτό επιτυγχάνεται µε τη γρήγορη εναλλαγή (switching) των προγραµµάτων των διαφόρων χρηστών που είναι έτοιµα προς εκτέλεση από και προς την ΚΜΕ. Πιο συγκεκριµένα, κάθε πρόγραµµα εκτελείται για λίγο και στη συνέχεια εναλλάσσεται µε κάποιο άλλο, το οποίο είναι επίσης έτοιµο για εκτέλεση και διεκδικεί την ΚΜΕ. Με τον τρόπο αυτό, κάθε χρήστης χρησιµοποιεί ένα µέρος της υπολογιστικής ισχύος του συστήµατος, έχοντας ωστόσο τη ψευδαίσθηση ότι είναι ο µοναδικός χρήστης που απασχολεί το σύστηµα. Όπως έχει ήδη αναφερθεί, η απόφαση του ποιο πρόγραµµα θα εκτελείται κάθε χρονική στιγµή λαµβάνεται από τον χρονοδροµολογητή. Είναι σηµαντικό να γίνει κατανοητό, πως ο χρονοδροµολογητής µπορεί να διακόπτει την εκτέλεση ενός προγράµµατος οποιαδήποτε χρονική στιγµή και να αποδίδει την ΚΜΕ σε κάποιο άλλο πρόγραµµα. Έτσι, ακόµη και σε συστήµατα µε µια µόνο ΚΜΕ, τα διάφορα προγράµµατα εκτελούνται κατά µία έννοια (ψευδο-)παράλληλα. Η τεχνική του διαµοιρασµού χρόνου βασίζεται στις τεχνικές του πολυπρογραµµατισµού και της χρνοδροµολόγησης και είναι εφικτή για τους ακόλουθους λόγους: Τα προγράµµατα των χρηστών είναι συνήθως µικρά και απαιτούν πολύ Ε/Ε. Η ταχύτητα µε την οποία ο χρήστης παρέχει δεδοµένα στο σύστηµα (π.χ., η ταχύτητα πληκτρολόγησης) είναι εξαιρετικά µικρή σε σχέση µε εκείνη της ΚΜΕ. Η εναλλαγή των προγραµµάτων γίνεται πολύ γρήγορα, ώστε να µην είναι αντιληπτή. Αξίζει να σηµειωθεί πως κάποια από τα πρώτα υπολογιστικά συστήµατα ήταν συστήµατα οµαδικής επεξεργασίας (ή συστήµατα δέσµης, batch systems) και δεν υποστήριζαν καµία αλληλεπίδραση µε το χρήστη. Το ΛΣ ενός τέτοιου συστήµατος δέχεται µια οµάδα εργασιών (προγραµµάτων) προς εκτέλεση και έχει σαν στόχο να κάνει καλή διανοµή των πόρων και να εφαρµόσει καλές πολιτικές χρονοδροµολόγησης, ώστε να ελαχιστοποιηθεί ο χρόνος περάτωσης της εκτέλεσης των εργασιών αυτών. Με την τεχνική του διαµοιρασµού χρόνου µπορούν πολλοί χρήστες να χρησιµοποιούν ταυτόχρονα τον υπολογιστή. Έτσι, προγράµµατα διαφορετικών χρηστών (που 2 η έκδοση 15

16 1 ο Κεφάλαιο Εισαγωγή ενδεχόµενα έχουν διαφορετικούς και αντικρουόµενους στόχους) συναγωνίζονται για τους πόρους του υπολογιστή. Το λειτουργικό σύστηµα θα πρέπει να λάβει µέτρα για την δίκαιη χρήση των πόρων αυτών. Προκειµένου να αποφευχθεί, για παράδειγµα, η επ άπειρο χρήση της ΚΜΕ από ένα µόνο πρόγραµµα, πολλά συστήµατα χρησιµοποιούν έναν µετρητή, που ονοµάζεται χρονοµετρητής. Η τιµή του χρονοµετρητή ρυθµίζεται κάθε φορά που ένα πρόγραµµα αποκτά την ΚΜΕ. Με κάθε παλµό του ρολογιού του συστήµατος, η τιµή του χρονοµετρητή µειώνεται και όταν µηδενιστεί προκαλείται διακοπή. Τότε αναλαµβάνει δράση το ΛΣ, το οποίο ελέγχει το χρόνο που το τρέχον πρόγραµµα έχει χρησιµοποιήσει την ΚΜΕ και αποφασίζει αν αυτό θα συνεχίσει να κατέχει την ΚΜΕ για µια ακόµη περίοδο χρόνου (ή κβάντο χρόνου όπως ονοµάζεται), ή αν θα ανασταλεί παραχωρώντας την ΚΜΕ σε κάποιο άλλο ενεργό πρόγραµµα. Έτσι, το ΛΣ µπορεί περιοδικά να ελέγχει τη λειτουργία της ΚΜΕ και να αποφασίζει ποιο πρόγραµµα πρέπει να εκτελείται εκεί. 1.4 Καταστάσεις Λειτουργίας Συστηµάτων Ένα υπολογιστικό σύστηµα µπορεί να λειτουργεί µε δύο τρόπους, σε κατάσταση επόπτη (supervisor mode), στην οποία εκτελείται µόνο το ΛΣ και σε κατάσταση χρήστη (user mode), στην οποία εκτελούνται όλα τα προγράµµατα των χρηστών. Πολλές λειτουργίες πρέπει να εκτελούνται σε κατάσταση επόπτη για λόγους προστασίας (π.χ., για να διασφαλιστεί πως δεν θα εκτελέσουν παράνοµες ενέργειες και δεν θα χρησιµοποιήσουν τους πόρους παραπάνω από όσο χρόνο τους αναλογεί). Οι λειτουργίες αυτές ονοµάζονται προνοµιακές εντολές (privileged instructions). Οι λειτουργίες Ε/Ε επιτρέπεται να εκτελεστούν µόνο σε κατάσταση επόπτη, αφού αν ένα πρόγραµµα χρήστη εκτελέσει λειτουργίες Ε/Ε χωρίς την παρεµβολή του ΛΣ, τίποτα δεν µπορεί να το αποτρέψει από το να προσπελάσει και να τροποποιήσει δεδοµένα που ανήκουν σε άλλους χρήστες, το οποίο δεν είναι επιθυµητό. Προκειµένου να εκτελεστούν οι λειτουργίες Ε/Ε που απαιτούνται από τα προγράµµατα χρήστη, τα προγράµµατα αυτά θα πρέπει να ζητήσουν από το ΛΣ να τα εξυπηρετήσει εκτελώντας τις λειτουργίες αυτές, εφ όσον δεν έχουν τη δικαιοδοσία να τις εκτελέσουν από µόνα τους. Όλα τα ΛΣ παρέχουν µια συλλογή από ρουτίνες, κάθε µια από τις οποίες αντιστοιχεί σε µια προνοµιακή εντολή που µπορεί να εκτελείται από τα προγράµµατα των χρηστών. Οι ρουτίνες αυτές ονοµάζονται κλήσεις συστήµατος. Κάθε φορά που ένα πρόγραµµα χρήστη καλεί µια κλήση συστήµατος, γίνεται διακοπή προς το ΛΣ και το σύστηµα µεταπίπτει από κατάσταση χρήστη σε κατάσταση επόπτη. Το ΛΣ αρχίζει να εκτελείται, αποκρυπτογραφεί το είδος της διακοπής και αναλαµβάνει να διεκπεραιώσει την προνοµιακή εντολή που του ζητήθηκε, αφού φυσικά πρώτα ελέγξει ότι αυτή είναι έγκυρη και ότι δεν παρουσιάζεται κανένα πρόβληµα προστασίας. Εν τω µεταξύ, το ΛΣ µπορεί να αποφασίσει πως θα πρέπει να ανασταλεί η εκτέλεση του προγράµµατος που περιµένει τη διεκπεραίωση της προνοµιακής εντολής και να αρχίσει να εκτελείται κάποιο άλλο πρόγραµµα, προκειµένου η ΚΜΕ να µην παραµείνει ανενεργή. Επίσης, ίσως έχει ζητηθεί από κάποια από τις συσκευές Ε/Ε να εκτελέσει τις απαραίτητες λειτουργίες για τη διεκπεραίωση της προνοµιακής εντολής. Όταν η συσκευή Ε/Ε τελειώσει την εκτέλεση της λειτουργίας που της ζητήθηκε, διακόπτει και πάλι την ΚΜΕ, το σύστηµα εισέρχεται σε κατάσταση επόπτη και το ΛΣ λαµβάνει τις κατάλληλες ενέργειες εξυπηρέτησης της διακοπής. Αν η εκτέλεση της προνοµιακής εντολής έχει τελειώσει, το ΛΣ έχει τη 2 η έκδοση 16

17 1 ο Κεφάλαιο Εισαγωγή δυνατότητα να ξανα-αποδώσει την ΚΜΕ στο πρόγραµµα που ζήτησε την προνοµιακή εντολή για να συνεχιστεί η εκτέλεσή του (προφανώς µε µετάπτωση σε κατάσταση χρήστη). Εναλλακτικά, το ΛΣ µπορεί να αποφασίσει ότι είναι προτιµότερο να συνεχιστεί η εκτέλεση του προγράµµατος που απασχολούσε την ΚΜΕ όταν έγινε η διακοπή, ή µε οποιοδήποτε άλλο ενεργό πρόγραµµα. Είναι αξιοσηµείωτο πως κλήσεις συστήµατος υπάρχουν όχι µόνο για την εκτέλεση λειτουργιών Ε/Ε αλλά και για τη δηµιουργία διεργασιών, τη διαχείριση µνήµης, κ.α. 1.5 Τα Κύρια Μέρη ενός Λειτουργικού Συστήµατος Μια διεργασία είναι ένα πρόγραµµα που εκτελείται. (Περισσότερα για τις διεργασίες θα συζητηθούν στο Κεφάλαιο 2.) Τα περισσότερα ΛΣ υποστηρίζουν τη δηµιουργία και τον τερµατισµό διεργασιών, παρέχουν µηχανισµούς για τη µεταξύ τους επικοινωνία και το συγχρονισµό τους, ενώ επιπρόσθετα επιτρέπουν την αναστολή εκτέλεσης µιας διεργασίας, καθώς και την επαναπόδοση της ΚΜΕ σε αυτήν. Όλες αυτές οι λειτουργίες αποτελούν βασικά καθήκοντα ενός από τα σηµαντικότερα µέρη του ΛΣ, που ονοµάζεται διαχειριστής διεργασιών. Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο αν κάθε διεργασία του συνόλου περιµένει να συµβεί κάποιο γεγονός που µόνο µια άλλη διεργασία του συνόλου µπορεί να προκαλέσει. Για παράδειγµα, έστω ότι µία διεργασία Α έχει υπό την κατοχή της και χρησιµοποιεί έναν πόρο Π, αλλά για να τελειώσει την εκτέλεσή της και να τερµατίσει, ελευθερώνοντας τον πόρο Π, χρειάζεται να χρησιµοποιήσει και τον πόρο Π. Έστω τώρα ότι µια άλλη διεργασία Β, που έχει υπό την κατοχή της και χρησιµοποιεί τον Π, χρειάζεται, για να τερµατίσει και να ελευθερώσει τον Π, να χρησιµοποιήσει τον Π. Προφανώς, από κάποιο σηµείο και έπειτα, η εκτέλεση και των δύο διεργασιών θα σταµατήσει και για καµία από τις δύο δεν θα είναι εφικτό να συνεχίσει, αφού κάθε µια περιµένει µια ενέργεια που θα πρέπει να προκαλέσει η άλλη. Όταν οι δύο διεργασίες δεν µπορούν πλέον να εκτελεστούν, βρίσκονται σε αδιέξοδο. Είναι ευθύνη του διαχειριστή διεργασιών κάθε ΛΣ να χειρίζεται καταστάσεις αδιεξόδου (είτε επιλύοντας αδιέξοδα που προκύπτουν, είτε προλαµβάνοντας ή αποφεύγοντάς τα ώστε να µην προκύψουν, ή λαµβάνοντας κάποιου άλλου είδους ενέργειες προκειµένου να τα διαχειριστεί). Μέρος του διαχειριστή διεργασιών είναι και ο χρονοδροµολογητής διεργασιών, που αποφασίζει ποια διεργασία θα απασχολεί την ΚΜΕ κάθε χρονική στιγµή. Πολλά θέµατα που άπτονται του διαχειριστή διεργασιών θα συζητηθούν στα Κεφάλαια 2 και 3. Ένα δεύτερο σηµαντικό συστατικό ενός ΛΣ είναι ο διαχειριστής µνήµης. Μερικές από τις λειτουργίες για τις οποίες είναι υπεύθυνος ο διαχειριστής µνήµης είναι (1) η επιλογή των διεργασιών που βρίσκονται κάθε χρονική στιγµή στη µνήµη, (2) η χορήγηση µνήµης στις διεργασίες όταν τη χρειάζονται και διαχείριση του ελεύθερου χώρου που προκύπτει στη µνήµη όταν αυτές ολοκληρώνουν την εκτέλεσή τους, (3) η εναλλαγή πληροφοριών µεταξύ κύριας µνήµης και δίσκου όταν η κύρια µνήµη δεν επαρκεί για τις ανάγκες όλων των ενεργών διεργασιών, και (4) η διατήρηση πληροφοριών για τα µέρη της µνήµης που χρησιµοποιούνται, καθώς και για εκείνα που είναι αχρησιµοποίητα κάθε χρονική στιγµή. ιαφορετικές τεχνικές διαχείρισης µνήµης θα µελετηθούν αναλυτικά στο κεφάλαιο 4. 2 η έκδοση 17

18 1 ο Κεφάλαιο Εισαγωγή Το εκπαιδευτικό υλικό αυτό, ως εισαγωγικό στο χώρο των ΛΣ, επικεντρώνεται µόνο στα παραπάνω δύο σηµαντικά συστατικά των ΛΣ. Ωστόσο, ένα ΛΣ απαρτίζεται από πολύ περισσότερα συστατικά τα οποία αναφέρονται περιληπτικά στη συνέχεια. Κάθε διεργασία µπορεί να αποθηκεύει τα δεδοµένα της στην κύρια µνήµη. Ωστόσο, ο χώρος αυτός είναι περιορισµένος και για τις περισσότερες εφαρµογές δεν είναι αρκετός. Επιπρόσθετα όταν µια διεργασία τερµατίζει όλες οι πληροφορίες που γράφτηκαν από αυτήν στην κύρια µνήµη χάνονται. Για τους λόγους αυτούς, τα δεδοµένα χρειάζεται να αποθηκεύονται και σε δίσκους ή σε άλλα µέσα δευτερεύουσας αποθήκευσης, όπως τα CD, τα DVD, κλπ. Η λογική µονάδα αποθήκευσης στα µέσα αυτά ονοµάζεται αρχείο. Ένα αρχείο αποτελείται είτε από µια ακολουθία χαρακτήρων ή έχει κάποιου είδους µορφοποίηση (π.χ., είναι αρχείο εγγραφών). Τα αρχεία λειτουργούν αφαιρετικά ως προς τις ιδιαιτερότητες των συσκευών στις οποίες αποθηκεύονται. Το µέρος του ΛΣ που ονοµάζεται διαχειριστής αρχείων είναι υπεύθυνο για τη δηµιουργία και τη διαγραφή αρχείων, τον καθορισµό του είδους προσπέλασης που επιτρέπεται σε ένα αρχείο και την αποφυγή άλλου είδους παράνοµων προσπελάσεων σε αυτό, την οργάνωση των αρχείων σε καταλόγους, την παροχή κλήσεων συστήµατος για τη διαχείριση αρχείων, την αποθήκευση αρχείων στα διάφορα µέσα αποθήκευσης που παρέχονται στο σύστηµα, κ.α. Ένα άλλο σηµαντικό συστατικό ενός ΛΣ είναι ο διαχειριστής του συστήµατος Ε/Ε. Κάθε συσκευή Ε/Ε χρειάζεται, προκειµένου να λειτουργήσει, ειδικό λογισµικό που ονοµάζεται οδηγός της συσκευής (device driver). Το ΛΣ παρέχει µια σειρά από οδηγούς για τις συσκευές Ε/Ε του υπολογιστικού συστήµατος στο οποίο εκτελείται. Θα πρέπει να τονιστεί ωστόσο, πως πολλές φορές οι οδηγοί συσκευών δεν θεωρούνται µέρος του ΛΣ, εκτελούνται σε κατάσταση χρήστη και µπορούν να αντικατασταθούν από άλλους της αρεσκείας του χρήστη. Ο διαχειριστής δίσκου είναι ένα ακόµη συστατικό κάθε λειτουργικού συστήµατος. Ρόλος του είναι να διαχειρίζεται αποδοτικά και δίκαια το χώρο του δίσκου, ο οποίος είναι το σηµαντικότερο µέσο δευτερεύουσας αποθήκευσης. Τα περισσότερα ΛΣ παρέχουν επίσης µηχανισµούς διαχείρισης δικτύου που επιτρέπουν σε δύο ή περισσότερες µηχανές να επικοινωνήσουν µεταξύ τους. Τέλος, ένα ακόµη σηµαντικό µέρος ενός ΛΣ είναι και το σύστηµα προστασίας και ασφάλειας που παρέχει. Ένα µικρό (αλλά πολύ βασικό) µέρος του ΛΣ ονοµάζεται πυρήνας. Ο πυρήνας χτίζεται κατευθείαν πάνω στο υλικό του Η/Υ και είναι το περισσότερο εξαρτώµενο από τη µηχανή µέρος του ΛΣ. Στον πυρήνα συνήθως ανήκουν τα µέρη εκείνα του ΛΣ που υλοποιούν τις παρακάτω λειτουργίες: Χειρισµός διακοπών. ηµιουργία και τερµατισµός διεργασιών. Μέρος του χρονοδροµολογητή. Συντονισµός διεργασιών. Αναστολή και αφύπνιση διεργασιών. Υποστήριξη δραστηριοτήτων Ε/Ε. Υποστήριξη δέσµευσης και αποδέσµευσης µνήµης, κ.α. 2 η έκδοση 18

19 1 ο Κεφάλαιο Εισαγωγή Μέρος του πυρήνα είναι συχνά γραµµένο σε γλώσσα µηχανής (assembly). Τα τελευταία χρόνια παρουσιάζεται η τάση κάποια µέρη των ΛΣ να γράφονται σε µικροκώδικα (κώδικα στοιχειωδών εντολών, ενσωµατωµένο στο υλικό). Κάθε ΛΣ ακολουθείται από λογισµικό που είναι γνωστό ως διερµηνευτής εντολών ή φλοιός. Παρότι ο φλοιός δεν αποτελεί µέρος του ΛΣ, είναι ίσως το σηµαντικότερο πρόγραµµα που εκτελείται πάνω από αυτό, αφού παρέχει τη διεπιφάνεια χρήσης µεταξύ του χρήστη και του ΛΣ. Ο φλοιός δέχεται εντολές του χρήστη και ζητά από το ΛΣ να τις εκτελέσει. Ο φλοιός των Windows είναι το παραθυρικό περιβάλλον χρήσης που εµφανίζεται όταν εκτελούνται τα Windows. Σε άλλα ΛΣ, ο φλοιός δεν είναι τόσο εύχρηστος. Ο φλοιός εκτελείται σε κατάσταση χρήστη και µπορεί να αντικατασταθεί από οποιονδήποτε φλοιό της αρεσκείας του χρήστη. 1.6 Κατανεµηµένα Συστήµατα & Συστήµατα Πραγµατικού Χρόνου Ένα κατανεµηµένο σύστηµα αποτελείται από πολλούς επεξεργαστές που µπορούν να επικοινωνούν µεταξύ τους. Σε ένα κατανεµηµένο σύστηµα, ένας υπολογισµός µπορεί να εκτελεστεί µε συµµετοχή περισσότερων του ενός επεξεργαστών. Επίσης, προγράµµατα που εκτελούνται σε διαφορετικούς επεξεργαστές µπορούν να µοιράζονται δεδοµένα και άλλους πόρους. Μερικοί από τους λόγους που οδήγησαν στην δηµιουργία κατανεµηµένων συστηµάτων είναι ο διαµοιρασµός πόρων, η αύξηση της ταχύτητας εκτέλεσης µεγάλων υπολογισµών (αυτό γίνεται µε το διαχωρισµό ενός υπολογισµού σε µικρότερες εργασίες και τη χρήση περισσότερων του ενός επεξεργαστών για την εκτέλεσή τους), η αξιοπιστία (αν κάποιος επεξεργαστής αποτύχει, οι υπόλοιποι µπορούν να αναλάβουν τις εργασίες που εκτελούσε, ώστε ο χρήστης να µην καταλάβει ότι υπήρξε κάποιο πρόβληµα µε τον επεξεργαστή που ανέλαβε να διεκπεραιώσει τη διεργασία του), η επικοινωνία, κ.α. Οι στόχοι ενός κατανεµηµένου συστήµατος είναι αρκετά διαφορετικοί από εκείνους των συµβατικών συστηµάτων. Τα ΛΣ κατανεµηµένων συστηµάτων είναι ειδικά σχεδιασµένα για να ανταποκρίνονται στις υψηλές απαιτήσεις τους. Η µελέτη κατανεµηµένων ΛΣ δεν θα µας απασχολήσει στο εκπαιδευτικό υλικό αυτό. Αντίθετα, θα µελετήσουµε συστήµατα µε µία µόνο ΚΜΕ. Ωστόσο, ο πολυπρογραµµατισµός επιτρέπει την ταυτόχρονη εκτέλεση πολλών διεργασιών και επιφέρει προβλήµατα συγχρονισµού (όπως το πρόβληµα του αµοιβαίου αποκλεισµού που θα µελετηθεί στο Κεφάλαιο 3) που θεωρούνται θεµελιώδη στον κατανεµηµένο υπολογισµό. Σε ένα σύστηµα πραγµατικού χρόνου υπάρχουν καλά προκαθορισµένες χρονικές προθεσµίες για την εκτέλεση κάθε µιας από τις διεργασίες. Ο βασικότερος στόχος του ΛΣ είναι να καταφέρει να χρονοδροµολογήσει όλες τις διεργασίες µε τέτοιο τρόπο ώστε η εκτέλεση κάθε µιας να περατωθεί πριν τη λήξη της προθεσµίας της. Τα συστήµατα πραγµατικού χρόνου χρησιµοποιούνται όλο και συχνότερα τον τελευταίο καιρό, π.χ., στην ιατρική (για εγχειρίσεις µέσω υπολογιστών), στις µεταφορές (αυτόµατη πλοήγηση αεροσκάφους), κ.α. 2 η έκδοση 19

20 1 ο Κεφάλαιο Εισαγωγή 1.7 Για Περισσότερη Μελέτη Άσκηση Αυτοαξιολόγησης 1 (Μέρος Θέµατος 1, 4 η Εργασία Ακ. Έτους ) 1. Περιγράψτε τις βασικές ιδιότητες των παρακάτω τύπων λειτουργικών συστηµάτων: α) οµαδικής επεξεργασίας β) διαµοιρασµού χρόνου γ) πραγµατικού χρόνου 2. Για κάθε ένα από τα παρακάτω συστήµατα επιλέξτε τον τύπο λειτουργικού συστήµατος (i, ii ή iii) που κρίνετε ως πιο κατάλληλο. Σχολιάστε την επιλογή σας. α) Σύστηµα που χρησιµοποιείται από µια τράπεζα για επεξεργασία επιταγών και που απαιτεί ελάχιστη ανθρώπινη παρέµβαση. β) Σύστηµα που χρησιµοποιείται για την ιατρική παρακολούθηση ασθενών στη µονάδα εντατικής θεραπείας. γ) Σύστηµα που χρησιµοποιείται για παιχνίδια. δ) Σύστηµα που χρησιµοποιείται για ανάπτυξη εφαρµογών. 3. Ποιες από τις παρακάτω θα πρέπει να είναι προνοµιακές εντολές ενός λειτουργικού συστήµατος και γιατί; Λύση α) Αλλαγή της τιµής του ρολογιού του συστήµατος. β) Ανάγνωση της τιµής του ρολογιού του συστήµατος. γ) Καθαρισµός µνήµης δ) Απενεργοποίηση διακοπών ε) Αλλαγή από κατάσταση χρήστη σε κατάσταση επόπτη στ) Λειτουργίες Εισόδου/Εξόδου. 1. Βασικές ιδιότητες: α) ΛΣ Οµαδικής Επεξεργασίας. Οι εργασίες υποβάλλονται στον Η/Υ κατά οµάδες. εν είναι δυνατή η αλληλεπίδραση ανάµεσα στον χρήστη και στο πρόγραµµα κατά τη διάρκεια της επεξεργασίας. Ο χρόνος απόκρισης για κάθε χρήστη είναι το χρονικό διάστηµα από την υποβολή ως την παραλαβή της εργασίας. β) ΛΣ ιαµοιρασµού Χρόνου. Επιτρέπει την παράλληλη εξυπηρέτηση πολλών χρηστών. Επιτρέπει την αλληλεπίδραση των χρηστών µε τα προγράµµατά τους. 2 η έκδοση 20

21 1 ο Κεφάλαιο Εισαγωγή ιαµοιράζει τον χρόνο της ΚΜΕ µεταξύ των χρηστών, δηµιουργώντας την εντύπωση της παράλληλης επεξεργασίας. γ) ΛΣ Πραγµατικού Χρόνου. Εξυπηρετεί εργασίες που απαιτούν αυστηρά καθορισµένο όριο χρόνου απόκρισης. 2. Είναι φανερό ότι τα συστήµατα οµαδικής επεξεργασίας είναι τα απλούστερα, ενώ τα συστήµατα πραγµατικού χρόνου είναι τα συνθετότερα. Μια απλή εφαρµογή που µπορεί να εξυπηρετηθεί από ένα σύστηµα οµαδικής επεξεργασίας, είναι επόµενο να µπορεί επίσης να εξυπηρετηθεί και από ένα σύστηµα διαµοιρασµού χρόνου και από ένα σύστηµα πραγµατικού χρόνου. Έτσι, το ερώτηµα ουσιαστικά ζητάει τον απλούστερο τύπο ΛΣ που µπορεί να εξυπηρετήσει ικανοποιητικά την κάθε εφαρµογή. Λέµε «ικανοποιητικά» γιατί µια εξίσου σηµαντική παράµετρος για την επιλογή µας είναι η αποδοτικότητα. Για παράδειγµα, ένα σύστηµα που χρησιµοποιεί εξεζητηµένους αλγόριθµους χρονοδροµολόγησης, µπορεί πράγµατι να εξυπηρετήσει µια απλή εφαρµογή, όµως ενδεχοµένως να σπαταλά πολύ χρόνο για τη χρονοδροµολόγηση, χωρίς να χρειάζεται (επειδή η εφαρµογή είναι απλή). Σύµφωνα µε τα παραπάνω, οι καταλληλότερες επιλογές έχουν ως εξής: Το σύστηµα επεξεργασίας επιταγών µπορεί να εξυπηρετηθεί από ένα ΛΣ οµαδικής επεξεργασίας. εν απαιτείται αλληλεπίδραση µεταξύ του χρήστη και του συστήµατος κατά την επεξεργασία µιας επιταγής, ούτε η παράλληλη επεξεργασία των επιταγών. Το σύστηµα παρακολούθησης ασθενών αποτελεί κλασική εφαρµογή για ΛΣ πραγµατικού χρόνου. Μόλις γίνει αντιληπτή µια ανωµαλία στην κατάσταση κάποιου ασθενούς, το σύστηµα θα πρέπει αµέσως να διακόψει κάθε µικρότερης προτεραιότητας εργασία και να ανταποκριθεί µε αυστηρά καθορισµένα χρονικά περιθώρια στην κατάσταση. Οι παιχνιδοµηχανές είναι στην πραγµατικότητα πολύ απαιτητικά συστήµατα. Πρέπει να έχουν τη δυνατότητα να εξυπηρετούν παράλληλα πολλούς παίκτες, οι αντιδράσεις των οποίων θα πρέπει να επιδρούν στο παιχνίδι ακαριαία. Ένα ΛΣ πραγµατικού χρόνου απαιτείται για την υποστήριξη µιας ποιοτικής παιχνιδοµηχανής. Μια λιγότερο απαιτητική παιχνιδοµηχανή ενδεχοµένως να µπορούσε να υποστηριχθεί από ένα γρήγορο σύστηµα διαµοιρασµού χρόνου. Στο σύστηµα για ανάπτυξη εφαρµογών το κατάλληλο ΛΣ είναι αυτό του διαµοιρασµού χρόνου. Επιτρέπει την φαινοµενικά παράλληλη εκτέλεση πολλών εργασιών (π.χ., editor, help browser, παράθυρο εκτέλεσης προγράµµατος, κλπ), χωρίς να είναι κρίσιµος ο συγχρονισµός τους. 3. Η έννοια της προνοµιακής εντολής αφορά λειτουργίες οι οποίες για λόγους προστασίας δεν επιτρέπεται να εκτελούνται άµεσα από τις διεργασίες των χρηστών. α) Η αλλαγή της τιµής του ρολογιού του συστήµατος θα πρέπει να είναι προνοµιακή εντολή γιατί ο χρονισµός του συστήµατος είναι κρίσιµος παράγοντας για τη σωστή λειτουργία του (ας θυµηθούµε τη σχετική συζήτηση στην ενότητα «Προστασία ΚΜΕ»). 2 η έκδοση 21

22 1 ο Κεφάλαιο Εισαγωγή β) Η ανάγνωση του ρολογιού του συστήµατος δεν χρειάζεται να είναι προνοµιακή εντολή γιατί η ανάγνωση του ρολογιού του συστήµατος δεν είναι κρίσιµος παράγοντας για τη λειτουργία του συστήµατος. γ) Ο καθαρισµός µνήµης είναι λειτουργία Ε/Ε και, εποµένως, πρέπει να είναι προνοµιακή εντολή. δ) Η απενεργοποίηση διακοπών σαφώς και πρέπει να είναι προνοµιακή εντολή για να µην µπορεί µια διαδικασία να µονοπωλήσει τους πόρους του συστήµατος µε απενεργοποίηση των διακοπών. Ουσιαστικά, η παροχή στις διεργασίες χρήστη του δικαιώµατος απενεργοποίησης των διακοπών θα επέτρεπε σε αυτές να καταργούν το ΛΣ. ε) Η αλλαγή από κατάσταση χρήστη σε κατάσταση επόπτη θα πρέπει να είναι προνοµιακή εντολή, για τους λόγους προστασίας που έχουν ήδη συζητηθεί. ιαφορετικά µια διαδικασία χρήστη θα µπορούσε να περάσει από κατάσταση χρήστη σε κατάσταση επόπτη και στη συνέχεια να αποκτήσει πλήρη έλεγχο στο σύστηµα. στ) Οι λειτουργίες Εισόδου/Εξόδου πρέπει να είναι προνοµιακές εντολές για τους λόγους που συζητήθηκαν στην ενότητα «Προστασία Ε/Ε». 1.8 Βιβλιογραφικές Αναφορές Στο κεφάλαιο αυτό παρουσιάστηκε µια συνοπτική µόνο περιγραφή των βασικότερων εννοιών ενός ΛΣ. Πολλά κλασικά βιβλία των λειτουργικών συστηµάτων [BH73, D90, N00, SGG05, St03, TanΙ] παρέχουν αναλυτικότερες και πιο πλήρεις περιγραφές των εννοιών που παρουσιάστηκαν εδώ καθώς και άλλων που δεν κρίθηκε σκόπιµο να αναφερθούν. Οι πρώτες προσπάθειες κατασκευής ΛΣ που χρησιµοποιούσαν τις τεχνικές του πολυπρογραµµατισµού και του διαµοιρασµού χρόνου έγιναν στη δεκαετία του Η τεχνική του πολυπρογραµµατισµού εφαρµόστηκε αρχικά σε συστήµατα δέσµης. Τα συστήµατα διαµοιρασµού χρόνου προτάθηκαν στην εργασία [S59], αλλά πατέρας των συστηµάτων αυτών συχνά θεωρείται ο Fernando Corbató [CDD62] που ανέπτυξε το πρώτο τέτοιο σύστηµα και µελέτησε τη λειτουργία του. Όλα τα εισαγωγικά βιβλία της αρχιτεκτονικής υπολογιστών [St00, Tan90], αλλά και τα περισσότερα βιβλία της εισαγωγής στους υπολογιστές [GL96, N00] καλύπτουν την ύλη της Ενότητας 1. Βασικά θέµατα των κατανεµηµένων λειτουργικών συστηµάτων καλύπτονται στα βιβλία [G00, TanΙΙ]. Κλασικά βιβλία των κατανεµηµένων συστηµάτων θεωρούνται τα [CDK01, M93, TanS06], ενώ του κατανεµηµένου υπολογισµού τα [AW97, HS07, Lyn96, M93, T94]. 2 η έκδοση 22

23 2ο Κεφάλαιο ιεργασίες Χρονοδροµολόγηση ιεργασιών

24 2 ο Κεφάλαιο ιεργασίες Χρονοδροµολόγηση ιεργασιών 2.1 ιεργασίες Ο επικρατέστερος ορισµός της έννοιας της διεργασίας είναι πως είναι ένα πρόγραµµα που εκτελείται. Στον Τόµο Γ της θεµατικής ενότητας παρουσιάζονται πολλοί ακόµη ισοδύναµοι ορισµοί για την έννοια αυτή (εκεί χρησιµοποιείται ο όρος διαδικασία αντί του όρου διεργασία). Η κύρια διαφορά µιας διεργασίας από ένα πρόγραµµα είναι πως η διεργασία είναι µια ενεργή οντότητα, ενώ το πρόγραµµα παθητική. Για να γίνει πιο κατανοητή η διαφορά µεταξύ διεργασίας και προγράµµατος, ας φανταστούµε έναν πληροφορικάριο ο οποίος κάποια χρονική στιγµή συναρµολογεί έναν υπολογιστή. Έχει µπροστά του το εγχειρίδιο συναρµολόγησης και τα κοµµάτια του υπολογιστή και εκτελεί την συναρµολόγηση βάσει του εγχειριδίου. Στο παράδειγµά µας, ο πληροφορικάριος είναι ο επεξεργαστής (δηλαδή η ΚΜΕ), το εγχειρίδιο είναι το πρόγραµµα, και τα κοµµάτια του υπολογιστή είναι η είσοδος στο πρόγραµµα. Η έξοδος του προγράµµατος θα είναι ο συναρµολογηµένος υπολογιστής. ιεργασία είναι όλη η διαδικασία συναρµολόγησης του νέου υπολογιστή. Περιλαµβάνει το πρόγραµµα, την είσοδο, την έξοδο, τον αριθµό της εντολής του εγχειριδίου που εκτελείται κάθε χρονική στιγµή, κλπ. Αντίθετα, το πρόγραµµα, στο παράδειγµα µας, αποτελείται απλώς από το εγχειρίδιο (το οποίο µπορεί να βρίσκεται στη βιβλιοθήκη του πληροφορικάριου για µήνες, χωρίς να διαδραµατίζει κανένα ενεργό ρόλο, ή µπορεί να βρίσκεται αποθηκευµένο σε ένα αρχείο). Ένα πρόγραµµα µπορεί και να µην εκτελεστεί ποτέ. Έστω τώρα πως τη στιγµή της συναρµολόγησης, ο διευθυντής της εταιρίας στην οποία δουλεύει ο πληροφορικάριος του ζητά βοήθεια για να εγκαταστήσει ένα νέο εκτυπωτή στο γραφείο του. Στο σηµείο αυτό, ο πληροφορικάριος είναι σαν να δέχεται µια διακοπή. εδοµένου ότι η εγκατάσταση του εκτυπωτή του διευθυντή είναι διεργασία µεγαλύτερης προτεραιότητας, ο πληροφορικάριος αναστέλλει προσωρινά τη συναρµολόγηση του υπολογιστή, φροντίζοντας να θυµάται το σηµείο από όπου θα συνεχίσει όταν επιστρέψει και ξεκινά να εκτελεί τη νέα διεργασία που προέκυψε. 2.2 Καταστάσεις ιεργασιών Όπως έχει ήδη αναφερθεί, πολλές διεργασίες µπορεί να είναι έτοιµες να εκτελεστούν, αλλά µόνο µία είναι αυτή που απασχολεί κάθε χρονική στιγµή την ΚΜΕ. Η διεργασία αυτή λέγεται εκτελούµενη ή τρέχουσα. Οι διεργασίες που είναι έτοιµες να εκτελεστούν όταν η ΚΜΕ γίνει διαθέσιµη, λέγονται έτοιµες ή εκτελέσιµες, ενώ οι υπόλοιπες που περιµένουν κάποιο άλλο συµβάν (π.χ., την ολοκλήρωση µιας λειτουργίας Ε/Ε) λέγονται υπό αναστολή ή µπλοκαρισµένες. Εποµένως, υπάρχουν τρεις βασικές καταστάσεις στις οποίες µπορεί να βρίσκεται µια διεργασία: εκτελούµενη, έτοιµη ή υπό αναστολή. Το Σχήµα 3 αναπαριστά το γράφηµα καταστάσεων µιας διεργασίας. Κάθε διεργασία αρχικά είναι σε κατάσταση έτοιµη. Όταν της αποδοθεί η ΚΜΕ, γίνεται εκτελούµενη. Ενόσω εκτελείται, µπορεί να θελήσει να εκτελέσει κάποια λειτουργία Ε/Ε, οπότε µεταπίπτει σε κατάσταση υπό αναστολή (και να είχε την ΚΜΕ δεν θα µπορούσε να την χρησιµοποιήσει πριν την περάτωση της λειτουργίας Ε/Ε). Κάποια στιγµή αργότερα, που η λειτουργία Ε/Ε θα ολοκληρωθεί, η διεργασία θα ξαναγίνει έτοιµη και θα 2 η έκδοση 24

25 2 ο Κεφάλαιο ιεργασίες Χρονοδροµολόγηση ιεργασιών ξαναεκτελεστεί αργότερα στην ΚΜΕ. Εναλλακτικά, ενόσω εκτελείται, η διεργασία µπορεί να διακοπεί από τον χρονοδροµολογητή, ο οποίος αποφασίζει πως η διεργασία έχει ήδη εκτελεστεί για αρκετά µεγάλο χρονικό διάστηµα και θα πρέπει να παραχωρήσει την ΚΜΕ σε κάποια άλλη διεργασία. Στην περίπτωση αυτή, η κατάσταση της διεργασίας αλλάζει από εκτελούµενη σε έτοιµη. Η κατάσταση µιας διεργασίας είναι σύνηθες να αλλάζει ένα µεγάλο αριθµό φορών από την εισαγωγή της στο σύστηµα µέχρι τον τερµατισµό της. Το Σχήµα 3 περιγράφει τις καταστάσεις µιας διεργασίας καθώς και τις δυνατές µεταβάσεις από µια κατάσταση σε κάποια άλλη. εκτελούµενη αν η εκτελούµενη διεργασία τερµατίσει εξέρχεται του συστήµατος ο δροµολογητής µπορεί να εναλάσσει διεργασίες από και προς την ΚΜΕ αν η εκτελούµενη διεργασία ζητήσει την εκτέλεση Ε/Ε ή αναµένει κάποιο γεγονός, θα ανασταλεί έτοιµη ή εκτελέσιµη κάθε νέα διεργασία που εισέρχεται στο σύστηµα είναι εκτελέσιµη όταν η Ε/Ε (ή το γεγονός) πραγµατοποιηθεί θα προκληθεί διακοπή και η διεργασία θα ξαναγίνει εκτελέσιµη µπλοκαρισµένη ή υπό αναστολή Σχήµα 3: Γράφηµα καταστάσεων διεργασίας. 2.3 Το Μπλοκ Ελέγχου ιεργασιών Η εκτελούµενη διεργασία χρησιµοποιεί τους καταχωρητές του συστήµατος, ενώ ενδεχόµενα έχει υπό την κατοχή της και άλλους πόρους. Ο µετρητής προγράµµατος περιέχει τη διεύθυνση της επόµενης εντολής που πρέπει να εκτελεστεί από τη διεργασία (έστω ότι η διεργασία ονοµάζεται Α). Προφανώς, αν µια νέα διεργασία (έστω Β) την αντικαταστήσει στην ΚΜΕ, θα χρησιµοποιήσει και αυτή µε αντίστοιχο τρόπο τους καταχωρητές και τους υπόλοιπους πόρους του συστήµατος, καταστρέφοντας τις πληροφορίες που είχαν αποθηκευθεί εκεί από την Α. Το ΛΣ θα πρέπει εποµένως να διατηρήσει αρκετές πληροφορίες για την Α, πριν την αντικαταστήσει στην ΚΜΕ, ώστε όταν αποδοθεί η ΚΜΕ στη Β, να εξακολουθήσει να είναι εφικτή η επανεκτέλεση της Α κάποια χρονική στιγµή στο µέλλον από το σηµείο ακριβώς που διακόπηκε. (Ας θυµηθούµε το παράδειγµα µε τον πληροφορικάριο, ο οποίος θα πρέπει να θυµάται το σηµείο στο οποίο διακόπηκε η συναρµολόγηση του υπολογιστή, προκειµένου να τη 2 η έκδοση 25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Κεντρικής Μονάδας Επεξεργασίας (CPU) Βασίλης Σακκάς 4/12/2013 1 Xρονοδρομολόγηση Διεργασιών 1 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί

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

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

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

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

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

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

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

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

ροµολόγηση Επεξεργαστή ροµολόγηση Επεξεργαστή Κεφάλαιο 9 Στόχοι της ροµολόγησης Χρόνος Απόκρισης Throughput Αποδοτική χρήση επεξεργαστή Τύποι ροµολόγησης Μακροπρόθεσµη δροµολόγηση Μεσοπρόθεσµη δροµολόγηση Βραχυπρόθεσµη δροµολόγηση

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

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

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

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

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

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

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

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

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

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

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα πραγματικού χρόνου Τι είναι λειτουργικό σύστημα πραγματικού χρόνου; Λειτουργικό Σύστημα Πραγματικού Χρόνου (ΛΣΠΧ) είναι ένα λειτουργικό σύστημα που προορίζεται για εφαρμογές πραγματικού

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

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 3: Λειτουργικά Συστήματα Κεφάλαιο 3: Λειτουργικά Συστήματα (από το βιβλίο του Brookshear) B Μέρος Συντονισμός Δραστηριοτήτων Υπολογιστή Εισαγωγή Σήμερα θα περιγράψουμε πως ένα λειτουργικό σύστημα συντονίζει την εκτέλεση Λογισμικού

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

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

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες» 1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο

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

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

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

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

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών 44 Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών Διδακτικοί στόχοι Σκοπός του κεφαλαίου είναι οι μαθητές να κατανοήσουν τα βήματα που ακολουθούνται κατά την ανάπτυξη μιας εφαρμογής.

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

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7 ο Αλγόριθμοι Χρονοδρομολόγησης Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης, και θα παρουσιάσουμε τους κυριότερους. Θα μάθουμε:

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling) Μάθημα 6 ο Χρονοδρομολόγηση (Scheduling) Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και τη λειτουργία της χρονοδρομολόγησης σε ένα Λειτουργικό Σύστημα. Θα μάθουμε: Να ορίζουμε τι είναι

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

ΛΟΓΙΣΜΙΚΟ (software)

ΛΟΓΙΣΜΙΚΟ (software) ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,

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

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

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

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

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

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

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

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

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

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

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1 Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση

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

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

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης 7.1 Ορισμός Στόχοι Αλγόριθμο χρονοδρομολόγησης (scheduling algorithm) ονομάζουμε την μεθοδολογία την οποία χρησιμοποιεί ο κάθε χρονοδρομολογητής (βραχυχρόνιος, μεσοχρόνιος

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

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

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

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

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση Εργαστηριακή Άσκηση Οι Αλγόριθμοι Χρονοπρογραμματισμού First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Επιμέλεια: Βασίλης Τσακανίκας Περιεχόμενα Αλγόριθμοι

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

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ 2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο

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

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων Λειτουργικά Συστήματα Ι Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων Δομή Η/Υ Ο Η/Υ αποτελείται από δυο βασικά στοιχεία: Υλικό (το ηλεκτρονικό-μηχανικό μέρος πχ συσκευές, πλακέτες κλπ) Λογισμικό

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"

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

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

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

Αρχιτεκτονική Υπολογιστών

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

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Ακαδηµαϊκό Έτος 2003-2004, Εαρινό Εξάµηνο ιδάσκων

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

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

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών. ΕΙΣΑΓΩΓΗ Υλισµικό (Hardware) Επεξεργαστής-ΚΜΕ (Processor, CPU): εκτέλεση εντολών Μνήµη (Memory): προσωρινή αποθήκευση πληροφοριών Μονάδες ε/ε (I/O devices): Μονάδες δίσκων: Μόνιµη αποθήκευση πληροφοριών

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

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

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

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

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

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

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

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4

Οργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4 Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει

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

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

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «ροµολόγηση ιεργασιών (1/2)» ροµολόγηση σε συστήµατα µε έναν επεξεργαστή ροµολόγηση σε πολυεπεξεργαστικά συστήµατα ροµολόγηση σε κατανεµηµένα

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

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

Σκελετός Παρουσίασης Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Σκελετός

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

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

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

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

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

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

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

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

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

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

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

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

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

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Εικονική Μνήµη Κεφάλαιο 8 Υλικό και δοµές ελέγχου Οι αναφορές στην µνήµη υπολογίζονται δυναµικά κατά την εκτέλεση Ηδιεργασίαχωρίζεταισετµήµατα τα οποία δεν απαιτείται να καταλαµβάνουν συνεχόµενες θέσεις

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

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

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

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

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

Βασικές Έννοιες της Πληροφορικής

Βασικές Έννοιες της Πληροφορικής Βασικές Έννοιες της Πληροφορικής Ηλεκτρονικός Υπολογιστής Αυτόματη ηλεκτρονική μηχανή που δέχεται, φυλάσσει, επαναφέρει, επεξεργάζεται και παρουσιάζει πληροφορίες σύμφωνα με προκαθορισμένες εντολές. Δεδομένα

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 1: Βασικές Έννοιες Λειτουργικών Συστημάτων

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

Αδιέξοδα (Deadlocks)

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

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

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

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

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

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

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος Εισαγωγή στα Λειτουργικά συστήματα Ι Καθηγητής Κώστας Αναγνωστόπουλος Τι είναι Λειτουργικό Σύστημα Ένα πρόγραμμα ή συλλογή προγραμμάτων που ελέγχει και διαχειρίζεται το υλικό μιας υπολογιστικής μηχανής

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

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

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

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

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

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

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ Δρ. Γκόγκος Χρήστος Εκτέλεση προγραμμάτων Πρόγραμμα: Ένα σύνολο από εντολές.

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

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

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:

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

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ

ΠΡΟΒΛΗΜΑ ΕΠΕΓΕΡΓΑΣΙΑ. (Είναι οι σκέψεις και οι πράξεις που κάνουμε για να λυθεί το πρόβλημα) ΕΙΣΟΔΟΥ - ΕΞΟΔΟΥ 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το Υλικό του Υπολογιστή ΠΡΟΒΛΗΜΑ ΔΕΔΟΜΕΝΑ (Είναι τα στοιχεία που δίνουμε για λυθεί το πρόβλημα) ΕΠΕΓΕΡΓΑΣΙΑ (Είναι οι σκέψεις και οι πράξεις που

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

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

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

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Επανάληψη 1 Ο νόμος του Moore λέει ότι: a) Η πυκνότητα των κυκλωμάτων της μνήμης είναι πάντα τριπλάσια αυτής των ολοκληρωμένων κυκλωμάτων. b) Κάθε 18 μήνες

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

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

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

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

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές

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

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

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

Περιγραφή και Έλεγχος ιεργασιών

Περιγραφή και Έλεγχος ιεργασιών Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα

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

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ρονοδροµολόγηση µε βάση τον χρόνο εισόδου

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

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

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ Σημειώσεις Θεωρίας Αθήνα 2015 Μάθημα 1: Λειτουργικά Συστήματα 1.1 Γενικά Κάθε υπολογιστικό σύστημα αποτελείται από: Υπολογιστικό Σύστημα Υλικό (Hardware) Λογισμικό

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

Εγχειρίδιο χρήσης του Άβακα

Εγχειρίδιο χρήσης του Άβακα Εγχειρίδιο χρήσης του Άβακα Με το παρόν λογισμικό γίνεται προσομοίωση των λειτουργικών δυνατοτήτων του εκπαιδευτικού υπολογιστή που έχει την ονομασία Άβακας. Η εικόνα του Άβακα εμφανίζεται σε παράθυρο

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

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

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