Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. ·...

59
Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή λειτουργικών συστημάτων Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών

Transcript of Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. ·...

Page 1: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εισαγωγή στα Λειτουργικά Συστήματα

Ενότητα 2: Δομή λειτουργικών συστημάτων

Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών

Page 2: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

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

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

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

2

Page 3: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Χρηματοδότηση • Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια

του εκπαιδευτικού έργου του διδάσκοντα. • Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο TEI Δυτικής

Μακεδονίας και στην Ανώτατη Εκκλησιαστική Ακαδημία Θεσσαλονίκης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού.

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

3

Page 4: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

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

• Δομή των λειτουργικών συστημάτων.

4

Page 5: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Περιεχόμενα ενότητας • Οι κατηγορίες των Λ.Σ.

• Λ.Σ. εξυπηρετητών.

• Λ.Σ. υπολογιστών χειρός.

• Λ.Σ. έξυπνων καρτών.

• Βασικές έννοιες των Λ.Σ.

• Διεργασίες.

• Αρχεία.

5

Page 6: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Οι κατηγορίες των Λ.Σ. 1. Λ.Σ. μεγάλων υπολογιστών (Mainframe OS). 2. Λ.Σ. εξυπηρετητών (Server OS). 3. Λ.Σ. πολυεπεξεργαστικών συστημάτων (Multiprocessor OS). 4. Λ.Σ. προσωπικών υπολογιστών (Personal computer OS). 5. Λ.Σ. υπολογιστών χειρός (Handheld OS). 6. Λ.Σ. ενσωματωμένων συστημάτων (Embedded OS). 7. Λ.Σ. αισθητήρων (Sensor node OS). 8. Λ.Σ. πραγματικού χρόνου (Real-time OS). 9. Λ.Σ. έξυπνων καρτών (Smart card OS).

6

Page 7: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. μεγάλων υπολογιστών (Mainframes) (1/2)

• Πολύ μεγάλοι υπολογιστές. • Βασική διαφορά: οι δυνατότητες Ε/Ε. • Προσανατολισμένα στην ταυτόχρονη

επεξεργασία πολλών εργασιών με πολλή Ε/Ε. • Εργασίες δέσμης (batch processing). • Εργασίες συναλλαγών (Transaction rocessing). • Χρονομερισμός (Timesharing).

• Παράδειγμα Λ.Σ.: OS/360 (αντικαθίστανται σταδιακά από UNIX παραλλαγές – Linux).

7

Page 8: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. μεγάλων υπολογιστών (Mainframes) (2/2)

• Χιλιάδες GB δεδομένα και εκατοντάδες δίσκους.

• Εργασίες δέσμης (batch processing):

• Επαναλαμβανόμενες εργασίες χωρίς αλληλεπίδραση με χρήστες (π.χ. επεξεργασία στοιχείων τραπεζικών κινήσεων).

• Εργασίες συναλλαγών (Transaction processing):

• Μεγάλος αριθμός από μικρές αιτήσεις χρηστών (π.χ. κρατήσεις θέσεων).

• Χρονομερισμός (Timesharing):

• Πολλοί χρήστες ταυτόχρονα (π.χ. ερωτήματα σε βάση).

8

Page 9: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. εξυπηρετητών (Servers)

• Μεγάλοι υπολογιστές. • Εξυπηρετούν ταυτόχρονα πολλούς

χρήστες, συνήθως μέσω διαδικτύου. • Εξυπηρετητές ιστού (web servers).

• Εξυπηρετητές ταχυδρομείου (mail servers).

• Εξυπηρετητές αρχείων (file servers) …

• Τυπικά Λ.Σ. εξυπηρετητών: • Solaris, FreeBSD, Linux, Windows Server, κτλ.

9

Page 10: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. πολυεπεξεργαστικών συστημάτων

• Σύνδεση πολλών CPU σε ένα σύστημα. • Απαιτήσεις διαχείρισης πολλαπλών CPU

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

• Πλέον και οι απλοί υπολογιστές χρησιμοποιούν επεξεργαστές πολλών πυρήνων (multi-core processors).

10

Page 11: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. προσωπικών υπολογιστών

• Εξυπηρετούν τις ανάγκες απλών χρηστών. • Οι σύγχρονοι προσωπικοί υπολογιστές

υποστηρίζουν πολυπρογραμματισμό, πολυνημάτωση, πολλαπλούς επεξεργαστές κτλ.

• Γνωστά Λ.Σ. προσωπικών υπολογιστών: • Windows, Linux, FreeBSD, MAC OS .

11

Page 12: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. υπολογιστών χειρός (Handheld computers)

• Ένα σύγχρονο PDA ή έξυπνο κινητό τηλέφωνο, είναι ένας μικρός Η/Υ.

• Υποστηρίζουν πλέον πολύ προγραμματισμό. • Μικρότερη οθόνη, πληκτρολόγιο (πλέον και

αφής). • CPU 32 bit. • Σκληρούς δίσκους μέχρι δεκάδων GB. • Παραδείγματα: Symbian OS, Android, Iphone

OS, Palm OS, Windows Mobile.

12

Page 13: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. Ενσωματωμένων συστημάτων (Embedded systems)

• Λ.Σ. που ελέγχουν συσκευές ειδικού σκοπού (τηλεόραση, οικιακές συσκευές, αυτοκίνητα κτλ).

• Εκτελούν μόνο συγκεκριμένο λογισμικό του κατασκευαστή. • Δεν είναι υπολογιστές γενικού σκοπού. • Δεν απειλείται από μη έμπιστο λογισμικό.

• Παραδείγματα: QNX, Vx Works και παραλλαγές του Linux.

13

Page 14: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. κόμβων αισθητήρων (Sensor nodes)

• Κόμβοι με πολύ χαμηλές δυνατότητες σε CPU,μνήμη, ενέργεια κτλ).

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

• Καθοδηγούμενα από γεγονότα (event-driven). • Οι χρήστες δεν μπορούν να εκκινήσουν προγράμ-

ματα της επιλογής τους. • Παράδειγμα Λ.Σ.: Tiny OS.

14

Page 15: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. πραγματικού χρόνου (real-time systems)

• Ο χρόνος είναι η πιο σημαντική παράμετρος • (βιομηχανικά συστήματα, αλυσίδες παραγωγής

κτλ)

• Hard-time: Απόλυτη τήρηση του χρονοδιαγράμματος (π.χ. αεροσκάφη).

• Soft-time: Περιστασιακή μη τήρηση είναι αποδεκτή (π.χ. εικόνα, ήχος). • Παράδειγμα Λ.Σ.: e-Cos.

15

Page 16: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Λ.Σ. έξυπνων καρτών (smart cards)

• Κάρτες με περιορισμένη CPU και μνήμη.

• Εκτελούν συγκεκριμένες λειτουργίες (π.χ. πληρωμή).

• Συνήθως εκτελεί εφαρμογές Java (java applets) πάνω σε διερμηνευτή (Java Virtual Machine).

• Το Λ.Σ. είναι αρκετά «πρωτόγονο» για εργασίες όπως πολυπρογραμματισμός ή διαχείριση πόρων.

16

Page 17: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Βασικές έννοιες των Λ.Σ.

• Διεργασίες (Processes). • Χώροι διευθύνσεων(Address spaces). • Αρχεία (Files). • Κέλυφος (shell).

17

Page 18: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Διεργασίες • Διεργασία = ένα πρόγραμμα που εκτελείται. • Αποτελείται από:

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

• Καταχωρητές: όπως ο μετρητής προγράμματος, και ο δείκτης στοίβας.

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

• Το Λ.Σ. διαχειρίζεται πολλές διεργασίες, διατηρώντας ένα πίνακα διεργασιών (process table).

18

Page 19: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Στο UNIX η μνήμη που αναλογεί σε κάθε διεργασία, διαιρείται σε 3 μέρη όπως φαίνεται στην εικόνα. • Η στοίβα επεκτείνεται στο χάσμα αυτόματα (προς τα κάτω). • Τα δεδομένα επεκτείνονται στο χάσμα ρητά μόνο μετά από την

κλήση συστήματος brk. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Η διεργασία στη μνήμη

19

Page 20: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Δένδρο διεργασιών (1/3)

20

Page 21: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Δένδρο διεργασιών (2/3) • Οι διεργασίες μπορούν να δημιουργηθούν:

• Είτε από το χρήστη μέσω μίας εντολής π.χ. μέσω του διερμηνευτή διαταγών (command interpreter) ή μέσω του κελύφους (shell).

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

• Οι διεργασίες ενός δένδρου πρέπει να επικοινωνούν μεταξύ τους – Δια-διεργασιακή Επικοινωνία (Inter-process Communication). • To Λ.Σ. μπορεί να στέλνει σήματα συναγερμού (alarm

signals) σε μία διεργασία, ώστε να αναστείλει την εκτέλεσή της.

21

Page 22: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 1: Δένδρο διεργασιών. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Δένδρο διεργασιών (3/3)

22

Page 23: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 2: Διεργασίες. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Διεργασίες (1/2)

23

Page 24: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 3: Διεργασίες. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Διεργασίες (2/2)

24

Page 25: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Χώροι διευθύνσεων (Μνήμη)

• Κάθε πρόγραμμα που εκτελείται, πρέπει να βρίσκεται στην κύρια μνήμη. • Το Λ.Σ. υποστηρίζει το χώρο διευθύνσεων των διεργασιών.

• Όταν βρίσκονται πολλά προγράμματα στη μνήμη ταυτόχρονα, απαιτείται προστασία.

• Τι συμβαίνει όταν ένα πρόγραμμα απαιτεί περισσότερο χώρο διευθύνσεων από ότι διαθέτει το σύστημα; • Χρήση Εικονικής μνήμης (Virtual memory). Το Λ.Σ.

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

25

Page 26: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 4: Αρχεία. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Αρχεία (1/2)

26

Page 27: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Αρχεία (2/2) • Αφαίρεση για την δημιουργία, ανάγνωση,

εγγραφή δεδομένων. • Τα αρχεία δομούνται από το Λ.Σ. σε δένδρα τα

οποία περιλαμβάνουν καταλόγους (directories) σε πολλά επίπεδα.

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

ένα αρχείο, το Λ.Σ. αντιστοιχίζει έναν μικρό ακέραιο σε κάθε αρχείο που λέγεται περιγραφέας αρχείου (file descriptor)

27

Page 28: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 5: Αρχεία. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Αρχεία (ανάρτηση - mount) (1/2)

28

Page 29: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Αρχεία (ανάρτηση - mount) (2/2)

• Στο UNIX/LINUX όλα τα αρχεία έχουν μία κοινή ρίζα (σε αντίθεση με τα windows).

• Αυτό επιτυγχάνεται με την ανάρτηση (mount) μίας μονάδας δίσκου (π.χ. CD) στον βασικό κατάλογο.

• Το UNIX/LINUX έχει επίσης τα ειδικά αρχεία (special files) τα οποία επιτρέπουν στις συσκευές Ε/Ε να φαίνονται σαν αρχεία.

• Τα ειδικά αρχεία μπλοκ μοντελοποιούν συσκευές που αποτελούνται από μπλοκ (δίσκοι).

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

29

Page 30: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Two processes connected by a pipe Παράδειγμα: cat file1 file2 file3 | sort >/del/lp. Εικόνα 6: Αρχεία. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Αρχεία (Αγωγοί ή σωληνώσεις - pipes) (1/2)

30

Page 31: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Αρχεία (Αγωγοί ή σωληνώσεις - pipes) (2/2)

• Μία σωλήνωση ή αγωγός (pipe) είναι ένα ψευδο-αρχείο το οποίο επιτρέπει σε διεργασίες να επικοινωνήσουν.

• Δημιουργείται προκαταβολικά. Η διεργασία Α γράφει στον αγωγό σαν να ήταν αρχείο και η διεργασία Β διαβάζει από τον αγωγό.

• Στο παράδειγμα, συνενώνονται τα αρχεία file1, file2, file3 με την εντολή cat (1η διεργασία). Τα αποτέλεσμα το στέλνει η σωλήνωση στη 2η διεργασία που εκκινεί η εντολή sort ώστε να ταξινομήσει τα δεδομένα και τα ανακατευθύνει στον εκτυπωτή.

31

Page 32: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Κλήσεις συστήματος - ορισμοί (1/2)

• O Kernel του Λ.Σ. αναφέρεται στο κύριο τμήμα του Λ.Σ. το οποίο υλοποιεί τις δύο βασικές οντότητες (processes και files) του Λ.Σ

• Αυτός ο κώδικας είναι προστατευμένος, με την έννοια ότι δεν ανήκει σε κανένα χρήστη (user process) . Διαφορετικά, ο κάθε χρήστης θα μπορούσε να αλλάξει αυτό τον κώδικα και έτσι να μονοπωλήσει τους πόρους του συστήματος, CPU, RAM, δίσκοι, τερματικά, κ.λπ.

32

Page 33: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Κλήσεις συστήματος -ορισμοί (2/2)

• Αυτή η προστασία επιτυγχάνεται χρησιμοποιώντας δύο τρόπους λειτουργίας: user mode και kernel mode.

• Το σύστημα βρίσκεται υπό προστασία όταν βρίσκεται σε kernel mode • Δηλαδή, ειδικές εντολές που διαχειρίζονται τους

πόρους του συστήματος μπορούν να εκτελεσθούν μόνο όταν το σύστημα λειτουργεί σε kernel mode.

• Το Λ.Σ. είναι το μόνο system s/w το οποίο εκτελείται σε kernel mode.

33

Page 34: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 7: Κλήσεις συστήματος. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις συστήματος (Παράδειγμα) (1/4)

34

Page 35: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 8: Κλήσεις συστήματος. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις συστήματος (Παράδειγμα) (2/4)

35

Page 36: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Κλήσεις συστήματος (Παράδειγμα) (3/3)

• Η διαδικασία (ρουτίνα) βιβλιοθήκης read (σε C) εκκινεί την κλήση συστήματος read (σε συμβολική γλώσσα).

• Ο μεταγλωττιστής της C ή C++ τοποθετεί τις μεταβλητές στη στοίβα (by value, με & by reference).

• Γίνεται η κλήση της ρουτίνας βιβλιοθήκης read ().

• Η ρουτίνα βιβλιοθήκης read τοποθετεί τον αριθμό της κλήσης συστήματος, σε ένα καταχωρητή που γνωρίζει το Λ.Σ..

• Εκτελείται η εντολή TRAP και γίνεται μετάβαση σε κατάσταση πυρήνα.

• Ο κώδικας του πυρήνα που εκτελείται μετά την TRAP εξετάζει τον αριθμό της της κλήσης συστήματος και μεταβιβάζει τον έλεγχο στον κατάλληλο χειριστή κλήσεων συστήματος.

36

Page 37: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Κλήσεις συστήματος (Παράδειγμα) (4/4)

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

(διαδικασία) βιβλιοθήκης. • Η ρουτίνα βιβλιοθήκης επιστρέφει στο

πρόγραμμα χρήστη. • Το πρόγραμμα χρήστη αυξάνει το δείκτη

στοίβας (Stack Pointer) ακριβώς τόσο ώστε να καθαρίσει η στοίβα από τις μεταβλητές της read.

37

Page 38: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 9: Κλήσεις συστήματος. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις συστήματος

38

Page 39: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 10: Κλήσεις συστήματος. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις συστήματος - Αρχεία

39

Page 40: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 11: Κλήσεις συστήματος- Κατάλογοι. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις Συστήματος - Κατάλογοι

40

Page 41: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 12: Κλήσεις συστήματος. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις Συστήματος (1/2)

41

Page 42: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Εικόνα 13: Κλήσεις συστήματος. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Κλήσεις Συστήματος (2/2)

42

Page 43: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Το APIWin32 των Windows (1/2)

• Ενώ στο UNIX/LINUX όλες οι ενέργειες του Λ.Σ. γίνονται μέσω συγκεκριμένων κλήσεων συστήματος, στα Windows οι ενέργειες του Λ.Σ. είναι event-driven: • To κύριο πρόγραμμα περιμένει κάποιο συμβάν και καλεί την

αντίστοιχη διαδικασία να το χειριστεί. • Υπάρχουν και εδώ κλήσεις συστήματος, αλλά σε αντίθεση με το

Unix, η αντιστοιχία κλήσεων συστήματος και διαδικασιών βιβλιοθήκης, δεν είναι 1 προς 1.

• Η Microsoft ορίζει ένα σύνολο από διαδικασίες με το όνομα Win32 API (Application Programming Interface) το οποίο χρησιμοποιούν οι προγραμματιστές για να έχουν πρόσβαση στις υπηρεσίες του Λ.Σ..

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

43

Page 44: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Το APIWin32 των Windows (2/2)

• Αριθμός κλήσεων Windows API: χιλιάδες. • Ενώ πολλές πραγματοποιούν κλήσεις

συστήματος, άλλες εκτελούνται εξολοκλήρου στο χώρο του χρήστη!

• Είναι αδύνατο να γνωρίζει κανείς αν μία κλήση είναι συστήματος (εκτελείται στον πυρήνα) ή απλή κλήση χρήστη.

44

Page 45: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Δομές Λειτουργικών Συστημάτων

• Μονολιθικά συστήματα – βασική δομή: • Η πιο διαδεδομένη οργάνωση. • Ένα κύριο πρόγραμμα το οποίο καλεί την

αιτούμενη διαδικασία εξυπηρέτησης. • Ένα σύνολο διαδικασιών υπηρεσιών (service

procedures) οι οποίες εκτελούν τις κλήσεις συστήματος.

• Ένα σύνολο βοηθητικών διαδικασιών (utility procedures) οι οποίες βοηθούν τις διαδικασίες υπηρεσιών.

45

Page 46: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Για κάθε κλήση συστήματος, υπάρχει μία κύρια διαδικασία εξυπηρέτησης, η οποία είναι υπεύθυνη για αυτή και την εκτελεί. Οι βοηθητικές διαδικασίες εκτελούν εργασίες χρήσιμες για περισσότερες από μία διαδικασίες εξυπηρέτησης, π.χ. μεταφορά δεδομένων από ένα πρόγραμμα χρήστη. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Μονολιθικά συστήματα

46

Page 47: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Structure of the THE operating system Εικόνα 14: Πολύ-επίπεδα συστήματα. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Πολύ-επίπεδα συστήματα (1/2)

47

Page 48: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Πολύ-επίπεδα συστήματα (2/2) • Γενίκευση της προηγούμενης προσέγγισης είναι η δόμηση του

Λ.Σ. σε πολλά ιεραρχικά επίπεδα (1ο το Λ.Σ. THE).

• Στην προσέγγιση αυτή, οι σχεδιαστές μπορούν να καθορίσουν τη θέση του ορίου μεταξύ πυρήνα και χρήστη. • Επίπεδο 0: διαμοίραση επεξεργαστή στις διεργασίες –

πολυπρογραμματισμός.

• Επίπεδο 1: Διαχείριση μνήμης (και δίσκου)

• Επίπεδο 2: επικοινωνία μεταξύ διεργασίας και κονσόλας (κάθε διεργασία είχε τη δική της κονσόλα χειρισμού)

• Επίπεδο 3: διαχείριση συσκευών Ε/Ε.

• Επίπεδο 4: Προγράμματα χρήστη.

• Επίπεδο 5: Χειριστής συστήματος.

48

Page 49: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Μικροπυρήνες (Microkernels) (1/2)

49

Page 50: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Μικροπυρήνες (Microkernels) (2/2)

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

• Διαίρεση του Λ.Σ. σε μικρές, καλά ορισμένες υπομονάδες, από τις οποίες μόνο ο μικροπυρήνας εκτελείται σε κατάσταση πυρήνα.

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

τους οδηγούς συσκευής.

• Ο οδηγός συσκευής καθορίζει ποιες τιμές θα γραφτούν σε ποιες θύρες Ε/Ε και καλεί τον πυρήνα.

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

50

Page 51: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Η παρουσία πυρήνα δεν είναι απαραίτητη: • Διεργασίες πελάτη και διεργασίες εξυπηρετητή. • Η επικοινωνία μεταξύ διεργασιών πελάτη και διεργασιών

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

επικοινωνούν μέσω μηνυμάτων, οι πελάτες δεν χρειάζεται να γνωρίζουν τις λεπτομέρειες στον εξυπηρετητή.

Εικόνα 15: Μοντέλο πελάτη -εξυπηρετητή. Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Μοντέλο πελάτη-εξυπηρετητή (Client-Server)

51

Page 52: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Σύστημα VM/370: • Διαχωρισμός

πολυπρογραμματισμού και εκτεταμένης (εικονικής) μηχανής.

• Βάση του συστήματος το virtual machine monitor, το οποίο εκτελείται απευθείας στο υλικό και υλοποιεί τον πολυπρογραμματισμό.

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

• Κάθε εικονική μηχανή είναι ακριβές αντίγραφο του ίδιου του υλικού

• Γίνονται δύο παγιδεύσεις: μία στην εικονική μηχανή (για την κλήση

• συστήματος) και μία στο VM monitor (για Ε/Ε στο υλικό).

Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Εικονικές μηχανές (1/2)

52

Page 53: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Πηγή: Tanenbaum, A.: Σύγχρονα Λειτουργικά Συστήματα, Εκδόσεις Κλειδάριθμος.

Εικονικές μηχανές (2/2)

53

Page 54: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Βιβλιογραφία 1. Tanenbaum κεφάλαιο 1 : 1.1 - 1.7.

Πηγή των διαφανειών τα slides από τα βιβλία και τα online-tutorials των :

1. Α. Tanenbaum.

2. W. Stallings.

Καθώς και οι online σημειώσεις των

1. Π. Κοτζανικολάου.

2. Κ. Λαμπρινουδάκη.

3. Κ. Μαργαρίτη.

4. Γ. Παπαδόπουλου.

5. Χ. Μανιφάβα.

Αll material copyright 1996-2012

All Rights Reserved

..54

Page 55: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

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

Page 56: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

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

Copyright ΤΕΙ Δυτικής Μακεδονίας, Φραγκούλης Γεώργιος. «Εισαγωγή στα Λειτουργικά Συστήματα». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: URL.

Page 57: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

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

Ως Μη Εμπορική ορίζεται η χρήση: • που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του

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

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

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

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

57

Page 58: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

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

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

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

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

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

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

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

58

Page 59: Εισαγωγή στα Λειτουργικά Συστήματα · 2016. 1. 14. · Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 2: Δομή

Σημείωμα Χρήσης Έργων Τρίτων

Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες: • Tanenbaum, A.: Σύγχρονα Λειτουργικά

Συστήματα, Εκδόσεις Κλειδάριθμος.

59