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

Σχετικά έγγραφα
Λειτουργικά Συστήματα. Οργάνωση Μαθήματος

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

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

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Σκελετός Παρουσίασης

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

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

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

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

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

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

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

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

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

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

Χρονοδρομολογητής Κυκλικής Επαναφοράς

Εισαγωγή στους Η/Υ. Ενότητα 4: Λειτουργικά Συστήματα Ι. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

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

Δρομολόγηση σε σύστημα ενός επεξεργαστή

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

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

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

Χαράλαμπος Καραγιαννίδης

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

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

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

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

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

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

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

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

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

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

Εισαγωγή στους Υπολογιστές

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

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

Ειδικής Υποδομής Υποχρεωτικό

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

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

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

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

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

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

ροµολόγηση Επεξεργαστή

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8

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

ENOTHTA 5 XPONO POMOΛOΓHΣH

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

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

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

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

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

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

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

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

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

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Διεργασίες και Νήματα (2/2)

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

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

Χρονοπρογραµµατισµός ΚΜΕ (CPU Scheduling)

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά

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

Κατανεμημένα Συστήματα

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

[4] Στόχοι. Λογισμικό. Υπολογιστικά συστήματα: Στρώματα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

Παράλληλη Επεξεργασία

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ H/Y

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

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

Transcript:

ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ, ΤΜΗΥΠ ΤΟΜΕΑΣ ΛΟΓΙΚΟΥ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΙΚΗ ΔΙΑΛΕΞΗ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Σ.ΣΙΟΥΤΑΣ, Χ. ΜΑΚΡΗΣ, Α.ΗΛΙΑΣ

ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ, ΤΜΗΥΠ ΤΟΜΕΑΣ ΛΟΓΙΚΟΥ ΤΩΝ Η/Υ Λειτουργικά Συστήματα Ενότητα: Βασικές έννοιες 2

Θέματα παρουσίασης Ορισμός Λειτουργικού Συστήματος Βασικές λειτουργίες των Λειτουργικών Συστημάτων Είδη Υπολογιστικών Συστημάτων Είδη Λειτουργικών Συστημάτων 3

Λειτουργικό Σύστημα Σύνολο προγραμμάτων Ενεργούν ως ενδιάμεσο μεταξύ των χρηστών και το υλικό (hardware) του ηλεκτρονικού υπολογιστή Το υλικό του υπολογιστή η ΚΜΕ, η μνήμη, και οι συσκευές Εισόδου/Εξόδου- παρέχει τους βασικούς υπολογιστικούς πόρους Τα προγράμματα και οι εφαρμογές ορίζουν τους τρόπους που οι υπολογιστικοί πόροι χρησιμοποιούνται για να λύσουν προβλήματα Επεξεργαστές κειμένων, μεταφραστές, προγράμματα και εφαρμογές Λειτουργικό σύστημα Υλικό του υπολογιστή 4

Βασική οργάνωση ενός υπολογιστή Καταχωρητές ίσκος Συσκευή Λήψης Εφεδρικών Αντιγράφων ίσκος Κύρια Μνήµη Κρυφή Μνήµη ΚΜΕ ίσκος 5

Βασική οργάνωση ενός υπολογιστή Χρήστης 1 προγράμματα Χρήστης 2 Υλικό Λειτουργικό Σύστημα Χρήστης 3 εφαρμογών Χρήστης 5 Χρήστης 4 6

Βασικές λειτουργίες του Λειτουργικού Συστήματος Υλικό, προγράμματα και δεδομένα αποτελούν υπολογιστικούς πόρους Το Λειτουργικό σύστημα: Διευκολύνει το χρήστη να χρησιμοποιεί τους υπολογιστικούς πόρους, εργαλεία εισόδου/εξόδου, τη μνήμη, την κεντρική μονάδα επεξεργασίας, τα δεδομένα. Ελέγχει την κατανομή των πόρων με τρόπο φιλικό, αποδοτικό και δίκαιο Προστατεύει τους πόρους από ανεπιθύμητες καταστάσεις (σφάλμα εκτέλεσης προγράμματος, προσπέλαση σε μνήμη που ανήκει σε άλλο χρήστη του συστήματος κλπ) Απαλλάσσει από τον προβληματισμό για πρόσβαση στα στοιχεία υλικού Παρέχει προστασία στους χρήστες 7

Είδη υπολογιστικών συστημάτων Mainframe computer systems Καλή χρήση των πόρων μέσω τερματικών Σταθμοί εργασίας (workstations) Καλή χρήση των πόρων αλλά και ατομική ευχρηστία Προσωπικοί υπολογιστές (PC) Ευκολία χρήσης, έμφαση στην απόδοση και όχι στην καλή χρήση των πόρων Handheld υπολογιστές (υπολογιστές χειρός) Ατομική ευχρηστία και απόδοση με καλή χρήση της μπαταρίας 8

Ταξινόμηση Λειτουργικών Συστημάτων Ι Ομαδικής επεξεργασίας (Batch Systems) Στους πρώτους mainframe υπολογιστές Δεν υπάρχει αλληλεπίδραση ανάμεσα στο χρήστη και στο πρόγραμμά του κατά τη διάρκεια της επεξεργασίας Οι εργασίες του χρήστη υποβάλλονται στον υπολογιστή κατά ομάδες (batches) Ο έλεγχος απλά μεταφέρεται αυτόματα από τη μια εργασία στην άλλη. Η ΚΜΕ μένει αχρησιμοποίητη για αρκετό χρονικό διάστημα. Το λειτουργικό σύστημα βρίσκεται πάντα στη μνήμη 9

Ταξινόμηση Λειτουργικών Συστημάτων ΙΙ Συστήματα πολυ-προγραμματισμού Λύνουν το πρόβλημα της ανεκμετάλλευτης ΚΜΕ των συστημάτων ομαδικής επεξεργασίας (batch sysstems) Πολλές εργασίες ταυτόχρονα στη μνήμη ΛΣ πρόγραμμα με την υψηλότερη προτεραιότητα στη χρήση της ΚΜΕ Χρονοδρομολογητής ΚΜΕ Πολιτικές διαχείρισης μνήμης Η εργασία που χρειάζεται να κάνει λειτουργίες εισόδου/εξόδου χάνει την ΚΜΕ και το λειτουργικό σύστημα επιλέγει την επόμενη εργασία που είναι έτοιμη για να εκτελεστεί.όταν η πρώτη εργασία τελειώσει με την αναμονή της εισόδου/εξόδου λαμβάνει ξανά την ΚΜΕ. 10

Πολυπρογραμματισμός (2) Προγράμματα και δεδομένα για πολλές εργασίες στην ΚΜΕ την ίδια στιγμή Βελτιωμένη χρησιμοποίηση πόρων Ταυτόχρονη πρόσβαση χρηστών στον υπολογιστή C B CPU CPU RUN!!! Ι/Ο CPU RUN!!! CPU RUN!!! Ι/Ο RUN!!! A RUN!!! Ι/Ο CPU CPU RUN!!!

Υλοποίηση πολυπρογραμματισμού Διανομή (dispatching) Εναλλαγή εργασιών στην ΚΜΕ Χειρισμός διακοπών (interrupt handling) Ολοκλήρωση μεταφοράς εισόδου/εξόδου Εκχώρηση πόρων (resource allocation) Απόδοση μνήμης, συσκευές ε/ε Προστασία πόρων (resource protection) Χρονοδρομολόγηση (scheduling) Απόφαση για το ποια εργασία θα εκτελεστεί

Ταξινόμηση Λειτουργικών Συστημάτων ΙΙΙ Διαμοιρασμού χρόνου (time sharing) H εξέλιξη των πολυπρογραμματιστικών συστημάτων ομαδικής επεξεργασίας καθώς αυτά τώρα επιτρέπουν την ταυτόχρονη διάδραση με πολλούς χρήστες. Η ταυτόχρονη πρόσβαση είναι απατηλή Δίνεται απάντηση σε οποιαδήποτε απαίτηση του χρήστη μέσα σε λίγο χρόνο Ο υπολογιστής εκτελεί ένα μέρος της κάθε εργασίας για ένα μικρό χρονικό διάστημα. Τα ΛΣ συστήματα διαμοιρασμού χρησιμοποιούν τεχνικές πολυπρογραμματισμού και χρονοδρομολόγησης για ταυτόχρονη εξυπηρέτηση χρηστών 13

TIME SHARING εισαγωγή δρομολόγηση ready running διακοπή, τέλος χρόνου τέλος Ε/Ε λειτουργία Ε/Ε blocked 14

TIME SHARING Το λειτουργικό σύστηµα διατηρεί για κάθε διεργασία µια δοµή δεδοµένων που ονοµάζεται Μπλοκ Ελέγχου ιεργασίας (Process Control Block, PCB). Κάθε διεργασία έχει το δικό της ξεχωριστό PCB. Το PCB µιας διεργασίας συνήθως περιέχει τις ακόλουθες πληροφορίες: Περιεχόµενα µετρητή προγράµµατος και άλλων καταχωρητών. Κατάσταση διεργασίας. ιάφορες παραµέτρους χρονοδροµολόγησης. Ταυτότητα διεργασίας και άλλα στοιχεία ταυτοποίησης της διεργασίας. Χρόνος εκκίνησης της διεργασίας, χρόνος χρήσης της ΚΜΕ και άλλα λογιστικά στοιχεία. είκτες που καταγράφουν τις διευθύνσεις µνήµης στις οποίες βρίσκεται ο κώδικας,τα δεδοµένα και η στοίβα της διεργασίας. είκτες που καταγράφουν τους πόρους που έχει στην κατοχή της η διεργασία (π.χ.,ανοιχτά αρχεία, συσκευές Ε/Ε, κλπ). 15

Το PCB µιας διεργασίας Κατάσταση διεργασίας Στοιχεία ταυτοποίησης Περιεχόµενα µετρητή προγράµµατος και άλλων καταχωρητών Παράµετροι χρονοδροµολόγησης Χρήσιµες διευθύνσεις και όρια µνήµης Λίστα ανοιχτών αρχείων Χρησιµοποιούµενοι πόροι Λογιστικά στοιχεία και άλλες χρήσιµες πληροφορίες 16

Παράδειγµα 2012 b = 3; 2016 c = 4; 2020 p = 5; 2024 flag = 0; 2028 tmp = 1; 2032 label1: 2036 if (p <= 0) goto label2; 2040 if (flag == 0) goto label3; 2044 tmp = tmp * c; 2048 goto label4; 2052 label3: 2056 tmp = tmp * b; 2060 label4: 2064 flag = 1 flag; 2068 p = p 1; 2072 goto label1; 2076 label2: 2080 print tmp; δηλαδή ο κώδικας της διεργασίας βρίσκεται στις διευθύνσεις µνήµης 2012-2080, ενώ στη διεύθυνση µνήµης 2056 βρίσκεται η εντολή «tmp = tmp * b;» 17

ΔΙΑΚΟΠΕΣ ΚΑΙ ΧΡΗΣΗ PCB Έστω ότι ξεκινά η εκτέλεση του προγράµµατος και ακριβώς πριν την πρώτη εκτέλεση της εντολής στη θέση 2064, η διεργασία διακόπτεται. Στο σηµείο αυτό ισχύουν τα ακόλουθα:pc (program counter) = 2064, tmp = 3, flag = 0, p = 5 και b = 3, c = 4. Προκειµένου να είναι δυνατή η επανεκτέλεση της διεργασίας κάποια στιγµή στο µέλλον,θα πρέπει το ΛΣ να θυµάται όλες τις παραπάνω τιµές. Έτσι, θα πρέπει αυτές να φυλαχθούν στο PCB της διεργασίας. 18

ΔΙΑΚΟΠΕΣ ΚΑΙ ΧΡΗΣΗ PCB Στην πραγµατικότητα, τα πράγµατα είναι πιο σύνθετα. Στο PCB δεν φυλάσσονται τιµές µεταβλητών, αφού αυτές φυλάσσονται στη µνήµη, αλλά τιµές καταχωρητών του επεξεργαστή. Φυλάσσονται επίσης πληροφορίες για το ποιες είναι οι διευθύνσεις µνήµης της διεργασίας, ώστε να µη χαθεί η πρόσβαση στις σωστές µεταβλητές. Το βασικό σηµείο ωστόσο είναι να κατανοήσουµε ότι η επανεκτέλεση µιας διεργασίας που είχε διακοπεί, προϋποθέτει τη λήψη µιας ακριβούς φωτογραφίας της κατάστασης της διεργασίας την ώρα της διακοπής. 19

ΔΙΑΚΟΠΕΣ ΚΑΙ ΧΡΗΣΗ PCB Ας θεωρήσουµε τώρα ότι συµβαίνει και πάλι διακοπή, αυτή τη φορά ακριβώς πριν τη δεύτερη εκτέλεση της εντολής που βρίσκεται στη διεύθυνση µνήµης 2072. Στο σηµείο αυτό ισχύουν τα ακόλουθα: PC = 2072, tmp = 12, flag = 0, p = 3, b = 3, c = 4. Τα περιεχόµενα του PC αλλά και κάποιες από τις τιµές των µεταβλητών είναι τώρα διαφορετικές. Το ΛΣ θα πρέπει και πάλι να αποθηκεύσει κατάλληλες πληροφορίες στο PCB της διεργασίας, προκειµένου να είναι σε θέση να επανεκτελέσει την διεργασία αργότερα. 20

Σχηµατική περιγραφή της χρονοδροµολόγησης διεργασιών είσοδος νέας διεργασίας τέλος κβάντου χρόνου ουρά έτοιμων διεργασιών. διεργασία 3 διεργασία 2 διακοπή λόγω τερµατισµού λειτουργίας Ε/Ε διεργασία 1 Ε/Ε δροµολογητής διαχειριστής συσκευών Ε/Ε έξοδος ΚΜΕ η εκτελούμενη διεργασία Ζητά πρόσβαση σε κάποιο Πόρο του συστήματος 21

ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ Ο χρόνος διεκπεραίωσης µιας διεργασίας είναι ο χρόνος που µεσολαβεί από την είσοδό της στο σύστηµα µέχρι την περάτωση της εκτέλεσής της. Για παράδειγµα αν µια διεργασία εισέρχεται στο σύστηµα την χρονική στιγµή t1 και τερµατίζει την χρονική στιγµή t2, o χρόνος διεκπεραίωσης της διεργασίας είναι Χ = t2 t1 (αφού t2-t1 χρονικές µονάδες παρέµεινε στο σύστηµα). Ο χρόνος διεκπεραίωσης συµπεριλαµβάνει οποιαδήποτε καθυστέρηση µπορεί να υπέστη η διεργασία πριν ή και κατά τη διάρκεια εκτέλεσής της. Ο µέσος χρόνος διεκπεραίωσης n διεργασιών p1,..., pn, ορίζεται ως ΜΧ = (Χ 1 + Χ 2 +... + Χ n) / n, όπου Χ 1,..., Χ n είναι οι χρόνοι διεκπεραίωσης των διεργασιών p1,..., pn, αντίστοιχα. 22

ΧΡΟΝΟΔΡΟΜΟΛΟΓΗΣΗ Ο χρόνος αναµονής µιας διεργασίας είναι ο χρόνος που µια διεργασία ξοδεύει στο σύστηµα χωρίς να κατέχει την ΚΜΕ. Για παράδειγµα, αν µια διεργασία εισέρχεται στο σύστηµα την χρονική στιγµή t1, τερµατίζει την χρονική στιγµή t2 και καταναλώνει χρόνο d στην ΚΜΕ, ο χρόνος αναµονής είναι XA = t2 t1 d. Ο µέσος χρόνος αναµονής n διεργασιών p1,..., pn, ορίζεται ως ΜΧΑ = (ΧΑ1 + ΧΑ2 +... + ΧΑn) / n, όπου ΧΑ1,..., ΧΑn είναι οι χρόνοι αναµονής των διεργασιών p1,..., pn, αντίστοιχα. 23

Είδος δροµολόγησης που παρέχεται από τους χρονοδροµολογητές ΚΜΕ και µνήµης-δίσκου. Χρονοδροµολογητής µνήµης-δίσκου Χρονοδροµολογητής ΚΜΕ ίσκος Μνήμη ΚΜΕ Αλγόριθμοι αντικατάστασης First-In-First-Out (FIFO) Least Recently Used (LRU) Least Frequently Used (LFU) Δεύτερης Ευκαιρίας (Second Chance) Βέλτιστης Αντικατάστασης (Optimal) Αλγόριθμοι δρομολόγησης First Come First Served (FCFS) Εκ Περιτροπής (Round Robin, RR) Προτεραιοτήτων (Priority) π.χ. (Shortest Job First, (SJF), Shortest Remaining Time First (SRTF)). 24

Ταξινόμηση Λειτουργικών Συστημάτων IV Πραγματικού χρόνου (Real time systems) Εξυπηρετεί τις εργασίες που του υποβάλλονται μέσα σε αυστηρούς χρονικούς περιορισμούς Ο χρόνος απόκρισης του συστήματος είναι αυστηρά ορισμένος Αν η εργασία δεν πάρει τον υπολογιστικό πόρο σύντομα τότε μπορεί να αποτύχει ή να παραχθούν λάθος αποτελέσματα Συστήματα ελέγχου εναέριας κυκλοφορίας, συστήματα ελέγχου ιατρικών μηχανημάτων, ελεγκτές οικιακών συσκευών κλπ. Στην πράξη ένα λειτουργικό σύστημα μπορεί να ανήκει σε περισσότερες από μια κατηγορίες. 25

Πολυ-προγραμματισμός και πολύ-επεξεργασία Ο πολύ-προγραμματισμός είναι μέθοδος των σύγχρονων λειτουργικών συστημάτων Η πολυεπεξεργασία αναφέρεται σε αρχιτεκτονικά χαρακτηριστικά ενός υπολογιστικού συστήματος: Περισσότεροι από ένας επεξεργαστές (ΚΜΕ) Κεντρικές μονάδες επεξεργασίας, Επεξεργαστές εισόδου-εξόδου Κανάλια δεδομένων Επεξεργαστές ειδικών χρήσεων Λειτουργούν ανεξάρτητα και παράλληλα Μπορεί όλοι ισοδύναμοι ή με ρόλους master-slave Ο κάθε επεξεργαστής έχει το δικό του Λειτουργικό Σύστημα Τα σύγχρονα λειτουργικά συστήματα υποστηρίζουν τα πολυεπεξεργαστικά συστήματα με έμφαση στο δυναμικό διαμοιρασμό της μνήμης. 26

Σύνοψη Βασικών Έννοιών Ορισμός Λειτουργικού Συστήματος Βασικές λειτουργίες των Λειτουργικών Συστημάτων Είδη Υπολογιστικών Συστημάτων Είδη Λειτουργικών Συστημάτων 27

Σύνοψη Λειτουργικών Συστημάτων Λειτουργικά συστήματα/υπολογιστικά Συστήματα Διαδικασίες Διακοπές Πολυπρογραμματισμός/Διαμοιρασμός χρόνου Χρονοδρομολόγηση διαδικασιών Συγχρονισμός διαδικασιών Ιδεατή μνήμη Διαχείριση μνήμης

ΟΡΓΑΝΩΣΗ ΜΑΘΗΜΑΤΟΣ Το μάθημα είναι οργανωμένο σε Διαλέξεις (Δευτέρες 18:00-21:00, ΑΑ) κ. Μακρής κ. Σιούτας Φροντιστήρια (Τρίτες 14:00-16:00, ΒΑ) κ. Ηλίας Εργασίες (για το σπίτι) Συνολικά ΔΥΟ (2) «μεγάλες» Ομαδικές (2 ατόμων) Τελικό διαγώνισμα 29

ΕΡΓΑΣΙΕΣ && ΕΞΕΤΑΣΗ ΜΑΘΗΜΑΤΟΣ Project 1 (25%): Script Shell Programming (UNIX [Linux]) + Θεωρητική άσκηση σε ΔΙΕΡΓΑΣΙΕΣ και ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Project 2 (25%): Multi-Threading Programming σε UNIX [Linux] ή Windows με χρήση free έκδοσηςvisual C++ 17 και χρήση σχετικών VIRTUAL BOXES ΓΡΑΠΤΗ ΕΞΕΤΑΣΗ (50%) IF ΒΓ>=5 ΤΗΕΝ TB=25%Pr1+25%Pr2+50%ΒΓ Αν κάποιος ΔΕΝ παραδώσει ασκήσεις, τότε ΠΡΟΦΑΝΩΣ πρέπει να γράψει 10 για να πάρει 5..!!! 30

Βαθμολόγηση Βαθμολόγηση Ασκήσεις: 50% Τελικό διαγώνισμα: 50% Κριτήρια για να περάσετε 1. Βαθμός διαγωνίσματος >= 5 2. Συνολικός μέσος όρος >= 5 Το 4.75 στρογγυλοποιείται στο 5. Το 4.5, όμως, όχι! Το μάθημα είναι αδιαίρετο Αν δεν το περάσετε, δίνετε τα πάντα εξ αρχής του χρόνου Όχι «à la carte» Σημαντική έμφαση στις ασκήσεις! ΔΕΝ ΥΠΑΡΧΕΙ ΕΠΑΝΑΛΗΠΤΙΚΗ ΕΞΕΤΑΣΗ/ΠΑΡΑΔΟΣΗ ΤΩΝ ΑΣΚΗΣΕΩΝ!! 31

Βαθμολόγηση (*) (*) Μόνο για φοιτητές που ακολουθούν το παλαιό πρόγραμμα σπουδών Παλαιό μάθημα «Λειτουργικά Συστήματα Ι» Δίνετε μόνο τη μία από τις δύο ασκήσεις (όποια επιθυμείτε) Ασκήσεις: 25% Τελικό διαγώνισμα: 75% Κριτήρια για να περάσετε 1. Βαθμός διαγωνίσματος >= 5 2. Συνολικός μέσος όρος >= 5 Παλαιό μάθημα «Εργαστήριο Λειτουργικών Συστημάτων» Δίνετε και τις δύο ασκήσεις Δεν υπάρχει τελικό διαγώνισμα Ο μέσος όρος των ασκήσεων είναι ο τελικός βαθμός 32

Ασκήσεις [1/2] Στις θεωρητικές απαιτείται κείμενο, διαγράμματα, ψευδοκώδικας. Στις προγραμματιστικές, τα προγράμματα που θα γράψετε δεν είναι πολύ μεγάλα. Προγραμματίστε ακριβώς ό,τι σας ζητάμε Τίποτα λιγότερο! Τίποτα περισσότερο!! Χρησιμοποιήστε ακριβώς τις μεθόδους που σας ζητάμε Π.χ., αν ζητάμε να υλοποιηθεί κάτι με threads, αλλά επειδή δυσκολευτήκατε ή δεν καταλάβατε κάτι καλά, το υλοποιήσατε με processes, δεν θα πάρετε τα credits που αναλογούν. 33

Ασκήσεις [2/2] Οι ασκήσεις ΔΕΝ θα είναι δύσκολες! Ωστόσο, θα είναι ΧΡΟΝΟΒΟΡΕΣ!!! Ξεκινήστε νωρίς! Διαβάστε το παρακάτω εύθυμο μεν, διδακτικό δε, κείμενο! How NOT to go about a programming assignment: http://faculty.washington.edu/dchinn/how-not-tocode.pdf http://faculty.washington.edu/dchinn/how-not-tocode.pdf 34

Documentation [1/4] Το documentation είναι απαραίτητο Θα αξιολογηθεί! Πρέπει να περιλαμβάνει Το όνομά σας, τον αριθμό μητρώου σας, το email σας Μια σύντομη περιγραφή του σχεδιασμού του προγράμματός σας Πρέπει να ΜΗΝ περιλαμβάνει Την εκφώνηση της άσκησης Τον κώδικά σας αυτούσιο Τον κώδικά σας σε λέξεις 35

Documentation [2/4] Το documentation πρέπει να περιγράφει: Τι προβλήματα αντιμετωπίσατε κατά την υλοποίηση της άσκησης Πως τα λύσατε Ποιες πιθανές λύσεις σκεφτήκατε και γιατί επιλέξατε όποια επιλέξατε Επίσης, το documentation πρέπει: Να αναφέρει (στην αρχή!) ποια τμήματα/προγράμματα της άσκησης υλοποιήσατε και ποια όχι. Ποια δουλεύουν σωστά Ποια δεν δουλεύουν Αν κάποιο πρόγραμμα που στείλατε δεν δουλεύει σωστά, αναφέρετέ το στο documentation. 36

Προθεσμίες Ασκήσεων [1/2] Η κάθε άσκηση θα έχει αυστηρά ορισμένη προθεσμία, που είναι πάντα τα μεσάνυχτα κάποιας μέρας. 1 η Εργαστηριακή Εργασία (Διαδικασίες, Διαχείριση Μνήμης και ShellScripting) 12/11/2018 2 η Εργαστηριακή Εργασία (Πολυνηματικός Προγραμματισμός και Συγχρονισμός) 3/12/2018 37

Κανόνες δεοντολογίας [1/2] Η αντιγραφή α-πα-γο-ρεύ-ε-ται!! Τι σημαίνει «αντιγραφή»; Αντιγραφή από έναν συμφοιτητή σας Αντιγραφή από web sites (π.χ., stack overlflow) Βοήθεια από «φροντιστήρια» Θα ελέγχουμε με αυτόματο τρόπο για αντιγραφή Το να μετονομάσετε μεταβλητές ή συναρτήσεις, δεν ξεγελάει τον έλεγχο! Σε περίπτωση αντιγραφής Μηδενίζεστε στην εν λόγω άσκηση ΚΑΙ αφαιρείται μία ακόμη μονάδα από τον τελικό βαθμό Δηλαδή, η αντιγραφή σε ΜΙΑ άσκηση στοιχίζει ΔΥΟ ασκήσεις! Αυτό ισχύει για όλους τους εμπλεκόμενους φοιτητές! Χωρίς κουβέντα! 38

Κανόνες δεοντολογίας [2/2] Πως γίνεται η αντιγραφή Πλησιάζει η προθεσμία Ένας πολύ καλός φίλος σας δεν ξέρει πως να υλοποιήσει μια άσκηση Σας ρωτάει το πώς Μπορείτε να συζητήσετε λύσεις (μόνο προφορικά!) και να δώσετε υποδείξεις Π.χ., «Σκέφτηκες να χρησιμοποιήσεις semaphores;» Σας είναι όμως πιο εύκολο να...στείλετε απλά τον κώδικα...το οποίο απαγορεύεται! Η προθεσμία έχει σχεδόν εκπνεύσει, κι ο φίλος σας παίρνει το ρίσκο του c(l)opy & paste Διαπιστώνουμε την αντιγραφή Και ο φίλος σας, αλλά και εσείς, μηδενίζεστε στην άσκηση!! Και εσείς αλλά και εμείς ερχόμαστε σε εξαιρετικά δυσάρεστη θέση Το ηθικό δίδαγμα: Συζητάτε γενικές ιδέες και υποδείξεις με τους φίλους σας Δεν μοιράζεστε όμως τον κώδικά σας με κανέναν!! 39

ΠΡΟΤΕΙΝΟΜΕΝΑ ΒΙΒΛΙΑ ΣΤΟΝ ΕΥΔΟΞΟ Βιβλίο [13884]: ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ, ANDREW S. TANENBAUM. Βιβλίο [14841]: Λειτουργικά συστήματα, Silberschatz Abraham,Galvin Peter B.,Gagne Greg. Για το πρώτο υπάρχει μία νεότερη έκδοση: Σύγχρονα λειτουργικά συστήματα, 4η έκδοση, Συγγραφείς: Άντριου Τανενμπάουμ, Herbert Bos. 40

Λειτουργικά Συστήματα Καλή αρχή!! 41

Ερωτήσεις Επιμέλεια: Σ.ΣΙΟΥΤΑΣ Χ.ΜΑΚΡΗΣ Α. ΗΛΙΑΣ 42