E π A π π ª π AÚ TÂ ÓÔÏÔÁ ÔÁÈÛÌÈÎÔ TfiÌÔ B' ÏÔ apple Ú ÎË ÂÈÙÔ ÚÁÈÎ ÛÙ Ì Ù I
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος B' Λειτουργικά Συστήµατα I ΠΑΥΛΟΣ ΣΠΥΡΑΚΗΣ Kαθηγητής Tµήµατος Mηχανικών H/Y και Πληροφορικής Πανεπιστηµίου Πατρών ΠATPA 2001
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Σχολή Θετικών Επιστηµών και Τεχνολογίας Πρόγραµµα Σπουδών ΠΛHPOΦOPIKH Θεµατική Ενότητα APXEΣ TEXNOΛOΓIAΣ ΛOΓIΣMIKOY Τόµος B' ΛEITOYPΓIKA ΣYΣTHMATA I Συγγραφή ΠAYΛOΣ ΣΠYPAKHΣ Kαθηγητής Tµήµατος Mηχανικών H/Y και Πληροφορικής Πανεπιστηµίου Πατρών Κριτική Ανάγνωση AΘANAΣIOΣ XATZHΛAKOΣ Aναπλ. Kαθηγητής Tµήµατος Πληροφορικής Eλληνικού Aνοικτού Πανεπιστηµίου Ακαδηµαϊκός Υπεύθυνος για την επιστηµονική επιµέλεια του τόµου ΠANAΓIΩTHΣ ΠINTEΛAΣ Καθηγητής Tµήµατος Mαθηµατικών Πανεπιστηµίου Πατρών Επιµέλεια στη µέθοδο της εκπαίδευσης από απόσταση HΛIAΣ ΣTAYPOΠOYΛOΣ Γλωσσική Επιµέλεια IΩANNHΣ ΓAΛANOΠOYΛOΣ Τεχνική Επιµέλεια Καλλιτεχνική Επιµέλεια, Σελιδοποίηση TYPORAMA Συντονισµός ανάπτυξης εκπαιδευτικού υλικού και γενική επιµέλεια των εκδόσεων ΟΜΑ Α ΕΚΤΕΛΕΣΗΣ ΕΡΓΟΥ ΕΑΠ / 1997 2001 ISBN: 960 538 333 0 Kωδικός Έκδοσης: ΠΛH 11/2 Copyright 2000 για την Ελλάδα και όλο τον κόσµο ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Οδός Παπαφλέσσα & Υψηλάντη, 26222 Πάτρα Τηλ: (0610) 314094, 314206 Φαξ: (0610) 317244 Σύµφωνα µε το Ν. 2121/1993, απαγορεύεται η συνολική ή αποσπασµατική αναδηµοσίευση του βιβλίου αυτού ή η αναπαραγωγή του µε οποιοδήποτε µέσο χωρίς την άδεια του εκδότη.
ÂÚÈ fiìâó Πρόλογος... 11 K º π 1 ÈÛ ÁˆÁ : µ ÛÈÎ ÓÓÔÈÂ Î È ÈÛÙÔÚÈÎfi Σκοπός, Προσδοκώµενα Αποτελέσµατα, Έννοιες κλειδιά, οµή κεφαλαίου... 13 1.1 Βασικές έννοιες... 15 1.2 Ταξινόµηση λειτουργικών συστηµάτων... 16 1.3 Ιστορική αναδροµή της εξέλιξης των λειτουργικών συστηµάτων... 18 1.3.1 Η µηδενική γενιά (1940)... 18 1.3.2 Η πρώτη γενιά (1950 1960)... 18 1.3.3 Η δεύτερη γενιά (1959 1965)... 20 1.3.4 Η τρίτη γενιά (1965 1980)... 20 1.3.5 Η τέταρτη γενιά (1980 1990)... 21 1.3.6 Η πέµπτη γενιά (1990 σήµερα)... 22 Σύνοψη... 23 Βιβλιογραφία κεφαλαίου... 23 Γλωσσάρι κεφαλαίου... 24 K º π 2 È ÈÎ Û Â Σκοπός, Προσδοκώµενα Αποτελέσµατα, Έννοιες κλειδιά, οµή κεφαλαίου... 25 2.1 Εισαγωγή... 27 2.2 Η έννοια της διαδικασίας... 27 2.3 Η αναπαράσταση µιας διαδικασίας... 28 2.3.1 Καταστάσεις διαδικασίας... 28 2.3.2 Το µπλοκ ελέγχου διαδικασιών 20... 29 2.4 Λειτουργίες επί διαδικασιών... 31
6 EITOYP IKA Y THMATA I 2.5 Η έννοια της διακοπής... 33 2.5.1 Τύποι διακοπών... 34 2.5.2 Χειρισµός διακοπών... 35 2.6 Ο πυρήνας του λειτουργικού συστήµατος... 37 Σύνοψη... 38 Βιβλιογραφία κεφαλαίου... 39 Γλωσσάρι κεφαλαίου... 40 K º π 3 ÓÙÔÓÈÛÌfi È ÈÎ ÛÈÒÓ Σκοπός, Προσδοκώµενα Αποτελέσµατα, Έννοιες κλειδιά, οµή κεφαλαίου... 41 3.1 Ορισµοί... 44 3.2 Εντολές παραλληλισµού... 44 3.3 Η Ανάγκη συντονισµού... 45 3.4 Κρίσιµες περιοχές... 47 3.5 Η φύση του προβλήµατος του αµοιβαίου αποκλεισµού... 48 3.6 Γενικές παρατηρήσεις... 56 3.7 Συνεργασία διαδικασιών (Επικοινωνία και Σηµαφόροι)... 57 3.7.1 Επικοινωνία διαδικασιών... 57 3.7.2 Σηµαφόροι (Semaphores)... 58 3.7.3 Υλοποίηση κρίσιµων περιοχών µε σηµαφόρους... 60 3.7.4 Κρίσιµες περιοχές υπό συνθήκη... 65 3.7.5 Υλοποίηση γενικής σηµαφόρου µε δυαδική σηµαφόρο... 75 3.7.6 Υλοποίηση Ρ και V µέσω hardware... 76 3.7.7 Άλλες εντολές συντονισµού... 79 3.8 Συντονισµός διαδικασιών που δεν συνεργάζονται... 79 3.9 Κατανεµηµένοι αλγόριθµοι για αµοιβαίο αποκλεισµό... 80 3.9.1 Ο Αλγόριθµος του ζαχαροπλαστείου (The Bakery Algorithm)... 81
EPIEXOMENA 7 Σύνοψη... 83 Βιβλιογραφία κεφαλαίου... 85 Γλωσσάρι κεφαλαίου... 85 K º π 4 È Â ÚÈÛË ÌÓ ÌË (Memory Management) Σκοπός, Προσδοκώµενα Αποτελέσµατα, Έννοιες κλειδιά, οµή κεφαλαίου... 87 4.1 Εισαγωγικά (Preliminaries)... 92 4.2 Σκέτη µηχανή (Bare machine)... 96 4.3 Παραµένων επόπτης (Resident Monitor)... 98 4.3.1 Υλικό προστασίας (Protection Hardware)... 98 4.3.2 Μετατόπιση (Relocation)... 100 4.4 Εναλλαγή (Swapping)... 103 4.4.1 Επικουρική µνήµη (Backing Store)... 103 4.4.2 Χρόνος εναλλαγής (Swap Time)... 104 4.4.3 Επικαλυπτόµενη εναλλαγή (Overlapped Swapping)... 105 4.5 Πολλαπλές υποδιαιρέσεις µνήµης (Multiple Partitions)... 108 4.5.1 Υλικό προστασίας... 109 4.5.2 Σταθερές περιοχές (Fixed Regions)... 111 4.5.3 Τεµαχισµός µνήµης (Memory Fragmentation)... 118 4.5.4 Μεταβλητές διαιρέσεις (Variable Partitions)... 119 4.5.5 Συµπίεση (Compaction)... 125 4.6 Σελιδοποίηση (Paging)... 128 4.6.1 Υλικό (Hardware)... 129 4.6.2 Χρονοδροµολόγηση διαδικασιών... 132 4.6.3 Υλοποίηση του πίνακα σελίδων... 135 4.6.4 Κοινές σελίδες... 138 4.6.5 Προστασία... 138
8 EITOYP IKA Y THMATA I 4.6.6 ύο θεωρήσεις της µνήµης (Two Views of Memory)... 141 4.7 Τµηµατοποίηση (Segmentation)... 143 4.7.1 Η θεώρηση της µνήµης από το χρήστη... 143 4.7.2 Υλικό... 144 4.7.3 Υλοποίηση των πινάκων τµηµάτων (Implementation of Segment Tables)... 147 4.7.4 Προστασία και κοινή χρήση... 148 4.7.5 Κλασµατοποίηση (χρονοδροµολόγηση διαδικασιών)... 151 4.8 Συνδυασµένα συστήµατα (Combined Systems)... 152 4.8.1 Τµηµατοποιηµένη σελιδοποίηση (Segmented Paging)... 152 4.8.2 Σελιδοποιηµένη τµηµατοποίηση (Paged Segmentation)... 153 Σύνοψη... 156 Βιβλιογραφία κεφαλαίου... 158 Γλωσσάρι κεφαλαίου... 159 K º π 5 π Â Ù ÌÓ ÌË (Virtual Memory) Σκοπός, Προσδοκώµενα Αποτελέσµατα, Έννοιες κλειδιά, οµή κεφαλαίου... 161 5.1 Επικαλύψεις... 165 5.2 Σελιδοποίηση ζήτησης... 166 5.3 Απόδοση της σελιδοποίησης ζήτησης... 173 5.4 Αντικατάσταση σελίδας... 177 5.5 Έννοιες της ιδεατής µνήµης... 180 5.6 Αλγόριθµοι αντικατάστασης σελίδας... 182 5.6.1 FIFO... 183 5.6.2 Βέλτιστη αντικατάσταση (Optimal Replacement)... 186 5.6.3 LRU (Least Recently Used)... 187 5.6.4 Προσέγγιση του LRU... 189
EPIEXOMENA 9 5.6.5 Πρόσθετα bits αναφοράς... 190 5.6.6 Αντικατάσταση δεύτερης ευκαιρίας... 191 5.6.7 Ο Αλγόριθµος της λιγότερο συχνά χρησιµοποιούµενης σελίδας... 191 5.6.8 Ο Αλγόριθµος της πιο συχνά χρησιµοποιούµενης σελίδας... 192 5.6.9 Κλάσεις σελίδων... 196 5.6.10 Ad Hoc αλγόριθµοι... 197 5.7 Αλγόριθµοι κατανοµής... 198 5.7.1 Ελάχιστος αριθµός πλαισίων... 199 5.7.2 Γενική έναντι τοπικής κατανοµής... 200 5.7.3 Αλγόριθµοι κατανοµής... 201 5.8 Λυγισµός (Thrashing)... 203 5.8.1 Τοπικότητα... 204 5.8.2 Μοντέλο συνόλου εργασίας (Working Set Model)... 205 5.8.3 Συχνότητα σφαλµάτων σελίδας... 208 5.9 Άλλοι παράγοντες... 209 5.9.1 Πρόωρη σελιδοποίηση... 209 5.9.2 Κλείδωµα σελίδων για I/O (Ι/0 Interlock)... 210 5.9.3 Μέγεθος σελίδας... 212 5.9.4 οµή διαδικασίας (προγράµµατος)... 214 5.9.5 Ιεραρχία αποθήκευσης... 216 Σύνοψη... 218 Βιβλιογραφία κεφαλαίου... 220 Γλωσσάρι κεφαλαίου... 221