Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1

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

Download "Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1"

Transcript

1 Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr

2 Σύγχρονα κανάλια επικοινωνίας Μέρος του Communicating Sequential Processes (CSP) που πρότεινε ο Hoare ως φορμαλισμό για την περιγραφή ταυτόχρονων διεργασιών/συστημάτων To CSP είναι ένα θεωρητικό εργαλείο Που επηρέασε τον σχεδιασμό πολλών πραγματικών συστημάτων και γλωσσών προγραμματισμού Occam, Ada, Plan9/Inferno/Limbo, Go Σημείωση: η σύνταξη που θα χρησιμοποιήσουμε είναι απλοποιημένη και ενδεικτική -- δεν αντιστοιχεί στην «επίσημη» σύνταξη/σημασιολογία του CSP Ταυτόχρονος Προγραμματισμός 2 lalis@inf.uth.gr

3 Μοντέλο channel P1 P2 Αλληλεπίδραση μέσω καναλιών επικοινωνίας Κάθε κανάλι είναι σημείο-προς-σημείο: συνδέει δύο νήματα/διεργασίες αξιόπιστο: δεν χάνονται μηνύματα μιας κατεύθυνσης (half duplex) Τα κανάλια μεταφέρουν μηνύματα που έχουν συγκεκριμένο τύπο (εσωτερική δομή) Το σύνολο των συνεργαζόμενων νημάτων/διεργασιών και καναλιών θεωρείται γνωστό εκ των προτέρων Ταυτόχρονος Προγραμματισμός 3 lalis@inf.uth.gr

4 Βασικές λειτουργίες chan!msg Αποστολή μηνύματος msg στο κανάλι chan Ο αποστολέας μπλοκάρεται μέχρι το μήνυμα να παραληφθεί από την διεργασία που βρίσκεται στην άλλη άκρη του καναλιού chan?msg Παραλαβή μηνύματος msg από το κανάλι chan Ο παραλήπτης μπλοκάρεται μέχρι η διεργασία που βρίσκεται στην άλλη άκρη του καναλιού να στείλει ένα μήνυμα συμβατού τύπου Το msg μπορεί είναι μια τιμή ή μια μεταβλητή στην οποία αποθηκεύεται το περιεχόμενο του μηνύματος Ταυτόχρονος Προγραμματισμός 4 lalis@inf.uth.gr

5 Συγχρονισμός αποστολής/παραλαβής Η αποστολή και παραλαβή ενός μηνύματος μπορεί να θεωρηθεί ως ένα συμμετρικό ραντεβού Η διεργασία που επιχειρεί πρώτη την επικοινωνία θα περιμένει μέχρι η άλλη διεργασία θελήσει να πραγματοποιήσει την «αντίστροφη» επικοινωνία Κάθε κανάλι έχει το πολύ ένα μήνυμα που βρίσκεται καθοδόν, από τον αποστολέα προς τον παραλήπτη Δεν χρειάζονται ενδιάμεσες αποθήκες Μπορεί όμως να υπάρξουν αδιέξοδα! Ταυτόχρονος Προγραμματισμός 5 lalis@inf.uth.gr

6 Ραντεβού: όποια διεργασία «φτάσει» πρώτη στο «σημείο συνάντησης» περιμένει την άλλη P2 exec path P1 exec path chan!msg chan?msg «σημείο» συνάντησης Ταυτόχρονος Προγραμματισμός 6 lalis@inf.uth.gr

7 int a; a = 5; P1 P2 int b; chan!a <int,5> chan?b (b is 5) Ταυτόχρονος Προγραμματισμός 7 lalis@inf.uth.gr

8 int a; a = 5; P1 P2 int b; chan?b chan!a <int,5> (b is 5) Ταυτόχρονος Προγραμματισμός 8 lalis@inf.uth.gr

9 Παραγωγός-καταναλωτής P Data C Ταυτόχρονος Προγραμματισμός 9 lalis@inf.uth.gr

10 P: Data d; /* produce d */ chan!d; C: Data d; chan?d; /* consume d */ Ταυτόχρονος Προγραμματισμός 10 lalis@inf.uth.gr

11 Αποφυγή μπλοκαρίσματος Αν ο παραγωγός επιχειρήσει να στείλει δεδομένα ενώ δεν περιμένει ο καταναλωτής, θα μπλοκάρει Η σύγχρονη επικοινωνία «δένει» στενά τα εμπλεκόμενα μέρη και εμποδίζει την υλοποίηση πιο ευέλικτων σχημάτων αλληλεπίδρασης Eιδική δομή ταυτόχρονης αναμονής για την παραλαβή μηνύματος από διαφορετικές διεργασίες Ανάλογα με τον αποστολέα, μπορεί να γίνεται αναμονή για μήνυμα διαφορετικού τύπου Ταυτόχρονος Προγραμματισμός 11

12 Ταυτόχρονη αναμονή για παραλαβή μηνύματος από διαφορετικά κανάλια select { chan 1?msg 1 : S 1 chan 2?msg 2 : S 2 chan N?msg N : S N Η σειρά ελέγχου των περιπτώσεων στην δομή αναμονής είναι μη ντετερμινιστική αλλά δίκαιη Η select τερματίζει όταν παραληφθεί ένα από τα μηνύματα μέσω του προδιαγεγραμμένου καναλιού, και εκτελεστεί η αντίστοιχη ομάδα εντολών Ταυτόχρονος Προγραμματισμός 12 lalis@inf.uth.gr

13 Αναμονή πάνω σε σύνολο καναλιών chan[]?msg,idx Επιστρέφει το μήνυμα msg και την θέση idx (στον πίνακα) του καναλιού από το οποίο έφτασε το μήνυμα αν δεν ενδιαφέρει η θέση idx τότε βάζουμε void Ισοδύναμο με: select { chan[0]?msg: idx=0; chan[1]?msg: idx=1; chan[n-1]?msg: idx=n-1; Ταυτόχρονος Προγραμματισμός 13 lalis@inf.uth.gr

14 Ταυτόχρονη αναμονή για παραλαβή μηνύματος υπό συνθήκη select { cond 1 && chan1?msg1: S 1 cond 2 && chan2?msg2: S 2 cond N && chann?msgn: S N Για να παραληφθεί ένα μήνυμα (αν είναι διαθέσιμο) πρέπει η αντίστοιχη συνθήκη να είναι αληθής Η σειρά ελέγχου των διαφόρων περιπτώσεων στην select είναι μη ντετερμινιστική αλλά δίκαιη Κάποιες περιπτώσεις παραλαβής μπορεί να μην έχουν συνθήκη, οπότε είναι διαρκώς «ενεργοποιημένες» Ταυτόχρονος Προγραμματισμός 14 lalis@inf.uth.gr

15 Παραγωγός-καταναλωτής με αποθήκη P Data Buf "GET" C Data Ταυτόχρονος Προγραμματισμός 15 lalis@inf.uth.gr

16 Buf: Data buf[n]; int in = 0, out = 0, n = 0; select { (n<n) && chanp?buf[in]: { in = (in+1)%n; n++; (n>0) && chanc?"get": { chanc!buf[out]; out = (out+1)%n; n--; P: /* produce d */ chanp!d; C: chanc!"get"; chanc?d; /* consume d */ Ταυτόχρονος Προγραμματισμός 16 lalis@inf.uth.gr

17 Πολλοί παραγωγοί-καταναλωτές P1 C1 P2 Data Buf "GET" C2 Data PN CM Ταυτόχρονος Προγραμματισμός 17

18 Buf: Data buf[n]; int in = 0, out = 0, n = 0; int pid; select { (n<n) && chanp[]?buf[in],void: { in = (in+1)%n; n++; (n>0) && chanc[]?"get",pid: { chanc[pid]!buf[out]; out = (out+1)%n; n--; Pi: /* produce d */ chanp[i]!d; Ci: chanc[i]!"get"; chanc[i]?d; /* consume d */ Ταυτόχρονος Προγραμματισμός 18 lalis@inf.uth.gr

19 Αμοιβαίος αποκλεισμός Lock "LOCK" "UNLOCK" P1 P2 PN... Ταυτόχρονος Προγραμματισμός 19

20 Lock: int pid=-1; select { (pid == -1) && chan[]?"lock",pid: { (pid!= -1) && chan[pid]?"unlock",void { pid = -1; Pi: chan[i]!"lock"; /* CS */ chan[i]!"unlock"; Ταυτόχρονος Προγραμματισμός 20 lalis@inf.uth.gr

21 Lock: int pid=-1; Pi: chan[i]!"lock"; /* CS */ χρειάζονται αυτές οι συνθήκες αναμονής; select { (pid == -1) && chan[]?"lock",pid: { (pid!= -1) && chan[pid]?"unlock": { pid = -1; chan[i]!"unlock"; Ταυτόχρονος Προγραμματισμός 21 lalis@inf.uth.gr

22 Lock: chan[]?"lock",void; chan[]?"unlock",void; Pi: chan[i]!"lock"; /* CS */ chan[i]!"unlock"; Ταυτόχρονος Προγραμματισμός 22

23 Γενικός σηματοφόρος Sem "DOWN" "UP" P1 P2 PN... Ταυτόχρονος Προγραμματισμός 23

24 Sem: int val = ; select { (val>0) && chan[]?"down",void: { val--; chan[]?"up",void: { val++; Pi: chan[i]!"down"; Pj: chan[j]!"up"; Ταυτόχρονος Προγραμματισμός 24 lalis@inf.uth.gr

25 Συνδαιτυμόνες φιλόσοφοι P0 P1 PN-1... "GET" "PUT" Fork0 Fork1 Fork2 ForkN-1... Ταυτόχρονος Προγραμματισμός 25

26 Fork(i): 0<= i < N select { chan[(i*2-1)%n]?"get": chan[(i*2-1)%n]?"put"; chan[i*2]?"get": chan[i*2]?"put"; Pi : 0<= i < N chan[i*2]!"get"; chan[i*2+1]!"get"; /* eat */ chan[i*2]!"put"; chan[i*2+1]!"put"; Ταυτόχρονος Προγραμματισμός 26 lalis@inf.uth.gr

27 Κόσκινο του Ερατοσθένη filter multiples of 1st prime filter multiples of 2nd prime filter multiples of 3rd prime filter multiples of 4th prime sink Sieve1 Sieve2 Sieve3 Sieve4 Sieve (11) Ταυτόχρονος Προγραμματισμός 27 lalis@inf.uth.gr

28 Sieve0: seed Sieve1: filter 2 Sieve2: filter 3 Sieve3: filter 5 Sieve4: filter 7 Sieve5: sink Ταυτόχρονος Προγραμματισμός 28 lalis@inf.uth.gr

29 Sieve(0): (seed) for (n=2; n<=100; n++) { chan[0]!n; Sieve(5): (sink) int n; chan[4]?n; print(n); Sieve(i): 1<= i <=4 int p, mp, n; chan[i-1]?p; // prime print(p); mp = p*p; // start filter chan[i-1]?n; while (n > mp) { mp = mp+p; // advance filter if (n < mp) { chan[i]!n; // passed filter Ταυτόχρονος Προγραμματισμός 29 lalis@inf.uth.gr

30 Πολλαπλασιασμός πινάκων = Zero 0,0,0 MulAdd 8,0,4 MulAdd 18,5,4 MulAdd 18,5,10 Result Ταυτόχρονος Προγραμματισμός 30 lalis@inf.uth.gr

31 Source Source Source ,0,0 Zero MulAdd 2,0,1 MulAdd 6,2,1 MulAdd 6,2,4 Result Vi,j ,0,0 Zero MulAdd 8,0,4 MulAdd 18,5,4 MulAdd 18,5,10 Result 4 Hi,j 5 Hi,j Vi+1,j ,0,0 Zero MulAdd 14,0,7 MulAdd 30,8,7 MulAdd 30,8,16 Result Sink Sink Sink Ταυτόχρονος Προγραμματισμός 31 lalis@inf.uth.gr

32 Source(i): 0<= i <N for (k=0; k<n-1; k++ ) { chanv[0][i]!b[i][k]; Sink(i): 0<= i <N for (k=0; k<n-1; k++ ) { chanv[n][i]?dmy; Zero(i): 0<= i <N for (k=0; k<n-1; k++ ) { chanh[i][0]!0; Result(i): 0<= i <N MulAdd(i,j): 0<= i,j <N int s,b; for (k=0; k<n-1; k++) { chanv[i][j]?b; // B[i][k] chanh[i][j]?s; // sum s = s + A[i][j]*b; chanv[i+1][j]!b; chanh[i][j+1]!s; for (k=0; k<n-1; k++ ) { chanh[i][n]?r[i][k]; Ταυτόχρονος Προγραμματισμός 32 lalis@inf.uth.gr

33 Υλοποίηση CSP Τοπικά: Κανάλι επικοινωνίας είναι μια ουρά μηνυμάτων Οι λειτουργίες!/? «αντιστοιχούν» στην τοποθέτηση και απομάκρυνση μηνυμάτων στην / από την ουρά Η select μπορεί να υλοποιηθεί ελέγχοντας τον τύπο ή/και το περιεχόμενο των μηνυμάτων Κατανεμημένα: Επικοινωνία πάνω από δίκτυο Ουρά σε εξυπηρετητή ή παραλήπτη Όταν ο παραλήπτης απομακρύνει ένα μήνυμα, ειδοποιείται ο αποστολέας για να ξεμπλοκάρει Ταυτόχρονος Προγραμματισμός 33 lalis@inf.uth.gr

34 P1 P2 CSP API Msg Queue Ταυτόχρονος Προγραμματισμός 34

35 P1 P2 CSP API CSP API Server Msg Queue Client Client Ταυτόχρονος Προγραμματισμός 35

36 P1 P2 CSP API CSP API Msg Queue Ταυτόχρονος Προγραμματισμός 36

37 Κανάλια με πολυπλεξία P1 channel P3 P2 P4 Το ίδιο κανάλι μπορεί να χρησιμοποιηθεί από πολλές διεργασίες για την αποστολή/παραλαβή μηνυμάτων Η αποστολή/παραλαβή παραμένει σύγχρονη Κάθε μήνυμα μπορεί να παραληφθεί μόνο μια φορά Ταυτόχρονος Προγραμματισμός 37

38 Παραγωγός-καταναλωτής με αποθήκη Buf: Data buf[n]; int in = 0, out = 0, n = 0; select { (n<n) && chan?("putdata",buf[in]): { in = (in+1)%n; n++; (n>0) && chan?"getdata": { chan!("data",buf[out]); out = (out+1)%n; n--; P: /* produce d */ chan!("putdata",d); C: chan!"getdata"; chan?("data",d); /* consume d */ Ταυτόχρονος Προγραμματισμός 38 lalis@inf.uth.gr

39 Αμοιβαίος αποκλεισμός Lock: chan?"lock"; chan?"unlock"; Pi: chan!"lock"; /* CS */ Lock: chan!"lock"; chan?"unlock"; Pi: chan?"lock"; /* CS */ chan!"unlock"; chan!"unlock"; Ταυτόχρονος Προγραμματισμός 39

40 Φιλόσοφοι Pi : Fork(i): chan[i]!"get": chan[i]?"put"; chan[i]?"get"; chan[(i+1)%n]?"get"; /* eat */ chan[i]!"put"; chan[(i+1)%n]!"put"; Ταυτόχρονος Προγραμματισμός 40 lalis@inf.uth.gr

41 Ραντεβού στην Ada Ταυτόχρονος Προγραμματισμός 41

42 Κλήση διαδικασίας με ραντεβού Συνδυασμός σχήματος συγχρονισμού του CSP για επικοινωνία μέσω κλήσεων διαδικασίας Μέσω της εντολής accept, γίνεται ρητή αποδοχή μιας κλήσης του API, με μπλοκάρισμα μέχρι ένα άλλο νήμα να πραγματοποιήσει μια τέτοια κλήση Αντίθετα, αν ένα νήμα καλέσει μια διαδικασία για την οποία δεν έχει γίνει ακόμα accept, τότε μπλοκάρει μέχρι η κλήση να γίνει αποδεκτή και να εκτελεστεί Ταυτόχρονος Προγραμματισμός 42

43 η P1 περιμένει την P2 η P2 περιμένει την P1 P1 P2 P1 P2 f() accept f() accept f() f() επεξεργασία return επεξεργασία return Ταυτόχρονος Προγραμματισμός 43

44 Συντακτικά στοιχεία Συνάρτηση διεπαφής f(in type in1 par in1,, type inn par inn, out type out1 par out1,, type outn par outn ); Κλήση f(in 1,,in N,&out 1,,&out N ) Αναμονή για κλήση και εκτέλεση accept f(in 1,,in N,&out 1,,&out N ) { /* υλοποίηση συνάρτησης */ Ταυτόχρονος Προγραμματισμός 44 lalis@inf.uth.gr

45 Αμοιβαίος αποκλεισμός lock: export down(),up(); accept down() { accept up() { Pi: lock.down(); /* κρίσιμο τμήμα */ lock.up(); Ταυτόχρονος Προγραμματισμός 45 lalis@inf.uth.gr

46 Παραγωγός καταναλωτής buf: export put(in Data d), get(out Data d); Data buf[n]; int in=0,out=0,n=0; accept put(in Data d) { buf[in] = d; in = (in+1)%n; accept get(out Data d) { d = buf[out]; out = (out+1)%n; producer: /* produce d */ buf.put(d); consumer: buf.get(&d); /* consume d */ Ταυτόχρονος Προγραμματισμός 46 lalis@inf.uth.gr

47 Σχόλιο για την προηγούμενη λύση Μέσω των διαδικασιών put και get γίνεται η μεταφορά των δεδομένων προς / από την αποθήκη Η αλλαγή των δεικτών in / out γίνεται έξω από τον κώδικα των διαδικασιών put και get δεν υπάρχει λόγος να παραμείνει μπλοκαρισμένο περισσότερο το νήμα που καλεί αυτές τις διαδικασίες Λόγω της σχετικής σειράς των εντολών accept, η μόνη εφικτή σειρά εκτέλεσης των πράξεων είναι put, get, put, get, put, get κτλ χρησιμοποιείται μόνο μια θέση της αποθήκης Ταυτόχρονος Προγραμματισμός 47 lalis@inf.uth.gr

48 Αναμονή με επιλογή σε πολλές κλήσεις Στο πνεύμα του CSP select { when C 1 accept foo 1 () Body 1 S 1 when C 2 accept foo 2 () Body 2 S 2 else S N ; Μπλοκάρει μέχρι να κληθεί μια διαδικασία της οποίας η συνθήκη επιλογής είναι αληθής ή να υπάρχει else Το νήμα που καλεί μια διαδικασία μπλοκάρεται μόνο κατά την εκτέλεση του σώματος Body i της, και όχι κατά την εκτέλεση των υπόλοιπων εντολών Si Ταυτόχρονος Προγραμματισμός 48 lalis@inf.uth.gr

49 Γενικός σηματοφόρος sem: export down(), up(); int val=0; select { when (val>0) accept down() { val--; when (true) accept up() { val++; Ταυτόχρονος Προγραμματισμός 49 lalis@inf.uth.gr

50 Παραγωγός καταναλωτής buf: export put(in Data d), get(out Data d); data buf[n]; int in=0,out=0,n=0; select { when (n<n) accept put(in Data d) { buf[in] = d; n++; in = (in+1)%n; when (n>0) accept get(out Data d) { d = buf[out]; n--; out = (out+1)%n; producer: /* produce d */ buf.put(d); consumer: buf.get(&d); /* consume d */ Ταυτόχρονος Προγραμματισμός 50 lalis@inf.uth.gr

Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1

Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1 Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Σύγχρονα κανάλια επικοινωνίας Μέρος του Communicating Sequential Processes (CSP) που

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

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1 Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής if () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά προτού αυτό

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

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1

Σηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1 Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής εναλλαγή if/while () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά

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

Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1

Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Tuple space Ένας κοινός χώρος αποθήκευσης δεδομένων / μηνυμάτων, με μορφή πλειάδων (tuples) Παρέχονται ειδικές λειτουργίες για

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

Υλοποίηση Σηματοφόρων

Υλοποίηση Σηματοφόρων Υλοποίηση Σηματοφόρων 1 lalis@inf.uth.gr Υλοποίηση σε επίπεδο συστήματος Εσωτερική κατάσταση: Ένας ακέραιος για την αποθήκευση της τιμής του σηματοφόρου Μια ουρά αναμονής που τοποθετείται ένα νήμα όταν

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

Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1

Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 Χώροι Πλειάδων (Tuple Spaces) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Tuple space Ένας κοινός χώρος αποθήκευσης δεδομένων / μηνυμάτων, με μορφή πλειάδων (tuples) Παρέχονται ειδικές λειτουργίες για

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

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1

Κρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1 Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο

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

Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1

Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Υλοποίηση σηματοφόρων Οι σηματοφόροι είναι ένας ΑΤΔ με συγκεκριμένες λειτουργίες πρόσβασης Μπορεί να υλοποιηθούν με «φυσικό»

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

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1 Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός

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

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

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

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1

Επικοινωνία με μηνύματα. Κατανεμημένα Συστήματα 1 Επικοινωνία με μηνύματα Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Επικοινωνία με ανταλλαγή μηνυμάτων Η επικοινωνία με μηνύματα είναι ο πιο ευέλικτος τρόπος αλληλεπίδρασης σε κατανεμημένα συστήματα πιο

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

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

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

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

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1

Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1 Αμοιβαίος αποκλεισμός με ασύγχρονη επικοινωνία (ανταλλαγή μηνυμάτων) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Μοντέλο δικτύου/επικοινωνίας Αξιοπιστία (δεν χάνονται μηνύματα) Άγνωστη ταχύτητα μετάδοσης

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

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1

Ελεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1 Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες

Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες Interprocess Communication and Concurrent Processes Περίληψη Σύνδροµος Προγραµµατισµός Συνθήκη συναγωνισµού Συγχρονισµός διεργασιών Κρίσιµες περιοχές

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

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

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

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

Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1

Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 Ουρές Μηνυμάτων (Message Queues in System V) Προγραμματισμός II 1 lalis@inf.uth.gr Ουρά μηνυμάτων Αποθήκη μηνυμάτων στην μνήμη του λειτουργικού Περιορισμένος αριθμός / όγκος μηνυμάτων Κάθε μήνυμα είναι

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

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1

Εντοπισμός αδιεξόδου. Κατανεμημένα Συστήματα 1 Εντοπισμός αδιεξόδου Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Αδιέξοδο σε κατανεμημένο σύστημα Αδιέξοδο: «κυκλική» και ατέρμονη αναμονή μεταξύ δύο ή περισσοτέρων διεργασιών Το πρόβλημα υφίσταται ήδη σε

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

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

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

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

Κλασικά Προβλήματα Συγχρονισμού (με σηματοφόρους) Ταυτόχρονος Προγραμματισμός 1

Κλασικά Προβλήματα Συγχρονισμού (με σηματοφόρους) Ταυτόχρονος Προγραμματισμός 1 Κλασικά Προβλήματα Συγχρονισμού (με σηματοφόρους) 1 lalis@inf.uth.gr Παραγωγός-Καταναλωτής (με σηματοφόρους) 2 lalis@inf.uth.gr Παραγωγός-καταναλωτής Νήματα που παράγουν / καταναλώνουν δεδομένα τα οποία

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

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1

Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις

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

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

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

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

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

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

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

IPC System V. Προγραμματισμός II 1

IPC System V. Προγραμματισμός II 1 IPC System V Προγραμματισμός II 1 lalis@inf.uth.gr Διαδιεργασιακή επικοινωνία System V 3 είδη «αντικειμένων» (μηχανισμών) επικοινωνίας ουρές μηνυμάτων (message queues): msg κοινόχρηστες περιοχές μνήμης

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

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1 Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό bytes

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

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1 Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο Κατανεμημένα Συστήματα lalis@inf.uth.gr Μοντέλο δικτύου* Το δίκτυο δέχεται και επιστρέφει πακέτα κάθε πακέτο μεταφέρει έναν περιορισμένο αριθμό

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

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1

Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 Μετακινούμενος Κώδικας (Mobile Code) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Γιατί μετακινούμενος κώδικας; Ευελιξία διαχείρισης μετακίνηση υπηρεσιών του συστήματος Μείωση επικοινωνίας / τοπικής επεξεργασίας

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

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

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

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

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 12: Διάχυση Μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προσομοίωσης Τι θα δούμε σήμερα Προσομοίωση Υπηρεσίας Διάχυσης Μηνυμάτων Ιδιότητες Διάταξης Μηνυμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι

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

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

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

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

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1

Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 Αγωγοί/Σωλήνες (Pipes) Προγραμματισμός II 1 lalis@inf.uth.gr Τι είναι ένας αγωγός; Μηχανισμός/συσκευή επικοινωνίας διεργασιών Μετάδοση μιας ροής από bytes (μονής κατεύθυνσης) First-in-first-out (FIFO):

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

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

Βασικές έννοιες. Κατανεμημένα Συστήματα 1

Βασικές έννοιες. Κατανεμημένα Συστήματα 1 Βασικές έννοιες Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ορισμός κατανεμημένου συστήματος Ένα σύστημα από ξεχωριστές ενεργές οντότητες (ονομάζονται «κόμβοι» ή «διεργασίες») που εκτελούνται ταυτόχρονα/ανεξάρτητα

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

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

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY120) #6 εκτέλεση σε επανάληψη 1 Σπύρος Λάλης Εκτέλεση σε επανάληψη: while while () lexpr body true false Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται σε μια τιμή

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

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

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 4α: Σημαφόροι, Πρόβλημα Συνδαιτυμόνων Φιλοσόφων, Αδιέξοδα Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python Εισαγωγή στην Επιστήμη Υπολογιστών Εισαγωγή στην Python Β Μέρος Δομή Ελέγχου if-elif-else Επαναληπτική Δομή Ελέγχου while Επαναληπτική Δομή Ελέγχου for Αλληλεπίδραση χρήστη-προγράμματος Συναρτήσεις Η δομή

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

Κατανεμημένα Συστήματα. Javascript LCR example

Κατανεμημένα Συστήματα. Javascript LCR example Κατανεμημένα Συστήματα Javascript LCR example Javascript JavaScript All JavaScript is the scripting language of the Web. modern HTML pages are using JavaScript to add functionality, validate input, communicate

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

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1 Αμοιβαίος αποκλεισμός με κοινή μνήμη 1 lalis@inf.uth.gr Το πρόβλημα Έστω ότι δύο η περισσότερα νήματα επιθυμούν να προσπελάσουν έναν κοινό πόρο, που όμως δεν μπορεί να χρησιμοποιηθεί ταυτόχρονα Η χρήση

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

Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1

Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Σηματοφόροι Οι σηματοφόροι είναι ένας ΑΤΔ με συγκεκριμένες λειτουργίες πρόσβασης Μπορεί να υλοποιηθούν εύκολα με τον

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

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει

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

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

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

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

Διάλεξη 5η: Εντολές Επανάληψης

Διάλεξη 5η: Εντολές Επανάληψης Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016

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

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1

Επικοινωνία αίτησης-απάντησης. Κατανεμημένα Συστήματα 1 Επικοινωνία αίτησης-απάντησης Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Σχήμα επικοινωνίας -reply Μια διεργασία στέλνει μια αίτηση () σε μια άλλη διεργασία, η οποία επεξεργάζεται την αίτηση και στέλνει

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

Διεργασίες (Processes)

Διεργασίες (Processes) Διεργασία (process) ή καθήκον (task) Διεργασίες (Processes) στοιχειώδης οντότητα/δραστηριότητα υπολογισμού (processing entity/activity) εκτέλεση ενός προγράμματος ένα (κύριο) νήμα (thread)/ρεύμα ελέγχου/εκτέλεσης

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

Δίκτυα Επικοινωνιών ΙΙ: 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, μη αξιόπιστο,

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

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

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

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

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή ΚΕΦΑΛΑΙΟ 9 Ταυτόχρονος προγραμματισμός και νήματα Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε τον ταυτόχρονο προγραμματισμό με τη χρήση νημάτων. Η έμφαση είναι στην κατανόηση βασικών λειτουργιών των νημάτων

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

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

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

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

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1 Εντοπισμός τερματισμού Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Μοντέλο συστήματος Μια ομάδα διεργασιών εκτελεί έναν υπολογισμό Κατάσταση διεργασίας: ενεργητική ή παθητική (ανάλογα με το αν εκτελεί μέρος

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

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

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

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

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

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

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

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου Σκοπός και περίγραμμα της Ενότητας 4 Σκοπός της παρουσίασης Να μελετήσουμε τις συναρτήσεις που ελέγχουν την ροή και την εκτέλεση ενός προγράμματος Σύνοψη

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

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1

Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων. Κατανεμημένα Συστήματα 1 Συνεπείς καθολικές καταστάσεις & επιβεβαίωση ιδιοτήτων Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης στην

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

2.4 Κλασσικά Προβλήματα IPC

2.4 Κλασσικά Προβλήματα IPC 2.4 Κλασσικά Προβλήματα IPC 1 Οι φιλόσοφοι που γευματίζουν - Dining Philosophers Μια πρώτη λύση για Ν φιλοσόφους: philosopher (i) while (1) { think; take_fork(i);/* πάρε αριστερό ξυλάκι */ take_fork(i+1

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

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1

Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις. Κατανεμημένα Συστήματα 1 Συνεπής παρατήρηση εκτέλεσης & συνεπείς καθολικές καταστάσεις Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Λογικά συνεπείς τομές Τμήμα τοπικής ιστορίας: h i.k {e i.1,e i.2,e i.k } τμήμα της τοπικής εκτέλεσης

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU

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

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1 Αμοιβαίος αποκλεισμός με κοινή μνήμη 1 lalis@inf.uth.gr Το πρόβλημα Έστω ότι δύο η περισσότερα νήματα επιθυμούν να προσπελάσουν έναν κοινό πόρο, που όμως δεν μπορεί να χρησιμοποιηθεί ταυτόχρονα Η χρήση

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

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1

Αμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1 Αμοιβαίος αποκλεισμός με κοινή μνήμη 1 lalis@inf.uth.gr Το πρόβλημα Έστω ότι δύο η περισσότερα νήματα επιθυμούν να προσπελάσουν έναν κοινό πόρο, που όμως δεν μπορεί να χρησιμοποιηθεί ταυτόχρονα Η χρήση

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

Σειρά Προβλημάτων 1 Λύσεις

Σειρά Προβλημάτων 1 Λύσεις Άσκηση 1 Σειρά Προβλημάτων 1 Λύσεις (α) Χρησιμοποιούμε τις επιπλέον μεταβλητές PC 0, PC 1, (program counters) οι οποίες παίρνουν ως τιμές ονόματα των γραμμών του κώδικα όπως φαίνεται πιο κάτω. P[0] P[1]

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

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι. Κατανεμημένα Συστήματα Ι 1 Περίληψη Φροντιστηρίου 2 Το Περιβάλλον DAP Φροντιστήριο Ένα παράδειγμα υλοποίησης στο DAP Δευτέρα 14 Νοεμβρίου 2005 Γιάννης Κρομμύδας Το περιβάλλον DAP Τι είναι Το περιβάλλον

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

Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC)

Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC) Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC) Τουλάχιστον δύο διεργασίες (ο αποστολέας και ο παραλήπτης) Σύγχρονη (synchronous) Aσύγχρονη (asynchronous) Χρονική σύνδεση Δε χρειάζεται χρονική

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

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU

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

ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ οµηµένος Προγραµµατισµός Ανοιξη 5 Μάθηµα 5 ο Ουρά Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Ουρά Υλοποίηση µε Κυκλικό Πίνακα Υλοποίηση

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 17: Λύση Προβλημάτων με Αναδρομή Οι πύργοι του Hanoi Δίνεται ένα χώρος με τρεις θέσεις αποθήκευσης. Δίνεται μια στοίβα από Ν πλάκες σε φθίνον μέγεθος, σε μια από τις τρεις

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

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών

Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Παράλληλη Επεξεργασία Κεφάλαιο 4 Επικοινωνία Διεργασιών Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια

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

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

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

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

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

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

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 10: Αλγόριθμοι Αμοιβαίου Αποκλεισμού σε περιβάλλον ανταλλαγής μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Χρήση Συντονιστή Αλγόριθμος του Lamport Αλγόριθμος LeLann:

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα Η Υλοποίηση της Επικοινωνίας στα Κατανεµηµένα Συστήµατα ιαφάνειες στα πλαίσια του µαθήµατος: Κατανεµηµένα Συστήµατα Ε Εξάµηνο, Τµήµα Πληροφορικής και Τεχνολογίας Υπολογιστών, ΤΕΙ Λαµίας Πέτρος Λάµψας 2002

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:

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

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:

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

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

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

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

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. Ερωτήσεις προόδου C Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα. #include // δίνει οδηγία στον compiler να // συμπεριλάβει την βιβλιοθήκη stdio int

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5 Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών

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

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Σύντομες εισαγωγικές σημειώσεις για την. Matlab Σύντομες εισαγωγικές σημειώσεις για την Matlab Δήλωση Μεταβλητών Για να εισάγει κανείς δεδομένα στη Matlab υπάρχουν πολλοί τρόποι. Ο πιο απλός είναι στη γραμμή εντολών να εισάγουμε αυτό που θέλουμε και

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

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

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

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

Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση

Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση Ορθότητα λειτουργίας τμημάτων λογισμικού & δομών δεδομένων υπό ταυτόχρονη εκτέλεση ΙΙΙ 1 lalis@inf.uth.gr Ορθή συμπεριφορά τμήματος λογισμικού Ένα τμήμα λογισμικού (ή ένας ΑΤΔ) προσπελάζεται με δομημένο/ελεγχόμενο

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

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1

Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1 Κατανεμημένη συμφωνία (distributed consensus) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Το πρόβλημα της συμφωνίας Σε ένα κατανεμημένο σύστημα, οι διεργασίες μπορεί ανά πάσα στιγμή να έχουν διαφορετική

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

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

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

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

Δείκτες σε συναρτήσεις. Προγραμματισμός II 1

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

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

Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1

Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1 Ομαδική Επικοινωνία (Group Communication) Κατανεμημένα Συστήματα 1 lalis@inf.uth.gr Ομαδική επικοινωνία Σαφής διαχωρισμός ανάμεσα στις διεργασίες που είναι και σε αυτές που δεν είναι μέλη της ομάδας Ανοιχτή

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

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

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

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

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών PHP 1 Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

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

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Ταυτοχρονισμός, Συγχρονισμός Πολλαπλές Διεργασίες/Νήματα σε 1 Κοινωνία: Προβλήματα; «Κοινωνικές Γιάννης διεργασίες/νήματα»: Διαβάζουν/γράφουν στον ίδιο χώρο. Αποτέλεσμα; Πιθανότατα

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU

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

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο 2012-2013 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη Project 2012-2013 Υλοποίηση ενός chat server-client Παράδοση: 7/2/2013

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές

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

Δομές Δεδομένων. Ενότητα 3: Ουρές Εισαγωγή-Υλοποίηση ΑΤΔ Ουρά με πίνακα. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής.

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

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

Αμοιβαίος αποκλεισμός

Αμοιβαίος αποκλεισμός Αμοιβαίος αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού II. Υποστήριξη εκ μέρους του υλικού III. Σηματοφορείς 4. Κλασσικά

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

Εισαγωγή στην γλώσσα προγραμματισμού C

Εισαγωγή στην γλώσσα προγραμματισμού C Εισαγωγή στην γλώσσα προγραμματισμού C Χαρακτηριστικά της C Ιδιαίτερα δημοφιλής Έχει χρησιμοποιηθεί για τον προγραμματισμό ευρέος φάσματος συστημάτων και εφαρμογών Γλώσσα μετρίου επιπέδου Φιλοσοφία: Ο

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 6 «Αδιέξοδο» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αδιέξοδο 1. Ορισμοί είδη πόρων 2. Γράφοι εκχώρησης πόρων 3. Συνθήκες αδιεξόδου 4. Προσεγγίσεις αδιεξόδου

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