Περιεχόμενα ΠΡΟΛΟΓΟΣ 25 1 ΕΙΣΑΓΩΓΗ 31

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

Download "Περιεχόμενα ΠΡΟΛΟΓΟΣ 25 1 ΕΙΣΑΓΩΓΗ 31"

Transcript

1

2

3 Περιεχόμενα ΠΡΟΛΟΓΟΣ 25 1 ΕΙΣΑΓΩΓΗ ΤΙ ΕΙΝΑΙ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ; Το λειτουργικό σύστημα ως επεκτεταμένη μηχανή Το λειτουργικό σύστημα ως διαχειριστής πόρων Η ΙΣΤΟΡΙΑ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Η πρώτη γενιά ( ): λυχνίες κενού Η δεύτερη γενιά ( ): τρανζίστορ και συστήματα δέσμης Η τρίτη γενιά ( ): ολοκληρωμένα κυκλώματα και πολυπρογραμματισμός Η τέταρτη γενιά (1980-σήμερα): προσωπικοί υπολογιστές ΓΕΝΙΚΑ ΓΙΑ ΤΟ ΥΛΙΚΟ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Επεξεργαστές Μνήμη Δίσκοι Ταινίες Συσκευές εισόδου/εξόδου Δίαυλοι 64

4 8 ΠΕΡΙΕΧΟΜΕΝΑ Εκκίνηση του υπολογιστή Ο ΖΩΟΛΟΓΙΚΟΣ ΚΗΠΟΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Λειτουργικά συστήματα μεγάλων υπολογιστών Λειτουργικά συστήματα διακομιστών Λειτουργικά συστήματα πολυεπεξεργαστών Λειτουργικά συστήματα προσωπικών υπολογιστών Λειτουργικά συστήματα υπολογιστών χειρός Ενσωματωμένα λειτουργικά συστήματα Λειτουργικά συστήματα κόμβων αισθητήρων Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα έξυπνων καρτών ΕΝΝΟΙΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Διεργασίες Χώροι διευθύνσεων Αρχεία Είσοδος/Έξοδος Προστασία Το κέλυφος Η οντογένεση ανακεφαλαιώνει τη φυλογένεση ΚΛΗΣΕΙΣ ΣΥΣΤΗΜΑΤΟΣ Κλήσεις συστήματος για τη διαχείριση διεργασιών Κλήσεις συστήματος για τη διαχείριση αρχείων Κλήσεις συστήματος για τη διαχείριση καταλόγων Διάφορες κλήσεις συστήματος Το Windows Win32 API Η ΔΟΜΗ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Μονολιθικά συστήματα Πολυεπίπεδα συστήματα Μικροπυρήνες Το μοντέλο πελάτη-διακομιστή Εικονικές μηχανές Οι εξωπυρήνες Ο ΚΟΣΜΟΣ ΤΗΣ C Η γλώσσα C Αρχεία-κεφαλίδες Μεγάλα έργα προγραμματισμού 112

5 ΠΕΡΙΕΧΟΜΕΝΑ Το μοντέλο χρόνου εκτέλεσης Η ΕΡΕΥΝΑ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Η ΔΙΑΡΘΡΩΣΗ ΤΟΥ ΥΠΟΛΟΙΠΟΥ ΒΙΒΛΙΟΥ ΜΕΤΡΙΚΕΣ ΜΟΝΑΔΕΣ ΠΕΡΙΛΗΨΗ ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ Το μοντέλο της διεργασίας Δημιουργία διεργασίας Τερματισμός διεργασίας Ιεραρχίες διεργασιών Καταστάσεις διεργασιών Υλοποίηση διεργασιών Μοντελοποίηση του πολυπρογραμματισμού ΝΗΜΑΤΑ Χρήση των νημάτων Το κλασικό μοντέλο των νημάτων Τα νήματα στο POSIX Η υλοποίηση των νημάτων στο χώρο του χρήστη Η υλοποίηση των νημάτων στον πυρήνα Υβριδικές υλοποιήσεις Ενεργοποιήσεις χρονοπρογραμματιστή Αναδυόμενα νήματα Μετατροπή του μονονηματικού κώδικα σε πολυνηματικό ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ Συνθήκες συναγωνισμού Κρίσιμες περιοχές Αμοιβαίος αποκλεισμός μέσω αναμονής με απασχόληση Λήθαργος και αφύπνιση Σηματοφόροι Τα mutex Ελεγκτές Μεταβίβαση μηνυμάτων Φράγματα 192

6 10 ΠΕΡΙΕΧΟΜΕΝΑ 2.4 ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εισαγωγή στο χρονοπρογραμματισμό Χρονοπρογραμματισμός στα συστήματα δέσμης Χρονοπρογραμματισμός στα αλληλεπιδραστικά συστήματα Χρονοπρογραμματισμός στα συστήματα πραγματικού χρόνου Πολιτικές και μηχανισμοί Χρονοπρογραμματισμός νημάτων ΚΛΑΣΙΚΑ ΠΡΟΒΛΗΜΑΤΑ ΔΙΑΔΙΕΡΓΑΣΙΑΚΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ Το πρόβλημα του δείπνου των φιλοσόφων Το πρόβλημα αναγνωστών-γραφέων H ΕΡΕΥΝΑ ΓΙΑ ΤΙΣ ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΤΑ ΝΗΜΑΤΑ ΠΕΡΙΛΗΨΗ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ ΧΩΡΙΣ ΑΦΑΙΡΕΣΗ ΜΝΗΜΗΣ ΜΙΑ ΑΦΑΙΡΕΣΗ ΜΝΗΜΗΣ: ΧΩΡΟΙ ΔΙΕΥΘΥΝΣΕΩΝ Η έννοια του χώρου διευθύνσεων Εναλλαγή Διαχείριση ελεύθερης μνήμης ΕΙΚΟΝΙΚΗ ΜΝΗΜΗ Σελιδοποίηση Πίνακες σελίδων Επιτάχυνση της σελιδοποίησης Πίνακες σελίδων για μεγάλες μνήμες ΑΛΓΟΡΙΘΜΟΙ ΑΝΤΙΚΑΤΑΣΤΑΣΗΣ ΣΕΛΙΔΩΝ Ο βέλτιστος αλγόριθμος αντικατάστασης σελίδας Ο αλγόριθμος αντικατάστασης σελίδας NRU Ο αλγόριθμος αντικατάστασης σελίδας FIFO Ο αλγόριθμος αντικατάστασης σελίδας της δεύτερης ευκαιρίας Ο αλγόριθμος αντικατάστασης σελίδας του ρολογιού Ο αλγόριθμος αντικατάστασης σελίδας LRU Προσομοίωση του αλγορίθμου LRU με λογισμικό Ο αλγόριθμος αντικατάστασης σελίδας του συνόλου εργασίας 265

7 ΠΕΡΙΕΧΟΜΕΝΑ Ο αλγόριθμος αντικατάστασης σελίδας WSClock Σύνοψη των αλγορίθμων αντικατάστασης σελίδας ΘΕΜΑΤΑ ΣΧΕΔΙΑΣΜΟΥ ΓΙΑ ΤΑ ΣΥΣΤΗΜΑΤΑ ΣΕΛΙΔΟΠΟΙΗΣΗΣ Τοπικές και καθολικές πολιτικές κατανομής Έλεγχος φορτίου Μέγεθος σελίδας Διαχωρισμός των χώρων εντολών και δεδομένων Κοινόχρηστες σελίδες Κοινόχρηστες βιβλιοθήκες Χαρτογραφημένα αρχεία Πολιτική καθαρισμού Διασύνδεση εικονικής μνήμης ΖΗΤΗΜΑΤΑ ΥΛΟΠΟΙΗΣΗΣ Η ανάμιξη του λειτουργικού συστήματος στη σελιδοποίηση Χειρισμός σφαλμάτων σελίδας Αντίγραφα ασφαλείας εντολών Κλείδωμα σελίδων στη μνήμη Δευτερεύουσα μνήμη Διαχωρισμός πολιτικής και μηχανισμού ΤΜΗΜΑΤΟΠΟΙΗΣΗ Υλοποίηση της αμιγούς τμηματοποίησης Τμηματοποίηση με σελιδοποίηση: MULTICS Τμηματοποίηση με σελιδοποίηση: Intel Pentium Η ΕΡΕΥΝΑ ΓΙΑ ΤΗ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ ΠΕΡΙΛΗΨΗ ΣΥΣΤΗΜΑΤΑ ΑΡΧΕΙΩΝ ΑΡΧΕΙΑ Ονομασία αρχείων Δομή των αρχείων Τύποι αρχείων Πρόσβαση στα αρχεία Χαρακτηριστικά αρχείων Λειτουργίες αρχείων Παράδειγμα προγράμματος που χρησιμοποιεί κλήσεις συστήματος αρχείων 329

8 12 ΠΕΡΙΕΧΟΜΕΝΑ 4.2 ΚΑΤΑΛΟΓΟΙ Συστήματα καταλόγων ενός επιπέδου Ιεραρχικά συστήματα καταλόγων Ονόματα διαδρομών Λειτουργίες καταλόγων ΥΛΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ Διάταξη του συστήματος αρχείων Υλοποίηση των αρχείων Η υλοποίηση των καταλόγων Κοινόχρηστα αρχεία Συστήματα αρχείων με καταγραφική δομή Ημερολογιακά συστήματα αρχείων Εικονικά συστήματα αρχείων ΔΙΑΧΕΙΡΙΣΗ ΚΑΙ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ Διαχείριση χώρου δίσκου Αντίγραφα ασφαλείας του συστήματος αρχείων Συνέπεια των συστημάτων αρχείων Επιδόσεις των συστημάτων αρχείων Ανασυγκρότηση δίσκων ΠΑΡΑΔΕΙΓΜΑΤΑ ΣΥΣΤΗΜΑΤΩΝ ΑΡΧΕΙΩΝ Συστήματα αρχείων για CD-ROM Το σύστημα αρχείων του MS-DOS Το σύστημα αρχείων UNIX V Η ΕΡΕΥΝΑ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΑΡΧΕΙΩΝ ΠΕΡΙΛΗΨΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΑΡΧΕΣ ΤΟΥ ΥΛΙΚΟΥ ΕΙΣΟΔΟΥ/ΕΞΟΔΟΥ Συσκευές Ε/Ε Ελεγκτές συσκευών E/E με χαρτογράφηση στη μνήμη Άμεση προσπέλαση μνήμης (DMA) Και πάλι οι διακοπές 412

9 ΠΕΡΙΕΧΟΜΕΝΑ ΑΡΧΕΣ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ Ε/Ε Στόχοι του λογισμικού Ε/Ε Προγραμματισμένη Ε/Ε Ε/Ε οδηγούμενη από διακοπές Ε/Ε με τη χρήση DMA ΕΠΙΠΕΔΑ ΛΟΓΙΣΜΙΚΟΥ Ε/Ε Χειριστές διακοπών Οδηγοί συσκευών Λογισμικό Ε/Ε ανεξάρτητο από τη συσκευή Λογισμικό Ε/Ε χώρου χρήστη ΔΙΣΚΟΙ Το υλικό των δίσκων Διαμόρφωση δίσκου Αλγόριθμοι χρονοπρογραμματισμού βραχίονα δίσκου Χειρισμός σφαλμάτων Ευσταθής αποθήκευση ΡΟΛΟΓΙΑ Το υλικό των ρολογιών Το λογισμικό των ρολογιών Χρονόμετρα λογισμικού ΔΙΑΣΥΝΔΕΣΕΙΣ ΜΕ ΤΟ ΧΡΗΣΤΗ: ΠΛΗΚΤΡΟΛΟΓΙΟ, ΠΟΝΤΙΚΙ, ΟΘΟΝΗ Λογισμικό εισόδου Λογισμικό εξόδου ΜΙΚΡΟΠΕΛΑΤΕΣ ΔΙΑΧΕΙΡΙΣΗ ΙΣΧΥΟΣ Ζητήματα υλικού Ζητήματα που αφορούν το λειτουργικό σύστημα Ζητήματα προγραμμάτων εφαρμογών Η ΕΡΕΥΝΑ ΓΙΑ ΤΗΝ ΕΙΣΟΔΟ/ΕΞΟΔΟ ΠΕΡΙΛΗΨΗ 509

10 14 ΠΕΡΙΕΧΟΜΕΝΑ 6 ΑΔΙΕΞΟΔΑ ΠΟΡΟΙ Προεκτοπίσιμοι και μη προεκτοπίσιμοι πόροι Απόκτηση πόρων ΕΙΣΑΓΩΓΗ ΣΤΑ ΑΔΙΕΞΟΔΑ Συνθήκες εμφάνισης αδιεξόδου πόρων Μοντελοποίηση των αδιεξόδων Ο ΑΛΓΟΡΙΘΜΟΣ ΤΗΣ ΣΤΡΟΥΘΟΚΑΜΗΛΟΥ ΕΝΤΟΠΙΣΜΟΣ ΚΑΙ ΑΝΑΚΑΜΨΗ ΑΠΟ ΑΔΙΕΞΟΔΑ Εντοπισμός αδιεξόδων όταν υπάρχει ένας πόρος από κάθε είδος Εντοπισμός αδιεξόδων όταν υπάρχουν πολλοί πόροι από κάθε είδος Ανάκαμψη από αδιέξοδο ΑΠΟΦΥΓΗ ΑΔΙΕΞΟΔΩΝ Τροχιές πόρων Ασφαλείς και ανασφαλείς καταστάσεις Ο αλγόριθμος του τραπεζίτη για ένα μοναδικό πόρο Ο αλγόριθμος του τραπεζίτη για πολλούς πόρους ΑΠΟΤΡΟΠΗ ΑΔΙΕΞΟΔΩΝ Προσβολή της συνθήκης του αμοιβαίου αποκλεισμού Προσβολή της συνθήκης δέσμευσης και αναμονής Προσβολή της συνθήκης μη προεκτόπισης Προσβολή της συνθήκης κυκλικής αναμονής ΑΛΛΑ ΘΕΜΑΤΑ Κλείδωμα σε δύο φάσεις Αδιέξοδα επικοινωνίας Ενεργό αδιέξοδο Λιμοκτονία H ΕΡΕΥΝΑ ΓΙΑ ΤΑ ΑΔΙΕΞΟΔΑ ΠΕΡΙΛΗΨΗ 548

11 ΠΕΡΙΕΧΟΜΕΝΑ 15 7 ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΟΛΥΜΕΣΩΝ ΕΙΣΑΓΩΓΗ ΣΤΑ ΠΟΛΥΜΕΣΑ ΑΡΧΕΙΑ ΠΟΛΥΜΕΣΩΝ Κωδικοποίηση βίντεο Κωδικοποίηση ήχου ΣΥΜΠΙΕΣΗ ΒΙΝΤΕΟ Το πρότυπο JPEG Το πρότυπο MPEG ΣΥΜΠΙΕΣΗ ΗΧΟΥ ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΕΡΓΑΣΙΩΝ ΣΤΑ ΠΟΛΥΜΕΣΑ Χρονοπρογραμματισμός ομογενών διεργασιών Γενικός χρονοπρογραμματισμός σε πραγματικό χρόνο Χρονοπρογραμματισμός RMS Ο χρονοπρογραμματισμός EDF ΥΠΟΔΕΙΓΜΑΤΑ ΣΥΣΤΗΜΑΤΩΝ ΑΡΧΕΙΩΝ ΠΟΛΥΜΕΣΩΝ Οι λειτουργίες ελέγχου των VCR Βίντεο σχεδόν κατά παραγγελία Βίντεο σχεδόν κατά παραγγελία με λειτουργίες VCR ΤΟΠΟΘΕΤΗΣΗ ΑΡΧΕΙΩΝ Τοποθέτηση ενός αρχείου σε ένα μοναδικό δίσκο Δύο εναλλακτικές στρατηγικές οργάνωσης αρχείων Τοποθέτηση αρχείων για βίντεο σχεδόν κατά παραγγελία Τοποθέτηση πολλών αρχείων σε ένα μοναδικό δίσκο Τοποθέτηση αρχείων σε πολλούς δίσκους ΧΡΗΣΗ ΚΡΥΦΗΣ ΜΝΗΜΗΣ Τοποθέτηση μπλοκ στην κρυφή μνήμη Τοποθέτηση αρχείων στην κρυφή μνήμη ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΣΚΟΥ ΓΙΑ ΠΟΛΥΜΕΣΑ Στατικός χρονοπρογραμματισμός δίσκου Δυναμικός χρονοπρογραμματισμός δίσκου 607

12 16 ΠΕΡΙΕΧΟΜΕΝΑ 7.10 Η ΕΡΕΥΝΑ ΣΤΑ ΠΟΛΥΜΕΣΑ ΠΕΡΙΛΗΨΗ ΣΥΣΤΗΜΑΤΑ ΠΟΛΛΑΠΛΩΝ ΕΠΕΞΕΡΓΑΣΤΩΝ ΠΟΛΥΕΠΕΞΕΡΓΑΣΤΕΣ Υλικό πολυεπεξεργαστών Τύποι λειτουργικών συστημάτων για πολυεπεξεργαστές Συγχρονισμός πολυεπεξεργαστών Χρονοπρογραμματισμός πολυεπεξεργαστών ΠΟΛΥ-ΥΠΟΛΟΓΙΣΤΕΣ Υλικό πολυ-υπολογιστών Λογισμικό επικοινωνίας χαμηλού επιπέδου Λογισμικό επικοινωνίας επιπέδου χρήστη Κλήση απομακρυσμένων διαδικασιών Kατανεμημένη κοινόχρηστη μνήμη Χρονοπρογραμματισμός πολυ-υπολογιστών Εξισορρόπηση φορτίου ΕΙΚΟΝΙΚΟΠΟΙΗΣΗ Απαιτήσεις της εικονικοποίησης Υπερεπόπτες τύπου Υπερεπόπτες τύπου Παρα-εικονικοποίηση Εικονικοποίηση μνήμης Εικονικοποίηση Ε/Ε Εικονικές εφαρμογές Οι εικονικές μηχανές σε πολυπύρηνες CPU Ζητήματα άδειας χρήσης ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ Υλικό δικτύων Υπηρεσίες δικτύων και πρωτόκολλα Ενδιάμεσο λογισμικό που βασίζεται σε έγγραφα Ενδιάμεσο λογισμικό που βασίζεται σε σύστημα αρχείων Ενδιάμεσο λογισμικό που βασίζεται σε αντικείμενα Ενδιάμεσο λογισμικό που βασίζεται σε συντονισμό Πλέγματα 702

13 ΠΕΡΙΕΧΟΜΕΝΑ H ΕΡΕΥΝΑ ΣΤΑ ΣΥΣΤΗΜΑΤΑ ΠΟΛΛΑΠΛΩΝ ΕΠΕΞΕΡΓΑΣΤΩΝ ΠΕΡΙΛΗΨΗ ΑΣΦΑΛΕΙΑ ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΑΣΦΑΛΕΙΑΣ Απειλές Εισβολείς Απώλεια δεδομένων από ατύχημα ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΚΡΥΠΤΟΓΡΑΦΙΑΣ Κρυπτογραφία μυστικού κλειδιού Κρυπτογραφία δημόσιου κλειδιού Μονόδρομες συναρτήσεις Ψηφιακές υπογραφές Υπομονάδες έμπιστης πλατφόρμας ΜΗΧΑΝΙΣΜΟΙ ΠΡΟΣΤΑΣΙΑΣ Τομείς προστασίας Λίστες ελέγχου πρόσβασης Δυνατότητες Έμπιστα συστήματα Έμπιστη υπολογιστική βάση Τυπικά μοντέλα ασφαλών συστημάτων Πολυεπίπεδη ασφάλεια Συγκεκαλυμμένα κανάλια ΠΙΣΤΟΠΟΙΗΣΗ ΤΑΥΤΟΤΗΤΑΣ Πιστοποίηση ταυτότητας με τη χρήση κωδικών πρόσβασης Πιστοποίηση ταυτότητας με τη χρήση φυσικού αντικειμένου Πιστοποίηση ταυτότητας με τη χρήση βιομετρίας ΕΠΙΘΕΣΕΙΣ ΑΠΟ ΤΟ ΕΣΩΤΕΡΙΚΟ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ Λογικές βόμβες Καταπακτές Παραπλανητική σύνδεση ΑΞΙΟΠΟΙΗΣΗ ΣΦΑΛΜΑΤΩΝ ΚΩΔΙΚΑ Υπερχείλιση προσωρινής μνήμης Επιθέσεις με συμβολοσειρές μορφοποίησης Επιθέσεις με επιστροφή στη libc 769

14 18 ΠΕΡΙΕΧΟΜΕΝΑ Επιθέσεις υπερχείλισης ακεραίων Επιθέσεις με παρεμβολή κώδικα Επιθέσεις με κλιμάκωση προνομίων ΚΑΚΟΒΟΥΛΟ ΛΟΓΙΣΜΙΚΟ Δούρειοι ίπποι Ιοί Σκουλήκια Λογισμικό κατασκοπίας Rootkit ΤΡΟΠΟΙ ΑΜΥΝΑΣ Τείχη προστασίας Τεχνικές εναντίον των ιών και προστασίας των ιών από αυτές Υπογραφή κώδικα Φυλάκιση Ανίχνευση εισβολής με βάση μοντέλο Ενθυλάκωση κινητού κώδικα Η ασφάλεια στην Java Η ΕΡΕΥΝΑ ΓΙΑ ΤΗΝ ΑΣΦΑΛΕΙΑ ΠΕΡΙΛΗΨΗ ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ 1: LINUX Η ΙΣΤΟΡΙΑ ΤΩΝ UNIX ΚΑΙ LINUX UNICS PDP-11 UNIX Φορητό UNIX Berkeley UNIX Πρότυπο UNIX MINIX Linux ΓΕΝΙΚΑ ΓΙΑ ΤΟ LINUX Οι στόχοι του Linux Οι διασυνδέσεις του Linux Το κέλυφος Βοηθητικά προγράμματα του Linux Η δομή του πυρήνα 850

15 ΠΕΡΙΕΧΟΜΕΝΑ ΟΙ ΔΙΕΡΓΑΣΙΕΣ ΣΤΟ LINUX Θεμελιώδεις έννοιες Κλήσεις συστήματος για τη διαχείριση διεργασιών στο Linux Υλοποίηση διεργασιών και νημάτων στο Linux Ο χρονοπρογραμματισμός στο Linux Η εκκίνηση του Linux Η ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ ΣΤΟ LINUX Θεμελιώδεις έννοιες Κλήσεις συστήματος για τη διαχείριση μνήμης στο Linux Υλοποίηση της διαχείρισης μνήμης στο Linux Η σελιδοποίηση στο Linux ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΣΤΟ LINUX Θεμελιώδεις έννοιες Δικτύωση Κλήσεις συστήματος για είσοδο/έξοδο στο Linux Υλοποίηση της εισόδου/εξόδου στο Linux Οι υπομονάδες στο Linux ΤΟ ΣΥΣΤΗΜΑ ΑΡΧΕΙΩΝ ΤΟΥ LINUX Θεμελιώδεις έννοιες Κλήσεις συστήματος αρχείων στο Linux Υλοποίηση του συστήματος αρχείων του Linux NFS: Το σύστημα αρχείων δικτύου Η ΑΣΦΑΛΕΙΑ ΣΤΟ LINUX Θεμελιώδεις έννοιες Κλήσεις συστήματος που αφορούν την ασφάλεια στο Linux Υλοποίηση της ασφάλειας στο Linux ΠΕΡΙΛΗΨΗ ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ 2: WINDOWS VISTA Η ΙΣΤΟΡΙΑ ΤΩΝ WINDOWS VISTA Δεκαετία 1980: MS-DOS Δεκαετία 1990: Windows βασισμένα σε MS-DOS Δεκαετία 2000: Windows βασισμένα σε NT Windows Vista 941

16 20 ΠΕΡΙΕΧΟΜΕΝΑ 11.2 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΤΑ WINDOWS VISTA Η εγγενής διασύνδεση προγραμματισμού εφαρμογών των NT Η διασύνδεση προγραμματισμού εφαρμογών Win Το μητρώο των Windows ΔΟΜΗ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ Η δομή του λειτουργικού συστήματος Εκκίνηση των Windows Vista Υλοποίηση του διαχειριστή αντικειμένων Υποσυστήματα, DLL, και υπηρεσίες κατάστασης χρήστη ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΣΤΑ WINDOWS VISTA Θεμελιώδεις έννοιες Κλήσεις API για τη διαχείριση εργασιών, διεργασιών, νημάτων, και ινών Υλοποίηση διεργασιών και νημάτων ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Θεμελιώδεις έννοιες Κλήσεις συστήματος για τη διαχείριση μνήμης Υλοποίηση της διαχείρισης μνήμης ΧΡΗΣΗ ΚΡΥΦΗΣ ΜΝΗΜΗΣ ΣΤΑ WINDOWS VISTA ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΣΤΑ WINDOWS VISTA Θεμελιώδεις έννοιες Κλήσεις API εισόδου/εξόδου Υλοποίηση της Ε/Ε ΤΟ ΣΥΣΤΗΜΑ ΑΡΧΕΙΩΝ ΤΩΝ WINDOWS ΝΤ Θεμελιώδεις έννοιες Υλοποίηση του συστήματος αρχείων των ΝΤ Η ΑΣΦΑΛΕΙΑ ΣΤΑ WINDOWS VISTA Θεμελιώδεις έννοιες Κλήσεις API που αφορούν την ασφάλεια Υλοποίηση της ασφάλειας ΠΕΡΙΛΗΨΗ 1060

17 ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ 3: ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ SYMBIAN Η ΙΣΤΟΡΙΑ ΤΟΥ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ SYMBIAN Οι ρίζες του Symbian: Psion και EPOC Symbian OS έκδοση Symbian OS έκδοση Το Symbian OS σήμερα ΓΕΝΙΚΑ ΓΙΑ ΤΟ SYMBIAN OS Αντικειμενοστρέφεια Σχεδιασμός μικροπυρήνα Ο νανοπυρήνας του Symbian OS Προσπέλαση πόρων πελάτη/διακομιστή Δυνατότητες μεγαλύτερου λειτουργικού συστήματος Επικοινωνία και πολυμέσα ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΣΤΟ SYMBIAN OS Νήματα και νανονήματα Διεργασίες Ενεργά αντικείμενα Διαδιεργασιακή επικοινωνία ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Συστήματα χωρίς εικονική μνήμη Πώς απευθύνεται στη μνήμη το Symbian OS ΕΙΣΟΔΟΣ ΚΑΙ ΕΞΟΔΟΣ Οδηγοί συσκευών Επεκτάσεις πυρήνα Άμεση προσπέλαση μνήμης Ειδική περίπτωση: μέσα αποθήκευσης Ανασταλτική Ε/Ε Αφαιρούμενα μέσα ΣΥΣΤΗΜΑΤΑ ΑΠΟΘΗΚΕΥΣΗΣ Συστήματα αρχείων κινητών συσκευών Συστήματα αρχείων του Symbian OS Ασφάλεια και προστασία του συστήματος αρχείων Η ΑΣΦΑΛΕΙΑ ΣΤΟ SYMBIAN OS 1089

18 22 ΠΕΡΙΕΧΟΜΕΝΑ 12.8 Η ΕΠΙΚΟΙΝΩΝΙΑ ΣΤΟ SYMBIAN OS Η βασική υποδομή Μια πιο κοντινή ματιά στην υποδομή ΠΕΡΙΛΗΨΗ ΣΧΕΔΙΑΣΗ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Η ΦΥΣΗ ΤΟΥ ΠΡΟΒΛΗΜΑΤΟΣ ΣΧΕΔΙΑΣΗΣ Στόχοι Γιατί είναι δύσκολο να σχεδιαστεί ένα λειτουργικό σύστημα; ΣΧΕΔΙΑΣΗ ΔΙΑΣΥΝΔΕΣΕΩΝ Καθοδηγητικές αρχές Υποδείγματα Η διασύνδεση κλήσεων συστήματος Η ΥΛΟΠΟΙΗΣΗ Η δομή του συστήματος Μηχανισμός ή πολιτική; Ορθογωνικότητα Ονομασία Χρόνος δέσμευσης Στατικές ή δυναμικές δομές; Αναλυτική ή συνθετική υλοποίηση; Χρήσιμες τεχνικές ΑΠΟΔΟΣΗ Γιατί είναι αργά τα λειτουργικά συστήματα; Τι πρέπει να βελτιστοποιηθεί; Συμβιβασμοί χώρου-χρόνου Κρυφή μνήμη Υποδείξεις Εκμετάλλευση της τοπικότητας Η βελτιστοποίηση της συνηθισμένης περίπτωσης ΔΙΑΧΕΙΡΙΣΗ ΕΡΓΩΝ Ο μυθικός ανθρωπομήνας Η δομή της ομάδας Ο ρόλος της πείρας Όχι ασημένιες σφαίρες 1142

19

20 162 ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΚΕΦ ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ Οι διεργασίες χρειάζεται συχνά να επικοινωνούν με άλλες διεργασίες. Για παράδειγμα, σε έναν αγωγό κελύφους (shell pipeline), η έξοδος της πρώτης διεργασίας αποτελεί την είσοδο της δεύτερης, κ.ο.κ. μέχρι το τέλος της γραμμής διαταγής. Επομένως, είναι απαραίτητη η επικοινωνία ανάμεσα στις διεργασίες, η οποία είναι προτιμότερο να γίνεται με καλά δομημένο τρόπο, χωρίς τη χρήση διακοπών. Στις επόμενες ενότητες θα εξετάσουμε τα θέματα που σχετίζονται με τη διαδιεργασιακή επικοινωνία (InterProcess Communication ή IPC). Με λίγα λόγια, εδώ υπάρχουν τρία βασικά ζητήματα. Το πρώτο το θίξαμε πιο πάνω: με ποιο τρόπο μια διεργασία μπορεί να μεταβιβάσει πληροφορίες σε μια άλλη. Το δεύτερο έχει σχέση με την εξασφάλιση ότι δύο ή περισσότερες διεργασίες δεν εμποδίζουν η μια την άλλη όταν εκτελούν κρίσιμες ενέργειες, όπως για παράδειγμα δύο διεργασίες σε ένα σύστημα κράτησης αεροπορικών θέσεων που προσπαθούν να δεσμεύσουν την τελευταία διαθέσιμη θέση για διαφορετικούς επιβάτες. Το τρίτο ζήτημα αφορά την κατάλληλη αλληλουχία ενεργειών όταν υπάρχουν εξαρτήσεις: αν η διεργασία Α παράγει δεδομένα και η διεργασία Β τα τυπώνει, η διεργασία Β πρέπει να περιμένει να εξαχθεί κάποια ποσότητα δεδομένων από την Α πριν ξεκινήσει την εκτύπωση. Θα εξετάσουμε όλα τα ζητήματα αυτά, ξεκινώντας από την επόμενη ενότητα. Είναι επίσης σημαντικό να αναφέρουμε ότι δύο από τα ζητήματα αυτά ισχύουν θαυμάσια και στα νήματα. Το πρώτο η μεταβίβαση πληροφοριών είναι εύκολη υπόθεση για τα νήματα που μοιράζονται έναν κοινό χώρο διευθύνσεων (νήματα διαφορετικών χώρων διευθύνσεων που επιχειρούν να επικοινωνήσουν υπάγονται στην επικοινωνία των διεργασιών). Τα άλλα δύο ζητήματα όμως η αποφυγή παρεμπόδισης και η κατάλληλη ακολουθία ενεργειών ισχύουν εξίσου καλά και στα νήματα. Εμφανίζονται τα ίδια προβλήματα και εφαρμόζονται οι ίδιες λύσεις. Στη συνέχεια θα εξετάσουμε τα ζητήματα στο περιβάλλον των διεργασιών, αλλά σημειώστε ότι τα ίδια προβλήματα και οι ίδιες λύσεις εφαρμόζονται και στην περίπτωση των νημάτων Συνθήκες συναγωνισμού Σε ορισμένα λειτουργικά συστήματα, οι συνεργαζόμενες διεργασίες μοιράζονται συχνά την ίδια περιοχή αποθήκευσης, στην οποία η κάθε διεργασία μπορεί να διαβάσει και να γράψει. Η περιοχή αυτή μπορεί να βρίσκεται στην κύρια μνήμη (πιθανόν σε μια δομή δεδομένων του πυρήνα) ή να είναι ένα κοινόχρηστο αρχείο δίσκου η θέση αυτής της περιοχής δεν αλλάζει τη φύση της επικοινωνίας ούτε τα ζητήματα που προκύπτουν. Για να δούμε πώς λειτουργεί στην πράξη η διαδιεργασιακή επικοινωνία, θα μελετήσουμε ένα απλό αλλά συνηθισμένο παράδειγμα: έναν παροχετευτή εκτυπώσεων (print spooler). Όταν μια διεργασία θέλει να τυπώσει ένα αρχείο, καταχωρίζει το όνομα του αρχείου σε έναν ειδικό κατάλογο παροχέτευσης (spooler directory). Μια άλλη διεργασία, ο δαίμονας εκτυπωτή (printer daemon), ελέγχει περιοδικά αν υπάρχουν αρχεία που πρέπει να τυπωθούν και, αν ναι, τα τυπώνει και αφαιρεί τα ονόματά τους από τον κατάλογο. Υποθέστε ότι ο κατάλογος παροχέτευσης διαθέτει ένα πλήθος από υποδοχές, που αριθμούνται ως 0, 1, 2,..., κάθε μία από τις οποίες μπορεί να κρατήσει ένα όνομα αρχείου. Υποθέστε ακόμη ότι διατίθενται δύο κοινόχρηστες μεταβλητές, η out που δείχνει στο επόμενο

21 ΕΝ. 2.3 ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ 163 αρχείο που πρόκειται να τυπωθεί, και η in, η οποία δείχνει στην επόμενη ελεύθερη υποδοχή του καταλόγου. Οι δύο αυτές μεταβλητές μπορούν να διατηρούνται σε ένα αρχείο δύο λέξεων που είναι διαθέσιμο σε όλες τις διεργασίες. Σε μια συγκεκριμένη στιγμή, οι υποδοχές 0 έως 3 είναι κενές (τα αντίστοιχα αρχεία έχουν ήδη τυπωθεί), ενώ οι υποδοχές 4 έως 6 είναι κατειλημμένες (περιέχουν τα ονόματα των αρχείων που έχουν τοποθετηθεί στην ουρά για να τυπωθούν). Σχεδόν ταυτόχρονα, οι διεργασίες Α και Β αποφασίζουν να προσθέσουν στην ουρά ένα αρχείο προς εκτύπωση. Η συγκεκριμένη κατάσταση παρουσιάζεται στην Εικόνα ÊáôÜëïãïò ðáñï Ýôåõóçò Äéåñãáóßá A abc prog.c prog.n out=4 in=7 Äéåñãáóßá B Εικόνα Δύο διεργασίες επιχειρούν ταυτόχρονα να προσπελάσουν κοινή μνήμη. Εκεί που ισχύει ο νόμος του Murphy θα μπορούσαν να συμβούν τα εξής: Η διεργασία Α διαβάζει τη μεταβλητή in και αποθηκεύει την τιμή της, που είναι 7, σε μια τοπική μεταβλητή που ονομάζεται next_free_slot. Ακριβώς εδώ συμβαίνει μια διακοπή ρολογιού και η CPU αποφασίζει ότι η διεργασία Α εκτελέστηκε για αρκετό χρόνο, οπότε μεταφέρεται στην εκτέλεση της διεργασίας Β. Αυτή η διεργασία διαβάζει επίσης τη μεταβλητή in λαμβάνοντας επίσης την τιμή 7, την οποία αποθηκεύει στη δική της τοπική μεταβλητή next_ free_slot. Τη στιγμή αυτή, οι δύο διεργασίες πιστεύουν ότι η επόμενη ελεύθερη υποδοχή είναι η 7. Η διεργασία Β συνεχίζει τώρα την εκτέλεσή της. Αποθηκεύει το όνομα του αρχείου της στην υποδοχή 7 και αυξάνει την τιμή της μεταβλητής in σε 8. Στη συνέχεια εκτελεί άλλες λειτουργίες. Τέλος, η διεργασία Α εκτελείται ξανά, ξεκινώντας από το σημείο που βρισκόταν πριν από τη διακοπή. Ελέγχει τη μεταβλητή next_free_slot, η οποία έχει τιμή 7, και καταχωρίζει το όνομα του δικού της αρχείου στην υποδοχή 7, διαγράφοντας το όνομα του αρχείου που η διεργασία Β τοποθέτησε εκεί. Στη συνέχεια υπολογίζει την τιμή της πράξης next_free_slot + 1, βρίσκει την τιμή 8, και την καταχωρίζει στη μεταβλητή in. Ο κατάλογος παροχέτευσης είναι εσωτερικά συνεπής, ο δαίμονας του εκτυπωτή δε θα παρατηρήσει κάτι ασυνήθιστο, αλλά η διεργασία Β δε θα δεχθεί ποτέ καμία έξοδο. Ο χρήστης Β θα περιμένει γεμάτος αγωνία δίπλα στον εκτυπωτή για χρόνια, περιμένοντας μια έξοδο που δε θα έλθει ποτέ. Αυτές οι καταστάσεις, στις οποίες δύο ή περισσότερες διεργασίες διαβάζουν ή γράφουν κοινά δεδομένα και το τελικό αποτέλεσμα εξαρτάται από το πότε ακριβώς θα εκτελεστεί η κάθε μία, ονομάζονται Αν υπάρχει η πιθανότητα κάτι να πάει στραβά, θα πάει.

22 164 ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΚΕΦ.2 συνθήκες συναγωνισμού (race conditions). Η αποσφαλμάτωση προγραμμάτων που περιλαμβάνουν συνθήκες συναγωνισμού δεν είναι καθόλου ευχάριστη. Τα αποτελέσματα των περισσότερων δοκιμαστικών εκτελέσεων είναι ολόσωστα, αλλά εντελώς αναπάντεχα συμβαίνει κάτι παράξενο και ανεξήγητο Κρίσιμες περιοχές Πώς μπορούμε να αποφύγουμε τις συνθήκες συναγωνισμού; Το πιο σημαντικό ζήτημα για την αποφυγή των προβλημάτων, τόσο στο θέμα που εξετάζουμε όσο και στις περιπτώσεις που υπάρχει κοινή χρήση μνήμης, αρχείων, ή οποιασδήποτε άλλης οντότητας, είναι η εύρεση κάποιας μεθόδου ώστε να μην επιτρέπεται σε περισσότερες από μία διεργασίες η ανάγνωση ή η εγγραφή των κοινών δεδομένων, την ίδια χρονική στιγμή. Με άλλα λόγια, αυτό που χρειαζόμαστε είναι ο αμοιβαίος αποκλεισμός (mutual exclusion), δηλαδή μια μέθοδος που θα εξασφαλίζει ότι, αν μια διεργασία χρησιμοποιεί μια κοινή μεταβλητή ή αρχείο, οι άλλες διεργασίες θα αποκλείονται από την εκτέλεση της ίδιας ενέργειας. Στο προηγούμενο παράδειγμα, το πρόβλημα προήλθε από το γεγονός ότι η διεργασία Β χρησιμοποίησε μια κοινή μεταβλητή, πριν η Α ολοκληρώσει τις ενέργειες που είχαν σχέση με τη μεταβλητή αυτή. Η επιλογή των κατάλληλων θεμελιωδών λειτουργιών για την επίτευξη του αμοιβαίου αποκλεισμού είναι ένα σημαντικό θέμα για το σχεδιασμό λειτουργικών συστημάτων, και ένα θέμα που θα αναλύσουμε στις επόμενες ενότητες. Το πρόβλημα της αποφυγής συνθηκών συναγωνισμού μπορεί να εκφραστεί και με αφαιρετικό τρόπο. Υπάρχουν χρονικά διαστήματα που οι διεργασίες απασχολούνται με εσωτερικούς υπολογισμούς και άλλα θέματα που δεν οδηγούν σε συνθήκες συναγωνισμού. Σε άλλα όμως χρονικά διαστήματα, οι διεργασίες πρέπει να προσπελάσουν κοινόχρηστες περιοχές μνήμης ή αρχεία, ή να εκτελέσουν ενέργειες που είναι δυνατόν να οδηγήσουν σε συναγωνισμό. Το τμήμα ενός προγράμματος, στο οποίο γίνεται προσπέλαση κοινόχρηστης μνήμης, ονομάζεται κρίσιμη περιοχή (critical region) ή κρίσιμο τμήμα (critical section). Αν μπορούσαμε να εξασφαλίσουμε ότι ποτέ δύο ή περισσότερες διεργασίες δε θα βρίσκονται ταυτόχρονα σε κρίσιμες περιοχές, θα αποφεύγαμε το συναγωνισμό. Αν και η απαίτηση αυτή αποφεύγει τις συνθήκες συναγωνισμού, δεν είναι επαρκής για τη σωστή και αποδοτική συνεργασία παράλληλων διεργασιών που χρησιμοποιούν κοινόχρηστα δεδομένα. Μια ικανοποιητική λύση προϋποθέτει τις εξής τέσσερις συνθήκες: 1. Δύο διεργασίες δε βρίσκονται ποτέ ταυτόχρονα στις κρίσιμες περιοχές τους. 2. Δεν επιτρέπονται παραδοχές σε ό,τι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών. 3. Διεργασία που δε βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να μπλοκάρει άλλες διεργασίες. 4. Δεν επιτρέπεται μια διεργασία να αναμένει επαόριστον να μπει στην κρίσιμη περιοχή της. Από αφαιρετική σκοπιά, η συμπεριφορά που χρειαζόμαστε παρουσιάζεται στην Εικόνα Εδώ, η διεργασία Α εισέρχεται στην κρίσιμη περιοχή της τη χρονική στιγμή T 1. Λίγο αρ-

23 ΕΝ. 2.3 ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ 165 γότερα, τη χρονική στιγμή T 2, η διεργασία Β προσπαθεί να μπει στην κρίσιμη περιοχή της, αλλά αποτυγχάνει καθώς μια άλλη διεργασία βρίσκεται ήδη στην κρίσιμη περιοχή της και αυτό επιτρέπεται μόνο για μία διεργασία κάθε φορά. Συνεπώς, η Β αναστέλλεται προσωρινά μέχρι τη χρονική στιγμή T 3, στην οποία η Α βγαίνει από την κρίσιμη περιοχή της και επιτρέπει έτσι στη Β να μπει αμέσως στη δική της. Τέλος, η Β βγαίνει (τη χρονική στιγμή T 4 ) από τη δική της κρίσιμη περιοχή και επιστρέφουμε στην αρχική κατάσταση όπου δεν υπάρχουν διεργασίες που βρίσκονται στην κρίσιμη περιοχή τους. Ç Á åéóýñ åôáé óôçí êñßóéìç ðåñéï Þ Ç Á âãáßíåé áðü ôçí êñßóéìç ðåñéï Þ Äéåñãáóßá Á Ç Â áðïðåéñüôáé íá åéóýëèåé óôçí êñßóéìç ðåñéï Þ Ç Â åéóýñ åôáé óôçí êñßóéìç ðåñéï Þ Ç Â âãáßíåé áðü ôçí êñßóéìç ðåñéï Þ Äéåñãáóßá Â Ç Â åßíáé T1 T2 ìðëïêáñéóìýíç T3 T4 ñüíïò Εικόνα Αμοιβαίος αποκλεισμός με τη χρήση κρίσιμων περιοχών Αμοιβαίος αποκλεισμός μέσω αναμονής με απασχόληση Στην ενότητα αυτή θα εξετάσουμε διάφορες προτάσεις για την επίτευξη του αμοιβαίου αποκλεισμού ώστε, στο διάστημα που μια διεργασία ενημερώνει την κοινόχρηστη περιοχή μνήμης, καμία άλλη να μην μπαίνει στο δικό της κρίσιμο τμήμα ώστε να δημιουργηθεί πρόβλημα. Απενεργοποίηση διακοπών Σε ένα σύστημα με έναν επεξεργαστή, η απλούστερη λύση είναι κάθε διεργασία που μπαίνει στην κρίσιμη περιοχή της να απενεργοποιεί όλες τις διακοπές και να τις επανενεργοποιεί αμέσως πριν βγει από αυτή. Όταν απενεργοποιούνται οι διακοπές δεν μπορούν να συμβούν ούτε διακοπές ρολογιού. Η CPU εναλλάσσεται μεταξύ των διεργασιών μόνο μετά από διακοπές ρολογιού ή άλλου είδους, οπότε, με την απενεργοποίηση των διακοπών η CPU δεν πρόκειται να μεταφερθεί σε άλλη διεργασία. Επομένως, από τη στιγμή που μια διεργασία θα απενεργοποιήσει τις διακοπές, μπορεί να εξετάσει και να ενημερώσει την κοινόχρηστη μνήμη χωρίς το φόβο ότι θα παρεμβληθεί κάποια άλλη διεργασία. Η συγκεκριμένη λύση θεωρείται γενικά μη ελκυστική, μια και δεν είναι έξυπνο να δίνεται σε διεργασίες χρήστη η δικαιοδοσία απενεργοποίησης των διακοπών. Ας υποθέσουμε ότι μια διεργασία χρήστη απενεργοποίησε τις διακοπές και δεν τις επανέφερε ποτέ σε λειτουργία

24 166 ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΚΕΦ.2 ξανά. Αυτό θα έβαζε τέλος στη λειτουργία του συστήματος. Ακόμη, αν το σύστημα είναι πολυεπεξεργαστικό (δηλαδή έχει δύο ή περισσότερες CPU), η απενεργοποίηση των διακοπών θα επηρεάσει μόνο τη CPU που εκτέλεσε την εντολή disable. Οι υπόλοιπες θα συνεχίσουν την εκτέλεσή τους, έχοντας τη δυνατότητα να προσπελάσουν την κοινόχρηστη μνήμη. Από την άλλη, συχνά είναι βολικό ο πυρήνας να απενεργοποιεί τις διακοπές για μερικές ε- ντολές, για το χρονικό διάστημα που ενημερώνει μεταβλητές ή λίστες. Αν, για παράδειγμα, παρουσιαστεί διακοπή τη στιγμή που η λίστα των έτοιμων διεργασιών δε βρίσκεται σε συνεπή κατάσταση, τότε μπορεί να εμφανιστούν συνθήκες συναγωνισμού. Το γενικό συμπέρασμα: η απενεργοποίηση των διακοπών είναι συχνά μια χρήσιμη τεχνική για το λειτουργικό σύστημα όταν προκαλείται από το ίδιο, αλλά δεν ενδείκνυται ως γενικός μηχανισμός αμοιβαίου αποκλεισμού για τις διεργασίες χρήστη. Η πιθανότητα επίτευξης αμοιβαίου αποκλεισμού μέσω της απενεργοποίησης των διακοπών ακόμη και μέσα στον πυρήνα μειώνεται κάθε μέρα λόγω του αυξανόμενου αριθμού των πολυπύρηνων τσιπ ακόμη και σε PC της χαμηλής κατηγορίας τιμής. Οι δύο πυρήνες είναι ήδη κάτι συνηθισμένο, τέσσερις υπάρχουν σε μηχανές αιχμής, και οι οκτώ ή οι 16 δεν απέχουν πολύ να εμφανιστούν. Σε ένα πολυπύρηνο (δηλαδή πολυεπεξεργαστικό) σύστημα, η απενεργοποίηση των διακοπών της μιας CPU δεν εμποδίζει τις άλλες να παρεμβαίνουν στις λειτουργίες που εκτελεί η πρώτη CPU. Επομένως, χρειάζονται πιο σύνθετες μέθοδοι. Μεταβλητές κλειδώματος Σε μια δεύτερη προσπάθεια, ας αναζητήσουμε μια λύση μέσω λογισμικού. Ας θεωρήσουμε μια απλή, κοινόχρηστη μεταβλητή (μεταβλητή κλειδώματος lock variable) με αρχική τιμή 0. Όταν μια διεργασία θέλει να μπει στην κρίσιμη περιοχή της, ελέγχει πρώτα τη μεταβλητή αυτή. Αν έχει τιμή 0, τότε την αλλάζει σε 1 και μπαίνει στην κρίσιμη περιοχή. Αν όμως η τιμή αυτή είναι ήδη 1, τότε η διεργασία περιμένει μέχρι να γίνει πάλι 0. Συνεπώς, το 0 σημαίνει ότι καμία διεργασία δε βρίσκεται στην κρίσιμη περιοχή της, ενώ το 1 ότι κάποια διεργασία βρίσκεται στην κρίσιμη περιοχή της. Δυστυχώς, η συγκεκριμένη ιδέα περιέχει το ίδιο ακριβώς μοιραίο ψεγάδι που παρατηρήσαμε στον κατάλογο παροχέτευσης. Έστω ότι μια διεργασία διαβάζει τη μεταβλητή κλειδώματος και διαπιστώνει ότι περιέχει την τιμή 0. Πριν την αλλάξει σε 1, μια άλλη διεργασία χρονοπρογραμματίζεται, εκτελείται, και θέτει στη μεταβλητή την τιμή 1. Μόλις η πρώτη διεργασία επανεκτελείται, θέτει εκ νέου την τιμή 1 στη μεταβλητή και τελικά οι δύο διεργασίες βρίσκονται ταυτόχρονα στην κρίσιμη περιοχή τους. Ίσως να σκεφθήκατε ότι θα μπορούσαμε να παρακάμψουμε αυτό το πρόβλημα διαβάζοντας πρώτα την τιμή της μεταβλητής κλειδώματος και στη συνέχεια ελέγχοντας την τιμή αυτή πάλι αμέσως πριν την αλλάξουμε, αλλά ούτε αυτή η μέθοδος βοηθάει. Ο συναγωνισμός τώρα θα συμβεί αν η δεύτερη διεργασία τροποποιήσει τη μεταβλητή κλειδώματος αμέσως μόλις η πρώτη ολοκληρώσει το δεύτερο έλεγχό της. Αυστηρή εναλλαγή Μια τρίτη προσέγγιση στο πρόβλημα του αμοιβαίου αποκλεισμού παρουσιάζεται στην Εικόνα Αυτό το τμήμα προγράμματος, όπως και όλα σχεδόν τα υπόλοιπα στο βιβλίο, είναι γραμμένο στη γλώσσα προγραμματισμού C. Η γλώσσα αυτή επιλέχθηκε επειδή τα

25 ΕΝ. 2.3 ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ 167 πραγματικά λειτουργικά συστήματα γράφονται σχεδόν πάντα σε C (ή κάποιος φορές σε C++), ενώ η χρήση άλλων γλωσσών όπως οι Java, Modula 3, και Pascal είναι σπανιότατη. Η C είναι ισχυρότατη, αποδοτική, και προβλέψιμη, ιδιότητες κρίσιμες για τη γραφή των λειτουργικών συστημάτων. Η Java, για παράδειγμα, δεν είναι προβλέψιμη καθώς μπορεί να παρουσιάσει έλλειψη μνήμης σε κάποια κρίσιμη στιγμή και να χρειάζεται κλήση της περισυλλογής απορριμμάτων (garbage collector) για την απελευθέρωση μνήμης σε εντελώς ακατάλληλη χρονική στιγμή. Αυτό δεν μπορεί να συμβεί στη C επειδή στη γλώσσα αυτή δεν υπάρχει η έννοια της περισυλλογής απορριμμάτων. Στο (Prechelt, 2000) θα βρείτε μια ποσοτική σύγκριση των γλωσσών C, C++, Java και τεσσάρων ακόμη. while (TRUE) { while (TRUE) { while (turn!= 0) /* βρόχος */; while (turn!= 1) /* βρόχος */; critical_region(); critical_region(); turn = 1; turn = 0; noncritical_region(); noncritical_region(); } } (α) (β) Εικόνα Μια προτεινόμενη λύση στο πρόβλημα των κρίσιμων περιοχών. (α) Διεργασία 0. (β) Διεργασία 1. Και στις δύο περιπτώσεις, προσέξτε τα ελληνικά ερωτηματικά (;) που τερματίζουν τις εντολές while. Στην Εικόνα 2-23, η ακέραια μεταβλητή turn έχει αρχική τιμή 0 και παρακολουθεί ποια διεργασία έχει σειρά να μπει στην κρίσιμη περιοχή της και να εξετάσει ή να ενημερώσει την κοινόχρηστη μνήμη. Αρχικά η διεργασία 0 ελέγχει την turn, βρίσκει ότι έχει τιμή 0, και μπαίνει στην κρίσιμη περιοχή της. Η διεργασία 1 βρίσκει επίσης ότι η μεταβλητή αυτή έχει τιμή 0 και περιμένει σε ένα βρόχο, ελέγχοντας συνεχώς την turn μέχρι να δει ότι αυτή πήρε την τιμή 1. Ο συνεχής έλεγχος μιας μεταβλητής μέχρι αυτή να πάρει μια συγκεκριμένη τιμή ονομάζεται αναμονή με απασχόληση (busy waiting). Συνήθως πρέπει να αποφεύγεται επειδή σπαταλάει χρόνο της CPU. Η αναμονή με απασχόληση χρησιμοποιείται μόνον όταν υπάρχει σχετική βεβαιότητα ότι η αναμονή θα είναι σύντομη. Το κλείδωμα που χρησιμοποιεί αναμονή με απασχόληση λέγεται κλείδωμα περιστροφής (spin lock). Όταν η διεργασία 0 εγκαταλείψει την κρίσιμη περιοχή, αλλάζει την τιμή της turn σε 1, ε- πιτρέποντας έτσι στη διεργασία 1 να μπει στη δική της κρίσιμη περιοχή. Υποθέστε ότι η διεργασία 1 ολοκληρώνει γρήγορα την κρίσιμη περιοχή της, ώστε και οι δύο διεργασίες να βρίσκονται στη μη κρίσιμη περιοχή τους ενώ η turn έχει την τιμή 0. Τώρα η διεργασία 0 εκτελεί πολύ γρήγορα το βρόχο της, και βγαίνει από την κρίσιμη περιοχή της δίνοντας στην turn την τιμή 1. Στο σημείο αυτό, η turn έχει την τιμή 1 και οι δύο διεργασίες εκτελούνται στη μη κρίσιμη περιοχή τους. Ξαφνικά, η διεργασία 0 ολοκληρώνει τη μη κρίσιμη περιοχή της και επανέρχεται στην αρχή του βρόχου. Δυστυχώς, δεν επιτρέπεται να μπει αμέσως στην κρίσιμη περιοχή της, αφού η μεταβλητή turn έχει την τιμή 1 και η διεργασία 1 είναι στη μη κρίσιμη περιοχή της. Περιμένει λοιπόν στο βρόχο while, μέχρι η διεργασία 1 να αλλάξει την τιμή της turn σε 0. Με άλλα λόγια, η αυστηρή εναλλαγή δεν ενδείκνυται όταν η μία από τις δύο διεργασίες είναι πολύ βραδύτερη από την άλλη.

26 168 ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΚΕΦ.2 Η κατάσταση αυτή παραβαίνει την τρίτη συνθήκη που θέσαμε προηγουμένως: η διεργασία 0 μπλοκάρεται από διεργασία που βρίσκεται στη μη κρίσιμη περιοχή της. Επιστρέφοντας στο θέμα του καταλόγου παροχέτευσης που περιγράψαμε σε προηγούμενη ενότητα, αν αντιστοιχίσουμε την κρίσιμη περιοχή με την ανάγνωση και την εγγραφή στον κατάλογο παροχέτευσης, η διεργασία 0 δεν καταφέρνει να τυπώσει ένα ακόμη αρχείο επειδή η διεργασία 1 κάνει κάτι άλλο. Στην πραγματικότητα, η λύση αυτή προϋποθέτει την αυστηρή εναλλαγή των διεργασιών, όσο αφορά την είσοδο στις κρίσιμες περιοχές τους, όπως για παράδειγμα στην παροχέτευση αρχείων. Δε θα επιτραπεί σε καμία να παροχετεύσει δύο αρχεία στη σειρά. Παρόλο που ο αλγόριθμος αυτός αποφεύγει όλες τις συνθήκες συναγωνισμού, δεν αποτελεί σοβαρή υποψήφια λύση επειδή παραβιάζει τη συνθήκη 3. Η λύση του Peterson Συνδυάζοντας την ιδέα της εναλλαγής στην εκτέλεση των διεργασιών με αυτή των μεταβλητών κλειδώματος, ο Ολλανδός μαθηματικός Τ. Dekker ήταν ο πρώτος θεωρητικός που επινόησε λύση μέσω λογισμικού για το πρόβλημα του αμοιβαίου αποκλεισμού, η οποία μάλιστα δεν προϋποθέτει αυστηρή εναλλαγή. Για τη μελέτη του αλγορίθμου του Dekker μπορείτε να ανατρέξετε στο (Dijkstra, 1965). Το 1981, ο G. L. Peterson ανακάλυψε έναν απλούστερο τρόπο για την επίτευξη αμοιβαίου αποκλεισμού, κάνοντας παρωχημένη τη λύση του Dekker. Ο αλγόριθμος του Peterson παρουσιάζεται στην Εικόνα Ο αλγόριθμος αυτός αποτελείται από δύο διαδικασίες γραμμένες σε γλώσσα ANSI C, πράγμα που σημαίνει ότι πρέπει να περιλαμβάνονται στον κώδικα όλα τα πρωτότυπα συναρτήσεων (function prototypes) για όλες τις συναρτήσεις που ορίζονται και χρησιμοποιούνται. Για να κερδίσουμε όμως χώρο, θα παραλείψουμε τα πρωτότυπα τόσο στο επόμενο παράδειγμα όσο και σε αυτά που θα ακολουθήσουν. Πριν χρησιμοποιήσει τις κοινόχρηστες μεταβλητές (δηλαδή πριν μπει στην κρίσιμη περιοχή της), κάθε διεργασία καλεί την enter_region με παράμετρο τον αριθμό της, 0 ή 1. Η κλήση αυτή θα αναγκάσει τη διεργασία να περιμένει μέχρι να εξασφαλιστεί η ασφαλής είσοδος στην κρίσιμη περιοχή της. Αφού τελειώσει την εργασία της με τις κοινόχρηστες μεταβλητές, η διεργασία καλεί τη leave_region για να γνωστοποιήσει ότι τελείωσε και να επιτρέψει στην άλλη διεργασία να μπει στην κρίσιμη περιοχή της, αν βέβαια εκείνη θέλει. Ας δούμε τώρα πώς λειτουργεί αυτή η λύση. Αρχικά καμία διεργασία δε βρίσκεται στην κρίσιμη περιοχή της. Η διεργασία 0 καλεί την enter_region. Εκδηλώνει το ενδιαφέρον της να μπει στην κρίσιμη περιοχή δίνοντας στο αντίστοιχο στοιχείο του πίνακα interested την τιμή TRUE και στη μεταβλητή turn την τιμή 0. Εφόσον η διεργασία 1 δεν ενδιαφέρεται, η enter_region επιστρέφει αμέσως. Αν η διεργασία 1 καλέσει αργότερα με τη σειρά της την enter_region, θα περιμένει μέχρι το στοιχείο interested[0] να γίνει FALSE, γεγονός που συμβαίνει μόνον όταν η διεργασία 0 καλέσει τη leave_region για να βγει από την κρίσιμη περιοχή της. Ας εξετάσουμε τώρα την περίπτωση στην οποία οι δύο διεργασίες καλούν σχεδόν ταυτόχρονα την enter_region. Προφανώς θα αποθηκεύσουν και οι δύο τον αριθμό τους στη μεταβλητή turn. Σε αυτή τη μεταβλητή θα παραμείνει όμως ο αριθμός που αποθηκεύτηκε τελευταίος, ενώ αυτός που αποθηκεύτηκε πρώτος θα αντικατασταθεί και θα χαθεί. Υποθέστε ότι η διεργασία 1 είναι η τελευταία που αποθηκεύει και, συνεπώς, η turn έχει τιμή 1. Όταν φτά-

27 ΕΝ. 2.3 ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ 169 σουν και οι δύο διεργασίες στην εντολή while, η διεργασία 0 την εκτελεί μηδέν φορές και μπαίνει αμέσως στην κρίσιμη περιοχή της. Η διεργασία 1 όμως επαναλαμβάνει συνεχώς την εντολή και δεν μπαίνει στην κρίσιμη περιοχή της μέχρι να βγει από το δικό της η διεργασία 0. #define FALSE 0 #define TRUE 1 #define Ν 2 /* το πλήθος των διεργασιών */ int turn; /* ποια διεργασία έχει σειρά; */ int interested[n]; /* όλες οι τιμές αρχικά 0 (FALSE) */ void enter_region(int process); /* η process παίρνει τις τιμές 0 και 1 */ { int other; /* ο αριθμός της άλλης διεργασίας */ } other = 1 process; /* n άλλη διεργασία */ interested[process] = TRUE; /* εκδήλωση ενδιαφέροντος */ turn = process; /* απόδοση τιμής στη σημαία */ while (turn == process && interested[other] == TRUE) /* εντολή απραξίας */; void leave-region (int process) /* process: διεργασία που αποχωρεί */ { interested[process] = FALSE; /* γνωστοποίηση εξόδου από κρίσιμη περιοχή */ } Εικόνα Η λύση του Peterson για την επίτευξη του αμοιβαίου αποκλεισμού. Η εντολή TSL Ας δούμε τώρα μια πρόταση που απαιτεί μια μικρή συνδρομή από το υλικό. Μερικοί υπολογιστές, και ειδικά αυτοί που σχεδιάζονται με πρόβλεψη για πολλούς επεξεργαστές, διαθέτουν μια εντολή όπως η TSL REGISTER,LOCK που σημαίνει "Έλεγξε και δώσε την τιμή 1 στο κλείδωμα" (Test and Set Lock) και λειτουργεί ως εξής: Διαβάζει τα περιεχόμενα της λέξης μνήμης lock, τα τοποθετεί στον καταχωρητή REGISTER, και αποθηκεύει μια μη μηδενική τιμή στη διεύθυνση μνήμης lock. Οι πράξεις της ανάγνωσης και της αποθήκευσης στη λέξη αυτή είναι αδιαίρετες, δηλαδή εξασφαλίζεται ότι κανείς άλλος επεξεργαστής δεν μπορεί να προσπελάσει τη λέξη αυτή μέχρι την ολοκλήρωση της εντολής. Η CPU που εκτελεί αυτή την εντολή κλειδώνει το δίαυλο μνήμης (memory bus), ώστε να αποτρέψει την προσπέλαση της λέξης μνήμης από άλλες CPU μέχρι να τελειώσει την εργασία της. Είναι σημαντικό να σημειώσουμε ότι το κλείδωμα του διαύλου της μνήμης είναι πολύ διαφορετικό από την απενεργοποίηση των διακοπών. Η απενεργοποίηση των διακοπών και στη συνέχεια η ανάγνωση μιας λέξης της μνήμης ακολουθούμενη από μια εγγραφή δεν εμποδίζει ένα δεύτερο επεξεργαστή, που βρίσκεται στον ίδιο δίαυλο, να προσπελάσει τη λέξη μεταξύ

28 170 ΔΙΕΡΓΑΣΙΕΣ ΚΑΙ ΝΗΜΑΤΑ ΚΕΦ.2 της ανάγνωσης και της εγγραφής. Για την ακρίβεια, η απενεργοποίηση των διακοπών στον επεξεργαστή 1 δεν έχει καμία επίδραση στον επεξεργαστή 2. Ο μόνος τρόπος να κρατήσουμε τον επεξεργαστή 2 έξω από τη μνήμη μέχρι ο επεξεργαστής 1 να ολοκληρώσει το έργο του είναι να κλειδώσουμε το δίαυλο, πράγμα που απαιτεί μια ειδική ιδιότητα του υλικού (βασικά, μια γραμμή στο δίαυλο που θα επιβεβαιώνει ότι ο δίαυλος είναι κλειδωμένος και μη διαθέσιμος σε άλλους επεξεργαστές εκτός αυτού που τον κλείδωσε). Για να εφαρμόσουμε την εντολή TSL, θα χρησιμοποιήσουμε την κοινόχρηστη μεταβλητή lock η οποία βοηθάει στο συντονισμό των προσβάσεων στην κοινόχρηστη μνήμη. Όταν η lock έχει την τιμή 0, οποιαδήποτε διεργασία μπορεί να της δώσει την τιμή 1 χρησιμοποιώντας την εντολή TSL και μετά να διαβάσει ή να γράψει στην κοινόχρηστη μνήμη. Όταν τελειώσει το έργο της, η διεργασία ξαναδίνει την τιμή 0 στη lock, με μια απλή εντολή move. Πώς μπορεί να χρησιμοποιηθεί η εντολή αυτή για να αποτρέψει την ταυτόχρονη είσοδο δύο διεργασιών στην κρίσιμη περιοχή τους; Η λύση δίνεται στην Εικόνα Στο παράδειγμα αυτό παρουσιάζεται μια υπορουτίνα τεσσάρων εντολών γραμμένη σε φανταστική (αλλά τυπική) γλώσσα μηχανής. Η πρώτη εντολή αντιγράφει το περιεχόμενο της lock στον καταχωρητή και δίνει την τιμή 1 στη lock. Μετά, η παλιά τιμή συγκρίνεται με το 0. Αν δεν είναι μηδέν, αν δηλαδή η lock έχει πάρει τιμή από άλλη διεργασία, το πρόγραμμα επιστρέφει στην αρχή και ελέγχει τη lock ξανά. Αργά η γρήγορα, η μεταβλητή αυτή θα πάρει την τιμή 0 (όταν η διεργασία που βρίσκεται προς το παρόν στην κρίσιμη περιοχή της βγει από αυτή), και τότε η υπορουτίνα θα επιστρέψει έχοντας ενεργοποιήσει το κλείδωμα. Η άρση του κλειδώματος από το πρόγραμμα είναι απλή, μια και αρκεί η αποθήκευση της τιμής 0 στη μεταβλητή lock. Δε χρειάζονται ειδικές εντολές συγχρονισμού. enter_region: TSL REGISTER, LOCK Αντιγραφή του κλειδώματος στον καταχωρητή και ανάθεση της τιμής 1 στη lock CMP REGISTER,#0 Είχε η lock την τιμή 0; JNE enter_region Αν η lock είχε μη μηδενική τιμή, της είχε δοθεί μη μηδενική τιμή, άρα επανάληψη του βρόχου RET Επιστροφή στην καλούσα διεργασία είσοδος στην κρίσιμη περιοχή leave_region: MOVE LOCK,#0 RET Αποθήκευση της τιμής 0 στη lock Επιστροφή στην καλούσα διεργασία Εικόνα Είσοδος και έξοδος από την κρίσιμη περιοχή, με τη χρήση της εντολής TSL. Μια λύση στο πρόβλημα της κρίσιμης περιοχής είναι πλέον σαφής. Πριν μπει μια διεργασία στην κρίσιμη περιοχή της, καλεί την enter_region η οποία εκτελεί αναμονή με απασχόληση μέχρι να ελευθερωθεί το κλείδωμα. μετά, αποκτά τον έλεγχο του κλειδώματος και επιστρέφει. Με το τέλος των εργασιών στην κρίσιμη περιοχή, η διεργασία καλεί τη leave_region, η οποία δίνει την τιμή 0 στη lock. Όπως και όλες οι λύσεις που βασίζονται στη μέθοδο της κρίσιμης περιοχής, οι διεργασίες οφείλουν να καλούν τις υπορουτίνες enter_region και leave_region την κατάλληλη στιγμή, προκειμένου να εξασφαλιστεί η ομαλή λειτουργία της μεθόδου. Αν κάποια διεργασία κάνει ζαβολιά, ο αμοιβαίος αποκλεισμός θα αποτύχει.

29 ΕΝ. 2.3 ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ 171 Μια εναλλακτική εντολή αντί για την TSL είναι η XCHG, η οποία ανταλλάσσει τα περιεχόμενα δύο θέσεων αδιαίρετα (είναι όπως και η TSL αδιαίρετη εντολή, δηλαδή εκτελεί τις δύο ενέργειές της χωρίς να διακόπτεται), για παράδειγμα, ενός καταχωρητή και μιας λέξης μνήμης. Ο κώδικας παρουσιάζεται στην Εικόνα 2-26 και, όπως βλέπετε, βασικά είναι ίδιος με τη λύση της εντολής TSL. Όλες οι CPU Intel x86 χρησιμοποιούν την εντολή XCHG για συγχρονισμό χαμηλού επιπέδου. enter_region: MOVE REGISTER,#1 XCHG REGISTER,LOCK CMP REGISTER,#0 JNE enter_region RET leave_region: MOVE LOCK,#0 RET Τιμή 1 στον καταχωρητή Ανταλλαγή περιεχομένων καταχωρητή και μεταβλητής lock Ήταν η lock μηδέν; Αν δεν ήταν μηδέν, είχε πάρει μη μηδενική τιμή, άρα βρόχος Επιστροφή στον καλούντα είσοδος στην κρίσιμη περιοχή Αποθήκευση της τιμής 0 στη lock Επιστροφή στην καλούσα διεργασία Εικόνα Είσοδος και έξοδος από την κρίσιμη περιοχή με την εντολή XCHG Λήθαργος και αφύπνιση Τόσο η λύση του Peterson όσο και η λύση που χρησιμοποιεί τις εντολές TSL ή XCHG είναι σωστές, αλλά παρουσιάζουν το ελάττωμα ότι χρειάζονται αναμονή με απασχόληση. Ουσιαστικά, οι δύο αυτές λύσεις λειτουργούν ως εξής: όταν μια διεργασία θέλει να μπει στην κρίσιμη περιοχή της, ελέγχει αν αυτό επιτρέπεται. Αν δεν επιτρέπεται, η διεργασία εκτελεί συνεχώς ένα βρόχο αναμένοντας να απελευθερωθεί η είσοδος στην κρίσιμη περιοχή. Αυτή η προσέγγιση περιλαμβάνει όχι μόνο σπατάλη χρόνου της CPU αλλά και απρόβλεπτες παρενέργειες. Σκεφθείτε έναν υπολογιστή που εκτελεί δύο διεργασίες, την Υ που έχει υψηλή προτεραιότητα και τη Χ που έχει χαμηλή. Οι κανόνες χρονοπρογραμματισμού επιβάλλουν την εκτέλεση της Υ μόλις αυτή βρεθεί σε κατάσταση ετοιμότητας. Σε κάποια χρονική στιγμή και ενώ η Χ βρίσκεται σε κρίσιμο τμήμα, η Υ είναι έτοιμη να εκτελεστεί (για παράδειγμα, μετά από την ολοκλήρωση μιας λειτουργίας εισόδου/εξόδου). Στη συνέχεια, η διεργασία Υ ξεκινάει αναμονή με απασχόληση αλλά, μια και η Χ δε χρονοπρογραμματίζεται ποτέ όταν εκτελείται η Υ, η Χ δεν αποκτάει ποτέ τη δυνατότητα να εγκαταλείψει το κρίσιμο τμήμα της και συνεπώς η Υ επαναλαμβάνει αδιάκοπα το βρόχο αναμονής, χωρίς αποτέλεσμα. Η κατάσταση αυτή αναφέρεται μερικές φορές με τον όρο πρόβλημα αντιστροφής προτεραιοτήτων (priority inversion problem). Ας δούμε τώρα μερικές θεμελιώδεις αρχές της διαδιεργασιακής επικοινωνίας, οι οποίες μπλοκάρουν τις διεργασίες αντί να σπαταλούν το χρόνο της CPU όταν αυτές δεν επιτρέπεται να μπουν στις κρίσιμες περιοχές τους. Μία από τις απλούστερες αφορά το ζεύγος κλήσεων sleep (λήθαργος) και wakeup (αφύπνιση). Η sleep είναι μια κλήση συστήματος που μπλοκάρει την καλούσα διεργασία, πράγμα που σημαίνει ότι αυτή αναστέλλεται μέχρι κάποια άλλη διεργασία να την ξυπνήσει. Η κλήση wakeup διαθέτει μία παράμετρο, τη διεργασία που πρόκειται να ξυπνήσει. Εναλλακτικά, και οι δύο κλήσεις συντάσσονται με μία παράμετρο η ο-

30

Περιεχόµενα ΠΡΟΛΟΓΟΣ 23

Περιεχόµενα ΠΡΟΛΟΓΟΣ 23 Περιεχόµενα ΠΡΟΛΟΓΟΣ 23 1 ΕΙΣΑΓΩΓΗ 27 1.1 ΤΙ ΕΙΝΑΙ ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ; 30 1.1.1 Το λειτουργικό σύστηµα ως επεκτεταµένη µηχανή 30 1.1.2 Το λειτουργικό σύστηµα ως διαχειριστής πόρων 31 1.2 Η ΙΣΤΟΡΙΑ

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει

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

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

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

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

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

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

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

Αδιέξοδα (Deadlocks)

Αδιέξοδα (Deadlocks) Αδιέξοδα (Deadlocks) Περίληψη Αδιέξοδα (deadlocks) Τύποι πόρων (preemptable non preemptable) Μοντελοποίηση αδιεξόδων Στρατηγικές Στρουθοκαµηλισµός (ostrich algorithm) Ανίχνευση και αποκατάσταση (detection

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

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

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

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

Συστήματα πολυμέσων. Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός

Συστήματα πολυμέσων. Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός Συστήματα πολυμέσων Εισαγωγή Υλικό συστημάτων πολυμέσων Λογισμικό συστημάτων πολυμέσων Συστήματα πραγματικού χρόνου Χρονοπρογραμματισμός Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 03-1 Εισαγωγή

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

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

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

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

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

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

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

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

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

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

2 Αποδοτική εργασία στα Windows Vista 103

2 Αποδοτική εργασία στα Windows Vista 103 Περιεχόμενα Οι συγγραφείς... 11 Εισαγωγή στα Windows Vista... 13 Οι εκδόσεις των Windows Vista...14 Ας ξεκινήσουμε!...18 Το πρόγραμμα πιστοποίησης επιχειρήσεων της Microsoft... 19 Πληροφορίες για νέους

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

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

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

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

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

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

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

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

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1 Εισαγωγή Υλισµικό Λογισµικό Αρχές σχεδίασης ιαφάνεια Κλιµάκωση Παρεχόµενες υπηρεσίες Μοντέλο πελάτη εξυπηρετητή Μοντέλο πελάτη εξυπηρετητή τριών επιπέδων Κατανοµή επεξεργασίας Κατανεµηµένα Συστήµατα 01-1

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

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi Εικονική Μνήµη Κεφάλαιο 8 Υλικό και δοµές ελέγχου Οι αναφορές στην µνήµη υπολογίζονται δυναµικά κατά την εκτέλεση Ηδιεργασίαχωρίζεταισετµήµατα τα οποία δεν απαιτείται να καταλαµβάνουν συνεχόµενες θέσεις

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19

Περιεχόµενα. Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional. Ευχαριστίες... 17 Εισαγωγή... 19 Περιεχόµενα Ευχαριστίες... 17 Εισαγωγή... 19 Μέρος I Βασικά στοιχεία των Microsoft Windows XP Professional 1 Εισαγωγή στη διαχείριση των Microsoft Windows XP Professional... 25 Ξεκίνηµα µε τα Windows XP

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

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

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

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

Τα περιεχόμενα με μια ματιά

Τα περιεχόμενα με μια ματιά Τα περιεχόμενα με μια ματιά Κεφάλαιο 1 Ο κόσμος αλλάζει με τη βοήθεια της τεχνολογίας 2 Κεφάλαιο 2 Εξέταση του υπολογιστή: Από τι αποτελείται 28 Κεφάλαιο 3 Χρήση του Internet: Πώς θα εκμεταλλευτούμε καλύτερα

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

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

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

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

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

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

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

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

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

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

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

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

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

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

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

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

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

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

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

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

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

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

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

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

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

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

6. Α ΙΕΞΟ Α Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 6.1 ΠΟΡΟΙ (1/2) Υπάρχουν δύο τύποι πόρων σε υπολογιστικά συστήµατα: προεκχωρήσιµοι πόροι (preemptable resources):

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

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

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

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

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

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

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

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11

Περιεχόμενα. Μέρος 1: Βασικές έννοιες της πληροφορικής... 13. Πρόλογος... 11 Περιεχόμενα Πρόλογος... 11 Μέρος 1: Βασικές έννοιες της πληροφορικής... 13 1.1 Windows XP... 15 1.2 Επιφάνεια εργασίας... 19 1.3 Γραμμή εργασιών... 24 1.4 Χειρισμός παραθύρων... 30 1.5 Μενού... 36 1.6

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

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

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

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

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

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

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

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

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται

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

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

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

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012

ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012 ΜΑΘΗΜΑ / ΤΑΞΗ : ΑΕΠΠ / Γ ΛΥΚΕΙΟΥ-ΘΕΡΙΝΑ ΣΕΙΡΑ: 1 η ΗΜΕΡΟΜΗΝΙΑ: 09/09/2012 ΘΕΜΑ Α Α1. Δίνονται τα παρακάτω τμήματα αλγορίθμου σε φυσική γλώσσα. 1. Αν το ποσό των αγορών(ποσο_αγορων) ενός πελάτη είναι μεγαλύτερο

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

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

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

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

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

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

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

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

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

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

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

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

Ανάπτυξη και Σχεδίαση Λογισμικού

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Βασικά Στοιχεία Το αλφάβητο της C Οι βασικοί τύποι της C Δηλώσεις μεταβλητών Είσοδος/Έξοδος Βασικές εντολές της C Αλφάβητο

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές Σκοπός του εργαστηρίου αυτού είναι η εξοικείωση με κάποιες εφαρμογές που θα μας φανούν πολύ χρήσιμες κατά τη διάρκεια του μαθήματος της Εισαγωγής στον Προγραμματισμό.

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει;

Αναδρομή. Τι γνωρίζετε για τη δυνατότητα «κλήσης» αλγορίθμων; Τι νόημα έχει; ΜΑΘΗΜΑ 7 Κλήση αλγορίθμου από αλγόριθμο Αναδρομή Σ χ ο λ ι κ ο Β ι β λ ι ο ΥΠΟΚΕΦΑΛΑΙΟ 2.2.7: ΕΝΤΟΛΕΣ ΚΑΙ ΔΟΜΕΣ ΑΛΓΟΡΙΘΜΟΥ ΠΑΡΑΓΡΑΦΟI 2.2.7.5: Κλήση αλγορίθμου από αλγόριθμο 2.2.7.6: Αναδρομή εισαγωγη

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

Περιεχόμενα. Κεφάλαιο 1 Ο κόσμος αλλάζει με τη βοήθεια της τεχνολογίας... 30. Κεφάλαιο 2 Εξέταση του υπολογιστή: Από τι αποτελείται...

Περιεχόμενα. Κεφάλαιο 1 Ο κόσμος αλλάζει με τη βοήθεια της τεχνολογίας... 30. Κεφάλαιο 2 Εξέταση του υπολογιστή: Από τι αποτελείται... Περιεχόμενα Εισαγωγή του επιμελητή......................................................................... 18 Τι καινούριο θα βρείτε σε αυτό το βιβλίο..........................................................

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

Εγγυημένη ποιότητα υπηρεσίας

Εγγυημένη ποιότητα υπηρεσίας Εγγυημένη ποιότητα υπηρεσίας Απαιτήσεις ποιότητας υπηρεσίας Μηχανισμοί κατηγοριοποίησης Χρονοπρογραμματισμός Μηχανισμοί αστυνόμευσης Ενοποιημένες υπηρεσίες Διαφοροποιημένες υπηρεσίες Τεχνολογία Πολυμέσων

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΧΕΙΜΩΝΑΣ 2009 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1 Γενική οργάνωση του υπολογιστή Ο καταχωρητής δεδομένων της μνήμης (memory data register

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 Τεχνολογία Ι Θεωρητικής Κατεύθυνσης Τεχνικών Σχολών Μάθημα : Μικροϋπολογιστές

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΘΕΜΑ 1 (Α) Σημειώστε δίπλα σε κάθε πρόταση «Σ» ή «Λ» εφόσον είναι σωστή ή λανθασμένη αντίστοιχα. 1. Τα συντακτικά λάθη ενός προγράμματος

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

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2

Παράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε Ναι Τέλος Α2 Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό

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

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

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

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝΩ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Γ ΛΥΚΕΙΟΥ ΘΕΜΑ 1 ο : Α. Να αναφέρετε ονομαστικά τις βασικές λειτουργίες (πράξεις) επί των δομών δεδομένων. Μονάδες 8 Β. Στον

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

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

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

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

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

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

Περιεχόμενα. Περιεχόμενα

Περιεχόμενα. Περιεχόμενα Περιεχόμενα xv Περιεχόμενα 1 Αρχές της Java... 1 1.1 Προκαταρκτικά: Κλάσεις, Τύποι και Αντικείμενα... 2 1.1.1 Βασικοί Τύποι... 5 1.1.2 Αντικείμενα... 7 1.1.3 Τύποι Enum... 14 1.2 Μέθοδοι... 15 1.3 Εκφράσεις...

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

Οδηγός των Ελληνικών Microsoft WINDOWS 7

Οδηγός των Ελληνικών Microsoft WINDOWS 7 Οδηγός των Ελληνικών Microsoft WINDOWS 7 Chris Fehily Απόδοση: Αγαμέμνων Μήλιος Μηχανικός Λογισμικού Εκδόσεις: Μ. Γκιούρδας Ζωοδόχου Πηγής 70-74 - Τηλ.: 210 3630219 106 81 Αθήνα, 2010 www.mgiurdas.gr Τίτλος

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

Μάθημα 4.7 Θύρες περιφερειακών

Μάθημα 4.7 Θύρες περιφερειακών Μάθημα 4.7 Θύρες περιφερειακών - Εισαγωγή - Η σειριακή θύρα - Η παράλληλη θύρα - Οι θύρες πληκτρολογίου και ποντικιού τύπου PS/2 - Ο διάδρομος USB Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις

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

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

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

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

2. ΙΕΡΓΑΣΙΕΣ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 2.1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ (1/11) 2.1.1 Το µοντέλο διεργασίας Για την επίτευξη ψευδοπαραλληλισµού (pseudoparallelism)

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

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά

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

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα

2. Αλγόριθμοι, δομές δεδομένων και πολυπλοκότητα 1. Εισαγωγή 1.1 O Υπολογιστής ως εργαλείο μηχανικού 1.2 Η Επιστήμη των υπολογιστών 1.3 Ιστορικό Σημείωμα 1.4 Ο υπολογιστής μηχανή επεξεργασίας ψηφιακής πληροφορίας 1.5 Ψηφιοποίηση πληροφορίας 1.5.1 ψηφιοποίηση

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

Πολυπύρηνοι επεξεργαστές Multicore processors

Πολυπύρηνοι επεξεργαστές Multicore processors Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας

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

Έλεγχος Ταυτοχρονισμού

Έλεγχος Ταυτοχρονισμού Έλεγχος Ταυτοχρονισμού Κεφάλαιο 17 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke Ελληνική Μετάφραση: Γεώργιος Ευαγγελίδης 1 Συγκρουσιακώς Σειριοποιήσιμα Χρονοπρογράμματα Δυο χρονοπρογράμματα

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

Προγραµµατισµός Η/Υ. Μέρος2

Προγραµµατισµός Η/Υ. Μέρος2 Προγραµµατισµός Η/Υ Μέρος2 Περιεχόμενα Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής Αλγόριθμος Ψευδοκώδικας Παραδείγματα Αλγορίθμων Γλώσσες προγραμματισμού 2 Επανάληψη Βασικών Σύμβολων Διαγραμμάτων Ροής

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

Περιεχόµενα. I Βασικές Γνώσεις 1

Περιεχόµενα. I Βασικές Γνώσεις 1 Περιεχόµενα I Βασικές Γνώσεις 1 1 Μοντελοποίηση Προγραµµάτων 3 1.1 Ψευδογλώσσα....................... 6 1.2 Διαγράµµατα Ροής..................... 6 1.3 Παραδείγµατα σε Ψευδογλώσσα και Διαγράµµατα Ροής.

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

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

Κοινή χρήση πόρων με τα Windows XP

Κοινή χρήση πόρων με τα Windows XP Κοινή χρήση πόρων με τα Windows XP Α. Κοινή χρήση αρχείων και φακέλων Θα μάθετε: Να θέτετε σε κοινή χρήση ένα αρχείο ή ένα φάκελο του υπολογιστή με τα Windows XP. Να θέτετε σε κοινή χρήση στο δίκτυο μουσική,

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

Κακόβουλο Λογισμικό Ηλιάδης Ιωάννης

Κακόβουλο Λογισμικό Ηλιάδης Ιωάννης Κακόβουλο Λογισμικό Ηλιάδης Ιωάννης Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Πανεπιστήμιο Αιγαίου jiliad@aegean.gr Αθήνα, Ιούλιος 2004 Η έννοια του Κακόβουλου Λογισμικού Το Λογισμικό

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

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

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

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής. Ακαδημαϊκό Έτος 2007-2008

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής. Ακαδημαϊκό Έτος 2007-2008 Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Ακαδημαϊκό Έτος 2007-2008 ΠΑΡΑΔΟΤΕΟ: Έκθεση Προόδου Υλοποίησης του Μαθήματος Εισαγωγή στην Επιστήμη των Υπολογιστών Διδάσκοντες: Θ.Ανδρόνικος - Μ.Στεφανιδάκης Περιεχόμενα

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

Linux Terminal Server Project

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

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

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...

Περιεχόμενα. Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων... Περιεχόμενα Περιβάλλον ηλεκτρονικού υπολογιστή...9 Επιφάνεια εργασίας...12 Διαχείριση αρχείων...15 Ιοί Η/Υ...21 Διαχείριση εκτυπώσεων...22 Περιβάλλον ηλεκτρονικού υπολογιστή...23 Επιφάνεια εργασίας...26

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

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

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

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

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

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

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

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr

Δομές Δεδομένων. Λουκάς Γεωργιάδης. http://www.cs.uoi.gr/~loukas/courses/data_structures/ email: loukas@cs.uoi.gr Δομές Δεδομένων http://www.cs.uoi.gr/~loukas/courses/data_structures/ Λουκάς Γεωργιάδης email: loukas@cs.uoi.gr Αλγόριθμος: Μέθοδος για την επίλυση ενός προβλήματος Δεδομένα: Σύνολο από πληροφορίες που

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

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

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

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

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

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

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

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

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

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

Νήµατα. Πολύ σηµαντικό

Νήµατα. Πολύ σηµαντικό Νήµατα Πολύ σηµαντικό 1 Νήµατα (συν.) Σηµαντικό 2 Νήµατα vs ιεργασίες Νήµατα ιεργασίες Χώρος εδοµένων Περιγραφητές Αρχείων fork exit exec Σήµατα Κοινός. Ότι αλλάζει το 1 νήµα το βλέπουν/ αλλάζουν και τα

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