Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική...

25
Πανεπιστήμιο Δυτικής Μακεδονίας Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β΄) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης [email protected] Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

Upload: others

Post on 31-Jul-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Πανεπιστήμιο Δυτικής Μακεδονίας

Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών

Αρχιτεκτονική Υπολογιστών

Ενότητα 13: (Μέρος Β΄) Λειτουργικό Σύστημα

Δρ. Μηνάς Δασυγένης [email protected]

Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg

Page 2: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

2

Page 3: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Χρηματοδότηση

• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

3

Page 4: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Σκοπός ενότητας

• Η κατανόηση της ανάγκης ύπαρξης λειτουργικού συστήματος.

• Η κατανόηση των λειτουργιών και των υπηρεσιών που προσφέρει το λειτουργικό σύστημα.

• Η παρουσίαση των βασικών υποσυστημάτων των λειτουργικών συστημάτων.

4

Page 5: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Η συμβολική γλώσσα είναι δύσχρηστη για σύνθετες ενέργειες • H ISA (assembly) είναι το επίπεδο που βρίσκεται ανάμεσα

στο λογισμικό και το υλικό. • Μπορούμε να κατασκευάσουμε ένα πρόγραμμα γραμμένο

σε assembly για μια συγκεκριμένη αρχιτεκτονική, το οποίο θα εκτελεί μια συγκεκριμένη λειτουργία.

• Όμως αυτό απαιτεί ο προγραμματιστής να προγραμματίσει συναρτήσεις πρόσβασης και χρήσης πλήθος λειτουργιών χαμηλού επιπέδου, όπως πρόσβαση στο δίσκο, συσκευές Ι/Ο (οθόνη, πληκτρολόγιο).

• Ακόμη και η εγγραφή ενός χαρακτήρα στην οθόνη απαιτεί δεκάδες εντολές (η εντολή int είναι υπηρεσία του λειτουργικού συστήματος).

5

Page 6: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Το ΛΣ βοηθάει τον προγραμματιστή

• Αν ο προγραμματιστής θέλει η μηχανή του να εκτελεί εκτός από ένα πρόγραμμα, και επιπρόσθετα προγράμματα, τότε απαιτείται ένα μεγάλο ποσό κώδικα για την προστασία των εφαρμογών, την αλληλεπίδραση και πολλά άλλα.

• Όλα αυτά τα προβλήματα (και πλήθος άλλων) οδήγησαν στη δημιουργία και ευρεία υιοθέτηση των λειτουργικών συστημάτων.

• Το λειτουργικό σύστημα μπορεί να χαρακτηριστεί ως ένα πολύ μεγάλο και σύνθετο πρόγραμμα (λογισμικό) που κατευθύνει τον επεξεργαστή (υλικό).

6

Page 7: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Τι είναι το λειτουργικό σύστημα;

• Λειτουργικό σύστημα είναι ένα πρόγραμμα το οποίο, από την άποψη του προγραμματιστή, προσθέτει μια ποικιλία νέων εντολών και δυνατοτήτων πάνω και πέρα από εκείνες που παρέχει το επίπεδο ISA.

• Οι βασικές του λειτουργίες είναι δύο: – Παρουσιάζει ένα μηχανισμό αφαίρεσης, ο οποίος

αφαιρεί όλες τις λεπτομέρειες που καθιστούν περίπλοκη τη χρήση του υλικού.

– Παρουσιάζει μια εικονική μηχανή, η οποία είναι ευκολότερο να προγραμματιστεί και να διαχειριστεί (διαχειριστής πόρων).

7

Page 8: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Το λειτουργικό σύστημα ως μηχανισμός αφαίρεσης

• Κρύβει από τον προγραμματιστή τις λεπτομέρειες του υλικού.

• Ο χρήστης μπορεί να χρησιμοποιήσει έναν υπολογιστή χωρίς να ενδιαφέρεται για το πως λειτουργεί το υλικό.

• Ο προγραμματιστής δε χρειάζεται να δημιουργήσει πολύπλοκο κώδικα χαμηλού επιπέδου. Προγραμματίζει σε υψηλό επίπεδο.

• ΠΑΡΑΔΕΙΓΜΑ: Αν δεν υπήρχε λειτουργικό σύστημα για να γράψουμε ένα αρχείο θα έπρεπε να ρυθμιστεί ο ελεγκτής του δίσκου, να ρυθμιστεί ο bus master, να βρεθεί η ακριβής τοποθεσία στο δίσκο, να μετακινηθεί ο βραχίονας των κεφαλών κατάλληλα, να δοθεί η εντολή εγγραφής..... (και πολλά άλλα).

• Με το λειτουργικό σύστημα, ο χρήστης κάνει “SAVE”.

• Με το λειτουργικό σύστημα, ο προγραμματιστής κάνει fwrite (...).

8

Page 9: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Το λειτουργικό σύστημα ως μια εικονική μηχανή

• Το λειτουργικό σύστημα είναι δομημένο με τέτοιο τρόπο, ώστε να δημιουργεί την ψευδαίσθηση στις εφαρμογές ότι αυτές είναι οι μόνες που υπάρχουν και εκτελούνται στο υλικό.

• Δε μπορεί να παρεμβάλει η μια διεργασία την άλλη και να προκαλέσει πρόβλημα.

• Η κάθε διεργασία δε μπορεί να καταλάβει την ύπαρξη άλλων διεργασιών.

• Η κάθε διεργασία μπορεί αν θελήσει να χρησιμοποιήσει όλους τους πόρους (π.χ. μνήμη) του συστήματος (ή τουλάχιστον να έχει την ψευδαίσθηση) . Έτσι π.χ. είναι δυνατό να εκτελούμε 10 εργασίες που η κάθε μια απαιτεί 2GB RAM σε ένα μηχάνημα που έχει συνολικά φυσική μνήμη 2GB RAM.

• Μπορούμε να εκτελούμε πολλές περισσότερες διεργασίες από ότι αν δεν είχαμε λειτουργικό σύστημα.

9

Page 10: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Ποιοι είναι οι δυο θεμελιώδεις στόχοι;

• Αποδοτικότητα: Όσο περισσότερο καλύτερη εκμετάλλευση του υλικού.

• Άνεση και εξυπηρέτηση: Φιλική και απλή χρήση του υλικού.

10

Page 11: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Το λειτουργικό σύστημα βρίσκεται πάνω από την ISA

Το επίπεδο αυτό, που βρίσκεται πάνω από την ISA, ονομάζεται “Επίπεδο Λειτουργικού Συστήματος”.

11

Page 12: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Ιεραρχία Software & Hardware

12

Page 13: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Πως το ΛΣ κρύβει την ανομοιομορφία του υλικού;

• Η ιεράρχηση του ΛΣ κρύβει την ανομοιομορφία του διαφορετικού υλικού (π.χ. επεξεργαστές, κάρτες γραφικών κ.ο.κ.).

• Με αυτόν τον τρόπο, προγράμματα μπορούν πολύ εύκολα να μεταφερθούν και να εκτελούνται σε πολλαπλές αρχιτεκτονικές με διαφορετικά υλικά.

• Χρησιμοποιούνται λοιπόν οι διεπαφές ή κλήσεις συστήματος (interfaces, system calls) του ΛΣ οι οποίες αυτές φροντίζουν να επικοινωνούν με το αντίστοιχο υλικό.

• Για παράδειγμα, μια εφαρμογή ενός παιχνιδιού μπορεί να εκτελείται σε κάθε κάρτα γραφικών που πληρεί τις ελάχιστες προδιαγραφές.

13

Page 14: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Το ΛΣ είναι μια μορφή προτυποποίησης

Το ΛΣ είναι μια μορφή προτυποποίησης, αφού ο προγραμματιστής χρησιμοποιεί τις σαφώς ορισμένες διεπαφές του Λ.Σ. (π.χ. για δημιουργία αρχείου, για εγγραφή αρχείου κ.ο.κ.) για να δημιουργεί εύκολα και γρήγορα, εφαρμογές που μπορούν να εκτελεστούν σε πλήθος αρχιτεκτονικών.

14

Page 15: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Πόσα ΛΣ υπάρχουν;

• Τα πρώτα ολοκληρωμένα λειτουργικά συστήματα παρουσιάστηκαν το 1960.

• Από τότε εκατοντάδες λειτουργικά συστήματα έχουν παρουσιασθεί, κάποια από τα οποία εγκαταλείφθηκαν τελείως, κάποια που ύστερα από μερικά χρόνια εγκατάλειψης τα ανέλαβαν άλλοι, και κάποια που συνεχίζουν να υπάρχουν για δεκαετίες.

• Τα λειτουργικά συστήματα έχουν διαφορετικούς στόχους.

15

Page 16: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Γιατί υπάρχουν τόσα πολλά ΛΣ; • Υπάρχουν διαφορετικές ανάγκες.

– γενικού σκοπού, διακομιστές, ενσωματωμένα συστήματα, παιχνιδομηχανές, βιομηχανικά συστήματα, πραγματικού χρόνου.....

• Υπάρχουν (υπήρχαν) διαφορετικές εταιρίες. – Microsoft, IBM, SCO, Nokia, Google...

• Υπάρχουν εθελοντές. – Linux, FreeBSD,..

• Υπάρχει διαφορετικό hardware (διαφορετικό ISA). – Intel x86, IBM Cell, ARM, AVR, TI,...

16

Page 17: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Ποια είναι τα βασικά υποσυστήματα των ΛΣ;

• Διαχείριση μνήμης. – Παρέχει το ποσό της μνήμης που απαιτεί η κάθε διεργασία.

Σελιδοποιεί τη μνήμη. Προστατεύει τη μνήμη.

• Διαχείριση Αρχείων. – Δημιουργία, Μετονομομασία, εγγραφή, διαγραφή και άλλες

λειτουργίες. Προστασία.

• Χρονοπρογραμματισμός Διεργασιών. – Πότε για πόσο και σε ποιον επεξεργαστή θα εκτελεστεί μια

διεργασία.

• Διαχείριση και προστασία πόρων. – Πότε θα δοθεί πρόσβαση και με τι δικαιώματα πρόσβασης;

• Διαχείριση εισόδου εξόδου.

17

Page 18: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Η εικονική μνήμη των ΛΣ (1/2)

• Διαχωρίζει την έννοια της φυσικής μνήμης και της μνήμης που βλέπει μια διεργασία.

• Χωρίζεται η φυσική μνήμη σε ισόποσα μεγέθη (συνήθως 4096 Bytes), που ονομάζονται πλαίσια (frames).

• Χωρίζεται η εικονική μνήμη, δηλαδή η μνήμη που δίνεται στις διεργασίες σε ισόποσα μεγέθη (ίδιου μεγέθους με τα πλαίσια), που ονομάζονται σελίδες (pages).

• Όταν η διεργασία ζητάει ένα ποσό μνήμης, το ΛΣ της δίνει έναν αριθμό από σελίδες (εικονική μνήμη).

18

Page 19: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Η εικονική μνήμη των ΛΣ (2/2)

• Στη συνέχεια το ΛΣ αντιστοιχίζει τις (εικονικές) σελίδες με τα (φυσικά) πλαίσια.

• Η εικονική μνήμη είναι πολύ μεγαλύτερη της φυσικής μνήμης, δεν έχουν όλες οι σελίδες αντιστοίχηση.

• Οι σελίδες που δεν έχουν αντιστοίχηση (επειδή δε χωράνε στη μνήμη) βρίσκονται σε μια περιοχή του σκληρού δίσκου που ονομάζεται swap file.

• Με αυτόν τον τρόπο μπορούμε να εκτελούνται πολλαπλές διεργασίες που διαφορετικά δε θα μπορούσαν να εκτελεστούν.

19

Page 20: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Ποια είναι τα κυριότερα προβλήματα στα ΛΣ;

• Μη επίτευξη 100% προστασίας: Υπάρχουν διεργασίες που ξεπερνούν τα μέτρα προστασίας του ΛΣ και μπορεί να προκαλέσουν κατάρρευση του.

• Αδιεξόδων: Υπάρχουν περιπτώσεις που λόγω εσφαλμένης ανάθεσης πόρων δημιουργούνται αδιέξοδα (παράδειγμα “πεινασμένοι φιλόσοφοι”).

• Χρονοδρομολόγησης: Υπάρχουν περιπτώσεις που διεργασίες χρησιμοποιούν σχεδόν αποκλειστικά τον επεξεργαστή και δε μπορεί να εξυπηρετήσει άλλες διεργασίες.

• Ανάκαμψη ύστερα από σφάλμα: Το υλικό θα καταρρεύσει κάποια στιγμή. Το ΛΣ θα πρέπει να φροντίσει όταν γίνει αυτό να μη καταρρεύσει.

20

Page 21: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Για περισσότερες πληροφορίες υπάρχει το μάθημα

“Λειτουργικά Συστήματα”, υποχρεωτικό σε ανώτερο εξάμηνο.

21

Page 22: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Τέλος Ενότητας

22

Page 23: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Σημείωμα Αναφοράς

• Copyright Πανεπιστήμιο Δυτικής Μακεδονίας, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Μηνάς Δασυγένης. «Αρχιτεκτονική Υπολογιστών». Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση:

https: //eclass.uowm.gr/courses/ICTE255/

23

Page 24: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων».

[1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/

Ως Μη Εμπορική ορίζεται η χρήση:

• που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο

• που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο

• που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό

24

Page 25: Αρʗιʐεκʐονική Υπολογισʐών · 2015-10-01 · Η συμβολική γλώσσα είναι ... •Αν ο προγραμματιστής θέλει η μηχανή

Πανεπιστήμιο Δυτικής Μακεδονίας

Διατήρηση Σημειωμάτων

Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει:

– το Σημείωμα Αναφοράς

– το Σημείωμα Αδειοδότησης

– τη δήλωση Διατήρησης Σημειωμάτων

– το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει)

μαζί με τους συνοδευόμενους υπερσυνδέσμους.

25