Κεφάλαιο 3:Λειτουργικά Συστήµατα (1 ο µέρος) Κεφάλαιο 3: Λειτουργικά Συστήµατα Η Επιστήµη των Υπολογιστών: Μια Ολοκληρωµένη Παρουσίαση J. Glenn Brookshear 3.1 Ιστορικό των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ διεργασιών 3.5 Ασφάλεια 3-2 Ενέργειες των Λειτουργικών Συστηµάτων Μεταµορφώνουν το υλικό του υπολογιστή σε χρήσιµο εργαλείο. Θα δούµε τι κάνουν και πως το κάνουν Συντονίζουν τις εσωτερικές δραστηριότητες ενός υπολογιστής και επιτηρούν την επικοινωνία µε τον έξω κόσµο Επιβλέπουν τη λειτουργία του υπολογιστή Αποθηκεύουν και ανακτούν αρχεία Προγραµµατίζουν χρονικά την εκτέλεση των προγραµµάτων Συντονίζουν την εκτέλεση των προγραµµάτων Παραδείγµατα Λειτουργικών Συστηµάτων Windows Unix Eίναι πυρήνας για δύο άλλα λειτουργικά: Mac OS Solaris Linux Αναπτύχθηκε ερασιτεχνικά -> σήµερα διατίθεται εµπορικά 3-3 3-4 1
Εκτέλεση µιας εργασίας [job] Οµαδική επεξεργασία Αλληλεπιδραστική επεξεργασία Απαιτεί επεξεργασία πραγµατικού χρόνου Χρονοµερισµός/Πολυδιεργασία Υλοποιείται από τον πολυπρογραµµατισµό Μηχανές µε πολλούς επεξεργαστές εκαετίες 1940 1950 Μη αποδοτικοί και µη ευέλικτοι υπολογιστές Εκτέλεση κάθε προγράµµατος [job] σαν µεµονωµένη δραστηριότητα Ο υπολογιστής υπό τον έλεγχο του χρήστη έσµευση του υπολογιστή από κάθε χρήστη µέσω ειδικών εντύπων 3-5 3-6 Εµφάνιση λειτουργικών συστηµάτων µε στόχο τη: ιευθέτηση των προγραµµάτων Εξοµάλυνση της µετάβασης από εργασία σε εργασία Πρώτες εξελίξεις µέσω των λειτουργικών συστηµάτων ιαχωρισµός χρηστών και εξοπλισµού Εξάλειψη της ανάγκης φυσικής παρουσίας των χρηστών στην αίθουσα του υπολογιστή Εµφάνιση του ρόλου του «χειριστή» Οµαδική Επεξεργασία [batch processing] Συγκέντρωση εργασιών [jobs] προς εκτέλεση σε οµάδες ή δέσµες [batches] Εκτέλεσή τους χωρίς αλληλεπίδραση µε το χρήστη µε βάση οδηγίες σχετικές µε απαιτήσεις του προγράµµατος, γραµµένες σε job control language Ουρά εργασιών, FIFO όχι αυστηρή, προτεραιότητες Αποθηκεύει και των οδηγιών για κάθε εργασία και τις εκτυπώνει όταν έρθει η σειρά της 3-7 3-8 2
Οµαδική επεξεργασία Μειονεκτήµατα Οµαδικής Επεξεργασίας Χειριστής µεσάζων µεταξύ χρήστη κ υπολογιστή Αδυναµία αλληλεπίδρασης µεταξύ χρήστη και υπολογιστή Αποδεκτή για εφαρµογές χωρίς ανάγκη αλληλεπίδρασης µε χρήστη, όπου τα δεδοµένα και οι αποφάσεις επεξεργασίας καθορίζονται από πριν π.χ. µισθοδοσία Μη αποδεκτή για εφαρµογές που απαιτούν αλληλεπίδραση µε το χρήστη, π.χ.: κρατήσεις θέσεων, επεξεργασία κειµένου, παιχνίδια 3-9 3-10 Ανάπτυξη νέων λειτουργικών συστηµάτων (1/2) Αλληλεπιδραστική επεξεργασία Υποστηρίζουν αλληλεπιδραστική επεξεργασία ιάλογος µε χρήστη µέσω αποµακρυσµένων τερµατικών ή σταθµών εργασίας Τερµατικά ->εξελίχθηκαν σε workstations και PC 3-11 3-12 3
Ανάπτυξη νέων λειτουργικών συστηµάτων (2/2) Τα λειτουργικά συστήµατα που υποστηρίζουν αλληλεπιδραστική επεξεργασία εκτελούν γρήγορα τις ενέργειες του υπολογιστή και συντονίζονται µε τις ανάγκες του χρήστη Ο υπολογιστής εκτελεί εργασίες κάτω από προθεσµίες αντι να συµµορφώνεται ο χρήστης µε το χρονοδιάγραµµα της µηχανής Επεξεργασία Πραγµατικού Χρόνου (Real time processing): Οι εργασίες εκτελούνται σε πραγµατικό χρόνο δηλαδή µέσα από καθορισµένες προθεσµίες από το περιβάλλον του υπολογιστή (πραγµατικός κόσµος) Ανάγκη εξυπηρέτησης πολλών χρηστών Αν το λειτουργικό εκτελεί µια εργασία κάθε φορά, µόνο ένας χρήστης λαµβάνει ικανοποιητικές υπηρεσίες πραγµατικού χρόνου Λύση: Χρονοµερισµός (time sharing)µέσω πολυπρογραµµατισµού ιαίρεση του χρόνου σε χρονοθυρίδες Εκτέλεση εργασίας σε µια χρονοθυρίδα τη φορά Γρήγορη εναλλαγή εργασιών εµπρός και πίσω -> ψευδαίσθηση ταυτόχρονης εκτέλεσης πολλών εργασιών Τα πρώτα χρονοµεριστικά συστήµατα, εξυπηρετούσαν µέχρι και 30 χρήστες ταυτόχρονα 3-13 3-14 Ανάγκη εξυπηρέτησης πολλών χρηστών Τεχνικέςπολυπρογραµµατισµού χρησιµοποιούνται και σε µονοχρηστικά και σε πολυ χρηστικά συστήµατα. Χρονοµερισµός (Time Sharing) vs.πολυδιεργασία (Multi-tasking) Πολυχρηστικά, χρονοµεριστικά συστήµατα παραµερίζουν την ανάγκη χειριστή ως µεσάζοντα -> νέος ρόλος: διαχειριστής συστήµατος Ανάγκη εξυπηρέτησης πολλών χρηστών Πολυχρηστικά, χρονοµεριστικά συστήµατα συνήθης διευθέτηση: ένας µεγάλος κεντρικός Η/Υ µε πολλούς σταθµούς εργασίας. Άµεση επικοινωνία των χρηστών µε τον υπολογιστή παραµερίζουν την ανάγκη χειριστή ως µεσάζοντα -> νέος ρόλος: διαχειριστής συστήµατος 3-15 3-16 4
Ρόλος ιαχειριστή Συστήµατος εν περιλαµβάνει χειρισµό Η/Υ για εξυπηρέτηση τακτικών αιτηµάτων χρηστών. Περιλαµβάνει Επίβλεψη και διεκπεραίωση εγκατάστασης νέου εξοπλισµού και λογισµικού Επιβολή τοπικών κανονισµών Π.χ. ηµιουργία νέων λογαριασµών, όρια αποθηκευτικού χρόνου, άδειες πρόσβασης σε αρχεία και προγράµµατα Συντονισµό προσπαθειών για επίλυση προβληµάτων στο σύστηµα Περίληψη της εξέλιξης τους Από απλά προγράµµατα Που ανακτούσαν και εκτελούσαν ένα πρόγραµµα τη φορά Σε σύνθετα συστήµατα που Συντονίζουν τον χρονοµερισµό ιατηρούν προγράµµατα και αρχεία σε συσκευές µαζικής αποθήκευσης της µηχανής Ανταποκρίνονται άµεσα σε αιτήµατα των χρηστών Η εξέλιξή τους συνεχίζεται 3-17 3-18 Λειτουργικά για Πολυεπεξεργαστικές Μηχανές και ίκτυα υνατότητες Χρονοµερισµού και Πολυδιεργασίας µέσω Ανάθεσης εργασίας σε πάνω από έναν επεξεργαστές και διαµοιρασµός χρόνου σε κάθε επεξεργαστή Εξισορρόπηση φόρτου (load balancing) δυναµική κατανοµή σε όλους τους επεξεργαστές για αποδοτική χρήση τους Κλιµάκωση (scaling) διάσπαση εργασιών σ ένα αριθµό υπο-εργασιών συµβατό µε το πλήθος των διαθέσιµων επεξεργαστών ίκτυα Υπολογιστών ανάγκη για ανάπτυξη ενιαίου λειτουργικού που συντονίζει τις δραστηριότητες του δικτύου αντί για ένα δίκτυο µεµονωµένων λειτουργικών συστηµάτων 3-19 Κατευθύνσεις Έρευνας στα Λειτουργικά Συστήµατα Λειτουργικά για υπολογιστές µε πολλούς επεξεργαστές Εξισορρόπηση φόρτου Κλιµάκωση Λειτουργικά συστήµατα για δίκτυα υπολογιστών Λειτουργικά για µικρούς φορητούς υπολογιστές όπως PDA, tablet computers (ιδιαίτερες απαιτήσεις αποθήκευσης και εξοικονόµησης ισχύος) VxWorksαπό την Wind River Systems για τα οχήµατα Spirit και Opportunity για την εξερεύνηση του πλανήτη Άρη Android για smartphonesκαι tablet computers. Βασίζεται στο Linux (από Open Handset Alliance led by Google) Windows CE ή Pocket PC(από Microsoft) Palm OS (απόpalmsοurce, Inc)αναπτύχθηκε ειδικά για χρήση σε PDA 3-20 5
Αρχιτεκτονική Λειτουργικών Συστηµάτων ΑΡΧΙΤΕΚΤΟΝΙΚΉ ΛΕΙΤΟΥΡΓΙΚΏΝ ΣΥΣΤΗΜΆΤΩΝ Για την κατανόηση της σύνθεσης ενός Λ.Σ. θα εξετάσουµε πρώτα όλο το φάσµα λογισµικού σ έναν υπολογιστή, παρουσιάζοντας έναν τρόπο ταξινόµησής του και µετά θα επικεντρωθούµε στο Λ.Σ. 3-21 3-22 Κατηγορίες λογισµικού (1/2) Κατηγορίες λογισµικού (2/2) Λογισµικό εφαρµογών Προγράµµατα που αξιοποιούν τον Η/Υ και εκτελούνσυγκεκριµένες εργασίες για τους χρήστες ιαφορετικό για κάθε υπολογιστικό σύστηµα ανάλογα µε τις ανάγκες των χρηστών Λογισµικό συστήµατος Εκτελεί λειτουργίες κοινές για όλα τα υπολογιστικά συστήµατα Παρέχει την υποδοµή για το λογισµικό εφαρµογών 3-23 3-24 6
Στοιχεία Λειτουργικού Συστήµατος Ο φλοιός ως διασύνδεση µεταξύ των χρηστών και του πυρήνα του λειτουργικού συστήµατος Φλοιός ή Κέλυφος: ιασύνδεση του πυρήνα του Λ.Σ. µε τους χρήστες µπορεί να έχει διαφορετικές µορφές ανάλογα µε τις ανάγκες των χρηστών Πυρήνας:Περιέχει λογισµικό για τις βασικές απαιτούµενες λειτουργίες ενός Η/Υ 3-25 3-26 Φλοιός ή Κέλυφος (Shell) ιασύνδεση του πυρήνα του Λ.Σ. µε τους χρήστες µπορεί να έχει διαφορετικές µορφές ανάλογα µε τις ανάγκες των χρηστών. Π.χ. Για το Unix: Φλοιός Bourne, Φλοιός C, Φλοιός Korn H ιασύνδεση µε τους χρήστες γίνεται Με διασύνδεση κειµένου Με γραφική διασύνδεση µε το χρήστη (GUIή WIMP) Με τρισδιάστατες διασυνδέσεις, π.χ. αισθητήρες αφής ιαχειριστής Παραθύρων: Σηµαντικό συστατικό στους φλοιούς GUI Πυρήνας (Kernel) Λειτουργικού Συστήµατος Περιέχει το απαραίτητο λογισµικό για τις βασικές λειτουργίες ενός υπολογιστικού συστήµατος. Παραδείγµατα τέτοιου λογισµικού: ιαχειριστής αρχείων Οδηγοί συσκευών ιαχειριστής µνήµης Χρονοπρογραµµατιστής και διεκπεραιωτής 3-27 3-28 7
ιαχειριστής Αρχείων Συντονίζει τη χρήση λειτουργιών µαζικής αποθήκευσης Καταγραφή όλων των αρχείων σ ένα συγκεκριµένο µέσο αποθήκευσης, τη θέση τους, τους χρήστες που έχουν πρόσβαση, τα διαθέσιµα τµήµατα για νέα αρχεία ιατηρούνται στο µέσο αποθήκευσης που έχει τα αρχεία. Όταν γίνεται διαθέσιµο, ο.α. µπορεί να τα ανακτήσει και να τα δει Κατάλογος(ήΦάκελος): Μια δηµιουργούµενη από το χρήστη οµαδοποίηση αρχείων και άλλων καταλόγων (υποκαταλόγων) συµφωνα µε το σκοπό τους ιαδροµή καταλόγου: Μια ακολουθία από καταλόγους µέσα σε καταλόγους (π.χ. Path: /Users/Aphro/Documents/Courses/Introduction to CS/Chapter3.pptx Επιβλέπει πρόσβαση σε αρχεία από οποιαδήποτε άλλη µονάδα λογισµικού: αίτηση για παραχώρηση πρόσβασης -> άνοιγµα του αρχείου Οδηγοί Συσκευών Device Drivers Λογισµικό που επικοινωνεί µε τους ελεγκτές ή απ ευθείας µε τις περιφερειακές συσκευές του υπολογιστή Ειδικά σχεδιασµένο για συγκεκριµένο τύπο συσκευής (π.χ. Οθόνη, εκτυπωτής) Μεταφράζει γενικές απαιτήσεις σε πιο τεχνικά βήµατα Επιτρέπουν το σχεδιασµό των άλλων µονάδων λογισµικού ανεξάρτητα από τα ειδικά χαρακτηριστικά συγκεκριµένων συσκευών Αποτέλεσµα: Γενικό λειτουργικό σύστηµα που προσαρµόζεται για συγκεκριµένες περιφερειακές συσκευές µε απλή εγκατάσταση κατάλληλων οδηγών 3-29 3-30 ιαχειριστής Μνήµης (1/2) Memory Manager Συντονίζει τη χρήση της κύριας µνήµης του υπολογιστή Περιορισµένα καθήκοντα όταν εκτελείται µια εργασία τη φορά Εκτεταµένα καθήκοντα σε πολυδιεργασιακά και πολυχρηστικά συστήµατα Πολυδιεργασιακά/Πολυχρηστικά συστήµατα ιατήρηση στην κύρια µνήµη πολλών προγραµµάτων και δεδοµένων µνήµη Ο.Μ. εκχωρεί χώρο µνήµης και εξασφαλίζει ότι οι ενέργειες κάθε προγράµµατος περιορίζονται στο χώρο που του έχει παραχωρηθεί Ο.Μ. παρακολουθεί την εξέλιξη των εργασιών και τις περιοχές µνήµης που δεν είναι πλέον κατειληµµένες ιαχειριστής Μνήµης (2/2) Σελιδοποίηση και Εικονική Μνήµη Όταν η συνολική απαιτούµενη µνήµη υπερβαίνει αυτή του υπολογιστή χρησιµοποιείται σελιδοποίηση (paging) Ψευδαίσθηση µεγαλύτερης ποσότητας µνήµης (π.χ. 1024 ΜΒ ενώ η πραγµατική είναι 512 ΜΒ) µε δέσµευση 1024 ΜΒ στον µαγνητικό δίσκο όπου καταγράφει τα µπιτς που θα αποθηκεύονταν στην κύρια µνήµη αν είχε 1024 ΜΒ ιαίρεση των δεδοµένων οµοιόρµοφο µέγεθος µερικών KB: σελίδες (pages) Αντιµετάθεση αυτών των σελίδων µεταξύ κύριας µνήµης και δίσκου εξασφαλίζοντας ότι οι απαιτούµενες κάθε φορά σελίδες βρίσκονται στη µνήµη Εικονική µνήµη (Virtual Memory) Είναι η ψευδαίσθηση του µεγάλου χώρου µνήµης που δηµιουργείται από τη σελιδοποίηση 3-31 3-32 8
Χρονοπρογραµµατιστής και ιεκπεραιωτής Σε πολυπρογραµµατιστικά συστήµατα Χρονοπρογραµµατιστής (Scheduler) Προσδιορίζει τις δραστηριότητες προς εκτέλεση ιεκπεραιωτής (Dispatcher) Ελέγχει την κατανοµή του χρόνου σε αυτές τις δραστηριότητες Η διαδικασία εκκίνησης (1/3) ιαδικασία Εκκίνησης ->boot strapping, booting: εκτελείται κάθε φορά που ο υπολογιστής τίθεται σε λειτουργία Το λειτουργικό µεταφέρεται από το µέσο αποθήκευσης στην κύρια µνήµη (που είναι κενή κατά την εκκίνηση) Η ΚΜΕ έχει έναν µετρητή προγράµµατος µε µια συγκεκριµένη προκαθορισµένη διεύθυνση µνήµης που περιµένει να βρει την αρχή του προγράµµατος προς εκτέλεση Η κύρια µνήµη κατασκευάζεται µε πτητικές τεχνολογίες Ένα µικρό τµήµα της κύριας µνήµης όπου η ΚΜΕ περιµένει να βρει το αρχικό πρόγραµµα κατασκευάζεται από ειδικά κελιά µη πτητικής µνήµης: Read Only Memory (ROM) Στη ROM των υπολογιστών βρίσκεται µόνιµα αποθηκευµένο ένα πρόγραµµα που ονοµάζεται ρουτίνα εκκίνησης (bootstrap) και εκτελείται όταν ανάβει ο υπολογιστής Κατευθύνει την ΚΜΕ να µεταφέρει το λειτουργικό από το µέσο αποθήκευσης στην Κ.Μ. Μόλις φορτωθεί το λειτουργικό, το πρόγραµµα εκκίνησης κατευθύνει την ΚΜΕ να εκτελέσει µιά εντολή µετάβασης (JUMP) στη συγκεκριµένη περιοχή Υλικολογισµικό (Firmware): λογισµικό αποθηκευµένο σε ROM, δηλ. µόνιµα καταγεγραµµένο σε υλικό 3-33 3-34 Η διαδικασία εκκίνησης (2/3) Η διαδικασία εκκίνησης (3/3) Μετά την εκκίνηση οχρήστης κάνει αιτήσεις στο λειτουργικό για την εκτέλεση διαφόρων βοηθητικών προγραµµάτων ή προγραµµάτων εφαρµογών Απαιτείται εκµάθηση από το χρήστη του συγκεκριµένου βοηθητικού προγράµµατος ή εφαρµογής του λειτουργικού για περιήγηση µεταξύ των εφαρµογών Συστήµατα «Με το κλειδί στο χέρι» (turn key systems) Το λογισµικό τους είναι µόνιµα αποθηκευµένο στην κύρια µνήµη τους 3-35 3-36 9
ΒΙΟS (Basic Input-Output System) Ο όρος ΒΙΟS Βρίσκεται στη ROMενός προσωπικού υπολογιστή µαζί µε το πρόγραµµα εκκίνησης (bootstrap) Περιέχει συλλογή ρουτινών για εκτέλεση στοιχειωδών δραστηριοτήτων εισόδου εξόδου, π.χ. λήψη πληροφοριών από το πληκτρολόγιο, εµφάνιση µηνυµάτων στην οθόνη του υπολογιστή, ανάγνωση δεδοµένων από µέσα αποθήκευσης Οι ρουτίνες αυτές χρησιµοποιούνται από το πρόγραµµα εκκίνησης για δραστηριότητες Ε/Ε πριν το κανονικό ξεκίνηµα του λειτουργικού π.χ. για επικοινωνία µε το χρήστη ή για αναφορά σφαλµάτων κατά τη διάρκεια εκκίνησης Στην πραγµατικότητα αναφέρεται µόνο σε ένα µέρος της ROM ενός υπολογιστή Παρ όλα αυτά χρησιµοποιείται ευρέως ως αναφορά για όλο το λογισµικό που είναι στην ROM ή και για την ίδια τη ROM 3-37 3-38 Ευχαριστώ για την προσοχή σας! 3-39 10