Εισαγωγή Τι είναι ένα Λειτουργικό Σύστημα; Ποια είναι η θέση του σε ένα υπολογιστικό σύστημα; Τι αρμοδιότητες έχει ένα Λ.Σ.; Σύντομη ιστορία των Λ.Σ. Διάφοροι τύποι Λ.Σ.
Τι είναι ένα Λειτουργικό Σύστημα; Ένα πρόγραμμα-ενδιάμεσος ανάμεσα στον χρήστη και το υλικό. Στόχοι του Λ.Σ.: Να εκτελεί τα προγράμματα χρήστη και να κάνει ευκολότερη την επίλυση των προβλημάτων των χρηστών. Να κάνει το υπολογιστικό σύστημα πιο άνετο στη χρήση. Χρήση του υλικού του υπολογιστή κατά έναν αποδοτικό τρόπο.
Συνιστώσες ενός υπολογιστικού συστήματος 1. Υλικό – παρέχει βασικούς υπολογιστικούς πόρους (ΚΜΕ, μνήμη, συσκευές Ε/Ε). 2. Λειτουργικό σύστημα – ελέγχει και συντονίζει τη χρήση του υλικού ανάμεσα στα διάφορα προγράμματα εφαρμογών για τους διάφορους χρήστες. 3. Προγράμματα εφαρμογών – καθορίζουν τους τρόπους κατά τους οποίους χρησιμοποιούνται οι πόροι του συστήματος για να επιλυθούν τα υπολογιστικά προβλήματα των χρηστών (μεταγλωττιστές, συστήματα βάσεων δεδομένων, παιχνίδια, επαγγελματικά προγράμματα). 4. Χρήστες - (άνθρωποι, μηχανές, άλλοι υπολογιστές).
Αφηρημένη άποψη των συνιστωσών ενός συστήματος
Συνιστώσες συστήματος Κρύβει την πολυπλοκότητα της γλώσσας μηχανής από τον προγραμματιστή Αρχιτεκτονική συνόλου εντολών Φυσικές συσκευές ομαδοποιημένες ώστε να σχηματίζουν λειτουργικές μονάδες Ολοκληρωμένα κυκλώματα, τροφοδοσία, οθόνη κλπ. Το λειτουργικό σύστημα τρέχει σε κατάσταση πυρήνα ή επόπτη – προστατευμένο από αλλοιώσεις των χρηστών Μεταγλωττιστές, συντάκτες κειμένου και προγράμματα εφαρμογών τρέχουν σε κατάσταση χρήστη
Αρμοδιότητες ενός Λ.Σ. Περιβάλλον χρήστη – Το επίπεδο του Λ.Σ. εισάγει ένα επίπεδο αφαίρεσης του υλικού Περιβάλλον εκτέλεσης – διαχείριση διεργασιών, χειρισμός αρχείων, χειρισμός διακοπών, λειτουργίες Ε/Ε. Ανίχνευση και χειρισμός λαθών Προστασία και ασφάλεια Ανοχή σε σφάλματα και ανάνηψη
Αρμοδιότητες ενός Λ.Σ. Διαχείριση πόρων Διαχείριση χρόνου Χρονοδρομολόγηση ΚΜΕ και μεταφορών δίσκου Διαχείριση χώρου Κατανομή κύριας και δευτερεύουσας αποθήκευσης Συγχρονισμός και χειρισμός αδιεξόδων Διαδιεργασιακή επικοινωνία (IPC), κρίσιμο τμήμα, συντονισμός Λογιστικές πληροφορίες και πληροφορίες κατάστασης Παρακολούθηση χρήσης πόρων
Ιστορία των Λ.Σ. Προ-ηλεκτρονική Πρώτη γενιά 1945 - 1955 Charles Babbage (1792-1871) “αναλυτική μηχανή” Καθαρά μηχανική, απέτυχε γιατί η τότε τεχνολογία δε μπορούσε να παράγει τους απαιτούμενους τροχούς και γρανάζια στην απαιτούμενη ακρίβεια Πρώτη γενιά 1945 - 1955 Aiken, von Neumann, Eckert, Mauchley και Zuse Προγραμματισμός μέσω πινάκων ελέγχου, χωρίς Λ.Σ. ή γλώσσα Λυχνίες κενού
Ιστορία των Λ.Σ. Δεύτερη γενιά 1955 - 1965 Τα τρανζίστορ ήταν πιο αξιόπιστα από τις λυχνίες κενού Οι εργασίες διαβάζονταν μέσω διάτρητων καρτών Εισάχθηκαν τα συστήματα ομαδικής επεξεργασίας για να μειωθεί ο χαμένος χρόνος για εγκατάσταση και τρέξιμο των εργασιών Μετάφερε τις κάρτες στον 1401 Διάβασε από τις κάρτες στην ταινία offline Βάλε την ταινία εισόδου στον 7094 ο οποίος κάνει τους υπολογισμούς Βάλε την ταινία στον 1401 που εκτυπώνει την έξοδο offline
Ιστορία των Λ.Σ. Τρίτη γενιά 1965 – 1980 IBM System/360: συνδύασε επιχειρηματικούς και επιστημονικούς υπολογιστές σε μία μηχανή Οι υπολογιστές αναπτύσσονταν βάσει της πελατείας (μνήμη, ταχύτητα επεξεργαστή, αριθμών συσκευών Ε/Ε) Πρόδρομος των 370, 4300, 3080 and 3090 Η χρήση ολοκληρωμένων κυκλωμάτων παρείχε σπουδαίο πλεονέκτημα τιμής/απόδοση σε σχέση με τη 2η γενιά Το OS/360 έπρεπε να αντιμετωπίσει συγκρουόμενες ανάγκες που είχαν ως αποτέλεσμα ένα τεράστιο και περίπλοκο Λ.Σ. Εισήγαγε τον πολυπρογραμματισμό για να κάνει πιο αποδοτική χρήση της ΚΜΕ Παροχέτευση (spooling): διάβασε εργασίες από κάρτες στο δίσκο έτοιμες για φόρτωση στη μνήμη και βάλε σε ουρά στον δίσκο την έξοδο για εκτύπωση
Ιστορία των Λ.Σ. Στα συστήματα ομαδικής επεξεργασίας, ο συνολικός χρόνος από την υποβολή μιας εργασίας μέχρι την παραγωγή της εξόδου ήταν μερικές ώρες, πολύ αντιπαραγωγικό για τους προγραμματιστές Χρονομερισμός (μια παραλλαγή του πολυπρογραμματισμού): παρέχει αλληλεπίδραση του χρήστη με το υπολογιστικό σύστημα Παρέχεται οn-line επικοινωνία ανάμεσα στο χρήστη και στο σύστημα. Όταν το Λ.Σ. τελειώνει την εκτέλεση μιας εντολής ψάχνει την επόμενη «εντολή ελέγχου» από το πληκτρολόγιο του χρήστη. Η ΚΜΕ πολυπλέκεται ανάμεσα σε πολλές εργασίες που κρατούνται στη μνήμη και στο δίσκο (η ΚΜΕ δίνεται σε μια εργασία μόνο όταν η εργασία είναι στη μνήμη). Μίνι υπολογιστές και η ανάπτυξη του UNIX Το UNIX ήταν μια απλουστευμένη, ενός χρήστη έκδοση του MULTICS (επέκταση του CTSS) Πολυάριθμες παραλλαγές: System V, BSD, POSIX (IEEE), MINIX, Linux
Ιστορία των Λ.Σ. Τέταρτη γενιά 1980 – σήμερα Ολοκληρωμένα κυκλώματα υψηλής και πολύ υψηλής κλίμακας Προσωπικοί υπολογιστές 1974: η Intel ανέπτυξε τον 8080 (8 bit ΚΜΕ), ο Gary Kildall έγραψε το CP/M (η Intel του έδωσε τα δικαιώματα) και σχημάτισε την Digital Research Αρχές 1980: IBM PC με BASIC/PC-DOS (DR-DOS, MS-DOS) . Οι αρχικές εκδόσεις Windows έτρεχαν πάνω από DOS, από τα Windows 95 και μετά και τα NT ήταν πλήρως αναπτυγμένα Λ.Σ. Δικτυακά Λ.Σ. (ο χρήστης βλέπει πολλούς υπολογιστές) Κατανεμημένα Λ.Σ. (ο χρήστης βλέπει έναν επεξεργαστή)
Διάρθρωση μνήμης σε απλό σύστημα ομαδικής επεξεργασίας
Πολυπρογραμματιζόμενα συστήματα ομαδικής επεξεργασίας Πολλές εργασίες από τις υποβληθείσες βρίσκονται στην κύρια μνήμη ταυτόχρονα, και η ΚΜΕ πολυπλέκεται μεταξύ αυτών.
Απαιτούμενα χαρακτηριστικά Λ.Σ. για πολυπρογραμματισμό Γιατί πολυπρογραμματισμός; Αυξάνει τη χρησιμοποίηση της ΚΜΕ Για εξυπηρέτηση Ε/Ε μια εργασίας αλλάζουμε σε άλλη Διαχείριση μνήμης – το σύστημα πρέπει να εκχωρεί τη μνήμη σε διάφορες εργασίες. Χρονοδρομολόγηση ΚΜΕ – το σύστημα πρέπει να επιλέξει ανάμεσα σε πολλές εργασίες που είναι έτοιμες προς εκτέλεση. Εκχώρηση συσκευών.
Επιτραπέζια συστήματα Προσωπικοί υπολογιστές – υπολογιστικό σύστημα αφιερωμένο σε έναν χρήστη Συσκευές Ε/Ε – πληκτρολόγια, ποντίκια, οθόνες, μικροί εκτυπωτές Άνεση χρήστη και αποκριτικότητα Μπορεί να υιοθετήσει τεχνολογία αναπτυγμένη για μεγαλύτερα υπολογιστικά συστήματα. Μπορούν να τρέξουν διαφορετικούς τύπους Λ.Σ. (Window, MacOS, Unix, Linux)
Παράλληλα Συστήματα Πολυεπεξεργαστικά συστήματα με περισσότερες από μια ΚΜΕ σε στενή επικοινωνία Ισχυρά συζευγμένο σύστημα – οι επεξεργαστές μοιράζονται τη μνήμη και ένα ρολόι. Συνήθως επικοινωνούν μέσω της κοινής μνήμης Πλεονεκτήματα: Αυξημένη απόδοση (throughput) Οικονομικά – μοιράζονται περιφερειακά, μαζική αποθήκευση, ισχύ κλπ. Αυξημένη αξιοπιστία (ανοχή σε σφάλματα)
Παράλληλα Συστήματα (συνέχεια) Συμμετρική πολυεπεξεργασία (SMP) Κάθε επεξεργαστής εκτελεί ένα αντίγραφο του Λ.Σ. Πολλές διεργασίες μπορούν να εκτελούνται ταυτόχρονα Τα περισσότερα σύγχρονα Λ.Σ. υποστηρίζουν SMP Ασύμμετρη πολυεπεξεργασία Σε κάθε επεξεργαστή ανατίθεται ορισμένη εργασία. Ένας επεξεργαστής αναθέτει δουλειά στους υπόλοιπους. Πιο κοινό σε εξαιρετικά μεγάλα συστήματα
Κατανεμημένα Συστήματα Κατανέμουν τον υπολογισμό σε πολλούς επεξεργαστές Χαλαρά συζευγμένο σύστημα – κάθε επεξεργαστής έχει τη δική του τοπική μνήμη. Επικοινωνία μεταξύ τους με διάφορες γραμμές επικοινωνίας Πλεονεκτήματα: Μοίρασμα πόρων Επιτάχυνση υπολογισμών Αξιοπιστία Επικοινωνία επεξεργαστών και διεργασιών
Κατανεμημένα Συστήματα (συνέχεια) Απαιτούν δικτυακή υποδομή Δίκτυα τοπικής περιοχής (LAN) ή ευρείας περιοχής (WAN) Μπορούν να είναι συστήματα πελάτη-εξυπηρετητή (client-server) ή ομότιμα (peer-to-peer)
Συστήματα Πραγματικού Χρόνου Συχνά χρησιμοποιούνται ως συσκευές ελέγχου για αφιερωμένη εφαρμογή όπως έλεγχο επιστημονικών πειραμάτων, συστήματα ιατρικής απεικόνισης, βιομηχανικού ελέγχου κλπ. Καλά ορισμένοι χρονικοί περιορισμοί Hard real-time Soft real-time
Φορητά Συστήματα Προσωπικοί Ψηφιακοί Βοηθοί (PDAs) Κινητά τηλέφωνα Θέματα: Περιορισμένη μνήμη (512 ΚΒ με 8 ΜΒ) απαιτεί αποδοτική διαχείριση Αργοί επεξεργαστές Μικρές οθόνες
Δομή ενός Λ.Σ. Πυρήνας (kernel): το κυρίως κομμάτι του Λ.Σ. - είναι πάντα φορτωμένο στη μνήμη Φλοιός (shell): ένας διερμηνευτής εντολών – είναι διασύνδεση των εφαρμογών χρήστη με τον πυρήνα.
Είδη Λ.Σ. Μονολιθικού πυρήνα: όλο το Λ.Σ. τρέχει σε κατάσταση πυρήνα (π.χ. DOS, Unix) Μικροπυρήνα: ο πυρήνας περιορίζεται στις τελείως απαραίτητες λειτουργίες (διαχείριση χώρου διευθύνσεων, επικοινωνία διεργασιών, διαχείριση νημάτων) (π.χ. Mach, QNX) Υβριδικά: συνδυάζουν στοιχεία των παραπάνω (π.χ. Windows με ΝΤ πυρήνα)
Κλήσεις συστήματος Μηχανισμός αίτησης εφαρμογών για υπηρεσίες από το Λ.Σ. Πρόγραμμα χρήστη Πρόγραμμα χρήστη επιστροφή κλήση είσοδος Πυρήνα σε προστατευμένη μνήμη
Είδη κλήσεων συστήματος Διαχείριση διεργασιών (create, terminate κλπ.) Διαχείριση αρχείων (open, close, read, write κλπ.) Διαχείριση συσκευών (request, release κλπ.) Συντήρηση πληροφοριών (get time, get file attributes κλπ.) Επικοινωνία (send, receive message κλπ.)
Εικονικές μηχανές Ο VMM (virtual machine monitor) δημιουργεί διασύνδεση προς εικονική μηχανή (αντίγραφο του πραγματικού υλικού)