Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009

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

Download "Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009"

Transcript

1 Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 2 ο 27/10/2009 Προγραμματισμός «κοινού χώρου διευθύνσεων» (κοινής μνήμης) Β. Δημακόπουλοσ

2 Shared address space / shared variables Σι χρειάηεται κανείσ για να προγραμματίςει ςε αυτό το μοντζλο: Οντότθτεσ εκτζλεςθσ (νιματα, διεργαςίεσ) Δθμιουργία, διαχείριςθ Κοινζσ μεταβλθτζσ μεταξφ των οντοτιτων Οριςμόσ μεταβλθτϊν (τι είναι κοινό και πωσ ορίηεται) Σισ διαβάηουν και τισ τροποποιοφν όλεσ οι διεργαςίεσ Αμοιβαίοσ αποκλειςμόσ Π.χ. κλειδαριζσ υγχρονιςμόσ Π.χ. κλιςεισ φραγισ (barrier calls) #2

3 Γιατί αμοιβαίοσ αποκλειςμόσ; Αρχικά η κοιμή μεταβλητή A είμαι 0 Νήμα Τ1 Νήμα Τ2 A = Α+1; Α = Α-1; Λεπτομζρεια εκτζλεςθσ τθσ εντολισ Α = Α±1 ςε ζναν επεξεργαςτι: α. Ο επεξεργαςτισ μεταφζρει από τθ μνιμθ τθν τιμι τθσ Α β. Αυξάνει/μειϊνει κατά 1 γ. Αποκθκεφει ςτθν μνιμθ τθν νζα τιμι. Χρονική ςτιγμή Τι κάνει ο επεξεργαςτήσ 1 Τι κάνει ο επεξεργαςτήσ 2 t α - t + 1 β α t + 2 γ β t γ Α = -1 Χρονική ςτιγμή Τι κάνει ο επεξεργαςτήσ 1 Τι κάνει ο επεξεργαςτήσ 2 t - α t + 1 α β t + 2 β γ t + 3 γ Α = 1 Χρονική ςτιγμή Εντολή που εκτελεί ο επεξεργαςτήσ 1 Εντολή που εκτελεί ο επεξεργαςτήσ 2 t - α t β t γ t + 3 t + 4 t + 5 α β γ Α = 0 #3

4 Δθμιουργία οντοτιτων εκτζλεςθσ fork() για διεργαςίεσ int x = 2; (α)... x = fork(); (β) if (x == 0) /* παιδύ */ (γ) κώδικασ Α; (δ) else /* γονϋασ */ (ε) κώδικασ Β; (η) κώδικασ Γ;... main() fork(); fork(); fork(); main() int y = 0; y = 1; if (fork()) x = x+y; else x = x-y; printf( %d\n, x); Τι θα τυπωθεύ; Πόςεσ θα φτιαχτούν; #4

5 Δθμιουργία διεργαςιϊν Αντιγράφονται τα πάντα: Κακολικζσ μεταβλθτζσ ωρόσ (ότι ζχει γίνει malloc()) Ο κϊδικασ τθσ διεργαςίασ (ίςωσ να μθ χρειαςτεί αυτι θ αντιγραφι) τοίβα (ςτθν κατάςταςθ που βρίςκεται εκείνθ τθ ςτιγμι) Καταχωρθτζσ (p.x. program counter) Άρα, θ διεργαςία παιδί εκτελεί αμζςωσ μετά το fork() Άρα, τίποτε κοινό οι διεργαςίεσ μεταξφ τουσ Ιδιαίτερα χρονοβόρο Με τεχνικζσ όπωσ το copy-on-write μπορεί το Λ να μθν αντιγράψει τα πάντα (π.χ. τισ κακολικζσ μεταβλθτζσ) παρά μόνο όταν χρειαςτεί (δθλαδι πότε??), γλιτϊνοντασ κάποιον χρόνο #5

6 Δθμιουργία οντοτιτων εκτζλεςθσ νιματα (posix) Διαφορετικι λογικι ςτα νιματα Δεν δθμιουργείται αντίγραφο από τίποτε Δεν ξεκινάει θ εκτζλεςθ του νιματοσ από το ςθμείο δθμιουργίασ του Σο νιμα κα εκτελζςει μια ςυνάρτθςθ που κα του δοκεί και κα τερματίςει capitalize(char *strings[100]) pthread_create(&thrid, NULL, capfunc, (void*) string[5]);... void *capfunc(void *str)... #6

7 Προςοχι Πάντα #include <pthread.h> Μετάφραςθ: gcc <file.c> -D_REENTRANT -lpthread #7

8 Δθμιουργία νθμάτων pthread_create(&thrid, attributes, function_to_call, function_parameter); Η ςυνάρτθςθ του νιματοσ παίρνει πάντα μόνο ζνα όριςμα Σο νιμα «ηει» μζχρι να τελειϊςει (επιςτρζψει) θ ςυνάρτθςθ. Φυςικά θ ςυνάρτθςθ αυτι μπορεί να καλεί κι άλλεσ ςυναρτιςεισ Μόλισ επιςτρζψει το νιμα καταςτρζφεται Ο γονζασ (αρχικό νιμα), αφοφ δθμιουργιςει το νιμα ςυνεχίηει κανονικά τθν εκτζλεςι του main() pthread_create(&thrid, NULL, func, NULL); capitalize(char *strings[100]) pthread_create(&thrid, NULL, func, NULL); pthread_create(&thrid, NULL, func, NULL); for (i = 0; i < 100; i++) pthread_create(&thrid, NULL, capfunc, (void*) string[i]);... Πόςα θα φτιαχτούν; #8

9 Πϊσ μπορϊ να περάςω > 1 παραμζτρουσ; struct manyparams int x; int y; double z; ; main() struct manyparams myargs;... /* Pass a pointer to the structure */ pthread_create(&thrid, NULL, threadfunc, (void*) &myargs);... void *threadfunc(void *ptr) struct manyparams *s = ptr; /* Cast the pointer */... s->x += s->y;... #9

10 Σερματιςμόσ νιματοσ Δφο τρόποι: είτε επιςτρζφει από τθ ςυνάρτθςθ που του δόκθκε να εκτελζςει είτε καλεί τθν pthread_exit(&returnvalue) και τερματίηει αμζςωσ. Σιμι επιςτροφισ: είτε αυτό που γίνεται return από τθ ςυνάρτθςθ του νιματοσ είτε το όριςμα τθσ pthread_exit(). και ςτισ δφο περιπτϊςεισ, είναι δείκτθσ ςτθν τιμι αυτι (void *). #10

11 Αναμονι τερματιςμοφ νιματοσ main() pthread_t tids[5]; int i; for (i = 0; i < 5 i++) pthread_create(&tids[i], NULL, thrfunc, (void*) i); for (i = 0; i < 5; i++) pthread_join(tids[i], NULL); printf( All threads done.\n ); Σο cast αυτό κζλει πολφ προςοχι!! void *thrfunc(void *x) int id = (int) x; printf( Hi! I am thread %d\n, id); return (NULL); #11

12 Αμοιβαίοσ αποκλειςμόσ - κλειδαριζσ Από τουσ διάφορουσ τρόπουσ για αμοιβαίο αποκλειςμό, ο ςυχνότερα χρθςιμοποιοφμενοσ είναι οι κλειδαριζσ (locks). Η κλειδαριά είναι είτε ανοιχτι είτε κλειδωμζνθ. Όταν ζνα νιμα κλειδϊςει τθν κλειδαριά, οποιοδιποτε άλλο νιμα προςπακιςει να τθν κλειδϊςει κα αποτφχει και κα αναγκαςτεί να περιμζνει. Όταν το νιμα ολοκλθρϊςει τθ δουλειά του, ξεκλειδϊνει τθν κλειδαριά και ζνα από τα νιματα που περιμζνουν κα κατορκϊςει να τθν κλειδϊςει. Επομζνωσ, μία κρίςιμθ περιοχι του προγράμματοσ μπορεί να προςτατευκεί (αμοιβαίοσ αποκλειςμόσ) με μία κλειδαριά:... lock(kleidaria); <critical section> unlock(kleidaria);... #12

13 Κλειδαριζσ ςτα pthreads: mutexes main() pthread_mutex_t mymutex; pthread_mutex_init(&mymutex, NULL); pthread_mutex_lock(&mymutex);... /* Κρύςιμη περιοχό */ pthread_mutex_unlock(&mymutex); Αντί για pthread_mutex_init(), μποροφμε να κάνουμε και ςτατική αρχικοποίθςθ (αρχικοποίθςθ χρειάηεται πάντα): pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER; #13

14 Τπολογιςμόσ του π = 3,14 Αρικμθτικι ολοκλιρωςθ π x 2 4 3,5 3 2,5 2 1,5 1,5 1 0,5 0, ,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1 διάστημα i (π λάτος διαστημάτων x W = 0,1) N 1 i 0 1 (i 4W 1 2) W 2 #define N double pi = 0.0, W = 1.0/N; main() int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); #14

15 Τπολογιςμόσ του π = 3,14... με 1 νιμα ανά επανάλθψθ #define N double pi = 0.0, W = 1.0/N; main() int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); /* 1 νόμα ανϊ επανϊληψη */ #define N double pi = 0.0, W = 1.0/N; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *iter) int i = (int) iter; pthread_mutex_lock(&lock); pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); pthread_mutex_unlock(&lock); main() int i; pthread_t tids[n]; /* Remember the tread ids */ for (i = 0; i < N; i++) pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < N; i++) pthread_join(tids[i], NULL); printf("pi = %.10lf\n", pi); #15

16 Προβλιματα Τπερβολικά πολλά νιματα (πολλά ςυςτιματα δεν επιτρζπουν πάνω από λίγεσ χιλιάδεσ) και επομζνωσ υπερβολικά «λεπτόκοκκοσ» παραλλθλιςμόσ (fine grain) Ακόμα και αν επιτρζπονταν τόςα πολλά νιματα, ο ςυναγωνιςμόσ για τθν κλειδαριά είναι τεράςτιοσ. Αποτζλεςμα: αργι εκτζλεςθ και μόνο για μθ ακριβι προςζγγιςθ του π. Μάκθμα: η καλφτερη τακτική είναι ςυνήθωσ να δημιουργοφμε τόςα νήματα όςοι είναι και οι επεξεργαςτζσ του ςυςτήματοσ #16

17 Μοίραςμα τθσ δουλειάσ ςε λίγα νιματα #define NPROCS 2 /* dual core */ #define N /* Για ακρύβεια (ύδια με ςειριακό) */ #define WORK N/NPROCS double pi = 0.0, W = 1.0/N; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *iter) int i, me = (int) iter; for (i = me*work; i < (me+1)*work; i++) pthread_mutex_lock(&lock); pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); pthread_mutex_unlock(&lock); main() int i; pthread_t tids[nprocs]; for (i = 0; i < NPROCS; i++) /* νόματα = # επεξεργατών */ pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < NPROCS; i++) pthread_join(tids[i], NULL); printf("pi = %.10lf\n", pi); Τι πάει ςτραβά; #17

18 Λίγα νιματα αποφυγι ςυναγωνιςμοφ #define NPROCS 2 /* dual core */ #define N /* Για ακρύβεια (ύδια με ςειριακό) */ #define WORK N/NPROCS double pi = 0.0, W = 1.0/N; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *iter) int i, me = (int) iter; double mysum = 0.0; for (i = me*work; i < (me+1)*work; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); pthread_mutex_lock(&lock); pi += mysum; pthread_mutex_unlock(&lock); main() int i; pthread_t tids[nprocs]; for (i = 0; i < NPROCS; i++) /* νόματα = # επεξεργατών */ pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < NPROCS; i++) pthread_join(tids[i], NULL); printf("pi = %.10lf\n", pi); #18

19 Πίνακασ επί πίνακα for (i = 0; i < Ν; i++) for (j = 0; j < Ν; j++) for (k = sum = 0; k < N; k++) sum += Α[i][k]*B[k][j]; C[i][j] = sum; Παραλλθλοποίθςθ: Ενόσ βρόχου (i) μοίραςμα των επαναλιψεων του πρϊτου for ςε νιματα Δεν δουλεφει καλά πάντα, π.χ. τι γίνεται αν # επεξεργαςτϊν > Ν?? Δφο βρόχων (i και j) Checkerboard partitioning: παραλλθλοποίθςθ και των δφο βρόχων Μπορώ εναλλακτικά να παραλλθλοποιιςω τον βρόχο j και k? #19

20 Διαχωριςμόσ ςκακιζρασ c 00 c 01 c 0(S-1) c 0S c 0(N-1) c 10 c 11 c 1(S-1) c 1S c 1(N-1) C 00 C 01 C 0(M-1) c 20 c 21 c 2(S-1) c 2S c 2(N-1) Τποπίνακεσ διάςταςθσ S S c S0 c S1 c S(S-1) c SS c S(N-1) C 10 C 11 C 1(M-1) Άρα M = N/S υποπίνακεσ οριηόντια / κάκετα: M 2 υποπίνακεσ C (M-1)0 C (M-1)1 C (M-1)(M-1) c (N-1)0 c (N-1)1 c (N-1)S #20

21 Διαχωριςμόσ ςκακιζρασ αρίκμθςθ υποπινάκων C 00 C 01 C 0(M-1) C 10 C 11 C 1(M-1) Αν τουσ αρικμιςουμε από 0 ζωσ Μ 2-1, ο i-οςτόσ υποπίνακασ είναι ο C xy όπου: x = i / M y = i % M C xy C (M-1)0 C (M-1)1 C (M-1)(M-1) #21

22 Διαχωριςμόσ ςκακιζρασ το πρόγραμμα #define N 50 /* Πύνακασ 50x50 */ #define NPROCS 25 /* Αριθμόσ επεξεργαςτών/διεργαςιών */ #define M 5 /* Η ρύζα του 25 */ #define S N/M /* S = N / M */ double A[N][N], B[N][N], C[N][N]; void *thrfunc(void *arg) int i, j, k, x, y, myid = (int) arg; double sum = 0.0; x = myid / M; y = myid % M; for (i = x*s; i < (x+1)*s; i++) /* υπολογύζει τα ςτοιχεύα του Cxy */ for (j = y*s; j < (y+1)*s; j++) for (k = 0; k < N; k++) sum += A[i][k]*B[k][j]; C[i][j] = sum; ; Δεν υπάρχει ανάγκθ αμοιβαίου αποκλειςμοφ Embarrassingly parallel main() int i; pthread_t tids[nprocs]; for (i = 0; i < NPROCS; i++) pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < NPROCS; i++) pthread_join(tids[i], NULL); #22

23 Πίνακασ επί διάνυςμα πιο απλό? float A[N][N], v[n], res[n]; for (i = 0; i < Ν; i++) res[i] = 0.0; for (j = 0; j < Ν; j++) res[i] += Α[i][j]*v[j]; Παραλλθλοποίθςθ του βρόχου i, μοιράηοντασ τισ επαναλιψεισ ςτα νιματα #23

24 Πίνακασ επί διάνυςμα παράλλθλα (Ι) main() int i; pthread_t tids[nprocs]; for (i = 0; i < NPROCS; i++) pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < NPROCS; i++) pthread_join(tids[i], NULL); #define N 8000 #define NPROCS 8 #define RPT N/NPROCS /* "Rows Per Thread" */ double A[N][N], v[n], res[n]; void *thrfunc(void *arg) int i, j, myid = (int) arg; Καλόσ κϊδικασ, όταν NPROC < N. Σι γίνεται όταν, όμωσ, ζχουμε NPROC > N? for (i = myid*rpt; i < (myid+1)*rpt; i++) res[i] = 0.0; for (j = 0; j < N; j++) res[i] += A[i][j]*v[j]; Η παραλλθλοποίθςθ του βρόχου, τότε, δεν κα δουλεφει καλά. Θα υπάρχουν διεργαςίεσ που δεν κάνουν τίποτε! παραλλθλοποίθςθ και των δφο βρόχων (i και j) μαηί #24

25 Πίνακασ επί διάνυςμα παράλλθλα (ΙΙ) #define N 100 #define NPROCS 200 #define RPT N/NPROCS /* "Rows Per Thread" */ double A[N][N], v[n], res[n]; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *arg) int i, j, myid = (int) arg; double sum = 0.0; main() int i; pthread_t tids[nprocs]; for (i = 0; i < N; i++) res[i] = 0.0; for (i = 0; i < NPROCS; i++) pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < NPROCS; i++) pthread_join(tids[i], NULL); i = myid / 2; /* Γραμμό που αναλαμβϊνω */ myhalf = (N/2)*(myid % 2); /* Οι μιςϋσ επαναλόψεισ του j */ for (j = myhalf; j < myhalf + N/2; j++) sum += A[i][j]*v[j]; pthread_mutex_lock(&lock); res[i] += sum; pthread_mutex_unlock(&lock); Παράλλθλθ αρχικοποίθςθ; Κάκε ηεφγοσ νθμάτων να αρχικοποιεί το δικό του res[i] Π.χ. το ηυγό νιμα (myid%2 == 0) να κάνει res[i] = 0.0. Τπάρχει κάποιο πρόβλθμα; Απαιτείται, πλζον, αμοιβαίοσ αποκλειςμόσ. Προςοχι ςτθν αρχικοποίθςθ του res[]. #25

26 υγχρονιςμόσ! Οι οντότθτεσ εκτζλεςθσ πρζπει μερικζσ φορζσ να ςυγχρονίηονται. Θα πρζπει να περιμζνουν μζχρι να ςυμβεί κάποιο γεγονόσ υνικθσ μθχανιςμόσ: φράγματα (barriers) κάποιο νιμα που καλεί μία ςυνάρτθςθ φράγματοσ, μπλοκάρει και περιμζνει όλα τα υπόλοιπα νιματα να φτάςουν ςτο φράγμα πριν προχωριςει παρακάτω. Μόλισ φτάςει και το τελευταίο, «ξεμπλοκάρουν» όλα και ςυνεχίηουν τθν εκτζλεςι τουσ. pthread_barrier_wait() Δεν είναι μζροσ του «κλαςικοφ» ςτάνταρ. Αποτελεί επζκταςθ. Για να χρθςιμοποιθκεί ςτα ςυςτιματα που το υποςτθρίηουν, πρζπει ςτον κϊδικα να μπει #define _XOPEN_SOURCE 600 #26

27 ωςτι παράλλθλθ αρχικοποίθςθ #define N 100 #define NPROCS 200 #define RPT N/NPROCS /* "Rows Per Thread" */ double A[N][N], v[n], res[n]; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; pthread_barrier_t *bar; void *thrfunc(void *arg) int i, j, myid = (int) arg; double sum = 0.0; i = myid / 2; /* Γραμμό που αναλαμβϊνω */ myhalf = (N/2)*(myid % 2); /* Οι μιςϋσ επαναλόψεισ του j */ for (j = myhalf; j < myhalf + N/2; j++) sum += A[i][j]*v[j]; if (myid % 2 == 0) res[i] = 0.0; pthread_barrier_wait(bar); Όλα τα νιματα ςτον ίδιο barrier! pthread_mutex_lock(&lock); res[i] += sum; pthread_mutex_unlock(&lock); Άλλθ ιδζα; Σο άρτιο νιμα να δθμιουργεί το περιττό, αμζςωσ μετά τθν αρχικοποίθςθ (άρα => παράλλθλθ δθμιουργία νθμάτων) #27

28 Μεταβλθτζσ ςυνκικθσ Ο βαςικόσ μθχανιςμόσ ςυγχρονιςμοφ ςτα νιματα Posix. Ζνα νιμα κα περιμζνει ςε μια μεταβλθτι ςυνκικθσ ζωσ ότου θ μεταβλθτι το ενθμερϊςει ότι μπορεί να ςυνεχίςει Κάποιο άλλο νιμα ςθματοδοτεί τθ μεταβλθτι ςυνκικθσ, επιτρζποντασ άλλα νιματα να ςυνεχίςουν Κάκε μεταβλθτι ςυνκικθσ, ωσ διαμοιραηόμενο δεδομζνο, ςυςχετίηεται και με ζνα ςυγκεκριμζνο mutex Με τισ μεταβλθτζσ ςυνκικθσ αποφεφγεται ο ςυνεχισ ζλεγχοσ (busy waiting) τθσ κατάςταςθσ των δεδομζνων Ζνα νιμα που τροποποιεί τθν τιμι των δεδομζνων ειδοποιεί τα ενδιαφερόμενα μζςω μιασ μεταβλθτισ ςυνκικθσ Παράδειγμα: χιμα παραγωγοφ καταναλωτι με χριςθ ουράσ δεδομζνων Σο νιμα-καταναλωτισ εξάγει και επεξεργάηεται ςτοιχεία τθσ oυράσ εφόςον αυτι δεν είναι άδεια, διαφορετικά μπλοκάρει Σο νιματα-παραγωγόσ προςκζτει ςτοιχεία ςτθν ουρά και ειδοποιεί με τθ μεταβλθτι ςυνκικθσ το νιμα καταναλωτι που περιμζνει #28

29 Χριςθ τατικι αρχικοποίθςθ: pthread_cond_t condition = PTHREAD_COND_INITIALIZER; Δυναμικι αρχικοποίθςθ: pthread_cond_init(&condition); Μια μεταβλθτι ςυνκικθσ ςυςχετίηεται πάντοτε με ζνα mutex Αναμονι με: pthread_cond_wait(&condition, &mutex); Σο νιμα αναςτζλλει τθν εκτζλεςθ του μζχρι να ςθματοδοτθκεί θ μεταβλθτι ςυνκικθσ Σο νιμα πρζπει να ζχει ιδθ κλειδϊςει το ςυςχετιηόμενο mutex Σο νιμα αναςτζλλεται ενϊ το mutex ξεκλειδϊνεται αυτόματα ϊςτε να επιτραπεί θ χριςθ του από άλλα νιματα Όταν το νιμα ενεργοποιθκεί με τθν ειδοποίθςθ του μζςω τθσ μεταβλθτισ ςυνκικθσ, αυτόματα το mutex είναι κλειδωμζνο από το ίδιο #29

30 θματοδότθςθ pthread_cond_signal(&condition); pthread_cond_broadcast(&condition); Με τθν pthread_cond_signal ζνα νιμα ειδοποιεί κάποιο άλλο νιμα που περιμζνει ςε κάποια μεταβλθτι ςυνκικθσ Με τθν pthread_cond_broadcast, ζνα νιμα ειδοποιεί όλα τα νιματα που περιμζνουν ςε κάποια μεταβλθτι ςυνκικθσ Σο νιμα που πρόκειται να ςθματοδοτιςει μια μεταβλθτι ςυνκικθσ ςυνικωσ ζχει κλειδϊςει το mutex που ςυςχετίηεται με αυτι. τθν περίπτωςθ αυτι πρζπει να ελευκερϊςει το mutex ϊςτε να ςυνεχιςτεί θ εκτζλεςθ τθσ pthread_cond_wait #30

31 Διαδικαςία Τπάρχει κάποια ςυνκικθ ι κάποιο γεγονόσ που κζλουμε να ελζγξουμε (ζςτω π.χ. εάν count >= N). Απαιτείται μία condition variable (cond) και μια κλειδαριά (mut) Ο ζλεγχοσ του γεγονότοσ γίνεται μόνο αφοφ πρϊτα το νιμα κλειδϊςει το mut. Αν το γεγονόσ/ςυνκικθ ιςχφει (π.χ. count >= N) τότε Σο νιμα ξεκλειδϊνει το mut και υνεχίηει τθν εκτζλεςι του Αν το γεγονόσ/ςυνκικθ δεν ιςχφει τότε Σο νιμα αναςτζλλεται καλϊντασ τθν pthread_cond_wait(&cond,&mut) το mut ξεκλειδϊνεται αυτόματα από το ςφςτθμα Κάποιο άλλο νιμα κα καλζςει τθν pthread_cond_signal(&cond) όταν θ ςυνκικθ γίνει αλθκισ Σο πρϊτο νιμα ξυπνάει από τθν αναμονι ζχοντασ το mutex αυτόματα κλειδωμζνο και εκτελεί τθ δουλειά του Σο νιμα ξεκλειδϊνει το mutex όταν ζχει ολοκλθρϊςει #31

32 Παραδείγματα #32

33 Παραδείγματα #33

34 Ορκόσ τρόποσ χριςθσ /* THREAD A * Wait for the flag to become TRUE */ pthread_mutex_lock(&lock); while (flag == FALSE) pthread_cond_wait(&condvar, &lock); pthread_mutex_unlock(&lock); /* THREAD B */ if (something_happens) pthread_mutex_lock(&lock); flag = TRUE; pthread_cond_signal(&condvar); pthread_mutex_unlock(&lock); Γιατί θ κλειδαριά; Διότι το pthread_cond_signal() είναι memoryless: αν ζνα signal ςταλεί αλλά δεν υπάρχει κάποιο νιμα που κάνει wait(), τότε το ςιμα χάνεται. Αν αμζςωσ μετά το while και πριν προλάβει να κάνει wait(), το νιμα Β κάνει singal(), τότε το ςιμα κα χακεί και το νιμα Α κα περιμζνει για πάντα. Γιατί το while; Διότι μπορεί μετά το flag = TRUE να ξφπνθςε το νιμα Α, αλλά να πρόλαβε ζνα άλλο νιμα να το ζκανε πάλι FALSE. Επίςθσ μπορεί μερικζσ φορζσ κάποιο νιμα να ξυπνιςει από το wait() απρόςμενα, οπότε πριν προχωριςει κα πρζπει να ξαναελζγξει αν όντωσ το flag είναι TRUE. #34

35 Εργαςία (ςε 1 εβδομάδα) Διάβαςμα και παρουςίαςθ των αλγορίκμων για κλειδαριζσ και barriers από το paper: Algorithms for scalable synchronization on shared-memory multiprocessors, John M. Mellor-Crummey, Michael L. Scott, ACM TOCS (1991) Link: Πιο «μαηεμζνα» (?) για barriers: διαφάνεια ανά αλγόρικμο (λογικι αλγορίκμου + ςχιμα) 4-5 για locks 4-5 για barrier #35

36 Δυναμικι ςυμπεριφορά Η μζχρι τϊρα διάςπαςθ ςε «εργαςίεσ» ιταν ςτατικι δθλαδι είχαμε προκακορίςει ακριβώσ τι κα εκτελζςει το κάκε νιμα. π.χ. ςτο π, ι ο διαχωριςμόσ ςκακιζρασ ςτον πολ/μο πινάκων Ωσ γνϊμονα είχαμε τθν ιςοκατανομι φόρτου ϊςτε όλα τα νιματα να εκτελζςουν παρόμοιο ζργο και άρα να δουλζψουν για ίδιο χρονικό διάςτθμα (που είναι το ιδανικό). Σι γίνεται όμωσ αν κάποιοι επεξεργαςτζσ Είναι πιο αργοί από τουσ άλλουσ ι Για το ςυγκεκριμζνο διάςτθμα είναι περιςςότερο φορτωμζνοι από τουσ άλλουσ (διότι π.χ. εκτελοφν και κάποια άλλθ εφαρμογι) ε αυτι τθν περίπτωςθ, θ ιςόποςθ διαμοίραςθ των εργαςιϊν ΔΕΝ ΕΙΝΑΙ ΟΤΙ ΚΑΛΥΤΕΡΟ! #36

37 Αυτοδρομολόγθςθ (self-scheduling) Εφαρμόηετε ςε αυτζσ τισ περιπτϊςεισ. Δυναμικά (δθλαδι κατά τθν ϊρα τθσ εκτζλεςθσ), τα πιο «αργά» νιματα κα εκτελζςουν λιγότερο ζργο. Πϊσ; Δεν προκακορίηουμε τι κα εκτελζςει το κάκε νιμα Αφινουμε κάκε νιμα να ηθτάει δουλειά να κάνει Όςο πιο γριγορα τελειϊςει μία δουλειά, τόςεσ περιςςότερεσ δουλειζσ κα πάρει να εκτελζςει while (there-are-things-to-do) Work = get-the-next-work() execute(work); #37

38 Αυτοδρομολόγθςθ κϊδικασ Ζςτω ότι κάπωσ ζχουμε χωρίςει τθ δουλειά ςε NUMWORKS εργαςίεσ, από 0 ζωσ NUMWORKS 1. Ζςτω ότι θ i-οςτι εργαςία εκτελείται ωσ execute(i) #define NUMWORKS 100 int workid; pthread_mutex_t worklock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *arg) int t; while (1) /* Για πϊντα */ pthread_mutex_lock(&worklock); t = workid++; pthread_mutex_unlock(&worklock); if (t >= NUMWORKS) break; execute(t); #38

39 Αυτοδρομολόγθςθ, ςυνζχεια Για οποιαδιποτε εφαρμογι, ΑΚΡΙΒΩ το ίδιο πρόγραμμα Αρκεί μόνο να κζςουμε το NUMWORKS ςε ςωςτι τιμι και να υλοποιιςουμε τθ κατάλλθλθ execute() Σα ταχφτερα νιματα «κλζβουν» τισ πιο πολλζσ εργαςίεσ και άρα καλφτερθ κατανομι φόρτου τθ γενικότερθ μορφι τθσ, υπάρχει μία ουρά από εργαςίεσ που πρζπει να εκτελεςτοφν. Σα νιματα «τραβοφν» εργαςίεσ από τθν κεφαλι τθσ ουράσ Αν δεν υπάρχει μεγάλθ διαφορά ςτισ ταχφτθτεσ (π.χ. το ςφςτθμα εκτελεί μόνο τθ δικι μασ εφαρμογι), θ αυτοδρομολόγθςθ δεν είναι πάντα ότι καλφτερο μιασ και ζχει ςυναγωνιςμό για τθν κλειδαριά (ι τθν πρόςβαςθ ςτθν ουρά), για κάκε εργαςία. #39

40 Παράδειγμα: υπολογιςμόσ του π με αυτοδρομο/ςθ int workid; pthread_mutex_t worklock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *arg) int t; while (1) /* Για πϊντα */ pthread_mutex_lock(&worklock); t = workid++; pthread_mutex_unlock(&worklock); if (t >= NUMWORKS) break; execute(t); #define N /* Για ακρύβεια (ύδια με ςειριακό) */ #define NUMWORKS #define WORK N/NUMWORKS /* Πόςεσ επαναλόψεισ η κϊθε εργαςύα */ double pi = 0.0, W = 1.0/N; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; void execute(int iter) int i; double mysum = 0.0; for (i = iter*work; i < (iter+1)*work; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); pthread_mutex_lock(&lock); pi += mysum; pthread_mutex_unlock(&lock); #40

41 Παράδειγμα: checkerboard + αυτοδρομολόγθςθ int workid; pthread_mutex_t worklock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *arg) int t; while (1) /* Για πϊντα */ pthread_mutex_lock(&worklock); t = workid++; pthread_mutex_unlock(&worklock); if (t >= NUMWORKS) break; execute(t); #define N /* μϋγεθοσ πύνακα */ #define M 100 /* 100 x 100 υποπύνακεσ */ #define S N/M /* Μϋγεθοσ υποπύνακα */ #define NUMWORKS Μ*Μ /* τόςοι υποπύνακεσ */ void execute(int wid) int i, j, k, x, y; double sum = 0.0; x = wid / M; y = wid % M; for (i = x*s; i < (x+1)*s; i++) /* τα ςτοιχεύα του Cxy */ for (j = y*s; j < (y+1)*s; j++) ; for (k = 0; k < N; k++) sum += A[i][k]*B[k][j]; C[i][j] = sum; #41

42 διεργασίες στο Unix

43 Προγραμματιςμόσ με διεργαςίεσ ςτο UNIX Sys-V Shared Memory IPC #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> /* Για shared memory */ #include <sys/sem.h> /* Για semaphores */ Δθμιουργία διεργαςιϊν με fork() (returns 0 to the child). Δεν υπάρχουν κοινζσ μεταβλθτζσ (μόνο κοινόσ χϊροσ ςτθ μνιμθ, δεςμευόμενοσ δυναμικά) Δεν υπάρχουν κλειδαριζσ, μόνο semaphores Δεν υπάρχουν μθχανιςμοί ςυγχρονιςμοφ αλλά μποροφμε να κάνουμε πολλά πράγματα #43

44 Τλοποίθςθ τθσ join() Αναμονι τερματιςμοφ παιδιϊν με χριςθ τθσ wait(). Η παρακάτω τερματίηει τα παιδιά και κάνει το γονζα να περιμζνει. join(int myid, N) int i; if (myid!= 0) /* Παιδύ */ exit(0); else /* Γονϋασ */ for (i = 0; i < N; i++) wait(0); /* Αναμονό για τερματιςμό Ν παιδιών */ #44

45 Semaphores semget() για οριςμό semid = semget(ipc_private, 1, 0600 IPC_CREAT); semctl() για αρχικοποίθςθ / καταςτροφι / ζλεγχο semctl(semid, 0, SETVAL, arg); semctl(semid, IPC_RMID, 0); semop() για αφξθςθ / μείωςθ semop(semid, &opr, 1); union semun ; int val; struct semid_ds *buf; ushort_t *array; union semun arg; arg.val = k; /* αρχικοπούηςη */ #45

46 Κλειδαριζσ από semaphores initlock(int *l) union semun arg; *l = semget(ipc_private, 1, 0600 IPC_CREAT); arg.val = 1; /* Binary semaphore */ semctl(*l, 0, SETVAL, arg); lock(int *l) struct sembuf opr; opr.num = opr.flag = 0; opr.op = -1; /* Μεύωςη κατϊ 1 */ semop(*l, &opr, 1);; unlock(int *l) struct sembuf opr; opr.num = opr.flag = 0; opr.op = 1; /* Αύξηςη κατϊ 1 */ semop(*l, &opr, 1); Καταςτροφό: semctl(*l, IPC_RMID, 0); #46

47 Κοινζσ «μεταβλθτζσ» int memid = shmget(ipc_private, size, 0600 IPC_CREAT); char *p = shmat(memid, 0, 0); shmctl(memid, ICP_RMID, 0); /* Απελευθϋρωςη μνόμησ */ τα νιματα οι μεταβλθτζσ (κακολικζσ) είναι κοινζσ και δεν χρειάηεται τίποτε, οφτε για τον οριςμό τουσ, οφτε για τον χειριςμό τουσ Με διεργαςίεσ (πολφπλοκοι χειριςμοί με pointers): memid = shmget(ipc_private, 2*sizeof(int), 0600 IPC_CREAT); p = shmat(memid, 0, 0); *((int *) p) = 2; *(((int *) p) + 1) = *((int *) p); #47

48 .. πιο εφκολοσ χειριςμόσ Σζχναςμα (δομι με τισ κοινζσ μεταβλθτζσ): struct mine int i, j; *myvars; memid = shmget(ipc_private, sizeof(struct mine), 0600 IPC_CREAT); myvars = (struct whatever *) shmat(memid, 0, 0); myvars->i = 2; myvars->j = myvars->i; #48

Κεφάλαιο VΙΙ (λίγο διαφορετικό)

Κεφάλαιο VΙΙ (λίγο διαφορετικό) Κοινόχρηστος χώρος διευθύνσεων Κεφάλαιο VΙΙ (λίγο διαφορετικό) «Οντότητες» εκτέλεσης κώδικα Σειριακό πρόγραμμα για υπολογισμό του π = 3.141592 #define N 512 float pi = 0.0, W = 1.0/Ν; main() int i; for

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

26/3/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Β. Δημακόπουλος

26/3/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 26/3/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Β. Δημακόπουλος Από τα εισαγωγικά για να εκμεταλλευτούμε πολλαπλούς επεξεργαστές, έχουμε δύο βασικές τεχνικές:

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

Μέρος Ι: νήματα POSIX Κεφάλαιο 4 (νέο βιβλίο) Κεφάλαιο 7 (παλιές σημειώσεις)

Μέρος Ι: νήματα POSIX Κεφάλαιο 4 (νέο βιβλίο) Κεφάλαιο 7 (παλιές σημειώσεις) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κοινόχρηστος χώρος διευθύνσεων Μέρος Ι: νήματα POSIX Κεφάλαιο 4 (νέο βιβλίο) Κεφάλαιο 7 (παλιές σημειώσεις) Βιβλίο Β. Δημακόπουλος Παράλληλα Συστήματα και Προγραμματισμός 2016 Αποθετήριο

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

Υ07 Παράλληλα Συστήματα & 29/3/2016 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι)

Υ07 Παράλληλα Συστήματα & 29/3/2016 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Υ07 Παράλληλα Συστήματα 2015-16 22 & 29/3/2016 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Από τα εισαγωγικά για να εκμεταλλευτούμε πολλαπλούς επεξεργαστές, έχουμε δύο βασικές τεχνικές: Πολλαπλές

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

Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος

Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με pthreads Γκόγκος Χρήστος Παράδειγμα

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

16. Πίνακεσ και Συναρτήςεισ

16. Πίνακεσ και Συναρτήςεισ Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 16. Πίνακεσ και Συναρτήςεισ Ιωάννθσ Κατάκθσ Σιμερα o Κλιςθ με τιμι o Κλιςθ με αναφορά o Πίνακεσ και ςυναρτιςεισ o Παραδείγματα Ειςαγωγι o Στισ προθγοφμενεσ

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

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Διαχείριςθ Μνιμθσ Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Κάκε μεταβλθτι ςχετίηεται με μία κζςθ ςτθν κφρια μνιμθ του υπολογιςτι. Κάκε κζςθ ςτθ μνιμθ ζχει τθ δικι τθσ ξεχωριςτι διεφκυνςθ. Με άμεςθ

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

17. Πολυδιάςτατοι πίνακεσ

17. Πολυδιάςτατοι πίνακεσ Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 17. Πολυδιάςτατοι πίνακεσ Ιωάννθσ Κατάκθσ Πολυδιάςτατοι πίνακεσ o Μζχρι τϊρα μιλοφςαμε για μονοδιάςτατουσ πίνακεσ ι int age[5]= 31,28,31,30,31; o Για παράλλθλουσ

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

Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4

Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4 Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4 Με το κεφάλαιο αυτό, αλλάζουμε θεματολογία και μπαίνουμε στον χώρο του προγραμματισμού των παράλληλων συστημάτων. Σε αντίθεση με τους κλασικούς σειριακούς

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

Εργαστήριο 14. Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t)

Εργαστήριο 14. Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t) Εργαστήριο 14 Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t) Να γράψετε πρόγραμμα που να δημιουργεί 1 νήμα Έτσι στο πρόγραμμα σας θα υπάρχουν 2 νήματα (το ένα νήμα είναι το αρχικό νήμα που

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν Τπόβακρο (1/3) τουσ παλαιότερουσ υπολογιςτζσ θ Κεντρικι Μονάδα Επεξεργαςίασ (Κ.Μ.Ε.) μποροφςε κάκε ςτιγμι να εκτελεί μόνο ζνα πρόγραμμα τουσ ςφγχρονουσ

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

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

Η γλώςςα προγραμματιςμού C Η γλώςςα προγραμματιςμού C Οι εντολζσ επανάλθψθσ (while, do-while, for) Γενικά για τισ εντολζσ επανάλθψθσ Συχνά ςτο προγραμματιςμό είναι επικυμθτι θ πολλαπλι εκτζλεςθ μιασ ενότθτασ εντολϊν, είτε για ζνα

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

ΝΗΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

ΝΗΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Νήματα (Threads) ΝΗΜΑΤΑ - ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

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

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while ) 3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while ) Στα πιο πολλά προγράμματα απαιτείται κάποια ι κάποιεσ εντολζσ να εκτελοφνται πολλζσ φορζσ για όςο ιςχφει κάποια ςυνκικθ. Ο αρικμόσ των επαναλιψεων μπορεί να είναι

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 3 η Εργαστηριακή Άσκηση: Συγχρονισμός Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017

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

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ 5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ Να γραφεί πρόγραμμα, το οποίο κα δίνει τισ τιμζσ 5 και 6 ςε δφο μεταβλθτζσ a και b και κα υπολογίηει και κα εμφανίηει το άκροιςμά τουσ sum. ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ a 5 b 6 sum a+b sum ΑΛΓΟΡΙΘΜΟ

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 3 η Εργαστηριακή Άσκηση: Συγχρονισμός Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2017-2018

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

Υ07 Παράλληλα Συστήματα /3/2018 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (IΙ)

Υ07 Παράλληλα Συστήματα /3/2018 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (IΙ) Υ07 Παράλληλα Συστήματα 2017-18 27/3/2018 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (IΙ) Shared address space / shared variables Τι χρειάηεται κανείσ για να προγραμματίςει ςε αυτό το μοντζλο: Οντότθτεσ

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

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι Λογιςμικό (Software), Πρόγραμμα (Programme ι Program), Προγραμματιςτισ (Programmer), Λειτουργικό Σφςτθμα (Operating

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

2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος

2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε

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

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν Ειςαγωγι ςτθν Python Γ Μζροσ Modules, Αντικειμενοςτραφισ Προγραμματιςμόσ ςτθν Python, Classes, Objects, Αλλθλεπίδραςθ με αρχεία Ειςαγωγι αρκρωμάτων (modules): import

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

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (pthreads)

Εκφωνήσεις ασκήσεων εργαστηρίου 2 (pthreads) Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου

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

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν: Μζθοδος Simplex Η πλζον γνωςτι και περιςςότερο χρθςιμοποιουμζνθ μζκοδοσ για τθν επίλυςθ ενόσ γενικοφ προβλιματοσ γραμμικοφ προγραμματιςμοφ, είναι θ μζκοδοσ Simplex θ οποία αναπτφχκθκε από τον George Dantzig.

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

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

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

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

Προγραμματισμός με το OpenMP Β. Δημακόπουλος

Προγραμματισμός με το OpenMP Β. Δημακόπουλος ΠΛE006 Παράλληλη Επεξεργασία Προγραμματισμός με το OpenMP Β. Δημακόπουλος Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε αυτό το μοντέλο: Οντότητες εκτέλεσης (νήματα,

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

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1 ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4. Να γίνει πρόγραμμα το οποίο να επιλφει το Διαγώνιο Σφςτθμα: A ι το ςφςτθμα : ι ςε μορφι εξιςώςεων το ςφςτθμα : Αλγόρικμοσ m(). Διαβάηουμε τθν τιμι του ( θ διάςταςθ του Πίνακα Α )..

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

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων 18. Αλφαριθμητικά Ιωάννθσ Κατάκθσ Αλφαρικμθτικά o Ζνα string είναι μία ακολουκία χαρακτιρων, ςθμείων ςτίξθσ κτλ Hello How are you? 121212 *Apple#123*% Σιμερα

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 19. Αλφαριθμητικά II Ιωάννθσ Κατάκθσ Αλφαρικμθτικά ςτθ C Ζνα string είναι μία ακολουκία αλφαρικμθτικϊν χαρακτήρων, ςθμείων ςτίξθσ κτλ. Π.χ. Hello How are you?

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

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ Ειρινθ Φιλιοποφλου Ειςαγωγι Ο Παγκόςμιοσ Ιςτόσ (World Wide Web - WWW) ι πιο απλά Ιςτόσ (Web) είναι μία αρχιτεκτονικι για τθν προςπζλαςθ διαςυνδεδεμζνων εγγράφων

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

ςυςτιματα γραμμικϊν εξιςϊςεων

ςυςτιματα γραμμικϊν εξιςϊςεων κεφάλαιο 7 Α ςυςτιματα γραμμικϊν εξιςϊςεων αςικζσ ζννοιεσ Γραμμικά, λζγονται τα ςυςτιματα εξιςϊςεων ςτα οποία οι άγνωςτοι εμφανίηονται ςτθν πρϊτθ δφναμθ. Σα γραμμικά ςυςτιματα με δφο εξιςϊςεισ και δφο

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

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO Το Micro Worlds Pro είναι ζνα ολοκλθρωμζνο περιβάλλον προγραμματιςμοφ. Χρθςιμοποιεί τθ γλϊςςα προγραμματιςμοφ Logo (εξελλθνιςμζνθ) Το Micro Worlds Pro περιλαμβάνει

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

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Ειςαγωγό Όπωσ είδαμε, ο χϊροσ εικονικϊν διευκφνςεων μνιμθσ που χρθςιμοποιεί κάκε διεργαςία, είναι αρκετά μεγαλφτεροσ από το χϊρο των φυςικϊν διευκφνςεων.

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

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

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

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

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ

ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ ΚΥΠΡΙΑΚΗ ΜΑΘΗΜΑΤΙΚΗ ΕΤΑΙΡΕΙΑ Α ΔΙΑΓΩΝΙΣΜΟΣ ΕΠΙΛΟΓΗΣ IMC (Key Stage II) 9 Μαρτίου 2016 ΧΡΟΝΟΣ: 2 ΩΡΕΣ Λύςεισ : Πρόβλημα 1 (α) Να βρείτε τθν τιμι του για να ιςχφει θ πιο κάτω ςχζςθ: (β) Ο Ανδρζασ τελειϊνει

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

Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο)

Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κοινόχρηστος χώρος διευθύνσεων Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο) Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε αυτό το μοντέλο: Οντότητες

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

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό. Κωδικοποιητές Ο κωδικοποιθτισ (nor) είναι ζνα κφκλωμα το οποίο διακζτει n γραμμζσ εξόδου και το πολφ μζχρι m = 2 n γραμμζσ ειςόδου και (m 2 n ). Οι ζξοδοι παράγουν τθν κατάλλθλθ λζξθ ενόσ δυαδικοφ κϊδικα

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

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Περιεχόμενα Ζννοια δομισ Οριςμόσ δομισ Διλωςθ μεταβλθτϊν Απόδοςθ Αρχικϊν τιμϊν Αναφορά ςτα μζλθ μιασ δομισ Ζνκεςθ Δομισ Πίνακεσ Δομϊν Η ζννοια τθσ δομισ Χρθςιμοποιιςαμε

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ελιδοποίθςθ (1/10) Σόςο θ κατάτμθςθ διαμεριςμάτων ςτακεροφ μεγζκουσ όςο και θ κατάτμθςθ διαμεριςμάτων μεταβλθτοφ και άνιςου μεγζκουσ δεν κάνουν

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

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

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

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

ΣυγχρονισµόςσεΣυστήµατα ΠολλαπλώνΝηµάτων

ΣυγχρονισµόςσεΣυστήµατα ΠολλαπλώνΝηµάτων ΣυγχρονισµόςσεΣυστήµατα ΠολλαπλώνΝηµάτων Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ Κορνήλιος Κούρτης kkourt@cslab.ece.ntua.gr p. 1 Περιβάλλον Πολλαπλών Νηµάτων Threads T0

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

Visual C Express - Οδηγός Χρήσης

Visual C Express - Οδηγός Χρήσης Visual C++ 2008 Express - Οδηγός Χρήσης Ζερβός Μιχάλης, Πρίντεζης Νίκος Σκοπόσ του οδθγοφ αυτοφ είναι να παρουςιάςει τισ βαςικζσ δυνατότθτεσ του Visual C++ 2008 Express Edition και πωσ μπορεί να χρθςιμοποιθκεί

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

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9 Δομθμζνοσ Προγραμματιςμόσ Βαγγζλθσ Οικονόμου Εργαςτιριο 9 Συναρτιςεισ Αφαιρετικότθτα ςτισ διεργαςίεσ Συνάρτθςεισ Διλωςθ, Κλιςθ και Οριςμόσ Εμβζλεια Μεταβλθτών Μεταβίβαςθ παραμζτρων ςε ςυναρτιςεισ Συναρτιςεισ

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

Ε-85: Ειδικά Θέµατα Λογισµικού

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Επαναληπτικές Ασκήσεις» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 θ Διάλεξθ υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 θ Διάλεξθ υγχρονιςμόσ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 θ Διάλεξθ υγχρονιςμόσ Διεργαςιϊν Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 15. Πίνακεσ ΙI Ιωάννθσ Κατάκθσ Σιμερα o Ειςαγωγι o Διλωςθ o Αρχικοποίθςθ o Πρόςβαςθ o Παραδείγματα Πίνακεσ - Επανάλθψθ o Στθν προθγοφμενθ διάλεξθ κάναμε μια

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

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν Τι είναι θ Γραμμι Εντολϊν (1/6) Στουσ πρϊτουσ υπολογιςτζσ, και κυρίωσ από τθ δεκαετία του 60 και μετά, θ αλλθλεπίδραςθ του χριςτθ με τουσ

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

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

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

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

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

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

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

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων Πανελλόνιεσ εξετϊςεισ Γ Τϊξησ 2011 Ανϊπτυξη Εφαρμογών ςε Προγραμματιςτικό Περιβϊλλον ΘΕΜΑ Α Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων Α1. Σ/Λ 1. Σωςτι 2. Σωςτι 3. Λάκοσ 4. Λάκοσ 5. Λάκοσ Α2. Σ/Λ 1. Σωςτι 2.

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

Modellus 4.01 Συ ντομοσ Οδηγο σ

Modellus 4.01 Συ ντομοσ Οδηγο σ Νίκοσ Αναςταςάκθσ 4.01 Συ ντομοσ Οδηγο σ Περιγραφή Σο είναι λογιςμικό προςομοιϊςεων που ςτθρίηει τθν λειτουργία του ςε μακθματικά μοντζλα. ε αντίκεςθ με άλλα λογιςμικά (π.χ. Interactive Physics, Crocodile

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

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: ΔΟΜΗ ΑΠΟΦΑΗ Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: Όταν το if που χρθςιμοποιοφμε παρζχει μόνο μία εναλλακτικι διαδρομι εκτζλεςθ, ο τφποσ δομισ

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

Προγραµµατισµός Νηµάτων. Αρχικοποίηση µιας Φοράς pthread_once_t once_block = PTHREAD_ONCE_INIT; pthread_mutex_t mutex;

Προγραµµατισµός Νηµάτων. Αρχικοποίηση µιας Φοράς pthread_once_t once_block = PTHREAD_ONCE_INIT; pthread_mutex_t mutex; Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Προγραµµατισµός Νηµάτων Χειµερινό Εξάµηνο 2009-10 «Επαναληπτικές Ασκήσεις» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 4 θ Διάλεξθ θμαφόροι

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 4 θ Διάλεξθ θμαφόροι ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 4 θ Διάλεξθ θμαφόροι Αντιμετϊπιςθ Προβλθμάτων Σαυτοχρονιςμοφ Σο πρϊτο μεγάλο βιμα για τθν αντιμετϊπιςθ των προβλθμάτων των ταυτόχρονων διεργαςιϊν ςθμειϊκθκε το 1965, ςτθ διατριβι του

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

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν Κϊςτασ Αρβανιτάκθσ Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

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

NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4

NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1 Ένα thread έχει: ID, program counter, register set, stack Μοιράζεται με τα άλλα threads της ίδιας διεργασίας τον κώδικα, τα δεδομένα και τους άλλους πόρους

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

Ειδικά Θζματα Βάςεων Δεδομζνων

Ειδικά Θζματα Βάςεων Δεδομζνων Ειδικά Θζματα Βάςεων Δεδομζνων Ενότθτα 7: Σαυτοχρονιςμόσ Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ Άδειεσ Χριςθσ Το παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons.

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

ΕΝΟΣΗΣΑ 3: ΧΡΗΗ ΕΡΓΑΛΕΙΩΝ ΕΚΦΡΑΗ ΚΑΙ ΔΗΜΙΟΤΡΓΙΑ

ΕΝΟΣΗΣΑ 3: ΧΡΗΗ ΕΡΓΑΛΕΙΩΝ ΕΚΦΡΑΗ ΚΑΙ ΔΗΜΙΟΤΡΓΙΑ ΕΝΟΣΗΣΑ 3: ΧΡΗΗ ΕΡΓΑΛΕΙΩΝ ΕΚΦΡΑΗ ΚΑΙ Επεξεργαςτισ Κειμζνου, Μορφοποίθςθ κειμζνου, Αποκικευςθ -Ανάκτθςθ εργαςίασ, Αντιγραφι - Μεταφορά κειμζνου, Γραμματοςειρά (Font), Ειςαγωγι εικόνασ ςε κείμενο Μία από

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

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

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

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

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ

Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ Αςκιςεισ ςε (i) Δομζσ Ευρετθρίων και Οργάνωςθ Αρχείων (ii) Κανονικοποίθςθ Δεκζμβριοσ 2016 Άςκθςθ 1 Θεωρείςτε ότι κζλουμε να διαγράψουμε τθν τιμι 43 ςτο Β+ δζντρο τθσ Εικόνασ 1. Η διαγραφι αυτι προκαλεί

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

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ Για τθν ανάδειξθ του κζματοσ κα λφνουμε κάποια προβλιματα

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

Δομζσ Δεδομζνων Πίνακεσ

Δομζσ Δεδομζνων Πίνακεσ Δομζσ Δεδομζνων Πίνακεσ Διάλεξθ 2 Περιεχόμενα Πίνακεσ: Οριςμοί, Γενικζσ ζννοιεσ Αποκικευςθ πινάκων Ειδικζσ μορφζσ πινάκων Αλγόρικμοι Αναηιτθςθσ Σειριακι Αναηιτθςθ Δυαδικι Αναηιτθςθ Οριςμοί, Γενικζσ ζννοιεσ

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

Σφντομεσ Οδθγίεσ Χριςθσ

Σφντομεσ Οδθγίεσ Χριςθσ Σφντομεσ Οδθγίεσ Χριςθσ Περιεχόμενα 1. Επαφζσ... 3 2. Ημερολόγιο Επιςκζψεων... 4 3. Εκκρεμότθτεσ... 5 4. Οικονομικά... 6 5. Το 4doctors ςτο κινθτό ςου... 8 6. Υποςτιριξθ... 8 2 1. Επαφζσ Στισ «Επαφζσ»

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

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων:

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων: Πανεπιςτιμιο Κφπρου ΟΙΚ 3: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων: Φάμπιο Αντωνίου τοιχεία Επικοινωνίασ: email: fantoniou@aueb.gr ; fabio@ucy.ac.cy Σθλ:893683 Προςωπικι Ιςτοςελίδα: fantoniou.wordpress.com

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

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Δρ. Χρήζηος Ηλιούδης Μθ Προςθμαςμζνοι Ακζραιοι Εφαρμογζσ (ςε οποιαδιποτε περίπτωςθ δεν χρειάηονται αρνθτικοί αρικμοί) Καταμζτρθςθ. Διευκυνςιοδότθςθ.

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

Αςφάλεια και Προςταςία Δεδομζνων

Αςφάλεια και Προςταςία Δεδομζνων Αςφάλεια και Προςταςία Δεδομζνων Κρυπτογράφθςθ υμμετρικι και Αςφμμετρθ Κρυπτογραφία Αλγόρικμοι El Gamal Diffie - Hellman Σςιρόπουλοσ Γεώργιοσ ΣΙΡΟΠΟΤΛΟ ΓΕΩΡΓΙΟ 1 υμμετρικι Κρυπτογραφία υμμετρικι (Κλαςικι)

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

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ Κεφάλαιο 8 Η γλϊςςα Pascal Παράγραφοσ 8.2 Βαςικοί τφποι δεδομζνων Σα δεδομζνα ενόσ προγράμματοσ μπορεί να: είναι αποκθκευμζνα εςωτερικά ςτθν μνιμθ είναι αποκθκευμζνα εξωτερικά

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

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του Αυτόνομοι Πράκτορες Αναφορά Εργασίας Εξαμήνου Το αστέρι του Aibo και τα κόκαλα του Jaohar Osman Η πρόταςθ εργαςίασ που ζκανα είναι το παρακάτω κείμενο : - ξ Aibo αγαπάει πάρα πξλύ ρα κόκαλα και πάμρα ρα

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

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ Οδηγός Χρήσης Εφαρμογής Ελέγχου Προσφορών Αφοφ πιςτοποιθκεί ο λογαριαςμόσ που δθμιουργιςατε ςτο πρόγραμμα ωσ Πάροχοσ Προςφορϊν, κα λάβετε ζνα e-mail με

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

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

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

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

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Αρχείο (File) Φάκελοσ (Folder) Διαχειριςτισ Αρχείων (File Manager) Τφποι Αρχείων Σε τι εξυπθρετεί θ οργάνωςθ των εργαςιϊν μασ ςτουσ υπολογιςτζσ; Πϊσ κα οργανϊςουμε

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

Πωσ δθμιουργώ φακζλουσ;

Πωσ δθμιουργώ φακζλουσ; Πωσ δθμιουργώ φακζλουσ; Για να μπορζςετε να δθμιουργιςετε φακζλουσ ςτο χαρτοφυλάκιό ςασ ςτο Mahara κα πρζπει να μπείτε ςτο ςφςτθμα αφοφ πατιςετε πάνω ςτο ςφνδεςμο Mahara profiles από οποιοδιποτε ςελίδα

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

Άπειρεσ κροφςεισ. Τθ χρονικι ςτιγμι. t, ο δακτφλιοσ ςυγκροφεται με τον τοίχο με ταχφτθτα (κζντρου μάηασ) μζτρου

Άπειρεσ κροφςεισ. Τθ χρονικι ςτιγμι. t, ο δακτφλιοσ ςυγκροφεται με τον τοίχο με ταχφτθτα (κζντρου μάηασ) μζτρου Άπειρεσ κροφςεισ Δακτφλιοσ ακτίνασ κυλάει ςε οριηόντιο δάπεδο προσ ζνα κατακόρυφο τοίχο όπωσ φαίνεται ςτο ςχιμα. Ο ςυντελεςτισ τριβισ ίςκθςθσ του δακτυλίου με το δάπεδο είναι, ενϊ ο τοίχοσ είναι λείοσ.

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

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

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

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

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

Ειςαγωγή ςτην πληροφορική Ειςαγωγή ςτην πληροφορική Δρ. Θεοδώρου Παύλοσ theodorou@uoc.gr Δομή ηλεκτρονικού υπολογιςτή - Υλικό Μια γενικι διάκριςθ ςυςτατικϊν που ςυνκζτουν ζναν Η/Υ (πόροι *resources]) Μονάδα ειςόδου (Input unit)

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

Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009

Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 10 ο 15/12/2009 Κατανεμημένη κοινή μνήμη (DSM Distributed Shared Memory) Β. Δημακόπουλοσ Γιατί; Συςτιματα κατανεμθμζνθσ μνιμθσ: Αρχιτεκτονικι:

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

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

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

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

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Virtualization Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Το virtualization πρόκειται για μια τεχνολογία, θ οποία επιτρζπει το διαχωριςμό

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

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

Διαχείριςη Αριθμοδεικτών (v.1.0.7) Διαχείριςη Αριθμοδεικτών (v.1.0.7) Περιεχόμενα 1. Μενοφ... 5 1.1 Αρικμοδείκτεσ.... 5 1.1.1 Δθμιουργία Αρικμοδείκτθ... 6 1.1.2 Αντιγραφι Αρικμοδείκτθ... 11 2. Παράμετροι... 12 2.1.1 Κατθγορίεσ Αρικμοδεικτϊν...

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

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 1 Μάκθςθ κατανομισ πικανότθτασ Σε όλθ τθν ανάλυςθ μζχρι τϊρα ζγινε ςιωπθρά θ παραδοχι ότι γνωρίηουμε

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

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Αυτζσ οι οδθγίεσ ζχουν ςτόχο λοιπόν να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο του Άβακα. Παρουςίαςη

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

343 Ειςαγωγι ςτον Προγραμματιςμό

343 Ειςαγωγι ςτον Προγραμματιςμό 343 Ειςαγωγι ςτον Προγραμματιςμό Σμιμα Μακθματικϊν Πανεπιςτιμιο Ιωαννίνων Ακαδθμαϊκό Ζτοσ 2018-2019 Χάρθσ Παπαδόπουλοσ 207δ, B όροφοσ e-mail: charis@cs.uoi.gr Ωρεσ Γραφείου: Σρίτθ 11-13 Ενότθτεσ 1-24 ΕΠΑΝΑΛΗΨΗ

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

Εργαςτιριο Βάςεων Δεδομζνων

Εργαςτιριο Βάςεων Δεδομζνων Εργαςτιριο Βάςεων Δεδομζνων 2010-2011 Μάθημα 1 ο 1 Ε. Σςαμούρα Σμήμα Πληροφορικήσ ΑΠΘ Σκοπόσ του 1 ου εργαςτθριακοφ μακιματοσ Σκοπόσ του πρϊτου εργαςτθριακοφ μακιματοσ είναι να μελετιςουμε ερωτιματα επιλογισ

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

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

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ Στο εργαςτιριο αυτό κα δοφμε πωσ μποροφμε να προςομοιϊςουμε μια κίνθςθ χωρίσ τθ χριςθ εξειδικευμζνων εργαλείων, παρά μόνο μζςω ενόσ προγράμματοσ λογιςτικϊν φφλλων, όπωσ είναι το Calc και το Excel. Τα δφο

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

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Ιοφνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1.Εθνικό Τυπογραφείο... 3 1.1. Είςοδοσ... 3 1.2. Αρχική Οθόνη... 4 1.3. Διεκπεραίωςη αίτηςησ...

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

Πλαγιογώνια Συςτήματα Συντεταγμζνων Γιϊργοσ Καςαπίδθσ

Πλαγιογώνια Συςτήματα Συντεταγμζνων Γιϊργοσ Καςαπίδθσ Πρόλογοσ το άρκρο αυτό κα δοφμε πωσ διαμορφϊνονται κάποιεσ ζννοιεσ όπωσ το εςωτερικό γινόμενο διανυςμάτων, οι ςυνκικεσ κακετότθτασ και παραλλθλίασ διανυςμάτων και ευκειϊν, ο ςυντελεςτισ διευκφνςεωσ διανφςματοσ

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

Διαγώνισμα Φυσική ς Α Λυκει ου Έργο και Ενε ργεια

Διαγώνισμα Φυσική ς Α Λυκει ου Έργο και Ενε ργεια Διαγώνισμα Φυσική ς Α Λυκει ου Έργο και Ενε ργεια Επιμέλεια: Σ. Ασημέλλης Θέμα Α Να γράψετε ςτο φφλλο απαντιςεϊν ςασ τον αρικμό κακεμιάσ από τισ παρακάτω ερωτιςεισ 1-4 και δίπλα το γράμμα που αντιςτοιχεί

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

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δημιουργήθηκε για να βοηθήςει την κατανόηςη τησ διαδικαςίασ αυτόματησ δημιουργίασ ςτηλών και αντιςτοίχιςησ

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

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο Αριθμητικά κυκλώματα Ημιαθροιστής (Half Adder) Ο ημιαθροιςτήσ είναι ζνα κφκλωμα το οποίο προςθζτει δφο δυαδικά ψηφία (bits) και δίνει ωσ αποτζλεςμα το άθροιςμά τουσ και το κρατοφμενο. Με βάςη αυτή την

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

Σύ ντομος Οδηγο ς χρη σης wikidot για τα projects

Σύ ντομος Οδηγο ς χρη σης wikidot για τα projects Σύ ντομος Οδηγο ς χρη σης wikidot για τα projects Ειςαγωγή κοπόσ αυτοφ του κειμζνου είναι να δϊςει ςφντομεσ οδθγίεσ για τθν επεξεργαςία των ςελίδων του wiki τθσ ερευνθτικισ εργαςίασ. Πλιρθσ οδθγόσ για

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

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

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

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

Ειδικά Θζματα Βάςεων Δεδομζνων

Ειδικά Θζματα Βάςεων Δεδομζνων Ειδικά Θζματα Βάςεων Δεδομζνων Ενότητα 11: Αντικειμενοςτραφήσ και αντικείμενοςχεςιακζσ βάςεισ Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 20. Αρχεία Ιωάννθσ Κατάκθσ Aποκικευςθ Για να αποκθκεφςουμε δεδομζνα από ζνα πρόγραμμα, πρζπει να χρθςιμοποιιςουμε τθ δευτερεφουςα μνιμθ Aποκικευςθ Η πιο ςυνθκιςμζνθ

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β 1 ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β 2 ελιδοποίθςθ με Χριςθ Ιδεατισ Μνιμθσ (1/5) Ο όροσ ιδεατή μνήμη ςυνικωσ ςχετίηεται με ςυςτιματα τα οποία εφαρμόηουν ςελιδοποίθςθ, παρόλο που

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

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων

Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων Τεχνικζσ Ανάλυςησ Διοικητικών Αποφάςεων Ενότητα 3: υςτιματα ουρϊν αναμονισ Κακθγθτισ Γιάννθσ Γιαννίκοσ χολι Οργάνωςθσ και Διοίκθςθσ Επιχειριςεων Σμιμα Διοίκθςθσ Επιχειριςεων Σκοποί ενότητασ Μελζτθ ςυςτθμάτων

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

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα: 2 ο Σετ Ασκήσεων Δομές Δεδομένων - Πίνακες Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα: 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8

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

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Πάτρα, 2013 Περιεχόμενα: Ειςαγωγή... 4 1. Επιμελητήριο... Error! Bookmark not defined. 1.1 Διαχειριςτήσ Αιτήςεων Επιμελητηρίου...

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

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Το Πλθροφοριακό Σφςτθμα τθσ δράςθσ «e-κπαιδευτείτε» ζχει ςτόχο να αυτοματοποιιςει τισ ακόλουκεσ

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

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

ΑΔΡΑΝΕΙΑ ΜΑΘΗΣΕ: ΜΑΡΙΑΝΝΑ ΠΑΡΑΘΤΡΑ ΑΝΑΣΑΗ ΠΟΤΛΙΟ ΠΑΝΑΓΙΩΣΗ ΠΡΟΔΡΟΜΟΤ ΑΝΑΣΑΙΑ ΠΟΛΤΧΡΟΝΙΑΔΟΤ ΙΩΑΝΝΑ ΠΕΝΓΚΟΤ ΑΔΡΑΝΕΙΑ ΜΑΘΗΣΕ: ΜΑΡΙΑΝΝΑ ΠΑΡΑΘΤΡΑ ΑΝΑΣΑΗ ΠΟΤΛΙΟ ΠΑΝΑΓΙΩΣΗ ΠΡΟΔΡΟΜΟΤ ΑΝΑΣΑΙΑ ΠΟΛΤΧΡΟΝΙΑΔΟΤ ΙΩΑΝΝΑ ΠΕΝΓΚΟΤ Οριςμόσ: Με τον όρο αδράνεια ςτθ Φυςικι ονομάηεται θ χαρακτθριςτικι ιδιότθτα των ςωμάτων να αντιςτζκονται

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