Λειτουργικά Συστήματα (Λ/Σ) Εισαγωγή στα Λειτουργικά Συστήματα Βασίλης Σακκάς 6/11/2013 1
Ο Ζωολογικός κήπος των Υπολογιστών PC Έξυπνες κάρτες Ενσωματωμένα Λ/Σ Διακομιστές Πραγματικού χρόνου Υ/Σ 2
Λ/Σ Οικονομία Ασφάλεια Διασκέδαση 3
Στόχοι του μαθήματος Να περιγράψουμε και να κατανοήσουμε τι είναι και τι κάνει το Λειτουργικό Σύστημα (Λ/Σ) Ποιος είναι ο ρόλος του Λ/Σ σεέναη/υ. Να κατανοήσουμε πόσο σημαντικό είναι το Λ/Σ Να εξοικειωθούμε με τα βασικά Λ/Σ 4
Στόχοι για σήμερα Να περιγράψουμε τι είναι το Υλικό (Hardware) και τι το Λογισμικό (Software) Η/Υ Να εξηγήσουμε τη διάκριση μεταξύ Λογισμικού Συστημάτων και Λογισμικού Εφαρμογών. Να περιγράψουμε τι είναι τα Λειτουργικά Συστήματα Το Λ/Σ ως εκτεταμένη μηχανή Το Λ/Σ ως διαχειριστής Πόρων Να δούμε σύντομα την ιστορία εξέλιξής των Λ/Σ 5
Υπολογιστικό Σύστημα Υλικό (Hardware) Επεξεργαστές, μνήμη, δίσκοι, εκτυπωτές, πληκτρολόγιο, οθόνη, διασυνδέσεις δικτύου, και άλλες συσκευές Εισόδου/Εξόδου (Input/Output - I/O) Λογισμικό (Software) Είναι το σύνολο των προγραμμάτων που μπορεί να εκτελέσει ένα υπολογιστικό σύστημα 6
Υπολογιστικό Σύστημα Τραπεζικό σύστημα Κρατήσεις αεροπορικών θέσεων Πλοήγηση διαδικτύου Προγράμματα Εφαρμογών Μεταγλωτιστές Διορθωτές Λειτουργικό Σύστημα Ερμηνευτής Εντολών Προγράμματα Συστήματος Γλώσσα Μηχανής Μικροαρχιτεκτονική / Μικροπρογραμματισμός Υλικό Φυσικές Συσκευές 7
Λογισμικό: Δύο κατηγορίες Λογισμικό Συστημάτων Είναι τα προγράμματα που εξυπηρετούν ανάγκες του υλικού του Η/Υ Η ύπαρξη και λειτουργία τους δεν γίνεται άμεσα αντιληπτή στον χρήστη Χρησιμοποιείται κατά την κατασκευή ή εκτέλεση του Λογισμικού Εφαρμογών Λογισμικό Εφαρμογών Είναι τα προγράμματα που εξυπηρετούν ανάγκες του γενικού χρήστη Ο χρήστης έρχεται σε επαφή μαζί τους καθημερινά Κατά την εκτέλεση τους χρησιμοποιείται το λογισμικό συστημάτων 8
Λογισμικό: Δύο κατηγορίες Λογισμικό Συστημάτων πρόγραμμα που στέλνει αρχεία τον εκτυπωτή πρόγραμμα που φορτώνει δεδομένα από τον σκληρό δίσκο στην κύρια μνήμη πρόγραμμα που εγκαθιστά την κάμερα Λογισμικό Εφαρμογών Πρόγραμμα επεξεργασίας κειμένου Ιστο-πλοηγός Ηλεκτρονικό Ταχυδρομείο 9
Λογισμικό: Δύο κατηγορίες Λογισμικό Συστημάτων Λειτουργικά Συστήματα (Windows, Linux, Unix κ.α.) Οδηγοί Υλικού (device drivers) μεσολαβούν μεταξύ Λ/Σ και συσκευών Ε/Ε Πρόγραμμα Υπηρεσιών: μορφοποίηση δίσκου, παύση διεργασιών κ.α. Μεταγλωττιστές, συμβολομεταφραστές (assemblers, compilers) π.χ. μεταφραστής C++ Λογισμικό Εφαρμογών Λογισμικό Γενικής Χρήσης: π.χ. Acrobat reader, Firefox, Real Player, Photoshop Εξειδικευμένο λογισμικό: π.χ. ιαχείριση αποθήκης Ολοκληρωμένο Λογισμικό : Συλλογή εφαρμογών (MS-Office) 10
Τι είναι Λειτουργικό Σύστημα; Ένα Λ/Σ είναι ένα πρόγραμμα που ενεργεί ως ενδιάμεσος μεταξύ του Χρήστη του Η/Υκαιτου Υλικού του Η/Υ, και επιτελεί δύο ασύνδετες μεταξύ τους λειτουργίες την επέκταση της μηχανής και την διαχείριση των πόρων Ο βασικός στόχος της χρήσης Η/Υ είναι στην ουσία η χρήση λογισμικών. Το Λ/Σ απλοποιεί και διαχειρίζεται το σύνθετο πρόβλημα να «τρέξουμε» προγράμματα εφαρμογής: σωστά και αποδοτικά 11
Εισαγωγή στα Λειτουργικά Συστήματα Ένα Λειτουργικό Σύστημα είναι η διασύνδεση μεταξύ του Χρήστη και της Αρχιτεκτονικής Προγράμματα Εφαρμογών Ιδεατή Διασύνδεση Λειτουργικά Συστήματα Φυσική Διασύνδεση Υλικό Λ/Σ ωςζογκλέρ: δίνει την ψευδαίσθηση ενός «πιστού» μηχανήματος με άπειρη μνήμη και CPU. Λ/Σ ωςκυβέρνηση: Προστατεύει τους χρήστες μεταξύ τους, κατανέμει τους πόρους ανάλογα και δίκαια, εξασφαλίζει ασφαλή και σίγουρη επικοινωνία Λ/Σ ως σύνθετο σύστημα: Το να έχουμε ένα Λ/Σ μεόσοτο δυνατόν απλούστερο σχεδιασμό και εφαρμογή είναι το κλειδί ώστε να λειτουργεί σωστά το Λ/Σ 12
Στόχοι ενός Λ/Σ Απλοποιεί την εκτέλεση προγραμμάτων εφαρμογής και λύνει εύκολα και γρήγορα προβλήματα του χρήστη (π.χ. ποιο αρχείο θα εκτυπωθεί πρώτο και ποιο δεύτερο) Αξιοποιεί τις δυνατότητες του υλικού του Η/Υ με τον καλύτερο δυνατό τρόπο Επιτρέπει τον καταμερισμό των πόρων του Η/Υ αλλά και του λογισμικού. Κάνει τα λογισμικά εφαρμογής «φορητά» και «εύστροφα». Παρέχει ασφάλεια και προστασία μεταξύ των προγραμμάτων εφαρμογής. Βελτιώνει την αξιοπιστία του συστήματος Περιορισμός των σφαλμάτων, διαχείριση σφαλμάτων, επαναρύθμιση παραμέτρων. 13
Γιατί χρειαζόμαστε Λ/Σ; Πρακτικότητα Παρέχει υψηλού επιπέδου απεμπλοκή από τη διαχείριση των πόρων/υλικών ενός πολύπλοκου υπολογιστικού συστήματος. Διευκολύνει την δημιουργία ακόμη πιο περίπλοκων λογισμικών συστημάτων Διευκολύνει την δημιουργία «μεταφερόμενου» κώδικα. MS-DOS v.1 ξεκινάει και την τελευταία Intel Core. Τα παιχνίδια που «έτρεχαν» σε MS-DOS v.1 λειτουργούν σήμερα; Αξιοπιστία Μοιράζουν περιορισμένους και ακριβούς πόρους. Παρέχουν προστασία. 14
ΓιατίναμελετήσωταΛ/Σ; Πρέπει να κατανοήσουμε την αλληλεπίδραση μεταξύ του υλικού και των εφαρμογών Νέες εφαρμογές, νέο υλικό... Πρέπει να κατανοήσουμε τις βασικές αρχές του σχεδιασμού ενός υπολογιστικού συστήματος Σωστή διαχείριση των πόρων, ασφάλεια, προσαρμοστικότητα Αυξανόμενη ανάγκη για εξειδικευμένα Λ/Σ Π.χ. Ενσωματωμένα Λ/Σ για μικρές συσκευές, κινητά τηλέφωνα, αισθητήρες, ελεγκτές (embedded operating systems) Πραγματικού-χρόνου (real-time) Λ/Σ - έλεγχος αεροσκαφών, υπηρεσίες multimedia 15
Εκκίνηση Λειτουργικού Συστήματος ΚΜΕ RAM ROM Το Λ/Σ αναλαμβάνει τον έλεγχο λίγο μετά την εκκίνηση του Η/Υ. Αναλυτικά κατά την εκκίνηση (booting process) : Εκτελείται ένα μικρό σύνολο εντολών από προκαθορισμένη θέση της ROM Αυτές αντιγράφουν τμήματα του Λ/Σ από την δευτερεύουσα μνήμη στην κύρια Ο έλεγχος μεταφέρεται σε αυτό το αντίγραφο που φορτώνει στην κύρια μνήμη και άλλα τμήματα του Λ/Σ Σκληρός Δίσκος Λ/Σ 16
Εκκίνηση Λειτουργικού Συστήματος ΚΜΕ RAM ROM Ο έλεγχος μεταφέρεται στα φορτωμένα τμήματα του Λ/Σ. Αυτά παρουσιάζουν στο χρήστη το γραφικό περιβάλλον και αρχίζουν να κατανέμουν τους πόρους του Η/Υ στα προγράμματα που καλεί ο χρήστης Ερώτηση: ΟΗ/Υμπορεί να εκτελεί μόνο συγκεκριμένο Λ/Σ; Απάντηση: εν υπάρχει περιορισμός θα εκτελέσει όποιο Λ/Σ βρεθείστη περιοχή του σκληρού δίσκου όπου ψάχνουν οι εντολές της ROM Σκληρός Δίσκος Λ/Σ 17
Σημερινά Συστήματα 18
Ερευνητικά Συστήματα 19
Παραδείγματα Λ/Σ Windows 20
Παραδείγματα Λ/Σ Mac OS 21
Παραδείγματα Λ/Σ Linux - UBUNTU 22
Παραδείγματα Λ/Σ Palm OS 23
Παραδείγματα Λ/Σ Symbian OS 24
Παραδείγματα Λ/Σ Android OS 25
Παραδείγματα Λ/Σ Apple ios 26
Εξέλιξη Λειτουργικών Συστημάτων Γιατί τα Λειτουργικά Συστήματα αλλάζουν; Βασικές Λειτουργίες : Αλλαγή/εξέλιξη υλικού και διαχείριση του Αρχές: Σχεδιαστικές βελτιώσεις και εξελίξεις καθώς η τεχνολογία μεταλλάσσεται. Συγκρίνοντας υπολογιστικά συστήματα από το 1981 και το 2012 1981 2012 Δείκτης MIPS (εκατομ. Εντολές / δευτ.) 1 57,000 57,000 $/SPECInt $100K $2 50,000 DRAM μέγεθος 128KB 2GB 16,000 Μέγεθος Δίσκου 10MB 1TB 100,000 Net BW 9600 bps 100 Mb/s 10,000 Address bits 16 64 4 Χρήστες/Υπολογιστή 100 <1 100 Ενεργειακή μείωση και παράλληλη λειτουργία στον ορίζοντα. Τα κέντρα δεδομένων καταναλώνουν ~3% της ενέργειας των ΗΠΑ Όχι πλέον μονοπύρηνοι ΚΜΕ (CPU) 27
Iστορικό Σκληρών δίσκων 1973: 1. 7 Mbit/τετρ. ίντσα 140 MBytes 1979: 7. 7 Mbit/ τετρ. ίντσα 2,300 MBytes Σήμερα: Seagate 2TB, 400 GB/τετρ. ίντσα, 3½ ίντσες δίσκο 28
Η πολυπλοκότητα του Υλικού αυξάνει Ο νόμος του Moore: 2X transistors/chip κάθε1.5 χρόνο Intel Multicore Chipsets Hennessy and Patterson, Computer Architecture: A Quantitative Approach, 4th edition, Sept. 15, 2006 Απόδοση 29
Η πολυπλοκότητα των Λογισμικών αυξάνεται Εκατομμύρια γραμμές κώδικα Από το μάθημα 6.033 στο MIT 30
Ιστορικό Εξέλιξης Λ/Σ: Φάσεις Φάση1: Υλικό ακριβό, άνθρωποι φθηνοί Συστήματα ενός χρήστη Συστήματα δέσμης Συστήματα πολλαπλού προγραμματισμού Φάση2: Υλικό φθηνό, άνθρωποι ακριβοί Χρονομερισμός : Οι χρήστες χρησιμοποιούν φθηνά τερματικά και μοιράζονται διακομιστές (servers) Φάση 3: Υλικό φθηνό, άνθρωποι πολύ ακριβοί Προσωπικοί Υπολογιστές (PC): Ένα σύστημα / χρήστη ιασκορπισμένος προγραμματισμός : πολλά συστήματα/χρήστη Φάση 4: Καθολικός προγραμματισμός / Προγραμματισμός σύννεφων (Cloud computing) Κινητά τηλέφωνα, mp3 player, DVD player, PDA, iphone, ereader Λογισμικό ως υπηρεσία, Amazon compute cloud 31
Λόγος χρήστες/ Υπολογιστή συναρτήσει χρόνου Χρόνος log (χρήστες/υπολογιστή) David Culler (Berkeley) Έτη 32
Αρχή του χρόνου ENIAC: (1945 1955) Σχεδιάστηκε από τους Drs. Eckert & Mauchly. Ο ENIAC γέμιζε ένα δωμάτιο, ζύγιζε 30 Τόνους και κατανάλωνε 200 kilowatts ενέργειας http://ei.cs.vt.edu/~history/eniac.richey.html 33
Μνήμη Πυρήνα (1950s & 60s) Ο πρώτος υπολογιστής μαγνητικού πυρήνα ο IBM 405 Alphabetical Accounting Machine. Η μνήμη πυρήνα αποθήκευε δεδομένα ως μαγνήτιση σε σιδερένια δακτυλίδια Σιδερένιοι πυρήνες αναπτύσσονταν σε 2- πλέγματα καλωδίων http://www.columbia.edu/acis/history/core.html 34
Πρώτα Συστήματα (1950s) Υλικό ακριβό Άνθρωποι φθηνοί ομή Μεγάλες μηχανές ελέγχονται από κονσόλες Συστήματα ενός χρήστη Προγραμματιστής/χρήστης και χειριστής Χαρτοταινίες και διάτρητες κάρτες (punched cards) Αρχικό Λογισμικό Μεταγλωττιστές, σύνδεσμοι, loaders, drivers, βιβλιοθήκες από κοινές υπο-ρουτίνες. Ασφαλή εκτέλεση Μη ικανοποιητική και μη αποτελεσματική χρήση ακριβών πόρων Χαμηλή χρήση της ΚΜΕ, μεγάλος χρόνος ετοιμασίας από John Ousterhout 35
Απλά συστήματα δεσμίδων Batch ( 55 65) Μείωση του χρόνου εγκατάστασης λόγω χρήσης εργασιών δεσμίδας (batching jobs) με παρόμοιες απαιτήσεις. Προσθήκη αναγνώστη καρτών, πρόσληψη ενός χειριστή Χρήστης εν είναι ο χειριστής Αυτόματη διαδοχή εκτέλεσης εργασιών Αποτελεί το πρώτο Λ/Σ Από John Ousterhout Τοπική Παρακολούθηση Διατηρεί τον αρχικό έλεγχο, ελέγχει μεταφορές σε εργασίες και πίσω στην οθόνη. Πρόβλημα Χρειάζεται διαχωρισμός εργασίας από εργασία και δεδομένων από πρόγραμμα 36
Απλά συστήματα δεσμίδων Batch ( 55-65) εσμiδες vs. ιαδοχική εκτέλεση εργασιών(jobs) Card Reader: Διάβασμα Job 1 Job 2 Job 3 ΚΜΕ: Εκτυπωτής: Εκτέλεση Job 1 Job 2 Job 3 Εκτύπωση Job 1 Job 2 Job 3 Card Reader: Διάβασμα Batch 1 Batch 2 Batch 3 ΚΜΕ: Εκτυπωτής : Εκτέλεση Batch 1 Batch 2 Batch 3 Εκτύπωση Batch 1 Batch 2 Batch 3 37
Επεξεργασία Δεσμίδων ( 55 65) Λειτουργικό Σύστημα = φορτωτής + σύστημα διαδοχής+ έξοδος επεξεργαστή Δεδομένα Χρήστη Ταινία Πρόγραμμα Λογισμικό Συστήματος Λειτουργικό Σύστημα Ταινία Card Card Reader Ταινία Είσοδος Υπολογισμοί Ταινία Εκτυπωτής Έξοδος 38
Πολυπρογραμματισμός ( 65 80) Χρησιμοποιεί διακοπές για να τρέξουν πολλαπλά προγράμματα ταυτόχρονα Όταν ένα πρόγραμμα διαβάζει ή εξάγει δεδομένα η ΚΜΕ δεν «σταματά» αλλά εκτελεί ένα άλλο πρόγραμμα έως να δεχθεί μήνυμα διακοπής. Χρειάζεται ασφαλή μνήμη για Ε/Ε σε κάθε πρόγραμμα Χρειάζεται παρέμβαση εάν ένας βρόγχος εκτελείται επ άπειρο. Χρειάζεται προγραμματισμός της ΚΜΕ για να επιλέξει την επόμενη εργασία για εκτέλεση. 39
Πολυπρογραμματισμός ( 65 80) ιατηρεί πολλαπλές εργασίες (jobs) στην μνήμη και πολλαπλές προσβάσεις στην ΚΜΕ μεταξύ των εργασιών Πρόγραμμα n... User Πρόγραμμα Program 2 Πρόγραμμα 1 Λογισμικό Συστήματος Λ/Σ Πρόγραμμα P begin begin :: Read(var) :: end end P system call call Read() Read() begin begin StartIO(input device) device) WaitIO(interrupt) EndIO(input device) device) :: end end Read Read Απλή, συγχρονική εισαγωγή: Τι κάνουμε όταν περιμένουμε τα συστήματα Ε/Ε; 40
Πολυπρογραμματισμός ( 65 80) ιατηρεί πολλαπλές εργασίες (jobs) στην μνήμη και πολλαπλές προσβάσεις στην ΚΜΕ μεταξύ των εργασιών Πρόγραμμα 1 Λ/Σ Ε/Ε Πρόγραμμα n main{... k: read() read{ User Πρόγραμμα Program 2 Πρόγραμμα 1 Λογισμικό Συστήματος Λ/Σ k+1: startio() waitio() endio() } interrupt } 41
Χρονομερισμός Υλικό γίνεται φθηνό Άνθρωποι γίνονται ακριβοί Τα προγράμματα μπαίνουν σε σειρά για εκτέλεση κατά «FIFO» σειρά. Όπως στον πολυπρογραμματισμό, αλλά το Λ/Σ καιη συσκευή χρόνου (timer device) διακόπτει την λειτουργία μετά από ένα χρονικό διάστημα (timeslice). Το διακοπτόμενο πρόγραμμα γυρίζει στο τέλος της FIFO Το επόμενο πρόγραμμα λαμβάνεται από την κορυφή της FIFO Η κάρτα ελέγχου επεξεργασίας αντικαθιστάται από μια εντολή γλώσσας επεξεργασίας 42
Χρονομερισμός ιαδραστικό (δράση/αντίδραση) Όταν το Λ/Σ τελειώνει την εκτέλεση μίας εντολής, αναζητά την επόμενη εντολή ελέγχου από τον χρήστη. Συστήματα Αρχείων Συστήματα αρχείων σε ανοικτή πρόσβαση (online) είναι απαραίτητα για τους χρήστες για να έχουν πρόσβαση σε δεδομένα και κώδικα. Νοητή μνήμη Οι εργασίες εναλλάσσονται μέσα και έξω από την μνήμη στον δίσκο. 43
Λειτουργικά Συστήματα για Προσωπικούς Υπολογιστές Υλικό φθηνό Άνθρωποι ακριβοί Μοναδικού χρήστη συστήματα, φορητά. Έμφαση στο περιβάλλον εργασίας Πολλές υπηρεσίες και λειτουργίες κρυφές Συσκευές Ε/Ε. Laptops palmtops, Smart cards, Wireless συσκευές. Εξέλιξη Αρχικά : Λ/Σ απλά λειτουργούσαν ως παροχή απλών υπηρεσιών Τώρα: Πολύ-λειτουργικά συστήματα με προσφορά υπηρεσιών διαχείρισης και ασφάλειας Αυξανόμενες ανάγκες ασφάλειας (π.χ. ηλεκτρονικό εμπόριο, ιατρικά αρχεία) 44
Διασκορπισμένα Συστήματα Υλικό πολύ φθηνό / Άνθρωποι πολύ ακριβοί Κατανομή υπολογιστικής ισχύς σε πολλούς επεξεργαστές. Ελαφρώς διασυνδεδεμένα - εν μοιράζονται μνήμη, πολλές γραμμές επικοινωνίας Αρχιτεκτονική πελάτη/εξυπερετητή (client/server) Πλεονεκτήματα: Κατανομή πόρων Αύξηση της ταχύτητας υπολογισμών Αξιοπιστία Επικοινωνία π.χ. email Εφαρμογές- ψηφιακές βιβλιοθήκες, ψηφιακά multimedia 45
Διασκορπισμένα Συστήματα Cloud Computing Offerings PlanetLab Gnutella P2P Network 46
Διασκορπισμένα Λ/Σ Τυπική παροχή διασκορπισμένων υπηρεσιών Μοιράζουμε δεδομένα και διαχείριση σε πολλαπλά συστήματα Πιθανόν αξιοποιούμε πολλαπλούς επεξεργαστές Υψηλή διαθεσιμότητα και αξιοπιστία Amazon, CNN Πρόγραμμα Λ/Σ Διαχείριση επεξεργασίας Πρόγραμμα Λ/Σ Διαχείριση Επεξεργασίας & μνήμης Λ/Σ Σύστημα Αρχείων Όνομα Υπηρεσίας Υπηρεσία mail CPU CPU CPU CPU CPU CPU Δίκτυο LAN/WAN 47
Παράλληλα Συστήματα Συστήματα πολλαπλών επεξεργαστών με περισσότερες από μία ΚΜΕ (CPU) σε στενή επικοινωνία. Αύξηση εισαγωγής και εξαγωγής δεδομένων, οικονομικά, αύξηση αξιοπιστίας. Είδη: Συμμετρική και ασυμμετρική επεξεργασία Κατανομή μνήμης vs. Κοινή μνήμη 48
Παράλληλα Υπολογιστικά Συστήματα ILLIAC 2 (UIllinois) Μοντέλα κλίματος, προσομοίωση σεισμών έρευνα πυρηνικής σύντηξης.. K-computer(Japan) Tianhe-1(China) IBM Blue Gene Connection Machine (MIT) 49
Κοινωνικά Πληροφοριακά Συστήματα Ο κόσμος είναι ένα μεγάλο διασκορπισμένο Υ/Σ Μικροεπεξεργαστές στα πάντα Τεράστια υποδομή στο υπόβαθρο Massive Cluster Gigabit Ethernet Clusters Massive Cluster Gigabit Ethernet Clusters Διαδίκτυο Βαθμοτές, αξιόπιστες, ασφαλείς Υπηρεσίες Βάσεις Δεδομένων, απομακρυσμένη αποθήκευση, Online παιχνίδια, εμπόριο Μικροηλεκτρονικά δίκτυα 50
Πραγματικού χρόνου Συστήματα Σωστή λειτουργία των συστημάτων εξαρτάται από την ταυτόχρονη εκτέλεση εντολών Ανάδραση/βρόγχοι ελέγχου Αισθητήρες Multimedia 51