ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Σχετικά έγγραφα
Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Λιβανός Γιώργος Εξάμηνο 2017Β

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

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

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Εισαγωγή στην Πληροφορική

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Κεφάλαιο 4: Λογισμικό Συστήματος

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Λειτουργικά Συστήματα (ΗΥ321)

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΛΟΓΙΣΜΙΚΟ (software)

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Κεφάλαιο 4. Λογισμικό Συστήματος

Διαφορές single-processor αρχιτεκτονικών και SoCs

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

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

Εισαγωγή στην Πληροφορική

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

Πληροφορική 2. Λειτουργικά Συστήματα

Εισαγωγή στην Πληροφορική

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

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

Σχεδίαση και Υλοποίηση Μηχανισμού Μεταφοράς Δεδομένων από Συσκευές Αποθήκευσης σε Δίκτυο Myrinet, Χωρίς τη Μεσολάβηση της Ιεραρχίας Μνήμης

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Για τη δηµιουργία των διαφανειών έχει χρησιµοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne,

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

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

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

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

Λειτουργικά Συστήματα (ΗΥ321)

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

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εισαγωγικά & Βασικές Έννοιες

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Κεφάλαιο 3. Διδακτικοί Στόχοι

Λειτουργικά συστήματα πραγματικού χρόνου

Εικονική Μνήμη (Virtual Μemory)

ΕΙΣΑΓΩΓΗ ΣΥΣΤΑΤΙΚΑ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

Εισαγωγή στην Πληροφορική & τον Προγραμματισμό

Προγραμματισμός Η/Υ. Λογισμικό. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

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

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

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

Κύριες Υπηρεσίες ενός ΛΣ

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 1

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

ΚΕΦΑΛΑΙΟ 4 ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ. ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ-MSc

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

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

ΗΜΥ 313: Τεχνολογία Λειτουργικών Συστηµάτων

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

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

Λειτουργικά Συστήματα (ΗΥ321)

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 1 : Λειτουργικά συστήματα. Δρ.

Επιτεύγµατα των Λ.Σ.

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

Information Technology for Business

Εξετάσεις Προόδου 8/1/2014 Τεχνικός Εφαρμογών Πληροφορικής (Πολυμέσα/ Web designer - developper/video games)

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Εισαγωγικά & Βασικές Έννοιες

Κεφάλαιο 1ο Πολυπρογραμματισμός Πολυδιεργασία Κατηγορίες Λειτουργικών Συστημάτων

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Λογισμικό - Προγράμματα

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Περιγραφή και Έλεγχος ιεργασιών

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος

Εισαγωγή στην Επιστήμη των Υπολογιστών

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

Μάθημα 8: Διαχείριση Μνήμης

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

Transcript:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 1 ΕΙΣΑΓΩΓΗ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που αποτελεί και το βασικό εγχειρίδιο αναφοράς. Βιβλιογραφία: Σύγχρονα Λειτουργικά Συστήματα, A.S. Tanenbaum, 3 η έκδ., Κλειδάριθμος, 2009. Λειτουργικά Συστήματα, W. Stallings, 8 η έκδ., Τζιόλα, 2015.

Στόχοι Η διάλεξη αυτή έχει ως στόχο να εισάγει τον σπουδαστή στις βασικές έννοιες των λειτουργικών συστημάτων, και ειδικότερα να γνωρίσει: τα βασικά χαρακτηριστικά και τη δομή των λειτουργικών συστημάτων τις εφαρμογές των λειτουργικών συστημάτων στα διάφορα υπολογιστικά συστήματα 2

Ενότητες Υπολογιστικό Σύστημα (ΥΣ) Λειτουργικό Σύστημα (ΛΣ) Κατηγορίες Λειτουργικών Συστημάτων Κύριες Υπηρεσίες Λειτουργικών Συστημάτων Κλήσεις Συστήματος Δομές Λειτουργικών Συστημάτων Σχεδίαση και Υλοποίηση Λ.Σ. 3

Υπολογιστικό Σύστημα Υλικό (hardware) Λογισμικό (software) Προγράμματα συστήματος (system programs) Προγράμματα εφαρμογών (application programs) 4

Υλικό (hardware) Στοιχεία Υπολογιστικών Συστημάτων Παρέχει βασικούς υπολογιστικούς πόρους (επεξεργαστή, μνήμη, συσκευές εισόδου/εξόδου) Λειτουργικό σύστημα (operating system) Διαχειρίζεται τη λειτουργία όλων των πόρων (υλικού & λογισμικού) του υπολογιστικού συστήματος Προγράμματα Καθορίζουν τους τρόπους με τους οποίους χρησιμοποιούνται οι πόροι για την επίλυση των υπολογιστικών προβλημάτων των χρηστών Χρήστες 5

Λειτουργικό Σύστημα ΛΣ: Σύνολο προγραμμάτων που λειτουργεί ως ενδιάμεσος μεταξύ του χρήστη και των πόρων του υπολογιστικού συστήματος Στόχοι : Εκτέλεση προγραμμάτων χρηστών Ευκολία χρήσης του υπολογιστικού συστήματος Διαχείριση των πόρων με αποτελεσματικό & αποδοτικό τρόπο Προστασία των προγραμμάτων και δεδομένων 6

Ορισμός Λειτουργικού Συστήματος Το ΛΣ ως εκτεταμένη μηχανή (extended/virtual machine) Απόκρυψη από το χρήστη της δομής και πολυπλοκότητας του υλικού. Π.χ.: η παρουσίαση μιας απλής και εύχρηστης απεικόνισης από ονόματα και λειτουργίες χειρισμού αρχείων και καταλόγων η παρουσίαση της μνήμης στα προγράμματα των χρηστών Το ΛΣ ως διαχειριστής της ανάθεσης πόρων (resource allocation) Διαχείριση της κατανομής των πόρων τους συστήματος στις απαιτήσεις των προγραμμάτων. Π.χ.: η διαχείριση του επεξεργαστή σε πολυδιεργασιακά και ιδιαίτερα σε πολυπύρηνα συστήματα η διαχείριση και προστασία της μνήμης, ιδιαίτερα σε συστήματα που εξυπηρετούν ταυτόχρονα πολλούς χρήστες η χρήση περιφερειακών πόρων όπως του εκτυπωτή, όπου θα πρέπει να εξυπηρετεί όλες τις διεργασίες που απαιτούν ταυτόχρονα τον εκτυπωτή 7

Ορισμός ΛΣ από σχεδιαστική άποψη Top down view Προσεγγίζοντας το ΛΣ από τη κορυφή (χρήστης) προς τη βάση (υλικό), ο ρόλος του είναι να παρέχει στα προγράμματα εύκολη και αποδοτική επικοινωνία με τους πόρους του ΥΣ. Bottom up view Προσεγγίζοντας το ΛΣ από τη βάση προς την κορυφή, μέριμνα του ΛΣ είναι να παρέχει μια συστηματοποιημένη και ελεγχόμενη κατανομή των επεξεργαστών, των μνημών, και των άλλων συσκευών εισόδου/εξόδου, ανάμεσα στα διάφορα προγράμματα που ανταγωνίζονται μεταξύ τους για να τα χρησιμοποιήσουν. 8

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

Κατηγορίες Λειτουργικών Συστημάτων μεγάλων υπολογιστών διακομιστών πολυεπεξεργαστών προσωπικών υπολογιστών φορητών συσκευών ενσωματωμένων υπολογιστών κόμβων αισθητήρων πραγματικού χρόνου έξυπνων καρτών 10

Κύριες υπηρεσίες ΛΣ Διαχείριση διεργασιών (Process Management) Διαχείριση κύριας μνήμης (Main Memory Management) Διαχείριση αρχείων (File Management) Διαχείριση συστήματος Εισόδου/Εξόδου (I/O Management) Διαχείριση χώρου μόνιμης αποθήκευσης (Storage Management) Σύστημα προστασίας (Protection System Management) 11

Διαχείριση διεργασιών Μια διεργασία (process) είναι ένα πρόγραμμα που εκτελείται. Μια διεργασία για να εκτελεστεί χρειάζεται συγκεκριμένους πόρους, που περιλαμβάνουν χρόνο στην ΚΜΕ, χώρο στη μνήμη, αρχεία, μονάδες I/O, κ.α.. Το ΛΣ έχει τις ακόλουθες αρμοδιότητες όσον αφορά στη διαχείριση διεργασιών: Δημιουργία και τερματισμός διεργασιών Διακοπή και επανεκκίνηση διεργασιών Μηχανισμοί συγχρονισμού & επικοινωνίας διεργασιών 12

Διαχείριση κύριας μνήμης Η μνήμη γίνεται αντιληπτή ως ένας συνεχόμενος χώρος από λέξεις (αριθμός από bytes) καθένα με τη δική του διεύθυνση. Αποτελεί αποθήκη γρήγορα προσπελάσιμων δεδομένων που μοιράζονται μεταξύ της ΚΜΕ και των συσκευών Ι/Ο. Η κύρια μνήμη είναι μονάδα προσωρινής αποθήκευσης Το ΛΣ είναι επιφορτισμένο με τις ακόλουθες δραστηριότητες όσον αφορά στη διαχείριση μνήμης: Προσδιορισμός των τμημάτων μνήμης που χρησιμοποιούνται Διαμοιρασμός των τμημάτων μνήμης στις διεργασίες Φόρτωση διεργασιών όταν ελευθερώνεται μνήμη Ανάθεση και αφαίρεση χώρου στη μνήμη 13

Διαχείριση αρχείων και καταλόγων Ένα αρχείο είναι μια συλλογή συσχετισμένων πληροφοριών, όπως ορίζονται από το δημιουργό τους. Το ΛΣ είναι επιφορτισμένο με τις ακόλουθες δραστηριότητες όσον αφορά τη διαχείριση αρχείων: Δημιουργία και διαγραφή αρχείων Δημιουργία και διαγραφή καταλόγων (ή φακέλων) Υποστήριξη λειτουργιών χειρισμού καταλόγων και αρχείων Αντιστοίχηση αρχείων στη δευτερεύουσα μνήμη Αντίγραφα ασφαλείας αρχείων σε μόνιμα αποθηκευτικά μέσα 14

Διαχείριση χώρου μόνιμης αποθήκευσης Λόγω του ότι η κύρια μνήμη είναι προσωρινή και μικρή για να στεγάσει μόνιμα όλα τα προγράμματα και τα δεδομένα, το ΥΣ πρέπει να έχει δευτερεύουσα μνήμη για την «υποστήριξη» της κύριας. Τα ΛΣ χρησιμοποιούν το σκληρό δίσκο ως το βασικό μέσο αποθήκευσης, τόσο για προγράμματα όσο και για δεδομένα. Το ΛΣ είναι επιφορτισμένο με τις ακόλουθες δραστηριότητες όσον αφορά τη διαχείριση του δίσκου: Διαχείριση ελεύθερου χώρου Ανάθεση χώρου αποθήκευσης Χρονοπρογραμματισμός δίσκου (disk scheduling) 15

Διαχείριση Εισόδου / Εξόδου (Ι/Ο) Το σύστημα εισόδου / εξόδου αποτελείται από: Ένα σύστημα προσωρινής / ενδιάμεσης αποθήκευσης (buffercaching system) Μια διασύνδεση γενικής χρήσης για τον αντίστοιχο οδηγό συσκευής (a general device-driver interface) Οδηγούς για τις διάφορες συσκευές 16

Σύστημα προστασίας Ο όρος προστασία (protection) αναφέρεται σε ένα μηχανισμό για τον έλεγχο πρόσβασης διεργασιών ή χρηστών τόσο σε πόρους συστήματος ή χρηστών. Ο μηχανισμός προστασίας πρέπει: να μπορεί να διακρίνει μεταξύ της εξουσιοδοτημένης και μη πρόσβασης να προσδιορίζει τους ελέγχους που πρέπει να επιβληθούν να παρέχει τρόπο επιβολής τους 17

Κλήσεις συστήματος (System Calls) Μια κλήση συστήματος είναι ο τρόπος με τον οποίο ένα πρόγραμμα που εκτελείται σε κατάσταση χρήστη (user mode) ζητά από ένα προστατευμένο πρόγραμμα που βρίσκεται σε κατάσταση πυρήνα (kernel mode) να το εξυπηρετήσει. Τα προγράμματα που εκτελούνται σε κατάσταση πυρήνα εξυπηρετούν τα προγράμματα/διεργασίες που εκτελούνται σε κατάσταση χρήστη, κάνοντας τους απαραίτητους ελέγχους ασφαλείας. Οι κλήσεις συστήματος παρέχουν τη διασύνδεση (interface) μεταξύ ενός προγράμματος που εκτελείται και του ΛΣ. Γενικώς, διαθέσιμα ως ρουτίνες σε γλώσσα assembly. Οι γλώσσες που έχουν οριστεί να αντικαταστήσουν την assembly στον προγραμματισμό συστήματος (system programming) επιτρέπουν την απευθείας επίκληση κλήσεων συστήματος (π.χ., C, C++) μέσω αντίστοιχων βιβλιοθηκών. 18

Βήματα δημιουργίας κλήσης συστήματος Παράδειγμα: της κλήσης συστήματος read (fd, buffer, nbytes) 19

Η κλήση συστήματος στο Linux kernel 20

Διάφοροι τύποι κλήσεων συστήματος Διαχείριση διεργασιών (Process management) Διαχείριση μνήμης (Memory management) Διαχείριση καταλόγων και συστήματος αρχείων (File management) Διαχείριση συσκευών (Device management) Διατήρηση πληροφοριών (Information maintenance) Επικοινωνίες (Communications) 21

Παραδείγματα κλήσεων συστήματος 22

23

Πρόσβαση στις υπηρεσίες του συστήματος Τα ΛΣ διαχειρίζονται τους πόρους του ΥΣ και παρέχουν αφαιρέσεις στα προγράμματα του χρήστη. Η διασύνδεση μεταξύ των προγραμμάτων του χρήστη και του ΛΣ αφορά κυρίως το χειρισμό αυτών των αφαιρέσεων μέσα από κλήσεις συστήματος. Πολλά σύγχρονα λειτουργικά συστήματα διαθέτουν κλήσεις συστήματος που επιτελούν αυτές τις ίδιες λειτουργίες. Π.χ. στα UNIX, System V, BSD, Linux, κ.α. το πρότυπο POSIX (διεθνές πρότυπο 9945-1) καθορίζει ένα αριθμό από διαδικασίες που όλα τα συμβατά συστήματα πρέπει να παρέχουν. Στα Windows το Win32/Win64 API (Application Program Interface) αποτελεί το σύνολο από διαδικασίες μέσα από τις οποίες δίνεται πρόσβαση σε υπηρεσίες του λειτουργικού συστήματος. 24

Παραδείγματα κλήσεων συστήματος 25

Windows και UNIX Processes & Threads Χαρακτηριστικό Windows UNIX Πρωταρχικός μηχανισμός Threads Processes Ναι Ναι Threads Performance Ναι Καλύτερη στη δημιουργία νημάτων. Process hierarchy Όχι Ναι Processes Ναι, αλλά διαφορετικές υλοποιήσεις. Καλύτερη στη δημιουργία διεργασιών. Security inherited Ναι Ναι (εκτός setuid) 26

64-bit Windows 64-bit Windows υποστηρίζουν περισσότερη μνήμη μέχρι 16TBs RAM (32-bit υποστηρίζουν μέχρι 4GBs), και συνεπώς: Περισσότερες εφαρμογές εκτελούνται ταυτόχρονα και παραμένουν εξολοκλήρου στην κύρια μνήμη του συστήματος. Εφαρμογές που παραμένουν (resident) στην κύρια μνήμη έχουν καλύτερη απόδοση. Εφαρμογές με απαιτήσεις σε δεδομένα (data-intensive), όπως π.χ. βάσεις δεδομένων και γραφικά, επωφελούνται καθώς μπορούν να αποθηκεύσουν και να διαχειριστούν μεγαλύτερο πλήθος δεδομένων πιο εύκολα και πιο αξιόπιστα. Εφαρμογές υψηλών επιδόσεων (high-performance computing applications) επωφελούνται καθώς απαιτούν περισσότερη μνήμη για υψηλής ακρίβειας υπολογισμούς. 27

Δομές Λειτουργικών Συστημάτων Μονολιθικά συστήματα Πολυεπίπεδα συστήματα Συστήματα με ελάχιστο πυρήνα (Μικροπυρήνες) Συστήματα πελάτη-εξυπηρετητή (client-server) Ιδεατές/εικονικές μηχανές 28

Μονολιθική προσέγγιση To ΛΣ αποτελείται από ουσιαστικά ένα μεγάλο κομμάτι κώδικα και πρόσβαση στις λειτουργίες του ΛΣ δίνεται μέσω από μια μοναδική και αρκετά εκτεταμένη διεπαφή προγραμματισμού. Ακόμα και αν υπάρχουν ξεχωριστά τμήματα κώδικα (που μεταφράζονται ξεχωριστά) υπάρχει αρκετά μεγάλη εξάρτηση ανάμεσα τους (σε επίπεδο δομών δεδομένων ή/και αλγορίθμων). Για να αλλάξει μια λειτουργία του ΛΣ πρέπει συνήθως να γίνουν αλλαγές σε πολλά διαφορετικά τμήματα του κώδικα. Κυρίως πρόγραμμα που καλεί την αιτούμενη διαδικασία εξυπηρέτησης. Ένα σύνολο διαδικασιών εξυπηρέτησης που υλοποιούν τις κλήσεις συστήματος. Ένα σύνολο διαδικασιών υπηρεσίας που βοηθούν τις διαδικασίες εξυπηρέτησης. 29

Δομή του ΛΣ Unix 30

Πολυεπίπεδη προσέγγιση (Layered Approach) Τo ΛΣ χωρίζεται σε έναν αριθμό από επίπεδα-στρώματα (layers ή levels), κάθε ένα από τα οποία χτίζεται πάνω από υπάρχοντα επίπεδα. Το κάτω επίπεδο (π.χ. επίπεδο 0), είναι το υλικό. Tο υψηλότερο (π.χ. N) είναι η διεπαφή επικοινωνίας με τον χρήστη (user interface). Δομή του ΛΣ OS/2 31

Δομή του ΛΣ. Android OS (layered) 32

Προσέγγιση Μικροπυρήνα (Microkernel Architecture) Μετακινεί περισσότερες λειτουργίες στο χώρο του χρήστη (user space). Πλεονεκτήματα: ευκολότερη και πιο ευέλικτη επεκτασιμότητα του ΛΣ ευκολότερη η μεταφορά του ΛΣ σε νέες αρχιτεκτονικές μεγαλύτερη αξιοπιστία και ασφάλεια Δομή του ΛΣ MINIX 33

Προσέγγιση πελάτη-εξυπηρετητή (Client-Server) Το ΛΣ αποτελείται από μια ομάδα εξυπηρετητών (servers). Κάθε εξυπηρετητής του ΛΣ ανοίγει ένα κανάλι / δίαυλο επικοινωνίας και περιμένει να λάβει αιτήσεις από πελάτες (προγράμματα). Ένας εξυπηρετητής είναι είτε σειριακός (iterative) όπου επεξεργάζεται μια αίτηση κάθε φορά (οι αιτήσεις των πελατών τοποθετούνται σε ουρές αναμονής), είτε παράλληλος (concurrent) όπου επεξεργάζεται πολλές αιτήσεις ταυτόχρονα. Τα προγράμματα πελάτες (clients) επικοινωνούν με το ΛΣ στέλνοντας αιτήσεις στις διευθύνσεις των αντίστοιχων εξυπηρετητών και λαμβάνοντας τα αποτελέσματα. Δομή του ΛΣ NT 34

Ιδεατές/εικονικές μηχανές (Virtual Machines) Μια ιδεατή μηχανή (virtual machine) παρουσιάζει το υλικό και τον πυρήνα του ΛΣ ως να ήταν όλα υλικό. Μια ιδεατή μηχανή παρέχει μια προσαρμογή (interface) πανομοιότυπη με το υφιστάμενο υλικό. Το ΛΣ παρέχει την ψευδαίσθηση των πολλαπλών διεργασιών, όπου η κάθε μια εκτελείται στο δικό της επεξεργαστή με τη δικιά της (ιδεατή) μνήμη. Οι πόροι του ΥΣ διαμοιράζονται προκειμένου να δημιουργήσουν τις ιδεατές μηχανές. Ο χρονοπρογραμματισμός της ΚΜΕ, μπορεί να δώσει την εντύπωση ότι οι χρήστες έχουν δικό τους επεξεργαστή Ένα κανονικό τερματικό χρήστη σε ένα σύστημα καταμερισμού χρόνου λειτουργεί ως η κονσόλα του χειριστή της ιδεατής μηχανής 35

Παράδειγμα: VMware 36

Στόχοι του Λ.Σ.: Ανάπτυξη ΛΣ για το Χρήστη: πρέπει να είναι εύκολο στη χρήση, στη μάθηση, αξιόπιστο, ασφαλές και γρήγορο. για το Σύστημα: πρέπει να είναι εύκολο στην υλοποίηση, τη συντήρηση, ευέλικτο, αξιόπιστο, και αποδοτικό. Παραδοσιακά τα ΛΣ αναπτύσσονταν σε γλώσσες assembly, πλέον όμως αναπτύσσονται σε γλώσσες υψηλότερου επιπέδου (C/C++), καθώς ο κώδικας που γράφεται σε μια γλώσσα υψηλότερου επιπέδου: μπορεί να γραφτεί γρηγορότερα είναι εύκολος στην κατανόηση είναι πιο εύκολος στην αποσφαλμάτωση (debugging) ευκολότερα μεταφέρεται σε άλλες αρχιτεκτονικές 37