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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Λειτουργικό Σύστημα (Operating System) 1o μέρος
Advertisements

UNIX.
Δουλεύοντας με τα Windows
ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΕΡΓΑΣΙΩΝ
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Λειτουργικό Σύστημα ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ENOTHTA B.1.3 (1)
Ιστορία του Ιντερνετ.
Δομή Μαθήματος Υπεύθυνος: Δρ Ν. Πετρέλλης, ΠΔ407
Συστήματα εισόδου/εξόδου
Η επιστήμη των υπολογιστών
Λειτουργικά Συστήματα
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ Κεφάλαιο 4 ο Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Το υλικο του Υπολογιστη
Λειτουργικό Σύστημα 2ο μέρος.
Αρχιτεκτονική Υπολογιστών Γλώσσες Μηχανής
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΚΕΦΑΛΑΙΟ 3 Το υλικό των υπολογιστών.
Λογισμικο συστηματοσ Κεφάλαιο 4ο
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
William Stallings Computer Organization and Architecture 7 th Edition Κεφάλαιο 16 Λειτουργία Μονάδας Ελέγχου.
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
Τα θέματα μας σήμερα Ηλεκτρονικοί υπολογιστές Υλικό και λογισμικό
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Κεφάλαιο 2 Το Εσωτερικό του υπολογιστή
Πληροφορική, Β Γυμνασίου
Ο προσωπικός υπολογιστής εσωτερικά
Δίκτυα Ηλεκτρονικών Υπολογιστών
Κεφάλαιο 10 – Υποπρογράμματα
Λειτουργικά Συστήματα Πολλών Χρηστών
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Διεργασίες.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
1 Λειτουργικά Συστήματα Ενότητα 4 : Αρχιτεκτονικές ΛΣ Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
ΜΑΘΗΜΑ: ΣΥΓΧΡΟΝΟ ΛΟΓΙΣΜΙΚΟ ΟΡΓΑΝΩΣΗ ΓΡΑΦΕΙΟΥ 5 ο ΕΡΓΑΣΤΗΡΙΟ: ΕΓΚΑΤΑΣΤΑΣΗ ΕΚΤΥΠΩΤΩΝ ΚΑΘΗΓΗΤΗΣ: ΓΡΗΓΟΡΙΟΣ Ν. ΚΑΡΑΤΑΣΙΟΣ.
Διαχείριση Πόρων (1/10) Εισαγωγή στην Πληροφορκή 1 Στα πρώτα χρόνια των υπολογιστών, όπου μόνο ένα πρόγραμμα είχε τη δυνατότητα να βρίσκεται στην κύρια.
Θέμα Πτυχιακής Εργασίας
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
ΔΙAΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ Ονομάζουμε “Διαχείριση Δικτύων” όλες τις ενέργειες που έχουν σκοπό τον έλεγχο λειτουργίας, ασφάλειας και απόδοσης, την αντιμετώπιση.
ΤΕΧΝΙΚΑ ΘΕΜΑΤΑ ΠΩΛΗΣΕΩΝ & ΠΡΟΔΙΑΓΡΑΦΕΣ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Β΄ ΕΠΑΛ ΚεφΑλαιο 2: ΠροδιαγραφΕΣ ΥλικοΥ Η/Υ 2.7 Επεξεργαστές.
ΤΙΤΛΟΣ ΕΡΓΑΣΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ανδρέου Βασίλης.
Cloud Computing Το cloud computing παρέχει υπηρεσίες υπολογισμού, λογισμικού, πρόσβασης σε δεδομένα και αποθήκευσης που δεν απαιτούν ο τελικός χρήστης.
Κατανεμημένα Συστήματα
Γνωριμία με το Λογισμικό του Υπολογιστή
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Κεφάλαιο 7 Διαδικτύωση-Internet
Εφαρμογεσ τηλεματικησ στη διοικηση
Λογισμικό Συστήματος και Λογισμικό Εφαρμογών
Εισαγωγή στα Λειτουργικά Συστήματα (ΛΣ) Operating Systems (OS)
Εφαρμογές Νέφους ΚΕΦΑΛΑΙΟ 13.
ΕΝΟΤΗΤΑ 1 – Υλικό, Λογισμικό και Εφαρμογές
Εφαρμογές Νέφους ΚΕΦΑΛΑΙΟ 13.
H/Y Υλικό Λογισμικό Συστήματος Εφαρμογών. H/Y Υλικό Λογισμικό Συστήματος Εφαρμογών.
ΔΙΕΡΓΑΣΙΕΣ.
Συγγραφέας: Ζαγκότας Στεφανος Επιβλέπων Καθηγητής: Ούτσιος Ευάγγελος
Το υπολογιστικό σύστημα σαν ενιαίο σύνολο
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ
Μεταγράφημα παρουσίασης:

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

Τι είναι? Υπάρχουν διάφοροι ορισμοί για το τι είναι λειτουργικό σύστημα. Ένα πρόγραμμα που διαχειρίζεται το υλικό και παρέχει μια πλατφόρμα για την εκτέλεση των προγραμμάτων εφαρμογών.

Υπολογιστικό Σύστημα Γενικά ένα υπολογιστικό σύστημα μπορεί να διαιρεθεί στα ακόλουθα μέρη που το ένα «κάθεται» πάνω στο άλλο: Υλικό Λειτουργικό σύστημα Προγράμματα εφαρμογών Χρήστες

Υπολογιστικό Σύστημα

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

Βασικοί στόχοι σχεδίασης Τα λειτουργικά συστήματα σχεδιάζονται στους εξής άξονες: Ευχρηστία (PC-Windows) Απόδοση (Mainframes/Workstations-Unix)

Άποψη χρήστη Η άποψη του χρήστη ποικίλλει ανάλογα με τη χρησιμοποιούμενη διεπαφή (interface). Για τους χρήστες PC ο υπολογιστής αποτελείται από: μονάδα συστήματος, οθόνη, πληκτρολόγιο και ποντίκι. Σε αυτή την περίπτωση το λειτουργικό σχεδιάζεται με γνώμονα την ευχρηστία. Η αποδοτική χρησιμοποίηση των πόρων είναι δευτερεύουσας σημασίας.

Άποψη χρήστη Άλλοι χρήστες μπορεί να κάθονται σε τερματικό ενός κεντρικού υπολογιστή (mainframe). Οι χρήστες αυτοί διαμοιράζονται τους πόρους ενός συστήματος. Στη σχεδίαση του λειτουργικού, έμφαση δίνεται στην αποδοτική χρήση των πόρων παρά στην ευχρηστία

Άποψη χρήστη Οι χρήστες workstations έχουν στη διάθεσή τους τόσο ατομικούς πόρους όσο και διαμοιραζόμενους (επικοινωνία και εκτέλεση προγραμμάτων σε άλλα workstations) Στόχος ενός λειτουργικού εδώ είναι να προσφέρει ένα συμβιβασμό ανάμεσα στην ατομική χρήση και τη διαμοιραζόμενη χρήση πόρων.

Άποψη χρήστη Τέλος στους υπολογιστές χειρός (PDAs) έμφαση δίνεται στη διάρκεια ζωής της μπαταρίας

Άποψη συστήματος Από την άποψη του συστήματος ένα λειτουργικό μπορούμε να το δούμε σαν: Εκχωρητή πόρων (Ι/Ο, μνήμη, CPU) Πρόγραμμα ελέγχου (Αποτροπή αντικανονικής συμπεριφοράς των προγραμμάτων)

Άποψη συστήματος Όλα τα προγράμματα εφαρμογών εκτελούν κάποιες κοινές λειτουργίες πχ., I/O Ο έλεγχος και η πραγμάτωση αυτών των λειτουργιών είναι αντικείμενο του λειτουργικού συτήματος. Το λειτουργικό σύστημα είναι το μοναδικό πρόγραμμα που τρέχει συνέχεια (kernel)

Οργάνωση υπολογιστικού συστήματος Γενικά ένα υπολογιστικό σύστημα αποτελείται από: Μία ή περισσότερες ΚΜΕ (CPU) Ένα σύνολο ελεγκτών συσκευών Μνήμη/κοινός δίαυλος

Οργάνωση υπολογιστικού συστήματος Για να ξεκινήσει ο υπολογιστής καλείται ένα αρχικό πρόγραμμα εκκίνησης (bootstrap). Αποθηκεύεται στη ROM /firmware Αρχικοποιεί όλα τα μέρη του συστήματος (κατχωρητές CPU, μνήμη, ελεγκτές) Φορτώνει στη μνήμη τον πυρήνα του λειτουργικού συστήματος Στη συνέχεια το λειτουργικό σύστημα ξεκινά την πρώτη διεργασία (πχ init σε UNIX) και περιμένει interrupt

Interrupts Κάθε συμβάν είτε από το υλικό είτε από το λογισμικό, συνήθως σηματοδοτείται από μια διακοπή (interrupt) Το υλικό μπορεί να προκαλέσει διακοπή στέλνοντας σήμα στην ΚΜΕ μέσω του διαύλου Το λογισμικό μέσω κλήσης συστήματος (system call) Όταν η ΚΜΕ δέχεται μια διακοπή σταματά ότι κάνει εκείνη τη στιγμή και μεταφέρει τον έλεγχο σε μια καθορισμένη θέση μνήμης.

Interrupts Η θέση μνήμης αυτή περιέχει την αρχική διεύθυνση της ρουτίνας εξυπηρέτησης της διακοπής (interrupt handler) Μετά την εκτέλεση της ρουτίνας η ΚΜΕ συνεχίζει τον υπολογισμό που διακόπηκε Για να μπορέσει να γίνει η επαναφορά, όταν συμβαίνει διακοπή η τρέχουσα κατάσταση εκτέλεσης (program counter, τιμές καταχωρητών κλπ.) αποθηκεύεται στη στοίβα του συστήματος (system stack)

Interrupts

Εύρεση Interrupt Handler Δύο εναλλακτικά σενάρια Όλες οι διακοπές καλούν την ίδια ρουτίνα που αναλαμβάνει να εντοπίσει τον κατάλληλο handler Interrupt vector. Χρησιμοποιείται πίνακας με δείκτες προς ρουτίνες εξυπηρέτησης. Σε κάθε θέση του πίνακα αντιστοιχεί συγκεκριμένος αριθμός συσκευής που δίνεται μαζί με το interrupt. Έτσι μπορεί έμμεσα να καλείται ο κατάλληλος handler. Interrupt vectors χρησιμοποιούν τόσο τα Windows όσο και τα UNIX συστήματα.

Αποθηκευτικός χώρος Ξεχωρίζουμε τα μέσα αποθήκευσης σύμφωνα με: Ταχύτητα Κόστος Μονιμότητα (volatility)

Αποθηκευτικός χώρος

Κύκλος εντολής Προσκόμιση εντολής (instruction fetch) από τη μνήμη και αποθήκευση στον instruction register Αποκωδικοποίηση εντολής Πιθανή προσκόμιση επιπλέον τελεστών από τη μνήμη και αποθήκευσή τους σε εσωτερικούς καταχωρητές Εκτέλεση εντολής πάνω στους τελεστές Πιθανή αποθήκευση αποτελέσματος στη μνήμη

Δομή Ι/Ο Μεγάλο κομμάτι ενός ΛΣ αφιερώνεται στη χρήση συσκευών Ι/O. Κάθε ελεγκτής συσκευής είναι υπεύθυνος για ένα συγκεκριμένο τύπο συσκευής. Μπορεί περισσότερες από μία συσκευές να είναι συνδεδεμένες με τον ίδιο ελεγκτή πχ. SCSI 7+ Κάθε ελεγκτής έχει καταχωρητές ειδικού σκοπού και τοπικό χώρο προσωρινής αποθήκευσης (buffer) Είναι υπεύθυνος για τη μεταφορά δεδομένων μεταξύ των περιφερειακών συσκευών και του buffer.

Δομή Ι/Ο Τα ΛΣ έχουν οδηγό συσκευής (device driver) για κάθε ελεγκτή. Ρόλος του οδηγού είναι να παρέχει μια ομοιόμορφη διεπαφή προς το λειτουργικό σύστημα του συγκεκριμένου ελεγκτή.

Λειτουργία Ι/Ο Για να γίνει Ι/Ο: Ο οδηγός φορτώνει συγκεκριμένους καταχωρητές του ελεγκτή Ο ελεγκτής διαβάζει τους καταχωρητές για να καθορίσει τι πρέπει να κάνει Ο ελεγκτής ξεκινά τη μεταφορά των δεδομένων από τη συσκευή στον buffer Όταν τελειώσει η μεταφορά στέλνεται interrupt στον οδηγό. Ο οδηγός επιστρέφει τον έλεγχο στο λειτουργικό σύστημα πιθανώς επιστρέφοντας δείκτη στα δεδομένα (αν η λειτουργία ήταν ανάγνωση) καθώς και πληροφορίες κατάστασης

DMA H προηγούμενη μορφή I/O που βασίζεται σε interrupts δεν είναι αποδοτική για πολλά δεδομένα. DMA (Direct Memory Access): Ο ελεγκτής μεταφέρει ένα ολόκληρο τμήμα (block) δεδομένων απευθείας από τον buffer στη μνήμη (και αντίστροφα) χωρίς την παρέμβαση της CPU. Interrupt στέλνεται στον οδηγό για να σηματοδοτήσει το πέρας της λειτουργίας Όσο γίνεται η ανάγνωση/γραφή η CPU μπορεί να εκτελεί άλλες εντολές (non-blocking)

Αρχιτεκτονική Υπολογιστικών Συστημάτων Μονοεπεξεργαστικά συστήματα Πολυεπεξεργαστικά Δέσμης (Clusters)

Μονοεπεξεργαστικά Υπάρχει ένας επεξεργαστής γενικού σκοπού Υπάρχουν πολλοί επεξεργαστές ειδικού σκοπού πχ. ελεγκτές συσκευών. Ρόλος τους είναι να απεμπλέκουν τηn KME από λειτουργίες που έχουν να κάνουν με τις συσκευές, πχ. ο ελεγκτής του πληκτρολογίου μετατρέπει τα πατήματα κουμπιών σε κωδικούς που στέλνονται στην KME, ο ελεγκτής του σκληρού δίσκου λαμβάνει αιτήσεις από την ΚΜΕ και χρονοπρογραμματίζει την εκτέλεσή τους. Οι ειδικού σκοπού λειτουργούν «αυτόνομα» και το ΛΣ συνήθως δεν παρεμβαίνει στη λειτουργία τους.

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

Αξιοπιστία Ζωτικής σημασίας σε ορισμένες εφαρμογές (πχ. έλεγχος πτήσης) Ελεγχόμενη Υποβάθμιση (graceful degradation) Η ικανότητα του συστήματος να παρέχει υπηρεσία ανάλογα με το ποσοστό του υλικού που παραμένει ενεργό. Fault tolerance - Η ικανότητα του συστήματος να εξακολουθεί να λειτουργεί παρά τα όποια σφάλματα στο επίπεδο που λειτουργούσε πριν συμβούν.

Fault tolerance Για να επιτευχθεί fault tolerance συνήθως χρησιμοποιείται redundant (πλεονάζον) υλικό και λογισμικό Για παράδειγμα στο NonStop της HP υπάρχουν ζευγάρια επεξεργαστών. Ένα ζευγάρι εκτελεί την ίδια εντολή και οι επεξεργαστές συγκρίνουν τα αποτελέσματα. Αν διαφέρουν κάποιος από τους δύο επεξεργαστές έχει υποστεί βλάβη οπότε η εκτέλεση μεταφέρεται στο επόμενο ζευγάρι.

Διαχωρισμός Πολυεπεξεργαστικών Συστημάτων Ασύμμετρη Πολυεπεξεργασία (master-slave) - Σε κάθε επεξεργαστή ανατίθεται συγκεκριμένο έργο - Ένας επεξεργαστής συντονιστής αναλαμβάνει τον έλεγχο του συστήματος, το χρονοπρογραμματισμό, και την ανάθεση εργασιών στους επεξεργαστές Συμμετρική Πολυεπεξεργασία - Όλοι οι επεξεργαστές είναι ομότιμοι - Η διαδικασία Ι/Ο είναι πιο πολύπλοκη, όπως επίσης και η εξισορρόπηση φόρτου - Όλα τα σύγχρονα λειτουργικά συστήματα υποστηρίζουν συμμετρική πολυεπεξεργασία

Πολυπύρηνοι επεξεργαστές ΚΜΕ με πολλούς υπολογιστικούς πυρήνες Πέρα από ζητήματα αρχιτεκτονικής (πχ. πρόσβαση στην κρυφή μνήμη) από την άποψη του λειτουργικού φαίνονται σαν συστήματα πολλαπλών επεξεργαστών

Συστήματα Δέσμης (Clusters) Πολλαπλές ΚΜΕ συνδεμένες πάνω από LAN, που έχουν κοινό αποθηκευτικό χώρο. Κύριος στόχος: απόδοση και υψηλή διαθεσιμότητα Δύο οργανώσεις: Ασύμμετρη. Μία ΚΜΕ βρίσκεται σε hot-standby mode και ελέγχει για τυχόν σφάλματα στις ενεργές. Σε περίπτωση σφάλματος αντικαθιστά την ΚΜΕ που αστόχησε Συμμετρική. Όλοι εκτελούν και παρακολουθούν.

Συστήματα Δέσμης (Clusters) Άλλες μορφές δεσμών είναι οι δέσμες πάνω από WAN πχ. δίκτυα αποθηκευτικού χώρου και οι παράλληλες δέσμες. Στις παράλληλες δέσμες επιτρέπεται ταυτόχρονη πρόσβαση στο ίδιο κομμάτι μνήμης από πολλές ΚΜΕ. Τα ΛΣ δεν υποστηρίζουν κάτι τέτοιο για αυτό το λόγο γράφεται ειδικό λογισμικό. Για παράδειγμα ο παράλληλος Oracle server κάθε μηχανή τρέχει Oracle και ένα στρώμα λογισμικού ελέγχει την πρόσβαση στο δίσκο. Για να διασφαλιστεί ότι δε θα υπάρξουν αντικρουόμενες πράξεις το σύστημα παρέχει κατανεμημένο διαχειριστή κλειδώματος (DLM distributed lock manager)

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

Διεργασίες & ΛΣ Μονονηματικές (ένας μετρητής προγράμματος PC) Πολυνηματικές (πολλοί PCs ένας για κάθε νήμα (thread)) Τα ΛΣ υλοποιούν: Multiprogramming Multitasking (διαμοίραση χρόνου)

Multiprogramming H KME εκτελεί μια διεργασία Όταν η διεργασία εκτελέσει I/O για να μη μείνει ανενεργή η ΚΜΕ μεταβαίνει στην επόμενη διεργασία

Multitasking Απαραίτητο σε συστήματα αλληλεπιδραστικά και με πολλούς χρήστες. Σημαντικό κριτήριο: χρόνος απόκρισης Ο χρόνος στην ΚΜΕ διαμοιράζεται μεταξύ των εργασιών

Στάδια εκτέλεσης process Process pool. Αποθηκευτικός χώρος όπου υπάρχουν όλες οι διεργασίες προς εκτέλεση (συνήθως όχι στη δευτερεύουσα μνήμη) Job scheduling και μεταφορά κάποιων εργασιών στην κύρια μνήμη CPU scheduling για διαμοίραση του χρόνου της ΚΜΕ μεταξύ των διεργασιών.

Swapping & Virtual Memory - Ενιαία εικόνα για τη μνήμη. - Επιτρέπει την εκτέλεση προγραμμάτων που είναι μεγαλύτερα της κύριας μνήμης

Διεργασίες και ΛΣ Το ΛΣ είναι υπεύθυνο για: Δημιουργία και διαγραφή διεργασιών (χρήστη/συστήματος) Αδρανοποίηση και επανενεργοποίηση διεργασιών Συγχρονισμό διεργασιών Επικοινωνία διεργασιών (κοινή μνήμη, message passing) Χειρισμό αδιεξόδων (deadlocks)

Τρόπος Λειτουργίας ΛΣ Αν δεν υπάρχουν διεργασίες προς εκτέλεση ή συσκευές Ι/Ο προς εξυπηρέτηση το ΛΣ περιμένει να συμβεί κάτι (event). Ένα event σηματοδοτείται πάντα από την εμφάνιση μιας διακοπής ή μιας εξαίρεσης. Εξαίρεση (trap/exception): μία διακοπή που παράγεται από το λογισμικό και η οποία προκαλείται ή από σφάλμα ή από συγκεκριμένο αίτημα για παροχή υπηρεσίας από το ΛΣ.

Τρόπος Λειτουργίας ΛΣ Οι εξαιρέσεις που συμβαίνουν από μια διεργασία δε θα πρέπει να επηρεάζουν τις υπόλοιπες, πχ., ένα πρόγραμμα που κολάει σε ατέρμονο loop, ή τροποποιεί άλλα προγράμματα ή και το ίδιο το λειτουργικό. Διπλός τρόπος εκτέλεσης κώδικα Τρόπος λειτουργίας χρήστη (user mode) Τρόπος λειτουργίας πυρήνα (kernel mode), ή επόπτη (supervisor mode) ή συστήματος (system mode) ή προνομιακός (privileged mode)

Διπλός τρόπος εκτέλεσης - Χρειάζεται την υποστήριξη του υλικού. bit τρόπου λειτουργίας Οι εντολές μηχανής που μπορεί να προκαλέσουν βλάβη καθορίζεται να τρέχουν μόνο σε kernel mode Εάν γίνει προσπάθεια εκτέλεσης μιας τέτοιας εντολής σε user mode το υλικό δημιουργεί εξαίρεση στο λειτουργικό σύστημα. Σε αυτή την περίπτωση το ΛΣ πρέπει να τερματίσει τη διεργασία. Συνήθως ακολουθεί memory dump της μνήμης στο δίσκο για αποσφαλμάτωση. Παραδείγματα εντολών: έλεγχος I/O, διαχείριση χρονομετρητή, διαχείριση διακοπών, αλλαγή τρόπου λειτουργίας.

Διπλός τρόπος εκτέλεσης Κύκλος εκτέλεσης Οι εφαρμογές χρήστη τρέχουν σε user mode Όταν συμβεί διακοπή το υλικό μεταβαίνει σε kernel mode και ο έλεγχος μεταβαίνει στο λειτουργικό Πριν ξαναπεράσει ο έλεγχος στην εφαρμογή χρήστη το λειτουργικό θέτει την κατάσταση σε user mode

Διπλός τρόπος εκτέλεσης Οι κλήσεις συστήματος (system calls) επιτρέπουν σε μια εφαρμογή χρήστη να ζητήσει μια συγκεκριμένη εργασία από το ΛΣ. Αντιμετωπίζεται από το υλικό σα μια διακοπή. Μέσω του διανύσματος διακοπών, ο έλεγχος περνάει στον κατάλληλο handler και το bit λειτουργίας τίθεται σε kernel mode. Οι handlers είναι μέρος του ΛΣ. Το πέρασμα παραμέτρων γίνεται με: καταχωρητές, στοίβα ή πίνακας στη μνήμη

Διπλός τρόπος εκτέλεσης Οι πιο παλιοί επεξεργαστές (πχ. 8088) δεν υποστήριζαν dual mode. Συστήματα που έτρεχαν MSDOS σε αυτούς μπορούσαν εύκολα να υποστούν επίθεση. Νεότεροι επεξεργαστές πχ. Pentium καθώς και όλα τα σύγχρονα λειτουργικά υποστηρίζουν dual mode.

Χρονομετρητής Το ΛΣ πρέπει να διατηρεί τον έλεγχο της ΚΜΕ. Για αυτό το λόγο χρησιμοποιείται ένας timer. Όταν μηδενιστεί ο timer προκαλείται διακοπή και ο έλεγχος επιστρέφει στο ΛΣ. Οι εντολές χειρισμού του timer τρέχουν σε kernel mode.

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

ΛΣ & μνήμη Το ΛΣ είναι υπεύθυνο για: Να παρακολουθεί ποια τμήματα μνήμης χρησιμοποιούνται και από ποιον Αποφασίζει ποιες διεργασίες και ποια δεδομένα να μεταφέρει από και προς τη μνήμη Εκχωρεί και αποδεσμεύει χώρο στη μνήμη

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

ΛΣ & αποθηκευτικός χώρος Τα αρχεία αντιπροσωπεύουν προγράμματα (source ή object code) και δεδομένα. Τα αρχεία δεδομένα μπορεί να είναι: αλφαριθμητικά ή δυαδικά. Το ΛΣ είναι υπεύθυνο για: Δημιουργία και διαγραφή αρχείων Δημιουργία και διαγραφή καταλόγων Εντολές για χειρισμό αρχείων και καταλόγων Απεικόνιση των αρχείων στο δευτερεύοντα αποθηκευτικό χώρο Δημιουργία αντιγράφων ασφαλείας

ΛΣ & αποθηκευτικός χώρος Δευτερεύοντας αποθηκευτικός χώρος=σκληρός δίσκος Το ΛΣ είναι υπεύθυνο για: Διαχείριση ελεύθερου χώρου Εκχώρηση αποθηκευτικού χώρου Χρονοπρογραμματισμό (scheduling) Tertiary storage (αποθηκευτικός χώρος τρίτου βαθμού): οπτικοί δίσκοι, ταινίες

ΛΣ & κρυφή μνήμη Αρχή Οι πληροφορίες σώζονται σε κάποιον αποθηκευτικό χώρο (πχ. κύρια μνήμη) Καθώς χρησιμοποιούνται αντιγράφονται σε ένα ταχύτερο κομμάτι μνήμης (κρυφή μνήμη/cache) Όταν χρειαστούμε ένα κομμάτι πληροφορίας ελέγχεται πρώτα η ύπαρξή του στην κρυφή μνήμη. Αν υπάρχει φέρνεται από εκεί, αλλιώς ανακαλείται από το κύριο μέσο αποθήκευσης και στην κρυφή μνήμη κρατιέται ένα αντίγραφό του.

ΛΣ & κρυφή μνήμη Κρυφή μνήμη υπάρχει σε πολλά σημεία ενός συστήματος. Επίπεδο software (πχ. web browser) Επίπεδο hardware (instruction cache) H μεταφορά δεδομένων μεταξύ των επιπέδων μιας ιεραρχίας αποθηκευτικού χώρου, μπορεί να εμπλέκει ή όχι το ΛΣ. Πχ. cache=>καταχωρητές της ΚΜΕ (όχι ΛΣ) Σκληρός δίσκος <=> μνήμη (ΛΣ)

ΛΣ & κρυφή μνήμη Καίριας σημασίας είναι η διαχείριση της κρυφής μνήμης (cache management). Δύο κύρια προβλήματα: Αντικατάσταση δεδομένων/σελίδων (Cache replacement) Συνέπεια (cache coherency/consistency)

Προστασία και Ασφάλεια Προστασία: κάθε μηχανισμός για τον έλεγχο πρόσβασης των διεργασιών ή των χρηστών στους πόρους του συστήματος. Δουλειά της ασφάλειας είναι να προστατέψει το σύστημα από εσωτερικές και εξωτερικές επιθέσεις πχ. ιούς, σκουλήκια (worms), επιθέσεις άρνησης υπηρεσίας (DOS), κλοπές ταυτότητας κλπ.

Προστασία και Ασφάλεια Τα ΛΣ διατηρούν μια λίστα χρηστών (usernames) με τους αντίστοιχους αναγνωριστές χρηστών (user IDs). Στην ορολογία των ΝΤ security IDs (SIDs). Τα user IDs σχετίζονται με όλες τις διεργασίες και τα νήματα του χρήστη. Σε κάποιες περιπτώσεις χρειάζεται να γίνεται αναγνώριση στο επίπεδο της ομάδας χρηστών. Το UNIX πχ., υλοποιεί μια λίστα ομάδων (group identifiers). To group ID σχετίζεται κι αυτό με όλες τις διεργασίες και νήματα ενός χρήστη.

Προστασία και Ασφάλεια Τα user και group IDs στο UNIX αναθέτονται μέσω του αρχείου /etc/passwd Παράδειγμα # cat passwd root:##root:0:0:Big Brother:/root: daemon:*:1:1:The Deuce:/etc: bin:##root:2:0:Binaries:/usr/home/bin: uucp:*:5:5:UNIX to UNIX copy:/usr/spool/uucp:/usr/bin/uucico news:*:6:6:Usenet news:/usr/spool/news: ast:*:8:3:Andrew S. Tanenbaum:/usr/ast: asw:##root:9:0:Al Woodhull:/usr/home/asw: ftp:*:15:15:Anonymous FTP:/usr/ftp: www:*:333:15:World Wide Web:/usr/www: nobody:*:9999:99::/tmp: luke:##luke:10:0:luke:/usr/luke: #

Κατανεμημένα Συστήματα Ένα ΚΣ είναι μια συλλογή ανεξάρτητων και πιθανώς ετερογενών υπολογιστικών συστημάτων που σχηματίζουν ένα δίκτυο με σκοπό τη διαμοίραση κοινών πόρων στους χρήστες. Κάποια ΛΣ απαιτούν από τους χρήστες να καλούν ρητά λειτουργίες του δικτύου, ενώ άλλα κρύβουν τέτοιες λεπτομέρειες (FTP vs. NFS)

Δίκτυα Πρωτόκολλα πχ.: TCP/IP ATM BlueTooth & 802.11

Δίκτυα Εύρος περιοχής: WAN MAN LAN SAN Κατανεμημένα ΛΣ πχ. Amoeba, παρέχουν την αίσθηση στους χρήστες του ενός υπολογιστή με ένα ΛΣ.

Embedded systems Πιο κοινά συστήματα (ηλεκτρικές συσκευές, ρομπότ κλπ.) Δεν έχουν όλα ΛΣ. ΛΣ πραγματικού χρόνος (real time OS) Ένα σύστημα πραγματικού χρόνου έχει σωστά ορισμένους σταθερούς περιορισμούς χρόνου. Κάθε επεξεργασία πρέπει να γίνεται μέσα στους χρονικούς περιορισμούς αλλιώς αποτυγχάνει.

Άλλα Συστήματα Συστήματα πολυμέσων Ανάγκη για παράδοση δεδομένων με συγκεκριμένο ρυθμό. Εφαρμογές broadcast/multicast Συστήματα χειρός Περιορισμένοι πόροι (μνήμη, ΚΜΕ, μπαταρία) => αποδοτική χρησιμοποίηση Περιορισμοί Ι/Ο πχ. μικρή οθόνη => τμηματικό web browsing (web clipping)

Υπολογιστικά Περιβάλλοντα Παραδοσιακός Υπολογισμός όχι απομακρυσμένη πρόσβαση, περιορισμένη μεταφερσιμότητα, σήμερα: portals, ασύρματα δίκτυα Υπολογισμός Πελάτη-Εξυπηρετητή (client-server) Compute-servers (πχ. DB server) File servers (πχ. Web server)

Υπολογιστικά Περιβάλλοντα Yπολογισμός Ομότιμων Σταθμών (P2P) Σύνδεση (bootstrapping) Εύρεση (querying) Παραδείγματα: Napster, Gnutella, Kazaa, Torrent Υπολογισμός Παγκόσμιου Ιστού Η δικτύωση συσκευών έχει προχωρήσει τόσο λόγω βελτίωσης της δικτυακής τεχνολογίας όσο και λόγω βελτίστοποίησης του δικτυακού κώδικα Server Farms, Load balancers, Proxies

Υπολογιστικά Περιβάλλοντα Υπολογισμός Πλέγματος (Grid Computing) Κατανεμημένο σύστημα απαρτιζόμενο από πολλά clusters. Επιστημονικές εφαρμογές πχ. πειράματα φυσικής