Εισαγωγή στα Λειτουργικά Συστήματα. Λειτουργικά Συστήματα 7ο εξάμηνο ΣΗΜΜΥ ακ. έτος 2015-2016 http://www.cslab.ece.ntua.gr/courses/os.



Σχετικά έγγραφα
Δευτέρα 12:45-14:30 (Ν. κτ. Ηλεκτρ. Αμφ 1) Θεωρία Μαθήματος Παρουσίαση Εργαστηριακών Ασκήσεων

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

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

Συστήματα Αρχείων (Σ.Α.)

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

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

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

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

Οργάνωση Υπολογιστών (IΙI)

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

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

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

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

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

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

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

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

Εικονική Μνήμη (1/2)

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

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

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

Εργαστήριο Λειτουργικών Συστήματων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

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

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

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

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

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

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

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

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

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

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

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

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

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

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

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

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

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

Information Technology for Business

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

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

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

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

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

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

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

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

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

Διάλεξη 1. Εισαγωγή Επισκόπηση άσκησης

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

Προγραμματισμός με BSD Sockets σε περιβάλλον Linux

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

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

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

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

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

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

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

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

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

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

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

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

Πληροφορίες για το μάθημα. Ευάγγελος Παπαπέτρου

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

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

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

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

Δίκτυα Υπολογιστών. Πληροφορίες για το μάθημα. Ευάγγελος Παπαπέτρου. Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων

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

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

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

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

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

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Οργάνωση Υπολογιστών (Ι)

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

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

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 12 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα ΜηχανικώνΗ/Υ, Τηλεπικοινωνιών και ικτύων

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 1 ο

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

Μεθόδων Επίλυσης Προβλημάτων

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

Transcript:

Εισαγωγή στα Λειτουργικά Συστήματα Λειτουργικά Συστήματα 7ο εξάμηνο ΣΗΜΜΥ ακ έτος 2015-2016 http://wwwcslabecentuagr/courses/os CSLab National Technical University of Athens Διδάσκοντες: Νεκτάριος Κοζύρης nkoziris@cslabecentuagr Γιώργος Γκούμας goumas@cslabecentuagr Βαγγέλης Κούκης vkoukis@cslabecentuagr Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ Οκτώβριος 2015 1 / 36

Μαθήματα Δευτέρα 12:45-14:30 (Ν κτ Ηλεκτρ Αμφ 1) Θεωρία Μαθήματος Συνοπτικές παρουσιάσεις εργαστηριακών ασκήσεων Πέμπτη: Εργαστήριο (Κτ Υπολογιστή, δίπλα στο Αμφ Πληροφορικής) Αναλυτικές παρουσιάσεις εργαστηριακών ασκήσεων Υλοποίηση ασκήσεων Επίλυση αποριών Επίδειξη ασκήσεων 2 / 36

Μάθημα Βαθμολογία: 5 Βαθμοί η τελική (γραπτή) εξέταση 5 Βαθμοί το εργαστήριο Απαιτείται προβιβάσιμος βαθμός στο γραπτό ΠΡΟΣΟΧΗ!: Σε περιπτώσεις μεγάλων αποκλίσεων ανάμεσα στο βαθμό εργαστηρίου και γραπτού, δίνεται μεγαλύτερη βαρύτητα στο γραπτό Τελική Εξέταση: Κλειστά βιβλία Ένα Α4 φύλλο (σκονάκι) Απαιτείται: Παρουσία και συμμετοχή στο εργαστήριο Παρακολούθηση και ενασχόληση με το μάθημα (όχι 1 εβδομάδα πριν την εξεταστική) 3 / 36

Εργαστήριο Εργαστηριακές Ασκήσεις Προγραμματισμός σε περιβάλλον Linux Πέμπτη 9-11 11-13 13-15 15-17 17-19 19-21 Εξέταση ασκήσεων: ασκήσεις που δεν εξετάζονται εμπρόθεσμα θα έχουν βαθμολογική επιβάρυνση 4 / 36

Επικοινωνία Ιστοσελίδα μαθήματος: wwwcslabecentuagr/courses/os Mailing List: listscslabecentuagr/mailman/listinfo/os Απαραίτητη προϋπόθεση η εγγραφή σας στη λίστα! Η διαδικασία εγγραφής περιλαμβάνει αυτόματο mail επιβεβαίωσης που στέλνεται από το σύστημα Σε περίπτωση που δεν το λάβετε ελέγξτε και το φάκελο Junk του email client σας Mail διδασκόντων: {goumas,nkoziris,vkoukis}@cslabecentuagr Mail εργαστηριακών υπευθύνων: oslab-reports-x@cslabecentuagr όπου Χ =A, B, C, D, E, F για τις βάρδιες 9-11, 11-13, 13-15, 15-17, 17-19, 19-21 αντίστοιχα 5 / 36

Καλές πρακτικές χρήσης της λίστας του μαθήματος Η λίστα ενδείκνυται για επίλυση αποριών Επικοινωνούμε απευθείας με τους διδάσκοντες για διαδικαστικά θέματα του μαθήματος και με τους υπεύθυνους του εργαστηρίου για διαδικαστικά θέματα εργαστηρίου (πχ απουσία, μη τήρηση προθεσμίας, κλπ) Κάνουμε μια μικρή αναζήτηση στο διαδίκτυο για να επιβεβαιώσουμε ότι η απορία μας δεν έχει απλή απάντηση Προαιρετικά μπορούμε να αναζητήσουμε απάντηση και στο αρχείο της λίστας http://listscslabecentuagr/mailman/private/os/ Δεν απαντάμε σε απορίες συμφοιτητών μας και δεν ανοίγουμε θέματα συζήτησης μεταξύ των φοιτητών Καταβάλουμε προσπάθεια οι απορίες μας να είναι είναι συνοπτικά διατυπωμένες και ο λόγος μας καλά δομημένος Δεν στέλνουμε κώδικα από εργασίες σε εξέλιξη Έχοντας λάβει υπόψη τα παραπάνω, δε διστάζουμε να στείλουμε mail στη λίστα! 6 / 36

Βιβλιογραφία (1/3) Operating System Concepts, Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, Wiley 8th edition, 2008 Operating Systems: Internals and Design Principles William Stallings, Prentice Hall, 6th edition, 2008 Modern Operating Systems, Andrew S Tannenbaum, Prentice Hall, 3rd edition, 2007 Operating Systems Design and Implementation, A S Tannenbaum, A S Woodhull, Prentice Hall, 3rd edition, 2007 The Design of the Unix Operating System, M Bach, Prentice Hall, 1986 7 / 36

Βιβλιογραφία (2/3) The Design and Implementation of the 44 BSD Operating System, Marshall Kirk McKusick, Keith Bostic, Michael J Karels, John S Quarterman, Addison-Wesley Professional, 2nd edition,1996 The Design and Implementation of the FreeBSD Operating System, Marshall Kirk McKusick, George V Neville-Neil, Addison-Wesley Professional, 1st edition, 2004 The Magic Garden Explained: The Internals of Unix System V Release 4: An Open Systems Design, Berny Goodheart, James Cox, Prentice Hall, 1995 UNIX Internals: The New Frontiers, Uresh Vahalia, Prentice Hall, 1995 8 / 36

Βιβλιογραφία (3/3) Understanding the Linux Kernel, Daniel Bovet, Marco Cesati, O' Reilly Media, 3rd edition, 2005 Linux Device Drivers, Jonathan Corbet, Alessandro Rubin, Greg Kroah-Hartman, O'Reilly Media, 3rd Edition, 2005 Understanding Linux Network Internals Christian Benvenuti, Marco Cesati, O'Reilly Media, 2005 9 / 36

Περιεχόμενα μαθήματος Εισαγωγή Διεργασίες & Νήματα Χρονοδρομολόγηση Συγχρονισμός Διαχείριση μνήμης και σύστημα εικονικής μνήμης Συστήματα αρχείων Χρονοδρομολόγηση E/E 10 / 36

Λειτουργικό Σύστημα Ορισμός: Το Λειτουργικό Σύστημα (ΛΣ) είναι ένα πρόγραμμα-διεπαφή ανάμεσα στο υλικό ενός υπολογιστικού συστήματος και τους χρήστες του (εφαρμογές) Επιτελεί ρόλους όπως: Ελεγχόμενη πρόσβαση στους πόρους του συστήματος (ασφάλεια) Διαμοιρασμός των πόρων του συστήματος (επίδοση και δικαιοσύνη) Υπηρεσίες για εύκολη πρόσβαση στο υλικό Συστήματα αρχείων Δικτυακά πρωτόκολλα Κοινή διεπαφή με υλικό για προγραμματιστές (POSIX) 11 / 36

Εναλλακτικοί ορισμοί ΛΣ top-down Παρέχει στα προγράμματα εύκολη και αποδοτική πρόσβαση στους πόρους του συστήματος bottom-up "Παρέχει μια συστηματοποιημένη και ελεγχόμενη κατανομή των επεξεργαστών, των μνημών και των άλλων συσκευών Ε/Ε, ανάμεσα στα διάφορα προγράμματα-πελάτες που ανταγωνίζονται μεταξύ τους για να τα χρησιμοποιήσουν" (Tanenbaum, 2001) 12 / 36

Υπολογιστικά Συστήματα Υλικό ΚΜΕ/Μνήμη/Μονάδες Ε/Ε Λειτουργικό Σύστημα Ελέγχει και συντονίζει την κοινόχρηστη χρήση του υλικού (των πόρων του υπολογιστή) μεταξύ πολλών εφαρμογών και χρηστών Προγράμματα εφαρμογών Προσδιορίζουν τον τρόπο με τον οποίο οι πόροι του συστήματος χρησιμοποιούνται για την επίλυση συγκεκριμένων προβλημάτων πχ επεξεργαστές κειμένου, compilers, web browsers, συστήματα βάσεων δεδομένων, παιχνίδια Χρήστες Εφαρμογές Λειτουργικό Σύστημα Υλικό Χρήστες Άνθρωποι, μηχανές, άλλοι υπολογιστές 13 / 36

Απαιτήσεις ΛΣ Προσωπικοί υπολογιστές (PCs): Xαμηλοί χρόνοι απόκρισης (responsiveness) Κεντρικά υπολογιστικά συστήματα (mainframes): Υψηλή επίδοση, δίκαιη διαχείριση πόρων Υπολογιστές χειρός (palm PCs): Ευκολία στη χρήση, οικονομία στους πόρους, χαμηλή κατανάλωση ενέργειας Ενσωματωμένοι υπολογιστές (embedded systems): Απόκριση σε πραγματικό χρόνο (real-time) 14 / 36

Λειτουργικά Συστήματα και Οργάνωση Υπολογιστών Σχέση Εξάρτησης μεταξύ ΛΣ και αρχιτεκτονικής Πολλές λειτουργίες των ΛΣ χρειάζονται υποστήριξη από το Υλικό Νέες δυνατότητες του Υλικού χρειάζονται υποστήριξη από το ΛΣ, ώστε να είναι διαθέσιμες στις εφαρμογές 15 / 36

Οργάνωση Υπολογιστών (Von Neumann) ΚΜΕ Κύρια Μνήμη -- ΚΜ (MEM) - Γραμμικός χώρος αποθήκευσης - Δεδομένα & Πρόγραμμα στην ΚΜ! Κεντρική Μονάδα Επεξεργασίας -- ΚΜΕ (CPU) - Καταχωρητές - Εντολές (πχ ADD/LOAD/STORE) KM Είσοδος/Έξοδος -- Ε/Ε (I/O) - Διακοπές (Interrupts) E/E 16 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : undef %pc: START ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 41 START: JMP PROG 17 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : undef %pc: START ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 41 START: JMP PROG 17 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : undef %pc: PROG ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 41 START: JMP PROG 17 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : 41 %pc: PROG + 1 ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 41 START: JMP PROG 17 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : 42 %pc: PROG + 2 ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 41 START: JMP PROG 17 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : 42 %pc: PROG + 3 ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 42 START: JMP PROG 17 / 36

Μοντέλο Εκτέλεσης Προγραμμάτων PROG: ΚΜΕ %a : 42 %pc: START ELEM: Μνήμη LOAD ELEM %a ADD 1 %ạ STORE %a ELEM JMP START 42 START: JMP PROG 17 / 36

Προβλήματα (προηγ) Μοντέλου Εκτέλεσης? 18 / 36

Προβλήματα (προηγ) Μοντέλου Εκτέλεσης Εκτέλεση πολλαπλών προγραμμάτων 18 / 36

Προβλήματα (προηγ) Μοντέλου Εκτέλεσης Εκτέλεση πολλαπλών προγραμμάτων Διαμοιρασμός χρόνου Τα πολλαπλά προγράμματα προς εκτέλεση μοιράζονται τον επεξεργαστή (ισχύει για διάφορους πόρους συστήματος) 18 / 36

Προβλήματα (προηγ) Μοντέλου Εκτέλεσης Εκτέλεση πολλαπλών προγραμμάτων Διαμοιρασμός χρόνου Τα πολλαπλά προγράμματα προς εκτέλεση μοιράζονται τον επεξεργαστή (ισχύει για διάφορους πόρους συστήματος) Διεργασίες Πρόγραμμα που εκτελείται στο Λειτουργικό Σύστημα και βρίσκεται σε συγκεκριμένη κατάσταση 18 / 36

Διεργασίες (Processes) Δ0 Δ1 Δ2 Χρονοδρομολογητής ΚΜΕ Μνήμη 19 / 36

Διεργασίες (Processes) Δ0 Δ1 Δ2 Δεδομένα & Πρόγραμμα Χρονοδρομολογητής Κατάσταση Δ2: Καταχωρητές Μ0 Μ1 Μ2 PCB1 PCB0 PCB2 ΚΜΕ Μνήμη 19 / 36

ZeroMyMem() /* zero memory [mstart, mend] */ int ZeroMyMem(char *mstart, char *mend) { unsigned long remaining; if (mend <= mstart) return -1; remaining = mend - mstart; do { *(mstart + remaining) = 0; remaining--; } while (remaining >= 0); return 0; } 20 / 36

ZeroMyMem() /* zero memory [mstart, mend] */ int ZeroMyMem(char *mstart, char *mend) { unsigned long remaining; if (mend <= mstart) return -1; remaining = mend - mstart; do { *(mstart + remaining) = 0; remaining--; } while (remaining >= 0); return 0; } 20 / 36

Διαχείριση Μνήμης Κάθε διεργασία έχει το δικό της (εικονικό) χώρο διευθύνσεων (ΧΔ) Δ Εικονικός ΧΔ Μνήμη Δίσκος 21 / 36

Διαχείριση Μνήμης Κάθε διεργασία έχει το δικό της (εικονικό) χώρο διευθύνσεων (ΧΔ) Περιοχές του ΧΔ της διεργασίας: Αντιστοιχίζονται σε περιοχές της φυσικής μνήμης Δ Εικονικός ΧΔ Μνήμη Δίσκος 21 / 36

Διαχείριση Μνήμης Κάθε διεργασία έχει το δικό της (εικονικό) χώρο διευθύνσεων (ΧΔ) Περιοχές του ΧΔ της διεργασίας: Αντιστοιχίζονται σε περιοχές της φυσικής μνήμης Αποθηκεύονται (προσωρινά) σε δευτ συσκ αποθήκευσης Δ Εικονικός ΧΔ Μνήμη Δίσκος 21 / 36

Διαχείριση Μνήμης Κάθε διεργασία έχει το δικό της (εικονικό) χώρο διευθύνσεων (ΧΔ) Περιοχές του ΧΔ της διεργασίας: Αντιστοιχίζονται σε περιοχές της φυσικής μνήμης Αποθηκεύονται (προσωρινά) σε δευτ συσκ αποθήκευσης Δ Εικονικός ΧΔ Μνήμη Δίσκος 21 / 36

Διαχείριση Μνήμης Κάθε διεργασία έχει το δικό της (εικονικό) χώρο διευθύνσεων (ΧΔ) Περιοχές του ΧΔ της διεργασίας: Αντιστοιχίζονται σε περιοχές της φυσικής μνήμης Αποθηκεύονται (προσωρινά) σε δευτ συσκ αποθήκευσης Δ Εικονικός ΧΔ Μνήμη Δίσκος 21 / 36

Εικονική Μνήμη Οι περισσότερες διεργασίες χρησιμοποιούν μόνο μικρό μέρος του Εικονικού ΧΔ τους Όταν δεν επαρκεί η φυσική μνήμη χρησιμοποιείται ο δίσκος ως (προσωρινό) μέσο αποθήκευσης Η χρησιμοποίηση του δίσκου δεν είναι γενικά επιθυμητή, γιατί δημιουργεί προβλήματα επίδοσης Δ0 Δ1 Δ2 Μνήμη Δίσκος 22 / 36

Υλοποίηση Συστήματος Εικονικής Μνήμης Υποστήριξη Υλικού για τις αντιστοιχίσεις: STORE,LOAD εντολές χωρίς την παρέμβαση του ΛΣ TLB Διαχείριση Μνήμης Σελιδοποίηση Αποφυγή Κατακερματισμού Πολιτική Swap in/out Βελτιστοποίηση χρήσης μνήμης LRU 23 / 36

Ανακεφαλαίωση Το ΛΣ προσφέρει στα προγράμματα μια Εικονική Μηχανή Von Neumann Διαμοιρασμός χρόνου (Επεξεργαστής) Εικονική μνήμη (Μνήμη) Οι διεργασίες έχουν την (ψευδ-)αίσθηση ότι χρησιμοποιούν αποκλειστικά τον επεξεργαστή και τη μνήμη του συστήματος 24 / 36

Διαχωρισμός Χώρου Χρήστη/Πυρήνα Δ0 Δ1 Δ2 Εικονική Μνήμη Σύστημα Αρχείων Χρον/τής Διαχ Μνήμης Χρον/τής Ε/Ε KME Μνήμη Δίσκος 25 / 36

Διαχωρισμός Χώρου Χρήστη/Πυρήνα Δ0 Δ1 Δ2 1 Kλήση συστήματος Εικονική 2 Έλεγχος ορισμάτων Μνήμη Σύστημα Αρχείων 4 Επιστροφή Χρον/τής Διαχ Μνήμης Χρον/τής Ε/Ε 3 Εκτέλεση KME Μνήμη Δίσκος 25 / 36

Είσοδος/Έξοδος Είσοδος/Έξοδος Όχι απευθείας πρόσβαση των εφαρμογών στο υλικό Κλήσεις Συστήματος (system calls): Προγραμματιστική Διεπαφή για τις υπηρεσίες που προσφέρει το ΛΣ στις εφαρμογές Υπηρεσίες πάνω από το υλικό - Συσκευές Αποθήκευσης (Συστήματα Αρχείων) - Προσαρμογείς Δικτύου (Δικτυακά Πρωτόκολλα) Πληκτρολόγιο, Οθόνη, Κάμερα, 26 / 36

Ε/Ε Μοντέρνα Υπολογιστικά Συστήματα (Ασύγχρονο Μοντέλο) LOAD/STORE Δεδομένα Διακοπή Αίτηση KME ΑΠΜ $ Ε/Ε Μνήμη Συσκευή Ε/Ε Μηχανή ΑΠΜ 27 / 36

Συσκευές αποθήκευσης Μόνιμα (persistent) (σε αντίθεση με μνήμη) Σκληροί Δίσκοι - Αργή πρόσβαση - Χρόνος αναζήτησης (seek time) - Solid State Disks (SSDs) Γραμμικός χώρος Όχι ιδανικός για χρήστη/εφαρμογές - Συστήματα Αρχείων (Ιεραρχική Δομή) - Βάσεις Δεδομένων (SQL) 28 / 36

Συστήματα αρχείων Κατάλογοι (Κόμβοι Ιεραρχίας) Αρχεία (Δεδομένα) 29 / 36

Συστήματα αρχείων Κατάλογοι (Κόμβοι Ιεραρχίας) Αρχεία (Δεδομένα) / (root) home/ tmp/ john/ michelle/ paul/ bashrc helloc docs/

Συστήματα αρχείων Κατάλογοι (Κόμβοι Ιεραρχίας) Αρχεία (Δεδομένα) / (root) /home/michelle/helloc #include <stdioh> john/ home/ michelle/ tmp/ paul/ int main(int argc, char **argv) { printf("hello World!\n"); return 0; } bashrc helloc docs/ 29 / 36

Διεπαφή Αρχείων Ανάγνωση: - Άνοιγμα (open) - Ανάγνωση σε μνήμη (read) - Κλείσιμο (close) Εγγραφή: - Άνοιγμα (open) - Εγγραφή από μνήμη (write) - Κλείσιμο (close) Από (εγγραφή) και Προς (ανάγνωση) τη μνήμη υπάρχουν εξαιρέσεις (πχ sendfile()) 30 / 36

ΛΣ και Συσκευές Αποθήκευσης Συστήματα Αρχείων - Ιεραρχική δομή πάνω από γραμμικό χώρο (συσκευή) Κρυφή Μνήμη - Η πρόσβαση στο δίσκο είναι αργή - Περιοχές αρχείων στη μνήμη Χρονοδρομολόγηση Ε/Ε - Μεγάλος χρόνος αναζήτησης (seek) - Βελτιστοποίηση Ε/Ε αιτήσεων Δ Σύστημα Αρχείων (Filesystem) Κρυφή Μνήμη (Page Cache) Χρον/γηση Ε/Ε (I/O Scheduling) Οδηγός Συσκευής (Device Driver) ΛΣ Δίσκος 31 / 36

ΛΣ και Συσκευές δικτύου Δ1 Sockets API ΛΣ Δ2 Sockets API ΛΣ TCP Επικ TCP UDP Επικ TCP TCP UDP IP Επικ IP Επικ TCP Επικ IP Επικ TCP IP Ethernet Επικ Ethernet Επικ IP Επικ TCP Επικ Ethernet Επικ IP Επικ TCP Ethernet Οδηγός Συσκευής Οδηγός Συσκευής NIC1 Επικ Ethernet Επικ IP Επικ TCP Επικ Ethernet Επικ IP Επικ TCP NIC2 32 / 36

ΛΣ και Συσκευές δικτύου Δ1 Sockets API ΛΣ Δ2 Sockets API ΛΣ TCP Επικ TCP UDP Επικ TCP TCP UDP IP Επικ IP Επικ TCP Επικ IP Επικ TCP IP Ethernet Επικ Ethernet Επικ IP Επικ TCP Επικ Ethernet Επικ IP Επικ TCP Ethernet Οδηγός Συσκευής Οδηγός Συσκευής NIC1 Επικ Ethernet Επικ IP Επικ TCP Επικ Ethernet Επικ IP Επικ TCP NIC2 32 / 36

ΛΣ και Συσκευές δικτύου Δ1 Sockets API ΛΣ Δ2 Sockets API ΛΣ TCP Επικ TCP UDP Επικ TCP TCP UDP IP Επικ IP Επικ TCP Επικ IP Επικ TCP IP Ethernet Επικ Ethernet Επικ IP Επικ TCP Επικ Ethernet Επικ IP Επικ TCP Ethernet Οδηγός Συσκευής Οδηγός Συσκευής NIC1 Επικ Ethernet Επικ IP Επικ TCP Επικ Ethernet Επικ IP Επικ TCP NIC2 32 / 36

Ανακεφαλαίωση Διεπαφή πρόσβασης του υλικού για τις εφαρμογές Πολλαπλές Διεργασίες (multitasking) / Χρήστες (multiuser) - Προστασία μνήμης / Εικονική μνήμη - Διαμοιρασμός επεξεργαστή (time sharing) - Περιορισμός εφαρμογών χρήστη (protected mode) Συστήματα αρχείων για αποθήκευση δεδομένων - Συσκευές Αποθήκευσης (Δίσκοι) - Ιεραρχική δομή με καταλόγους και αρχεία Επικοινωνία με άλλα υπολογιστικά συστήματα - Συσκευές δικτύου (NICs) - Στοίβα πρωτοκόλλων επικοινωνίας ({TCP,UDP}/IP) 33 / 36

Εξέλιξη/Διαφοροποίηση Τα προηγ αφορούν κυρίως συστήματα τύπου Desktop/Server Τα ΛΣ διαφοροποιούνται ανάλογα με το Υλικό/Ανάγκες Μοναδικός χρήστης / εφαρμογή (Πρώτα PCs, Consoles) Batch Systems / Spooling Εξαρτώνται από τη χρήση του συστήματος και το υλικό Ενσωματωμένα συστήματα iphone: ένα πρόγραμμα τη φορά, ένας χρήστης 34 / 36

Εικονικές Μηχανές Virtual Machines Υλοποίηση σε λογισμικό ενός υπολογιστικού συστήματος, που εκτελεί προγράμματα σαν να είναι φυσική μηχανή Εικονικές Μηχανές Συστημάτων (Xen, Virtual Box, VMware) Εικονικές Μηχανές Διεργασιών (Java VM, NET CLR) Εικονικές Μηχανές Συστημάτων Το ΛΣ που τρέχει στο πραγματικό υλικό και παρέχει την λειτουργικότητα των Εικονικών Μηχανών ονομάζεται host OS Το ΛΣ που εκτελείται μέσα στις Εικονικές Μηχανές ονομάζεται guest OS Οι πόροι του συστήματος μοιράζονται στις Εικονικές Μηχανές (συνήθως με στατικό τρόπο), από το host OS Οι πόροι κάθε Εικονικής Μηχανής είναι υπό τη διαχείριση του guest OS 35 / 36

Παράδειγμα Εικονικής Μηχανής Συστήματος Applications Applications Applications Guest OS Guest OS Guest OS Host OS Hardware 36 / 36