Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Υπηρεσίες ΛΣ Λειτουργικά Συστήματα. Λειτουργικά Συστήματα/ Slide 2 Υπηρεσίες ΛΣ - Διεπαφή χρήστη (CLI, batch, GUI) - Εκτέλεση προγράμματος (φόρτωση, εκτέλεση,

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Υπηρεσίες ΛΣ Λειτουργικά Συστήματα. Λειτουργικά Συστήματα/ Slide 2 Υπηρεσίες ΛΣ - Διεπαφή χρήστη (CLI, batch, GUI) - Εκτέλεση προγράμματος (φόρτωση, εκτέλεση,"— Μεταγράφημα παρουσίασης:

1 Υπηρεσίες ΛΣ Λειτουργικά Συστήματα

2 Λειτουργικά Συστήματα/ Slide 2 Υπηρεσίες ΛΣ - Διεπαφή χρήστη (CLI, batch, GUI) - Εκτέλεση προγράμματος (φόρτωση, εκτέλεση, τερματισμός) - Λειτουργίες Ε/Ε (μέσα για χειρισμό συσκευών από τους χρήστες) - Χειρισμός συστήματος αρχείων (διαχείριση δικαιωμάτων, έλεγχος πρόσβασης) - Επικοινωνίες (τοπικά ή απομακρυσμένα, με κοινή μνήμη ή πέρασμα μηνυμάτων)

3 Λειτουργικά Συστήματα/ Slide 3 Υπηρεσίες ΛΣ - Ανίχνευση σφαλμάτων (ΚΜΕ, μνήμη (σφάλμα μνήμης, διακοπή ρεύματος), συσκευές Ι/Ο (σφάλμα ισοτιμίας, αποτυχία σύνδεσης, έλλειψη χαρτιού στον εκτυπωτή), προγράμματα χρήστη (division by zero, προσπάθεια πρόσβασης σε μη νόμιμη θέση μνήμης) - Κατανομή πόρων - Πληροφορίες απολογισμού (ποιοι χρήστες χρησιμοποιούν πόσο, ποιους πόρους) - Προστασία και ασφάλεια (προστασία εξωτερικών συσκευών I/O πχ., κάρτα δικτύου από προσπάθειες μη έγκυρης πρόσβασης, καταγραφή των συνδέσεων και ανίχνευση εισβολών)

4 Λειτουργικά Συστήματα/ Slide 4 Διεπαφή χρήστη Διερμηνευτής εντολών - Κάποια ΛΣ περιλαμβάνουν τον command interpreter στον πυρήνα. Άλλα όπως τα Windows και το Unix σαν ένα ειδικό πρόγραμμα που τρέχει όταν αρχίζει μια συγκεκριμένη εργασία (Windows) ή όταν συνδεθεί ο χρήστης. - Κάποια ΛΣ (πχ. UNIX/Linux) παρέχουν πολλαπλούς διερμηνευτές οι οποίοι καλούνται φλοιοί (shells) πχ., Bourne, C, Bourne-Again κλπ.

5 Λειτουργικά Συστήματα/ Slide 5 Διεπαφή χρήστη - Σε κάποια ΛΣ ο διερμηνευτής παρέχει τον κώδικα για την εκτέλεση της εντολής. - Στο UNIX οι περισσότερες εντολές υλοποιούνται μέσω προγραμμάτων συστήματος. Πχ. Η εντολή rm file.txt ψάχνει για ένα αρχείο rm για να το φορτώσει στη μνήμη και να το εκτελέσει με παράμετρο file.txt Πλεονέκτημα: Ευκολία υλοποίησης νέων εντολών.

6 Λειτουργικά Συστήματα/ Slide 6 Διεπαφή χρήστη Γραφικά Περιβάλλοντα Χρήστη (GUI) - Διεπαφή παραθυρικού περιβάλλοντος - Ανάλογα με τη θέση του ποντικιού και το πάτημα κουμπιού καθορίζεται πιο πρόγραμμα θα εκτελεστεί ή επιλέγονται δεδομένα. - Πρώτο GUI εμφανίστηκε το 1973 από τη Xerox. Διαδόθηκαν με την έλευση των Apple Macintsh στη δεκαετία του 80. Για την ακρίβεια τo MacOS δεν παρείχε ποτέ διεπαφή γραμμής εντολών. H πρώτη έκδοση των Windows ήταν στην ουσία το ένα GUI πάνω από το MSDOS. - Στα UNIX έχουν κυριαρχήσει οι CLI, χωρίς αυτό να σημαίνει πως δεν υπάρχουν GUIs πχ. Χ-Windows ή το KDE στο linux.

7 Λειτουργικά Συστήματα/ Slide 7 Κλήσεις Συστήματος - Οι κλήσεις συστήματος παρέχουν μια διεπαφή προς τις υπηρεσίες που διατίθενται από ένα ΛΣ. - Γραμμένες συνήθως σε C, C++, Assembly Παράδειγμα Έστω ότι θέλουμε να διαβάσουμε ένα αρχείο και να το αντιγράψουμε σε ένα άλλο

8 Λειτουργικά Συστήματα/ Slide 8 Παράδειγμα κλήσεων συστήματος Απόκτηση ονόματος αρχείου εισόδου Απόκτηση ονόματος αρχείου εξόδου Άνοιγμα αρχείου εισόδου Δημιουργία αρχείου εξόδου Επανέλαβε Διάβασε δεδομένα από αρχείο εισόδου Γράψε δεδομένα σε αρχείο εξόδου Μέχρι το διάβασμα να αποτύχει Κλείσε το αρχείο εξόδου Τερμάτισε ομαλά

9 Λειτουργικά Συστήματα/ Slide 9 API Οι προγραμματιστές εφαρμογών συνήθως δε χρησιμοποιούν άμεσα κλήσεις συστήματος αλλά χρησιμοποιούν μια διεπαφή προγραμματισμού εφαρμογών (application programming interface API). To API καθορίζει ένα σύνολο συναρτήσεων που είναι διαθέσιμες στον προγραμματιστή εφαρμογών. Πιο γνωστά: Win32 API, POSIX API, Java API

10 Λειτουργικά Συστήματα/ Slide 10 Παράδειγμα πρότυπης συνάρτησης BOOL ReadFile(HANDLE file, LPVOID buffer, DWORD bytesToRead, LPDWORD bytesRead, LPOVERLAPPED ovl_ )

11 Λειτουργικά Συστήματα/ Slide 11 API Στο παρασκήνιο οι συναρτήσεις του API καλούν κλήσεις συστήματος. Για παράδειγμα η CreateProcess() του WIN32 καλεί την κλήση ΝΤCreateProcess() του Kernel. Πλεονέκτημα API vs. system calls: λιγότερη πολυπλοκότητα, μεταφερσιμότητα

12 Λειτουργικά Συστήματα/ Slide 12 Runtime support system - Παρέχει μια διεπαφή κλήσεων συστήματος. - Κάθεται ανάμεσα από το API και τις ρουτίνες του λειτουργικού. - Απαραίτητο μέρος κάθε μεταγλωττιστή. - Τυπικά με κάθε κλήση συστήματος αντιστοιχίζεται ένας αριθμός. Η διεπαφή κλήσεων συστήματος κρατά πίνακα με τους αριθμούς αυτούς καλεί την επιθυμητή κλήση μέσα στο kernel και επιστρέφει την κατάστασή της.

13 Λειτουργικά Συστήματα/ Slide 13 API-Runtime-Λειτουργικό

14 Λειτουργικά Συστήματα/ Slide 14 Παράδειγμα βιβλιοθήκης C

15 Λειτουργικά Συστήματα/ Slide 15 Τύποι κλήσεων συστήματος - Έλεγχος διεργασιών - Διαχείριση αρχείων - Διαχείριση συσκευών - Συντήρηση πληροφορίας - Επικοινωνίες

16 Λειτουργικά Συστήματα/ Slide 16 Πέρασμα παραμέτρων - Καταχωρητές - Αποθήκευση παραμέτρων σε πίνακα και πέρασμα της διεύθυνσής του σε καταχωρητή. - Στοίβα (push/pop)

17 Λειτουργικά Συστήματα/ Slide 17 Πέρασμα σε πίνακα

18 Λειτουργικά Συστήματα/ Slide 18 Λειτουργία στοίβας - Η στοίβα χρησιμοποιείται για την προσωρινή αποθήκευση τοπικών μεταβλητών κατά την κλήση υποπρογραμμάτων, για την μετάδοση παραμέτρων και αποτελεσμάτων ανάμεσα στα υποπρογράμματα και για την αποθήκευση της διεύθυνσης επιστροφής - Κάθε νέα κλήση δεσμεύει χώρο στην στοίβα για την αποθήκευση των αντίστοιχων τοπικών μεταβλητών του υποπρογράμματος. Αυτός ο χώρος αποδεσμεύεται όταν επιστρέψει το υποπρόγραμμα

19 Λειτουργικά Συστήματα/ Slide 19 Λειτουργία στοίβας - Αλυσιδωτές κλήσεις υποπρογραμμάτων, η μια μέσα από την άλλη, έχουν σαν αποτέλεσμα την επέκταση της στοίβας - Αν γίνουν πάρα πολλές αλυσιδωτές κλήσεις, η στοίβα μπορεί να γεμίσει (stack overflow) με αποτέλεσμα να τερματιστεί η διεργασία (κλασικό παράδειγμα είναι η ατέρμονη αναδρομή)

20 Λειτουργικά Συστήματα/ Slide 20 Λειτουργία στοίβας foo1 stack foo1 stack foo2 foo1 stack foo2 foo1 stack foo2 foo3 foo2 foo1 execution

21 Λειτουργικά Συστήματα/ Slide 21 Στοίβα χρήστη και συστήματος - Συνήθως, κάθε διεργασία διαθέτει δύο στοίβες: τη στοίβα του χρήστη (user stack) και τη στοίβα του συστήματος (system stack) - Η στοίβα χρήστη χρησιμοποιείται για την κλήση συναρτήσεων που αντιστοιχούν σε κώδικα του προγράμματος (των χρηστών) - Η στοίβα του συστήματος χρησιμοποιείται για την κλήση συναρτήσεων του λειτουργικού συστήματος

22 Λειτουργικά Συστήματα/ Slide 22 Στοίβα χρήστη και συστήματος * Αλλαγή από την στοίβα χρήστη στην στοίβα συστήματος γίνεται κάθε φορά που ενεργοποιείται μια κλήση συστήματος (μπορεί να υπάρξουν αλυσιδωτές κλήσεις συστήματος) * Αλλαγή από την στοίβα συστήματος στην στοίβα χρήστη γίνεται όταν επιστρέψει και η τελευταία κλήση συστήματος

23 Λειτουργικά Συστήματα/ Slide 23 Στοίβα χρήστη και συστήματος foo1 u stack foo1 sys1 foo1 sys1 foo1 sys1 sys2 execution u stack foo1 s stack sys1 u stack foo1 s stack sys1 sys2 u stack foo1 s stack sys1 s stack

24 Λειτουργικά Συστήματα/ Slide 24 Έλεγχος διεργασιών - Μια διεργασία που εκτελείται μπορεί να θέλει να φορτώσει ( load ) και να εκτελέσει ( execute ) ένα άλλο πρόγραμμα. - Για παράδειγμα ο διερμηνευτής εντολών χρειάζεται να εκτελέσει κάποιο πρόγραμμα (σύμφωνα με την εντολή που δέχεται από το χρήστη) - Η αρχική διεργασία μπορεί να χάνεται, να αποθηκεύεται (για να επιστρέψει ο έλεγχος σε αυτό) ή να εκτελείται παράλληλα με την καινούργια διαδικασία που δημιουργήθηκε.

25 Λειτουργικά Συστήματα/ Slide 25 Έλεγχος διεργασιών - Η δημιουργία γίνεται με ειδική κλήση συστήματος ( fork στο UNIX ή γενικότερα create process ) - Για να φορτωθεί το νέο πρόγραμμα και να εκτελεστεί χρησιμοποιείται η κλήση exec - Ανάλογα με τον τρόπο που δόθηκε η εντολή ο φλοιός είτε περιμένει τη διεργασία να τελειώσει ή την τρέχει στο παρασκήνιο (background). - Ο χρήστης μέσω άλλων κλήσεων συστήματος έχει τη δυνατότητα ελέγχου της εκτέλεσής της πχ., επανακαθορισμό προτεραιότητας, τερματισμός ( kill ), αναμονή για κάποιον χρόνο ή γεγονός ( wait/signal event ) - Η διεργασία τελειώνει με την κλήση exit που επιστρέφει το επίπεδο σφάλματος (0 για σωστή εκτέλεση).

26 Λειτουργικά Συστήματα/ Slide 26 Διαχείριση αρχείων Τα περισσότερα ΛΣ παρέχουν κλήσεις συστήματος για: - create / delete - open / close - read / write - reposition - get / set file attributes Επιπλέον κάποια έχουν πιο πολύπλοκες κλήσεις: - move - copy

27 Λειτουργικά Συστήματα/ Slide 27 Διαχείριση συσκευών Τα περισσότερα ΛΣ παρέχουν κλήσεις συστήματος για: - request / release - read / write - reposition Κάποια ΛΣ (πχ. Unix) αντιμετωπίζουν με ενιαίο τρόπο τα αρχεία και τις συσκευές. Για την ακρίβεια οι συσκευές είναι αρχεία (στο λογικό επίπεδο). Για να ξεχωρίσουμε ποια αρχεία είναι αρχεία συσκευών, χρησιμοποιούνται ειδικά extensions ή σώζονται σε ειδικούς καταλόγους.

28 Λειτουργικά Συστήματα/ Slide 28 Διατήρηση πληροφορίας - date - time - αριθμός συνδεδεμένων χρηστών - ποσό ελεύθερης μνήμης κλπ.

29 Λειτουργικά Συστήματα/ Slide 29 Επικοινωνία Διεργασιών Μοντέλο μηνυμάτων - Άνοιγμα σύνδεσης (όνομα σταθμού (hostname)/IP address, όνομα διεργασίας (process name)/pid) - Οι κλήσεις get hostid/processid μεταφράζουν τα ονόματα σε αναγνωριστές. - open connection/close connection - Η διεργασία παραλήπτης πρέπει να δώσει άδεια για τη σύνδεση accept connection. - Οι περισσότερες διεργασίες που δέχονται συνδέσεις τρέχουν συνεχώς στο σύστημα (διεργασίες δαίμονες process daemons) εκτελώντας μια κλήση wait for connection. - read/write message

30 Λειτουργικά Συστήματα/ Slide 30 Επικοινωνία Διεργασιών Μοντέλο κοινής μνήμης - shared memory create/attach - Κανονικά το λειτουργικό προσπαθεί να εμποδίσει την προσπέλαση της μνήμης μιας διεργασίας από άλλη. Για αυτό το λόγο πρέπει και οι δύο διεργασίες να συμφωνήσουν στην άρση του περιορισμού. - Η μορφή των δεδομένων και η θέση καθορίζονται από τις διεργασίες και όχι από το λειτουργικό. - Οι διεργασίες είναι υπεύθυνες να διασφαλίσουν ότι δε θα γράφουν στην ίδια θέση ταυτόχρονα.

31 Λειτουργικά Συστήματα/ Slide 31 Επικοινωνία Διεργασιών Μηνύματα Κοινή μνήμη

32 Λειτουργικά Συστήματα/ Slide 32 Προγράμματα Συστήματος Μερικά είναι απλές διεπαφές προς τις αντίστοιχες κλήσεις συστήματος, άλλα είναι πιο σύνθετα - Διαχείριση αρχείων - Πληροφορίες κατάστασης (μητρώο (registry), config, logging, κλπ.) - Τροποποίηση αρχείων (text editors ή εντολές) - Υποστήριξη γλωσσών προγραμματισμού (compilers, interpreters, debuggers συχνά έρχονται μαζί με το ΛΣ) - Φόρτωση και εκτέλεση προγραμμάτων (loaders) - Επικοινωνίες (μηχανισμοί για δημιουργία εικονικών συνδέσεων, mail, browsing)

33 Λειτουργικά Συστήματα/ Slide 33 Εργαλεία Συστήματος Εκτός από τα προγράμματα συστήματος τα ΛΣ έχουν επιπλέον προγράμματα για την επίλυση κοινών προβλημάτων. Συχνά ο διαχωρισμός μεταξύ προγραμμάτων και εργαλείων συστήματος (system utilities) είναι δυσδιάκριτος. - antivirus - spreadsheets - word processors - DBs κλπ

34 Λειτουργικά Συστήματα/ Slide 34 Σχεδιασμός και Υλοποίηση ΛΣ Σχεδιαστικοί στόχοι (υλικό, τύπος συστήματος κλπ) - Στόχοι χρήστη - Στόχοι συστήματος Μηχανισμοί και πολιτικές - Οι μηχανισμοί καθορίζουν το πώς θα γίνει κάτι. - Οι πολιτικές το τι θα γίνει. - Παράδειγμα: O χρονομετρητής είναι ένας μηχανισμός για τη διασφάλιση της προστασίας της ΚΜΕ. Ποια τιμή θα τεθεί είναι απόφαση της πολιτικής.

35 Λειτουργικά Συστήματα/ Slide 35 Σχεδιασμός και Υλοποίηση ΛΣ - Οι μηχανισμοί θα πρέπει να είναι όσο γίνεται πιο γενικοί ώστε να υποστηρίζουν διαφορετικές πολιτικές. - Παράδειγμα: Ένας μηχανισμός που δίνει προτεραιότητα σε κάποια προγράμματα έναντι άλλων μπορεί να υποστηρίξει μια πολιτική που δίνει προτεραιότητα σε διεργασίες με αυξημένη Ι/Ο, αλλά και την αντίθετή της.

36 Λειτουργικά Συστήματα/ Slide 36 Σχεδιασμός και Υλοποίηση ΛΣ - Οι μηχανισμοί θα πρέπει να είναι όσο γίνεται πιο γενικοί ώστε να υποστηρίζουν διαφορετικές πολιτικές. - Παράδειγμα: Ένας μηχανισμός που δίνει προτεραιότητα σε κάποια προγράμματα έναντι άλλων μπορεί να υποστηρίξει μια πολιτική που δίνει προτεραιότητα σε διεργασίες με αυξημένη Ι/Ο, αλλά και την αντίθετή της. - Case study: UNIX. Στην αρχή είχε έναν χρονοπρογραμματιστή (scheduler) καταμερισμού χρόνου. Στο Solaris o χρονοπρογραμματισμός ελέγχεται από πίνακες που φορτώνονται δυναμικά. Αναλόγως του πίνακα το σύστημα μπορεί να είναι καταμερισμού χρόνου, πραγματικού χρόνου, μαζικής επεξεργασίας κλπ

37 Λειτουργικά Συστήματα/ Slide 37 Σχεδιασμός και Υλοποίηση ΛΣ Υλοποίηση - Παλιότερα σε Assembly, πχ. MSDOS. - Σήμερα σε C/C++ πχ. Unix, Windows. - Αυξημένη ταχύτητα vs. Μεταφερσιμότητα, ευκολία στην ανάπτυξη, αποσφαλμάτωση (debugging) και συντήρηση. - Καθώς οι επεξεργαστές και οι μεταφραστές εξελίσσονται πχ. με την υποστήριξη pipelining πολλαπλών σταδίων η συγγραφή βελτιστοποιημένου κώδικα assembly από άνθρωπο γίνεται ολοένα δυσκολότερη. Πιο πιθανή είναι η βελτιστοποίηση της απόδοσης του ΛΣ μέσω ταχύτερων αλγορίθμων και δομών δεδομένων. - Code profiling

38 Λειτουργικά Συστήματα/ Slide 38 Δομή ΛΣ Απλή δομή - Συστήματα που δεν έχουν καθορισμένες δομές. - Συνήθως γράφτηκαν σαν μικρά ΛΣ και στη συνέχεια επεκτάθηκαν σε σημείο μεγαλύτερο αυτού που επέτρεπε η αρχική σχεδίασή τους. - Παράδειγμα: MSDOS. Στόχος ήταν η εξοικονόμηση χώρου. Οι διεπαφές και τα επίπεδα λειτουργικότητας δεν είναι καλά καθορισμένα. Για παράδειγμα τα προγράμματα εφαρμογών μπορούν να προσπελάσουν απευθείας ρουτίνες I/O για να γράψουν στην οθόνη ή το δίσκο. - Σχεδίαση ευάλωτη σε επιθέσεις.

39 Λειτουργικά Συστήματα/ Slide 39 MSDOS

40 Λειτουργικά Συστήματα/ Slide 40 Δομή ΛΣ - Οι αρχικές εκδόσεις του UNIX ήταν επίσης μονολιθικές. - Δύο ξεχωριστά τμήματα: πυρήνας, προγράμματα συστήματος. - Ο πυρήνας παρέχει το σύστημα αρχείων, το χρονοπρογραμματισμό της ΚΜΕ, διαχείριση μνήμης κλπ. - Συνολικά τεράστιο ποσό λειτουργικότητας για ένα μόνο επίπεδο.

41 Λειτουργικά Συστήματα/ Slide 41 Unix

42 Λειτουργικά Συστήματα/ Slide 42 Δομή ΛΣ Πολυεπίπεδη προσέγγιση (layered approach) - To ΛΣ χωρίζεται σε έναν αριθμό από επίπεδα-στρώματα (layers ή levels), κάθε ένα από τα οποία χτίζεται πάνω από υπάρχοντα επίπεδα. Το κάτω επίπεδο (επίπεδο 0), είναι το υλικό, ενώ το υψηλότερο (επίπεδο N) είναι η διεπαφή επικοινωνίας χρήστη-υπολογιστή (user interface) - Με την τμηματοποίηση (modularity), τα επίπεδα επιλέγονται έτσι ώστε το καθένα να χρησιμοποιεί λειτουργίες και υπηρεσίες μόνο από τα χαμηλότερα επίπεδα

43 Λειτουργικά Συστήματα/ Slide 43 Παράδειγμα Στρωματοποίησης

44 Λειτουργικά Συστήματα/ Slide 44 OS/2

45 Λειτουργικά Συστήματα/ Slide 45 Δομή ΛΣ Πλεονεκτήματα layered approach: - Απλότητα κατασκευής - Ευκολία στον έλεγχο λαθών Μειονεκτήματα - Ο διαχωρισμός σε επίπεδα μπορεί να είναι δύσκολος. Παράδειγμα: O οδηγός του χώρου εικονικής μνήμης κανονικά θα βρισκόταν πάνω από το scheduler, επειδή μπορεί ενόσω περιμένει για I/O η ΚΜΕ να επαναχρονοπρογραμματιστεί στο διάστημα αυτό. Σε πολλά συστήματα όμως o scheduler είναι πολύπλοκος και κρατά πολλές πληροφορίες για τις διεργασίες που θα πιθανώς να πρέπει να τοποθετηθούν στη μνήμη. - Λιγότερο αποδοτικές (καθυστερήσεις μεταξύ επιπέδων)

46 Λειτουργικά Συστήματα/ Slide 46 Microkernels - Πρώτο τέτοιο ΛΣ το Mach - ΙΔΕΑ: Μετακίνησε όσο γίνεται περισσότερη λειτουργικότητα στο χώρο χρήστη. Τυπικά κράτα στο επίπεδο του microkernel κάποιες λειτουργίες επικοινωνίας και μια ελάχιστη διαχείριση εργασιών και μνήμης. - Η κύρια λειτουργικότητα του μικροπυρήνα είναι να παρέχει ένα μέσο επικοινωνίας (με μηνύματα) μεταξύ των προγραμμάτων χρηστών και των διαφόρων υπηρεσιών οι οποίες τρέχουν σε χώρο χρήστη ανταλλάσοντας μηνύματα μέσω του microkernel.

47 Λειτουργικά Συστήματα/ Slide 47 Microkernels - Τα ΛΣ που βασίζονται σε μικροπυρήνες (microkernel) διαχωρίζουν στο έπακρο τους μηχανισμούς από την πολιτική. - Υλοποιούν ένα σύνολο βασικών δομικών τμημάτων (blocks) τα οποία δεν έχουν σχεδόν καμία πολιτική. - Πολιτικές και πιο προχωρημένοι μηχανισμοί μέσω αρθρωτών τμημάτων πυρήνα (modules) ή προγραμμάτων χρήστη.

48 Λειτουργικά Συστήματα/ Slide 48 Microkernels Πλεονεκτήματα - Όλες οι νέες υπηρεσίες που προστίθενται δε χρειάζονται τροποποίηση του microkernel - Ευκολότερες αλλαγές στο ΛΣ και ευκολότερη μεταφορά του σε άλλα συστήματα. - Αν μια υπηρεσία αστοχήσει το υπόλοιπο ΛΣ παραμένει ανεπηρέαστο. Μειονεκτήματα - Απόδοση πχ. Windows NT vs. 95 και XP

49 Λειτουργικά Συστήματα/ Slide 49 Αρθρωτά τμήματα (modules) - Τα περισσότερα σύγχρονα λειτουργικά συστήματα υλοποιούν δομικά τμήματα πυρήνα (kernel modules) n Χρησιμοποιείται η αντικειμενοστραφής προσέγγιση n Το κάθε τμήμα είναι ξεχωριστό n Το κάθε ένα μιλάει στο άλλο μέσα από γνωστές διεπαφές (interfaces) n Το κάθε τμήμα μπορεί να φορτωθεί στον πυρήνα με βάση τις ανάγκες ή κατά την εκκίνηση ή κατά την εκτέλεση

50 Λειτουργικά Συστήματα/ Slide 50 Solaris

51 Λειτουργικά Συστήματα/ Slide 51 Αρθρωτά τμήματα (modules) - Συνολικά, παρόμοιο με τα επίπεδα (από την άποψη ότι κάθε τμήμα του πυρήνα έχει καθορισμένη και προστατευμένη διεπαφή) αλλά περισσότερο ευέλικτο (από την άποψη ότι ένα τμήμα μπορεί να καλέσει οποιοδήποτε άλλο) - Παρόμοιο και με τους μικροπυρήνες (από την άποψη ότι το βασικό τμήμα έχει περιορισμένες λειτουργίες και τη γνώση για το πώς να φορτώνει και να επικοινωνεί τα υπόλοιπα τμήματα) πιο αποδοτικό όμως γιατί η επικοινωνία δε γίνεται μέσω μηνυμάτων.

52 Λειτουργικά Συστήματα/ Slide 52 Virtual machines - Μια λογική αφαίρεση του υλικού του υπολογιστή σε διαφορετικά περιβάλλοντα εκτέλεσης - Το ΛΣ παρέχει την ψευδαίσθηση των πολλαπλών διεργασιών, όπου η κάθε μια εκτελείται στο δικό της επεξεργαστή με τη δικιά της (ιδεατή) μνήμη - Παράδειγμα: VMware της ΙΒΜ

53 Λειτουργικά Συστήματα/ Slide 53 Virtual machines - Οι πόροι του ΥΣ διαμοιράζονται προκειμένου να δημιουργήσουν τις ιδεατές μηχανές n Ο χρονοπρογραμματισμός της ΚΜΕ, μπορεί να δώσει την εντύπωση ότι οι χρήστες έχουν δικό τους επεξεργαστή n Η παροχέτευση και ένα σύστημα αρχείων μπορούν να παρέχουν ιδεατούς αναγνώστες καρτών και ιδεατούς εκτυπωτές n Ένα κανονικό τερματικό χρήστη σε ένα σύστημα καταμερισμού χρόνου λειτουργεί ως η κονσόλα του χειριστή της ιδεατής μηχανής

54 Λειτουργικά Συστήματα/ Slide 54 Virtual machines

55 Λειτουργικά Συστήματα/ Slide 55 Virtual machines Εικονικός τρόπος λειτουργίας χρήστη & πυρήνα. Κλήση συστήματος πάνω από VM - Προκαλεί στην πραγματική μηχανή μεταφορά στον ελεγκτή (monitor) του VM. - To monitor αλλάζει την κατάσταση της εικονικής μηχανής - Επανεκκινεί τη VM σε εικονικό τρόπο λειτουργίας πυρήνα.

56 Λειτουργικά Συστήματα/ Slide 56 Virtual machines - Η έννοια της ιδεατής μηχανής παρέχει πλήρη προστασία των πόρων του συστήματος αφού η κάθε ιδεατή μηχανή είναι πλήρως απομονωμένη από τις άλλες ιδεατές μηχανές. Αυτή η απομόνωση πάντως, δεν επιτρέπει άμεσο διαμοιρασμό πόρων. - Ένα σύστημα ιδεατής μηχανής είναι το τέλειο όχημα για έρευνα και ανάπτυξη στην περιοχή των ΛΣ. Η ανάπτυξη του συστήματος γίνεται στην ιδεατή μηχανή, αντί για την πραγματική και έτσι δεν διασπάται η κανονική λειτουργία του συστήματος

57 Λειτουργικά Συστήματα/ Slide 57 Virtual machines - Η έννοια των ιδεατών μηχανών είναι δύσκολη στην υλοποίηση λόγω του φόρτου που απαιτείται για την παροχή ενός πιστού αντιγράφουν της υφιστάμενης μηχανής.

58 Λειτουργικά Συστήματα/ Slide 58 Java Virtual Machine (JVM) - Τα μεταγλωττισμένα προγράμματα Java είναι bytecodes ανεξάρτητα πλατφόρμας που εκτελούνται από την ιδεατή μηχανή Java (Java Virtual Machine – JVM) - H JVM αποτελείται από: n φορτωτή κλάσεων n επαληθευτή (class verifier) n διερμηνέας σε χρόνο εκτέλεσης (run-time interpreter) - Αύξηση της απόδοσης με μεταγλωττιστές Just-In- Time (JIT) που παράγουν κώδικα μηχανής όταν μια κλάση φορτώνεται για πρώτη φορά στο σύστημα

59 Λειτουργικά Συστήματα/ Slide 59 Java Virtual Machine (JVM)

60 Λειτουργικά Συστήματα/ Slide 60.ΝΕΤ - Τα προγράμματα που αναπτύσσονται σε.ΝΕΤ περιβάλλον (C#, VB κλπ.) μεταγλωττίζονται σε μια ενδιάμεση γλώσσα ανεξάρτητη υλικού (Microsoft intermediate laguage MS-IL). - Επέκταση.ΕΧΕ ή. DLL - Η εικονική μηχανή.ΝΕΤ υλοποιείται από το CLR (Common Language Runtime) - Κατά την εκτέλεση το CLR μετατρέπει τις MS-IL εντολές σε εντολές κατάλληλες για το σύστημα μέσω just-in-time μεταγλωττιστή

61 Λειτουργικά Συστήματα/ Slide 61 Γέννηση ΛΣ - Τα ΛΣ είναι ρυθμισμένα να λειτουργούν σε οποιοδήποτε από μια κλάση μηχανημάτων. Το σύστημα πρέπει να διαμορφωθεί (configured) για κάθε συγκεκριμένο ΥΣ - Το πρόγραμμα SYSGEN συλλέγει πληροφορίες που αφορούν τη συγκεκριμένη συγκρότηση του υλικού - Εκκίνηση (Booting) – εκκίνηση ενός ΥΣ με τη φόρτωση του πυρήνα - Πρόγραμμα Bootstrap – κώδικας που φυλάσσεται στη ROM που είναι σε θέση να εντοπίσει τον κώδικα του ΛΣ, να τον φορτώσει στη μνήμη και να αρχίσει την εκτέλεσή του


Κατέβασμα ppt "Υπηρεσίες ΛΣ Λειτουργικά Συστήματα. Λειτουργικά Συστήματα/ Slide 2 Υπηρεσίες ΛΣ - Διεπαφή χρήστη (CLI, batch, GUI) - Εκτέλεση προγράμματος (φόρτωση, εκτέλεση,"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google