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

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

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

Transcript

1 Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:11 Δρ. Μηνάς Δασυγένης Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών arch.icte.uowm.gr/mdasyg

2 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα του Πανεπιστημίου Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 2

3 Περιεχόμενα 1. Σκοπός της άσκησης Παραδοτέα Επίτευξη αμοιβαίου αποκλεισμού με τη χρήση σημαφόρων Οι σημαφόροι SystemV Το παραδοτέο C Το παραδοτέο C Οι σημαφόροι POSIX Το παραδοτέο C Διαχείριση αρχείων Το παραδοτέο C Τα παραδοτέα C5 έως C Το πρόγραμμα moss-memory Τα αρχεία commands και memory.conf Ερωτήσεις S1 έως S

4 1. Σκοπός της άσκησης Αμοιβαίος αποκλεισμός με σημαφόρους SystemV *semget(), semop(), semctl()) και POSIX (sem_init(), sem_wait(), sem_post(), sem_destroy()). Διαχείριση αρχείων (open(), close(), read(), write(), stat(), lseek(), unlink(), basename(), mkstemp(), strcat()). Προσομοιωτής μνήμης MOSS-memory. 2. Παραδοτέα (A + S) ερωτήσεις (C) 7 ασκήσεις 3. Επίτευξη αμοιβαίου αποκλεισμού με τη χρήση σημαφόρων Οι σημαφόροι είναι ένας μηχανισμός συγχρονισμού διεργασιών για την αποκλειστική χρήση κοινών πόρων όπως μνήμης ή αρχείων. Οι σημαφόροι είναι ειδικού τύπου ακέραιες μεταβλητές με τις οποίες συνδέονται κάποιες ατομικές λειτουργίες (δηλαδή όλες οι εντολές assembly που αντιστοιχούν εκτελούνται αδιάσπαστα από τον πυρήνα). Όταν θέλουμε να εισέλθουμε στο κρίσιμο τμήμα μιας διεργασίας (δηλαδή την πρόσβαση στο κοινό πόρο), τότε εκτελείται μια ενέργεια DOWN στον αντίστοιχο σημαφόρο. Αν ο σημαφόρος έχει τιμή 0 τότε η εντολή μπαίνει σε κατάσταση blockwait. Αν ο σημαφόρος έχει τιμή μεγαλύτερη από 0 τότε εισέρχεται στο κρίσιμο τμήμα αφού μειώσει την τιμή κατά 1. Μόλις βγει από το κρίσιμο τμήμα, τότε εκτελεί μια ενέργεια UP και στην περίπτωση που περιμένει μια διεργασία σε block-wait ενεργοποιείται και ο σημαφόρος παραμένει στο 0, ενώ αν δεν περιμένει μια διεργασία τότε η τρέχουσα τιμή αυξάνεται κατά 1. Υπάρχουν δυο είδη σημαφόρων: (α) SystemV Semaphores και (b) Posix Semaphores. 4

5 3.1 Οι σημαφόροι SystemV Οι 3 συναρτήσεις που χρησιμοποιούνται για τη διαχείριση των σημαφόρων είναι οι semget(), semop(), semctl(). Με τη semget() δημιουργείται ένας περιγραφέας σημαφόρος για να χρησιμοποιηθεί στις υπόλοιπες συναρτήσεις. Με τη semop() εκτελείται μια πράξη UP ή DOWN στον αντίστοιχο σημαφόρο. Με τη συνάρτηση semctl() ελέγχεται ο σημαφόρος και μπορεί να καταστραφεί. Η συνάρτηση δημιουργίας ενός περιγραφέα σημαφόρου semget() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α1) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α2) Η συνάρτηση εκτέλεσης μιας πράξης σε σημαφόρο semop() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α3) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α4) Η συνάρτηση ελέγχου λειτουργίας σημαφόρου semctl() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α5) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α6) *** Προσοχή: Κατά τη συγγραφή ενός προγράμματος πρέπει πάντα να ελέγχουμε την τιμή επιστροφής της κλήσης συστήματος και να σταματάμε αμέσως την εκτέλεση, αν επιστρέψει τιμή σφάλματος (που συνήθως είναι -1, αλλά θα πρέπει να το επιβεβαιώνετε από το man page). Επίσης, αν ανιχνευτεί πρόβλημα να χρησιμοποιείτε τη συνάρτηση perror() που εμφανίζει εκτός από το μήνυμα σας και επιπρόσθετες πληροφορίες, αν η κλήση συστήματος ενεργοποιεί την ειδική μεταβλητή errno, το οποίο αναγράφεται στο man page ( errno is set to indicate the error ). Τέλος, ποτέ να μην τοποθετείτε μια κλήση συστήματος χωρίς να αποθηκεύετε την τιμή επιστροφής, ακόμη και αν δεν πρόκειται να χρησιμοποιήσετε αυτή την τιμή. Αυτό συνιστάται να γίνεται για να διευκολύνεστε κατά τη διαδικασία αποσφαλμάτωσης με το gdb. *** Παράδειγμα: Καλό παράδειγμα: retvalue = semctl(...); if (retvalue == -1 ) { perror ( Parousiasthke problhma ); exit(-1);} 5

6 Κακό Παράδειγμα: if(semctl(...)==-1){printf( Parousiasthke problhma );exit(-1);} Το παραδοτέο C1 (C1) Να δημιουργήσετε δυο προγράμματα c1-nomutex.c και c1-nomutex2.c τα οποία ως διεργασία εμφανίζουν και επιδεικνύουν το πρόβλημα της πρόσβασης σε κρίσιμο τμήμα κοινής μνήμης. Συγκεκριμένα το c1-nomutex.c: Θα δημιουργεί ένα id κοινής μνήμης με την κλήση της shmget((key_t)4444, 10,0600 IPC_CREAT) *** Προσοχή: Να αντικαταστήσετε το 4444 με ένα άλλο κλειδί δικό σας, ιδιαίτερα αν εργάζεστε σε ένα λειτουργικό σύστημα που βρίσκονται πολλοί χρήστες και όλοι θα δημιουργούν περιοχές κοινής μνήμης. *** Θα προσαρτάται η κοινή μνήμη στη διεργασία με την shmat(shmid, (char *) 0, 0) Θα τοποθετεί 0 στη θέση 0 της κοινής μνήμης. Θα διαβάζει την τιμή στη θέση 0 της κοινής μνήμης και θα αναθέτει την τιμή σε μια μεταβλητή x1. Θα κάνει sleep(15). Θα τοποθετεί στη θέση 0 της κοινής μνήμης την τιμή x1 αφού αυξηθεί κατά 5. Θα εκτυπώνει την τιμή που βρίσκεται στη διεύθυνση 0. Ενώ το c1-nomutex2.c: Θα δημιουργεί ένα id κοινής μνήμης με βάση το ίδιο κλειδί με την κλήση της shmget((key_t)4444, 10,0600 IPC_CREAT) Θα προσαρτάται η κοινή μνήμη στη διεργασία με την shmat(shmid, (char *) 0, 0) Θα κάνει sleep(5). Θα αυξάνει κατά 10 τη θέση 0 της κοινής μνήμης και θα το αποθηκεύει στην ίδια θέση. Ύστερα από κάθε κλήση συνάρτησης θα γίνεται έλεγχος αν έχει εκτελεστεί σωστά και θα εκτυπώνεται είτε το μήνυμα επιτυχίας, είτε το μήνυμα αποτυχίας καθώς και το PID της διεργασίας που αναφέρει το μήνυμα. H τιμή που θα πρέπει να τυπώνεται στο τέλος θα πρέπει να είναι 5. 6

7 Εκτελέστε ταυτόχρονα και τις δυο διεργασίες (τη nomutex2 δυο φορές) αφού τις κάνετε compile με./c1-nomutex & ;./c1-nomutex2.c & ;./c1-nomutex2.c & και απαντήστε στο ερώτημα: Στις διεργασίες του C1 υπάρχει το πρόβλημα των χαμένων συναλλαγών; Αν ναι που οφείλεται αυτό; (Α7) Το παραδοτέο C2 (C2) Αντιγράψτε τα προγράμματα C1 και τροποποιήστε τα (c2-nomutex.c και c2- nomutex2.c), ώστε να αποφευχθεί το πρόβλημα των χαμένων συναλλαγών. Για να γίνει αυτό θα χρησιμοποιήσουμε αμοιβαίο αποκλεισμό μέσω σημαφόρων. Συγκεκριμένα και στα δύο προγράμματα θα προσθέσετε κώδικα που: θα δημιουργείται με το ίδιο κλειδί σημαφόρου ένα ID σημαφόρου με τη semget(). Το ένα από τα δύο προγράμματα θα αρχικοποιεί το σημαφόρο σε τιμή 1 με την κλήση union semun arguments; arguments.val=1; semctl(semid, 0, SETVAL, arguments); Δηλαδή, ότι δηλώνουμε μια μεταβλητή με όνομα arguments που είναι της δομής semun. Η δομή semun ορίζει κάποια πεδία. Ένα από αυτά είναι το πεδίο val. Τοποθετούμε σε αυτό ( arguments.val=1) την τιμή 1, δηλαδή ορίζουμε ότι η σημαφόρα θα έχει αρχική τιμή 1. Επίσης, η δεύτερη παράμετρος είναι 0, γιατί έχουμε μόνο μια σημαφόρα, οπότε αυτή παίρνει τον αριθμό 0. Αμέσως μετά την προσάρτηση της κοινής μνήμης και πριν γίνει η ανάγνωση ή η εγγραφή στην κοινή περιοχή, θα καλείται η semop(semid, &operationdown[0], 1) ενώ θα έχετε δηλώσει ότι struct sembuf operationdown[1] = {0, -1, 0}; δηλαδή ότι θα επιτελέσετε στη σημαφόρα νούμερο 0 (πρώτη παράμετρος), μια πράξη μείωσης (DOWN) κατά -1 (δεύτερη παράμετρος), χωρίς ειδικές σημαίες (τρίτη παράμετρος). Δείτε man semop για περισσότερες πληροφορίες. *** Προσοχή: Οι πίνακες operationup και operationdown πρέπει να έχουν την τιμή 0 στο πρώτο και τρίτο στοιχείο, όπως ακριβώς αναγράφεται στο εργαστηριακό φυλλάδιο. Διαφορετικά, το πρόγραμμα θα δυσλειτουργήσει. *** 7

8 Αμέσως μετά θα ακολουθούν οι υπόλοιπες ενέργειες ανάγνωσης/εγγραφής ενώ αμέσως μόλις γράφεται η θέση 0 της κοινής μνήμης θα καλείται η semop(semid,&operationup[0],1) και struct sembuf operationup[1] = {0, 1, 0}; ώστε να αυξάνεται η σημαφόρος κατά 1. Σε μια διεργασία στο τέλος να τοποθετήσετε sleep(20); semctl(semid, 0, IPC_RMID, 0); προκειμένου να καταστραφεί ο σημαφόρος και να απελευθερωθούν οι πόροι. Όταν καταστρέψετε το σημαφόρο εκτυπώστε την τρέχουσα τιμή στη θέση 0. Ύστερα από κάθε κλήση συνάρτησης θα γίνεται έλεγχος αν έχει εκτελεστεί σωστά και θα εκτυπώνεται είτε το μήνυμα επιτυχίας είτε το μήνυμα αποτυχίας καθώς και το PID της διεργασίας που αναφέρει το μήνυμα. H τιμή που θα πρέπει να τυπώνεται στο τέλος θα πρέπει να είναι 25. Εκτελέστε ταυτόχρονα και τις δυο διεργασίες (τη mutex2 δύο φορές) αφού τις κάνετε compile με./c2-mutex & ;./c2-mutex2.c & ;./c2-mutex2.c & και απαντήστε στο ερώτημα: Στις διεργασίες του C2 υπάρχει το πρόβλημα των χαμένων συναλλαγών; Αν ναι που οφείλεται αυτό; (Α8) 'Όταν εργαζόμαστε με σημαφόρους SystemV, μπορούμε να χρησιμοποιήσουμε την εντολή του ΛΣ ipcs η οποία αναφέρει όλους τους σημαφόρους και τις περιοχές κοινής μνήμης που έχουν δημιουργηθεί, μαζί με τα αναγνωριστικά, τα δικαιώματα πρόσβασης και τον ιδιοκτήτη. Τέλος, μπορούμε να χρησιμοποιήσουμε την εντολή ipcrm για να διαγράψουμε (~καταστρέψουμε) σημαφόρους ή κοινές περιοχές μνήμης που δε χρειαζόμαστε. 3.2 Οι σημαφόροι POSIX Εκτός από τους σημαφόρους SystemV παρόμοια λειτουργία μπορεί να επιτευχθεί και με τους σημαφόρους POSIX. Συνήθως τα σύγχρονα λειτουργικά συστήματα υποστηρίζουν και τους δυο τρόπους σημαφόρων. Για να γίνει εύκολος ο διαχωρισμός οι συναρτήσεις POSIX semaphores έχουν ένα underscore στο όνομα. Οι πιο σημαντικές συναρτήσεις POSIX semaphores είναι η sem_init(), η sem_wait(), η sem_post() και η sem_destroy(). H sem_init() αρχικοποιεί και δημιουργεί μια σημαφόρο. Η συνάρτηση sem_wait() εκτελεί μια λειτουργία DOWN στη συγκεκριμένη σημαφόρο. Η συνάρτηση s em_post() εκτελεί μια λειτουργία UP στη συγκεκριμένη σημαφόρο. Τέλος, η συνάρτηση sem_destroy() καταστρέφει τη συγκεκριμένη σημαφόρο. 8

9 Η συνάρτηση δημιουργίας ενός περιγραφέα σημαφόρου sem_init() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α9) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α10) Η συνάρτηση εκτέλεσης μιας λειτουργίας DOWN sem_wait() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α11) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α12) Η συνάρτηση εκτέλεσης μιας λειτουργίας UP sem_post() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α13) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α14) Η συνάρτηση καταστροφής σημαφόρου sem_destroy() πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α15) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει στο ΛΣ Freebsd: (Α16) Το παραδοτέο C3 (C3) Να δημιουργήσετε ένα πρόγραμμα (c3.c) το οποίο ως διεργασία θα δημιουργεί πολλαπλές θυγατρικές διεργασίες που όλες θα χρησιμοποιούν την ίδια περιοχή μνήμης (πρόβλημα του κρίσιμου τμήματος) και θα επιτυγχάνουν τον αμοιβαίο αποκλεισμό μέσω των σημαφόρων POSIX. Συγκεκριμένα: Θα ορίσετε μια μεταβλητή τύπου sem_t η οποία θα είναι η σημαφόρος. Θα κάνετε κλήση της sem_init() με την παράμετρο να είναι κοινόχρηστη και να έχει αρχική τιμή 1 γιατί μόνο 1 διεργασία θέλουμε να έχει πρόσβαση κάθε φορά σε αυτή. Θα αρχικοποιεί μια κοινή περιοχή μνήμης μεγέθους 20 bytes και θα την προσαρτά στη διεργασία. Θα δημιουργεί με τη fork() 3 θυγατρικές διεργασίες οι οποίες όλες μαζί με τη γονική θα εκτελούν διαρκώς ( while(1) ) τα παρακάτω: o Θα εκτελούν τη συνάρτηση sleep(3). o Θα εκτελούν τη συνάρτηση POSIX Semaphore DOWN για να αποκτήσουν πρόσβαση στο κρίσιμο τμήμα. 9

10 o Μόλις εκτελεστεί η συνάρτηση θα αναφέρεται το μήνυμα (PID) Είσοδος στο κρίσιμο τμήμα της διεργασίας με (count), με PID το pid της διεργασίας που εκτύπωσε το μήνυμα, και count ένας μετρητής που θα διατηρεί η κάθε διεργασία και θα τον αυξάνει κάθε φορά που μπαίνει στο κρίσιμο τμήμα. o Θα διαβάζουν την τιμή στη κοινή θέση 0 και θα την αυξάνουν κατά 5 αναφέροντας το μήνυμα (PID) read ORIGINAL and changed value to FINAL, όπου PID, ORIGINAL και FINAL το process ID η αρχική και η τελική τιμή που γράφτηκε αντίστοιχα. o o Μόλις γραφεί η νέα τιμή στην ίδια θέση (θέση 0) τότε θα απελευθερώνεται το κρίσιμο τμήμα με τη συνάρτηση POSIX Semaphore UP. Μόλις εκτελεστεί η συνάρτηση θα αναφέρεται το μήνυμα (PID) Έξοδος από το κρίσιμο τμήμα της διεργασίας, με PID το pid της διεργασίας που εκτύπωσε το μήνυμα. Ύστερα από κάθε printf() να εκτελείται το fflush(null) προκειμένου να εκτυπώνεται το μήνυμα άμεσα, διαφορετικά θα πρέπει να γεμίσει το buffer της γραμμής και ενδέχεται να καθυστερεί η εκτύπωση. Σημειώστε ότι επειδή δημιουργούνται θυγατρικές διεργασίες με τη fork() αντιγράφονται οι μεταβλητές, οπότε η διεύθυνση της κοινής περιοχής μνήμης είναι κοινή και στις θυγατρικές διεργασίες και δεν απαιτείται κάποια άλλη συνάρτηση για να συνδεθούν οι θυγατρικές στην κοινή περιοχή μνήμης. Να εκτελέσετε το πρόγραμμα και να απαντήσετε: Όλες οι διεργασίες (γονική+θυγατρικές) καταφέρνουν να μπουν στο κρίσιμο τμήμα; Υπάρχει δικαιοσύνη ως προς τον αριθμό που έχει εισέλθει η κάθε διεργασία στο κρίσιμο τμήμα ή κάποια διεργασία έχει εισέλθει πολλές περισσότερες φορές; Γιατί; (Α17) 4. Διαχείριση αρχείων Στο POSIX υπάρχει ένα πλήθος συναρτήσεων χειρισμού αρχείων. Οι βασικές συναρτήσεις περιγράφονται στη συνέχεια. Με τη συνάρτηση open() ανοίγουμε ένα αρχείο ή ένα άλλο αντικείμενο (όπως socket) και μας επιστρέφεται ένας περιγραφέας αρχείου. Με τη συνάρτηση close() κλείνουμε το συγκεκριμένο περιγραφέα. Με τη συνάρτηση read() διαβάζουμε από ένα συγκεκριμένο περιγραφέα. Με τη συνάρτηση write() γράφουμε σε ένα συγκεκριμένο περιγραφέα. Με τη συνάρτηση stat() επιστρέφονται τα μεταδεδομένα που συνδέονται με ένα συγκεκριμένο αρχείο. Τέλος, με τη συνάρτηση lseek() τοποθετούμε το pointer εγγραφής ανάγνωσης σε ένα συγκεκριμένο σημείο. 10

11 Η συνάρτηση επιστροφής μεταδεδομένων αρχείου stat() (προσοχή τμήμα 2 manpage) πόσα ορίσματα δέχεται στην είσοδο και τι επιστρέφει; (Α18) Αναφέρετε δυο περιπτώσεις στις οποίες η ανωτέρω συνάρτηση θα αποτύχει: (Α19) Αν θέλουμε να χρησιμοποιήσουμε παραμέτρους της γραμμής εντολών στη διεργασία μας θα χρησιμοποιήσετε τα ορίσματα argc,argv στη main. Δηλαδή θα δηλώσετε int main (int argc, char *argv[]), ενώ το argc θα έχει τον αριθμό των ορισμάτων, ενώ το argv[i] θα έχει την τιμή του i ορίσματος (δηλαδή της i παραμέτρου). 4.1 Το παραδοτέο C4 (C4) Να δημιουργήσετε ένα πρόγραμμα c4.c το οποίο ως διεργασία θα ανοίγει το αρχείο που δίνει ο χρήστης θα διαβάζει το περιεχόμενο και θα το αντικαθιστά με αυτό που δίνει ο χρήστης. Συγκεκριμένα: δέχεται μια και μόνο μια παράμετρο στη γραμμή εντολών. Θα αναφέρει είτε την παράμετρο που έδωσε ο χρήστης είτε ότι δεν έδωσε παράμετρο και θα σταματάει η εκτέλεση. Θα χρησιμοποιεί τη stat() για να ελέγχει αν υπάρχει το συγκεκριμένο αρχείο που έχει δοθεί ως πρώτη παράμετρο. Αν υπάρχει το αρχείο: o θα ανοίγεται με την open() για ανάγνωση και εγγραφή o Θα καθορίζει και θα εκτυπώνει το μέγεθος του αρχείου είτε με τα στοιχεία που επιστρέφει η stat() είτε με το να εκτελείται συνεχώς η while(read()) για να διαβάζει 1 byte, αυξάνοντας ένα μετρητή. o Επίσης θα εκτυπώνονται τα περιεχόμενα του αρχείου. o θα τοποθετεί το pointer εγγραφής στη θέση 0 Αν δεν υπάρχει το αρχείο o θα ανοίγει με την open() για δημιουργία και εγγραφή o θα τοποθετεί το pointer εγγραφής στη θέση 0 Στη συνέχεια, θα ρωτάει το χρήστη να πληκτρολογήσει μια πρόταση. Η πρόταση αυτή θα τοποθετηθεί με τη write() {προσοχή: όχι με άλλη συνάρτηση} στο αρχείο. 11

12 Θα κλείνει το αρχείο, αφού αναφερθεί το μέγεθος του νέου αρχείου. Μέσα στο πλήθος των συναρτήσεων χειρισμού αρχείων και καταλόγου είναι η συνάρτηση unlink() η οποία διαγράφει ένα αρχείο. H basename() επιστρέφει το όνομα ενός αρχείου μόνο από την πλήρη διαδρομή (δηλαδή αν δοθεί το /usr/local/etc/passwd θα επιστρέψει μόνο το passwd). Η συνάρτηση mkstemp() ανοίγει ένα προσωρινό αρχείο για εγγραφή το οποίο είναι μοναδικό με συνέπεια να μη δημιουργείται πρόβλημα με ένα αρχείο που υπάρχει. Αναφέρετε τι παραμέτρους δέχεται και τι επιστρέφει η συνάρτηση unlink() (Α20) 4.2 Τα παραδοτέα C5 έως C7 (C5) Να δημιουργήσετε ένα πρόγραμμα c5.c το οποίο ως διεργασία θα δημιουργεί ένα αρχείο με μέγεθος όσο έχει δηλώσει ο χρήστης στη γραμμή εντολών. Συγκεκριμένα: δέχεται δυο και μόνο δυο παραμέτρους στη γραμμή εντολών. Θα αναφέρει είτε τις παραμέτρους που έδωσε ο χρήστης είτε ότι δεν έδωσε σωστές παραμέτρους και θα σταματάει η εκτέλεση. Η πρώτη παράμετρος αντιστοιχεί σε ένα όνομα αρχείου, ενώ η δεύτερη στο επιθυμητό μέγεθος σε Bytes. Θα χρησιμοποιεί τη stat() για να ελέγχει αν υπάρχει το συγκεκριμένο αρχείο που έχει δοθεί ως πρώτη παράμετρο. Αν υπάρχει το αρχείο, το πρόγραμμα θα ρωτάει αν επιθυμεί ο χρήστης να διαγράψει το συγκεκριμένο αρχείο. Αν πατήσει y τότε θα διαγράφεται το αρχείο με τη χρήση της unlink(). Αν πατήσει n τότε δε θα διαγράφεται το αρχείο και η διεργασία θα σταματάει την εκτέλεση. Θα ανοίγει με την open() για δημιουργία και εγγραφή το αρχείο που έχει δοθεί ως πρώτη παράμετρος. Θα εκτελεί τη συνάρτηση lseek() με πρώτη παράμετρο το περιγραφέα αρχείου, με δεύτερη παράμετρο το μέγεθος αρχείου-1 και τρίτη παράμετρο το SEEK_SET. Θα γράφει με τη write 1 byte (το '\0') για το τέλος του αρχείου. Θα κλείνει το αρχείο. Εκτελέστε το πρόγραμμα και επιβεβαιώστε την ορθή λειτουργία. Όταν σταματάει η εκτέλεση να δίνεται ls -l για να διαπιστώνετε αν το μέγεθος του αρχείου που έχετε δημιουργήσει συμφωνεί με τα δεδομένα που δώσατε. 12

13 (C6) Να δημιουργήσετε ένα πρόγραμμα c6.c το οποίο ως διεργασία θα δημιουργεί 10 νήματα τα οποία όλα θα προσπαθούν να αυξήσουν μια φορά μόνο μια global μεταβλητή κατά 1. Θα υπάρχει αμοιβαίος αποκλεισμός για να μη χάνεται καμία συναλλαγή. Συγκεκριμένα: θα υπάρχει μια μεταβλητή με καθολική τοπικότητα και αρχική τιμή 0 (έξω από το ) main() θα δημιουργείται ένας σημαφόρος POSIX με αρχική τιμή 1. θα δημιουργούνται 10 νήματα τα οποία όλα θα προσπαθούν να εκτελέσουν τη συνάρτηση increment_shared, η οποία θα κάνει το εξής: o στην αρχή θα κάνει sleep(randomval) όπου η τιμή randomval υπολογίζεται με κλήση της συνάρτησης random() ή rand(), αφού γίνει το σωστό seeding της συνάρτησης (όπως αναγράφεται στο manpage), και στη συνέχεια χρησιμοποιήσουμε την τιμή που θα βγει με modulo 10 (ώστε να προκύψουν τιμές από 0 έως 9). o θα κάνει down το σημαφόρο για να εισέλθει στην κρίσιμη περιοχή. o Θα διαβάζει και θα αυξάνει την κοινή μεταβλητή κατά 1 o o o θα εκτυπώνει το μήνυμα TID entered critical region and changed value to XXX, όπου TID το threadid ενώ το XXX είναι η νέα τιμή που γράφτηκε. θα κάνει up το σημαφόρο για να απελευθερώσει την κρίσιμη περιοχή. Θα σταματάει η εκτέλεση του συγκεκριμένου νήματος. Το κυρίως πρόγραμμα θα περιμένει την ολοκλήρωση και των 10 νημάτων και στη συνέχεια θα εκτυπώνει την τελική τιμή της κοινής μεταβλητής (Final Shared Value is: XX). Η τιμή αυτή θα πρέπει να είναι 10. (C7) Να δημιουργήσετε ένα πρόγραμμα με όνομα c7.c το οποίο ως διεργασία θα δημιουργεί ένα μοναδικό προσωρινό αρχείο (κλήση της mkstemp() ) στο οποίο θα τοποθετεί το όνομά σας (κλήση της write() ) θα περιμένει 10 sec για να δείτε τα περιεχόμενα του αρχείου και στη συνέχεια θα καλεί close για να κλείσει το προσωρινό περιγραφέα αρχείου και στη συνέχεια να διαγραφεί αυτόματα. Συγκεκριμένα: το main() θα έχει τις δηλώσεις των argc, argv προκειμένου να βρούμε το όνομα της διεργασίας. Η μεταβλητή argv[0] διατηρεί το πλήρες όνομα της διεργασίας όπως την εκτελέσαμε. Δηλαδή, αν έχουμε δώσει /usr/local/c7-mkstemp τότε αυτή την τιμή θα έχει η argv[0]. Θα καλείται η basename() με όρισμα το argv[0] για να βρούμε μόνο το όνομα της διεργασίας. 13

14 Θα εκτυπώνεται το όνομα της διεργασίας (δηλαδή, χωρίς την πλήρη διαδρομή). Θα καλείται η strcat(), ώστε να προστεθεί το string.xxxxx στο τέλος του ονόματος. Δηλαδή, αν το όνομα είναι c7-mkstemp τότε το νέο όνομα που θα δημιουργείται θα είναι το c7-mkstemp.xxxxx. Χρειαζόμαστε το XXXXX γιατί θα δοθεί ως template στη συνάρτηση δημιουργίας προσωρινού αρχείου. Μπορείτε να χρησιμοποιήσετε και μεγαλύτερο αριθμό από X ώστε να δημιουργείται ακόμη πιο random όνομα αρχείου. Θα καλείται η mkstemp() για να δημιουργηθεί το προσωρινό αρχείο με το template που έχει δημιουργηθεί πριν. Θα τοποθετείται με τη write() το ονοματεπώνυμο σας στο αρχείο. Θα κάνει sleep(15) Θα κλείνει με τη close() το αρχείο. Ως εκ τούτου θα διαγράφεται αυτόματα το αρχείο. Θα εκτυπώνει το μήνυμα Closed Descriptor. Να φροντίστε να υπάρχουν οι κατάλληλοι έλεγχοι στη mkstemp(), write(), close() με τα κατάλληλα μηνύματα. Όπως πάντα, να κάνετε man την κάθε συνάρτηση που χρησιμοποιείτε, ώστε να βρείτε τα include αρχεία που απαιτεί. Αν δεν τοποθετήσετε τα κατάλληλα #include τότε δε θα μπορεί να γίνει compile το πρόγραμμα, ή θα αναφέρει warnings και θα δυσλειτουργεί. Κάντε compile και εκτελέστε το ως./c7 & για να τοποθετηθεί στο παρασκήνιο. Δώστε μετά ls -la και θα δείτε ότι θα έχει δημιουργηθεί το προσωρινό αρχείο c7.?? όπου?? είναι δυο τυχαίοι χαρακτήρες. Δώστε cat c7.?? για να δείτε το περιεχόμενο. Μετά από λίγα δευτερόλεπτα αφού εμφανιστεί το μήνυμα Closed Descriptor δώστε πάλι ls -la και θα δείτε ότι θα έχει διαγραφεί το αρχείο. 5. Το πρόγραμμα moss-memory Προσομοίωση του συστήματος διαχείρισης μνήμης του λειτουργικού συστήματος με το πρόγραμμα moss-memory. Ερμηνεία Page-faults. Ο προσομοιωτής moss-memory παρουσιάζει τη συμπεριφορά ενός συστήματος σελιδοποίησης εικονικής μνήμης όταν συμβαίνουν σφάλματα σελίδας (page faults). Περιλαμβάνει ένα γραφικό περιβάλλον, το οποίο επιτρέπει στο χρήστη την παρακολούθηση της λειτουργίας των αλγορίθμων αντικατάστασης σελίδας (page replacement algorithms). 14

15 Ο προσομοιωτής διαβάζει: την αρχική κατάσταση ενός πίνακα σελίδων. μια ακολουθία εντολών εικονικής μνήμης (virtual memory). Δημιουργεί (προαιρετικά) ένα αρχείο παρακολούθησης (log file), το οποίο παρουσιάζει το αποτέλεσμα της εκτέλεσης της κάθε εντολής. Ο χρήστης μπορεί: να δει βηματικά την προσομοίωση, ώστε να παρακολουθήσει τη δράση σε κάθε εκτέλεση εντολής ή να «τρέξει» την προσομοίωση μέχρι αυτή να ολοκληρωθεί. Όταν όλες οι εντολές εκτελεστούν η προσομοίωση σταματάει. O προσομοιωτής είναι γραμμένος σε JAVA οπότε απαιτείται η εγκατάσταση στον υπολογιστή του JAVA RUNTIME. Για την εκτέλεση του προγράμματος ανοίξτε το cmd.exe, μεταβείτε στον κατάλογο που έχετε εγκαταστήσει το moss-memory και εισάγετε την επόμενη εντολή: java MemoryManagement commands memory.conf Το πρόγραμμα θα εμφανίσει ένα παράθυρο, επιτρέποντας σας να τρέξετε τον προσομοιωτή. Στην αριστερή πλευρά του παραθύρου εμφανίζονται 2 στήλες με πλήκτρα σελίδων. Στη δεξιά πλευρά υπάρχει μια οθόνη πληροφοριών. Στο πάνω μέρος υπάρχουν πλήκτρα, που καθορίζουν την εκτέλεση του προσομοιωτή (run, step, reset, exit). 5.1 Τα αρχεία commands και memory.conf Το αρχείο commands είναι το αρχείο όπου καθορίζεται η ακολουθία των εντολών μνήμης που πρόκειται να εκτελεστούν. Κάθε εντολή είναι είτε μια READ, είτε μια WRITE εντολή και περιλαμβάνει μια διεύθυνση εικονικής μνήμης που πρέπει να γραφεί ή να διαβαστεί. Αν η διεύθυνση εικονικής μνήμης είναι παρούσα στη φυσική μνήμη, η λειτουργία (εντολή) θα εκτελεστεί επιτυχώς, διαφορετικά θα προκληθεί ένα σφάλμα σελίδας (page fault). Το αρχείο memory.conf είναι το αρχείο που χρησιμοποιείται για να καθορίσει τα αρχικά περιεχόμενα του χάρτη εικονικής μνήμης (virtual memory map), δηλαδή ποιες σελίδες της εικονικής μνήμης έχουν αντιστοιχισθεί σε σελίδες της φυσικής μνήμης. Επίσης, καθορίζει άλλου είδους πληροφορίες καθορισμού της εκτέλεσης, π.χ. αν η λειτουργία αποθηκευτεί σε αρχείο. 15

16 Στην οθόνη του προσομοιωτή φαίνονται τα παρακάτω πεδία: time: Αριθμός σε ns από την αρχή της προσομοίωσης. instruction: READ ή WRITE. Η τελευταία εντολή που εκτελέστηκε. address: Η διεύθυνση εικονικής μνήμης της εντολής που εκτελέστηκε τελευταία. page fault: εάν η τελευταία εντολή προκάλεσε σφάλμα σελίδας (YES / NO). virtual page: Ο αριθμός της σελίδας εικονικής μνήμης που παρουσιάζεται στα παρακάτω πεδία. Αυτός μπορεί να είναι είτε η πιο πρόσφατη σελίδα εικονικής μνήμης που χρησιμοποίησε ο προσομοιωτής, είτε η τελευταία σελίδα της οποίας πατήθηκε το πλήκτρο page n. physical page: H σελίδα φυσικής μνήμης γι αυτή τη σελίδα εικονικής μνήμης (αν υπάρχει). Το -1 δείχνει ότι καμία σελίδα φυσικής μνήμης δεν είναι συνδεδεμένη με αυτή τη σελίδα εικονικής μνήμης. R: Αν έχει διαβαστεί η σελίδα είναι 1, αν όχι είναι 0. Μ: Αν έχει τροποποιηθεί η σελίδα είναι 1, αν όχι είναι 0. inmemtime: Αριθμός σε ns που δηλώνει πριν από πόσο χρόνο δεσμεύτηκε η φυσική σελίδα σε αυτή την εικονική σελίδα. lasttouchtime: Αριθμόςσε ns που δηλώνει πριν από πόσο χρόνο τροποποιήθηκε η φυσική σελίδα σε αυτή την εικονική σελίδα. page fault: Εάνη τελευταία εντολή προκάλεσε σφάλμα σελίδας. low: Η χαμηλή διεύθυνση εικονικής μνήμης για τη συγκεκριμένη σελίδα εικονικής μνήμης. high: Η υψηλή διεύθυνση εικονικής μνήμης για τη συγκεκριμένη σελίδα εικονικής μνήμης. Καθορίζονται 2 λειτουργίες: READ, WRITE READ: READ address READ random WRITE: WRITE address WRITE random address: ο αριθμός της διεύθυνσης εικονικής μνήμης. Προαιρετικά προηγείται αυτού μια από τις λέξεις κλειδιά bin, oct, hex. Αν δεν προηγείται κάτι από τα παραπάνω, ο αριθμός θεωρείται δεκαδικός. random: θα δημιουργήσει μια εικονική διεύθυνση μνήμης. To αρχείο memory.conf χρησιμοποιείται για να καθορίσει τα αρχικά περιεχόμενα του χάρτη εικονικής μνήμης (virtual memory map), δηλαδή ποιες σελίδες της εικονικής μνήμης έχουν αντιστοιχιστεί σε σελίδες της φυσικής μνήμης. Επίσης καθορίζει άλλου είδους πληροφορίες προσδιορισμού της εκτέλεσης, π.χ. αν η λειτουργία θα αποθηκευτεί σε αρχείο. 16

17 Η εντολή memset χρησιμοποιείται για να αρχικοποιήσει κάθε είσοδο του χάρτη εικονικής μνήμης, και ακολουθείται από 6 ακέραιες τιμές: Τον αριθμό σελίδας εικονικής μνήμης που θα αρχικοποιήσει. Τη φυσική σελίδα που σχετίζεται με αυτή τη σελίδα εικονικής μνήμης (-1 αν δεν αντιστοιχίζεται καμία σελίδα). Αν έχει πραγματοποιηθεί ανάγνωση της σελίδας (R) (0=όχι, 1=ναι). Αν η σελίδα έχει τροποποιηθεί (Μ) (0=όχι, 1=ναι). Πόσο χρόνο βρίσκεται η σελίδα στη μνήμη (σε ns). Την τελευταία χρονική στιγμή που τροποποιήθηκε η σελίδα (σε ns). Οι 2 πρώτες παράμετροι καθορίζουν την αντιστοίχιση μεταξύ μιας σελίδας εικονικής μνήμης και μιας σελίδας φυσικής μνήμης, αν υπάρχει. Οι 4 τελευταίες παράμετροι είναι τιμές που μπορούν να χρησιμοποιηθούν από έναν αλγόριθμο αντικατάστασης σελίδας. Παράδειγμα: memset Καθορίζει ότι η σελίδα εικονικής μνήμης 34 αντιστοιχίζεται στη σελίδα φυσικής μνήμης 23 και ότι η σελίδα δεν έχει αναγνωσθεί ούτε τροποποιηθεί. Προσοχή: Κάθε φυσική σελίδα πρέπει να αντιστοιχεί σε μια μόνο εικονική. Το πλήθος των σελίδων εικονικής μνήμης είναι 64: (αναφερόμαστε στον προσομοιωτή). Το πλήθος των σελίδων φυσικής μνήμης δεν μπορεί να ξεπερνά τις 64 σελίδες: Αν μια σελίδα εικονικής μνήμης δεν καθορίζεται σε κάποια εντολή memset, αυτό σημαίνει ότι δεν έχει αντιστοιχιστεί σε σελίδα φυσικής μνήμης. Άλλοι παράμετροι του αρχείου είναι: enable_logging: Καθορίζει ν θα εμφανίζεται ή όχι μήνυμα για την εκτέλεση της κάθε εντολής READ ή WRITE. προκαθορισμένη τιμή FALSE. log_file: Το όνομα του αρχείου όπου θα γράφονται τα μηνύματα. Αν δε δίνεται όνομα αρχείου, τότε τα μηνύματα γράφονται στην οθόνη. pagesize: To μέγεθος της σελίδας σε bytes, δοσμένο ως δύναμη του 2. addressradix: H βάση στην οποία παρουσιάζονται οι αριθμοί. Η προκαθορισμένη βάση είναι το 2, μπορεί όμως, να είναι και το 8 (octal), 10 (decimal) ή 16 (hexadecimal) 17

18 5.2 Ερωτήσεις S1 έως S6 Εξαγάγετε τα αρχεία της άσκησης σε ένα κατάλογο της επιλογής σας. (S1) Δώστε notepad memory.conf για να δείτε το όνομα του αρχείου καταγραφής. Εκτελέστε την προσομοίωση όπως φαίνεται παραπάνω. Πατήστε run και όταν ολοκληρωθεί exit. Σημειώστε το όνομα του αρχείου καταγραφής. (S2) Ανοίξτε το αρχείο καταγραφής με την εντολή notepad αρχείο_καταγραφής Έχει δημιουργηθεί πουθενά Page fault; Στο τέλος του αρχείου commands προσθέστε την εντολή WRITE random (S3) Τρέξτε την προσομοίωση και σημειώστε αν δημιουργηθεί page fault & τη διεύθυνση. Στο τέλος του αρχείου Commands προσθέστε την εντολή READ 10. (S4) Τρέξτε την προσομοίωση πάλι και σημειώστε αν δημιουργηθεί page fault & τη διεύθυνση του: Αντιγράψτε το αρχείο commands στο commands1: copy commands commands1 Τροποποιήστε το αρχείο commands1ώστε να υπάρχει η εξής σειρά εντολών. READ 4, READ 19, READ , WRITE 100, WRITE 200, WRITE , READ 20000, READ 400 (S5) Εκτελέστε τον προσομοιωτή και ελέγξτε τις σελίδες στις οποίες βρίσκονται οι διευθύνσεις εικονικής μνήμης 3 και 6 του παραπάνω αρχείου. Σημειώστε που έχει γίνει Page fault και γιατί (ανοίξτε το tracefile) (S6) Ομοίως για το παράδειγμα με τις εξής εντολές (τροποποιήστε κατάλληλα το αρχείο commands1): READ , READ , READ , READ , WRITE 100, READ 17000, READ

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

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

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Ενσωματωμένα Συστήματα

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Δρ. Βασίλης Ταμπακάς Δρ. Ιωάννης Ε. Λιβιέρης Τμήμα Μηχανικών Πληροφορικής Τ.Ε Περιεχόμενα Περιεχόμενα... 1 1. Εισαγωγή, Θεωρητική Υποδομή Εργαστηριακής Άσκησης... 2 2. Εργαστηριακή υποδομή εργαστηριακής

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

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

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Ενσωματωμένα Συστήματα

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

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

Δομημένος Προγραμματισμός

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 4(β): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

Ενσωματωμένα Συστήματα

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

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

Συγχρονισμός & σηματοφόροι. Προγραμματισμός II 1

Συγχρονισμός & σηματοφόροι. Προγραμματισμός II 1 Συγχρονισμός & σηματοφόροι Προγραμματισμός II 1 lalis@inf.uth.gr Ταυτόχρονη εκτέλεση Οι διεργασίες εκτελούνται ταυτόχρονα μεταξύ τους Ο προγραμματιστής δεν ελέγχει την εναλλαγή Τι γίνεται αν δύο ή περισσότερες

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 5(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

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

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

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

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

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

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

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 6(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

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

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

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

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

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

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

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

Αρχιτεκτονική Υπολογιστών Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 3: Καταχωρητές, Τμήματα, Διευθυνσιοδότηση Μνήμης, SEGMENT, MOV, ADD, SUB, INT, TITLE, LEA

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 3: Εισαγωγή και Εμφάνιση Δεδομένων Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες

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

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

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

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

Ενσωματωμένα Συστήματα

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

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

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

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

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

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

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

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

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

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

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ 9.1 Εντολές Εισόδου/εξόδου Στην Pascal, 1. Tα δεδομένα των προγραμμάτων λαμβάνονται: είτε από το πληκτρολόγιο είτε από ένα αρχείο με τη χρήση των διαδικασιών read και readln,

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

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

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

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

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Δομημένος Προγραμματισμός Ενότητα 3(γ): Εργαστηριακή Άσκηση Αναπλ. Καθηγητής: Κωνσταντίνος Στεργίου Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4

ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 26 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1 Διαχείριση εργασιών fork(), exit(), exec() Επικοινωνία διεργασιών signals, sockets και client/server, shared memory Συγχρονισμός

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω

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

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

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

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

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 2: Μεταβλητές και Σταθερές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ Ενότητα: 11Η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ Δρ. ΠΑΝΤΕΛΗΣ ΑΓΓΕΛΙΔΗΣ Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών. Μανόλης Γ.Η. ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Ασκήσεις 7: Πρόγραμμα Συνδεδεμένης Λίστας και Διαδικασιών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης Υπολογιστών Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

Ενσωματωμένα Συστήματα

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

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

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

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

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

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

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

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

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

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

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

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

Ενσωματωμένα Συστήματα

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

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

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Ενδεικτικές λύσεις και στατιστικά

Ενδεικτικές λύσεις και στατιστικά Προγραμματισμός 1 Σύντομο Quiz 25/9/9 Ενδεικτικές λύσεις και στατιστικά Ερώτηση 1: Γράψτε παρακάτω συνάρτηση η οποία δέχεται ως παραμέτρους ένα string και ένα χαρακτήρα και επιστρέφει τον αριθμό των εμφανίσεων

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

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

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

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

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Άδειες Χρήσης ΥΠΟΛΟΓΙΣΤΕΣ ΙI Δομή του προγράμματος Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της

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

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

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

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

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

Προγραμματισμός Η/Υ. 7 η ενότητα: Αρχεία. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Προγραμματισμός Η/Υ 7 η ενότητα: Αρχεία Τμήμα Τεχνολόγων Περιβάλλοντος ΤΕΙ Ιονίων Νήσων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

Διαδικαστικός Προγραμματισμός

Διαδικαστικός Προγραμματισμός Διαδικαστικός Προγραμματισμός Ενότητα 8: Παραδείγματα με μονοδιάστατους πίνακες, συναρτήσεις, δείκτες, πέρασμα παραμέτρων με αναφορά Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Εαρινό Εξάμηνο 2010 2011 Δ. Γουνόπουλος Ι. Ιωαννίδης Άσκηση 2: Υλοποίηση Ευρετηρίου Β+ Δένδρου Προθεσμία: 6 Ιουνίου 2011, 11:59μμ

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

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ

ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ ΟΔΗΓΙΕΣ ΧΡΗΣΤΗ ΓΙΑ ΤΟ ΠΡΟΓΡΑΜΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΑΞΗΣ CLAROLINE Κατάλογος περιεχομένων Εγγραφή μαθητή στο Claroline...2 Εγγραφή σε μάθημα...3 Τα μαθήματά μου...4 Αλλαγή του προφίλ μου (Manage my account)...4

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

Προγραμματισμός Διαδικτύου Ασκήσεις Εργαστηρίου

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 8: Αρχεία και Δομές Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν

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

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

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

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

Πληροφορική. Εργαστηριακή Ενότητα 2 η : Το βιβλίο εργασίας του MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής

Πληροφορική. Εργαστηριακή Ενότητα 2 η : Το βιβλίο εργασίας του MS Excel. Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Πληροφορική Εργαστηριακή Ενότητα 2 η : Το βιβλίο εργασίας του MS Excel Ι. Ψαρομήλιγκος Τμήμα Λογιστικής & Χρηματοοικονομικής Άδειες

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 10: Συναρτήσεις Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

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