ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ.

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ."

Transcript

1 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin and Gange, Operating Systems Concepts. Deitel, Deitel and Choffnes, Operating Systems Λειτουργικά Συστήματα, Γ.Α. Παπαδόπουλος, Πανεπιστήμιο Κύπρου Λειτουργικά Συστήματα, Κ. Διαμαντάρας, ΤΕΙΘ Systems Programming in C, A.D. Marshal, University of Cardiff Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

2 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

3 Τι είναι Λειτουργικό Σύστημα (1) Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: Έναν ή περισσότερους επεξεργαστές Κύρια Μνήμη Δίσκους Εκτυπωτές Διάφορες μονάδες εισόδου/εξόδου Διάφορες αποθηκευτικές μονάδες Η διαχείριση όλων αυτών των μερών απαιτεί ένα επίπεδο λογισμικού το Λειτουργικό Σύστημα

4 Σύγχρονες Πολυεπίπεδες Μηχανές (1) Εφαρμογές Πρόγραμμα γλώσσας υψηλού επιπέδου Πρόγραμμα γλώσσας assembly Συστήματα Αρχιτεκτονική Σενάριο ή κλήση συστήματος (μικτή γλώσσα) Πρόγραμμα σε γλώσσα μηχανής Μικροπρόγραμμα ή γλώσσα περιγραφής υλικού Οργάνωση

5 Σύγχρονες Πολυεπίπεδες Μηχανές (2) Διεπαφές λειτουργικού συστήματος: Κατώτερα επίπεδα: Διακοπές, Ρουτίνες Εξυπηρέτησης Διακοπών, Είσοδος / Έξοδος, Διαχείριση Μνήμης, Διαχείριση Επεξεργαστή (γλώσσα μηχανής) Ανώτερα επίπεδα: Κλήσεις Συστήματος,Application Program Interface, User Intercafe (Assembly, C, Φλοιός, Σενάρια Φλοιού)

6 Σύγχρονες Πολυεπίπεδες Μηχανές (3) Dual Mode: Το λ. σ. εκτελείται σε kernel (supervisor) mode ενώ το υπόλοιπο λογισμικό συστήματος και εφαρμογών εκτελείται σε user (protected) mode. Μόνο το λ.σ. έχει άμεση επικοινωνία με τα κατώτερα επίπεδα, το ανώτερο λογισμικό ουσιαστικά καλεί ειδικές ρουτίνες του λ.σ. για την εξυπηρέτησή του.

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

8 Το Λειτουργικό Σύστημα ως Διαχειριστής Πόρων Επιτρέπει την συντρέχουσα (concurrent) ή ταυτόχρονη εκτέλεση πολλών προγραμμάτων Διαχειρίζεται και προστατεύει τη CPU τη μνήμη, τις συσκευές Ε/Ε και άλλους πόρους Επιτρέπει πολυπλεξία (διαμοιρασμό) πόρων με δύο τρόπους: Χρονική πολυπλεξία (χρονομερισμός) Χωρική πολυπλεξία (τοποθέτηση σε μνήμη, δίσκο)

9 Υλικό Μαθήματος (Βιβλία) * Tanenbaum, Modern Operating Systems. * Stallings, Operating Systems: Internals and Design Principles. * Silberschatz, Galvin and Gange, Operating Systems Concepts. * Deitel, Deitel and Choffnes, Operating Systems Και τα τέσερα βιβλία είναι διεθνώς πολύ γνωστά, κάνουν συχνές επανεκδόσεις. Τα τρία πρώτα υπάρχουν μεταφρασμένα στα Ελληνικά. Επιπλέον υλικό -τρείς βασικές κατηγορίες: * Χρήση Λειτουργικών Συστημάτων (Power Users, πχ UNIX books) * Προγραμματισμός Συστημάτων (API, πχ Unix Programming). * Υλοποίηση Λειτουργικών Συστημάτων (πχ ΜΙΝΙΧ, Linux κλπ)

10 Υλικό Μαθήματος (Διαδίκτυο) * Compus, httlp://compus.uom.gr Εβδομαδιαία παρακολούθηση, ανακοινώσεις, θέματα, σύνδεσμοι. * PdP Lab, Συλλογές διαδικτυακού υλικού, για διάφορα θέματα αρκετά για λειτουργικά συστήματα, προγραμματισμό συστημάτων, Linux και Ελεύθερο-Ανοικτό Λογισμικό. Εδώ συνήθως οδηγούν οι σύνδεσμοι του Compus. * Wikipedia Το λήμμα computer operating system αποτελεί καλή εκκίνηση, όπως και οι σύνδεσμοι σε επιμέρους θέματα της Wikipedia. * Google (πχ το site του Stallings)

11 Σχέδιο Μαθήματος Εβδομάδα Περιγραφή 1-2 Επισκόπηση Λ.Σ 3-4 Διεργασίες και Νήματα 5-6 Αδιέξοδα 7-8 Διαχείριση Μνήμης 9-10 Είσοδος/Έξοδος Συστήματα Αρχείων 13 Ασφάλεια Κεφάλαια Μελέτες περίπτωσης στο τέλος κάθε ενότητας (κεφ 10,11)

12 Αξιολόγηση Εξετάσεις χωρίς βιβλία και σημειώσεις. Θα χορηγείται μόνο βοηθητικό υλικό (αν αυτό απαιτείται). Οδηγός ύλης και ασκήσεων το βιβλίο 'Modern Operating Systems (Σύγχρονα Λειτουργικά Συστήματα)' του Tanenbaum, με έμφαση στο υλικό των σημειώσεων. Έμφαση κυρίως στην εξειδικευμένη χρήση (power user) και στο προγραμματισμό συστημάτων (API). Παραδείγματα (μελέτες περίπτωσης): κυρίως Linux (λιγ'ότερο Windows), εργαστήρια, εργασίες, επιλογές από υπόλοιπα κεφάλαια: Προγραμματισμός Συστημάτων ΙΙ

13 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

14 Ιστορία Λειτουργικών Συστημάτων (1) Μερικά ορόσημα: ( ) Λυχνίες Κενού ( ) Transistors και Συστήματα Δέσμης ( ) ICs και Πολυπρογραμματισμός ( ) Προσωπικοί Υπολογιστές ( ) Δίκτυα, Διαδίκτυο ( ) Δικτυωμένοι Υπολογιστές Ειδικού Σκοπού

15 Ιστορία Λειτουργικών Συστημάτων (2)

16 Προϊστορία: Λυχνίες Κενού Εκτέλεση ενός προγράμματος, μονο-προγραμματισμός: Ένα μοναδικό πρόγραμμα, η εργασία (Job), φόρτωνε τον μεταγλωττιστή και το πρόγραμμα εφαρμογής σε γλώσσα υψηλού επιπέδου στη μνήμη, αποθήκευε τον αντικείμενο κώδικα (object code) και στη συνέχεια το φόρτωνε και το συνέδεε με τις λοιπές συναρτήσεις. Εκτελούσε το παραγόμενο εκτελέσιμο πρόγραμμα το οποίο και είχε πρόσβαση στο σύστημα μόνον αυτό. Όταν το πρόγραμμα τερματιζόταν, τα αποτελέσματα αποθηκευόταν σε μορφή ταινίας ή διάτρητων καρτών και η εργασία ξεκινούσε από την αρχή με άλλο πρόγραμμα εφαρμογής. Η σύνταξη του προγράμματος εφαρμογής και η παραγωγή αποτελεσμάτων γινόταν σε ξεχωριστά συστήματα (διατρητικές, εκτυπωτικές μηχανές).

17 Transistors και Συστήματα Δέσμης (1) (a) Οι προγραμματιστές φέρνουν τις κάρτες στο (b) Το 1401 διαβάζει δέσμες εργασιών σε ταινία. (c) Ο χειριστής μεταφέρει τη ταινία εισόδου στο (d) Το 7094 εκτελεί τους υπολογισμούς. (e) Ο χειριστής μεταφέρει την ταινία εξόδου στο (f) Το Tanenbaum, 1401 εκτυπώνει αποτελέσματα. Modern Operatingτα Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

18 Transistors και Συστήματα Δέσμης (2) Δομή μιας τυπικής εργασίας δέσμης (batch).

19 Transistors και Συστήματα Δέσμης (3) Λόγος ανάπτυξης: πολύ ακριβές μηχανές, μείωση του νεκρού χρόνου Κεντρική ιδέα: η χρήση ενός λογισμικού που λέγεται επόπτης (monitor) Ο χρήστης υποβάλλει την εργασία του σε ένα χειριστή ο οποίος τοποθετεί όλες τις εργασίες μαζί σε μια συσκευή εισόδου για να χρησιμοποιηθούν από τον επόπτη. Κάθε πρόγραμμα είναι φτιαγμένο έτσι ώστε όταν ολοκληρώνεται να επιστρέφει στον επόπτη για να φορτωθεί άλλο πρόγραμμα.

20 Transistors και Συστήματα Δέσμης (4) Επόπτης (Monitor) Λογισμικό που ελέγχει τις εργασίες που εκτελούνται Ομαδοποιεί τις εργασίες προς εκτέλεση Όταν μια εργασία τερματιστεί ο έλεγχος μεταφέρεται στον monitor Ο monitor παραμένει στην κεντρική μνήμη και είναι διαθέσιμος Job Control Language (JCL) Γλώσσα σεναρίου (scripting language) που παρέχει οδηγίες στον monitor όπως ποιος compiler θα χρησιμοποιηθεί ποια δεδομένα θα χρησιμοποιηθούν χρήση ειδικών πόρων

21 Transistors και Συστήματα Δέσμης (5) Διεπαφές με κατώτερα επίπεδα : Προστασία: οι εργασίες (τα προγράμματα των χρηστών) που εκτελούνται δεν πρέπει να τροποποιούν την περιοχή μνήμης όπου υπάρχει ο monitor. Χρονισμός: πρέπει να αποφεύγεται η μονοπώληση του συστήματος από μια μοναδική εργασία (εκτέλεση ενός μόνο προγράμματος), εφαρμογής χρονοδιακοπής (timeout) και ομαδοποίησης εργασιών με βάση τα χαρακτηριστικά τους (ελαφρές και βαριές δουλειές, cpu και I/O -bound). Προνομιούχες (priviledged) εντολές: εκτελούνται μόνον από το monitor, κυρίως για διαδικασίες Ι/Ο (ταινίες). Διακοπές: μηχανισμός του λ.σ. για παραχώρηση και ανάκτηση του ελέγχου του συστήματος και την επικοινωνία με τα κατώτερα επίπεδα.

22 ICs και Πολυπρογραμματισμός (1) Ένα σύστημα πολυπρογραμματισμού με τρείς εργασίες στη μνήμη. Job > Task = Εργασία.

23 ICs και Πολυπρογραμματισμός (2) Λόγος ανάπτυξης : ο επεξεργαστής παραμένει ανενεργός λόγω διαφοράς ταχύτητας με τις συσκευές Ι/Ο

24 ICs και Πολυπρογραμματισμός (3) Μονοπρογραμματισμός : όταν η εκτελούμενη εργασία διέκοπτε, αναμένοντας να ολοκληρωθεί μια διαδιασία Ι/Ο, η CPU έμενε ανενεργή (σε επιστημονικές εφαρμογές η σπατάλη χρόνου είναι ελάχιστη, διαδικασίες Ι/Ο συμβαίνουν σπάνια, ενώ σε εμπορικές εφαρμογές η σπατάλη είναι 80-90%) Πολυπρογραμματισμός : διαμερισμός της μνήμης σε τμήματα ώστε κάθε εργασία να καταλαμβάνει άλλο τμήμα μνήμης. Όταν μια εργασία περίμενε μια Ι/Ο, κάποια άλλη χρησιμοποιούσε την CPU. Αν μπορούσαν να παραμείνουν στη μνήμη πολλές εργασίες ταυτόχρονα τότε το ποσοστό χρήσης της CPU έφθανε και το 100%.

25 ICs και Πολυπρογραμματισμός (4) Μεγέθη που χαρακτηρίζουν την απόδοση ενός λ.σ. : * Μέση χρησιμοποίηση (utilisation) των πόρων: % * Ρυθμαπόδοση (throughput): jobs/μονάδα χρόνου * Χρόνος απόκρισης (responce time) Τα πολυπρογραμματιζόμενα συστήματα δέσμης βασίζονται σε διεπαφές με κατώτερα επίπεδα : * διακοπές, Ι/Ο, Direct Memory Access (DMA) * στη διαχείριση μνήμης (προστασία μνήμης, μεταξύ των εργασιών και του λ.σ.) * στους αλγόριθμους δρομολόγησης ή χρονοπρογραμματισμού (scheduling) εργασιών ανάλογα με τα ειδικά χαρακτηριστικά τους (CPU, I/O bound, κλπ).

26 ICs και Πολυπρογραμματισμός Παράδειγμα (1)

27 ICs και Πολυπρογραμματισμός Παράδειγμα (2.1)

28 ICs και Πολυπρογραμματισμός Παράδειγμα (2.2)

29 Χρονομερισμός (time-sharing) Πολυπρογραμματισμός Χρηστών σε σχετικά Πραγματικό Χρόνο (Real Time) Προέκυψαν από τις διαμαρτυρίες όσων περίμεναν ώρες ή ημέρες για να πάρουν αποτελέσματα από τα πολυπρογραμματιζόμενα μαζικά συστήματα. Κάθε χρήστης συνδέεται μέσω τερματικού και η CPU εξυπηρετεί εκ περιτροπής κάθε πρόγραμμα χρήστη με ένα σύντομο καταιγισμό (burst) ή ένα κβάντο (quantum) υπολογισμού. Ο ΗΥ προσφέρει μια διαλογική εξυπηρέτηση με την τεχνική του καταμερισμού χρόνου και εκμεταλλεύεται τον σχετικά βραδύ χρόνο της ανθρώπινης αντίδρασης

30 Πολυπρογραμματισμός και Χρονομερισμός

31 Ορισμοί (1) Mullti(Single)-user: πολυ(μονο)-χρηστικό σύστημα Multi(Single)-tasking: πολυ(μονο)-εργασιακό σύστημα (μπορεί να είναι και single-user) Multi(Single)-programming: πολυ(μονο)-προγραμματισμός, ταυτόσημο με multi-tasking, με έμφαση σε επεξεργασία δέσμης και τη βέλτιση χρήση (utilisation) πόρων (διεπεραίωση, throughput = jobs/sec). Time-sharing: χρονο-μερισμός. Κατανομή του χρόνου λειτουργίας ενός συστήματος σε διαφορετικούς χρήστες, με έμφαση στη διαλογική επεξεργασία και την απόκριση (responce) σε πραγματικό χρόνο. Real-time: πραγματικός χρόνος. Συστήματα με στόχο την εγγυημένη απόκριση σε συγκεκριμένο χρόνο. Scheduling: χρονο-δρομολόγηση ή χρονο-προγραμματισμός. Εποπτεία του πολυπρογραμματισμού και του χρονο-μερισμού. Spooling: διευθέτηση εργασιών σε ουρές για εκτέλεση, με τη σειρά (πχ αιτήσεις εκτυπώσεων ή προσπέλασης δίσκων).

32 Ορισμοί (2) Διαχείριση Ε/Ε: οδηγοί (drivers) και ελεγκτές (controllers). Χρήση διακοπών και DMA. Σύστημα αρχείων, λογική οργάνωση δεδομένων σε δίσκους και ταινίες. Mounting (προσάρτηση) και unmounting (απο-προσάρτηση) δίσκων και ταινιών, αρχικά χειροκίνητη στη συνέχεια δικτυακή. Προστασία του συστήματος αλλά και των προγραμμάτων (χρηστών) από άλλα προγράμματα (χρήστες). Dual mode και προνομιούχες εντολές. Μόνο στο kernel mode υπάρχει πλήρης πρόσβαση στη CPU. Κάθε εργασία έχει ιδιωτικό χώρο διευθύνσεων (address space). Μόνο το λ.σ. διαχειρίζεται το σύνολο της μνήμης. Οι χρήστες έχουν περιορισμένα δικαιώματα πρόσβασης και χρήσης. Όλοι οι πόροι του συστήματος έχουν συγκεκριμένες άδειες πρόσβασης ανά χρήστη. Εικονική (Ιδεατή) μνήμη. Επέκταση του χώρου διευθύνσεων με διαφανή χρήση της δευτερεύουσας μνήμης. Υλοποίηση με τεχνικές όπως paging (σελιδοποίηση), swapping (εναλλαγή).

33 Ορισμοί (3) Kernel: πυρήνας. το βασικό τμήμα του λ.σ. που εκτελείται συνεχώς και έχει πλήρη πρόσβαση στα κατώτερα επίπεδα (supervisor mode = kernel mode). Services: υπηρεσίες, εφαρμογές ή τμήματα του λ.σ., που εκτελούνται κατ' απαίτηση μετά από κλήση συστήματος και υπό τον έλεγχο του πυρήνα. Daemons: υπηρεσίες, εφαρμογές ή τμήματα του λ.σ., που εκτελούνται συνεχώς στο background (πχ servers) Shell: φλοιός ή κέλυφος, ο επεξεργαστής εντολών (command interpreter) που επιτρέπει στο χρήση ή και στα προγράμματα εφαρμογών να χρησιμοποιούν κλήσεις συστήματος. User Interface: Διεπαφή Χρήστη, ο φλοιός ή γραφική διεπαφή. System Call: Κλήση Συστήματος, κλήση μιας υπηρεσίας ή εφαρμογής του λ.σ. Που μπορεί να εκτελεστεί σε user mode ή σε supervisor mode (μέσω διακοπής λογισμικού).

34 Unix Multics (αρχές '70): το πρώτο λ.σ. που έθεσε τα περισσότερα χαρακτηριστικά των σύγχρονων λ.σ. Μπροστά από την εποχή του. Unix και C (τέλη του '70): ελαφρύ και αποδοτικό υποσύνολο του Mulltics για mini-υπολογιστές PDP. To πρώτο σχετικά portable (φορητό) και open (ανοικτό) λ.σ. Unix BSD - Berkeley Software Distribution, ανοικτό. Unix System V ATT, κλειστό. Πολλά παρακλάδια και ανταγωνιστές, διαφορετικό λειτουργικό για κάθε οικογένεια υπολογιστών. Ο ανταγωνισμός οδήγησε σε πολλές ανομοιογένειες. Τελική λύση: POSIX standard, ανοικτό πρότυπο. Προτυποποίηση υπηρεσιών λ..σ. Με τη μορφή system calls (κλήσεων συστήματος), δηλ. αιτήσεων για λήψη υπηρεσίας από το λ.σ. Καθορίζεται η ονομασία, οι παράμετροι εισόδου, οι τιμές επιστροφής (syntax) και οι όλες οι αλλαγές που επέρχονται στο σύστημα (semantics).

35 MS-DOS CP/M, DR-DOS, MS-DOS: λ.σ. Βασισμένα στο Unix αλλά πολύ μικρά ώστε να χωρούν σε μια εύκαμπτη δισκέτα (λιγότερο από 500 Κbytes, λίγες χιλιάδες γραμμές): single-user, signle-tasking, οχι προστασια, οχι εικονική μνήμη..περιορισμένα υποστήριξη κατωτέρων επιπέδων λόγω απλών επεξεργαστών. Μέσα '80: H ΙΒΜ υιοθετεί το MS-DOS στα ανοικτής αρχιτεκτονικής PC's της. Επικράτηση του MS-DOS. Ταχύτατη ανάπτυξη επεξεργαστών και λ.σ. μαζί με τις εφαρμογές των PC's. 'Εμφαση στη φιλικότητα προς το χρήστη. User friendly interface: διεπαφή φιλική προς το χρήστη. Αρχικά στις εφαρμογές, ακόμη και με απλά γραφικά. Έμφαση στο τελικό χρήστη. Σταδιακά ή Γραφική Διεπαφή Χρήστη (GUI) υποκαθιστά το φλοιό για τον τελικό χρήστη.

36 Windows Xerox PARC (Χ-Windows): ποντίκι, εικονίδια, menu, point-and-click, drug-and-drop (X-window system). Apple Macintosh: πρώτο παραθυρικό GUI (Graphical User Interface) σε PC. MS-Windows: μετά από δικαστική διαμάχη...αρχικά οχι καλά αλλά φθηνά και ανοικτότερα της Apple... Στο Linux ο διαχωρισμός GUI-shell είναι εμφανής, στα MS-Windοws ή στο MacOS όχι. Σταδιακά ο φλοιός αποκρύπτεται τελείως. Ακόμη και τα παραδοσιακά Windows τείνουν να αντικατασταθούν από web-based GUI's (δες πχ GoogleGear).

37 Linux ή MS-Windows ή..? Τέλη '90: Ισχυρά PC's, πολύ ισχυρότερα από τα minis του Unix! Windows NT και μετά: Βασισμένο στο VMS. Oυσιαστικά διαφορετικό από το MS-DOS. Προς Multi-user, Multi-tasking.. +: Desktop, εγκατεστημένη βάση. -: κλειστό, δυσκίνητο (backward..) Linux, FreeBSD, Minix, Solaris, MacOS: ανοικτά λ.σ. για PC's. GUI's: Χ-Windows και Gnome, KDE, Xfce.. +: Server, δίκτυο, ανοικτό λογισμικό. -: τελικοί χρήστες, φιλικότητα. Δίκτυα, Διαδίκτυο, Web: επικοινωνία (επικράτηση TCP/IP, HTTP), διαμοιρασμός, πρόσβαση, ασφάλεια. διαλειτουργικότητα. Σταδιακή σύγκλιση: τα MS-Windows ωριμάζουν, το Linux γίνεται φιλικό.

38 Προοπτικές : Δικτυακά και Κατανεμημένα λ.σ. Μοντέλα: Πελάτη-Διακομιστή (Client-Server) Τρία/πολλά Επίπεδα (Three/Multi-Tier Arcitecture) Αναγκαστική σύγκλιση λόγω διαλειτουργικότητας σε επίπεδο Διαδικτύου: Web-based GUI, Εφαρμογές και Υπηρεσίες Ιστού. * Ενδιάμεσο Λογισμικό (Middleware), Ανοικτά Πρότυπα. * Δικτυοκεντρικές υπηρεσίες, web services, software as service. * Κινητοί και Αφανείς υπολογισμοί. * Λ.σ. Ενσωματωμένων Συστημάτων. * Διαχείριση συστημάτων πολλών επεξεργαστών (multicore).

39 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

40 Τυπικός Υπολογιστής ΜΜU Λογική δομή ενός απλού προσωπικού υπολογιστή.

41 Τυπική CPU (a) Διοχέτευση τριών σταδίων (pipelining) (b) Υπερβαθμωτή CPU (superscalar execution) Πολλοί καταχωρητές, πολλές εντολές σε διοχέτευση. Ακόμη: * Πολυνηματικές CPUs (multithreading) * Πολλαπλoί πυρήνες -πολλαπλές CPU (multicore CPUs)

42 Θεματική Εναλλαγή και Διακοπές Context: Κατάσταση της CPU και του συστήματος. Τιμές όλων των καταχωρητών, latches κλπ, των στοιχείων μνήμης της CPU που θα 'χαθούν' κατά την εναλλαγή προγραμμάτων (όχι απλά κλήση ρουτινών). Context Switch: Θεματική Εναλλαγή. Υλοποίηση με Διακοπές (Interrupts), Εσωτερικές Διακοπές (Traps), Διακοπές Λογισμικού (Software Interrupts), και Κλήσεις Συστήματος (System Calls). Στο επίπεδο Αρχιτεκτονικής Συνόλου Εντολών οι κλήσεις συστήματος, ο χρονομερισμός και ο πολυπρογραμματισμός υλοποιούνται με Διακοπές. PSW (Processor Status Word): Έλεγχος Διακοπών, καθορισμός User / Supervisor Mode. Μόνο ο πυρήνας ελέγχει το Supervisor Mode bit. Προβλήματα: τι συμβαίνει στη διοχέτευση, στην υπερβαθμωτή, πολυνηματική εκτέλεση με τη θεματική εναλλαγή;

43 Λειτουργία Dual Mode Ένα supervisor mode bit προστίθεται στο καταχωρητή PSW για να δείχνει την τρέχουσα κατάσταση, πχ: supervisor (0) ή user (1). Όταν συμβεί μια διακοπή το υλικό μεταπίπτει σε supervisor mode. Interrupt/fault supervisor user set user mode Οι Προνομιούχες εντολές (Privileged instructions) μπορούν να προκύψουν μόνον σε supervisor/kernel mode.

44 Προστασία CPU 0 To supervisor mode bit δείχνει αν η CPU εκτελεί πρόγραμμα χρήστη (user mode) ή βρίσκεται σε κατάσταση πυρήνα (kernel mode). Ορισμένες εντολές ή προσπελάσεις σε δεδομένα είναι δυνατές μόνον όταν η CPU λειτουργεί σε kernel mode. CPU OS code OS data Program A data Data mode R0 x Rn PC Program B Data x registers code library 2n main memory

45 Ανάκληση-εκτέλεση εντολής με διακοπές Η Ρουτίνα Εξυπηρέτησης Διακοπών (Interrupt Service Routine) λειτουργεί σε kernel mode ώστε μόνο ο πυρήνας μπορεί να ελέγχει το PSW και τα Interrupt Masks. Ανάλογα με το τύπο της διακοπής η κατάσταση (mode) παραμένει σε kernel ή επιστρέφει σε user mode.

46 Κατηγορίες διακοπών Υπάρχουν τρεις κύριες κατηγορίες διακοπών που προξενούν τη διακοπή της κανονικής εκτέλεσης του προγράμματος. External interrupts (εξωτερικές) Internal interrupts (εσωτερικές) Software interrupts (λογισμικού)

47 Εξωτερικές διακοπές Προέρχονται από συσκευές Ι/Ο, συσκευές χρονισμού, από κυκλώματα που παρακολουθούν την τροφοδοσία του ηλεκτρικού ρεύματος και γενικά από οποιαδήποτε εξωτερική πηγή. Παραδείγματα δημιουργίας εξωτερικών διακοπών: συσκευές Ι/Ο που απαιτούν μεταβίβαση δεδομένων, συσκευές Ι/Ο που ολοκληρώνουν τη μεταφορά δεδομένων σφάλμα τροφοδοσίας διακοπές χρονισμού, υπέρβασης χρονικού ορίου προγραμμάτων (χρονοδιακοπή, timeout)

48 Χρονισμός και Προστασία CPU Χρονιστής (Timer): διακόπτει τη CPU ή μετά από μια καθορισμένη περίοδο (χρονοδιακοπή, timeout) για να εξασφαλίσει ότι το λ.σ. διατηρεί τον έλεγχο. Ο χρονιστής μειώνεται με κάθε ωρολογιακό παλμό. Όταν φθάσει την τιμή 0, προκαλείται μια διακοπή. Ο χρονιστής χρησιμοποιείται συχνά σε συστήματα καταμερισμού χρόνου (time sharing). Χρησιμοποιείται επίσης για τον υπολογισμό της τρέχουσας ώρας. Η φόρτωση του timer είναι μια προνομιούχος εντολή.

49 Αλληλεπίδραση υλικού και λ.σ. για clock interrupts

50 Εσωτερικές διακοπές Προέρχονται από εσφαλμένη χρήση εντολών και δεδομένων. Ονομάζονται επίσης παγιδεύσεις (traps). Παραδείγματα εσωτερικών διακοπών : υπερχείλιση καταχωρητών υπερχείλιση στοίβας προσπάθεια διαίρεσης με το μηδέν σφάλμα προστασίας λανθασμένος κωδικός εντολής Αυτές οι συνθήκες σφάλματος προκαλούν συνήθως το πρόωρο τερματισμό της εκτέλεσης ενός προγράμματος. Το πρόγραμμα εξυπηρέτησης που επεξεργάζεται τις εσωτερικές διακοπές καθορίζει τη διορθωτική ενέργεια που πρέπει να γίνει.

51 Σύγκριση εσωτερικών και εξωτερικών διακοπών Οι εσωτερικές διακοπές ξεκινούν από κάποια ασυνήθιστη κατάσταση που προκαλείται από ένα πρόγραμμα παρά από κάποιο εξωτερικό γεγονός. Οι εσωτερικές διακοπές είναι σύγχρονες με το πρόγραμμα ενώ οι εξωτερικές είναι ασύγχρονες. Αν το πρόγραμμα εκτελεστεί ξανά, οι εσωτερικές διακοπές θα συμβούν στο ίδιο σημείο κάθε φορά. Οι εξωτερικές διακοπές εξαρτώνται από εξωτερικές συνθήκες που είναι ανεξάρτητες από το πρόγραμμα που εκτελείται κάθε φορά. Οι εσωτερικές διακοπές και οι εξωτερικές διακοπές ξεκινούν από σήματα που προέρχονται από το υλικό ή την CPU.

52 Διακοπές λογισμικού Μια διακοπή λογισμικού ξεκινά από την εκτέλεση μιας εντολής και είναι μια ειδική κλήση εντολής που συμπεριφέρεται περισσότερο ως διακοπή παρά σαν μια κλήση διαδικασίας. Μπορεί να χρησιμοποιηθεί από έναν προγραμματιστή για να ξεκινήσει μια διαδικασία διακοπής σε οποιοδήποτε σημείο του προγράμματος. Η πιο συνήθης χρήση των διακοπών λογισμικού σχετίζεται με την κλήση μιας εντολής επόπτη (supervisor call instruction). Αυτή η εντολή παρέχει τον τρόπο για τη μετάβαση της CPU από τη κατάσταση χρήστη (user mode) σε κατάσταση επόπτη (supervisor mode). Όταν ένα πρόγραμμα χρήστη χρειαστεί μια λειτουργία του λ.σ που απαιτεί το σύστημα να περιέλθει σε supervisor mode, το πρόγραμμα χρήστη καλεί μια εντολή επόπτη. Αυτό συνήθως γίνεται έμμεσα, μέσω κλήσης συστήματος (system call). Όλες οι κλήσεις συστήματος δεν προκαλούν απαραίτητα διακοπή λογισμικού. Μπορεί να υλοποιηθούν και σε user mode. Η εντολή επόπτη προκαλεί μια διακοπή λογισμικού που αποθηκεύει την τρέχουσα κατάσταση της CPU και εισάγει σε μια νέα κατάσταση την CPU που ανήκει στην κατάσταση επόπτη (context switch).

53 Ιεραρχία Μνήμης καταχωρητές Static RAM L1: 16-64K L1 Instruction/Data on chip L2: K L2 on chip package L3: 128K -8M L3 on board Dynamic RAM: ως 16G HDD: ως Τ 1-5 ns, 150GB/s 2-50 ns, GB/s ns,4 GB/s Virtual memory 15-30ms, MB/s Μια ιεραρχία μνήμης με πέντε (ή εννέα) φυσικά επίπεδα. Οι τιμές είναι προσεγγιστικές.

54 Προστασία Μνήμης Memory Management Unit (MMU): 'Μετάφραση' λογικής διεύθυνσης που παράγει το πρόγραμμα σε φυσική διεύθυνση, θέση στη μνήμη υπό τον έλεγχο του λ.σ. (Supervisor Mode). Ελέγχονται όλοι οι καταχωρητές που καθορίζουν τη πρόσβαση στο χώρο εργασίας του προγράμματος: PC, Stack, Heap κλπ. (base-limit). Προστασία (Protection): το κάθε πρόγραμμα πρέπει να έχει 'ιδιωτικό' χώρο εργασίας, και όλα τα προγράμματα να μην έχουν πρόσβαση στο χώρο εργασίας του πυρήνα. Πόρος (Resource): κάθε υποσύστημα του υπολογιστή ελέγχεται από το λ.σ., το οποίο είναι και υπεύθυνο για τη πολιτική προστασίας του, πχ CPU, μνήμη, δίαυλοι, συσκευές Ε/Ε, δίσκοι, αρχεία κλπ.

55 Επανατοποθέτηση Επανατοποθέτηση (Relocation): μετά από εναλλαγή προγράμματος προς εκτέλεση λόγω χρονομερισμού ο χώρος εργασίας μπορεί να τοποθετηθεί σε διαφορετικό τμήμα της φυσικής μνήμης. Λύση: όλες οι διευθύνσεις του προγράμματος σχετικές (relative) = απόσταση (offset) από τους καταχωρητές που καθορίζουν τη πρόσβαση στο χώρο εργασίας του προγράμματος. Διαχείριση μέσω MMU. Εξαιρέσεις: Ο χώρος εργασίας του πυρήνα, των ελεγκτών και ρουτινών διακοπών, ορισμένων βασικών συσκευών E/Ε (memory mapped Ι/Ο), του BIOS (Basic I/O System). Προβλήματα: Τι συμβαίνει στη κρυφή μνήμη με τη θεματική αλλαγή; Τί γίνεται με τη σύνδεση (linking) βιλιοθηκών; Τι συμβαίνει με τις πιθανές κοινόχρηστες βιβλιοθήκες; Τι σημαίνει Dynamic Library Linking?

56 Ορισμός χώρου διευθύνσεων Ορισμός χώρου διευθύνσεων με τη βοήθεια καταχωρητών baselimit (Memory Management Unit, MMU).

57 Λογική και φυσική διεύθυνση Κατά τη λειτουργία σε κατάσταση επόπτη (supervisor mode), το λ.σ. έχει απεριόριστη πρόσβαση σε ολόκληρη τη μνήμη. Οι εντολές φόρτωσης (load) για τους καταχωρητές base & limit είναι προνομιούχες εντολές

58 Δίσκοι Γεωμετρία: Ίχνη/Τροχιές, Κύλινδροι, Τομείς (σταθερός αριθμός bytes/τομέα). Χρόνοι/Ταχύτητες: Περιστροφή Δίσκων+Μετακίνηση Κεφαλών= Αναζήτηση, Μεταφορά Δεδομένων. Αποθήκευση Δεδομένων: Συνεχής ή Τμηματική (Fragmented);

59 Σχηματικό Μητρικής Πλακέτας Δομή Διαύλων του Pentium 4. Φαίνονται οι ελεγκτές των διαύλων και των συσκευών Ε/Ε.

60 Eίσοδος/Έξοδος, Ελεγκτές και Οδηγοί (1) Ελεγκτής (Controller): το υλικό που είναι υπεύθυνο για τη διασύνδεση μιας συσκευής E/E με το δίαυλο (και με το σύστημα). Σύνδεση δεδομένων: χαρτογραφημένη Ε/Ε (memory-mapped I/O). Σύνδεση ελέγχου: ελεγκτής διακοπών (interrupt controller). Οι λειτουργίες I/O και οι λειτουργίες της CPU μπορούν να εκτελούνται ταυτόχρονα (σύγχρονη αρχιτεκτονική). Κάθε ελεγκτής συσκευής επιφορτίζεται με τον έλεγχο ενός τύπου συσκευής. Κάθε ελεγκτής συσκευής διαθέτει ένα τοπικό buffer (ενταμιευτής μνήμης). Η CPU μετακινεί δεδομένα από / προς την κύρια μνήμη προς /από τα τοπικά buffers. Οι λειτουργίες I/O γίνονται από τη συσκευή προς το τοπικό buffer του ελεγκτή. Ο ελεγκτής συσκευής πληροφορεί την CPU ότι έχει ολοκληρώσει τη λειτουργία του προκαλώντας μια διακοπή.

61 Eίσοδος/Έξοδος, Ελεγκτές και Οδηγοί (2) Οδηγός (Driver): το λογισμικό που είναι υπεύθυνο για τη διαχείριση της συσκευής και του ελεγκτή Ε/Ε. Συνδέεται άμεσα με το πυρήνα (kernel) του λ.σ. Καλείται είτε μέσω του ανύσματος διακοπής (interrupt vector) από τη συσκευή ή μέσω διακοπής λογισμικού (software interrupt) από το σύστημα ή κάποιο πρόγραμμα. Εκτελείται σε supervisor mode (συνήθως). Τρόποι σύνδεσης οδηγών στο λ.σ. Προεγκατάσταση, ενσωμάτωση στο λ.σ. (βασικοί οδηγοί) Κατά την εγκατάσταση του λ.σ. (επιλογή από διαθέσιμους οδηγούς) Κατά την εγκατάσταση της συσκευής (συνοδεύει τη συσκευή) Plug and Play: επίλυση του προβλήματος συγκρούσεων (conflict) σε διευθύνσεις ανύσματος διακοπής, αριθμού διακοπής ή και memorymapped I/O.

62 Χαρτογράφηση μνήμης / ενταμιευτών EPROM, RAM, και PIO σε χώρο διευθύνσεων 64 KB.

63 Ελεγκτής Διακοπών Ελεγκτής Διακοπών 8259A.

64 Είσοδος/Έξοδος και Διακοπές Τα βήματα για την έναρξη μιας λειτουργίας Εισόδου/Εξόδου και η αντίστοιχη κλήση Διακοπής.

65 Προστασία Ε/Ε Όλες οι εντολές Ε/Ε είναι προνομιούχες εντολές. Εξασφαλίζεται έτσι ότι ένα πρόγραμμα χρήστη δεν θα μπορεί ποτέ να αποκτήσει τον πλήρη έλεγχο ενός πόρου, και, από λάθος, να μην τον επιστρέφει. Ένα πρόγραμμα χρήστη εκτελεί λειτουργίες Ε/Ε μέσω κλήσεων συστήματος, τη μέθοδο που χρησιμοποιείται από μια διεργασία για να απαιτήσει ενέργεια από το Λ.Σ. Συνήθως έχει τη μορφή διακοπής λογισμικού ή trap σε μια καθορισμένη θέση του διανύσματος διακοπών. Ο έλεγχος περνά διαμέσου του διανύσματος διακοπών σε μια ρουτίνα εξυπηρέτησης στο λ.σ. και το mode bit τίθεται σε kernel (supervisor) mode. Ο πυρήνας διαπιστώνει ότι οι παράμετροι είναι σωστοί και αποδεκτοί, εκτελεί την απαίτηση και επιστρέφει τον έλεγχο στην εντολή που ακολουθεί την κλήση συστήματος (system call).

66 Χρήση κλήσης συστήματος για την εκτέλεση Ε/Ε

67 Σύγχρονη Ε/Ε user requesting process waiting device driver kernel Interrupt handler Hardware data transfer time Κατά τη διάρκεια εκτέλεσης, κάθε πρόγραμμα χρειάζεται μια λειτουργία Ε/Ε για να δέχεται δεδομένα από το πληκτρολόγιο, να ανοίγει αρχεία και να εκτυπώνει αποτελέσματα. Στα πρώτα υπολογιστικά συστήματα ένα πρόγραμμα έπρεπε να περιμένει την ολοκλήρωση της λειτουργίας Ε/Ε. (Σύγχρονη Ε/Ε) Έτσι συχνά η CPU παρέμενε ανενεργή (όχι άλλη εργασία): μια λειτουργία E/E ανά πρόγραμμα. Μόνο μια λειττουργία Ε/Ε ανά συσκευή.

68 Ασύγχρονη Ε/Ε και διακοπές (1) user requesting process continuing device driver kernel Interrupt handler Hardware data transfer time Η ασύγχρονη Ε/Ε επιστρέφει τον έλεγχο στο πρόγραμμα του χρήστη χωρίς να αναμένει την ολοκλήρωση των Ε/Ε. Όταν ολοκληρωθεί η λειτουργία Ε/Ε,προκαλείται μια διακοπή στην CPU που αναστέλλει προσωρινά το πρόγραμμα χρήστη και διαχειρίζεται τη συσκευή Ε/Ε. Το λ.σ. διατηρεί πίνακα με τη κατάσταση των συσκευών Ε/Ε. Πολλαπλές λειτουργίες Ε/Ε ανά πρόγραμμα και ανά συσκευή (spooling)

69 Ασύγχρονη Ε/Ε και διακοπές (2) Πίνακας κατάστασης συσκευών Ε/Ε

70 Direct Memory Access (1)

71 Direct Memory Access (2) 0. H CPU ζητά από μια συσκευή να εκτελέσει διαδικαια Ε/Ε. 1. Η συσκευή που θέλει να εκτελέσει DMA ειδοποιεί τον διαιτητή διαύλου και τη CPU (μέσω διακοπής). 2. H CPU στο τέλος του τρέχοντος κύκλου ανάκλησης-εκτέλεσης αποδέχεται (ack μέσω ISR). 3. Η συσκευή καταλαμβάνει το δίαυλο. 4. Η CPU ενημερώνεται για την κατάληψη και ετοιμάζει τη καταγραφή κίνησης των δεδομένων (supervisor mode). Μπορεί να συνεχίσει σε λειτουργίες που δεν απαιτούν κατάληψη διαύλου. 5. Η συσκευή DMA εκτελεί τη μεταφορά δεδομένων. 6. Κατά τη μεταφορά η CPU ελέγχει τις διευθύνσεις μνήμης που γράφονται (DMA write) και σε περίπτωση που απαιτείται ενημερώνει της κρυφής μνήμης (supervisor mode). 7. Στο τέλος της μεταφοράς DMA η συσκευή ενημερώνει το διαιτητή διαύλου και ελευθερώνει το δίαυλο (μέσω διακοπής). 8. Η CPU ενημερώνεται και συνεχίζει τις επικοινωνίες διαύλου εκεί που είχε σταματήσει (μέσω ISR).

72 Είδη διακοπών στον Intel Pentium Ο επεξεργαστής μπορεί να λάβει δύο είδη σημάτων: διακοπές (interrupts) και εξαιρέσεις (exceptions). Οι διακοπές ενημερώνουν τον επεξεργαστή ότι συνέβη ένα γεγονός ή ότι έχει αλλάξει η κατάσταση μιας εξωτερικής συσκευής. Η αρχιτεκτονική είναι επίσης εφοδιασμένη με software interrupts και οι διεργασίες μπορούν να τις χρησιμοποιήσουν για να εκτελέσουν κλήσεις συστήματος. Οι εξαιρέσεις δείχνουν ότι έχει συμβεί κάποιο σφάλμα, είτε στο υλικό είτε ως αποτέλεσμα μιας εντολής λογισμικού. Η αρχιτεκτονική χρησιμοποιεί επίσης εξαιρέσεις για την προσωρινή διακοπή μιας διεργασίας.

73 Διακοπές Pentium Τύπος Περιγραφή Ι/Ο Ξεκινούν από το υλικό Ι/Ο και ενημερώνουν τον επεξεργαστή για την αλλαγή κατάστασης μιας συσκευής timer Ένα σύστημα μπορεί να περιέχει συσκευές που παράγου διακοπές περιοδικά. Οι διακοπές αυτές χρησιμοποιούνται από διεργασίες διαχείρισης χρόνου και παρακολούθησης της απόδοσης. Επίσης ελέγχουν αν έχει παρέλθει το κβάντο χρόνου μιας διεργασίας. Inter-processor Επιτρέπουν την ανταλλαγή μηνυμάτων σε interrupts multiprocessor συστήματα

74 Εξαιρέσεις Pentium Tύπος Περιγραφή fault Συμβαίνουν κατά την εκτέλεση εντολών γλώσσας μηχανής. Περιλαμβάνουν τη διαίρεση με το μηδέν, προσπάθεια εκτέλεσης μη επιτρεπτών εντολών, προσπάθεια αναφοράς σε διευθύνσεις μνήμης που δεν υπάρχουν, προσπάθεια εκτέλεσης προνομιούχων εντολών και αναφορά σε προστατευμένο πόρο trap Δημιουργούνται από υπερχειλίσεις και όταν ο έλεγχος του προγράμματος φθάσει σε σημείο διακοπής του κώδικα abort Προκύπτουν όταν ο επεξεργαστής ανιχνεύσει σφάλμα από το οποίο η διεργασία δεν μπορεί να επανέλθει

75 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

76 Βασικές Λειτουργίες Οι λειτουργίες που ακολουθούν αποτελούν τα βασικά συστατικά (components) ενός λ.σ. και τα κεντρικά θέματα των ενοτήτων που θα ακολουθήσουν. Είναι οι βασικές λογικές αφαιρέσεις που αποκρύπτουν τα κατώτερα επίπεδα από τις εφαρμογές και το χρήστη. Διαχείριση Διεργασιών Διαχείριση Μνήμης Διαχείριση Αρχείων Διαχείριση Ε/Ε Διαχείριση Δευτερεύουσας Μνήμης Ασφάλεια και Προστασία Φλοιός ή Κέλυφος

77 Διαχείριση διεργασιών Μια διεργασία είναι ένα πρόγραμμα που εκτελείται. Μια διεργασία για να εκτελεστεί απαιτεί συγκεκριμένους πόρους, όπως CPU, μνλημη, αρχεία, συσκευές Ε/Ε. Το λ.σ. είναι υπεύθυνο για: Δημιουργία και τερματισμός διεργασιών Αναστολή και επανεκτέλεση διεργασιών Δρομολόγηση διεργασιών Παροχή μηχανισμών: Συγχρονισμού διεργασιών Επικοινωνίας διεργασιών Επίλυσης προβλημάτων ανταγωνισμού και αδιεξόδων

78 Διεργασίες Διεργασία: ένα πρόγραμμα που εκτελείται. Ένα δένδρο διεργασιών. Η διεργασία A δημιούργησε δύο διεργασίες, τις B και C. Η διεργασία B δημιούργησε τρείς διεργασίες τις D, E και F. Βασικοί 'δημιουργοί' διεργασιών: το λ.σ. κατά την εκκίνηση ο χρήστης μέσω του φλοιού (ή του GUI).

79 Χώρος διευθύνσεων διεργασίας Ο χώρος διευθύνσεων ή χώρος εργασίας ή εικόνα μνήμης (core image) μιας διεργασίας περιλαμβάνει -κατ' ελάχιστο: το πρόγραμμα (text), τα δεδομένα (data), και τη στοίβα (stack). Ακόμη έχουμε το σωρό (heap) και τη κοινόχρηστη μνήμη (global data, system calls, libraries) τα οποία δεν φαίνονται στο σχήμα.

80 Τυπική υλοποίηση διεργασίας Δύο διεργασίες Α και Β υπάρχουν σε τμήματα μνήμης. Ένα τμήμα μνήμης ανατίθεται σε κάθε διεργασία. Ποια διεργασία εκτελείται αυτή τη στιγμή;

81 Χαρακτηριστικά διεργασιών Βασικές καταστάσεις: δημιουργία (create), έτοιμη (ready), εκτέλεση (run), αναστολή (block), τερματισμός (terminate) CPU context και status: αποθηκεύεται στην αναστολή και επανέρχεται στην εκτέλεση (context switch). Πίνακας διεργασιών: διατηρείται από το λ.σ. και περιέχει μια εγγραφή για κάθε διεργασία (και δείκτη σε χώρο διευθύνσεων και context): Process ID, User ID, Group ID, προτεραιότητα,... Superuser (root), Administrator: χρήστης με αυξημένα δικαιώματα διαχείρισης διεργασιών και λ.σ. Προνομιούχες διεργασίες = προνομιούχες εντολές. Σήματα (signals) - διαδιεργασιακή επικοινωνία (interprocess communication): ανταλλαγή σημάτων ελέγχου (πχ stop, kill) και δεδομένων μεταξύ διεργασιών (πχ pipe: ls -l more).

82 Οι διεργασίες ως αφαίρεση Εκτελούμενη διεργασία = κώδικας που εκτελείται στη CPU Χώρος διευθύνσεων διεργασίας = CPU context + status Σήματα και διαδιεργασιακή επικοινωνία = μέσω λ.σ. (διακοπές) Εναλλαγή διεργασιών = Θεματική εναλλαγή Έλεγχος και Δρομολόγηση διεργασιών = μέσω λ.σ. (πυρήνας) Δημιουργία διεργασιών = μέσω λ.σ. (εκκίνηση, φλοιός) Είσοδος / Έξοδος = μέσω λ.σ. (πυρήνας) Μέσω της έννοιας και των χαρακτηριστικών της διεργασίας αποκρύπτουμε όλες τις δυσκολίες της διαχείρισης διακοπών. Τα ανώτερα επίπεδα 'βλέπουν' ακολουθιακές διεργασίες που επικοινωνούν και όχι διακοπές.

83 Δρομολόγηση και διαχείριση πόρων (1) Αμεροληψία (κατηγορίες διεργασιών και βαθμοί προτεραιότητας) Δυναμική απόκριση (το λ.σ. πρέπει να πάρει αποφάσεις για τη δρομολόγηση των απαιτήσεων που προκύπτουν δυναμικά) Αποτελεσματικότητα Μεγιστοποίηση της απόδοσης (performance) / χρησιμότητας (utilisation) / ρυθμαπόδοσης (throughput) Ελαχιστοποίηση του χρόνου απόκρισης (responce time) Εξυπηρέτηση πολλών χρηστών Απόκριση πραγματικού χρόνου (real time) Η δρομολόγηση και διαχείριση πόρων μπορεί να μοντελοποιηθεί ως πρόβλημα βελτιστοποίησης.

84 Δρομολόγηση και διαχείριση πόρων (2) Το Λ.Σ. διατηρεί έναν αριθμό ουρών κάθε μια από τις οποίες είναι μια λίστα διεργασιών που αναμένουν για κάποιον πόρο. Βραχυπρόθεσμη ουρά (διεργασίες που βρίσκονται στην κύρια μνήμη και είναι έτοιμες να εκτελεσθούν) Βραχυπρόθεσμος δρομολογητής ή διεκπεραιωτής (dispatcher) Στρατηγικές επιλογής Εκ περιτροπής εξυπηρέτηση (round-robin) Επίπεδα προτεραιότητας Μακροπρόθεσμη ουρά (λίστα από νέες διεργασίες που περιμένουν να χρησιμοποιήσουν τον επεξεργαστή) Ουρές για συσκευές Ε/Ε (όλες οι διεργασίες που περιμένουν να χρησιμοποιήσουν μια συσκευή δημιουργούν την ουρά της συσκευής)

85 Δρομολόγηση και διαχείριση πόρων (3)

86 Ανταγωνισμός και αδιέξοδα Συνθήκη Ανταγωνισμού (Race Condition) = όταν δύο ή περισσότερες διεργασίες προσπαθούν μέσω του λ.σ. να ελέγξουν ένα πόρο (π.χ. ανάγνωση από δίσκο). Η συνθήκη ανταγωνισμού μπορεί να ελεγθεί με Αμοιβαίο Αποκλεισμό (Mutual Exclusion), δηλαδή μια διεργασία να αναμένει υποχρεωτικά την άλλη και αντιστρόφως. Αν η συνθήκη ανατγωνισμού δε λυθεί με αμοιβαίο αποκλεισμό από το λ.σ. τότε καταλήγουμε σε Αδιέξοδο (Deadlock). Τα σφάλματα προκύπτουν μόνον έπειτα από συγκεκριμένες και σπάνιες αλληλουχίες ενεργειών.η ανίχνευση του σφάλματος δε καθορίζει αυτόματα και την αιτία από την οποία προήλθε.

87 Λόγοι σφαλμάτων διεργασιών Ανακριβής συγχρονισμός Κατά τη διαδιεργασιακή επικοινωνία τα σήματα που παράγονται από τις διακοπές πιθανώς να μην συχγρονιστούν σωστά. Αποτυχημένος αμοιβαίος αποκλεισμός Η προσπάθεια από χρήστες ή προγράμματα να κάνουν χρήση ενός διαμοιραζόμενου πόρου την ίδια χρονική στιγμή Ακαθόριστη λειτουργία προγράμματος Πολλά προγράμματα που διαμοιράζονται μνήμη να παρεμβαίνουν μεταξύ τους επανεγγράφοντας κοινές περιοχές της μνήμης με μη προβλέψιμους τρόπους. Η σειρά με την οποία δρομολογούνται διάφορα προγράμματα μπορεί να επηρεάσει το αποτέλεσμα. Αδιέξοδα (deadlocks) Δύο ή περισσότερα προγράμματα είναι σε αναμονή περιμένοντας το ένα το άλλο

88 Διαχείριση μνήμης (1) Το λ.σ. είναι υπεύθυνο για : Να κρατά λογαριασμό ποιά τμήματα της κύριας μνήμης είναι σε χρήση και από ποιά διεργασία. Να αποφασίσει σε ποιό τμήμα της κύριας μνήμης θα φορτωθεί η κάθε διεργασία, αν υπάρχει ελεύθερος χώρος. Να δεσμεύει και αποδεσμεύει το χώρο της κύριας μνήμης.

89 Διαχείριση μνήμης (2) Προστασία Μνήμης: Ιδιωτικός χώρος διευθύνσεων κάθε διεργασίας. Εξαιρέσεις, η κοινόχρηστες βιβλιοθήκες, οι κλήσεις συστήματος. Dual mode: user/protected mode και kernel/supervisor mode. Επανατοποθέτηση (Relocation): Ο χώρος διευθύνσεων της διεργασίας έχει 'λογικές' διευθύνσεις που παραμένουν ίδιες όταν αλλάζουν οι 'φυσικές' διευθύνσεις λόγω δρομολόγησης. Εικονική/Ιδεατή Μνήμη (Virtual Memory): O χώρος διευθύνσεων της διεργασίας έχει 'λογικές' διευθύνσεις που μπορεί να ξεπερνούν σε μέγεθος τις 'φυσικές' διευθύνσεις. Χρήση δευτερεύουσας μνήμης ως χώρο επέκτασης (χώρος εναλλαγής, swapping). Ο προστατευμένος, επανατοποθετήσιμος, πρακτικά άπειρος, χώρος διευθύνσεων μιας διεργασίας αποτελεί μια λογική αφαίρεση της κύριας μνήμης, την οποία παρέχει το λ.σ. προς τα ανώτερα επίπεδα.

90 Εικονική / Ιδεατή μνήμη (1) Η ιδεατή μνήμη είναι μια υπηρεσία του λ.σ. που επιτρέπει σε προγράμματα να διευθυνσιοδοτούν τη φυσική μνήμη του συστήματος με λογικό τρόπο, χωρίς να λαμβάνουν υπόψη το διαθέσιμο μέγεθος της φυσικής μνήμης. Με την ιδεατή μνήμη αντιμετωπίζεται η απαίτηση πολλαπλές διεργασίες να βρίσκονται ταυτόχρονα στην κεντρική μνήμη. Όταν ο επεξεργαστής εναλλάσσεται μεταξύ ενός πλήθους διεργασιών είναι δύσκολο να τις ομαδοποιήσει συμπαγώς στην κύρια μνήμη, επειδή οι διεργασίες ποικίλουν σε μέγεθος. Χρησιμοποιούνται συστήματα σελιδοποίησης.

91 Εικονική / Ιδεατή μνήμη (2) Επιτρέπει στις διεργασίες να αποτελούνται από τμήματα μνήμης σταθερού μεγέθους που λέγονται σελίδες (π.χ. με μέγεθος 4K). Κάθε σελίδα μπορεί να είναι τοποθετημένη οπουδήποτε στην κύρια μνήμη. Κάθε πρόγραμμα αναφέρει μια λογική/εικονική διεύθυνση και το σύστημα σελιδοποίησης την μετατρέπει σε φυσική δηλαδή πραγματική διεύθυνση. Το επόμενο βήμα ; Να ελαχιστοποιηθεί η απαίτηση όλες οι σελίδες μιας διεργασίας να βρίσκονται ταυτόχρονα στην κύρια μνήμη. Όσες δεν βρίσκονται μεταφέρονται από την δευτερεύουσα μνήμη μέσω του συστήματος διαχείρισης μνήμης (χώρος εναλλαγής).

92 Διευθυνσιοδότηση ιδεατής μνήμης (1)

93 Διευθυνσιοδότηση ιδεατής μνήμης (2)

94 Διαχείριση αρχείων Ένα αρχείο είναι μια λογική αφαίρεση της φυσικής οργάνωσης της πληροφορίας στη δευτερεύουσα μνήμη και σε συσκευές Ε/Ε. Επίσης αποτελεί απλή δομή δεδομένων στη κύρια μνήμη, δηλαδή μια ακολουθία (ροή, stream) από bytes που μπορεί να αγανωστεί σε ομάδες (blocks, records, fields, characters). Το λ.σ. είναι υπεύθυνο για: Δημιουργία, διαγραφή, αντιγραφή, μετονομασία, μετακίνηση, σύνεση αρχείων. Δημιουργία, διαγραφή, και διαχείριση καταλόγων. Απεικόνιση / επικοινωνία δεδομένων αρχείων μεταξύ κύριας και δευτερεύουσας μνήμης. Φόρτωμα/σώσιμο αρχείων πρός/από τη κύρια μνήμη.

95 Αρχεία (1) Κατάλογοι (Directories) ή Φάκελλοι (Folders). Αρχεία, Δυαδικά (binary ή block) ή κειμένου (text). Κρυφά (Hidden) αρχεία/κατάλογοι: συνήθως αρχεία ρυθμίσεων Σύνδεσμοι (Links): 'συνώνυμα' ονόματα αρχείων. Ένα αρχείο φαίνεται να έχει δύο ή περισσότερες 'θέσεις' στην ιεραρχία, (δενδρική δομή) του συστήματος αρχείων (file system). File Buffer (Ενταμιευτής): το τμήμα της κύριας μνήμης (δομή δεδομένων) που αποθηκεύει μέρος του αρχείου που βρίσκεται στη κύρια μνήμη. Μέσω αυτού γίνεται η ανάγνωση/εγγραφή. File Pointer: δείκτης στις δομές δεδομένων χειρισμού ενός αρχείου από γλώσσα υψηλού επιπέδου. Επιστρέφεται ως αποτέλεσμα μια κλήσης 'ανοίγματος' ενός αρχείου. File Descriptor (Περιγραφέας) και File Attributes (Ιδιότητες): στοχεία που περιλαμβάνει η δομή δεδομένων χειρισμού του αρχείου. Χειρισμός χαμηλού επιπέδου (κλήση συστήματος). Παρόμοια δεδομένα υπάρχουν και για καταλόγους, συσκευές κλπ.

96 Αρχεία (2) Ρίζα (Root): o αρχικός κατάλογος (/) Κατάλογος εργασίας (Working directory), τρέχων κατάλογος:. Γονικός κατάλογος (parent):.. Οικείος κατάλογος (home direcory): ~ Όνομα διαδρομής (Pathname): απόλυτο (absolute), από τη ρίζα σχετικό (relative), από το κατάλογο εργασίας. Βασικές κλήσεις συστήματος (εντολές) για * δημιουργία αρχείου / καταλόγου * μετακίνηση μέσα στο σύστημα αρχείων * αντιγραφή / διαγραφή / μετονομασία αρχείου / καταλόγου * προσάρτηση / αποπροσάρτηση συσκευών / συστημάτων αρχείων Συνήθως απλό Point-and-click..αλλά πρέπει να καλούνται από προγράμματα και από το λ.σ.

97 Αρχεία (3) Τυπική δενδρική δομή ενός συστήματος αρχείων.

98 Προσάρτηση (a) Πριν από τη προσάρτηση (mounting) τα αρχεία στο CD-ROM δεν είναι προσπελάσιμα. (b) Μετά τη προσάρτηση, τα αρχεία του CD-ROM εισάγονται στη δενδρική δομή του συστήματος αρχείων.

99 Διαχείριση Ε/Ε Το λ.σ. είναι υπεύθυνο για: Απεικόνιση συσκευών Ε/Ε στη μνήμη (I/O buffer) Επικοινωνία δεδομένων από/πρός τη συσκευή Ε/Ε Παροχή ενός συνόλου γενικευμένων διεπαφών ή οδηγών Ε/Ε (generic I/O interfaces / drivers) Παροχή ή τη δυνατότητα ενσωμάτωσης/ενημέρωσης νέων/ εξειδικευμένων οδηγών/συσκευών Ε/Ε

100 Ροές και συσκευές Ε/Ε Δύο διεργασίες που συνδέονται με διοχέτευση/δίαυλο (pipe). Π.χ. $ who grep john Aνακατεύθυνση: $ who > afile και $ program < input Ροές (streams): λογική σύνδεση αρχείων με συσκευές E/E. Π.χ. stdin=πληκτρολόγιο, stdout=οθόνη. Συσκευές (Devices): ειδικά δυαδικά αρχεία (block)

101 Η Είσοδος/Έξοδος ως αφαίρεση Συσκευή Ε/Ε = ειδικό αρχείο, ανάλογα με το τύπο της συσκευής Αρχείο χαρακτήρων: πληκτρολόγιο, οθόνη, εκτυπωτής, ποντίκι κλπ Αρχείο δυαδικό (block): δίσκοι, CD, DVD. Εγκατάσταση = αναγνώριση ελεγκτή, οδηγού Προσάρτηση = σύνδεση στο σύστημα αρχείων Λειτουργία = ανάγνωση, εγγραφή σε ειδικό αρχείο Περιορισμός της διεπαφής με τα κατώτερα επίπεδα στην εγκατάσταση.

102 Διαχείριση δευτερεύουσας μνήμης Το λ.σ. είναι υπεύθυνο για: Διαμόρφωση, οργάνωση χώρου και διαχείριση των δίσκων Εκχώρηση χώρου σε αρχεία και τήρηση σχετικού μητρώου Συντονισμό και χρονο-δρομολόγηση προσπελάσεων (αναγνώσεων / εγγραφών) στο δίσκο.

103 Ασφάλεια και προστασία Το λ.σ. Παρέχει ασφάλεια μέσω μηχανισμών προστασίας που ελέγχουν τα δικαιώματα / άδειες προσπέλασης των διεργασιών και των χρηστών στους πόρους του συστήματος, δηλαδή στη CPU, στη κύρια μνήμη, στη δευτερεύουσα μνήμη και στις συσκευές Ε/Ε. Ο μηχανισμός προστασίας του λ.σ. καθορίζει και ελέγχει: Τις προνομιούχες λειτουργίες / εντολές στη CPU (dual mode). Το χώρο διευθύνσεων κάθε διεργασίας στη κύρια (και ιδεατή) μνήμη. Τις άδειες προσπέλασης διεργασιών και αρχείων. Τα δικαιώματα προσπέλασης χρηστών και διεργασιών.

104 Προστασία: άδειες και δικαιώματα Κάθε αρχείο και κάθε διεργασία έχουν ένα ιδιοκτήτη (τα του συστήματος έχουν ως ιδιοκτήτη τον root ή administrator).. Κάθε χρήστης ανήκει σε μια ομάδα χρηστών (έστω και μονομελή) Κάθε χρήστης ή διεργασία έχει την άδεια να προσπελάσει μόνο αρχεία ή διεργασίες με βάση ένα σχήμα δικαιωμάτων που καθορίζεται κατά τη δημιουργία του αρχείου ή της διεργασίας και μπορεί να τροποποιηθεί μόνο από τον ιδιοκτήτη ή το διαχειριστή. Σχήμα δικαιωμάτων αρχείων Type Owner Group Other d r w x r w x r w x

105 Φλοιός ή Κέλυφος (1) Ο φλοιός (shell) είναι μια διεργασία που επεξεργάζεται εντολές. Η 'χαμηλότερη' αφαίρεση στην επικοινωνία χρήστη-υπολογιστή..διαλογικός (interactive) φλοιός: επικοινωνία μέσω τερματικού. Μη-διαλογικός φλοιός: επικοινωνία μέσω άλλης διεργασίας (πχ μέσω GUI ή μέσω δικτύου) Φλοιός δέσμης (batch): εκτέλεση δέσμης εντολών χωρίς απαραίτητα τη σύνδεση χρήστη (πχ backup). Ο διαλογικός φλοιός παρέχει μια προτροπή (prompt) και αναμένει εντολές που ενεργοποιούνται με enter. Πχ $ date <enter> $ ls l > mydir $ ls a grep bash $ sort <file1 >file2 $ cat file1 file2 file3 sort > /dev/lp

106 Φλοιός ή Κέλυφος (2) Κάθε γραμμή εντολής (command line) περιέχει ονόματα εντολών, επιλογές (options), ορίσματα (arguments), τελεστές και άλλες δεσμευμένες λέξεις του φλoιού. Περιβάλλον (environment) του φλοιού λέγεται μια λίστα από μεταβλητές που. ορίζουν τις συνθήκες εκτέλεσης του φλοιού, πχ κωδικός χρήστη, κατάλογος εργασίας, ονόματα διαδρομής εντολών, τύπος τερματικού κλπ. Κάθε γραμμή εντολής δημιουργεί μια ή περισσότερες διεργασίες που επικοινωνούν με αρχεία, συσκευές και μεταξύ τους (μέσω του λ.σ.) για την εκτέλεση των εντολών. Η εκτέλεση μιας εντολής ή ενός σεναρίου μπορεί να γίνει στο προσκήνιο (foreground) ή στο παρασκήνιο (background) ή να χρονοπρογραμματεί (για μη-διαλογικές εντολές). $ gedit & $ Ο φλοιός δημιουργεί τη διεργασία gedit αλλά δεν τη περιμένει να τερματιστεί.

107 Φλοιός ή Κέλυφος (3) Μια ή περισσότερες γραμμές εντολών μπορούν να ομαδοποιηθούν σε ένα αρχείο κειμένου που ονομάζεται αρχείο δέσμης (batch file) ή σενάριο (script). Αυτό μπορεί να εκτελεστεί ως σύνολο, με απλή κληση του ονόματός του. Ο. φλοιός έχει δική του 'γλώσσα' που επιτρέπει σύνθεση εντολών. Έτσι γίνεται μεγάλο μέρος της δουλειάς του προγραμματισμού συστημάτων. #!/bin/bash # This script can clean up files that end up in *.old. USAGE="Usage: $0 dir1 dir2 dir3... dirn" if [ "$#" == "0" ]; then echo "$USAGE" exit 1 fi while (( "$#" )); do if [[ "$(ls $1)" == "" ]]; then echo "Empty directory $1, nothing to be done." else find $1 type f a name '*.old' exec rm i {} \; fi shift done

108 Μερικές ακόμη υπηρεσίες Περιβάλλον εκτέλεσης (Run Time Environment). Φόρτωση και εκτέλεση προγραμμάτων χρηστών και άλλων εφαρμογών. Επαναφορά σε περίπτωση σφάλματος. Έλεγχοι σφαλμάτων σε όλες τις λειτουργίες. Καταγραφές (Logging) διαφόρων λειτουργιών. Δικτύωση (Networking) Βασικές υπηρεσίες για σύνδεση με άλλα υπολογιστικά συστήματα μέσω δικτύου (πρωτόκολλο TCP/IP).

109 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

110 Κλήσεις συστήματος (system calls) Η διεπαφή μεταξύ του λ.σ. και των προγραμμάτων των χρηστών ορίζεται μέσω ενός συνόλου εκτεταμένων εντολών (extended instructions) που παρέχει το λ.σ. Αυτές οι εκτεταμένες εντολές είναι περισσότερο γνωστές ως κλήσεις συστήματος. Γράφονται γενικά σε γλώσσα assembly. Περιλαμβάνονται σε βιβλιοθήκες που παρέχουν διεπαφή με γλώσσες υψηλού επιπέδου, συνήθως C. Υπάρχουν τρεις γενικές μέθοδοι που χρησιμοποιούνται για τη μεταβίβαση παραμέτρων: Μεταβίβαση παραμέτρων σε καταχωρητές. Αποθήκευση των παραμέτρων σε πίνακα στη μνήμη. Αποθήκευση (push) των παραμέτρων στη στοίβα (stack).

111 Κλήσεις συστήματος (2) Τα προγράμματα του χρήστη επικοινωνούν με το λ.σ. και αιτούνται εξυπηρέτηση εκτελώντας κλήσεις συστήματος. Σε κάθε κλήση συστήματος αντιστοιχεί μια καθορισμένη γνωστή διαδικασία την οποία μπορούν να καλέσουν τα προγράμματα του χρήστη (καλά ορισμένο API, πχ POSIX ή Windows API). Η διαδικασία αυτή τοποθετεί τις παραμέτρους κλήσης συστήματος σε μια επιλεγμένη περιοχή και στη συνέχεια εκπέμπει μια εντολή software interrupt ή trap (κλήση διαδικασίας σε kernel / supervisor mode) για να ξεκινήσει το λ.σ. Μόλις το λ.σ. αναλάβει τον έλεγχο, μετά από τo software interrupt ή trap εξετάζει αν οι παράμετροι είναι αποδεκτές, και αν είναι εκτελεί την εργασία.

112 Κλήσεις συστήματος (3) Όταν η εργασία τελειώσει, το λ.σ. τοποθετεί έναν κωδικό κατάστασης (status code) σε έναν καταχωρητή, ειδοποιώντας για την επιτυχή ή ανεπιτυχή εκτέλεση και εκτελεί μια εντολή επιστροφής από διακοπή (return from interrupt / trap), για να επιστρέψει τον έλεγχο στη διαδικασία βιβλιοθήκης που προκάλεσε τη κλήση συστήματος. Στη συνέχεια η διαδικασία βιβλιοθήκης επιστρέφει στο πρόγραμμα που την κάλεσε, επιστρέφοντας τον κωδικό κατάστασης σαν τιμή επιστροφής (return value) μιας συνάρτησης. Ο αριθμός και ο τύπος των κλήσεων συστήματος διαφέρει στα διάφορα λ.σ.

113 Κλήσεις συστήματος (4) Πέρασμα παραμέτρων μέσω καταχωρητή δείκτη σε πίνακα.

114 Κλήσεις συστήματος (5) Τα 11 βήματα για την εκτέλεση της κλήσης συστήματος count = read(fd, buffer, nbytes).

115 Οι κλήσεις συστήματος ως αφαίρεση Διαχείριση διεργασιών Διαχείριση αρχείων Είσοδος / Έξοδος Διαχείριση μνήμης Επικοινωνία διεργασιών Οι κλήσεις συστήματος επιτρέπουν την διαχείριση διαφορετικών κατωτέρων επιπέδων (διαφορετικού υλικού) χωρίς την αλλαγή της διεπαφής των ανωτέρων επιπέδων. Τα ανώτερα επίπεδα 'βλέπουν' ουσιαστικά το λ.σ. μέσω των κλήσεων συστήματος (του ΑPI) χωρίς να ενδιαφέρονται για το υλικό καθ' αυτό. Η υλοποίηση ενός λ.σ. είναι για τα ανώτερα επίπεδα υλοποίηση κλήσεων συστήματος. Μια εφαρμογή 'τρέχει' σε ένα λ.σ. Όταν περιλαμβάνει τις κατάλληλες κλήσεις συστήματος.

116 Κλήσεις Συστήματος για Διαχείριση Διεργασιών Κλήσεις συστήματος POSIX για διαχείριση διεργασιών.

117 Κλήσεις Συστήματος για Διαχείριση Αρχείων (1) Κλήσεις συστήματος POSIX για διαχείριση αρχείων.

118 Κλήσεις Συστήματος για Διαχείριση Αρχείων (2) Κλήσεις συστήματος POSIX για διαχείριση αρχείων.

119 Σύνδεση (Linking) (a) Δύο κατάλογοι πριν τη σύνδεση του αρχείου /usr/jim/memo με τον κατάλογο /usr/ast. (b) Οι ίδιοι κατάλογοι μετά τη σύνδεση. Το αρχείο /usr/ast/note δείχνει (συνδέεται με) το αρχείο /usr/jim/memo.

120 Προσάρτηση (Mounting) (a) Σύστημα αρχείων πριν τη προσάρτηση. (b) Σύστημα αρχείων μετά τη προσάρτηση.

121 Άλλες Κλήσεις Συστήματος Μερικές ακόμη κλήσεις συστήματος POSIX.

122 Επικοινωνία διεργασιών Μεταβίβαση Μηνυμάτων Μοιραζόμενη Μνήμη

123 Απλός Φλοιός Το main() ενός πολύ απλού φλοιού.

124 Windows Win32 API Αντιστοίχιση κλήσεων συστήματος Win32 API και POSIX.

125 Πού είναι οι κλήσεις συστήματος; Χρήση γλώσσας C (C++ ή C#) 'Μικρή', μεταφερτή (portable) γλώσσα, ανεξάρτητος (system independent) μεταγλωττιστής, πολλές Βιβλιοθήκες (system dependent) Βιβλιοθήκες C: Header (include) files και Object (lib) files Πρότυπες βιβλιοθήκες: ISO Standard και ISO POSIX Μεταγλώττιση πολλών αρχείων (Separate compilation) Make (Build): ενημέρωση μόνο των αρχείων που έχουν τροποποιηθεί από τη προηγούμενη μεταγλώττιση Εξαρτήσεις (Dependencies): ποιά αρχεία εξαρτώνται από ποιά κατά τη μεταγλώττιση.

126 Διαδικασία μεταγλώττισης στη C

127 Τυπική χρήση C σε Linux /usr/bin/gcc: εκτελέσιμο GNU C (gcc) /usr/include: header files /usr/lib: library object files $ gcc prog.c $./a.out #include <stdio.h> #include <stdlib.h> int main (int argc, char **argv, char **envp) {... }

128 Πρότυπες Βιβλιοθήκες C ISO C library header files <assert.h> <complex.h> <stddef.h> <ctype.h> <stdio.h> <errno.h> <stdlib.h> <fenv.h> <string.h> <float.h> <tgmath.h> <inttypes.h> <time.h> <limits.h> <wchar.h> <locale.h> <wctype.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <stdbool.h> <stdint.h> C POSIX library header files <cpio.h> <dirent.h> Allows the opening and listing of directories. <fcntl.h> File opening, locking and other operations. <grp.h> User group information and control. <pwd.h> passwd (user information) access and control. <sys/ipc.h> Inter-process communication (IPC). <sys/msg.h> POSIX message queues. <sys/sem.h> POSIX semaphores. <sys/stat.h> File information (stat et al). <sys/time.h> Time and date functions and structures. <sys/types.h> Various data types used elsewhere. <sys/utsname.h> uname and related structures. <sys/wait.h> Status of terminated child processes (see wait) <tar.h> <termios.h> Allows terminal I/O interfaces. <unistd.h> Various essential POSIX functions and constants. <utime.h> inode access and modification times.

129 Πληροφορίες για κλήσεις συστήματος (1) $ man man Sections Man pages are grouped into sections. Section 1 user commands Section 2 system calls Section 3 library functions Section 4 special files Section 5 file formats Section 6 games Section 7 conventions and miscellany Section 8 administration and privileged commands Section L math library functions Section N tcl functions

130 Πληροφορίες για κλήσεις συστήματος (2) GNU C Library Introduction: Purpose of the GNU C Library. Error Reporting: How library functions report errors. Memory: Allocating virtual memory and controlling paging. Character Handling: Character testing and conversion functions. String and Array Utilities: Utilities for copying and comparing strings and arrays. Character Set Handling: Support for extended character sets. Locales: The country and language can affect the behavior of library functions. Message Translation: How to make the program speak the user's language. Searching and Sorting: General searching and sorting functions. Pattern Matching: Matching shell ``globs'' and regular expressions. I/O Overview: Introduction to the I/O facilities. I/O on Streams: High-level, portable I/O facilities. Low-Level I/O: Low-level, less portable I/O. File System Interface: Functions for manipulating files. Pipes and FIFOs: A simple interprocess communication mechanism. Sockets: A more complicated IPC mechanism, with networking support.

131 Πληροφορίες για κλήσεις συστήματος (3) Low-Level Terminal Interface: How to change the characteristics of a terminal device. Syslog: System logging and messaging. Mathematics: Math functions, useful constants, random numbers. Arithmetic: Low level arithmetic functions. Date and Time: Functions for getting the date and time and formatting them nicely. Resource Usage And Limitation: Functions for examining resource usage and getting and setting limits. Non-Local Exits: Jumping out of nested function calls. Signal Handling: How to send, block, and handle signals. Program Basics: Writing the beginning and end of your program. Processes: How to create processes and run other programs. Job Control: All about process groups and sessions. Name Service Switch: Accessing system databases. Users and Groups: How users are identified and classified. System Management: Controlling the system and getting information about it. System Configuration: Parameters describing operating system limits. Cryptographic Functions: DES encryption and password handling. Debugging Support: Functions to help debugging applications.

132 Παράδειγμα κλήσεων συστήματος (1) #include <stdio.h> #include <stdlib.h> #include <unistd.h> main() { int pid, status; printf("forking process\n"); pid = fork(); wait(&status); printf("the process id is %d \n", getpid()); printf("value of pid is %d\n", pid); if (pid == 0) printf("i am the child, status is %d\n", status); else printf("i am the parent, status is %d\n", status); execl("/bin/ls","/bin/ls"," l", NULL); printf("this line is not printed\n"); }

133 Παράδειγμα κλήσεων συστήματος (2) #include <stdio.h> #include <unistd.h> int main(void) { char command[80]; int pid, status; for(;;) { printf("my_shell: "); if(fgets(command, sizeof(command), stdin) == NULL) { printf("\n"); return 0; } command[strlen(command) 1] = '\0'; if((pid = fork()) == 0) execlp(command, command, 0); while(wait(&status)!= pid) continue; printf("\n"); } }

134 Shell, Shell Scripting, Windows API MSDN > MSDN Library > Win32 and COM development Adiministration and Management > PowerShell Development Guides > Windows API Library > Scripts and Scripting Guidance MS-DOS Batch Files Φορητές γλώσσες σεναρίων: Perl, Python (JavaScript) Ποιό όμοια από όσο νομίζουμε..

135 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

136 Το Φάσμα των Υπολογιστών Το φάσμα των σύγχρονων υπολογιστών, ενδεικτικές τιμές και τυπικές εφαρμογές τους.

137 Τύποι Λειτουργικών Συστημάτων με βάση τις απαιτήσεις ΛΣ mainframes ΛΣ διακομιστών ΛΣ προσωπικών υπολογιστών ΛΣ παράλληλων συστημάτων ΛΣ κατανεμημένων συστημάτων ΛΣ συστημάτων πραγματικού χρόνου ΛΣ παιχνδιών και πολυμέσων ΛΣ κινητών, PDAs... ΛΣ ενσωματωμένων συστημάτων ΛΣ μικροελεγκτών ΛΣ συστημάτων αισθητήρων ΛΣ έξυπνων καρτών

138 Δομή Λειτουργικών Συστημάτων με βάση την αρχιτεκτονική Μονολιθικά συστήματα Πολυεπίπεδα συστήματα Συστήματα Μικροπυρήνα Συστήματα Πελάτη Διακομιστή Κατανεμημένα συστήματα Παράλληλα συστήματα Εικονικές μηχανές Πολυμεσικά συστήματα

139 Μονολιθικά Συστήματα (1) Ένα κύριο πρόγραμμα καλεί την ρουτίνα εξυπηρέτησης που απαιτείται. Οι κλήσεις συστήματος εκτελούνται μέσω ενός συνόλου ρουτινών εξυπηρέτησης. Ένα σύνολο βοηθητικών ρουτινών υποστηρίζουν τις ρουτίνες εξυπηρέτησης. Πρόκειται για μια συλλογή από διαδικασίες, κάθε μια από τις οποίες μπορεί να καλέσει οποιαδήποτε άλλη, όταν τη χρειαστεί. Κάθε διαδικασία είναι ορατή σε οποιαδήποτε άλλη. Η επικοινωνία μεταξύ των διαδικασιών γίνεται με πέρασμα παραμέτρων (ορισμάτων). Παραδείγματα μονολιθικών λ.σ : OS/360, VMS, Linux

140 Μονολιθικά Συστήματα (2) Το πρόγραμμα του χρήστη δημιουργεί μια κλήση συστήματος που προκαλεί μια διακοπή λογισμικού (trap), μια ειδική εντολή η κλήση πυρήνα kernel call. Το λ.σ. (main procedure) προσδιορίζει τον αριθμό εξυπηρέτησης (παράμετρο) που ζητήθηκε. Το λ.σ. εντοπίζει και καλεί τη διαδικασία εξυπηρέτησης (service routine). Aυτή μπορεί να καλέσει με τη σειρά της βοηθητικές ρουτίνες (utility routines). Ο έλεγχος επιστρέφεται στο πρόγραμμα του χρήστη μετά την ολοκλήρωση της κλήσης συστήματος.

141 Μονολιθικά Συστήματα (3) Απλή δομή μονολιθικού λ.σ.

142 Συστατικά τυπικού πυρήνα (kernel) Δρομολογητής διεργασιών (process scheduler) Διαχειριστής μνήμης (memory manager) Διαχειριστής συσκευών Ε/Ε (I/O manager) Διαχειριστής διαδιεργασιακής επικοινωνίας (interprocessor comunication (IPC) manager) Διαχειριστής συστήματος αρχείων (file system manager)

143 Πολυεπίπεδα Συστήματα (1) Η πολυεπίπεδη (στρωματοποιημένη) αρχιτεκτονική προσπαθεί να βελτιώσει το σχεδιασμό των μονολιθικών πυρήνων ομαδοποιώντας συστατικά που υλοποιούν παρόμοιες λειτουργίες σε επίπεδα (στρώματα). Κάθε επίπεδο επικοινωνεί μόνον με τα γειτονικά του (επάνω και κάτω). Οι αιτήσεις των διεργασιών διαπερνούν αρκετά επίπεδα πριν ολοκληρωθούν. Η ρυθμοαπόδοση (throughput) μπορεί να είναι μικρότερη από τα μονολιθικά λ.σ. Απαιτούνται επιπλέον μέθοδοι για τη μεταβίβαση και τον έλεγχο των δεδομένων. Τα επίπεδα είναι σχετικά εύκολο να διαχωριστούν λογικά αλλά όχι φυσικά (υλοποίηση).

144 Πολυεπίπεδα Συστήματα (2)

145 Πολυεπίπεδα Συστήματα (3)

146 Πολυεπίπεδα Συστήματα (4) Δομή του λ.σ. THE.

147 Λογικά Επίπεδα - Αρθρώματα (Modules) 0 : Επίπεδο Αρχιτεκτονικής Συνόλου Εντολών (διακοπές, γλώσσα )μηχανής, άμεση επικοινωνία με το υλικό) : ιαχείρηση στοιχειωδών διεργασιών (παροχή εντολών όπως suspend, resume, wait, signal) και υλοποίηση θεματικής εναλλαγής. 2: ιαχείρηση περιφερειακών συσκευών (π.χ. διάβασμα από ή γράψιμο σε δίσκο). 3: Εικονική (Iδεατή) μνήμη (υποστήριξη λογικών διευθύνσεων μνήμης) : Διαδιεργασιακή επικοινωνία (pipes). 5: ιαχείρηση αρχείων (create, open, write) στο επίπεδο του χρήστη (π.χ. μέσα από το ρεπερτόριο εντολών μίας γλώσσας προγραμματισμού). 6: ιαχείρηση περιφερειακών συσκευών και παροχή ομοιογενών μηχανισμών πρόσβασης του χρήστη σε όλα τα είδη τους, έστω και αν αυτά παρουσιάζουν μεταξύ τους σημαντικές διαφορές στη λειτουργία τους. 7: Kατάλογοι σε επίπεδο χρήστη (mkdir, rmdir). 8: ιαχείρηση διεργασιών σε επίπεδο χρήστη (quit, kill, at). 9: Προγραμματισμός συστήματος με κατάλληλες γλώσσες (όπως ο φλοιός ή κέλυφος του Unix).

148 Συστήματα μικροπυρήνα (1) Σε ένα μονολιθικό λ.σ. ο πυρήνας περιλαμβάνει τη δρομολόγηση, το σύστημα αρχείων, τη δικτύωση, τους οδηγούς συσκευής, τη διαχείριση μνήμης κ.α. Υλοποιείται ως μια μοναδική διεργασία και όλα τα στοιχεία διαμοιράζονται τον ίδιο χώρο διευθύνσεων. Ένα λ.σ. μικροπυρήνα αναθέτει λίγες λειτουργίες στον καθ' αυτό πυρήνα (που εκτελείται σε kerner mode) και τις υπόλοιπες τις αναθέτει σε διακομιστές ή εξυπηρετητές (servers) που εκτελούνται σε κατάσταση χρήστη (user mode). Η διεργασία του χρήστη διεργασία πελάτης (client process) στέλνει την αίτηση σε διεργασία διακομιστή (server process) η οποία εκτελεί τις απαραίτητες λειτουργίες επιστρέφει την απάντηση. Οι λειτουργίες μπορεί να απαιτούν αιτήσεις προς άλλες διεργασίες (π.χ. drivers). Ο πυρήνας διαχειρίζεται την επικοινωνία μεταξύ clients και servers μέσω μυνημάτων.

149 Συστήματα μικροπυρήνα (2) Δομή του λ.σ. MINIX 3.

150 Συστήματα μικροπυρήνα (3)

151 Συστήματα μικροπυρήνα (4) Το σχήμα του μικροπυρήνα που ουσιαστικά μεταβιβάζει μηνύματα και δρομολογεί clients και servers δεν είναι απόλυτα ρεαλιστικό. Κάποιες λειτουργίες είναι δύσκολο, ακόμη και ακατόρθωτο να πραγματοποιηθούν σε user mode. Τυπικό παράδειγμα οι λειτουργίες E/E που απαιτούν πλήρη πρόσβαση σε συσκευές Ε/Ε. Τρόποι επίλυσης : * Οι κρίσιμες διεργασίες (I/O drivers, οδηγοί Ε/Ε) εκτελούνται σε kernel mode με πλήρη πρόσβαση στο υλικό, αλλά συνεχίζουν να επικοινωνούν με άλλες διεργασίες σε user mode. * Ο μικροπυρήνας προστατεύει τις συσκευές Ε/Ε ελέγχοντας τις άδειες πρόσβασης διεργασιών και τον ανταγωνισμό για κατάληψη πόρων, αλλά δεν είναι υπεύθυνος για τη προστασία των δεδομένων.

152 Συστήματα μικροπυρήνα (5) Επεκτασιμότητα Επιτρέπει την προσθαφαίρεση υπηρεσιών και χαρακτηριστικών. Μεταφερσιμότητα Οι αλλαγές που απαιτούνται για τη μεταφορά του συστήματος σε νέο επεξεργαστή γίνονται στον μικροπυρήνα και όχι στις άλλες υπηρεσίες. Αντικειμενοστραφές λ.σ. Τα συστατικά του λ.σ. είναι αντικείμενα με σαφώς καθορισμένες διεπαφές που μπορούν να διασυνδεθούν. Αξιοπιστία Αρθρωτός (modular) σχεδιασμός. Ο μικρού μεγέθους μικροπυρήνας μπορεί να ελεγχθεί με ακρίβεια.

153 Σύστημα μικροπυρήνα και Μοντέλο Πελάτη Διακομιστή Το σύστημα μικροπυρήνα ως μοντέλο πελάτη-διακομιστή.

154 Κατανεμηνένα Συστήματα και Μοντέλο Πελάτη-Διακομιστή Το μοντέλο πελάτη-διακομοστή σε κατανεμημένο σύστημα.

155 Μοντέλο Πελάτη Διακομιστή (1) Το μοντέλο Πελάτη Διακομιστή έχει γενικότερη εφαρμογή, πέρα από την αρχιτεκτονική λ.σ. Μικροπυρήνα. Τα περισσότερα λ.σ. είναι δομημένα με τη λογική των υπηρεσιών-servers (services ή daemons) που εκτελούνται στο παρασκήνιο (background) και αναμένουν αιτήσεις (κλήσεις) από διεργασίες clients, που μπορεί να είναι προγράμματα χρηστών ή άλλες διεργασίες που δημιουργούνται από το λ.σ. για την εξυπηρέτηση αιτημάτων προγραμμάτων χρηστών. Το μοντέλο Πελάτη Διακομιστή επεκτείνεται φυσιολογικά στα δίκτυα και στο Διαδίκτυο, όπου η διεργασία διακομιστή βρίσκεται σε διαφορετικό σύστημα από τη διεργασία πελάτη και η αίτηση εξυπηρέτησης όπως και το αποτέλεσμα της κλήσης μεταβιβάζονται μέσω του δικτύου. Π.χ. web browser = client, web site = web server. Αντίστοιχα: mail server, ftp server, print server, telnet/ssh server.

156 Μοντέλο Πελάτη Διακομιστή (2)

157 Κατανεμημένα Συστήματα (1) Κατανέμουν τις διάφορες λειτουργίες σε διαφορετικούς υπολογιστές, συνεδεδεμένους μέσω δικτύου. Συστήματα βασισμένα σε τερματικά (terminals) Ο χρήστης έχει 'έξυπνο' τερματικό. Απομακρυσμένη σύνδεση και μεταφορά δεδομένων σε απομακρυσμένο υπολογιστή (server), όπου γίνεται και η βασική επεξεργασία, ενώ τοπικά γίνεται κυρίως η παρουσίαση. Ουσιαστικά πολυχρηστικά συστήματα. Δίκτυα βασισμένα σε PC's (τυπικό client-server) O χρήστης έχει προσωπικό υπολογιστή. Η επεξεργασία είναι κυρίως τοπική, τα δεδομένα να μεταφέρονται από / προς ειδικούς servers, κυρίως κατά τις λειτοουργίες φόρτωσης, ενημέρωσης και αποθήκευσης. Επεξεργασία συναλλαγών (βάσεις δεδομένων).

158 Κατανεμημένα Συστήματα (2) Δικτυακά συστήματα (γενικευμένο client-server) Ο χρήστης έχει ισχυρό σταθμό εργασίας. Ο ίδιος υπολογιστής μπορεί να είναι client ή server ανάλογα με τη διαδικασία. Η επεξεργασία είναι τοπική (client-side) ή / και απομακρυσμένη (server-side), τα δεδομένα μεταφέρονται από / προς ή προσπελαύνονται απευθείας σε εξειδικευμένους servers. Παράδειγμα: 3-tier κατανεμημένα συστήματα (client, web server, dbms server), peer-to-peer. Δικτυοκεντρικά συστήματα (net computing) Ο χρήστης έχει δικτυακό υπολογιστή / πελάτη. Η αποθήκευση των δεδομένων, η παρουσίαση, η επεξεργασία γίνονται μέσω αιτήσεων σε διαφορετικούς servers, διαφανώς για το χρήστη. Παράδειγμα: web services, grid computing, cloud computing, softare as service.

159 Κατανεμημένα Συστήματα (3) Πλεονεκτήματα Διαμοίραση πόρων Αύξηση της ταχύτητας υπολογισμού / throughput Αξιοπιστία Δυνατότητες επικοινωνίας Μειονεκτήματα Ασφάλεια και προστασία Τα κατανεμημένα συστήματα αποκρύπτουν: τον τρόπο πρόσβασης σε έναν πόρο το τόπο όπου βρίσκεται κάποιος πόρος τη διαμοίραση πόρων από πολλούς χρήστες που ανταγωνίζονται για τη χρήση τους τη μετακίνηση ενός πόρου σε άλλο μέρος ενώ είναι σε χρήση τις διαφορές στην αναπαράσταση δεδομένων

160 Ενδιάμεσο Λογισμικό ή Διαλογισμικό (Middleware) -1 Ομοιογενές κατανεμημένο σύστημα

161 Ενδιάμεσο Λογισμικό ή Διαλογισμικό (Middleware) - 2 Ετερογενές κατανεμημένο σύστημα

162 Παράλληλα και Κατανεμημένα Συστήματα Γενίκευση βασικών τύπων συστημάτων πολλαπλών επεξεργαστών: Πολυ-επεξεργαστής, Πολυ-υπολογιστής, Κατανεμημένο Σύστημα

163 Παράλληλα Συστήματα (1) Network Τύποι παράλληλων συστημάτων (a) Μοντέλο Διαμοιραζόμενης Μνήμης (SMP's και Πολυπύρηνα) (b) Μοντέλο Κατανεμημένης Μνήμης (Multicomputers) (c) Μοντέλο Κατανεμημένης Μνήμης (Συστοιχίες)

164 Παράλληλα Συστήματα (2) Συστήματα Διαμοιραζόμενης Μνήμης ή Πολυ-επεξεργαστές Symmetric Multi-Processors (SMPs) Multi-Core Systems Βασικά ζητήματα. Διαχείριση πολλαπλών επεξεργαστών (συντονισμός, εξισορρόπηση) Διαχείριση κρυφής μνήμης (συνέπεια και ακεραιότητα) Διαχείριση κοινής μνήμης (ακεραιότητα) Συστήματα Κατανεμημένης Μνήμης ή Πολυ-υπολογιστές Multi-Computers Συστοιχίες (Clusters) Networks of Workstations Βασικά ζητήματα Διαχείριση πολλαπλών πυρήνων/αντιγράφων λ.σ. (ενημέρωση) Διαχείριση πολλαπλών υπολογιστών (συντονισμός, εξισορρόπηση) Διαχείριση κατανεμημένης μνήμης (μεταβίβαση μηνυμάτων) Διαχείριση τοπικών συσκευών Ε/Ε (κατανεμημένα συστήματα)

165 Συστήματα Διαμοιραζόμενης Μνήμης (1) Τύποι ιεραρχιών μνήμης: (a) Μόνο διαμοιραζόμενη μνήμη (b) Ιδιωτική cache και διαμοιραζόμενη μνήμη (c) Ιδιωτική L1 cache, μερικά διαμοιραζόμενη L2 cache και διαμοιραζόμενη μνήμη

166 Τύποι Λ.Σ. πολυεπεξεργαστών Tanenbaum, Modern Operating Systems 3Bus e, (c) 2008 Prentice-Hall, Inc. All rights reserved

167 Κατανεμημένη Μνήμη: Multicomputer Επικοινωνία σε ένα multi-computer

168 Κατανεμημένη Μνήμη: Συστοιχία (Cluster) Τυπικό cluster, δικτυακός multicomputer. Τα επιμέρους συστήματα μπορεί να είναι και πολυ-επεξεργαστές.

169 Distributed - Shared Memory Υλοποίηση διαμοιραζόμενης μνήμης σε διάφορα επίπδεα. (a) Υλικό (b) Λειτουργικό Σύστημα (c) Σύστημα Εκτέλεσης.

170 Εικονικές Μηχανές (1) Δομή του VM/370 με CMS.

171 Εικονικές Μηχανές (2) (a) Υπερεπόπτης τύπου 1 (b) Υπερεπόπτης τύπου 2

172 Πλεονεκτήματα / Μειονεκτήματα Παρέχει πλήρη προστασία του συστήματος, καώς κάθε εικονική μηχανή είναι απομονωμένη από την άλλη και όλες από το σύστημα (sandbox). Όμως η απομόνωση προκαλεί περιπλοκές στο διαμοιρασμό και επικοινωνία των συσκευών Ε/Ε και δικτύωσης (ο οδηγός του οδηγού..). Επιπτρέπει τον πειραματισμό και την ανάπτυξη λ.σ. χωρίς να κινδυνεύει το σύστημά μας. Επιτρέπει τη πολυπλεξία (διαμοιρασμό) συστημάτων σε ανώτερο επίπεδο: ο κάθε χρήστης θεωρεί οτι έχει ένα προσωπικό σύστημα (virtualization). Επιτρέπει τη συνύπαρξη client-server σε ένα σύστημα (net-in-abox). Απλοποίηση ανάπτυξης. Έχει μεγάλες απαιτήσεις σε πόρους (CPU, μνήμη). Αλλά ταιριάζει στα σύγχρονα πολυ-πύρηνα συστήματα.

173 Εικονικές μηχανές και εφαρμογές System Virtual Machnies: επιτρέπουν εικονικές αρχιτεκτονικές ή/και εικονικά λ.σ. πάνω σε άλλα λ.σ. VMWare, Quemu, VirtualBox, KVM Application Virtual Machines: επιτρέπουν την εκτέλεση οικογενειών εφαρμογών ανεξάρτητα από το λ.σ. ή την αρχιτεκτονική, JVM Δες Wikipedia στο λήμμα Virtual Machine

174 Java Virtual Machine (1) Μεταγλώττιση προγραμμάτων Java σε πλατφόρμα bytecode ανεξάρτητη από λειτουργικά συστήματα και αρχιτεκτονικές - Java Virtual Machine (JVM). Η JVM αποτελείται από - class loader - class verifier - runtime interpreter Μεταγλωττιστές Just-In-Time (JIT) αυξάνουν την απόδοση.

175 Java Virtual Machine (2)

176 Αρχές σχεδιασμού Λ.Σ. Απόδοση Σταθερότητα Κλιμάκωση Επεκτασιμότητα Φορητότητα Ασφάλεια Ευχρηστία

177 Υλοποίηση Λ.Σ. Πολιτικές: ΤΙ πρέπει να γίνει. Μηχανισμοί: ΠΩΣ αυτό θα υλοποιηθεί. Ο διαχωρισμός πολιτικών από μηχανισμούς είναι πολύ σημαντικός, γιατί επιτρέπει εύκολη τροποποίηση. Γλώσσα Μηχανής: Σίγουρα το system dependent part. Αποδοτική υλοποίηση αλλά δύσκολη επεκτασιμότηα, μικρή φορητότητα, αδυναμία χρήσης βιβλιοθηκών γλωσσών υψηλού επιπέδου (πχ γραφικά). Γλώσσα Υψηλού Επιπέδου: Λιγότερο αποδοτική υλοποίηση, εύκολη επεκτασιμότητα, μεγάλη φορητότητα, μεγάλη ευχριστία. Συνήθως συνδυασμός των δύο προσεγγίσεων.

178 Εγκατάσταση και λειτουργία Λ.Σ. Το λ.σ. πρέπει να είναι 'γραμμένο' για τη συγκεκριμένη αρχιτεκτονική (system dependent part). Πχ Linux ports για x86, x86-64, MIPS, PowePC, SPARC, Μ68000, ARM.. Το αρχικό πρόγραμμα εγκατάστασης SYSGEN εκτελείται αρχικά και συλλέγει πληροφορίες για τη διαμόρφωση του συγκεκριμένου συστήματος. Αναγνωρίζει πχ την ύπαρξη άλλου λ.σ. Στη συνέχεια διαμερίζει (partition) και διαμορφώνει (format) το δίσκο ή τμήμα του και εγκαθιστά το λ.σ. Booting εκκίνηση του εγκατεστημένου λ.σ. Πρόσφατα: Live-CD, USB-flash boot. Bootstrap program πρόγραμμα που βρίσκεται στη ROM και βρίσκει το Master Boot Record (MBR) ή το Boot Loader (πχ Grub, Lilo), ειδικό πρόγραμμα που κρατά λογαριασμό για τη θέση του πυρήνα (ή των πυρήνων) στο δίσκο.

179 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή στο μάθημα Ιστορικά στοιχεία και ορισμοί Ανασκόπηση κατωτέρων επιπέδων Βασικές λειτουργίες Κλήσεις συστήματος Τύποι και δομή λειτουργικών συστημάτων Μελέτες περίπτωσης

180 Win32 Application Programming Interface Το Win32 API επιτρέπει την ανάπτυξη εφαρμογών για διαφορετικές εκδόσεις των Windows

181 Αρχιτεκτονική Windows 2000.

182 Αρχιτεκτονική Windows XP

183 Εξομοίωση MS-DOS Εκτέλεση προγραμμάτων MS-DOS σε Windows

184 Γενική αρχιτεκτονική UNIX User Interface The layers of a UNIX system.

185 Αρχιτεκτονική Linux

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

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης III Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 Ηλεκτρονικός Υπολογιστής αποτελείται: 1. Από Υλικό Hardware (CPUs, RAM, Δίσκοι), & 2. Λογισμικό - Software Και μπορεί να εκτελέσει διάφορες

Διαβάστε περισσότερα

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ.

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1 ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System) Υλικό Hardware Λογισμικό Software... κώδικας ΥΛΙΚΟ Κάθε ηλεκτρονικό, ηλεκτρικό και μηχανικό μέρος του Η/Υ. ΛΟΓΙΣΜΙΚΟ Προγράμματα,δηλαδή οδηγίες γιατοτιπρέπεινακάνειοη/υ. Λειτουργικό Σύστημα Είναι ένα βασικό

Διαβάστε περισσότερα

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

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview Εργαστήριο Λειτουργικών Συστημάτων Minix Overview Σύνοψη 5ης ιάλεξης Λειτουργικό Σύστημα Minix Οργάνωση του Λειτουργικού Συστήματος Οργάνωση πηγαίου κώδικα Minix recompilation Σύνοψη Μαθήματος Σύνοψη Μαθήματος

Διαβάστε περισσότερα

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ http://leitourgika-systhmata-epal-b.ggia.info/ Σύγχρονο Λειτουργικό Σύστημα - ΛΣ Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

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

ΗΜΥ 313: Τεχνολογία Λειτουργικών Συστηµάτων ΗΜΥ 313: Τεχνολογία Λειτουργικών Συστηµάτων ιδάσκων: Χρίστος Παναγιώτου Υπολογιστικό Σύστηµα Ένα υπολογιστικό σύστηµα αποτελείται από Πώς καταφέρνουν και λειτουργούν όπως αναµένει ο χρήστης; 1 Τι είναι

Διαβάστε περισσότερα

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Τ.Ε.Ι ΗΠΕΙΡΟΥ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ & ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΤΗΛΕΠΛΗΡΟΦΟΡΙΚΗΣ & ΔΙΟΙΚΗΣΗΣ Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας Πτυχιακή εργασία του φοιτητή Γιαννακίδη Αποστόλη Επιβλέπων καθηγητής Τσούλος

Διαβάστε περισσότερα

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

Κεφάλαιο 4: Λογισμικό Συστήματος Κεφάλαιο 4: Λογισμικό Συστήματος Ερωτήσεις 1. Να αναφέρετε συνοπτικά τις κατηγορίες στις οποίες διακρίνεται το λογισμικό συστήματος. Σε ποια ευρύτερη κατηγορία εντάσσεται αυτό; Το λογισμικό συστήματος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών Εισαγωγή Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic, CS1/2-52,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις Υλικό από: Κ Διαμαντάρας, Λειτουργικά Συστήματα, Τμήμα Πληροφορικής ΤΕΙΘ Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

Διαβάστε περισσότερα

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual

Διαβάστε περισσότερα

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 12 Σχεδιασμός Ανάπτυξη Λειτουργία Π.Σ. 1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 1.1 Δυνατότητες Λειτουργικών Συστημάτων 1.1.1 Εισαγωγή Ο όρος Λειτουργικό Σύστημα (Operating System), εκφράζει το σύνολο των προγραμμάτων

Διαβάστε περισσότερα

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

Εισαγωγή στα Λειτουργικά Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 6: Διαχείριση Μνήμης Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σεάδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Β ) Λειτουργικό Σύστημα Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

Διαβάστε περισσότερα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα 1. Ποια είναι η σχέση της έννοιας του μικροεπεξεργαστή με αυτή του μικροελεγκτή; Α. Ο μικροεπεξεργαστής εμπεριέχει τουλάχιστο έναν μικροελεγκτή. Β. Ο

Διαβάστε περισσότερα

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

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

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

Χαράλαμπος Καραγιαννίδης Διάλεξη 4 Λειτουργικό Σύστημα & Λογισμικό Εφαρμογών H/Y Εισαγωγή στις Εφαρμογές ΤΠΕ Χαράλαμπος Καραγιαννίδης karagian@uth.gr Διάλεξη 4: Λειτουργικό Σύστημα & Εφαρμογές 1/41 20/10/2015 Σύνοψη Μαθήματος

Διαβάστε περισσότερα

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

Οργάνωση Υπολογιστών (Ι) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα

Διαβάστε περισσότερα

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. PROXY SERVER Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. Αποτελεσματικό εργαλείο για την απόκρυψη των εσωτερικών λεπτομερειών και διευθύνσεων IP του δικτύου. Αυξάνει τη συνολική

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Λειτουργικά Συστήματα. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Λειτουργικά Συστήματα Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual

MIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1 Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση

Διαβάστε περισσότερα

Μερικές άλλες χρήσιμες εντολές

Μερικές άλλες χρήσιμες εντολές 1 Μερικές άλλες χρήσιμες εντολές whoami (Εμφανίζει το όνομα του τρέχοντος χρήστη) pwd (Εμφανίζει το όνομα του τρέχοντος καταλόγου) cat text file name (Παρουσιάζει στην οθόνη το περιεχόμενο ενός αρχείου

Διαβάστε περισσότερα

Η γλώσσα προγραμματισμού C

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Εισαγωγή στη C Λίγα λόγια για την C Γλώσσα προγραμματισμού υψηλού επιπέδου. Σχεδιάστηκε και υλοποιήθηκε από τον Dennis Richie στις αρχές της δεκαετίας του 1970 (Bell Labs). Η

Διαβάστε περισσότερα

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2014-15 Διασύνδεση Εισόδου-Εξόδου (συσκευές και ) http://www.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Διασυνδετικοί : Αναλαμβάνουν την

Διαβάστε περισσότερα

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

Κεφάλαιο 2: Λογισμικό (Software) Εφαρμογές Πληροφορικής Κεφ. 2 Καραμαούνας Πολύκαρπος Κεφάλαιο 2: Λογισμικό (Software) 1 2.1 Λογισμικό Συστήματος και Λογισμικό Εφαρμογών Λογισμικό Συστήματος: διαχειρίζεται το υλικό του υπολογιστή και αποτελεί τη βάση πάνω στην οποία αναπτύσσεται και εκτελείται

Διαβάστε περισσότερα

1. ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 1.1 ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Ένα Υπολογιστικό Σύστηµα αποτελείται: Υλικό» Επεξεργαστές»

Διαβάστε περισσότερα

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

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

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι, Ε/Ε

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι, Ε/Ε ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Συστήματα αρχείων, δίσκοι, Ε/Ε Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

Διαβάστε περισσότερα

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

Κεφάλαιο 1ο. 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων Κεφάλαιο 1ο 1.1.5 Πολυπρογραμματισμός 1.1.6 Πολυδιεργασία 1.2.2. Κατηγορίες Λειτουργικών Συστημάτων http://leitourgika-systhmata-epal-b.ggia.info Creative Commons License 3.0 Share-Alike Πολυπρογραμματισμός

Διαβάστε περισσότερα

Συστήματα Υπολογιστών 2008-09

Συστήματα Υπολογιστών 2008-09 Συστήματα Υπολογιστών 2008-09 Λειτουργικά Συστήματα Μέρος 1 ο Δρ Διονύσης Κεχαγιάς Δρ Φιλαρέτη Τσαλακανίδου Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Τμήμα Ηλετρολόγωνν Μηχανικών και Μηχανικών Υπολογιστών

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Κεφάλαιο 5ο Συστήματα Εισόδου - Εξόδου (INPUT/OUTPUT) 1 6.1 I/O Υλικό To Ι/Ο σύστημα αποτελεί ένα πολύ μεγάλο τμήμα ενός Λ.Σ. Συνήθως "διευθύνει" όλες τις συσκευές I/O (π.χ. δίσκους,

Διαβάστε περισσότερα

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

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

Διαβάστε περισσότερα

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

Συστήματα Πληροφοριών Διοίκησης Ενότητα 5: Λογισμικό Πληροφοριακών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Τεχνολογικό Εκπαιδευτικό Ίδρυμα Πειραιά Συστήματα Πληροφοριών Διοίκησης Ενότητα 5: Λογισμικό Πληροφοριακών Συστημάτων Διονύσιος Γιαννακόπουλος, Καθηγητής Τμήμα Διοίκησης Επιχειρήσεων

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 9 : Ιδεατή Μνήμη 1/2 Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

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

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή 1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ Μάθημα: Ενότητα: Πληροφορική Α' Γυμν. Το του Υπολογιστή 1. Τι ονομάζεται Πρόγραμμα; Είναι οι οδηγίες που δίνονται στον υπολογιστή για να εξηγήσουμε πώς γίνεται μια εργασία (δηλαδή η

Διαβάστε περισσότερα

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 8 : Υποστήριξη από το Λειτουργικό Σύστημα Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

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

Λειτουργικά Συστήµατα Λειτουργικά Συστήµατα Κεφάλαιο 2 Τι είναι ένα Λειτουργικό Σύστηµα(Λ.Σ.) Είναι µια επεκταµένη µηχανή Κρύβει τις λεπτοµέρειες που πραγµατοποιούνται κατά την εκτέλεση Προσφέρει στο χρήστη µια απλούστερη εικονική

Διαβάστε περισσότερα

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

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

Διαβάστε περισσότερα

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

Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική. Τυπικοί χρόνοι πρόσβασης. Μέσος χρόνος πρόσβασης. Ταχύτητα µεταφοράς δεδοµένων Κεφάλαιο 5Β (επανάληψη) Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 Απόδοση των οδηγών αποθηκευτικών µέσων Μέσος χρόνος πρόσβασης (Average Access Time) Ταχύτητα µεταφοράς δεδοµένων (Data-Transfer

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

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

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών Εισαγωγή στην επιστήμη των υπολογιστών Υλικό Υπολογιστών Κεφάλαιο 5ο Οργάνωση υπολογιστών 1 Οργάνωση υπολογιστών ΚΜΕ Κύρια Μνήμη Υποσύστημα εισόδου/εξόδου 2 Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) R1 R2 ΑΛΜ

Διαβάστε περισσότερα

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Εισαγωγή Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Βιβλιογραφία "C Προγραμματισμός", Deitel & Deitel, Πέμπτη Έκδοση, Εκδόσεις

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

Διαβάστε περισσότερα

Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης i Στα σύγχρονα

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 8: Διαχείριση Μνήμης. Φυσικές και Λογικές Διευθύνσεις Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και

Διαβάστε περισσότερα

Information Technology for Business

Information Technology for Business Information Technology for Business Lecturer: N. Kyritsis, MBA, Ph.D. Candidate e-mail: kyritsis@ist.edu.gr Computer System Hardware Υποδομή του Information Technology Υλικό Υπολογιστών (Hardware) Λογισμικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: Λειτουργίες Αρχείων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 7: Διαχείριση Μνήμης. Φυσική και Λογική Διευθυνσιοδότηση. Προστασία. Εναλλαγή Μνήμης Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο

Διαβάστε περισσότερα

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

Εισαγωγή στην πληροφορική Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Εισαγωγή στην πληροφορική Ενότητα 2: Βασικές αρχές λειτουργίας και χρήσης του υπολογιστή Αγγελίδης Παντελής Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output)

Λειτουργικά Συστήματα Ι. Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output) Λειτουργικά Συστήματα Ι Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output) I/O Hardware (Υλικό Ε/Ε) Το σύστημα Ι/Ο αποτελεί ένα πολύ μεγάλο τμήμα ενός Λ.Σ. Συνήθως "διευθύνει" όλες τις συσκευές I/O (π.χ.,

Διαβάστε περισσότερα

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

Διαβάστε περισσότερα

SIMATIC MANAGER SIMATIC MANAGER

SIMATIC MANAGER SIMATIC MANAGER 1 Προγραμματισμός του PLC. 1. Γενικά Μια προσεκτική ματιά σε μια εγκατάσταση που θέλουμε να αυτοματοποιήσουμε, μας δείχνει ότι αυτή αποτελείται από επιμέρους τμήματα τα οποία είναι συνδεδεμένα μεταξύ τους

Διαβάστε περισσότερα

Writing kernels for fun and profit

Writing kernels for fun and profit Writing kernels for fun and profit Γιάννης Τσιομπίκας nuclear@memberfsforg 23 Μαρτίου 2011 Γιατί; It s FUN! Εξοικείωση με το hardware Εμβάθυνση στον θαυμαστό κόσμο των λειτουργικών συστημάτων Μια καλή

Διαβάστε περισσότερα

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

Εισαγωγή στην Πληροφορική Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή στην Πληροφορική 1 Γενικές πληροφορίες Εισαγωγή στην Πληροφορική ιδασκαλία: Παναγιώτης Χατζηδούκας Email:

Διαβάστε περισσότερα

Το υλικό του υπολογιστή

Το υλικό του υπολογιστή Το υλικό του υπολογιστή Ερωτήσεις 1. Τι αντιλαμβάνεστε με τον όρο υλικό; Το υλικό(hardware) αποτελείται από το σύνολο των ηλεκτρονικών τμημάτων που συνθέτουν το υπολογιστικό σύστημα, δηλαδή από τα ηλεκτρονικά

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP)

ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP) ΤΜΗΜΑ ΦΥΣΙΚΗΣ Α.Π.Θ. ΕΡΓΑΣΤΗΡΙΟ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ Microsoft WINDOWS (95-98-NT-2000-XP) Κ. Παρασκευόπουλος Αναπλ. Καθηγητής Θεσσαλονίκη 2004 1. Μερικά κλασσικά ερωτήματα

Διαβάστε περισσότερα

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

Εισαγωγή στα Λειτουργικά Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 9: Αρχεία ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σεάδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής

Το «κλειστό» σύστημα. Ανοικτές επικοινωνίες... Εισαγωγή στην Τεχνολογία της Πληροφορικής. Εισαγωγή στην τεχνολογία της πληροφορικής ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Εισαγωγή στην Τεχνολογία της Πληροφορικής ΓΙΩΡΓΟΣ Ν. ΓΙΑΝΝΟΠΟΥΛΟΣ Λέκτορας στο Πανεπιστήμιο Αθηνών gyannop@law.uoa.gr Το «κλειστό» σύστημα ΕΙΣΟΔΟΣ ΕΠΕΞΕΡΓΑΣΙΑ

Διαβάστε περισσότερα

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

Διαβάστε περισσότερα

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

Διαβάστε περισσότερα

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 015-16 Οργάνωση Υπολογιστών (ΙI) (κύρια και ) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα τυπικό υπολογιστικό

Διαβάστε περισσότερα

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές

Διαβάστε περισσότερα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 3 MULTIPLE CHOICE

ΜΑΘΗΜΑ 3 MULTIPLE CHOICE ΜΑΘΗΜΑ 3 MULTIPLE CHOICE 1. Ποιa από τις πιο κάτω εργασίες είναι λειτουργία του Λειτουργικού Συστήματος; a) Προσθήκη δεδομένων σε ένα υπολογιστικό φύλλο b) Εκπόνηση έκθεσης βάσης δεδομένων c) Διαχείριση

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07 Τμήμα θεωρίας: Α.Μ. 8, 9 Κάθε Πέμπτη, 11πμ-2μμ, ΑΜΦ23. Διδάσκων: Ντίνος Φερεντίνος Γραφείο 118 email: kpf3@cornell.edu Μάθημα: Θεωρία + προαιρετικό

Διαβάστε περισσότερα

Επίπεδο δικτύου IP Forwading κτλ

Επίπεδο δικτύου IP Forwading κτλ Επίπεδο δικτύου IP Forwading κτλ (IP για που το έβαλες) Εργαστήριο Δικτύων Υπολογιστών 2014-2015 Τμήμα Μηχανικών Η/Υ και Πληροφορικής Επίπεδο δικτύου (Network layer) Επίπεδο εφαρμογής (Application layer):

Διαβάστε περισσότερα

Ταχύτητα, Απλότητα & Αξιοπιστία

Ταχύτητα, Απλότητα & Αξιοπιστία Ταχύτητα, Απλότητα & Αξιοπιστία Αρχιτεκτονική Μηχανισμοί Αυτοελέγχου Συνδεσιμότητα Περιβάλλον Εργασίας Πληροφορίες Σχήματος Report Builder Import Manager Αρχιτεκτονική Real Time Multithreading Σταθερότητα

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 2. ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ...11 1.1 Τι είναι Πληροφορική;...11 1.1.1 Τι είναι η Πληροφορική;...12 1.1.2 Τι είναι ο Υπολογιστής;...14 1.1.3 Τι είναι το Υλικό και το

Διαβάστε περισσότερα

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης Περίληψη Προηγούμενου Επισκόπηση αρχείων και επεξεργασία κειμένου Εντολές file,

Διαβάστε περισσότερα

Linux Terminal Server Project

Linux Terminal Server Project Linux Terminal Server Project Ένα κεντρικό σύστημα διαχείρισης των τερματικών κοινού της Βιβλιοθήκης & Κέντρου Πληροφόρησης του Πανεπιστημίου Μακεδονίας Κολοβός Φίλιππος filippos@uom.gr Ευάγγελος Μπάνος

Διαβάστε περισσότερα

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Εργαστήριο 1ο Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI Σε αυτό το κεφάλαιο θα ασχοληθούμε με την περιγραφή της διαδικασίας μεταγλώττισης ενός προγράμματος C κάνοντας χρήση του μεταγλωττιστή gcc σε

Διαβάστε περισσότερα

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαχείριση μνήμης II Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz, Galvin

Διαβάστε περισσότερα

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

Διαβάστε περισσότερα