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

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

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

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


Παρουσίαση με θέμα: "Λειτουργικά Συστήματα"— Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

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

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

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

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

13 API-Runtime-Λειτουργικό

14 Παράδειγμα βιβλιοθήκης C

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

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

17 Πέρασμα σε πίνακα

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

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

20 Λειτουργία στοίβας foo1 stack foo2 foo3 execution

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

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

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

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

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

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

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

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

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 Επικοινωνία Διεργασιών
Μοντέλο κοινής μνήμης shared memory create/attach Κανονικά το λειτουργικό προσπαθεί να εμποδίσει την προσπέλαση της μνήμης μιας διεργασίας από άλλη. Για αυτό το λόγο πρέπει και οι δύο διεργασίες να συμφωνήσουν στην άρση του περιορισμού. Η μορφή των δεδομένων και η θέση καθορίζονται από τις διεργασίες και όχι από το λειτουργικό. Οι διεργασίες είναι υπεύθυνες να διασφαλίσουν ότι δε θα γράφουν στην ίδια θέση ταυτόχρονα.

31 Επικοινωνία Διεργασιών
Μηνύματα Κοινή μνήμη

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

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

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

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

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

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

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

39 MSDOS

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

41 Unix

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

43 Παράδειγμα Στρωματοποίησης

44 OS/2

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

46 Microkernels Πρώτο τέτοιο ΛΣ το Mach

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

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

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

50 Solaris

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

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

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

54 Virtual machines

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

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

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

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

59 Java Virtual Machine (JVM)

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

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


Κατέβασμα ppt "Λειτουργικά Συστήματα"

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


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