3. Λειτουργικά Συστήματα Πληροφορική και Θεολογία, Παναγιώτης Κατσαρός - Αν. Καθηγητής (katsaros@csd.auth.gr) 29 Μαρτίου 2019
Υπολογιστικά συστήματα - διαστρωμάτωση Προηγού9ενο 9άθη9α: υλικό (hardware) 29 Μαρτίου 2019
Αρχιτεκτονική von Neumann Οι σύγχρονοι ηλεκτρονικοί υ>ολογιστές σχεδιάζονται 9ε βάση την αρχιτεκτονική von Neumann. Τα δεδο9ένα και οι εντολές των >ρογρα99άτων α+οθηκεύονται σε 9ια 9οναδική 0νή0η εγγραφής-ανάγνωσης. Τα >εριεχό9ενα της 9νή9ης αυτής 9>ορούν να διευθυνσιοδοτηθούν κατά κελί, χωρίς να 9ας ενδιαφέρει ο τύ>ος των δεδο9ένων >ου >εριέχεται εκεί. Η εκτέλεση των εντολών του >ρογρά99ατος >ραγ9ατο>οιείται σειριακά (εκτός και αν υ>άρχει ρητή διακλάδωση), α>ό 9ια εντολή στην ε>ό9ενη. Η αρχ. von Neumann >ροβλέ>ει την ύ>αρξη ενός ε>εξεργαστή, >ου ε>ικοινωνεί 9ε τη 9νή9η καθώς και 9ε 9ια σειρά α>ό συσκευές εισόδου/εξόδου 9έσω διαύλων.
Λογισμικό Ένα σύγχρονο υ>ολογιστικό σύστη9α α>οτελείται α>ό: το υλικό και το λογισ9ικό, δηλ. το σύνολο των >ρογρα99άτων >ου αξιο>οιούν και διαχειρίζονται τις λειτουργίες του υλικού. Το λογισ9ικό χωρίζεται στα: λειτουργικό σύστη9α λογισ9ικό εφαρ9ογών, >ου α>οτελείται α>ό το σύνολο των >ρογρα99άτων >ου ε>ιλύουν τα >ροβλή9ατα των χρηστών.
Λειτουργικό σύστημα (operating system) Λειτουργικό Σύστη9α (Λ.Σ.) είναι το σύνολο των >ρογρα99άτων ενός υ>ολογιστικού συστή9ατος το ο>οίο λειτουργεί ως σύνδεσ9ος ανά9εσα στα >ρογρά99ατα εφαρ9ογών και το υλικό. Το Λ.Σ. είναι υ>εύθυνο για: τη δη9ιουργία του >εριβάλλοντος ε>ικοινωνίας 9εταξύ του ανθρώ>ου και της 9ηχανής, 9εταφέροντας εντολές ή α>αιτήσεις του χρήστη στο υ>ολογιστικό σύστη9α τη διαχείριση των διαθέσι9ων >όρων (χρήση 9νή9ης, ε>εξεργαστικού χρόνου κ.α.) και την κατανο9ή τους στις διάφορες διεργασίες (>ρογρά99ατα) τον έλεγχο της εκτέλεσης των >ρογρα99άτων τη διαχείριση της λειτουργίας των συσκευών εισόδου και εξόδου την οργάνωση και διαχείριση των αρχείων του συστή9ατος την ανίχνευση και τον εντο>ισ9ό >ιθανών λαθών ή δυσλειτουργιών και την ενη9έρωση του χρήστη την εφαρ9ογή 9ηχανισ9ών >ου βελτιώνουν την ασφάλεια του συστή9ατος
Ιστορική εξέλιξη Λ.Σ. Κατά την εξέλιξή τους έχουν ε9φανιστεί διάφορες κατηγορίες Λ.Σ.: ο9αδικής ε>εξεργασίας - batch processing (1η γενιά - δεκαετία 50), ό>ου τα >ρογρά99ατα και τα δεδο9ένα συλλέγονται σε 9ία ο9άδα >ριν αρχίσει η ε>εξεργασία τους κατα9ερισ9ού χρόνου - timesharing (2η γενιά - δεκαετία 70), >ου ε>ιτρέ>ουν το δια9οιρασ9ό των >όρων του συστή9ατος σε >ολλά >ρογρά99ατα ταυτόχρονα κατανε9η9ένης ε>εξεργασίας - distributed processing (3η γενιά - δεκαετία 80 9έχρι σή9ερα), >ου ε>ιτρέ>ουν την ε>ικοινωνία ανεξάρτητων διασυνδεδε9ένων υ>ολογιστών >ου ο καθένας τους διαθέτει τη δική του 9νή9η και ε>εξεργαστή.
Λ.Σ. ομαδικής επεξεργασίας Πλεονεκτή9ατα Λ.Σ. ο9αδικής ε>εξεργασίας: οι ε>εξεργαστές των συστη9άτων ο9. ε>εξεργασίας γνωρίζουν το >όσο χρόνο >αίρνει η κάθε εργασία όταν αυτή βρίσκεται στην ουρά τα συστή9ατα ο9. ε>εξεργασίας 9>ορούν να δια9οιράζονται σε >ολλούς χρήστες ο χρόνος >ου τα συστή9ατα ο9. ε>εξεργασίας είναι ανενεργά είναι >εριορισ9ένος η διαχείριση 9εγάλων ε>αναλα9βανό9ενων εργασιών γίνεται εύκολα Μειονεκτή9ατα Λ.Σ. ο9αδικής ε>εξεργασίας: οι χειριστές θα >ρέ>ει να γνωρίζουν καλά το σύστη9α ο9. ε>εξεργασίας η α>οσφαλ9άτωση στα συστή9ατα ο9. ε>εξεργασίας είναι δύσκολη αν 9ία εργασία α>οτύχει, οι άλλες εργασίες θα βρίσκονται σε ανα9ονή για 9ία χρ. >ερίοδο >ου δεν είναι γνωστή Σε αυτά τα Λ.Σ. δεν υ>άρχει ά9εση αλληλε>ίδραση 9ε τον υ>ολογιστή. Μεσολαβεί ένας χειριστής >ου συλλέγει τις εργασίες 9ε >αρό9οιες α>αιτήσεις και τις κατατάσσει σε ο9άδες. Η ταξινό9ηση των εργασιών 9ε >αρό9οιες α>αιτήσεις είναι ευθύνη του χειριστή.
Λ.Σ. καταμερισμού χρόνου Πλεονεκτή9ατα Λ.Σ. κατα9ερισ9ού χρόνου: κάθε εργασία έχει ίσες ευκαιρίες εξυ>ηρέτησης δε χρειάζονται >ολλα>λές εγκαταστάσεις του ίδιου λογισ9ικού ελαχιστο>οιείται ο χρόνος >ου η ΚΜΕ είναι ανενεργή Μειονεκτή9ατα Λ.Σ. κατα9ερισ9ού χρόνου: ζήτη9α αξιο>ιστίας >ρέ>ει να >ροστατεύεται η ασφάλεια και η ακεραιότητα των >ρογρα99άτων και των δεδο9ένων των χρηστών ζήτη9α ε>ικοινωνίας δεδο9ένων Σε κάθε εργασία δίνεται συγκεκρι9ένος χρόνος για εκτέλεση, έτσι ώστε να εκτελούνται τελικά όλες α>ρόσκο>τα. Ε>ίσης κάθε χρήστης >αίρνει χρόνο α>ό την ΚΜΕ ό>ως αν χρησι9ο>οιούσε το δικό ανεξάρτητο σύστη9α. Μία εργασία 9>ορεί να δη9ιουργείται α>ό έναν ή >ερισσότερους χρήστες. Ο χρόνος >ου >αίρνει κάθε φορά η καθε9ιά α>ό τις εργασίες λέγεται quantum. Μετά α>ό την >αρέλευση αυτού του χρ. διαστή9ατος, το Λ.Σ. δίνει χρόνο στην ε>ό9ενη εργασία >ου >ερι9ένει.
Λ.Σ. κατανεμημένης επεξεργασίας Πλεονεκτή9ατα Λ.Σ. κατανε9η9ένης ε>εξεργασίας: ένας Η/Υ 9>ορεί να α>οτυγχάνει χωρίς να ε>ηρεάζει την ε>ικοινωνία και τους άλλους Η/Υ στο δίκτυο αφού οι >όροι δια9οιράζονται οι υ>ολοισ9οί 9>ορούν να γίνονται >ιο γρήγορα ελαττώνεται ο φόρτος του κάθε Η/Υ τα συστή9ατα κλι9ακώνονται εύκολα αφού 9>ορούν να >ροστεθούν ε>ι>λέον Η/Υ στο δίκτυο >εριορίζεται η καθυστέρηση στην ε>εξεργασία των δεδο9ένων Μειονεκτή9ατα Λ.Σ. κατανε9η9ένης ε>εξεργασίας: αν υ>άρξει βλάβη στη λειτουργία του δικτύου στα9ατά η ε>ικοινωνία δεν έχει εξελιχθεί >λήρως η τεχνολογία των γλωσσών >ρογρα99ατισ9ού για κατανε9η9ένα >ρογρά99ατα τα συστή9ατα αυτά δεν είναι εύκολα διαθέσι9α γιατί είναι >ολύ ακριβά - το λογισ9ικό δεν είναι α>λά >ολύ>λοκο αλλά συ9βαίνει ε>ίσης να 9ην είναι >λήρως κατανοητό Ανεξάρτητοι διασυνδεδε9ένοι Η/Υ ε>ικοινωνούν 9εταξύ τους 9έσω ενός δικτύου ε>ικοινωνιών. Τα ανεξάρτητα συστή9ατα διαθέτουν τη δική τους 9νή9η και ΚΜΕ. Το βασικό >λεονέκτη9α είναι ότι >άντα ένας χρήστης 9>ορεί να >ροσ>ελάσει αρχεία ή λογισ9ικό >ου 9>ορεί να 9η βρίσκεται στο δικό του Η/Υ αλλά σε άλλο σύστη9α του δικτύου δηλ. είναι εφικτή η α>ο9ακρυσ9ένη >ροσ>έλαση σε συσκευές του δικτύου.
Σύστημα Αρχείων Σ έναν υ>ολογιστή οι >ληροφορίες α>οθηκεύονται σε >εριφερειακές 9ονάδες (>.χ. σε σκληρούς δίσκους) ό>ου τα στοιχεία διατηρούνται και 9ετά τη διακο>ή της >αροχής ρεύ9ατος. Εκεί α>οθηκεύονται τα στοιχεία ως συλλογές δεδο9ένων (αρχεία-files), τη διαχείριση των ο>οίων αναλα9βάνει 9έρος του Λ.Σ. >ου καλείται Σύστη9α Αρχείων (file system).
Δομή και ιεραρχία Λ.Σ. Τα σύγχρονα Λ.Σ. είναι δο9η9ένα σε ιεραρχικά το>οθετη9ένα ε>ί>εδα (layers). Κάθε ε>ί>εδο εκτελεί 9ια συγκεκρι9ένη εργασία και συνεργάζεται 9ε τα δύο γειτονικά του. Στα κατώτερα ε>ί>εδα γίνεται η διαχείριση της 9νή9ης και της ε>ικοινωνίας 9ε τις >εριφερειακές συσκευές του υ>ολογιστή. Στα ανώτερα γίνεται η διαχείριση των >ρογρα99άτων >ου εκτελούν οι χρήστες.
Δομή και ιεραρχία Λ.Σ. Σε ένα Λ.Σ. υ>άρχουν τα ακόλουθα ε>ί>εδα: Ο Πυρήνας (Kernel), >ου βρίσκεται >λησιέστερα >ρος το υλικό και α>οτελεί τον ενδιά9εσο για να ε>ιτευχθεί η ε>ικοινωνία των >ρογρα99άτων 9ε το υλικό. Ο >υρήνας «φορτώνεται» >ρώτος στην κύρια 9νή9η όταν ξεκινάει ο υ>ολογιστής. Το Σύστη9α Αρχείων (File System) >ου διαχειρίζεται τα αρχεία Ε>ικοινωνία 9ε α>ευθείας εντολές (δίνοντάς τους ονο9ασία, καταχωρώντας τα, κτλ.) και (Λ.Σ. MS DOS) φροντίζει για τη διάθεσή τους στους χρήστες. Ο ιερ9ηνευτής Εντολών (Command Interpreter) ή Φλοιός (Shell) >ου είναι το σύνολο των >ρογρα99άτων, >ου ε>ιτρέ>ει στο χρήστη και τις εφαρ9ογές του να ε>ικοινωνεί 9ε το Λ.Σ. Η ε>ικοινωνία γίνεται είτε 9ε α>ευθείας εντολές (command mode) είτε 9έσω ενός γραφικού >εριβάλλοντος διε>αφής (GUI - Graphical User Interface). Ε>ικοινωνία 9ε γραφικό >εριβάλλον ιε>αφής (Λ.Σ. MS Windows)
Βασικές εργασίες ενός Λ.Σ. Εργασίες ενός Λ.Σ. α>οτελούν η ιαχείριση της Κεντρικής Μονάδας Ε>εξεργασίας (Κ.Μ.Ε.), η ιαχείριση της Κεντρικής Μνή9ης, η ιαχείριση του Συστή9ατος Αρχείων η ιαχείριση των Λειτουργιών Εισόδου/Εξόδου.
Διεργασίες και εκτέλεση προγραμμάτων Μια α>ό τις βασικές έννοιες στα Λ.Σ. είναι η έννοια της διεργασίας (process). Μια διεργασία είναι ένα >ρόγρα99α ή ένα αυτόνο9ο τ9ή9α >ρογρά99ατος υ>ό εκτέλεση α>ό το σύστη9α. Το >ρόγρα99α διαφέρει α>ό τη διεργασία στο ότι είναι 9ικρότερο, 9ιας και η διεργασία >εριέχει, εκτός α>ό το >ρόγρα99α, και στοιχεία συστή9ατος για την εκτέλεση του κώδικα. Κάθε >ρόγρα99α >ροτού εκτελεστεί α>ό την κεντρική 9νή9η βρίσκεται στην >εριφερειακή 9νή9η (σκληρός δίσκος), ενώ κατά τη διάρκεια εκτέλεσής του στην κεντρική 9νή9η το >ρόγρα99α διαβάζει α>ό αυτήν και γράφει δεδο9ένα σε αυτήν.
Διαχείριση της Κ.Μ.Ε. Το χαρακτηριστικό των σύγχρονων Λ.Σ. είναι ο >ολυ>ρογρα99ατισ9ός (multiprogramming) και η >ολυδιεργασία (multitasking). Πολυ>ρογρα99ατισ9ός ση9αίνει ότι το Λ.Σ. 9>ορεί να εκτελεί ταυτόχρονα >ερισσότερα α>ό ένα >ρογρά99ατα (για >αράδειγ9α, την ώρα >ου η Κ.Μ.Ε. >ερι9ένει α>άντηση α>ό 9ια >εριφερειακή συσκευή, αυτός o χρόνος «ανα9ονής» 9>ορεί να αξιο>οιηθεί α>ό ένα άλλο >ρόγρα99α >ου είναι φορτω9ένο στην κύρια 9νή9η). Πολυδιεργασία ση9αίνει ότι το Λ.Σ. 9>ορεί να εκτελεί ταυτόχρονα >ερισσότερες α>ό 9ία εργασίες (για >αράδειγ9α, 9>ορεί να γίνονται >αράλληλα εκτυ>ώσεις και υ>ολογισ9οί). Η διαδικασία βασίζεται σε έναν αλγόριθ9ο χρονο>ρογρα99ατισ9ού, ο ο>οίος στοχεύει στη 9εγιστο>οίηση της α>οδοτικότητας και της «δίκαιης» χρήσης της Κ.Μ.Ε. α>ό το 9έγιστο αριθ9ό των ε>εξεργαζό9ενων διεργασιών.
Διαχείριση της Μνήμης Η >ολυδιεργασία >ροϋ>οθέτει ότι στην κεντρική 9νή9η είναι φορτω9ένα >ερισσότερα του ενός >ρογρά99ατα >ρος εκτέλεση α>ό την Κ.Μ.Ε. Θα >ρέ>ει, λοι>όν, να γίνει η διαχείριση της κύριας 9νή9ης 9ε τέτοιο τρό>ο, ώστε να ε>ιτευχθεί ο α>οτελεσ9ατικός δια9οιρασ9ός της 9εταξύ των διαφόρων >ρογρα99άτων. Το τ9ή9α του Λ.Σ. >ου διαχειρίζεται την κύρια 9νή9η είναι ο διαχειριστής 9νή9ης (memory manager). Οι εργασίες >ου ε>ιτελεί ο διαχειριστής 9νή9ης είναι: Η διάθεση τ9η9άτων 9νή9ης σε διεργασίες. Η >αρακολούθηση της κατάστασης χρήσης της 9νή9ης, ώστε να γνωρίζει τα ελεύθερα ή 9η τ9ή9ατα κάθε στιγ9ή και να τα διανέ9ει σε διεργασίες. Η ελευθέρωση 9νή9ης α>ό διεργασίες >ου δεν τη χρειάζονται. Η ανταλλαγή (swapping) δεδο9ένων 9εταξύ της κύριας 9νή9ης και της >εριοχής του δίσκου (>εριφερειακή 9νή9η) >ου χρησι9ο>οιείται ως βοηθητική >εριοχή της κύριας 9νή9ης.
Διαχείριση του Συστήματος Αρχείων Το σύστη9α αρχείων είναι το 9έρος του Λ.Σ. 9ε το ο>οίο ο χρήστης έρχεται σε ά9εση ε>αφή. Το Λ.Σ. συνήθως οργανώνει τα αρχεία του σε καταλόγους ή φακέλους (directories ή folders). Κάθε κατάλογος α>οτελείται α>ό αρχεία, υ>οκαταλόγους ή υ>οφακέλους, δη9ιουργώντας 9ία δενδροειδή 9ορφή. Ένα σύστη9α αρχείων του Λ.Σ. >ροσφέρει στον χρήστη ένα εικονικό >εριβάλλον διαχείρισης, το ο>οίο του δίνει τη δυνατότητα να εκτελεί 9ία σειρά α>ό >ράξεις ό>ως η δη9ιουργία (9ε >ροσδιορισ9ό ονό9ατος και τύ>ου), η διαγραφή, η 9ετονο9ασία, η αντιγραφή και το κλείσι9ο αρχείων. Ε>ι>λέον, είναι δυνατή η τρο>ο>οίηση του >εριεχο9ένου ή η αντιγραφή του >εριεχο9ένου ενός αρχείου σε ένα άλλο.
Διαχείριση του Συστήματος Αρχείων ενδροειδής οργάνωση φακέλλων και αρχείων Η)ερο)ηνία
Είσοδος - έξοδος Με τον όρο Είσοδος (Input) αναφερό9αστε στη ροή δεδο9ένων >ρος την Κ.Μ.Ε. ενώ 9ε τον όρο Έξοδος (Output) αναφερό9αστε στη ροή δεδο9ένων α>ό την Κ.Μ.Ε. >ρος τις >εριφερειακές συσκευές.
Διαχείριση Λειτουργιών Εισόδου/ Εξόδου Το τ9ή9α του Λ.Σ. το ο>οίο ασχολείται 9ε τις διαδικασίες εισόδου/εξόδου 9εταξύ του κεντρικού 9έρους και των εξωτερικών >ρος αυτό συσκευών εξασφαλίζει τη διασύνδεση των συσκευών 9ε το κεντρικό σύστη9α και την ο9αλή ε>ικοινωνία. Ε>ίσης, αναλα9βάνει να διαχειριστεί τις εντολές >ου εκτελούνται και τα σφάλ9ατα >ου >αρουσιάζονται. Στις αρ9οδιότητες του συγκεκρι9ένου 9έρους του Λ.Σ. είναι η α>οδοτική διαχείριση των >εριφερειακών 9ονάδων και ο ορισ9ός της σειράς ικανο>οίησης των διαφόρων δραστηριοτήτων, ό>ως των αιτη9άτων εγγραφής ή ανάγνωσης. Οι συσκευές διακρίνονται σε δια9οιραζό9ενες (shared) και α>οκλειστικές (dedicated). Τις δια9οιραζό9ενες συσκευές 9>ορούν να τις χρησι9ο>οιούν >ολλοί χρήστες ταυτόχρονα, ό>ως οι δίσκοι τις α>οκλειστικές 9>ορεί να τις χρησι9ο>οιεί ένας χρήστης κάθε στιγ9ή, ό>ως οι εκτυ>ωτές οι ο>οίοι κατά τη διάρκεια της χρήσης τους δεν ε>ιτρέ>εται να χρησι9ο>οιούνται α>ό άλλο >ρόγρα99α.
Γνωστά Λ.Σ. Το Unix ανα>τύχθηκε στα εργαστήρια Bell Labs της ΑΤ&Τ το 1969. Α>οτελεί ένα Λ.Σ. >ολυδιεργασίας, κατα9ερισ9ού χρόνου (timesharing), >ολλών χρηστών (multiuser), και 9ε φορητότητα (portability) - δηλαδή εύκολη εγκατάσταση σε διαφορετικού τύ>ου συστή9ατα. Το MS-DOS (Microsoft Disk Operating System) είναι Λ.Σ. στο ο>οίο οι εντολές του χρήστη >ληκτρολογούνται σε 9ία γρα99ή. Ανα>τύχθηκε α>ό την εταιρεία Microsoft το 1981 για λογαριασ9ό της εταιρείας ΙΒΜ. Τα MS Windows της Microsoft διαθέτουν γραφικό >εριβάλλον διε>αφής χρήστη >αραθυρικού τύ>ου. Πρόκειται για Λ.Σ. >ολλα>λών διεργασιών και >ολλα>λών χρηστών. Α>ό το 1985 9έχρι σή9ερα έχουν ανα>τυχθεί διάφορες εκδόσεις των Windows (>.χ. 95, 98, XP, 7, 8.1 κ.α.).
Γνωστά Λ.Σ. Το Linux είναι ένα λειτουργικό σύστη9α τύ>ου Unix, το ο>οίο δη9ιουργήθηκε α>ό τον Linus Torvalds το 1991. Ο >ηγαίος κώδικάς του είναι «ανοικτός», 9ε α>οτέλεσ9α να ανα>τύσσεται συνεχώς α>ό 9ια 9εγάλη κοινότητα χρηστών. Το Mac OS X έχει ως βάση το Λ.Σ. Unix και διανέ9εται α>οκλειστικά για χρήση 9ε τους υ>ολογιστές Mac της εταιρείας Apple. Το Mac OS X είναι η εξέλιξη του Mac OS το ο>οίο ήταν το αρχικό Λ.Σ. της Apple (1984-1999). Τα OS X διακρίνονται για τα >ρωτότυ>α γραφικά >εριβάλλοντα διε>αφής τους. Το Android χρησι9ο>οιείται κυρίως σε συσκευές κινητής τηλεφωνίας και tablets και τρέχει τον >υρήνα του Λ.Σ. Linux. Αρχικά ανα>τύχθηκε α>ό την Google (2007) και αργότερα α>ό την Open Handset Alliance.