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

Μέγεθος: 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 Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

2 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή Ιστορικά στοιχεία Τύποι και υπηρεσίες Βασικές διεπιφάνειες Αρχιτεκτονική Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

3 Τι είναι Λειτουργικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από πόρους: Έναν ή περισσότερους επεξεργαστές Ιεραρχία κύριας μνήμης Αποθηκευτικές μονάδες (δευτερεύουσα μνήμη) Mονάδες εισόδου/εξόδου, διεπαφές δικτύου Η διαχείριση όλων αυτών των μερών απαιτεί ένα επίπεδο λογισμικού το Λειτουργικό Σύστημα Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

4 Λειτουργικό Σύστημα: Εικονική Μηχανή Το Λειτουργικό Σύστημα αποκρύπτει τη δύσχρηστη διεπαφή με το υλικό (Αρχιτεκτονική Συνόλου Εντολών) και την αντικαθιστά με εύχρηστες Aφαιρέσεις (Διεργασίες, Αρχεία, Εικονική/Ιδεατή Μνήμη, Συσκευές Ε/Ε, Κλήσεις Συστήματος κλπ) για τα ανώτερα επίπεδα. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

5 Λειτουργικό Σύστημα: Διαχειριστής Πόρων Επιτρέπει την συντρέχουσα (concurrent) ή/και παράλληλη (parallel) εκτέλεση πολλών προγραμμάτων Διαχειρίζεται αποδοτικά τη CPU, τη μνήμη, τις συσκευές Ε/Ε και τους άλλους πόρους του συστήματος Επιτρέπει πολυπλεξία (διαμοιρασμό) πόρων μεταξύ πολλών προγραμμάτων με δύο τρόπους: Χρονική πολυπλεξία (χρονομερισμός, δρομολόγηση) Χωρική πολυπλεξία (τοποθέτηση σε μνήμη, δίσκο) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

7 Υλικό Μαθήματος (Διαδίκτυο) * Compus, Yλικό, ασκήσεις, εργασίες, ανακοινώσεις. * PdP Lab, Συλλογές διαδικτυακού υλικού, για διάφορα θέματα αρκετά για λειτουργικά συστήματα, προγραμματισμό συστημάτων, Linux και Ελεύθερο-Ανοικτό Λογισμικό. Εδώ συνήθως οδηγούν οι σύνδεσμοι του Compus. * Wikipedia Το λήμμα computer operating system αποτελεί καλή εκκίνηση, όπως και οι σύνδεσμοι σε επιμέρους θέματα της Wikipedia. Μάθετε να Googlάρετε!

8 Σχέδιο Μαθήματος 1. Επικόπιση λειτουργικών συστημάτων 2. Είσοδος/ Έξοδος, δίσκοι 3. Συστήματα αρχείων 4. Διεργασίες και νήματα 5. Δρομολόγηση διεργασιών 6. Επικοινωνία διεργασιών 7. Αδιέξοδα 8. Διαχείριση κύριας μνήμης 9. Ιδεατή μνήμη Μελέτη περίπτωσης: Unix/Linux

9 Αξιολόγηση Εξετάσεις χωρίς βιβλία και σημειώσεις. Θα χορηγείται μόνο βοηθητικό υλικό (αν αυτό απαιτείται). Οδηγός ύλης και ασκήσεων το βιβλίο 'Σύγχρονα Λειτουργικά Συστήματα' του Tanenbaum, επιλογή από κεφάλαια 1-6 και 10 με έμφαση στο υλικό των σημειώσεων. Δίνεται περίληψη και λύσεις των ασκήσεων. Εργαστήρια (βασισμένα σε Ubuntu Linux): (1) Γραμμή εντολών (2) Σενάρια φλοιού (3) Προγραμματισμός συστημάτων σε C Συνεπής παρακολούθηση και υποβολή ασκήσεων ~ 3 μονάδες

10 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή Ιστορικά στοιχεία Τύποι και υπηρεσίες Βασικές διεπιφάνειες Αρχιτεκτονική Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

11 Ιστορία Λ.Σ. l no software resident monitors

12 Μονοπρογραμματισμός (1) O υπολογιστής εκτελεί ένα πρόγραμμα κάθε φορά. Ένα πολύ απλό λ.σ., ο επόπτης (monitor ή supervisor), βρίσκεται σε συγκεκριμένη περιοχή της κύριας μνήμης (RAM ή ROM resident) και εξασφαλίζει την επικοινωνία με τις συσκευές Ε/Ε και τη δευτερεύουσα μνήμη (που μπορεί και να μην υπάρχει ή να είναι ελάχιστη). monitor Επίσης, στην ίδια περιοχή μνήμης βρίσκονται οι απλοί οδηγοί συσκευών (device drivers) και οι ενταμιευτές (buffers) Ε/E. Το πρόγραμμα συντάσσεται σε γλώσσα μηχανής ή συμβολική γλώσσα. Αργότερα προστίθενται και υπολοιπα βοηθητικά προγράμματα, όπως απλός διορθωτής (editor), και συμβολομεταφραστής (assembler), διερμηνευτής (interpreter) ή μεταγλωττιστής (compiler). Main memory

13 Μονοπρογραμματισμός (2) Με τη βοήθεια ένός περιορισμένου συνόλου εντολών προς τον επόπτη ο χρήστης εισάγει αρχικά το πρόγραμμα στη κύρια μνήμη μέσω συσκευής Ε/Ε, παράγει κώδικα σε γλώσσα μηχανής, εισάγει τα δεδομένα και εκτελεί το πρόγραμμα. Τα αποτελέσματα εξάγονται μέσω συσκευής Ε/Ε. Οι δυνατότητες αποθήκευσης, διόρθωσης του προγράμματος, νέας εκτέλεσης κλπ είναι περιορισμένες. Αρκετά συχνά απαιτείται η επανάληψη της όλης διαδικασίας από την αρχή. Κατά τη διάρκεια εκτέλεσης, το πρόγραμμα έχει σχεδόν πλήρη πρόσβαση στο υλικό και στις μονάδες Ε/Ε (ελάχιστη προστασία). Σε περίπτωση λάθους.. κάνουμε επανεκκίνηση. Σημερινό ισοδύναμο: προγραμματισμός μικρο-ελεγκτών, ενσωματωμένων συστημάτων κλπ. Πολλές φορές η ανάπτυξη του προγράμματος γίνεται σε μεγαλύτερο υπολογιστή και μόνο ο τελικός έλεγχος στον μικρο-ελεγκτή. Παραδείγματα: Arduino, Lego NXT κλπ

14 Μονοπρογραμματισμός (2) Με τη βοήθεια ένός περιορισμένου συνόλου εντολών προς τον επόπτη ο χρήστης εισάγει αρχικά το πρόγραμμα στη κύρια μνήμη μέσω συσκευής Ε/Ε, παράγει κώδικα σε γλώσσα μηχανής, εισάγει τα δεδομένα και εκτελεί το πρόγραμμα. Τα αποτελέσματα εξάγονται μέσω συσκευής Ε/Ε. Οι δυνατότητες αποθήκευσης, διόρθωσης του προγράμματος, νέας εκτέλεσης κλπ είναι περιορισμένες. Αρκετά συχνά απαιτείται η επανάληψη της όλης διαδικασίας από την αρχή. Κατά τη διάρκεια εκτέλεσης, το πρόγραμμα έχει σχεδόν πλήρη πρόσβαση στο υλικό και στις μονάδες Ε/Ε (ελάχιστη προστασία). Σε περίπτωση λάθους.. κάνουμε επανεκκίνηση. Σημερινό ισοδύναμο: προγραμματισμός μικρο-ελεγκτών, ενσωματωμένων συστημάτων κλπ. Πολλές φορές η ανάπτυξη του προγράμματος γίνεται σε μεγαλύτερο υπολογιστή και μόνο ο τελικός έλεγχος στον μικρο-ελεγκτή. Παραδείγματα: Arduino, Lego NXT κλπ

15 Συστήματα Δέσμης (1) Ο υπολογιστής εκτελεί μια δέσμη (batch) από εργασίες (jobs / tasks), χωρίς την μεσολάβηση προγραμματιστή. Ο προγραμματιστής υποβάλλει την εργασία του σε ένα διαχειριστή ο οποίος τοποθετεί όλες τις εργασίες μαζί σε μια συσκευή εισόδου για να εκτελεστούν υπό τον έλεγχο (ως εφαρμογές) του επόπτη. Ο επόπτης φορτώνει τα προγράμματα, τα μεταγλωττίζει, τα εκτελεί και σώζει τα αποτελέσματά τους σε συσκευή αποθήκευσης. Κάθε εργασία αποτελείται από ένα μια σειρά εντολών προς τον επόπτη. Η σειρά εντολών λέγεται σενάριο δέσμης (batch script). Σταδιακά οι εντολές προς τον επόπτη εξελίθηκαν σε σχεδόν πλήρεις διερμηνευόμενες γλώσσες σεναρίων δέσμης (batch cripting languages), γνωστές ως Γλώσσες Ελέγχου Εργασιών (Job Control Languages, JCL).

16 Συστήματα Δέσμης (2) Επόπτης (Monitor) RAM resident Επιλέγχει τις εργασίες που εκτελούνται (Job Sequencing) Διερμηνεύει τη JCL Φορτώνει, μεταγλωττίζει, εκτελεί, αποθηκεύει αποτελέσματα (για κάθε εργασία) Όταν μια εργασία τερματιστεί ο έλεγχος μεταφέρεται στον επόπτη Eπικοινωνεί με συσκευή εισόδου και εξόδου (απλές Διακοπές, Interrupts) Job Control Language (JCL) Επιλογή μεταγλωττιστή, βιβλιοθηκών, δεδομένων. Μεταγλώττιση, εκτέλεση υπο συνθήκη ή επαναληπτική. Χρήση ειδικών πόρων.

17 Συστήματα Δέσμης (3) Προστασία μνήμης: οι εργασίες (τα προγράμματα των χρηστών) που εκτελούνται δεν πρέπει να τροποποιούν την περιοχή μνήμης όπου υπάρχει ο monitor. Προστασία CPU, προνομιούχες (privileged) εντολές: εκτελούνται μόνον από το monitor, κυρίως για διαδικασίες φόρτωσης προγράμματος, έλεγχο σφαλμάτων εκτέλεσης, E/E. Παροχέτευση (Spooling): Οι εργασίες προς εκτέλεση φορτώνονται στη δευτερεύουσα μνήμη. O επόπτης επιλέγει την επόμενη εργασία από την ουρά των αποθηκευμένων εργασιών, την μεταφέρει στην κύρια μνήμη και αρχίζει την εκτέλεσή της. Η σειρά εκτέλεσης δεν είναι απαραίτητα η σειρά φόρτωσης στη δευτερεύουσα μνήμη (δρομολόγηση δέσμης εργασιών). Μόλις τελειώνει η εκτέλεση της τρέχουσας εργασίας, αποθηκεύει τα αποτελέσματά της και φορτώνει την επόμενη εργασία. Κάθε χρονική στιγμή, υπάρχει μόνο μια εργασία που είναι φορτωμένη και εκτελείται από το σύστημα.

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

19 Συστήματα Δέσμης (5) Εντολές JCL Δομή μιας τυπικής εργασίας δέσμης (batch job). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

20 Πολυπρογραμματισμός (1) Μονοπρογραμματισμός : Στα συστήματα δέσμης, όταν η εκτελούμενη εργασία αναμένει να ολοκληρωθεί μια λειτουργία Ε/Ε, η CPU μένει ανενεργή. Επειδή η Ε/Ε είναι πολύ πιο αργή από την εκτέλεση εντολών η σπατάλη χρόνου CPU μπορεί να φτάσει στο 80-90%. Παράδειγμα:

21 Πολυπρογραμματισμός (2) Πολυπρογραμματισμός : Χωρισμός της κύριας μνήμης σε διαμερίσματα (partitions) ώστε να βρίσκονται πολλές εργασίες ταυτόχρονα στη κύρια μνήμη. Σε κάθε εργασία το λ.σ. εκχωρεί ξεχωριστό διαμέρισμα της κύριας μνήμης. Όταν μια εργασία περιμένει για Ε/Ε, κάποια άλλη εργασία χρησιμοποιεί την CPU.

22 Πολυπρογραμματισμός (3) Το λ.σ. επιλέγει ποιές και πόσες εργασίες βρίσκονται στη κύρια μνήμη (μεσοπρόθεσμη δρομολόγηση) αλλά και ποια θα είναι η επόμενη εργασία θα καταλάβει τη CPU (βραχυπρόθεσμη δρομολόγηση). Η αλλαγή προς της προς εκτέλεση διεργασίας απαιτεί μηχανισμό θεματικής εναλλαγής (context switch).

23 Παράδειγμα (1)

24 Παράδειγμα (2) Βασικά κριτήρια απόδοσης : Βέλτιστη χρήση πόρων (Resource Utilisation) Διεκπεραιωτική ικανότητα (Throughput Rate) Χρόνος Ολοκλήρωσης εργασιών (Elapsed Time) Μέσος χρόνος απόκρισης (Response Time)

25 Πολυπρογραμματισμός (4) Προστασία και Διαχείριση Μνήμης: Οι εργασίες που εκτελούνται δεν πρέπει να τροποποιούν περιοχές μνήμης του λ.σ. αλλά και άλλων εργασιών. Επίσης και η δευτερεύουσα μνήμη πρέπει να διαμοιράζεται και να προστατεύεται ανάλογα, αφού τώρα πολλές εργασίες μπορεί να τη προσπελαύνουν (Συστήματα Αρχείων). Προστασία CPU, Δρομολόγηση, Συγχρονισμός και Μοίρασμα Πόρων: Θεματική εναλλαγή. Εφαρμογή αλγορίθμων δρομολόγησης και ομαδοποίηση εργασιών με βάση τα χαρακτηριστικά τους ('ελαφρές' και 'βαριές' εργασίες, CPU και I/O -bound εργασίες, μέγεθος δεδομένων κλπ). Οι ημιτελείς εργασίες πρέπει να συγχρονίζονται μεταξύ τους στη δέσμευση και χρήση πόρων (αρχείων, μονάδων Ε/Ε κλπ). Διακοπές: μηχανισμός του λ.σ. για την επικοινωνία του λ.σ. με πολλαπλές συσκευές Ε/Ε και τα προγράμματα εφαρμογών: η Ε/Ε είναι οδηγούμενη από γεγονότα (event-driven) αλλά όχι σε πραγματικό χρόνο (για το χρήστη).

26 Χρονομερισμός (time-sharing) Πολυπρογραμματισμός Χρηστών με απόκριση σε 'Πραγματικό' Χρόνο σε Διαλογικά (Interactive) συστήματα. Βασικά κριτήρια ο Χρόνος Απόκρισης (Response Time) και ο Χρόνος Ολοκλήρωσης (Turnaroud Time). Κάθε χρήστης συνδέεται μέσω τερματικού και η CPU εξυπηρετεί εκ περιτροπής κάθε πρόγραμμα χρήστη με ένα σύντομο καταιγισμό (burst) υπολογισμού ή ένα κβάντο (quantum) χρόνου (χρονοδιακοπή timeout). Έμφαση στις σχετικά σύντομες διαλογικές εργασίες που εκτελούν περισσότερο λειτουργίες Εισόδου /Εξόδου και λιγότερο υπολογισμούς.

27 Πολυπρογραμματισμός και Χρονομερισμός Στα συστήματα χρονομερισμού το σύστημα πρέπει να απαντήσει σε 'πραγματικό' χρόνο στην εντολή του χρήστη. Η διαλογική επεξεργασία οδηγεί στην ανάπτυξη διαλογικών φλοιών (γραμμή εντολών, command line) που δίνουν στο χρήστη αμεσότερη (σε 'πραγματικό' χρόνο) πρόσβαση σε συστήματα αρχείων, μονάδες Ε/Ε, εκτέλεση προγραμμάτων κλπ. Χρήσιμοι όροι: single/multi-programmig/-tasking, single/multi-user, time-sharing, batch/interactive

28 Λ.Σ. αναφοράς: Unix (1) Multics (αρχές '70): το πρώτο λ.σ. που έθεσε τα περισσότερα χαρακτηριστικά των σύγχρονων λ.σ. Μπροστά από την εποχή του, πολύ καλά σχεδιασμένο αλλά 'βαρύ'. Unix και C (μέσα του '70): ελαφρύτερο και αποδοτικότερο υποσύνολο του Mulltics για mini-υπολογιστές PDP. To πρώτο σχετικά portable (φορητό) και open (ανοικτό) λ.σ. Φορητό: Υλοποίηση σε γλώσσα C (γράφτηκε μαζί με το Unix). Διαχώρισμός system-dependent (γλώσσα μηχανής) και system-independent (C) τμήματος. Ανοικτό: Οι κλήσεις συστήματος οργανώνονται σε βιβλιοθήκες, προσπελάσιμες μέσω C και εντολών φλοιού (shell commands). Δυνατότητα δημιουργίας επιπλέον λειτουργιών / εντολών. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

29 Λ.Σ. αναφοράς: Unix (2) Unix BSD: Berkeley Software Distribution, ανοικτό. Unix System V: ATT, κλειστό. Πολλά παρακλάδια και ανταγωνιστές, διαφορετικό λειτουργικό για κάθε οικογένεια υπολογιστών. Ο ανταγωνισμός οδήγησε σε πολλές ανομοιογένειες (Digital Unix, AIX, Irix, HP-UX, Solaris,...) Τελική λύση: POSIX standard, ανοικτό πρότυπο. Προτυποποίηση υπηρεσιών λ.σ. με τη μορφή προτυποιημένου API. Βιβλιοιθήκες από system calls (κλήσεων συστήματος), δηλ. αιτήσεων για λήψη υπηρεσίας από το λ.σ. Καθορίζεται η ονομασία, οι παράμετροι εισόδου, οι τιμές επιστροφής (syntax) και οι όλες οι αλλαγές που επέρχονται στο σύστημα (semantics). Διαχωρισμός Πολιτικής (τι κάνει το λ.σ.) από Υλοποίηση (πώς το κάνει). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

30 Προσωπικοί υπολογιστές: MS-DOS (1) CP/M, DR-DOS, MS-DOS (αρχές '80): λ.σ. βασισμένα στο Unix αλλά πολύ μικρά ώστε να χωρούν σε μια εύκαμπτη δισκέτα (λιγότερο από 500 Κbytes, λίγες χιλιάδες γραμμές): single-user, single-programming, ελάχιστη προστασία και διαχείριση μνήμης..περιορισμένη υποστήριξη κατωτέρων επιπέδων λόγω απλών μικρο-επεξεργαστών. Εξελιγμένοι RAM-resident monitors. IBM compatible PC's (μέσα '80): H ΙΒΜ ανακοινώνει τα υιοθετεί τα ανοικτής αρχιτεκτονικής PC's της με μικρο-επεξεργαστές Intel 80X86 και λ.σ. Microsoft PC-DOS (oυσιαστικά MS-DOS). Όλo σχεδόν το υλικό, το λ.σ. και η γενικότερη σχεδίαση είναι ευρέως διαθέσιμα. Επίσης δημοσιεύει το ΑPI υλικού και λ.σ., δηλαδή όποιος θέλει μπορεί να σχεδιάσει συμβατό υλικό και λογισμικό. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

31 Προσωπικοί υπολογιστές: MS-DOS (2) Ταχύτατη ανάπτυξη κλώνων (IBM συμβατών), μητρικών πλακετών και καρτών επέκτασης (υλικό) μαζί με εφαρμογές (λογισμικό) των PC's. 'Εμφαση στη διαλογικότητα και φιλικότητα προς το τελικό χρήστη σε όλα τα επίπεδα. Για πρώτη φορά ο υπολογιστής δεν απευθύνεται στους ειδικούς αλλά στον Τελικό Χρήστη (End User). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

32 Windows και Επιφάνεια Εργασίας Xerox PARC Star (αρχές '70): ποντίκι, εικονίδια, menu, point-and-click, drug-and-drop, WYSIWYG bitmap editors κλπ.. (ευτυχώς δεν σκέφτηκαν να τα πατεντάρουν..) Χ-Window system (αρχές '80): το MIT αναπτύσσει το πρώτο πλήρες παραθυρικό GUI, με ενσωματωμένη κατανεμημένη λειτουργία. Ο Χ-client είναι η γραφική εφαρμογή που 'οδηγεί τον Χ-server που παράγει τα γραφικά. Apple Macintosh (μέσα '80):πρώτο παραθυρικό GUI (Graphical User Interface) σε PC. Ακολούθησαν πολλές άλλες ανάλογες εφαρμογές σε IBM συμβατά PC's. MS-Windows (αρχές '90): μετά από δικαστική διαμάχη με την Apple...αρχικά οχι καλά αλλά φθηνά και ανοικτότερα της Apple... Σταδιακά η Γραφική Διεπιφάνεια Χρήστη (Graphical User Interface) υποκαθιστά τη γραμμή εντολών για τον τελικό χρήστη, και ενιαιοποιείται (όλες οι εφαρμογές έχουν περίπου ίδιο βασικο GUI). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

33 Linux ή MS-Windows ή.. MacOs? Ισχυρά PC's (αρχές '90): πολύ ισχυρότερα από τους mini-υπολογιστές που δημιουργήθηκε το Unix. Διαδίκτυο, Web (μέσα '90): γενικευμένη επικράτηση ανοικτών προτύπων διαδικτύου TCP/IP, HTTP: απομακρυσμένη πρόσβαση, ασφάλεια, δια-λειτουργικότητα. Windows NT, 98.. (τέλη '90): Oυσιαστικά διαφορετικά από το MS-DOS και τα πρώιμα MS-Windows: multi-user, multi-tasking, δικτύωση. GNU/Linux/FreeBSD. Ελεύθερο Ανοικτό Λογισμικό (αρχές '00): ανοικτά λ.σ. και εφαρμογές για PC's: RedHat, Debian, FreeBSD... GUI's: Χ-Window και Gnome, KDE, Xfce. Ακόμη: Mozilla, Firefox, Apache, OpenOffice..αλλά και MacOs, ios, Android.. Σταδιακή Tanenbaum, σύγκλιση: τα MS-Windows ωριμάζουν, τοreserved. Linux γίνεται φιλικό. Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights

34 Mερίδια αγοράς (1) Προσωπικοί υπολογιστές (desktop, laptop market): MS-Windows 91% Mac 7% Linux 1,5% Κινητές συσκευές (smartphones, tablets) Android 25-55% ios 25-60% Symbian 1-20% Other 1-6% Διακομιστές διαδικτύου (internet servers) Unix/Linux 65% MS-Windows 35% Κεντρικοί υπολογιστές (mainframes, supercomputers) Unix/Linux 98% Other 2% Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

35 Mερίδια αγοράς (2)

36 Προοπτικές Αναγκαστική σύγκλιση λ.σ. λόγω διαλειτουργικότητας σε επίπεδο Διαδικτύου: Web-based GUI/OS, Εφαρμογές και Υπηρεσίες Ιστού. * Διαχείριση συστημάτων πολλών επεξεργαστών (multicores) ακόμη και PC's, tablets και smart phones * Κατανεμημένα Συστήματα: το διαδίκτυο (TCP/IP), ο ιστός (ΗTTP) και η Java απαραίτητο διαλογισμικό (Middleware) * Κινητοί και Αφανείς υπολογισμοί, Ενσωματωμένα συστήματα: smart phones, tablets, συστήματα ενσωματωμένα σε συσκευές (πχ Android, ios, Firefox OS, Ubuntu, βασισμένα στο Unix) * Δικτυοκεντρικά (Net-centric) συστήματα: ο υπολογιστής μέσω διαδικτύου και ιστού αντλεί λογισμικό και υπηρεσίες από το δίκτυο (πχ εφαρμογές Google, eyeos) * Virtualization, Cloud (πχ Amazon EC, GoogleApp Engine, Azure ~okeanos) Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

37 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή Ιστορικά στοιχεία Τύποι και υπηρεσίες Βασικές διεπιφάνειες Αρχιτεκτονική Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

38 Τύποι Λ.Σ. (1) ΛΣ κεντρικών υπολογιστών (mainframes): εκτέλεση ειδικών εφαρμογών με μεγάλες απαιτήσεις σε υπολογισμούς, μέγεθος δεδομένων, χώρο δίσκων κλπ. ΛΣ διακομιστών: διεκπεραίωση μεγάλου αριθμού ταυτόχρονων αιτημάτων, με έμφαση στην επικοινωνία δίσκου, κύριας μνήμης και διεπαφής δικτύου. Παράλληλα και Κατανεμημένα ΛΣ συζητούνται παρακάτω. ΛΣ προσωπικών υπολογιστών: εκτέλεση αρκετών διαφορετικών εφαρμογών, κυρίως διαλογικών και με γραφική διεπιφάνεια, με έμφαση στην γρήγορη απόκριση. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

39 Τύποι Λ.Σ. (2) ΛΣ συστημάτων πραγματικού χρόνου: Σαφώς προσδιορισμένοι και σταθεροί χρονικοί περιορισμοί. Αυστηρά συστήματα πραγματικού χρόνου: δεν επιτρέπεται η παραμικρή απόκλιση από το πλάνο εκτέλεσης. Περιορισμένη ή απούσα δευτερεύουσα μνήμη, τα δεδομένα τηρούνται σε ROM. Προσδιοριστική και χρονικά περιορισμένη Ε/Ε. Χαλαρά συστήματα πραγματικού χρόνου : επιτρέπονται μικρές καθυστερήσεις στην απόκριση του συστήματος. ΛΣ πολυμέσων, παιγνιδιών: υφίστανται σημαντικοί αλλά όχι κρίσιμοι χρονικοί περιορισμοί (χαλαρά συστήματα πραγματικού χρόνου). Τα πολυμεσικά δεδομένα πρέπει να μεταφέρονται από τη δευτερεύουσα μνήμη ή το δίκτυο στη κύρια μνήμη και κατόπιν να καταναλώνονται από την εφαρμογή σε συγκεκριμένα χρονικά πλαίσια. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

40 Τύποι Λ.Σ. (3) ΛΣ κινητών, tablets: Περιορισμοί στην κατανάλωση ενέργειας (μπαταρίες). Περιορισμένη μνήμη (footprint λ.σ. και εφαρμογών) Σχετικά αργοί επεξεργαστές. Mικρές οθόνες. Έμφαση στην επικοινωνία. Σχετικά περιορισμένος (αλλά αυξανόμενος) αριθμός και λειτουργικότητα εφαρμογών. Ειδικές εκδόσεις 'μεγάλων' λειτουργικών. ΛΣ ενσωματωμένων συστημάτων, μικροελεγκτών: Περιορισμοί στην κατανάλωση ενέργειας. Περιορισμένη μνήμη. Μικρο-επεξεργαστές. Περιορισμοί πραγματικού χρόνου. Εκτέλεση συγκεκριμένων εφαρμογών με συγκεκριμένης μορφής Ε/Ε. Πολύ περιορισμένες δυνατότητες (τύπου monitor). Ακόμη: ΛΣ συστημάτων αισθητήρων, ΛΣ αυτόνομων συστημάτων κλπ Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

41 Υπηρεσίες Οι λειτουργίες που ακολουθούν αποτελούν τα βασικά συστατικά (components) ή υπηρεσίες (services) των λ.σ. (με διαφορετική βαρύτητα, ανάλογα με το τύπο τους) και τα κεντρικά θέματα των ενοτήτων που θα ακολουθήσουν. Είναι οι βασικές λογικές αφαιρέσεις που αποκρύπτουν τα κατώτερα επίπεδα από τις εφαρμογές και το χρήστη. Διαχείριση Διεργασιών Διαχείριση Μνήμης Διαχείριση Αρχείων Διαχείριση Ε/Ε και Δευτερεύουσας Μνήμης Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

43 Διαχείριση μνήμης (1) Το λ.σ. είναι υπεύθυνο για : Να δεσμεύει και αποδεσμεύει το χώρο της κύριας μνήμης για κάθε διεργασία. Να κρατά λογαριασμό για τα τμήματα της κύριας μνήμης που είναι σε χρήση και από ποιά διεργασία και ποιά είναι ελεύθερα. Nα διασφαλίζει την προστασία των τμημάτων κύριας μνήμης που χρησιμοποιεί κάθε διεργασία και το λ.σ. Χώρος διευθύνσεων (address space) μιας διεργασίας: ο αριθμός θέσεων μνήμης που (δυνητικά) μπορεί να προσπελάσει μια διεργασία. Ο προστατευμένος, επανατοποθετήσιμος, λογικά χωρισμένος σε τμήματα, πρακτικά 'ανεξάντλητος' χώρος διευθύνσεων μιας διεργασίας αποτελεί μια λογική αφαίρεση της κύριας μνήμης, την οποία παρέχει το λ.σ. προς τα ανώτερα επίπεδα.

44 Διαχείριση μνήμης (2) Λογικά Τμήματα (Segments): O χώρος διευθύνσεων κάθε διεργασίας χωρίζεται σε λογικά τμήματα (κώδικας, δεδομένα, στοίβα κλήσεων, σωρός, κοινές βιβλιοθήκες...). Επανατοποθέτηση (Relocation): Ο χώρος διευθύνσεων της διεργασίας έχει 'λογικές' διευθύνσεις που παραμένουν ίδιες όταν αλλάζουν οι 'φυσικές' διευθύνσεις λόγω δρομολόγησης. Εικονική / Ιδεατή Μνήμη (Virtual Memory): O χώρος διευθύνσεων της διεργασίας έχει 'λογικές' διευθύνσεις που μπορεί να ξεπερνούν σε μέγεθος τις 'φυσικές' διευθύνσεις. To λ.σ. επιτρέπει στη διεργασίες να εκτελούνται σε ένα ενιαίο, πρακτικά ανεξάντλητο χώρο λογικών διευθύνσεων.

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

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

47 Διαχείριση Ε/Ε Το λ.σ. είναι υπεύθυνο για: Απεικόνιση συσκευών Ε/Ε στη μνήμη (Ενταμιευτές Ε/Ε, I/O buffers) Επικοινωνία δεδομένων από/πρός τη συσκευή Ε/Ε (Οδηγοί συσκευών Ε/Ε, Ι/Ο device drivers) Παροχή ενός συνόλου γενικευμένων διεπιφανειών ή οδηγών Ε/Ε (λογική αφαίρεση συσκευών E/E, πχ συσκευές χαρακτήρων και συσκευές block) Παροχή ή τη δυνατότητα ενσωμάτωσης / ενημέρωσης νέων / εξειδικευμένων οδηγών/συσκευών Ε/Ε

48 Μερικές ακόμη υπηρεσίες Περιβάλλον εκτέλεσης (Run Time Environment). Φόρτωση (Loading), Δυναμική Σύνδεση (Dynamic Linking) και εκτέλεση προγραμμάτων χρηστών και συστήματος. Έλεγχοι σφαλμάτων και Ασφάλεια / Προστασία σε όλες τις λειτουργίες. Καταγραφές (Logging / Αccounting) διαφόρων λειτουργιών. Δικτύωση Βασικές υπηρεσίες για σύνδεση με άλλα υπολογιστικά συστήματα μέσω δικτύου (πρωτόκολλο TCP/IP). Διεπιφάνεια Χρήστη Γραμμή Εντολών, Διερμηνεία και Φλοιός Γραφική Διεπιφάνεια Διαχείριση Ισχύος (κατανάλωσης ηλ. ρεύματος)

49 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή Ιστορικά στοιχεία Τύποι και υπηρεσίες Βασικές διεπιφάνειες Αρχιτεκτονική Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

50 Διεπιφάνειες Λ.Σ. Κατώτερα επίπεδα: Γλώσσα Μηχανής και εξειδικευμένο υλικό / ρουτίνες για: Διακοπές και την Εξυπηρέτηση τους, Διαχείριση Μνήμης, Διαχείριση Επεξεργαστή, Είσοδο / Έξοδο και Δευτερεύουσα Μνήμη (Ελεγκτές και Οδηγοί Συσκευών). Ανώτερα επίπεδα: Κλήσεις Συστήματος (OS Application Program Interface): βιβλιοθήκες υψηλού και χαμηλού επιπέδου, Διεπιφάνεια Χρήστη (Φλοιός -Shell, Γραφική Διεπιφάνεια Χρήστη -GUI).

51 ΛΣ και Dual Mode (1) User space kerner space Το λ. σ. εκτελείται σε kernel (supervisor/ priviledged ) mode ενώ το υπόλοιπο λογισμικό συστήματος και εφαρμογών εκτελείται σε user (protected) mode. Μόνο το λ.σ. έχει άμεση επικοινωνία με τα κατώτερα επίπεδα (τους πόρους συστήματος), δηλαδή μόνο αυτό έχει πρόσβαση στις προνομιούχες εντολές (privileged instructions) γλώσσας μηχανής. Το ανώτερο λογισμικό για την εξυπηρέτησή του πρέπει να ζητήσει τη συνδρομή του λ.σ. με κλήση συστήματος (system call). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

52 ΛΣ και Dual Mode (2) O Kαταχωρητή Κατάστασης (Status Register) ή Processor Status Word (PSW) δείχνει την τρέχουσα κατάσταση της CPU. Αποτελείται από διάφορα bits που λειτουργούν ως 'σημαίες' (flags) που δείχνουν τη κατάσταση διαφόρων τμημάτων της CPU και του υπολογιστή. Ο PSW περιέχει και bits τα οποία (α) δείχνουν οτι έχει προκληθεί διακοπή (interrupt). (β) δείχνουν αν η CPU βρίσκεται σε kernel / user mode. Όταν συμβεί μια διακοπή το υλικό μεταπίπτει σε kernel mode. Όταν η διακοπή τελικά εξυπηρετηθεί η CPU επανέρχεται σε user mode. Interrupt/fault Supervisor mode User mode set user mode

53 Ανάκληση-εκτέλεση με διακοπές Στο τέλος κάθε κύκλου ανάκλησης-εκτέλεσης η CPU ελέγχει τo PSW. Aν υπάρχει διακοπή, η CPU μεταπίπτει σε kernel mode και ξεκινά μια σειρά ενεργειών με τη βοήθεια υλικού και λογισμικού για την εξυπηρέτηση της διακοπής με την εκτέλεση της Ρουτίνας Εξυπηρέτησης Διακοπής (Interrupt Service Routine, ISR). (Πιο αναλυτική παρουσίαση της υλοποίησης των διακοπών στην ενότητα της Ε/Ε)

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

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

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

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

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

59 Κλήσεις συστήματος (1) Η διεπαφή μεταξύ του λ.σ. και των ανωτέρων επιπέδων ορίζεται μέσω ενός συνόλου εκτεταμένων εντολών (extended instructions) που παρέχει το λ.σ. Σε κάθε κλήση συστήματος αντιστοιχεί μια καθορισμένη γνωστή διαδικασία την οποία μπορούν να καλέσουν τα προγράμματα του χρήστη (καλά ορισμένο API, πχ POSIX ή Windows API). Αυτές οι εκτεταμένες εντολές είναι περισσότερο γνωστές ως κλήσεις συστήματος (system calls). Γράφονται γενικά σε γλώσσα C ή assembly. Περιλαμβάνονται σε βιβλιοθήκες που παρέχουν διεπαφή με γλώσσες υψηλού επιπέδου, συνήθως C. Ο αριθμός και ο τύπος των κλήσεων συστήματος διαφέρει στα διάφορα λ.σ.

60 API κλήση συστήματος ΛΣ

61 Κλήσεις συστήματος (2) Τα προγράμματα του χρήστη επικοινωνούν με το λ.σ. και αιτούνται εξυπηρέτηση εκτελώντας κλήσεις συστήματος. Οι παραμέτροι κλήσης συστήματος τοποθετούνται σε μια προεπιλεγμένη περιοχή στο χώρο εργασίας του χρήστη (user space) και στη συνέχεια καλείται η κατάλληλη συνάρτηση βιβλιοθήκης (γνωστή από το API του λ.σ.) Η συνάρτηση βιβλιοθήκης εξετάζει αν οι παράμετροι είναι αποδεκτές, και αν είναι, προκαλεί διακοπή λογισμικού (κλήση διαδικασίας σε kernel mode) για να ξεκινήσει το λ.σ. Μόλις το λ.σ. αναλάβει τον έλεγχο, μετά από τη διακοπή λογισμικού, εξυπηρετεί τη διακοπή σε κατάσταση kernel mode, σε διαφορετικό χώρο εργασίας (kernel space), έχοντας πρόσβαση στις παrαμέτρους της κλήσης (που αρχικά βρίσκονται στο user space).

62 Κλήσεις συστήματος (3) Κατά την εκτέλεση της διακοπής: (α) Το πρόγραμμα του χρήστη είναι πλέον σε αναμονή εξυπηρέτησης διακοπής, επομένως δεν εκτελείται (δεν καταλαμβάνει πλέον τη CPU). (β) Το λ.σ. Είναι υπεύθυνο να αποθκεύσει τη πλήρη κατάσταση της CPU κατά την διακοπή του προγράμματος (context) για να μπορέσει να επανεφέρει αργότερα το πρόγραμμα προς εκτέλεση από εκεί που διακόπηκε (context switch, θεματική εναλλαγή). (γ) Η εργασία που εκτελεί το λ.σ. μπορεί να απαιτεί τη κλήση και άλλων ρουτινών συστήματος, οι οποίες θα εκτελεστούν στο kernel space, δηλαδή μπορεί να δημιουργηθεί μια στοίβα κλήσεων συστήματος τις οποίες θα διαχειριστεί το λ.σ. μαζί με όλες τις υπόλοιπες υπηρεσίες και εφαρμογές που περιμένουν να εκτελεστούν. (δ) Συνήθως το λ.σ. διατηρεί διαφορετικές στοίβες κλήσεων ρουτινών, μια για τις κλήσεις σε user space (ρουτίνες του χρήστη) και μια για κλήσεις σε kernel space (ρουτίνες του λ.σ.)

63 Κλήσεις συστήματος (4) Όταν η εξυπηρέτηση της διακοπής τελειώσει, το λ.σ. τοποθετεί έναν κωδικό κατάστασης (status code) σε έναν καταχωρητή, ειδοποιώντας για την επιτυχή ή ανεπιτυχή εκτέλεση και εκτελεί μια εντολή επιστροφής από διακοπή (return from interrupt), για να επιστρέψει τον έλεγχο στη συνάρτηση βιβλιοθήκης που προκάλεσε τη κλήση συστήματος. Τα αποτελέσματα της εκτέλεσης τοποθετούνται στο user space ώστε να είναι προσβάσιμα από τη συνάρτηση βιβλιοθήκης. Στη συνέχεια η συνάρτηση βιβλιοθήκης επιστρέφει στο πρόγραμμα που την κάλεσε, επιστρέφοντας τον κωδικό κατάστασης σαν τιμή επιστροφής (return value) μιας συνάρτησης. Το πρόγραμμα του χρήστη, μέσω των ενημερωμένων παραμέτρων κλήσης, λαμβάνει τα αποτελέσματα της κλήσης συστήματος. Τώρα το πρόγραμμα είναι έτοιμο να συνεχίσει την εκτέλεσή του, όταν το λ.σ. το ξαναεπιλέξει προς εκτέλεση (του παραχωρήσει τη CPU).

64 Κλήσεις συστήματος (5) Τα 11 βήματα για την εκτέλεση της κλήσης συστήματος count = read(fd, buffer, nbytes). Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

65 Οι κλήσεις συστήματος ως αφαίρεση Οι κλήσεις συστήματος επιτρέπουν την διαχείριση διαφορετικών κατωτέρων επιπέδων (διαφορετικού υλικού) χωρίς την αλλαγή της διεπαφής των ανωτέρων επιπέδων. Τα ανώτερα επίπεδα 'βλέπουν' ουσιαστικά το υλικό μέσω των κλήσεων συστήματος (του ΑPI) του λ.σ. χωρίς να ενδιαφέρονται για το υλικό καθ' αυτό. Η υλοποίηση ενός λ.σ. είναι για τα ανώτερα επίπεδα υλοποίηση κλήσεων συστήματος. Μια εφαρμογή λέμε οτι είναι γραμμένη ή 'τρέχει' σε ένα λ.σ. όταν περιλαμβάνει τις κατάλληλες κλήσεις συστήματος. Μια εφαρμογή μπορεί να είναι μεταφέρσιμη ή cross-platform αν (α) γραφεί για να εκτελεστεί σε μια εικονική μηχανή (πχ JVM) ή (β) χρησιμοποιεί 'καθολικές' κλήσεις μόνο (πχ POSIX).

66 Κλήσεις Συστήματος για Διαχείριση Διεργασιών Κλήσεις συστήματος POSIX για διαχείριση διεργασιών. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

67 Κλήσεις Συστήματος για Διαχείριση Αρχείων (1) Κλήσεις συστήματος POSIX για διαχείριση αρχείων. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

68 Κλήσεις Συστήματος για Διαχείριση Αρχείων (2) Κλήσεις συστήματος POSIX για διαχείριση αρχείων. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

69 Μερικές άλλες Κλήσεις Συστήματος Μερικές ακόμη κλήσεις συστήματος POSIX. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

70 Win32 API και POSIX Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

71 Πού είναι οι κλήσεις συστήματος; Χρήση γλώσσας C 'Μικρή', μεταφερτή (portable) γλώσσα, ανεξάρτητος (system independent) μεταγλωττιστής, πολλές Βιβλιοθήκες (system dependent) Βιβλιοθήκες C: Header (include) files και Object (lib) files Πρότυπες βιβλιοθήκες: ISO Standard και ISO POSIX ή Win32, Win64 API (για Windows) Μεταγλώττιση πολλών αρχείων (Separate compilation) Make (Build): ενημέρωση μόνο των αρχείων που έχουν τροποποιηθεί από τη προηγούμενη μεταγλώττιση Εξαρτήσεις (Dependencies): ποιά αρχεία εξαρτώνται από ποιά κατά τη μεταγλώττιση. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

72 Διαδικασία μεταγλώττισης στη C Ηeader files βιβλιοθηκών συστήματος Οι κλήσεις βιβλιοθηκών βρίσκονται στο κώδικα των προργραμμάτων Object code βιβλιοθηκών συστήματος Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

73 Τυπική χρήση C σε Linux /usr/bin/gcc: εκτελέσιμο GNU C (gcc) /usr/include: header files /usr/lib: library object files #include <stdio.h> #include <stdlib.h> /* argc: argument counter */ /* argv: argument vector, argv[0], argv[1],..., argv[c 1] */ /* envp: evironment variable pointer */ int main (int argc, char **argv, char **envp) {... Σπάνια άμεση, συνήθως έμμεση χρήση } $ gcc o prog prog.c $./prog Command line arguments argc = 3 argv[0] =./prog argv[1] = 100 argv[2] = 5 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

74 Πρότυπες Βιβλιοθήκες 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. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

75 Παράδειγμα κλήσεων συστήματος #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"); }

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

77 Φλοιός ή Κέλυφος (1) Οι κλήσεις συστήματος χρησιμοποιούνται όχι μόνο από τις διάφορές εφαρμογές αλλά και από τον απλό χρήστη στη καθημερινή του επαφή με το. λ.σ. Η επικοινωνία χρήστη - λ.σ. επιτυγχάνεται μέσω δύο ειδικών προγραμμάτων συστήματος: Ο φλοιός ή κέλυφος (shell) ή διερμηνευτής εντολών (commnad interpreter) είναι ένα πρόγραμμα που επεξεργάζεται τη γραμμή εντολών (command line). Οι εντολές έχουν ευθεία σχέση με κλήσεις συστήματος. Στα σύγχρονα desktop λ.σ. η γραφική διεπιφάνεια χρήστη (GUI) αποκρύπτει συνήθως το φλοιό αντικαθιστώντας τη πληκτρολόγηση εντολών με point-and-click σε εικονίδια και menus. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

79 Φλοιός ή Κέλυφος (3) Κάθε γραμμή εντολής (command line) περιέχει ονόματα εντολών, επιλογές (options), ορίσματα (arguments), τελεστές και άλλες δεσμευμένες λέξεις του.φλoιού. Περιβάλλον (environment) του φλοιού λέγεται μια λίστα από μεταβλητές που ορίζουν τις συνθήκες εκτέλεσης του φλοιού, πχ κωδικός χρήστη, κατάλογος εργασίας, ονόματα διαδρομής εντολών, τύπος τερματικού κλπ. Κάθε γραμμή εντολής δημιουργεί μια ή περισσότερες διεργασίες που επικοινωνούν με αρχεία, συσκευές και μεταξύ τους (μέσω του λ.σ.) για την εκτέλεση των εντολών. Η εκτέλεση μιας εντολής ή ενός σεναρίου μπορεί να γίνει στο προσκήνιο (foreground) ή στο παρασκήνιο (background) ή να χρονοπρογραμματεί (για μη-διαλογικές εντολές). $ gedit & $ Ο φλοιός δημιουργεί τη διεργασία gedit αλλά δεν τη περιμένει να τερματιστεί. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

80 Φλοιός ή Κέλυφος (4) Μια ή περισσότερες γραμμές εντολών μπορούν να ομαδοποιηθούν σε ένα αρχείο κειμένου που ονομάζεται αρχείο δέσμης (batch file) ή σενάριο φλοιού (shell 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 Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved done

81 #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"); } }

82 Γραφική Διεπιφάνεια Χρήστη - GUI (1)... Σκελετός προγράμματος εφαρμογής MS-Windows. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

83 ... Γραφική Διεπιφάνεια Χρήστη - GUI (1) Σκελετός προγράμματος εφαρμογής MS-Windows. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

84 X Window (1) Αρχιτεκτονική λογισμικού X Window. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

85 X Window (2) Τύποι μηνυμάτων μεταξύ πελάτη και διακομιστή: 1. Εντολές σχεδίασης από το πελάτη στο διακομιστή. 2. Ερωτήσεις του πελάτη και απαντήσεις του διακομιστή, πχ σχετικά με δυνατότητες απεικόνισης του διακομιστή. 3. Ειδοποήσεις του διακομιστή προς το πελάτη σχετικά με γεγονότα (events) του πληκτρολογίου, ποντικού κλπ. 4. Μηνύματα σφαλμάτων από το διακομιστή προς το πελάτη και αντίστροφα. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

86 X Window (3) Τυπικές ακολουθίες διαφυγής ANSI (ANSI escape sequences) που αποστέλονται από το πελάτη στον διακομιστή. ESC = ASCII 0x1B n, m, s = προαιρετικοί αριθμοί Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

87 X Window (4)... Σκελετός εφαρμογής X Window. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

88 ... X Window (5) Σκελετός εφαρμογής X Window. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

89 Εναλλακτικές λύσεις Βιβλιοθήκες για πρόσθεση γραφικής διεπιφάνειας σε σενάρια φλοιού Πχ zenity --calendar zenity file-selection Cross-platform περιβάλλοντα ανάπτυξης γραφικών διεπιφανιών για πολλά περιβάλλοντα (Windows, Linux, Mobile ) Πχ Java, Qt (σε C++), OpenCL (C, C++, Java κλπ) Cross-platfotm διερμηνευόμενες γλώσσες για την ανάπτυξη σεναρίων τύπου φλοιού πχ Python scripts Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

90 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Επισκόπηση Λ.Σ. Εισαγωγή Ιστορικά στοιχεία Τύποι και υπηρεσίες Βασικές διεπιφάνειες Αρχιτεκτονική Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

91 Αρχές σχεδιασμού Λ.Σ. Απόδοση: να πετυχαίνει τους στόχους κατασκευής του με τη μικρότερη δυνατή επιβάρυνση (overhead) Σταθερότητα: να είναι εύρωστο (robust) σε ακραία σενάρια φόρτου, κακής χρήσης. Κλιμάκωση: να διατηρεί σχετικά απόδοση και σταθερότητα σε μεγάλο εύρος παραμέτρων/ρυθμίσεων υλικού και λογισμικού. Επεκτασιμότητα: να είναι εύκολη η προσθήκη/τροποποίηση λειτουργιών. Φορητότητα: να μεταφέρεται εύκολα σε διαφορετικού τύπου υλικό. Ασφάλεια: να παρέχει ασφάλεια σε επίπεδο χρήστη, αρχείων, διεργασίας, διαδικτύου κλπ Ευχρηστία: να παρέχει εύχρηστς βιβλιθήκες (ΑPI), εντολές φλοιού και γραφική διεπιφάνεια χρήστη.

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

93 Αρχιτεκτονική Λ.Σ. Μονολιθικά συστήματα Πολυεπίπεδα συστήματα Συστήματα Μικροπυρήνα Συστήματα Πελάτη Διακομιστή Κατανεμημένα συστήματα Παράλληλα συστήματα Εικονικές μηχανές

94 Μονολιθικά Συστήματα (1) Ένα κύριο πρόγραμμα (ο πυρήνας, kernel ή supervisor) καλεί την ρουτίνα εξυπηρέτησης που απαιτείται. Οι κλήσεις συστήματος εκτελούνται μέσω ενός συνόλου ρουτινών εξυπηρέτησης. Ένα σύνολο βοηθητικών ρουτινών υποστηρίζουν τις ρουτίνες εξυπηρέτησης. Πρόκειται για μια συλλογή από διαδικασίες, κάθε μια από τις οποίες μπορεί να καλέσει οποιαδήποτε άλλη, όταν τη χρειαστεί. Κάθε διαδικασία είναι ορατή σε οποιαδήποτε άλλη. Η επικοινωνία μεταξύ των διαδικασιών γίνεται με πέρασμα παραμέτρων (ορισμάτων). Παραδείγματα μονολιθικών λ.σ : OS/360, VMS, Linux Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

96 Μονολιθικά Συστήματα (3) Δομή μονολιθικού λ.σ.

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

98 Αρχιτεκτονική πυρήνα Unix/Linux

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

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

101 Λογικά Επίπεδα - Αρθρώματα (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).

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

103 Συστήματα μικροπυρήνα (2) Kernel mode Δομή του λ.σ. MINIX 3. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

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

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

107 Κατανεμηνένα Συστήματα και Μοντέλο Πελάτη-Διακομιστή Το μοντέλο πελάτη-διακομιστή σε κατανεμημένο σύστημα. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

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

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

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

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

113 Κατανεμημένα Συστήματα (4) Ετερογενές κατανεμημένο σύστημα

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

115 Εικονικές Μηχανές Virtualization (1) Δομή του VM/370 με CMS. Η εικονική μηχανή δεν είναι νέα ιδέα.. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

116 Εικονικές Μηχανές Virtualization (2) (a) Υπερεπόπτης τύπου 1 (πχ Χen, Κvm) (b) Υπερεπόπτης τύπου 2 (πχ Virtualbox, Qemu) Υπερεπόπτης = Επόπτης για επόπτες (όχι εφαρμογές). 'Βλέπει' τους πυρήνες ως εφαρμογές. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved

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

118 Εικονικές μηχανές και εφαρμογές System Virtual Machines: επιτρέπουν εικονικές αρχιτεκτονικές ή/και εικονικά λ.σ. πάνω σε άλλα λ.σ. Ορισμένες μπορεί να λειτουργούν χωρίς υποκείμενο λ.σ. (υπερεπόπτης τύπου 1) ή με υποκείμενο λ.σ. (υπερεπόπτης τύπου 2) - VMWare, Quemu, VirtualBox, KVM, Xen Τρέχουσα εφαρμογή: Cloud Systems Application Virtual Machines: επιτρέπουν την εκτέλεση οικογενειών εφαρμογών ανεξάρτητα από το λ.σ. ή την αρχιτεκτονική - Cmd: εξομοίωση MS- DOS σε Windows - Wine : εξομοίωση εφαρμογών Windows σε Linux - JVM : μεταγλώττιση / διερμηνεία προγραμμάτων Java σε πλατφόρμα bytecode και εκτέλεση σε JRE

119 Java Virtual Machine

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 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 Πολυπρογραμματισμός

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

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

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

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

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Διαχείρισης Συστημάτων Ι Προγραμματισμός Διαχείρισης Συστημάτων Ι Μάθημα 7ο X Window System Μιχαηλίδης Παναγιώτης Tι είναι παραθυρικό σύστημα; Ένα παραθυρικό σύστημα (window system) είναι μια γραφική διεπαφή χρήστη (Graphical

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

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

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

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

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

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

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

Linux Terminal Server Project

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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) Λογισμικό

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

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα

Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

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

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

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

ΕΠΛ 371 Προγραµµατισµός Συστηµάτων. Διάλεξη 1. Εισαγωγή. Δηµήτρης Ζεϊναλιπούρ 1-1

ΕΠΛ 371 Προγραµµατισµός Συστηµάτων. Διάλεξη 1. Εισαγωγή. Δηµήτρης Ζεϊναλιπούρ 1-1 ΕΠΛ371 - Προγραµµατισµός Συστηµάτων Διάλεξη 1 Εισαγωγή Δηµήτρης Ζεϊναλιπούρ 1-1 Επαναληπτικά Λογισµικό Εφαρµογών (Application Software): Περιλαµβάνει προγράµµατα που επιτρέπουν την εκτέλεση συγκεκριµένων

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο Στο φετινό εργαστήριο του μαθήματος, έχετε τη δυνατότητα να δουλέψετε σε 2 περιβάλλοντα. Ένα σε περιβάλλον UNIX μέσω απομακρυσμένης σύνδεσης σε

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SIMATIC MANAGER SIMATIC MANAGER

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

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

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

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

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

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

Προγραμματισμός Ι. Πολλαπλά Αρχεία. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Πολλαπλά Αρχεία Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Πολλαπλά Αρχεία Όταν γράφουμε μεγάλα προγράμματα θέλουμε να έχουμε ανεξάρτητα κομμάτια κώδικα

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

Οδηγίες για την εγκατάσταση του πακέτου Cygwin

Οδηγίες για την εγκατάσταση του πακέτου Cygwin Οδηγίες για την εγκατάσταση του πακέτου Cygwin Ακολουθήστε τις οδηγίες που περιγράφονται σε αυτό το file μόνο αν έχετε κάποιο laptop ή desktop PC που τρέχουν κάποιο version των Microsoft Windows. 1) Copy

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

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux 1 Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux Το Linux είναι ένα λειτουργικό σύστημα όμοιο με το Unix που αναπτύχθηκε από έναν πυρήνα (kernel, Εικ.1) τον οποίο δημιούργησε το 1991 ο Linus Torvalds όντας

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

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

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

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

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

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

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

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

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

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE)

ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΜΑΘΗΜΑ 3 ΛΟΓΙΣΜΙΚΟ (SOFTWARE) ΣΤΟΧΟΙ: 1. Λογισμικό 2. Λογισμικό Λειτουργικού Συστήματος 3. Προσαρμοστικό Γραφικών Χρήστη 4. Λογισμικών Εφαρμογών 5. Διαφορά Μεταξύ Λογισμικού Λειτουργικού Συστήματος Και

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ενδεικτική περιγραφή μαθήματος

Ενδεικτική περιγραφή μαθήματος ΜΑΘΗΜΑ: ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Προγραμματισμός Η/Υ Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) Ενδεικτική περιγραφή μαθήματος 1. Εισαγωγή: Εισαγωγή στον προγραμματισμό, γλώσσες προγραμματισμού, μεταγλωτιστές.

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΕΣ ΥΛΙΚΟΥ ΗΥ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΑΣΚΗΣΗ 1 (ΘΕΩΡΙΑ) - ΕΙΣΑΓΩΓΗ Επεξεργαστής (CPU) : (ταχύτητα, εταιρία, μοντέλο, πυρήνες) Windows XP : (ταχύτητα, εταιρία, μοντέλο) : Πηγαίνουμε Έναρξη / Πίνακας

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

Ενσωµατωµένα Υπολογιστικά Συστήµατα (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

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

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

Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Εισαγωγή στην Πληροφορική Προγραμματισμός-Λειτουργικά Ηλ. Γκρίνιας Τ. Ε. Ι. Σερρών Τμήμα Πληροφορικής και Επικοινωνιών Αλγόριθμοι Ορισμός: ο αλγόριθμος είναι μια σειρά από πεπερασμένα βήματα που καθορίζουν

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

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

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

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

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο 2006-07

Πληροφορίες. Εισαγωγή στην Πληροφορική. Κατηγορίες υλισµικού. Περίληψη µαθήµατος (συνέχεια) Επεξεργαστής Μνήµη. Χειµερινό Εξάµηνο 2006-07 Πληροφορίες Εισαγωγή στην Πληροφορική Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Μόνο για την επόµενη Τετάρτη 25/10, το µάθηµα (12-13) δεν θα πραγµατοποιηθεί. Τα εργαστήρια θα ξεκινήσουν

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

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP Το FTP (File Transfer Protocol) είναι το εξειδικευμένο πρωτόκολλο μεταφοράς αρχείων στα σύγχρονα δίκτυα δεδομένων όπως το Διαδίκτυο. Δίνει τη δυνατότητα μεταφοράς αρχείων από τον υπολογιστή

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

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας, Πανεπιστήμιο Αιγαίου http://www.ct.aegean.gr/people/kalloniatis

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

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 2 ΛΟΓΙΣΜΙΚΟ

ΚΕΦΑΛΑΙΟ 2 ΛΟΓΙΣΜΙΚΟ ΚΕΦΑΛΑΙΟ 2 ΛΟΓΙΣΜΙΚΟ ΤΙ ΕΊΝΑΙ ΛΟΓΙΣΜΙΚΟ Για τη λειτουργία ενός υπολογιστικού συστήματος χρειάζεται εκτός από το υλικό (hardware) και το λογισμικό (software). Σε αυτό περιλαμβάνονται όλα τα Προγράμματα

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

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33

ΚΕΦΑΛΑΙΟ 2: Τύποι δεδομένων και εμφάνιση στοιχείων...33 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος του συγγραφέα... 13 Πρόλογος του καθηγητή Τιμολέοντα Σελλή... 15 ΚΕΦΑΛΑΙΟ 1: Εργαλεία γλωσσών προγραμματισμού...17 1.1 Γλώσσες προγραμματισμού τρίτης γεννεάς... 18 τι είναι η γλώσσα

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

Κεφάλαιο 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 (); Πρότυπο ( ήλωση) Συνάρτησης (

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι 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 Μάθημα: Θεωρία + προαιρετικό

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

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών ΕΠΛ362: Τεχνολογία Λογισμικού ΙΙ (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Software Engineering, 9/E, Ian Sommerville, 2011) Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών Οι διαφάνειες αυτές

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

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions) Αυγερινός Αραμπατζής avi@ee.duth.gr www.aviarampatzis.com Βάσεις Δεδομένων Stored Procedures 1 Stored Routines (1/2) Τμήματα κώδικα τα

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ Σκοπός της Άσκησης Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η ανάλυση των βασικών χαρακτηριστικών της Γλώσσας

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

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

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

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

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

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

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