Mονόπλευρες επικοινωνίες στο MPI-2

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

Download "Mονόπλευρες επικοινωνίες στο MPI-2"

Transcript

1 Mονόπλευρες επικοινωνίες στο MPI-2 Γιώργος Καππές ΑΜ: 235 Περίληψη Οι μονόπλευρες επικοινωνίες που παρέχει το MPI έχουν ως στόχο να παρέχουν τη ευκολία της άμεσης προσπέλασης απομακρυσμένων μνημών, καθώς και τη δυνατότητα για υψηλότερες επιδόσεις από αυτές που παρέχουν οι επικοινωνίες σημείου προς σημείο, ειδικότερα σε δίκτυα τα οποία υποστηρίζουν εγγενώς τις μονόπλευρες επικοινωνίες, όπως τα Myrinet και InfiniBand Οι μονόπλευρες επικοινωνίες αποτελούν ένα εναλλακτικό μοντέλο επικοινωνίας στο οποίο όλες οι παράμετροι που χαρακτηρίζουν τη λειτουργία του συστήματος μπορούν να καθοριστούν μόνο από το ένα άκρο της επικοινωνίας Σε αυτό το μοντέλο, η διεργασία που περιέχει τα δεδομένα δε γνωρίζει τις ταυτότητες των υπόλοιπων διεργασιών που τα προσπελαύνουν και έτσι, δε συμμετέχει στην ανταλλαγή δεδομένων Αντίθετα, οι διεργασίες που χρειάζονται τα δεδομένα τα προσπελαύνουν από τη διεργασία που τα κατέχει μέσω ειδικών συναρτήσεων που επιτελούν λειτουργίες εγγραφής και ανάγνωσης δεδομένων που βρίσκονται σε απομακρυσμένες μνήμες (Remote Memory Access) Σε αυτόν τον οδηγό αρχικά θα περιγράψουμε σύντομα τα βασικά χαρακτηριστικά των μονόπλευρων επικοινωνιών Στη συνέχεια θα αναφέρουμε τις συναρτήσεις που παρέχει το MPI για μονόπλευρες επικοινωνίες και θα περιγράψουμε τον τρόπο με τον οποίο χρησιμοποιούνται 1 Εισαγωγή Σε πολλές παράλληλες επιστημονικές εφαρμογές η κατανομή των δεδομένων μπορεί να αλλάζει δυναμικά και τα πρότυπα πρόσβασης στα δεδομένα μπορεί να είναι γενικά ακανόνιστα Γι' αυτά τα είδη των εφαρμογών, η διεργασία που περιέχει τα δεδομένα δε γνωρίζει ούτε τις ταυτότητες των διεργασιών που τα προσπελαύνουν, αλλά ούτε και τον τρόπο με τον οποίο γίνεται αυτή η προσπέλαση Έτσι, δεν είναι δυνατή η ανταλλαγή δεδομένων ανάμεσά τους με χρήση επικοινωνιών που βασίζονται στο μοντέλο σημείο προς σημείο Για να καταστεί δυνατή η επικοινωνία σε τέτοιες περιπτώσεις οι παράμετροι που χαρακτηρίζουν την επικοινωνία καθορίζονται μόνο από το ένα άκρο της επικοινωνίας, δηλαδή μόνο από τις διεργασίες που προσπελαύνουν τα δεδομένα 1

2 Το πρότυπο MPI-2 παρέχει μια διεπαφή και ένα προγραμματιστικό μοντέλο που επιτρέπει την ανάπτυξη εφαρμογών οι οποίες στηρίζονται στις μονόπλευρες επικοινωνίες Σε αυτό το μοντέλο, οι διεργασίες μπορούν να προσπελάσουν απευθείας τα δεδομένα μιας άλλης διεργασίας Το μοντέλο αυτό αναφέρεται και ως απομακρυσμένη προσπέλαση μνήμης (Remote Memory Access) 11 Παράθυρο μνήμης και περίοδοι επικοινωνίας Στο μοντέλο των μονόπλευρων επικοινωνιών η διεργασία που πραγματοποιεί τη διαδικασία της απομακρυσμένης προσπέλασης των δεδομένων ορίζεται ως προέλευση (origin) και η διεργασία της οποίας η μνήμη προσπελαύνεται ορίζεται ως στόχος (target) Η περιοχή μνήμης της διεργασίας στόχου, την οποία η διεργασία προέλευσης μπορεί να προσπελάσει, ονομάζεται παράθυρο Η δημιουργία ενός παραθύρου είναι μια συλλογική λειτουργία και όλες οι λειτουργίες επικοινωνίας και συγχρονισμού σχετίζονται με ένα συγκεκριμένο παράθυρο Οι απομακρυσμένες διευθύνσεις όπου βρίσκονται αποθηκευμένα τα δεδομένα καθορίζονται ως offsets από τη βάση του παραθύρου και έτσι, οι διεργασίες που τα προσπελαύνουν δε χρειάζεται να γνωρίζουν την ακριβή απομακρυσμένη διεύθυνση μνήμης όπου είναι τοποθετημένα Οι διεργασίες προέλευσης δε μπορούν να προσπελάσουν οποιαδήποτε στιγμή το παράθυρο μνήμης μιας διεργασίας στόχου Το MPI χρησιμοποιεί την έννοια της περιόδου (epoch) για να καθορίσει την περίοδο κατά την οποία αυτή η προσπέλαση είναι εφικτή Στο πλαίσιο αυτό, το χρονικό διάστημα κατά το οποίο το απομακρυσμένο παράθυρο μνήμης της διεργασίας στόχου παραμένει ανοιχτό ονομάζεται ως περίοδος έκθεσης (exposure epoch) Κατά τη διάρκεια αυτού του χρονικού διαστήματος, η διεργασία προέλευσης μπορεί να προσπελάσει τα δεδομένα που βρίσκονται σε αυτό το παράθυρο Επιπρόσθετα, θα πρέπει και η διεργασία προέλευσης να ορίσει το δικό της χρονικό διάστημα κατά το οποίο θα προσπελάσει το παράθυρο μνήμης της διεργασίας στόχου Αυτό το χρονικό διάστημα ονομάζεται περίοδος προσπέλασης (access epoch) Μόλις η διεργασία προέλευσης ολοκληρώσει την προσπέλαση του απομακρυσμένου παραθύρου μνήμης τερματίζει την περίοδο προσπέλασης, ενώ η διεργασία στόχος τερματίζει την περίοδο έκθεσης Από τη στιγμή αυτή και έπειτα καμία διεργασία δε μπορεί να προσπελάσει το παράθυρο μνήμης της διεργασίας στόχου 12 Λειτουργίες επικοινωνίας Το MPI-2 καθορίζει διάφορες λειτουργίες επικοινωνίας οι οποίες μπορούν να χρησιμοποιηθούν στις μονόπλευρες επικοινωνίες Σε αυτές τις λειτουργίες ανήκουν η απομακρυσμένη εγγραφή (MPI_Put), η απομακρυσμένη ανάγνωση (MPI_Get) και η απομακρυσμένη 2

3 ενημέρωση δεδομένων (MPI_Accumulate) Είναι σημαντικό να αναφέρουμε πως οι παραπάνω λειτουργίες επικοινωνίας αποτελούν μη παρεμποδιστικές διαδικασίες (non blocking) Έτσι, κατά την κλήση τους εκκινούν τη διαδικασία της απομακρυσμένης προσπέλασης και επιστρέφουν, χωρίς να αναμένουν την ολοκλήρωσή της 13 Λειτουργίες συγχρονισμού Σύμφωνα με τη σημασιολογία των μονόπλευρων επικοινωνιών, μόλις μια κλήση απομακρυσμένης προσπέλασης δεδομένων (όπως η MPI_Put) επιστρέψει, η ολοκλήρωση της λειτουργίας της δεν είναι διασφαλισμένη Για να είμαστε σίγουροι ότι μια λειτουργία απομακρυσμένης προσπέλασης δεδομένων ολοκληρώθηκε πρέπει να χρησιμοποιήσουμε διάφορες λειτουργίες συγχρονισμού Οι λειτουργίες συγχρονισμού που παρέχει το MPI-2 για τις μονόπλευρες επικοινωνίες μπορούν να ταξινομηθούν ως ενεργές (active) και παθητικές (passive) Στις ενεργές λειτουργίες συγχρονισμού εμπλέκονται τόσο η διεργασία προέλευσης, όσο και η διεργασία στόχος Αντίθετα, στις παθητικές λειτουργίες συγχρονισμού εμπλέκεται μόνο η διεργασία προέλευσης Σχήμα 1: Συγχρονισμός με χρήση φραχτών (fences) Ο πρώτος μηχανισμός συγχρονισμού που παρέχει το MPI στηρίζεται στη συνάρτηση MPI_Win_fence Η κλήση της MPI_Win_fence είναι συλλογική για όλη την ομάδα των διεργασιών Η διεργασία προέλευσης χρησιμοποιεί αυτή τη συνάρτηση έτσι ώστε να εκκινήσει και να τερματίσει την περίοδο προσπέλασης Από την άλλη μεριά, η διεργασία στόχος χρησιμοποιεί αυτή τη συνάρτηση ώστε να εκκινήσει και να τερματίσει την περίοδο έκθεσης Όπως φαίνεται και στο σχήμα 1 η πρώτη κλήση της συνάρτησης MPI_Win_fence εκκινεί την περίοδο προσπέλασης ή έκθεσης, ενώ η αμέσως επόμενη κλήση αυτής της συνάρτησης την τερματίζει Ένα μειονέκτημα αυτού του μηχανισμού για συγχρονισμό αποτελεί το γεγονός ότι η συνάρτηση MPI_Win_fence είναι συλλογική, οπότε αν ένα μικρό υποσύνολο 3

4 των διεργασιών της ομάδας επικοινωνούν μεταξύ τους τότε έχουμε ως αποτέλεσμα περιττό κόστος συγχρονισμού Σχήμα 2: Σύγxρονισμός μεταξύ ενός ζεύγους διεργασιών με χρήση των συναρτήσεων MPI_Win_post/ start/ complete/ wait Για να ξεπεραστεί το κύριο μειονέκτημα του προηγούμενου μηχανισμού συγχρονισμού, το MPI ορίζει ένα δεύτερο μηχανισμό συγχρονισμού ο οποίος συγχρονίζει μόνο το υποσύνολο των διεργασιών που επικοινωνούν μεταξύ τους (σχήμα 2) Μια διεργασία που επιθυμεί να θέσει το παράθυρό της σε περίοδο έκθεσης καλεί τη συνάρτηση MPI_Win_post, η οποία λαμβάνει ένα όρισμα που καθορίζει την ομάδα των διεργασιών που μπορούν να προσπελάσουν το παράθυρό της Μια διεργασία η οποία επιθυμεί να προσπελάσει ένα απομακρυσμένο παράθυρο μνήμης καλεί τη συνάρτηση MPI_Win_start στην οποία περνάει ως όρισμα την ομάδα των διεργασιών στόχων Με τον τρόπο αυτό ξεκινάει η περίοδος προσπέλασης Μόλις η διεργασία προέλευσης ολοκληρώσει την απομακρυσμένη προσπέλαση δεδομένων, καλεί τη συνάρτηση MPI_Win_complete έτσι ώστε να τερματίσει την περίοδο προσπέλασης Η διεργασία στόχος καλεί τη συνάρτηση MPI_Win_wait για να τερματίσει την περίοδο έκθεσης Σχήμα 3: Σύγxρονισμός με χρήση αντικειμένων κλειδώματος Οι δύο παραπάνω μέθοδοι συγχρονισμού που περιγράψαμε ανήκουν στην κατηγορία των ενεργητικών μεθόδων συγχρονισμού, διότι και τα δύο άκρα της επικοινωνίας συμμετέ- 4

5 χουν στον καθορισμό των παραμέτρων της επικοινωνίας Ωστόσο, το MPI παρέχει και ένα τρίτο μηχανισμό ο οποίος είναι παθητικός, δηλαδή ο καθορισμός των παραμέτρων της επικοινωνίας πραγματοποιείται μόνο από τη διεργασία προέλευσης (σχήμα 3) Κατά τη χρήση αυτού του μηχανισμού, η διεργασία προέλευσης καλεί τη συνάρτηση MPI_Win_lock έτσι ώστε να αποκτήσει είτε αποκλειστική (exclusive), είτε κοινόχρηστη (shared) πρόσβαση στο παράθυρο της διεργασίας στόχου Αφού ολοκληρώσει την προσπέλαση του απομακρυσμένου παραθύρου καλεί τη συνάρτηση MPI_Win_unlock Μόλις η συνάρτηση MPI_Win_unlock επιστρέψει, το MPI διασφαλίζει ότι όλες οι προηγούμενες λειτουργίες προσπέλασης στο απομακρυσμένο παράθυρο μνήμης έχουν ολοκληρωθεί 2 Χρήση των μονόπλευρων επικοινωνιών Σε αυτή την ενότητα αναφέρουμε τις βασικές συναρτήσεις που παρέχει το MPI-2 για μονόπλευρες επικοινωνίες και περιγράφουμε σύντομα τον τρόπο με τον οποίο χρησιμοποιούνται 21 Διαχείριση παραθύρων μνήμης Για να επιτρέψει μια διεργασία την πρόσβαση άλλων διεργασιών σε μια περιοχή της μνήμης της, πρέπει να δημιουργήσει ένα παράθυρο μνήμης το οποίο θα την περιγράφει Ένα παράθυρο μνήμης μπορεί να δημιουργηθεί με τη χρήση της συλλογικής συνάρτησης MPI_Win_create, η οποία επιστρέφει ένα δείκτη σε ένα αντικείμενο παραθύρου Αυτό το αντικείμενο παραθύρου αντιπροσωπεύει την ομάδα των διεργασιών στον communicator που έχει καθοριστεί, καθώς και τα χαρακτηριστικά του κάθε παραθύρου Η συνάρτηση δημιουργίας του παραθύρου μνήμης έχει την εξής μορφή: MPI_Win_create int MPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win); Οι παράμετροι της συνάρτησης αυτής είναι η αρχική διεύθυνση του παραθύρου (base), το μέγεθος του παραθύρου σε bytes (size), το μέγεθος μιας βασικής μονάδας του παραθύρου σε bytes (disp_unit), ένα αντικείμενο που περιέχει πληροφορίες για το παράθυρο (info), ο communicator του group των διεργασιών (comm) και τέλος ένας δείκτης στο νέο αντικείμενο παραθύρου που επιστρέφεται (win) Οι διεργασίες που ανήκουν στον communicator μπορούν να καθορίσουν διαφορετικές περιοχές μνήμης ως παράθυρα, διαφορετικά μεγέθη, καθώς και διαφορετικές ιδιότητες για 5

6 το παράθυρό τους Ωστόσο, είναι αναγκαίο όλες οι διεργασίες που ανήκουν στο group να καλέσουν τη συνάρτηση δημιουργίας παραθύρου Μια διεργασία μπορεί να θέσει το πεδίο size της κλήσης ίσο με μηδέν έτσι ώστε να μην εκθέσει κάποια περιοχή της μνήμης της στις υπόλοιπες Οι πληροφορίες ενός αντικειμένου παραθύρου αποθηκεύονται προσωρινά και μπορούν να ανακτηθούν με χρήση της συνάρτησης MPI_Win_get_attr Η συνάρτηση αυτή ορίζεται ως εξής: MPI_Win_get_attr ιnt MPI_Win_get_attr(MPI_Win win, int keyval, void *attrval, int *flag); Η μεταβλητή win αναφέρεται στο αντικείμενο παραθύρου για το οποίο επιθυμούμε να ανακτήσουμε κάποια ιδιότητά του, ενώ η παράμετρος keyval ταυτοποιεί την ιδιότητα την οποία θέλουμε να ανακτήσουμε Για παράδειγμα, αν περάσουμε ως όρισμα τη σταθερά MPI_WIN_BASE τότε ο δείκτης attrval μετά την κλήση της συνάρτησης θα δείχνει στην αρχή του παραθύρου win Αντίστοιχα, χρησιμοποιώντας τη σταθερά MPI_WIN_SIZE, η θέση στην οποία δείχνει ο δείκτης attrval θα περιέχει το μέγεθος του παραθύρου σε bytes Τέλος, αν χρησιμοποιήσουμε τη σταθερά MPI_WIN_DISP_UNIT, τότε η θέση στην οποία δείχνει ο δείκτης attrval θα περιέχει το μέγεθος της βασικής μονάδας του παραθύρου σε bytes Από την άλλη μεριά, η διαγραφή ενός παραθύρου πραγματοποιείται με τη συνάρτηση MPI_Win_free Η συνάρτηση αυτή ορίζεται ως εξής: MPI_Win_free int MPI_Win_free(MPI_Win *win); Ο δείκτης win στην παραπάνω συνάρτηση αναφέρεται στο παράθυρο μνήμης που επιθυμούμε να διαγράψουμε Μόλις η συνάρτηση αυτή επιστρέψει, ο δείκτης αυτός θα έχει τεθεί στην τιμή MPI_WIN_NULL Η συνάρτηση MPI_Win_free αποτελεί μια συλλογική λειτουργία και πρέπει να κληθεί από όλες της διεργασίες του group Ένα παράδειγμα χρήσης των συναρτήσεων δημιουργίας και διαγραφής παραθύρων φαίνεται στη λίστα 1 Σε αυτό το παράδειγμα, η διεργασία 0 δημιουργεί ένα παράθυρο μνήμης ώστε να παρέχει πρόσβαση στις υπόλοιπες διεργασίες του group στον χώρο μνήμης που καταλαμβάνει ο πίνακας array Οι υπόλοιπες διεργασίες δεν εκθέτουν κάποια περιοχή της μνήμης τους, ωστόσο καλούν και αυτές τη συνάρτηση δημιουργίας παραθύρου Στη συνάρτηση αυτή περνούν ως όρισμα το MPI_BOTTOM στη διεύθυνση βάσης και 0 στο μέγεθος του παραθύρου 6

7 Λίστα 1: Παράδειγμα δημιουργίας και διαγραφής παραθύρου μνήμης double a r r a y [ ] ; i n t rank ; MPI_Win window ; MPI_Aint w i n _ s i z e ; MPI_Comm_rank (MPI_COMM_WORLD, &r a n k ) ; I f ( rank == 0) { w i n _ s i z e = 1000 * s i z e o f ( d o u b l e ) ; MPI_Win_create ( a r r a y, win_size, s i z e o f ( d o u b l e ), MPI_INFO_NULL, MPI_COMM_WORLD, &window ) ; } e l s e { MPI_Win_create (MPI_BOTTOM, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &window ) ; } MPI_Win_free ( window ) ; 22 Απομακρυσμένη προσπέλαση δεδομένων Το πρότυπο MPI-2 παρέχει τρεις συναρτήσεις που μπορούν να χρησιμοποιηθούν για απομακρυσμένη προσπέλαση δεδομένων Οι συναρτήσεις αυτές είναι μη παρεμποδιστικές Έτσι, κατά την κλήση τους εκκινούν τη λειτουργία απομακρυσμένης προσπέλασης και έπειτα επιστρέφουν, χωρίς να αναμένουν την ολοκλήρωσή της Η συνάρτηση που παρέχει το MPI-2 για απομακρυσμένη εγγραφή είναι η MPI_Put Η συνάρτηση αυτή ορίζεται ως εξής: MPI_Put int MPI_Put(void *origaddress, int origcount, MPI_Datatype origtype, int targetrank, MPI_Aint targetdisp, int targetcount, MPI_Datatype targettype, MPI_Win win); Ας περιγράψουμε τα ορίσματα της παραπάνω συνάρτησης Το όρισμα origaddress είναι ένας δείκτης στην περιοχή μνήμης που είναι τοποθετημένα τα δεδομένα που θέλουμε να αντιγραφούν στο απομακρυσμένο παράθυρο μνήμης Η παράμετρος origcount είναι ο αριθμός των στοιχείων που περιέχει η παραπάνω περιοχή μνήμης, ενώ το όρισμα origtype 7

8 είναι ο τύπος των στοιχείων αυτών Το όρισμα targetrank είναι η ταυτότητα της απομακρυσμένης διεργασίας στόχου Το παράθυρο μνήμης που επιθυμούμε να προσπελάσουμε περιγράφεται από την παράμετρο win και περιλαμβάνει targetcount στοιχεία τύπου targettype Τέλος, θέτοντας στην παράμετρο targetdisp μια θετική τιμή διάφορη του μηδενός μπορούμε να αναφερθούμε σε μια συγκεκριμένη θέση μνήμης στο εσωτερικό του παραθύρου μνήμης της διεργασίας στόχου Μπορούμε να φανταστούμε αυτή την παράμετρο σαν ένα offset από την αρχική διεύθυνση μνήμης που περιλαμβάνει το παράθυρο της διεργασίας στόχου Για την απομακρυσμένη ανάγνωση δεδομένων από μια διεργασία το MPI-2 παρέχει τη συνάρτηση MPI_Get Η συνάρτηση αυτή ορίζεται ως εξής: MPI_Get int MPI_Get(void *origaddress, int origcount, MPI_Datatype origtype, int targetrank, MPI_Aint targetdisp, int targetcount, MPI_Datatype targettype, MPI_Win win); Τα ορίσματα της συνάρτησης αυτής είναι παρόμοια με εκείνα της MPI_Put Η μόνη διαφορά είναι ότι η μεταφορά δεδομένων γίνεται από το απομακρυσμένο παράθυρο μνήμης προς την περιοχή origaddress Η τρίτη συνάρτηση που παρέχει το MPI-2 για απομακρυσμένη προσπέλαση δεδομένων είναι η MPI_Accumulate Η συνάρτηση αυτή ορίζεται ως εξής: MPI_Accumulate int MPI_Accumulate t(void *origaddress, int origcount, MPI_Datatype origtype, int targetrank, MPI_Aint targetdisp, int targetcount, MPI_Datatype targettype, MPI_Op op, MPI_Win win); Τα ορίσματα της συνάρτησης αυτής είναι παρόμοια με εκείνα της MPI_Put Ωστόσο, επειδή η συνάρτηση MPI_Accumulate δεν επανεγγράφει τα παλιά δεδομένα του απομακρυσμένου παραθύρου, αλλά συνδυάζει τα παλιά με τα νέα, δέχεται ένα επιπλέον όρισμα (op), το οποίο αντιστοιχεί στην πράξη η οποία θα εφαρμοστεί κατά τον συνδυασμό των παλαιών με των νέων δεδομένων Η τιμή αυτού του ορίσματος μπορεί να είναι οποιαδήποτε από τις MPI_MAX/ MIN/ SUM/ PROD/ LAND/ BAND/ LOR/ BOR/ LXOR/ BXOR 23 Συγχρονισμός διεργασιών Όπως αναφέραμε, για να είμαστε σίγουροι ότι μια λειτουργία απομακρυσμένης προσπέλασης δεδομένων ολοκληρώθηκε πρέπει να χρησιμοποιήσουμε διάφορες λειτουργίες συγχρονισμού Η πρώτη μέθοδος συγχρονισμού που αναφέραμε στηρίζεται στη χρήση της 8

9 Λίστα 2: Παράδειγμα χρήσης της MPI_Win_fence i n t Array [ SIZE ] ; MPI_Group comm_group, group ; MPI_Win win ; i n t rank ; MPI_Comm_rank (MPI_COMM_WORLD, &r a n k ) ; i f ( rank == 0) { MPI_Win_create ( Array, SIZE * s i z e o f ( i n t ), s i z e o f ( i n t ), MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ; MPI_Win_fence ( 0, win ) ; MPI_Win_fence ( 0, win ) ; p r i n t _ r e s u l t s ( Array ) ; } e l s e i f ( rank == 1) { MPI_Win_create (NULL, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ; MPI_Win_fence ( 0, win ) ; f o r ( i = 0 ; i < SIZE ; i ++) MPI_Put(& i, 1, MPI_INT, 1, i, 1, MPI_INT, win ) ; MPI_Win_fence(&win ) ; } συνάρτησης MPI_Win_fence Η συνάρτηση αυτή είναι συλλογική και καλείται από όλες τις διεργασίες της ομάδας που συσχετίζεται με ένα παράθυρο μνήμης Το πρότυπο της συνάρτησης αυτής είναι το εξής: MPI_Win_fence int MPI_Win_fence(int assert, MPI_Win win); Το όρισμα assert επιτρέπει τον καθορισμό επιπρόσθετων πληροφοριών για τη λειτουργία του συγχρονισμού Δυνατές τιμές είναι οι: 0, MPI_MODE_NOSTORE/ NOPUT/ NOPRECEDE/ NOSUCCEED Η παράμετρος win καθορίζει το παράθυρο για το οποίο επιθυμούμε να γίνει ο συγχρονισμός Είναι σημαντικό να τονίσουμε ότι η συνάρτηση MPI_Win_fence πρέπει πάντα να καλείται δύο φορές, μια πριν την έναρξη λειτουργιών απομακρυσμένης προσπέλασης και μια 9

10 μετά τον τερματισμό τους Ένα παράδειγμα χρήσης της MPI_Win_fence διακρίνεται στη λίστα 2 Στο παράδειγμα αυτό, η διεργασία 0 δημιουργεί ένα παράθυρο μνήμης και το εκθέτει καλώντας την MPI_Win_fence Από την άλλη μεριά, η διεργασία 1 χρησιμοποιώντας την MPI_Win_fence ξεκινάει την περίοδο προσπέλασής της και τοποθετεί κάποια δεδομένα στο απομακρυσμένο παράθυρο Έπειτα, καλεί ξανά την MPI_Win_fence ώστε να τερματίσει την περίοδο προσπέλασης Κάτι αντίστοιχο κάνει και η διεργασία 0 τερματίζοντας την περίοδο έκθεσης Στο σημείο αυτό, τα δεδομένα που έχει τοποθετήσει η διεργασία 1 στη μνήμη της διεργασίας 0 είναι διαθέσιμα και η διεργασία 0 μπορεί να τα προσπελάσει Η δεύτερη μέθοδος συγχρονισμού που παρέχει το MPI-2 στηρίζεται στη χρήση τεσσάρων συναρτήσεων: MPI_Win_post, MPI_Win_start, MPI_Win_complete και MPI_Win_wait H πρώτη από τις παραπάνω συναρτήσεις καλείται από τη διεργασία στόχο ώστε να θέσει το παράθυρό της σε περίοδο έκθεσης Η δεύτερη, καλείται από τη διεργασία προέλευσης ώστε να δηλώσει την αρχή της περιόδου προσπέλασης Ομοίως, η τρίτη συνάρτηση καλείται από τη διεργασία προέλευσης ώστε να δηλώσει τον τερματισμό της περιόδου προσπέλασης Τέλος, η τελευταία συνάρτηση καλείται από τη διεργασία στόχο ώστε να δηλώσει τον τερματισμό της περιόδου έκθεσης Οι συναρτήσεις αυτές ορίζονται ως εξής: MPI_Win_post/ start/ complete/ wait int MPI_Win_post(MPI_Group group, int assert, MPI_Win win); int MPI_Win_start(MPI_Group group, int assert, MPI_Win win); int MPI_Win_complete(MPI_Win win); int MPI_Win_wait(MPI_Win win); Στις παραπάνω συναρτήσεις, το όρισμα assert επιτρέπει τον καθορισμό επιπρόσθετων πληροφοριών για τη λειτουργία του συγχρονισμού και είναι το ίδιο με το όρισμα που δέχεται η συνάρτηση MPI_Win_fence Το όρισμα group καθορίζει την ομάδα των διεργασιών που θέλουμε να συγχρονιστούν Όταν μια διεργασία στόχος εκθέσει το παράθυρό της καλώντας την MPI_Win_post, δίνει τη δυνατότητα σε όλες τις διεργασίες που ανήκουν στην ομάδα που καθορίζεται από την παράμετρο group να το προσπελάσουν Αντίστοιχα, όταν μια διεργασία προέλευσης εκκινήσει μια περίοδο προσπέλασης καλώντας την MPI_Win_start, πρέπει όλες οι διεργασίες που ανήκουν στην ομάδα group να καλέσουν τη συνάρτηση MPI_Win_post Τέλος, η παράμετρος win καθορίζει το παράθυρο για το οποίο επιθυμούμε να γίνει ο συγχρονισμός Ένα παράδειγμα χρήσης των MPI_Win_post/ start/ complete/ wait διακρίνεται στη λίστα 3 Στο παράδειγμα αυτό, η διεργασία 0 δημιουργεί ένα παράθυρο μνήμης και το εκθέτει καλώντας την MPI_Win_post Από την άλλη μεριά, η διεργασία 1 χρησιμοποιώντας την MPI_Win_start ξεκινάει την περίοδο προσπέλασής της και τοποθετεί κάποια δεδομένα στο απομακρυσμένο παράθυρο Έπειτα, καλεί την MPI_Win_complete ώστε να τερματίσει την 10

11 Λίστα 3: Παράδειγμα χρήσης των MPI_Win_post/ start/ complete/ wait i n t Array [ SIZE ] ; MPI_Group comm_group, group ; MPI_Win win ; i n t rank, d e s t r a n k ; MPI_Comm_rank (MPI_COMM_WORLD, &r a n k ) ; MPI_Comm_group (MPI_COMM_WORLD, &comm_group ) ; i f ( rank == 0) { MPI_Win_create ( Array, SIZE * s i z e o f ( i n t ), s i z e o f ( i n t ), MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ; d e s t r a n k = 0 ; MPI_Group_incl ( comm_group, 1, &d e s t r a n k, &group ) ; MPI_Win_post ( group, 0, win ) ; MPI_Win_wait ( win ) ; p r i n t _ r e s u l t s ( Array ) ; } e l s e i f ( rank == 1) { MPI_Win_create (NULL, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ; d e s t r a n k = 1 ; MPI_Group_incl ( comm_group, 1, &d e s t r a n k, &group ) ; MPI_Win_start ( group, 0, win ) ; f o r ( i = 0 ; i < SIZE ; i ++) MPI_Put(& i, 1, MPI_INT, 1, i, 1, MPI_INT, win ) ; MPI_Win_complete ( win ) ; } 11

12 περίοδο προσπέλασης Κάτι αντίστοιχο κάνει και η διεργασία 0 καλώντας τη συνάρτηση MPI_Win_wait τερματίζοντας την περίοδο έκθεσης Στο σημείο αυτό, τα δεδομένα που έχει τοποθετήσει η διεργασία 1 στη μνήμη της διεργασίας 0 είναι διαθέσιμα και η διεργασία 0 μπορεί να τα προσπελάσει Είναι σημαντικό να τονίσουμε ότι η MPI_Win_wait είναι μια παρεμποδιστική μέθοδος και η κλήση της ολοκληρώνεται μόλις η διεργασία προέλευσης καλέσει την MPI_Win_complete Το τελευταίο είδος συγχρονισμού που παρέχει το MPI-2 στηρίζεται στη χρήση αμοιβαίου αποκλεισμού Οι συναρτήσεις συγχρονισμού που παρέχονται για αυτό το μοντέλο είναι οι MPI_Win_lock, MPI_Win_unlock και καλούνται μόνο από τη διεργασία προέλευσης Να τονίσουμε ότι σε αυτό το μοντέλο η διεργασία στόχος δε συμμετέχει στη διαδικασία του συγχρονισμού Οι συναρτήσεις αυτές έχουν την εξής μορφή: MPI_Win_lock/ unlock int MPI_Win_lock(int locktype, int rank, int assert, MPI_Win win); int MPI_Win unlock(int rank, MPI_Win win); Η παράμετρος locktype μπορεί να πάρει είτε την τιμή MPI_LOCK_EXCLUSIVE, είτε την τιμή MPI_LOCK_SHARED Στην πρώτη περίπτωση η πρόσβαση στο παράθυρο μνήμης της διεργασίας στόχου είναι αποκλειστική, ενώ στη δεύτερη περίπτωση είναι κοινόχρηστη Η παράμετρος rank καθορίζει τη διεργασία στόχο της οποίας το παράθυρο μνήμης πρόκειται να προσπελαστεί, ενώ η παράμετρος win καθορίζει το παράθυρο Τέλος, η παράμετρος assert επιτρέπει τον καθορισμό επιπρόσθετων πληροφοριών για τη λειτουργία του συγχρονισμού και είναι το ίδιο με το όρισμα που δέχεται η συνάρτηση MPI_Win_fence Ένα παράδειγμα χρήσης των MPI_Win_lock/ unlock διακρίνεται στη λίστα 4 Στο παράδειγμα αυτό, η διεργασία 0 δημιουργεί ένα παράθυρο μνήμης Από την άλλη μεριά, οι υπόλοιπες διεργασίες χρησιμοποιώντας την MPI_Win_lock κλειδώνουν το παράθυρο και τοποθετούν σε αυτό κάποια δεδομένα Επειδή στην MPI_Win_lock χρησιμοποιείται η παράμετρος MPI_LOCK_EXCLUSIVE, μόνο μια διεργασία θα καταφέρει να αποκτήσει την κλειδαριά, ώστε να προσπελάσει το παράθυρο Οι υπόλοιπες θα μπλοκάρουν στην ΜPI_Win_lock μέχρι η διεργασία που έχει την κλειδαριά να την ελευθερώσει καλώντας την MPI_Win_unlock Η διεργασία 0 δε συμμετέχει σε αυτή την επικοινωνία Μόλις όλες οι διεργασίες τελειώσουν με την προσπέλαση του παραθύρου, η διεργασία 0 μπορεί να χρησιμοποιήσει τα δεδομένα του Είναι φανερό πως αυτό το μοντέλο συγχρονισμού μοιάζει με το μοντέλο κοινόχρηστης μνήμης 12

13 Λίστα 4: Παράδειγμα χρήσης των MPI_Win_lock/ unlock i n t Array [ SIZE ] ; MPI_Group comm_group, group ; MPI_Win win ; i n t rank ; MPI_Comm_rank (MPI_COMM_WORLD, &r a n k ) ; i f ( rank == 0) { MPI_Win_create ( Array, SIZE * s i z e o f ( i n t ), s i z e o f ( i n t ), MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ; } e l s e i f ( rank == 1) { MPI_Win_create (NULL, 0, 1, MPI_INFO_NULL, MPI_COMM_WORLD, &win ) ; MPI_Win_lock ( MPI_LOCK_EXCLUSIVE, 0, 0, win ) ; f o r ( i = 0 ; i < SIZE ; i ++) MPI_Put(& i, 1, MPI_INT, 1, i, 1, MPI_INT, win ) ; MPI_Win_unlock ( 0, win ) ; } MPI_Barrier ( ) ; i f ( rank == 0) p r i n t _ r e s u l t s ( Array ) ; 13

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

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

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

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

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

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

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

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

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

Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC

Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος 2016 1 Επισκόπηση

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

Αρχιτεκτονική κοινής μνήμης

Αρχιτεκτονική κοινής μνήμης Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα

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

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

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

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

Ιδιοκτησία Αντικειµένου

Ιδιοκτησία Αντικειµένου Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται

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

Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

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

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

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

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

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

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

Προγραμματισμός ΙI (Θ)

Προγραμματισμός ΙI (Θ) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κεντρικής Μακεδονίας - Σέρρες Τμήμα Μηχανικών Πληροφορικής Προγραμματισμός ΙI (Θ) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Μάρτιος 2017 Δρ. Δημήτρης Βαρσάμης Μάρτιος 2017

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

Τοπολογίεσ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Τοπολογίεσ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τοπολογίεσ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τοπολογίεσ ςτο MPI Γιατί να ορίςω τοπολογία; Βολεφει ςε ςυγκεκριμζνουσ αλγορίκμουσ (πχ. Επεξεργαςία εικόνασ ι ςιματοσ) Ποιοί είναι οι γείτονζσ

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

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

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

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

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

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

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

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

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

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

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Νήματα & Συγχρονισμός Μεταβλητές κλειδιά Φράγματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Συγχρονισμός μεταξύ νημάτων

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

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

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

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

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

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

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

Εργαστήριο 5. Εαρινό Εξάμηνο

Εργαστήριο 5. Εαρινό Εξάμηνο Τομέας Υλικού και Αρχιτεκτονικής Υπολογιστών ΗΥ134 - Εισαγωγή στην Οργάνωση και Σχεδίαση Η/Υ 1 Εργαστήριο 5 Εαρινό Εξάμηνο 2012-2013 Στό χόι τόυ εργαστηρι όυ Χρήση στοίβας Αναδρομή Δομές δεδομένων Δυναμική

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

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

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

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

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT ΘΕΩΡΙΑ Στο project αυτό έχουμε υλοποιήσει τις βασικές συναρτήσεις της stdlib της C malloc και free Η συνάρτηση malloc είναι η void *malloc(int

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

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

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

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη

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

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

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

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

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής

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

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

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

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

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

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

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

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

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

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

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

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

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα. ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ Τμηματικός προγραμματισμός ονομάζεται η τεχνική σχεδίασης και ανάπτυξης των προγραμμάτων ως ένα σύνολο από απλούστερα τμήματα προγραμμάτων. Όταν ένα τμήμα προγράμματος επιτελεί ένα αυτόνομο

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 3: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αριθμητική Δεικτών Δείκτες και Πίνακες Παραδείγματα Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

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

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

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

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

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

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

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

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι

Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Εργαστήριο 6 ο 7 ο / Ερωτήματα Ι Απλά ερωτήματα Επιλογής Ερωτήματα με Ενώσεις πινάκων Ερωτήματα με Παραμετρικά Κριτήρια Ερωτήματα με Υπολογιζόμενα πεδία Απλά ερωτήματα Επιλογής Τα Ερωτήματα μας επιτρέπουν

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

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή

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

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική

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

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος http://www.teiser.gr/icd/staff/lantzos lantzos@teiser.gr 1 Μονοδιάστατοι Πίνακες (tables) Μια συλλογή μεταβλητών ίδιου τύπου οι οποίες είναι αποθηκευμένες

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

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

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

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

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

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

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

Κεφάλαιο 10 ο Υποπρογράµµατα

Κεφάλαιο 10 ο Υποπρογράµµατα Κεφάλαιο 10 ο Υποπρογράµµατα Ανάπτυξη Εφαρµογών σε Προγραµµατιστικό Περιβάλλον Η αντιµετώπιση των σύνθετων προβληµάτων και η ανάπτυξη των αντίστοιχων προγραµµάτων µπορεί να γίνει µε την ιεραρχική σχεδίαση,

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

Αντικειμενοστραφής Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός Κλάσεις Αντικειμενοστραφής Προγραμματισμός Κλάσεις-Αντικείμενα Ένα παράδειγμα Συναρτήσεις κατασκευής (Constructors) Συνάρτηση καταστροφής (Destructor) Συναρτήσεις πρόσβασης (Access Functions) Συνάρτηση

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι new Όπως είδαμε για να δημιουργήσουμε ένα αντικείμενο χρειάζεται να καλέσουμε τη new. Για τον πίνακα είπαμε ότι

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

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

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

Ανάπτυξη και Σχεδίαση Λογισμικού Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Συναρτήσεις της C Τα Λοιπά Στοίβα και μηχανισμός κλήσης Αναδρομικές συναρτήσεις Στατικές μεταβλητές Άλλα θέματα Μηχανισμός

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

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

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

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

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης: Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 8 η Δείκτες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 13 η Δομές & Ενώσεις Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους

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

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

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

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π ( Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός

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

Ασκή σεις στή δομή επανα λήψής

Ασκή σεις στή δομή επανα λήψής Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον 1 Ασκή σεις στή δομή επανα λήψής Ανάγνωση Στοιχείων Εύρεση Πλήθους 1. Να γραφεί αλγόριθμος ο οποίος να διαβάζει Ν πραγματικούς αριθμούς. Αλγόριθμος Άσκηση1

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο 2005-06. Κατανεµηµένα συστήµατα αρχείων. Μέρη κατανεµηµένου συστήµατος αρχείων Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 «Κατανεµηµένα Συστήµατα Αρχείων (1/2)» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Σύστηµα αρχείων Αποθήκευση, προσπέλαση και διαχείριση δεδοµένων

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI) Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης

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

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2)

Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2) Τμήμα Μηχανικών Πληροφορικής Αριθμητικές Μέθοδοι σε Προγραμματιστικό Περιβάλλον (Εργαστήριο 2) Δρ. Δημήτρης Βαρσάμης Επίκουρος Καθηγητής Δρ. Δημήτρης Βαρσάμης Αριθμητικές Μέθοδοι (E 2) Σεπτέμβριος 2015

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

Ασκήσεις - Μελέτες περίπτωσης για το μάθημα Προγραμματισμός II

Ασκήσεις - Μελέτες περίπτωσης για το μάθημα Προγραμματισμός II Ασκήσεις - Μελέτες περίπτωσης για το μάθημα Προγραμματισμός II (1) Να καταστρωθεί πρόγραμμα, το οποίο θα διαβάζει δύο αλφαριθμητικά από το πληκτρολόγιο και θα τα μεταβιβάζει στη συνάρτηση str_index(char

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Συναρτήσεις (1/2) Στη C χρησιμοποιούμε συχνά τις συναρτήσεις (functions), οι οποίες είναι ρουτίνες που επαναλαμβάνονται

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

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 3 Επανάληψη Γ μέρος ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 3 Επανάληψη Γ μέρος 1. Στόχος του εργαστηρίου Στόχος του τρίτου εργαστηρίου είναι

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

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

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

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

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

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

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

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

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

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

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

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

φροντιστήρια Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής

φροντιστήρια   Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέματα Ανάπτυξης Εφαρμογών σε Προγραμματιστικό Περιβάλλον Γ λυκείου Προσανατολισμός Σπουδών Οικονομίας και Πληροφορικής Θέμα Α Α1. Να γράψετε στο τετράδιο σας το γράμμα της κάθε πρότασης και δίπλα τη λέξη

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 10: Δείκτες Δείκτες Υπάρχουν περιπτώσεις που δεν ενδιαφέρει το περιεχόμενο αλλά η μιας μεταβλητής. Χρειάζεται κατάλληλος μηχανισμός αναφοράς και επεξεργασίας τιμών που

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2014-15

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

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

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

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

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης: Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος

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

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

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

Τφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Τφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τφποι δεδομζνων MPI Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ MPI datatypes Σκοπόσ MPI datatypes: θ ςυνεργαςία μεταξφ ετερογενών υπολογιςτών και αρχιτεκτονικών Η χριςθ μθ ςυνεχών κζςεων μνιμθσ.

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 21/10/2016

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

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος Προηγμένοι Μικροεπεξεργαστές Έλεγχος Ροής Προγράμματος Control Flow εντολές Jump related JMP Jcc (JZ, JNZ, JB, JNB etc) JCXZ, JECXZ LOOP LOOPE, LOOPNE Procedure related CALL RET INT IRET INTO ENTER LEAVE

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

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

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή 6 Δημιουργία λογαριασμού 13 Εγκατάσταση και λειτουργία του Skype 28 Βασικές λειτουργίες 32 Επιλογές συνομιλίας 48 Γενικές ρυθμίσεις Skype 64 Το Skype σε φορητές συσκευές 78 Εγγραφή

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

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

Η γλώσσα προγραμματισμού C Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C Οι συναρτήσεις τι είναι Πρόκειται για ανεξάρτητα τμήματα ενός προγράμματος (υποπρογράμματα) που επιτελούν συγκεκριμένες εργασίες. Καλούνται από το κυρίως

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

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

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

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή Παράλληλα και Κατανεµηµένα Συστήµατα 1 Εισαγωγή Στόχος της περιγραφής που ακολουθεί, αποτελεί η παρουσίαση του περιβάλλοντος διεπαφής ανταλλαγής µηνυµάτων (message passing interface) MPI δια της χρήσεως

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

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input). Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία

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

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ. Διεύθυνση μεταβλητής. Δείκτης ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ Τι περιλαμβάνει μια μεταβλητή; ΔΕΙΚΤΕΣ Πρώτα να δούμε τι ακριβώς συμπεριλαμβάνει μια μεταβλητή τύπος Καθορίζει το μέγεθος στην μνήμη σε Bytes τιμή Η αριθμητική τιμή που αποθηκεύεται στην

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

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

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

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

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

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 13 Πίνακες & Συναρτήσεις Εισαγωγή Στις προηγούμενες

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 2. Πίνακες 45 23 28 95 71 19 30 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 12/10/2017

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

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή

1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΗΠΕΙΡΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Τ.Ε. Εργαστήριο Επεξεργασία Εικόνας & Βίντεο 1 η Εργαστηριακή Άσκηση MATLAB Εισαγωγή Νικόλαος Γιαννακέας Άρτα 2018 1 Εισαγωγή Το Matlab

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Δομές Δεδομένων

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

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

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

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

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

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις 5 Απριλίου 01 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα

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

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αναφορές Αντικείμενα ως ορίσματα Η μνήμη του υπολογιστή Η κύρια μνήμη (main memory - RAM) του υπολογιστή κρατάει τα δεδομένα για την εκτέλεση των προγραμμάτων.

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

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( ) ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ Γεώργιος Παπαϊωάννου (2013-16) gepap@aueb.gr Περιγραφή: Μορφές μεταβίβασης ορισμάτων σε συναρτήσεις (και μεθόδους) και οι επιπτώσεις τους Επιστροφή τιμών από κλήση συναρτήσεων Υπερφόρτωση

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

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos

Ακρότατα πίνακα, χωρίς min, max, μόνο με pos Ακρότατα πίνακα, χωρίς min, max, μόνο με pos Θέμα εξετάσεων / 2010 Θέμα εξετάσεων / 2011 Θέμα εξετάσεων / 2013 Θέμα εξετάσεων / 2014 Θέμα εξετάσεων / 2014 ΟΜΟΣΠΟΝΔΙΑ ΕΚΠΑΙΔΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑΔΟΣ (Ο.Ε.Φ.Ε.)

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