Λειτουργικά Συστήματα 1
Λογισμικό του Υπολογιστή Για να λειτουργήσει ένας Η/Υ εκτός από το υλικό του, είναι απαραίτητο και το λογισμικό Το σύνολο των προγραμμάτων που συντονίζουν τις λειτουργίες του υλικού Αξιοποιούν τις δυνατότητες του για τη χρήση του Η/Υ ως εργαλείου λί 2
Λογισμικό Χωρίς το λογισμικό, ένας υπολογιστής είναι μία άχρηστη μεταλλική μάζα. Με τη βοήθεια του λογισμικού μπορεί να: Αποθηκεύει Επεξεργάζεται Ανακαλεί πληροφορίες Να εντοπίζει λάθη Να παίζει παιχνίδια 3
Λογισμικό Το λογισμικό ενός υπολογιστή μπορεί να διακριθεί σε δύο κατηγορίες: Τα προγράμματα συστήματος Διαχειρίζονται τη λειτουργία του ίδιου του υπολογιστή Τα προγράμματα ργρμμ εφαρμογών: Επιλύουν τα προβλήματα των χρηστών 4
Προγράμματα συστήματος Το βασικότερο από τα προγράμματα συστήματος είναι το λειτουργικό σύστημα Ελέγχει όλους τους πόρους του υπολογιστή Παρέχει τη βάση, πάνω στην οποία αναπτύσσονται τα προγράμματα εφαρμογών 5
Λογισμικό του Υπολογιστή Το λογισμικό χωρίζεται σε δύο κατηγορίες: Λογισμικό Συστήματος: Όλα τα προγράμματα που έχουν σχέση με το συντονισμό της λειτουργίας του Η/Υ Λογισμικό Εφαρμογών: Το σύνολο των προγραμμάτων που έχουν αναπτυχθεί θίγια την αντιμετώπιση εξειδικευμένων προβλημάτων των χρηστών 6
Κατηγοριοποίηση η η του λογισμικού 7
Τι είναι το λειτουργικό σύστημα; ; Οι περισσότεροι χρήστες υπολογιστών έχουν μια εμπειρία με λειτουργικά συστήματα Είναι δύσκολο να καθορίσουν με ακρίβεια τι είναι το λειτουργικό σύστημα Μέρος του προβλήματος αποτελεί το γεγονός ότι το λειτουργικό σύστημα επιτελεί δύο φαινομενικά ασύνδετες μεταξύ τους λειτουργίες Αάλ Ανάλογα με την περίπτωση, ο χρήστης βλέπει κατά κύριο λόγο είτε τη μία λειτουργία ή την άλλη. Το Λειτουργικό Σύστημα ως μία Εκτεταμένη Μηχανή Το Λειτουργικό Σύστημα ως Διαχειριστής Πόρων 8
Γιατί πρέπει να καταλάβω τα Λειτουργικά Συστήματα; Πρέπει να γίνει κατανοητή ηήηη αλληλεπίδραση ημεταξύ του υλικού και των εφαρμογών Νέες εφαρμογές, νέο υλικό, Πρέπει να γίνουν κατανοητές βασικές αρχές στο σχεδιασμό υπολογιστικών συστημάτων Αποτελεσματική διαχείριση πόρων, ασφάλεια, ευελιξία, λξί Αυξανόμενη ανάγκη για λειτουργικά συστήματα ειδικού σκοπού Ενσωματωμένα λειτουργικά συστήματα για συσκευές (κινητά τηλέφωνα, αισθητήρες, ) Λειτουργικά συστήματα πραγματικού χρόνου (έλεγχος αεροσκαφών, πολυμεσικές υπηρεσίες, ) 9
Ιστορικά στοιχεία Λειτουργικών Συστημάτων Οι αρχικοί υπολογιστές στερούνταν λειτουργικό σύστημα Ένας ανθρώπινος χειριστής φόρτωνε τα προγράμματα στη μνήμη και τα έτρεχε Από αυτό προήλθε το όνομα των πρώτων προγραμμάτων που αντικατέστησαν αυτές τις ανθρώπινες ενέργειες (Operating Systems) Σήμερα ο όρος συνήθως αναφέρεται στο σύνολο του λογισμικού που αρχικά διαθέτει ένας υπολογιστής πριν αρχίσουμε να του εγκαθιστούμε εφαρμογές 10
Λειτουργικά Συστήματα Στις μρςμ μέρες μας, τα λειτουργικά συστήματα γνωρίζουν την μεγαλύτερη εξάπλωση στους υπολογιστές γενικής χρήσης Έχουν διαμορφωθεί σε δύο μεγάλες οικογένειες: Αυτή των Unix-συμβατών Την οικογένεια των Microsoft Windows Οι μεγάλοι υπολογιστές και τα ενσωματωμένα συστήματα χρησιμοποιούν μια ποικιλία από διάφορα άλλα λειτουργικά συστήματα πολλά από τα οποία δεν έχουν άμεση συγγένεια με τα Windows ή με το Unix. 11
Σιώζιος Κων/νος - Προγραμματισμός Ι 12
13
MS - DOS 14
Microsoft Windows 15
Linus Torvalds (Linux OS) 16
Λειτουργικό Σύστημα Το λειτουργικό σύστημα ασκεί το ρόλο του με στόχο: Να εξασφαλίζει τη μέγιστη δυνατή ευκολία στο χρήστη, ώστε αυτός με την ελάχιστη δυνατή προσπάθεια να λαμβάνει τα επιθυμητά αποτελέσματα Να επιτυγχάνει τη μέγιστη δυνατή αξιοποίηση των πόρων του συστήματος 17
Λειτουργικό Σύστημα Το λειτουργικό σύστημα αποτελεί τον «κυβερνήτη» του συστήματος, ο οποίος: Λαμβάνει τα αιτήματα των χρηστών Τα αναλύει σε επιμέρους λειτουργίες Σχεδιάζει με ποιο τρόπο θα κάνει τη βέλτιστη χρήση του υλικού για την ικανοποίηση αυτών των αιτημάτων Παρακολουθεί την εκτέλεση των απαραίτητων λειτουργιών Συνθέτει τις απαντήσεις και τις προωθεί στον χρήστη 18
Εργασίες λειτουργικών συστημάτων Εκτέλεση προγραμμάτων Ο χρήστης διατυπώνει στο ΛΣ την επιθυμία του για την εκτέλεση ενός συγκεκριμένου προγράμματος. Στη συνέχεια το ΛΣ αναλαμβάνει όλες τις απαραίτητες εργασίες ώστε το αποτέλεσμα να φτάσει στο χρήστη Λειτουργίες εισόδου/εξόδου: Εκτελεί την επικοινωνία με τις περιφερειακές συσκευές εισόδου/εξόδου 19
Εργασίες λειτουργικών συστημάτων Διαχείριση συστήματος αρχείων: Παραδείγματα είναι η δημιουργία, διαγραφή, μετονομασία κτλ των αρχείων Ανίχνευση λαθών: Εντοπίζει σε κάθε λάθος πιθανές αιτίες και μεταφέρει στο χρήστη το σωστό μήνυμα Κατανομή πόρων: Εντοπίζει και κατανέμει τους ελεύθερους υπολογιστικούς πόρους, ανάλογα με τις απαιτήσεις των χρηστών 20
Εργασίες λειτουργικών συστημάτων Απολογιστικά στοιχεία: Πρέπει να διατηρεί στοιχεία από τα οποία να προκύπτει η χρήση των πόρων ανά χρήστη και η εξαγωγή στατιστικών στοιχείων για τη βελτίωση των επιδόσεων του συστήματος Προστασία Ασφάλεια: Προστασία των προσωπικών δεδομένων των χρηστών από αλλοίωση 21
Υπολογιστικό σύστημα Ένα υπολογιστικό σύστημα αποτελείται λί από: Έναν (ή περισσότερους) ρ επεξεργαστές ξργ Κάποια ποσότητα κύριας μνήμης Τερματικά Δίσκους Μηχανισμούς διασυνδέσεων δικτύων Άλλες συσκευές εισόδου/εξόδου 22
Υπολογιστικό σύστημα Τελικά προκύπτει ένα πολύπλοκο σύστημα Το να γραφούν προγράμματα που να εποπτεύουν και να ελέγχουν όλους αυτούς τους πόρους υλικού, κατά τρόπο βέλτιστο, είναι μια δύσκολη διαδικασία 23
Υπολογιστικό σύστημα Έγινε κατανοητό πως έπρεπε οι προγραμματιστές να αποδεσμευτούν από την πολυπλοκότητα του υλικού Λύση: Τοποθέτηση ενός επιπέδου λογισμικού στην κορυφή του υλικού Διαχείριση όλων των συστατικών μερών Προσφορά στο χρήστη μιας διασύνδεσης ή μίας ιδεατής μηχανής Το επίπεδο αυτό ονομάζεται λειτουργικό σύστημα και είναι το αντικείμενο αυτού του μαθήματος 24
Ορισμός «Λειτουργικό Σύστημα» Το Λειτουργικό Σύστημα είναι το κεντρικό κομμάτι λογισμικού ενός συστήματος ΗΥ, το οποίο διαχειρίζεται τους υλικούς πόρους του Αυτή η θεώρηση όμως δεν αρκεί! 25
Λειτουργικό Σύστημα Το Λ.Σ. Είναι η καρδιά και ο εγκέφαλος ενός Η/Υ!!! 26
Στόχοι του Λειτουργικού Συστήματος Απλοποιεί την εκτέλεση των προγραμμάτων των χρηστών, και κάνει τη λύση των προβλημάτων των χρηστών ευκολότερη Χρησιμοποιεί αποτελεσματικά τους πόρους του υλικού Επιτρέπει την διαμοίραση των πόρων υλικού και λογισμικού Κάνει τις εφαρμογές του λογισμικού φορητές Προσφέρει ρ απομόνωση, ασφάλεια και προστασία μεταξύ του χρήστη και των προγραμμάτων Βελτιώνει την συνολική αξιοπιστία του συστήματος 27
Λειτουργικό Σύστημα Μέσω του αφηρημένου στρώματος διασύνδεσης που προσφέρει το ΛΣ, μπορούν οι εφαρμογές να χρησιμοποιούν: την μνήμη τον επεξεργαστή το σύστημα αρχείων τις περιφερειακές συσκευές Το ΛΣ δημιουργεί ένα εικονικό περιβάλλον μέσα στο οποίο τρέχουν οι εφαρμογές 28
Λειτουργικό Σύστημα Aρα, το Λ.Σ. παρέχει δύο βασικές αφηρημένες έννοιες: 1. Διεργασίες (Processes) 2. Αρχεία (Files) Με την έννοια της «διεργασίας» ασχολούνται εκείνες οι διαδικασίες του Λ.Σ. που καλούνται να διαχειριστούν τον CPU, RAM, Δίσκους, Τερματικά, κ.λπ. Αυτή η διαχείριση εστιάζει στην ίση κατανομή των υλικών πόρων του υπολογιστή σε όλα τα προγράμματα που τρέχουν σε μία δεδομένη στιγμή. Με την έννοια του «αρχείου» ασχολούνται οι διαδικασίες του Λ.Σ. που παρέχουν την δυνατότητα δημιουργίας μη-προσωρινών δεδομένων (που αποθηκεύονται στη δευτεροβάθμια μνήμη). ) Αυτές οι διαδικασίες ασχολούνται επίσης και με την επικοινωνία με τις περιφερειακές συσκευές. 29
Το Λειτουργικό Σύστημα ως μία Εκτεταμένη Μηχανή Το λειτουργικό σύστημα: Απομονώνει τον προγραμματιστή από το υλικό Παρουσιάζει μια απλή διασύνδεση μεταξύ υλικού και λογισμικού Εργασία του λειτουργικού συστήματος είναι να παρουσιάσει στο χρήστη ένα ισοδύναμο μιας εκτεταμένης μηχανής ή ιδεατής μηχανής που είναι ευκολότερο να προγραμματιστεί από το αντίστοιχο υλικό 30
Το Λειτουργικό Σύστημα ως Διαχειριστής Πόρων Προσέγγιση από την κορυφή προς τη βάση: Κύρια φροντίδα είναι η προσφορά στους χρήστες μιας άνετης επικοινωνίας με το σύστημα Προσέγγιση από την βάση προς την κορυφή: Διαχειρίζεται όλα τα τμήματα ενός πολύπλοκου συστήματος Παράδειγμα: Φανταστείτε ότι 3 προγράμματα που εκτελούνται στον ίδιο υπολογιστή προσπαθούν ταυτόχρονα να εκτυπώσουν στον ίδιο εκτυπωτή. Το αποτέλεσμα θα ήταν ένα χάος. 31
Το Λειτουργικό Σύστημα ως Διαχειριστής Πόρων Κύρια φροντίδα του λειτουργικού συστήματος είναι: Να ελέγχει ποιος χρησιμοποιεί ποιους πόρους Να διαβαθμίζει τις απαιτήσεις για πόρους Να χρεώνει για τη χρήση τους Να επιλαμβάνεται για τις αντικρουόμενες διεκδικήσεις από διαφορετικά προγράμματα και χρήστες 32
Λειτουργικά Συστήματα Εφαρμογή Λειτουργικό Σύστημα Υλικό Κάρτα γραφικών Οθόνη ΚΜΕ Μνήμη Αποθηκευτικά μέσα Δίκτυο Εκτυπωτής 33
Ο ρόλος από το κέλυφος 34
Στοιχεία του λειτουργικού συστήματος Κέλυφος: επιφορτισμένο με την επικοινωνία με τους χρήστες Γραφικό περιβάλλον εργασίας (GUI) Διαχείριση παραθύρων Πυρήνας: περιέχει τα στοιχεία για την εκτέλεση των βασικών λειτουργιών Διαχείριση αρχείων Οδηγοί συσκευών Διαχειριστής μνήμης Χρονοπρογραμματιστής 35
Πυρήνας του Λειτουργικού Συστήματος Έχει καθιερωθεί να χρησιμοποιούμε τον όρο Πυρήνας για να αναφερόμαστε στα πιο βασικά μέρη ενός ΛΣ τα οποία αλληλεπιδρούν στενά με το υλικό Μερικά από τα τμήματα του ΛΣ που δεν ανήκουν στον πυρήνα είναι: η διασύνδεση με τον χρήστη τα πρωτόκολλα επικοινωνίας ανάμεσα στις εφαρμογές τα πρωτόκολλα διαχείρισης περιόδων εργασιών χρηστών τα πρωτόκολλα δικτύου 36
Διαχειριστής αρχείων Κατάλογος: Συλλογή αρχείων (ή άλλων καταλόγων) για ομαδοποίηση Μονοπάτι: Η θέση ενός αρχείου στην ιεραρχία ρχ των καταλόγων Περιγραφή αρχείου: Απαραίτητη πληροφορία για να αποκτήσουμε πρόσβαση σε ένα ανοιχτό αρχείο 37
Διαχειριστής μήμης μνήμης Σελίδα: Μονάδα μνήμης για διαχείριση (συνήθως είναι μερικά kb) Εικονική μνήμη: Μη πραγματική μνήμη Δημιουργείται από μονάδες δεδομένων, που καλούνται σελίδες, μεταξύ της πραγματικής μνήμης μήμηςκαι της μονάδας εξωτερικής αποθήκευσης 38
Ξεκινώντας τον υπολογιστή Εκκίνηση: Οι οδηγείς για την εκκίνηση του υπολογιστή βρίσκονται στην ROM μνήμη Εκτελείται από την CPU όταν τροφοδοτηθεί ο υπολογιστής Μεταφέρει το λειτουργικό σύστημα από το δίσκο αποθήκευσης στην κεντρική μνήμη Εκτελεί τις λειτουργίες του λειτουργικού συστήματος 39
Διεργασία Πρόγραμμα: ένα στατικό σύνολο οδηγιών Διεργασία: η ενέργεια της εκτέλεσης ενός προγράμματος Κατάσταση διεργασίας: τωρινή κατάσταση της εκτέλεσης 40
Διαχείριση διεργασιών Χρονοπρογραμματιστής Κρατάει την κατάσταση όλων των διεργασιών στον πίνακα διεργασιών Έτοιμες ή σε αναμονή Προτεραιότητα Μη-χρονοπρογραμματισμένη πληροφορία (σελίδες μνήμη, μήμη, κτλ) ) 41
Συνθήκη ήηαδιεξόδου Δύο διεργασίες μπλοκάρουν η μία την άλλη Συνθήκες οι οποίες οδηγούν σε αδιέξοδο: δέξ δ Συναγωνισμός για μη-κοινόχρηστους πόρους Τουλάχιστον δύο πόροι χρειάζονται και από τις δύο διεργασίες Δεν μπορεί να αποδεσμευτεί ένας δεσμευμένος πόρος 42
Παράδειγμα αδιεξόδου 43
«Αδιέξοδα» ξ Αδιέξοδο: ένα σύνολο από διεργασίες που δημιουργούν μια κυκλική αλυσίδα κάθε διεργασία στην αλυσίδα δεν μπορεί να προχωρήσει και περιμένει για κάποιο γεγονός που μπορεί να προκληθεί μόνο από κάποιο άλλο μέλος της αλυσίδας Τα γεγονότα για τα οποία περιμένουν οι διεργασίες είναι η απελευθέρωση κάποιου υπολογιστικού πόρου. Για να χρησιμοποιήσουν κάποιο πόρο οι διεργασίες πρέπει πρώτα να: 1. ζητήσουν τους πόρους: Αν δεν είναι διαθέσιμοι (δηλ. κάποια άλλη διαδικασία τους χρησιμοποιεί) τότε η διεργασία που το ζητάει μπλοκάρει. 2. Χρησιμοποιούν τον πόρο,, αν είναι ελεύθερος 3. Απελευθερώνουν τον πόρο. Σιώζιος Κων/νος Πληροφορική Ι 44