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



Σχετικά έγγραφα
ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Λειτουργικά συστήματα

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

Προγραμματισμός Ηλεκτρονικών Υπολογιστών 1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

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

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

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

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

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

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

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

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

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

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

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

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

ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)

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

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

Ερωτήσεις. ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Φθινόπωρο 2011

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

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

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

Εισαγωγή στην Πληροφορική. Αντώνης Σταµατάκης

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

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

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

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

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

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

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

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

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

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

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΕΡΩΤΗΣΕΙΣ ΓΙΑ ΕΠΑΝΑΛΗΨΗ

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

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

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

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

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

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

3/11/2014. Windows Unix. Linux. Mac OS Solaris. J. Glenn Brookshear

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

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

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

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

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

ΜΑΘΗΜΑ 3 MULTIPLE CHOICE

Συστήματα Πληροφοριών Διοίκησης Ενότητα 5: Λογισμικό Πληροφοριακών Συστημάτων

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

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

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

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

Εισ. Στην ΠΛΗΡΟΦΟΡΙΚΗ. Διάλεξη 4 η. Βασίλης Στεφανής

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

Εφαρμογές Υπολογιστών. Κεφάλαιο 4 Λογισμικό Συστήματος

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

Σχολ.έτος Κεφάλαιο 5 ο Γνωριμία με το Λογισμικό του Υπολογιστή.

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

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

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

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

Transcript:

Στόχοι ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 1 Να εξηγήσουμε τη διάκριση μεταξύ λογισμικού συστημάτων και λογισμικού εφαρμογών. Να περιγράψουμε τι είναι τα λειτουργικά συστήματα και να δούμε σύντομα την ιστορία της εξέλιξής τους. Να περιγράψουμε τις σημαντικότερες έννοιες και τεχνικές γύρω από τη διαχείριση μνήμης. Να περιγράψουμε τις βασικές έννοιες σε σχέση με τη διαχείριση διεργασιών. Να περιγράψουμε κάποιους απλούς αλγορίθμους για τον χρονοπρογραμματισμό της ΚΜΕ. Λειτουργικά συστήματα Υπολογιστικά συστήματα: Στρώματα Λογισμικό 2 3 επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό δεδομένα Λογισμικό (software) είναι το σύνολο των προγραμμάτων που μπορεί να εκτελέσει ένα υπολογιστικό σύστημα. λογισμικό 1

Λογισμικό: Δύο κατηγορίες Λογισμικό: Δύο κατηγορίες 4 Λογισμικό συστημάτων π.χ.: πρόγραμμα που στέλνει κείμενα στον εκτυπωτή πρόγραμμα που φορτώνει δεδομένα από τον σκληρό δίσκο στην κύρια μνήμη πρόγραμμα που εγκαθιστά την κάμερα πρόγραμμα που επιλέγει ποια διεργασία θα εκτελέσει η ΚΜΕ Λογισμικό εφαρμογών π.χ.: πρόγραμμα επεξεργασίας κειμένων (word processor) ιστοπληγός (web browser) πρόγραμμα ηλεκτρονικού ταχυδρομείου πρόγραμμα ζωγραφικής πρόγραμμα διαχείρισης βάσης δεδομένων πρόγραμμα επεξεργασίας φύλλων εργασίας 5 Λογισμικό συστημάτων Λογισμικό συστημάτων (system software) είναι τα προγράμματα που εξυπηρετούν ανάγκες του υλικού του Η/Υ. Η ύπαρξη και λειτουργία του δεν γίνεται άμεσα αντιληπτή στον χρήστη. Χρησιμοποιείται κατά την κατασκευή ή εκτέλεση του λογισμικού εφαρμογών. Λογισμικό εφαρμογών Λογισμικό εφαρμογών (applications software) είναι τα προγράμματα που εξυπηρετούν ανάγκες του γενικού χρήστη. Ο χρήστης έρχεται σε επαφή μαζί του καθημερινά. Κατά την εκτέλεσή του χρησιμοποιεί το λογισμικό συστημάτων. Λογισμικό: Δύο κατηγορίες Λογισμικό: Δύο κατηγορίες 6 γραφικό περιβάλλον λογισμικό συστημάτων λογισμικό εφαρμογών πρόγραμμα ζωγραφικής ηλεκτρονικό ταχυδρομείο επεξεργαστής κειμένου πυρήνας λειτουργικού συστήματος διαχείριση βάσης δεδομένων πλοηγός ιστού οδηγός οδηγός οδηγός οδηγός οδηγός οδηγός οδηγός οδηγός 7 Λογισμικό συστημάτων λειτουργικά συστήματα (operating systems): Unix, Windows, Ubuntu, κ.ά. οδηγοί υλικού (device drivers): μεσολαβούν μεταξύ και μιας συσκευής. προγράμματα υπηρεσιών (utilities): π.χ. μορφοποίηση δίσκου, παύση διεργασιών. μεταγλωττιστές, φραστές (assemblers, compilers): π.χ. μεταφραστής C++. Λογισμικό εφαρμογών λογισμικό γενικής χρήσης: π.χ. Emacs, Acrobat Reader, Firefox, Real Player, κ.ά. εξειδικευμένο λογισμικό: π.χ. διαχείριση εστιατορίου, διαχείριση αποθήκης, λογιστικά πακέτα, κ.ά. ολοκληρωμένο λογισμικό: συλλογή εφαρμογών με συγγενές αντικείμενο π.χ. MS Office, Lotus Notes. 2

Λειτουργικά συστήματα Λειτουργικά συστήματα 8 Λειτουργικό σύστημα (, operating system, OS) είναι ένα σύνολο προγραμμάτων που: προσφέρουν το περιβάλλον μέσω του οποίου ο χρήστης επικοινωνεί με το υλικό του Η/Υ. προσφέρουν το περιβάλλον μέσω του οποίου οι εφαρμογές εκτελούνται στο υλικό του Η/Υ. κατανέμουν τους πόρους του υπολογιστή στα προγράμματα που ζητούν να τους χρησιμοποιήσουν. διευκολύνουν τη ρύθμιση των παραμέτρων του υλικού του Η/Υ ώστε να λειτουργεί αποδοτικά. 9 γραφικό περιβάλλον πρόγραμμα ζωγραφικής ηλεκτρονικό ταχυδρομείο επεξεργαστής κειμένου πυρήνας λειτουργικού συστήματος διαχείριση βάσης δεδομένων πλοηγός ιστού οδηγός οδηγός οδηγός οδηγός οδηγός οδηγός οδηγός οδηγός Εκκίνηση λειτουργικού συστήματος Εκκίνηση λειτουργικού συστήματος 10 Το αναλαμβάνει τον έλεγχο λίγο μετά την εκκίνηση του Η/Υ. Αναλυτικά, κατά την εκκίνηση (booting process): 1.Εκτελείται ένα μικρό σύνολο εντολών ΚΜΕ από προκαθορισμένη θέση της. 2.Αυτές αντιγράφουν τμήμα του από τη δευτερεύουσα μνήμη στην κύρια. 3.Ο έλεγχος μεταφέρεται σε αυτό το α ντίγραφο, που φορτώνει στην κύρια μνήμη και άλλα τμήματα του. 11 Το αναλαμβάνει τον έλεγχο λίγο μετά την εκκίνηση του Η/Υ. Αναλυτικά, κατά την εκκίνηση (booting process): 4.Ο έλεγχος μεταφέρεται στα φορτωμένα τμήματα του. Αυτά παρουσιά ΚΜΕ ζουν στον χρήστη το γραφικό περιβάλλον και αρχίζουν να κατανέμουν τους πόρους του Η/Υ στα προγράμματα που καλεί ο χρήστης. σκληρός δίσκος σκληρός δίσκος 3

Εκκίνηση λειτουργικού συστήματος Παραδείγματα : Windows 12 Ερώτηση: Ένας Η/Υ μπορεί να εκτελεί μόνο κάποιο συγκεκριμένο λειτουργικό σύστημα; ΚΜΕ Απάντηση: Δεν υπάρχει περιορισμός. Ο Η/Υ θα εκτελέσει όποιο λειτουργικό σύστημα βρεθεί στην περιοχή του σκληρού δίσκου όπου ψάχνουν οι εντολές της. 13 σκληρός δίσκος Παραδείγματα : Mac OS Παραδείγματα : Ubuntu 14 15 4

Παραδείγματα : Linux Παραδείγματα : Palm OS 16 17 Παραδείγματα : Symbian OS Παραδείγματα : Apple ios 18 19 5

Παραδείγματα : Android OS Κατηγορίες 20 21 Τα λειτουργικά συστήματα μπορούν να διακριθούν: Με βάση το πλήθος των χρηστών που μπορούν να χρησιμοποιήσουν τον Η/Υ, σε: 1. ενός χρήστη (single-user): PalmOS, SymbianOS. 2. πολλών χρηστών (multi-user): Windows, Linux, MacOS. Με βάση το πλήθος των εργασιών που μπορούν να εκτελούνται ταυτόχρονα: 1. μίας εργασίας (single-tasking): PalmOS, SymbianOS. 2. πολλών εργασιών (multi-tasking): Windows, Linux, MacOS. Εξέλιξη Εξέλιξη : Επεξεργασία κατά δεσμίδες 22 Τα λειτουργικά συστήματα έφθασαν να έχουν την σημερινή τους πολυπλοκότητα και ποικιλία μετά από δεκαετίες εξέλιξης. Ας δούμε κάποια σημαντικά στάδια της εξέλιξης αυτής. 23 Στις δεκαετίες 60 70, οι Η/Υ ήταν ογκώδεις, δύσχρηστοι, ακριβοί, και δυσεύρετοι. Μπορούσαν να τους χρησιμοποιούν μόνο οι εργαζόμενοι σε πανεπιστήμια/εταιρίες. Για να χρησιμοποιήσει τον Η/Υ, ο χρήστης τύπωνε σε διάτρητες κάρτες (punch cards) το πρόγραμμα που ήθελε να εκτελέσει (με οδηγίες για τους πόρους που απαιτεί). Το αποτέλεσμα ήταν μια στοίβα καρτών (εργασία, job). 6

Εξέλιξη : Επεξεργασία κατά δεσμίδες Εξέλιξη : Επεξεργασία κατά δεσμίδες 24 Στη συνέχεια, ο χρήστης παρέδιδε την εργασία στον χειριστή (operator) του Η/Υ, έναν εξειδικευμένο υπάλληλο. Αυτός προετοίμαζε τον Η/Υ για να διαβάσει τη στοίβα των καρτών και να εκτελέσει το πρόγραμμα. Μετά το πέρας της εκτέλεσης, ο χρήστης ειδοποιούνταν να παραλάβει μια εκτύπωση των αποτελεσμάτων. 25 Ο χειριστής δεν εκτελούσε κάθε εργασία χωριστά, αλλά τις ομαδοποιούσε σε δεσμίδες (batches) ανάλογα με τους πόρους που απαιτούσαν, και εκτελούσε τις δεσμίδες. Έτσι, αντί να ετοιμάζει τον Η/Υ πριν την εκτέλεση κάθε εργασίας, τον ετοίμαζε πριν την εκτέλεση κάθε δεσμίδας. Η διαδικασία είναι γνωστή ως επεξεργασία κατά δεσμίδες (batch processing) και επιβιώνει με κάποιες μορφές και στα σύγχρονα. εργασία εργασία εργασία εργασία χειριστής δεσμίδα δεσμίδα Η/Υ Εξέλιξη : Επεξεργασία κατά δεσμίδες Εξέλιξη : Πολυπρογραμματισμός 26 ΚΜΕ εργασία #1 #2 #3 #4 Ο ρόλος του ήταν απλώς να φορτώνει τις εργασίες της δεσμίδας στη μνήμη και να μεταφέρει τον έλεγχο: 1. Τον έλεγχο έχει το. 2. Το φορτώνει στη μνήμη την εργ#1 και της δίνει τον έλεγχο. 3. Η εργ#1 τερματίζει και ο έλεγχος επιστρέφει στο. 4. Το φορτώνει στη μνήμη την εργ#2 και τις δίνει τον έλεγχο. 5. Η εργ#2 τερματίζει και ο έλεγχος επιστρέφει στο. 6. 27 εργασία #2 ΚΜΕ Πρόβλημα: Έστω ότι η εργ#2 ζητάει από τον εκτυπωτή να τυπώσει έναν μεγάλο όγκο δεδομένων. Όσο τα δεδομένα μεταφέρονται στον εκτυπωτή, η ΚΜΕ μένει ανενεργή παρόλο που η εργ#3 περιμένει Λύση: Πολυπρογραμματισμός (multi programming). ) Οι εργασίες φορτώνονται ταυτόχρονα στη μνήμη. Όποτε αυτή που έχει τον έλεγχο δεν χρησιμοποιεί την ΚΜΕ (επειδή περιμένει κάποια Ε/Ε), το μεταφέρει τον έλεγχο στην επόμενη. 7

Εξέλιξη : Πολυπρογραμματισμός Εξέλιξη : Χρονομερισμός 28 ΚΜΕ διεργασία #4 διεργασία #3 διεργασία #2 Π.χ.: 1. Τον έλεγχο έχει το και φορτώνει τις εργασίες στη μνήμη. 2. Το δίνει τον έλεγχο στη διεργ#1. 3. Η διεργ#1 αρχίζει να τυπώνει και ο έλεγχος επιστρέφει στο. 4. Το δίνει τον έλεγχο στη διεργ#2. 5. Ηδιεργ#2 τερματίζει και ο έλεγχος επιστρέφει στο. 6. Ένα πρόγραμμα που έχει φορτωθεί στην μνήμη για να εκτελεστεί λέγεται διεργασία (process). 29 ΚΜΕ διεργασία #4 διεργασία #3 διεργασία #2 Πρόβλημα: Έστω ότι η διεργ#2 απασχολεί την ΚΜΕ διαρκώς για ώρες, ενώ η διεργ#3 την χρειάζεται μόνο για λίγα λεπτά. Η διαχείριση αδικεί την διεργ#3 Λύση: Χρονομερισμός (time sharing). Το μεταφέρει τον έλεγχο στην κάθε διεργασία μόνο για κάποιο μικρό χρόνο. Όταν αυτός εξαντληθεί, το ανακτά τον έλεγχο και τον μεταφέρει στην επόμενη διεργασία, πάλι για μικρό χρόνο, κ.ο.κ. Εξέλιξη : Χρονομερισμός Εξέλιξη : Διαχείριση πόρων 30 ΚΜΕ διεργασία #4 διεργασία #3 διεργασία #2 Η διαχείριση είναι πολύ πιο δίκαιη. Αν η ΚΜΕ είναι αρκετά ισχυρή και διεργασίες σχετικά λίγες, η εναλλαγή μεταξύ τους δεν προκαλεί πρόβλημα. Ακόμη κι αν εκτελούν διαδραστικά προγράμματα, ο χρήστης βλέπει (στο τερματικό) σχεδόν ό,τι θα έβλεπε και αν η διεργασία του χρησιμοποιούσε την ΚΜΕ αποκλειστικά. Αυτός ο νοητός αποκλειστικός Η/Υ που μοιάζει να έχει μπροστά του ο χρήστης λέγεται νοητή μηχανή (virtual machine). 31 Ωςαποτέλεσματηςεξέλιξήςτους τα σύγχρονα έχουν Ως αποτέλεσμα της εξέλιξής τους, τα σύγχρονα έχουν φθάσει να επιτελούν ένα πολύ σύνθετο έργο: 1. παρακολούθησης όλων των διεργασιών που είναι φορτωμένες στην κύρια μνήμη, και 2. κατανομής των πόρων του συστήματος (ΚΜΕ, κύρια/δευτερεύουσα μνήμη, μονάδες Ε/Ε) στις διεργασίες αυτές. 8

Εξέλιξη : Διαχείριση πόρων Διαχείριση μνήμης: Φόρτωση 32 Διεργασίες και επίδοση συστήματος, όπως φαίνονται στον Task Manager του Windows. 33 LOAD 200 R1 LOAD 201 R2 +14-10 70 71 200 201 Κάθε στιγμή, στη συνυπάρχουν το και 0 διεργασίες. Για να φορτώσει ένα πρόγραμμα από τη δευτερεύουσα μνήμη στη, το αντιγράφει τις λέξεις μία προς μία. Η αντιγραφή γίνεται σε όποια συνεχή περιοχή της μνήμης είναι βολική. Ερώτηση: Πώς ξέρει το πρόγραμμα πού στη μνήμη θα βρεθούν τα δεδομένα του; Π.χ., πώς ήξερε η εντολή «LOAD 200 R1» ότι ο αριθμός «+14» θα κατέληγε πράγματι στη θέση 200 της μνήμης; Διαχείριση μνήμης: Φόρτωση Διαχείριση μνήμης: Συνεχής 34 LOAD 200 R1 LOAD 201 R2 +14-10 70 71 200 201 Ερώτηση: Πώς ξέρει το πρόγραμμα πού στη μνήμη θα βρεθούν τα δεδομένα του; Απάντηση: Δεν ξέρει. Στη δευτερεύουσα μνήμη, το πρόγραμμα αναφέρεται στα δεδομένα μέσω λογικών διευθύνσεων (logical addresses): π.χ. μέσω των θέσεών τους εντός του προγράμματος. Κατά τη φόρτωση, το μετατρέπει τις λογικές διευθύνσεις σε φυσικές διευθύνσεις (physical addresses). Η μετατροπή αυτή λέγεται συσχέτιση διευθύνσεων (address binding). 35 Σε ένα μονοπρογραμματιστικό, κάθε στιγμή η μνήμη περιέχει μόνο το και μία διεργασία, η οποία ελέγχει όλη τη που δεν χρησιμοποιεί το. Αυτό λέγεται διαχείριση συνεχούς μνήμης (single contiguous memory management). Έχει όλα τα μειονεκτήματα του μονοπρογραμματισμού. Επιπλέον: Ερώτηση: Τι γίνεται αν το πρόγραμμα δεν χωράει στη μνήμη; Απάντηση: Δεν εκτελείται... 9

Διαχείριση μνήμης: Διαμέριση Διαχείριση μνήμης: Διαμέριση 36 Σε ένα πολυπρογραμματιστικό, κάθε στιγμή η μνήμη περιέχει το και πολ λές διεργασίες. Μια μέθοδος να διαχειριστούμε την μνήμη είναι να την χωρίσουμε σε διαμερίσματα, καθένα από τα οποία να φιλοξενεί μία διεργασία. Τα διαμερίσματα μπορεί να είναι ισο ή ανισομεγέθη, σταθερά ή μεταβλητά. Αυτό λέγεται διαμέριση (partitioning). διεργασία #4 διεργασία #5 διεργασία #3 διεργασία #2 37 Μειονεκτήματα: Με σταθερά διαμερίσματα, είναι δύ σκολο να επιλέξουμε σωστό μέγεθος (μικράκάποια προγράμματα ίσως να μη χωρέσουν μεγάλαπολλά κενά). Με μεταβλητά διαμερίσματα, αυξάνει η πολυπλοκότητα του και η χρονική επιβάρυνση που επιφέρει. Επιπλέον: Ερώτηση: Τι γίνεται αν ένα πρόγραμμα δεν χωράει στη μνήμη; Απάντηση: Όπως πριν, δεν εκτελείται... διεργασία #4 διεργασία #5 διεργασία #2 Διαχείριση μνήμης: Σελιδοποίηση Διαχείριση μνήμης: Σελιδοποίηση 38 διεργασία #4, σελ. #5 διεργασία #4, σελ. #4 διεργασία #3, σελ. #2 διεργασία #3, σελ. #1 διεργασία #2, #4, σελ. #3 διεργασία #2, #4, σελ. #2 διεργασία #2, #4, σελ. #1 Μια άλλη μέθοδος είναι να χωρίσουμε και τα προγράμματα σε τμήματα: Κάθε πρόγραμμα χωρίζεται σε σελίδες (pages). Η μνήμη χωρίζεται σε πλαίσια (frames), με μέγεθος αυτό των σελίδων. Το φορτώνει κάθε σελίδα ενός προγράμματος σε ένα πλαίσιο. Τα πλαίσια που φιλοξενούν ένα πρόγραμμα δεν είναι απαραιτήτως γειτονικά. Αυτό λέγεται σελιδοποίηση (paging). 39 διεργασία #4, σελ. #5 διεργασία #4, σελ. #4 διεργασία #3, σελ. #2 διεργασία #3, σελ. #1 διεργασία #2, #4, σελ. #3 διεργασία #2, #4, σελ. #2 διεργασία #2, #4, σελ. #1 Ερώτηση: Τι γίνεται αν ένα πρόγραμμα δεν χωράει στη μνήμη; Απάντηση: Μπορεί να εκτελεστεί! Πώς; Το εκτελεί το πρόγραμμα ακόμη και χωρίς να είναι φορτωμένες όλες του οι σελίδες. Όποτε η εκτέλεση απαιτήσει σελίδα που δεν είναι στη μνήμη, η σελίδα φορτώνεται (σε πλαίσιο άλλης, που δεν χρησιμοποιείται) και η εκτέλεση συνεχίζει. Το αποτέλεσμα λέγεται εικονική μνήμη (virtual memory): η κύρια μνήμη «μοιάζει» τόσο μεγάλη όσο η δευτερεύουσα. 10

Διαχείριση διεργασιών Διαχείριση διεργασιών 40 Ερώτηση: Πώς κατορθώνει το να παρακολουθεί την εκτέλεση πολλών διεργασιών στην ίδια ΚΜΕ; Πριν απαντήσουμε, πρέπει να περιγράψουμε όλες τις διαφορετικές καταστάσεις στις οποίες μπορεί να βρεθεί μια διεργασία. 41 ο πόρος που αναζητήθηκε αποκρίνεται αναμονή Η εκτέλεση της διεργασίας μπορεί να συνεχίσει μόνο αφού αποκριθεί ο πόρος. αναζητείται κάποιος πόρος (π.χ. η επόμενη σελίδα από τον σκληρό δίσκο). Η εκτέ ετοιμότητα λεση της διεργασίας μπορεί να συνεχίσει μόλις ευκαιρέσει η ΚΜΕ. διακοπή από το επιλογή από το εκτέλεση Ο κύκλος μηχανής εκτελεί μόνο εντολές της διεργασίας. δημιουργία τερματισμός έναρξη τέρμα Διαχείριση διεργασιών Διαχείριση διεργασιών 42 Για κάθε κατάσταση (έναρξη, ετοιμότητα, αναμονή, εκτέλεση, τέρμα), το διατηρεί και παρακολουθεί έναν κατάλογο. Ο κατάλογος της κατάστασης s περιέχει 1 εγγραφή για κάθε διεργασία που είναι στην κατάσταση s. 43 16 διεργασίες συνολικά αναμονή 5 διεργασίες Η εγγραφή περιέχει πληροφορίες για την διεργασία, π.χ.: πού βρίσκεται στη μνήμη, ποια είναι η επόμενη προς εκτέλεση εντολή της, τι περιείχαν οι καταχωρητές της ΚΜΕ την τελευταία φορά που διακόπηκε η εκτέλεση της διεργασίας. ετοιμότητα? διεργασίες εκτέλεση Ερώτηση: Αν η κύρια μνήμη περιέχει 16 διεργασίες και οι κατάλογοι για τις καταστάσεις έναρξη, αναμονή, τερματισμός περιέχουν αντίστοιχα 4, 5, και 1 διεργασίες, πόσες διεργασίες περιέχει ο κατάλογος για την ετοιμότητα; έναρξη 4 διεργασίες 1 διεργασία τέρμα 11

Διαχείριση διεργασιών 44 Ερώτηση: Αν η κύρια μνήμη περιέχει 16 διεργασίες και οι κατάλογοι για τις καταστάσεις έναρξη, αναμονή, τερματισμός περιέχουν αντίστοιχα 4, 5, και 1 διεργασίες, πόσες διεργασίες περιέχει ο κατάλογος για την ετοιμότητα; 45 Ερώτηση: Όποτε πρέπει να αντικατασταθεί η υπό εκτέλεση διερ γασία, πώς το επιλέγει τον α ντικαταστάτη της από αυτές που βρίσκονται σε ετοιμότητα; ετοιμότητα έναρξη αναμονή P τέρμα Απάντηση: 4 διεργασίες σε έναρξη 5 διεργασίες σε αναμονή 1 διεργασίες σε τερματισμό 1 διεργασία σε εκτέλεση (προφανώς) 11 διεργασίες συνολικά, εκτός ετοιμότητας Κάθε απαντά σε αυτό το ερώτημα με ένα σύνολο κανόνων για να προγραμματίζει ποια διεργασία θα εκτελεί κάθε φορά η ΚΜΕ. Λέμε ότι οι κανόνες αυτοί συνιστούν έναν αλγόριθμο χρονοπρογραμματισμού της ΚΜΕ (CPU scheduling algorithm). Άρα σε ετοιμότητα βρίσκονται 16 11 = 5 διεργασίες. 46 Ο αλγόριθμος χρονοπρογραμματισμού καλείται όποτε ενδέχεται ετοιμότητα P αναμονή να αλλάξει η υπό εκτέλεση διεργασία P, δηλαδή: έναρξη τέρμα 1. όποτε η P τερματίσει, 2. όποτε η P τεθεί σε αναμονή, 3. όποτε η P εξαντλήσει τον χρόνο που της ανατέθηκε, 4. όποτε κάποια διεργασία σε αναμονή τεθεί σε ετοιμό τητα (ίσως να έχει προτεραιότητα έναντι της P). Στις περιπτώσεις 3 και 4, ο χρονοπρογραμματισμός που συντελείται λέγεται προεκτοπιστικός (preemptive). Στις 1 και 2, λέγεται μη προεκτοπιστικός (non-preemptive). 47 Τρεις απλοί αλγόριθμοι χρονοπρογραμματισμού: 1. Κατά σειρά άφιξης (first-come first-served, FCFS): εφαρμόζεται μη προεκτοπιστικά και προτάσσει τη διεργασία που τέθηκε νωρίτερα σε ετοιμότητα. 2. Κατά μικρότερο χρόνο εκτέλεσης (shortest job next, SJN): εφαρμόζεται μη προεκτοπιστικά και προτάσσει τη διεργασία που θα απασχολήσει λιγότερο την ΚΜΕ. 3. Κυκλικά ά( (round d robin, RR): εφαρμόζεται προεκτοπιστικά και διατρέχει τις διεργασίες κυκλικά. Η ΚΜΕ εκτελεί κάθε διεργασία για το πολύ 1 κβάντο χρόνου (time slice) τη φορά. Αν αυτό εξαντληθεί, το επιστρέφει τη διεργασία σε κατάσταση ετοιμότητας, και αρχίζει να εκτελεί την επόμενη από τις διεργασίες σε ετοιμότητα. 12

48 Ερώτηση: Έστω ότι οι διεργασίες p 1, p 2, p 3, p 4, p 5 τίθενται σε ετοιμότητα σχεδόν ταυτόχρονα (αλλά με την παραπάνω σειρά) και ότι θα απασχολήσουν την ΚΜΕ για όσες χρονικές μονάδες αναφέρει ο πίνακας: p 1 p 2 p 3 p 4 p 5 140 75 320 280 125 49 Απάντηση: Με τον FCFS, οι διεργασίες «μπαίνουν» στην ΚΜΕ με την σειρά: p 1, p 2, p 3, p 4, p 5 και την απασχολούν κατά το παρακάτω διάγραμμα Gantt: p 1 p 2 p 3 p 4 p 5 140 75 320 280 125 Για καθέναν από τους αλγορίθμους FCFS, SJN, RR, ποιο είναι το διάγραμμα Gantt (Gantt chart) που θα προκύψει αν εφαρμόσουμε τον αλγόριθμο σε αυτές τις διεργασίες; (Το διάγραμμα Gantt απεικονίζει ποια διεργασία εκτελεί η ΚΜΕ κάθε στιγμή βλ. επόμενες σελίδες.) 0 140 215 535 815 940 p 1 p 2 p 3 p 4 p 5 50 Απάντηση: Με τον SJN, οι διεργασίες «μπαίνουν» στην ΚΜΕ με την σειρά: p 2, p 5, p 1, p 4, p 3 και την απασχολούν κατά το παρακάτω διάγραμμα Gantt: p 1 p 2 p 3 p 4 p 5 140 75 320 280 125 51 Απάντηση: Με τον RR, οι διεργασίες «μπαίνουν» στην ΚΜΕ με την σειρά: p 1, p 2, p 3, p 4, p 5, p 1, p 2, p 3,... και την απασχολούν κατά το παρακάτω διάγραμμα Gantt (έστω κβάντο 50 μονάδων): p 1 p 2 p 3 p 4 p 5 140 75 320 280 125 0 75 200 340 620 940 p 2 p 5 p 1 p 4 p 3 0 50 100 250 325 515 640 940 p 1 p 2 p 3 p 4 p 5 p 1 2 p 3 p 4 p 5 1 p 3 p 4 5 p 3 p 4 p 3 p 4 p 3 4 3 13

52 Ερώτηση: Ποιος από τους αλγορίθμους είναι καλύτερος; Απάντηση: Δεν υπάρχει μοναδικό κριτήριο. Ένα από τα κριτήρια που χρησιμοποιούνται είναι ο μέσος χρόνος ολοκλήρωσης (average turnaround time) επί όλων των διεργασιών. Εδώ, χρόνος ολοκλήρωσης (turnaround time) μιας διεργα σίας είναι ο χρόνος που μεσολαβεί από τη στιγμή που η διεργασία τίθεται σε ετοιμότητα για πρώτη φορά μέχρι τη στιγμή που παύει να εκτελείται για τελευταία φορά. 53 Ερώτηση: Αν όλες οι διεργασίες τέθηκαν ταυτόχρονα σε ετοιμότητα, ποιος είναι ο μέσος χρόνος ολοκλήρωσης στα παρακάτω διαγράμματα Gantt; 0 140 215 535 815 940 p 1 p 2 p 3 p 4 p 5 Απάντηση: (140+215+535+815+940)/5 = 529 0 75 200 340 620 940 p 2 p 5 p 1 p 4 p 3 Απάντηση: (75+200+340+620+940)/5 = 435 0 50 100 250 325 515 640 940 p 1 p 2 p 3 p 4 p 5 p 1 2 p 3 p 4 p 5 1 p 3 p 4 5 p 3 p 4 p 3 p 4 p 3 4 3 Απάντηση: (515+325+940+920+640)/5 = 668 Στόχοι 54 Επομένως, από την άποψη του μέσου χρόνου ολοκλήρωσης, η αλγόριθμος SJN ήταν ο καλύτερος. Όμως ο SJN έχει και μειονεκτήματα: 1. Δεν είναι πάντα δυνατόν να γνωρίζουμε την διάρκεια των διεργασιών. 2. Δεν αποκλείει το φαινόμενο της στέρησης (starvation). (Πρόκειται για το φαινόμενο κατά το οποίο μια διεργασία δεν εκτελείται ποτέ διότι διαρκώς καταφθάνουν και τίθενται σε ετοιμότητα άλλες διεργασίες, με μικρότερη διάρκεια.) 55 Να εξηγήσουμε τη διάκριση μεταξύ λογισμικού συστημάτων και λογισμικού εφαρμογών. Να περιγράψουμε τι είναι τα λειτουργικά συστήματα και να δούμε σύντομα την ιστορία της εξέλιξής τους. Να περιγράψουμε τις σημαντικότερες έννοιες και τεχνικές γύρω από τη διαχείριση μνήμης. Να περιγράψουμε τις βασικές έννοιες σε σχέση με τη διαχείριση διεργασιών. Να περιγράψουμε κάποιους απλούς αλγορίθμους για τον χρονοπρογραμματισμό της ΚΜΕ. 14