Μηχανισμοί και προγραμματιστικές δομές συγχρονισμού. Προβλήματα συγχρονισμού (και λύσεις)

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

Download "Μηχανισμοί και προγραμματιστικές δομές συγχρονισμού. Προβλήματα συγχρονισμού (και λύσεις)"

Transcript

1

2 Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.

3 Περιεχόμενα 2 Το πρόβλημα του συγχρονισμού Πότε/γιατί χρειάζεται δύο ή περισσότερες διεργασίες να συγχρονιστούν; Μηχανισμοί και προγραμματιστικές δομές συγχρονισμού Κλειδώματα (locks) Σημαφόροι (semaphores) Παρακολουθητές (monitors) Προβλήματα συγχρονισμού (και λύσεις) Σειριοποίηση (ordering) Παραγωγός - Καταναλωτής Αναγνώστες - Εγγραφείς Συνδαιτημόνες συγγραφείς (dining philosophers) Επιπλέον ζητήματα Αλληλεπίδραση με το υλικό Στρατηγικές συγχρονισμού Αδιέξοδα

4 Μοιραζόμενοι πόροι μεταξύ διεργασιών 3 Μοιραζόμενοι πόροι Συνεργασία διεργασιών (χώρος χρήστη) πχ πρόβλημα παραγωγού-καταναλωτή Πρόσβαση σε πόρους του ΛΣ (χώρος πυρήνα) πχ πρόσβαση στο σύστημα αρχείων Πρόσβαση διεργασιών σε μοιραζόμενους πόρους/δεδομένα Πιθανή δημιουργία ασυνεπειών Σημείωση: ο όρος διεργασία περιλαμβάνει και τα νήματα

5 4 Παράδειγμα: Παραγωγός-Καταναλωτής δομή: Κυκλικός πίνακας (μεγέθους N) Καταναλωτής: αφαιρεί δεδομένα από το "τέλος" #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0;

6 4 Παράδειγμα: Παραγωγός-Καταναλωτής δομή: Κυκλικός πίνακας (μεγέθους N) Καταναλωτής: αφαιρεί δεδομένα από το "τέλος" #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; void enqueue(item_t item){ item_t item; item_t dequeue(void){ item_t item; buffer[in] = item; in = NEXT(in); count++; item = buffer[out]; out = NEXT(out); count--; return item

7 4 Παράδειγμα: Παραγωγός-Καταναλωτής δομή: Κυκλικός πίνακας (μεγέθους N) Καταναλωτής: αφαιρεί δεδομένα από το "τέλος" #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; void enqueue(item_t item){ item_t item; while (count == N) ; // wait buffer[in] = item; in = NEXT(in); count++; item_t dequeue(void){ item_t item; while (count == 0) ; // wait item = buffer[out]; out = NEXT(out); count--; return item

8 4 Παράδειγμα: Παραγωγός-Καταναλωτής δομή: Κυκλικός πίνακας (μεγέθους N) Καταναλωτής: αφαιρεί δεδομένα από το "τέλος" #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; void enqueue(item_t item){ item_t item; while (count == N) ; // wait buffer[in] = item; in = NEXT(in); count++; item_t dequeue(void){ item_t item; while (count == 0) ; // wait item = buffer[out]; out = NEXT(out); count--; return item

9 5 Κατάσταση συναγωνισμού race condition t count++ count-- 1 LOAD r, count 2 ADD 1, r 3 LOAD r, count 4 SUB 1, r 5 STORE r, count 6 STORE r, count

10 5 Κατάσταση συναγωνισμού race condition t count++ count-- 1 LOAD r, count 2 ADD 1, r 3 LOAD r, count 4 SUB 1, r 5 STORE r, count 6 STORE r, count Αν για t = 0, count = c, τότε για t = 7, count = c 1 Ασυνέπεια στη δομή του κυκλικού πίνακα Κατάσταση συναγωνισμού: κατάσταση κατά την οποία το αποτέλεσμα ενός υπολογισμού εξαρτάται από την σειρά που πραγματοποιούνται οι προσπελάσεις.

11 Παράδειγμα: Διπλά συνδεδεμένη λίστα 6 struct list_head { struct list_head *next; struct list_head *prev; ; list_del(prev, next) { prev->next = next; next->prev = prev; A. B C D

12 6 Παράδειγμα: Διπλά συνδεδεμένη λίστα struct list_head { struct list_head *next; struct list_head *prev; ; list_del(prev, next) { prev->next = next; next->prev = prev; Διαγραφή B (1 διεργασία) 1. t0: prev->next = next; 2. t0: next->prev = prev; 3. OK! A B C D A B C D A B C D

13 6 Παράδειγμα: Διπλά συνδεδεμένη λίστα struct list_head { struct list_head *next; struct list_head *prev; ; list_del(prev, next) { prev->next = next; next->prev = prev; Διαγραφή B,C (2 διεργασίες) 1. t0: prev->next = next; 2. t1: prev->next = next; A B C D A B C D A B C D

14 6 Παράδειγμα: Διπλά συνδεδεμένη λίστα struct list_head { struct list_head *next; struct list_head *prev; ; list_del(prev, next) { prev->next = next; next->prev = prev; Διαγραφή B,C (2 διεργασίες) 1. t0: prev->next = next; 2. t1: prev->next = next; 3. ΑΣΥΝΕΠΕΙΑ A B C D A B C D A B C D

15 Πρόσβαση σε μοιραζόμενες πόρους/δεδομένα 7 Πιθανή δημιουργία ασυνεπειών - Διακοπτή χρονοδρομολόγηση (preemptive scheduling) Ο χρονοδρομολογητής μπορεί να διακόψει την τρέχουσα διεργασία σε οποιοδήποτε σημείο. - Πολυεπεξεργασία (συστήματα μοιραζόμενης μνήμης) Ταυτόχρονη πρόσβαση σε κοινές δομές δεδομένων. Ανάγκη για συγχρονισμό διεργασιών Χώρος χρήστη Χώρος πυρήνα

16 8 1 επεξεργαστής, Διακοπτή χρονοδρομολόγηση (χώρος χρήστη) Δ0 p0-ins0 p0-ins1. p0-ins2... Δ1 p1-ins0 p1-ins1 p1-ins2... Δ2 p2-ins0 p2-ins1 p2-ins2... Χρονοδρομολογητής KME p2-ins0 p2-ins1 p0-ins0 p1-ins0...

17 >1 επεξεργαστές, πολυεπεξεργασία (χώρος χρήστη) Δ0 p0-ins0 p0-ins1. p0-ins2... Δ1 p1-ins0 p1-ins1 p1-ins2... Δ2 p2-ins0 p2-ins1 p2-ins2... Χρονοδρομολογητής ΚΜΕ0 $ ΚΜΕ1 $ Μνήμη 9

18 10 Κρίσιμο τμήμα (ΚΤ) critical section Λύση στο πρόβλημα της ταυτόχρονης πρόσβασης σε μοιραζόμενους πόρους Διαισθητικά: ορίζονται τμήματα κώδικα στα οποία μπορεί να βρίσκεται το πολύ μια διεργασία τη φορά Επιτρέπει την ατομική εκτέλεση τμημάτων Απαιτήσεις: Αμοιβαίος αποκλεισμός (mutual exclusion) Πρόοδος Πεπερασμένη αναμονή Παραδοχές μη-μηδενικές ταχύτητες εκτέλεσης διεργασιών καμία παραδοχή για την σχετική ταχύτητα των διεργασιών

19 11 Κλειδώματα Locks Ορισμός κρίσιμων τμημάτων: Είσοδος στο ΚΤ: κλείδωμα (lock) Έξοδος από το ΚΤ: ξεκλείδωμα (unlock) do { lock(mylock); /* critical section */ code unlock(mylock); remainder section while (TRUE);

20 11 Κλειδώματα Locks Ορισμός κρίσιμων τμημάτων: Είσοδος στο ΚΤ: κλείδωμα (lock) Έξοδος από το ΚΤ: ξεκλείδωμα (unlock) do { do { lock(mylock); lock(mylock); /* critical section */ /* critical section */ code other code unlock(mylock); unlock(mylock); remainder section other remainder section while (TRUE); while (TRUE); μεταβλητή lock: ορίζει instances του ΚΤ

21 12 Μια πρώτη λύση στο πρόβλημα του συγχρονισμού για 2 διεργασίες bool flag[2] = { FALSE, FALSE ; do { flag[me] = TRUE; while (flag[other]) ; critical section flag[me] = FALSE; remainder section while (TRUE);

22 12 Μια πρώτη λύση στο πρόβλημα του συγχρονισμού για 2 διεργασίες bool flag[2] = { FALSE, FALSE ; do { flag[me] = TRUE; while (flag[other]) ; critical section flag[me] = FALSE; remainder section while (TRUE); t me=0 me=1 1 flag[0] = TRUE 2 flag[1] = TRUE

23 12 Μια πρώτη λύση στο πρόβλημα του συγχρονισμού για 2 διεργασίες bool flag[2] = { FALSE, FALSE ; do { flag[me] = TRUE; while (flag[other]) ; critical section flag[me] = FALSE; remainder section while (TRUE); t me=0 me=1 1 flag[0] = TRUE 2 flag[1] = TRUE Αδιέξοδο! (αδύνατο να συνεχιστεί η εκτέλεση)

24 13 Η λύση του Peterson do { flag[me] = TRUE; turn = other; while (flag[other] && turn == other) ; critical section flag[me] = FALSE; remainder section while (TRUE); Περιορίζεται σε δύο διεργασίες Θεωρητικά ικανοποιεί τις απαραίτητες συνθήκες Πρακτικά δεν μπορεί να χρησιμοποιηθεί

25 14 Ζητήματα Υλοποίησης στην πράξη... Ο μεταγλωττιστής μπορεί να αναδιατάξει τις εντολές Ο Επεξεργαστής μπορεί να εκτελέσει εντολές εκτός σειράς (Out of Order Execution) Σε πολυεπεξεργαστικά συστήματα μοιραζόμενης μνήμης, δεν είναι προφανές πότε θα φανούν οι αλλαγές που έκανε ένας επεξεργαστής σε μια θέση μνήμης στους υπόλοιπους.

26 15 Μηχανισμοί Συγχρονισμού Ατομικές εντολές (Atomic Operations) Περιστροφικά Κλειδώματα (Spinlocks) Κλειδώματα αμοιβαίου αποκλεισμού (Mutexes) Σημαφόροι (Semaphores) Ελεγκτές/Παρακολουθητές (Monitors)

27 16 Ατομικές Εντολές Atomic Operations Εγγυημένες να λειτουργούν ατομικά Υλοποιούνται στο υλικό Χρησιμοποιούνται για τη δημιουργία μηχανισμών συγχρονισμού Παραδείγματα: TestAndSet: Θέτει την τιμή μιας μεταβλητής σε TRUE και επιστρέφει την προηγούμενη τιμή. Swap: Ανταλλάσσει την τιμή δύο μεταβλητών

28 Spinlocks 17 Υλοποίηση αμοιβαίου αποκλεισμού με: Ατομικές εντολές Βρόχους ενεργού αναμονής (busy-wait loops)

29 Spinlocks 17 Υλοποίηση αμοιβαίου αποκλεισμού με: Ατομικές εντολές Βρόχους ενεργού αναμονής (busy-wait loops) Παραδείγματα: do { while (TestAndSet(lock)) ; critical section UnSet(lock); remainder section while (TRUE);

30 Spinlocks 17 Υλοποίηση αμοιβαίου αποκλεισμού με: Ατομικές εντολές Βρόχους ενεργού αναμονής (busy-wait loops) Παραδείγματα: do { while (TestAndSet(lock)) ; critical section UnSet(lock); remainder section while (TRUE); do { key = TRUE; while (key) Swap(lock,key); critical section UnSet(lock); remainder section while (TRUE);

31 Spinlocks 17 Υλοποίηση αμοιβαίου αποκλεισμού με: Ατομικές εντολές Βρόχους ενεργού αναμονής (busy-wait loops) Παραδείγματα: do { while (TestAndSet(lock)) ; critical section UnSet(lock); remainder section while (TRUE); do { key = TRUE; while (key) Swap(lock,key); critical section UnSet(lock); remainder section while (TRUE); Δεν ικανοποιούν την απαίτηση πεπερασμένης αναμονής

32 18 Υλοποίηση spinlock που ικανοποιεί όλες τις απαιτήσεις για το κρίσιμο τμήμα #define NEXT(x) ((x + 1) % N) bool waiting[n], lock; Lock: Set(waiting[me]); key = TRUE; while (Test(waiting[me]) && key) key = TestAndSet(&lock); UnSet(waiting[me]); Unlock: for (j = NEXT(me); ; j = NEXT(j)){ if (j == me){ UnSet(lock); break; if (Test(waiting[j])){ UnSet(waiting[j]); break;

33 19 Τακτικές αμοιβαίου αποκλεισμού Ενεργός Αναμονή Καταναλώνει υπολογιστικούς πόρους, όσο μια άλλη διεργασία βρίσκεται στο κρίσιμο τμήμα. Η ΚΜΕ μπορεί να χρησιμοποιηθεί για άλλες εργασίες Κατανάλωση ενέργειας Αμοιβαίος αποκλεισμός με αναστολή εκτέλεσης (Mutex) Αν το ΚΤ είναι κατειλημμένο η διεργασία αναστέλλει την λειτουργία της και τίθεται υπό αναμονή (state = WAITING). Ο επεξεργαστής ελευθερώνεται και ο Χρονοδρομολογητής επιλέγει άλλη διεργασία. Κατά την έξοδο από το ΚΤ, ενεργοποιείται μια υπό αναμονή διεργασία (state = READY)

34 20 Σημαφόροι Semaphores Τα spinlocks και mutexes λύνουν το πρόβλημα του κρίσιμου τμήματος, αλλά: Είναι "low-level" primitives και δυσχεραίνουν τον προγραμματισμό Δεν επιλύουν πιο σύνθετα προβλήματα συγχρονισμού (π.χ. > 1 διεργασίες στο κρίσιμο τμήμα) Οι σημαφόροι επινοήθηκαν από τον Dijkstra Αποτελούν προγραμματιστικές δομές συγχρονισμού υψηλότερου επιπέδου Είναι πιο ευέλικτοι από τα locks και μπορούν να χρησιμοποιηθούν για επίλυση πιο σύνθετων προβλημάτων (βλ. συνέχεια)

35 21 Σημαφόροι Λειτουργίες Ο σημαφόρος είναι ένας ακέραιος αριθμός στον οποίο επιτρέπεται η πρόσβαση μόνο με τρεις αυστηρά ορισμένες λειτουργίες: αρχικοποίηση, wait και signal. Λειτουργίες: Αρχικοποιείται σε μία ακέραιη τιμή. Μετά την αρχικοποίηση επιτρέπονται μόνο η wait() και η signal() wait(): Αν ο σημαφόρος είναι <= 0, η διεργασία περιμένει ("κολλάει"). Αν είναι > 0 ο σημαφόρος μειώνεται κατά 1 και η διεργασία συνεχίζει την εκτέλεσή της. signal(): Ο σημαφόρος αυξάνεται κατά 1.

36 22 Σημαφόροι Λειτουργίες wait (S) { while (S <= 0) ; S--; signal (S) { S++;

37 22 Σημαφόροι Λειτουργίες wait (S) { while (S <= 0) ; S--; signal (S) { S++; Όλες οι αλλαγές στην τιμή του σημαφόρου είναι ατομικές!

38 23 Σημαφόροι Υλοποίηση με ενεργό αναμονή wait (S) { while (1) { lock(s_lock); if (S > 0) { S--; unlock(s_lock); break; unlock(s_lock); signal (S) { lock(s_lock); S++; unlock(s_lock);

39 24 Σημαφόροι Υλοποίηση χωρίς ενεργό αναμονή typedef struct { int value; lock s_lock; struct process *list; Semaphore; wait (Semaphore *S) { lock(s->s_lock); S->value--; if (S->value < 0) { add proc to S->list; unlock(s->s_lock); block(); unlock(s->s_lock); signal (Semaphore *S) { lock(s->s_lock); S->value++; if (S->value <= 0) { remove P from S->list; wakeup(p); unlock(s->s_lock);

40 25 Σημαφόροι Σημειώσεις Μια διεργασία δεν μπορεί να ξέρει την τιμή του σημαφόρου και συγκεκριμένα δεν ξέρει αν θα χρειαστεί να περιμένει ή όχι σε περίπτωση που καλέσει την wait() Δεν υπάρχει κάποιος κανόνας για το ποιο νήμα από αυτά που περιμένουν, θα συνεχίσει την λειτουργία του μετά από κλήση της signal() Ένα mutex ισοδυναμεί με έναν σημαφόρο αρχικοποιημένο στο 1 (unlocked) Οι λειτουργίες στους σημαφόρους παραδοσιακά αναφέρονται και ως P() (wait()) και V() (signal()).

41 26 Πρόβλημα σειριοποίησης (ordering) Θέλουμε η διεργασία P 1 να εκτελέσει τη ρουτίνα S 1 πριν η διεργασία P 2 εκτελέσει τη ρουτίνα S 2. Αρχικοποιούμε το σημαφόρο sema στην τιμή 0. // P1 S1(); signal(sema); // P2 wait(sema); S2();

42 Πρόβλημα Παραγωγού-Καταναλωτή 27 #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; void enqueue(item_t item){ item_t item; while (count == N) ; // wait buffer[in] = item; in = NEXT(in); count++; item_t dequeue(void){ item_t item; while (count == 0) ; // wait item = buffer[out]; out = NEXT(out); count--; return item

43 Πρόβλημα Παραγωγού-Καταναλωτή 27 #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; sema_t mutex = semaphore(1); void enqueue(item_t item){ wait(mutex); item_t item; while (count == N) ; // wait buffer[in] = item; in = NEXT(in); count++; signal(mutex); item_t dequeue(void){ wait(mutex); item_t item; while (count == 0) ; // wait item = buffer[out]; out = NEXT(out); count--; signal(mutex); return item

44 27 Πρόβλημα Παραγωγού-Καταναλωτή #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; sema_t mutex = semaphore(1); void enqueue(item_t item){ wait(mutex); item_t item; while (count == N) ; // wait buffer[in] = item; in = NEXT(in); count++; signal(mutex); ΑΔΙΕΞΟΔΟ! (deadlock) item_t dequeue(void){ wait(mutex); item_t item; while (count == 0) ; // wait item = buffer[out]; out = NEXT(out); count--; signal(mutex); return item

45 Πρόβλημα Παραγωγού-Καταναλωτή (Σωστή λύση) #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; sema_t mutex = semaphore(1); sema_t items = semaphore(0); sema_t space = semaphore(n); void enqueue(item_t item){ item_t item; item_t dequeue(void){ item_t item; buffer[in] = item; in = NEXT(in); count++; item = buffer[out]; out = NEXT(out); count--; return item 28

46 Πρόβλημα Παραγωγού-Καταναλωτή (Σωστή λύση) #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; sema_t mutex = semaphore(1); sema_t items = semaphore(0); sema_t space = semaphore(n); void enqueue(item_t item){ item_t item; wait(space); wait(mutex); buffer[in] = item; in = NEXT(in); count++; signal(mutex); signal(items); item_t dequeue(void){ item_t item; wait(items); wait(mutex); item = buffer[out]; out = NEXT(out); count--; signal(mutex); signal(space); return item 28

47 29 Πρόβλημα Αναγνωστών - Εγγραφέων readers-writers problem Δύο κλάσεις προσβάσεων: Αναγνώστες: Δεν αλλάζουν τα δεδομένα Εγγραφείς: Αλλάζουν τα δεδομένα Κανόνες: Επιτρέπονται πολλαπλοί Αναγνώστες ταυτόχρονα Οι Εγγραφείς πρέπει να έχουν αποκλειστική πρόσβαση Χρησιμοποιείται για δομές που δεν αλλάζουν συχνά Προτεραιότα: Στους Eγγραφείς Στους Αναγνώστες Πιθανή λιμοκτονία (starvation) και στις δύο περιπτώσεις

48 30 Πρόβλημα Αναγνωστών - Εγγραφέων προτεραιότητα στους αναγνώστες sema_t mutex = semaphore(1); sema_t write = semaphore(1); int readcount = 0; read_lock: wait(mutex); if (++readcount == 1) wait(write); signal(mutex); write_lock: wait(write); write_unlock: signal(write); read_unlock: wait(mutex); if (--readcount == 0) signal(write); signal(mutex);

49 31 Το πρόβλημα των συνδαιτυμόνων φιλοσόφων Dining philosophers problem - 5 φιλόσοφοι (τρώνε και σκέφτονται) - 5 ξυλάκια φαγητού P1 - Όταν ένας φιλόσοφος πεινάει, χρειάζεται 2 ξυλάκια για να φάει P5 P2 - Δεν μπορούν 2 φιλόσοφοι να χρησιμοποιούν το ίδιο ξυλάκι - Aποφυγή αδιεξόδου - Αποφυγή λιμοκτονίας P4 P3

50 Λύση στο πρόβλημα των συνδαιτυμόνων φιλοσόφων 32 #define NEXT(x) ((x+1) % N) sema_t F[N]; //forks do { think(); wait(f[i]); wait(f[next(i)]); eat(); signal(f[next(i)]); signal(f[i]); while (TRUE); P5 P1 P2 P4 P3

51 Λύση στο πρόβλημα των συνδαιτυμόνων φιλοσόφων 32 #define NEXT(x) ((x+1) % N) sema_t F[N]; //forks do { think(); wait(f[i]); wait(f[next(i)]); eat(); signal(f[next(i)]); signal(f[i]); while (TRUE); P5 P1 P2 1. P1 παίρνει F1 2. P2 παίρνει F2 3. P3 παίρνει F3 4. P4 παίρνει F4 5. P5 παίρνει F5 P4 P3

52 Λύση στο πρόβλημα των συνδαιτυμόνων φιλοσόφων 32 #define NEXT(x) ((x+1) % N) sema_t F[N]; //forks do { think(); wait(f[i]); wait(f[next(i)]); eat(); signal(f[next(i)]); signal(f[i]); while (TRUE); P5 L W L P1 W L W P2 1. P1 παίρνει F1 2. P2 παίρνει F2 3. P3 παίρνει F3 4. P4 παίρνει F4 5. P5 παίρνει F5 Αδιέξοδο! W P4 L W P3 L

53 33 Λύσεις στο πρόβλημα των συνδαιτυμόνων φιλοσόφων (σωστές) Λύσεις P1 P5 P2 P4 P3

54 33 Λύσεις στο πρόβλημα των συνδαιτυμόνων φιλοσόφων (σωστές) Λύσεις 1. Χρήση σημαφόρου, αρχικοποιημένου στην τιμή 4, ώστε σε κάθε περίπτωση να μην διεκδικούν και οι 5 φιλόσοφοι τα ξυλάκια. P5 P1 P2 P4 P3

55 33 Λύσεις στο πρόβλημα των συνδαιτυμόνων φιλοσόφων (σωστές) Λύσεις 1. Χρήση σημαφόρου, αρχικοποιημένου στην τιμή 4, ώστε σε κάθε περίπτωση να μην διεκδικούν και οι 5 φιλόσοφοι τα ξυλάκια. P5 P1 P2 2. Σε περίπτωση που ένας από τους φιλόσοφους ξεκινάει να πάρει ένα ξυλάκι με διαφορετική σειρά από ότι οι υπόλοιποι, τότε δεν μπορεί να δημιουργηθεί αδιέξοδο. P4 P3

56 34 Ελεγκτές/Παρακολουθητές (Monitors) Οι σημαφόροι παρέχουν βολικό και αποτελεσματικό μηχανισμό συγχρονισμού Ωστόσο: βάρος χρήσης στον προγραμματιστή (που δεν είναι ποτέ καλή ιδέα )

57 34 Ελεγκτές/Παρακολουθητές (Monitors) Οι σημαφόροι παρέχουν βολικό και αποτελεσματικό μηχανισμό συγχρονισμού Ωστόσο: βάρος χρήσης στον προγραμματιστή (που δεν είναι ποτέ καλή ιδέα ) Ελεγκτές/Παρακολουθητές: Υψηλού επιπέδου σχήματα συγχρονισμού που παρέχονται από τις γλώσσες προγραμματισμού Αφηρημένος τύπος δεδομένων (abstract data type -- ADT) Κρύβει λεπτομέρειες υλοποίησης Δεν επιτρέπει απευθείας πρόσβαση στα δεδομένα (ιδιωτικά δεδομένα) Ο προγραμματιστής ορίζει λειτουργίες (μεθόδους)

58 Ελεγκτές/Παρακολουθητές (παράδειγμα δομής) monitor MyMonitor { // shared variables int a; // methods procedure P_1(...) {... procedure P_2(...) {... // initialization initialize() { a =

59 36 Ελεγκτές/Παρακολουθητές Μηχανισμοί που παρέχονται Αμοιβαίος Αποκλεισμός (mutual exclusion) Μεταβλητές συνθήκης (condition variables)

60 36 Ελεγκτές/Παρακολουθητές Μηχανισμοί που παρέχονται Αμοιβαίος Αποκλεισμός (mutual exclusion) Όταν μια διεργασία εκτελεί μια λειτουργία, τότε η διεργασία βρίσκεται μέσα στον παρακολουθητή Είναι εγγυημένο ότι μόνο μια διεργασία μπορεί να είναι ενεργή μέσα στον παρακολουθητή Μεταβλητές συνθήκης (condition variables)

61 36 Ελεγκτές/Παρακολουθητές Μηχανισμοί που παρέχονται Αμοιβαίος Αποκλεισμός (mutual exclusion) Όταν μια διεργασία εκτελεί μια λειτουργία, τότε η διεργασία βρίσκεται μέσα στον παρακολουθητή Είναι εγγυημένο ότι μόνο μια διεργασία μπορεί να είναι ενεργή μέσα στον παρακολουθητή Μεταβλητές συνθήκης (condition variables) Μηχανισμός, ώστε μια διεργασία να αναστέλλει την λειτουργία της έως ότου ικανοποιηθεί μια συνθήκη (πχ Παραγωγός-Καταναλωτής) Λειτουργίες: wait(): Η διεργασία αδρανοποιείται μέχρι να κληθεί η signal(). signal(): Ενεργοποιεί (ακριβώς) μια αδρανοποιημένη διεργασία. (Πότε ;)

62 37 Παράδειγμα Παρακολουθητή Παραγωγός-Καταναλωτής #define NEXT(x) ((x + 1) % N) monitor ProducerConsumer { // end ProducerConsumer

63 37 Παράδειγμα Παρακολουθητή Παραγωγός-Καταναλωτής #define NEXT(x) ((x + 1) % N) monitor ProducerConsumer { item_t buffer[n]; int in=0, out=0, count=0; condition full, empty; void enqueue(item_t item){ item_t dequeue(void){ // end ProducerConsumer

64 37 Παράδειγμα Παρακολουθητή Παραγωγός-Καταναλωτής #define NEXT(x) ((x + 1) % N) monitor ProducerConsumer { item_t buffer[n]; int in=0, out=0, count=0; condition full, empty; void enqueue(item_t item){ item_t item; if (count == N) full.wait(); buffer[in] = item; in = NEXT(in); if (++count == 1) empty.signal(); // end ProducerConsumer item_t dequeue(void){

65 37 Παράδειγμα Παρακολουθητή Παραγωγός-Καταναλωτής #define NEXT(x) ((x + 1) % N) monitor ProducerConsumer { item_t buffer[n]; int in=0, out=0, count=0; condition full, empty; void enqueue(item_t item){ item_t item; if (count == N) full.wait(); buffer[in] = item; in = NEXT(in); if (++count == 1) empty.signal(); // end ProducerConsumer item_t dequeue(void){ item_t item; if (count == 0) empty.wait(); item = buffer[out]; out = NEXT(out); if (count-- == N) full.signal(); return item;

66 38 Παράδειγμα Παρακολουθητή Πρόβλημα των συνδαιτυμόνων φιλοσόφων monitor DiningPhilosophers { enum {T, H, E state[5]; condition cond[n]; void pickup(int i) { void putdown(int i) { state[i] = H; state[i] = T; test(i); test(prev(i)); if (state[i]!= E) test(next(i)); cond[i].wait(); void test(int i){ if (state[i] == H && state[prev(i)]!= E && state[next(i)]!= E){ state[i] = E; cond[i].signal(); // end of DiningPhilosophers

67 39 Ατομικές Συναλλαγές Atomic Transactions Η έννοια της συναλλαγής (transaction) χρησιμοποιείται στις βάσεις δεδομένων Σύνολο εντολών που υλοποιεί μια λογική λειτουργία Ορίζεται από τον προγραμματιστή Μπορεί να: Επιτύχει και να κατοχυρωθεί (COMMIT) Αποτύχει και να ακυρωθεί (ABORT, ROLLBACK) Μοντέλο μνήμης με συναλλαγές (Transactional Memory)

68 40 Στρατηγικές συγχρονισμού σε ΛΣ (και όχι μόνο) (Εξέλιξη) Απενεργοποίηση διακοπών Ένα κεντρικό κλείδωμα (BKL)

69 40 Στρατηγικές συγχρονισμού σε ΛΣ (και όχι μόνο) (Εξέλιξη) Απενεργοποίηση διακοπών Δεν αρκεί για πολυεπεξεργαστικά συστήματα Ένα κεντρικό κλείδωμα (BKL) Δεν έχει καλή κλιμάκωση

70 40 Στρατηγικές συγχρονισμού σε ΛΣ (και όχι μόνο) (Εξέλιξη) Απενεργοποίηση διακοπών Δεν αρκεί για πολυεπεξεργαστικά συστήματα Ένα κεντρικό κλείδωμα (BKL) Δεν έχει καλή κλιμάκωση Σπάσιμο σε περισσότερα κλειδώματα (fine-grain locking) Διαμοιρασμός των δεδομένων και ανταλλαγή μηνυμάτων (partitioning, message passing)

71 41 Κεντρικό και πολλαπλά κλειδώματα για κοινούς πόρους Big lock vs fine-grain locking - Θεωρούμε: Διεργασίες ( x) Πόρους (Πx) Δ0 Δ2 Δ1 Π0 Π1. Π3 Π2

72 41 Κεντρικό και πολλαπλά κλειδώματα για κοινούς πόρους Big lock vs fine-grain locking - Θεωρούμε: Διεργασίες ( x) Πόρους (Πx) - Κεντρικό κλείδωμα (ΚΚ): Όποια διεργασία πάρει το ΚΚ μπορεί να χρησιμοποιήσει όλους τους πόρους Δ0 Δ2 Δ1 KK Π0 Π1. Π3 Π2

73 41 Κεντρικό και πολλαπλά κλειδώματα για κοινούς πόρους Big lock vs fine-grain locking - Θεωρούμε: Διεργασίες ( x) Πόρους (Πx) - Κεντρικό κλείδωμα (ΚΚ): Όποια διεργασία πάρει το ΚΚ μπορεί να χρησιμοποιήσει όλους τους πόρους Δ0 Δ2 Δ1 - Πολλαπλά κλειδώματα (fine-grain locking) 1 κλείδωμα ανά διαθέσιμο πόρο + Δυνατότητα παραλληλίας Π0 Π1. Π3 Π2

74 41 Κεντρικό και πολλαπλά κλειδώματα για κοινούς πόρους Big lock vs fine-grain locking - Θεωρούμε: Διεργασίες ( x) Πόρους (Πx) - Κεντρικό κλείδωμα (ΚΚ): Όποια διεργασία πάρει το ΚΚ μπορεί να χρησιμοποιήσει όλους τους πόρους Δ0 Δ2 Δ1 - Πολλαπλά κλειδώματα (fine-grain locking) 1 κλείδωμα ανά διαθέσιμο πόρο + Δυνατότητα παραλληλίας - Κίνδυνος αδιεξόδου (Δ0 έχει Π0 και περιμένει Π3, Δ2 έχει Π3 και περιμένει Π0) Π0 Π1. Π3 Π2

75 Αναγκαίες συνθήκες για δημιουργία αδιεξόδου Αμοιβαίος αποκλεισμός Ένας τουλάχιστον πόρος να μην υποστηρίζει διαμοιραζόμενο τρόπο λειτουργίας Κράτημα και αναμονή Κατά την απόκτηση πρόσβασης στους πόρους που χρειάζεται οι διεργασίες θα πρέπει να μην απελευθερώνουν πόρους που έχουν δεσμεύσει και να περιμένουν να απελευθερωθούν οι υπόλοιποι Χωρίς Διακοπή Οι πόροι μπορούν να απελευθερωθούν μόνο εθελοντικά από τις διεργασίες που τους έχουν δεσμεύσει Κυκλική Αναμονή P 1 αναμένει πόρο της P 2... P n 1 αναμένει πόρο της P n P n αναμένει πόρο της P 1 42

76 Γράφος εκχώρησης πόρων 43 Π 1 Π 3 - Πόροι Πx (στιγμιότυπα) - Διεργασίες x - Ακμή αίτησης x Πx - Ακμή ανάθεσης Πx x - Αφορά συγκεκριμένη χρονική στιγμή του συστήματος - Αν δεν υπάρχει κύκλος δεν υπάρχει αδιέξοδο - Αν υπάρχει κύκλος τότε μπορεί να υπάρχει αδιέξοδο Π 2 Π 4

77 Γράφος εκχώρησης πόρων 43 Π 1 Π 3 - Πόροι Πx (στιγμιότυπα) - Διεργασίες x - Ακμή αίτησης x Πx - Ακμή ανάθεσης Πx x - Αφορά συγκεκριμένη χρονική στιγμή του συστήματος - Αν δεν υπάρχει κύκλος δεν υπάρχει αδιέξοδο - Αν υπάρχει κύκλος τότε μπορεί να υπάρχει αδιέξοδο Π 2 Π 4

78 Γράφος εκχώρησης πόρων 43 Π 1 Π 3 - Πόροι Πx (στιγμιότυπα) - Διεργασίες x - Ακμή αίτησης x Πx - Ακμή ανάθεσης Πx x - Αφορά συγκεκριμένη χρονική στιγμή του συστήματος - Αν δεν υπάρχει κύκλος δεν υπάρχει αδιέξοδο - Αν υπάρχει κύκλος τότε μπορεί να υπάρχει αδιέξοδο Π 2 Π 4

79 44 Αποτροπή αδιεξόδων αφετηρία: αναγκαίες συνθήκες Αμοιβαίος αποκλεισμός Χρήση πόρων που μπορούν να διαμοιραστούν (πχ αρχεία για ανάγνωση) Κράτημα και αναμονή & Χωρίς Διακοπή Εναλλακτικά πρωτόκολλα Κυκλική Αναμονή Διάταξη πόρων και πραγματοποίηση αιτήσεων με συγκεκριμένη σειρά

80 Τέλος 45

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

CSLab National Technical University of Athens

CSLab National Technical University of Athens http://www.cslab.ece.ntua.gr/courses/os CSLab National Technical University of Athens #define NEXT(x) ((x + 1) % N) item_t buffer[n]; int in=0, out=0, count=0; #define NEXT(x) ((x + 1) % N) item_t buffer[n];

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

Συγχρονισμός. Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο ΣΗΜΜΥ ακ. έτος CSLab. Κορνήλιος Κούρτης

Συγχρονισμός. Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο ΣΗΜΜΥ ακ. έτος CSLab. Κορνήλιος Κούρτης Συγχρονισμός Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο ΣΗΜΜΥ ακ. έτος 2009-2010 CSLab National Technical University of Athens Κορνήλιος Κούρτης kkourt@cslab.ece.ntua.gr Εργαστήριο Υπολογιστικών Συστημάτων

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 5 «Αμοιβαίος Αποκλεισμός» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αμοιβαίος Αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του

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

Συγχρονισμός Μέρος Α : Κρίσιμο τμήμα και κλειδώματα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν

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

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

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

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

Προσπέλαση σύνθετων δομών δεδομένων χωρίς καθολικό κλείδωμα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα

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

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

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

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 4: Διεργασίες ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

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

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

Προσπέλαση σύνθετων δομών δεδομένων χωρίς καθολικό κλείδωμα

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 5: Αδιέξοδα Συγχρονισμός στον Πραγματικό Κόσμο Χρειάζεται οποτεδήποτε > 1 χρήστης πόρου Λίγο πολύ οι ίδιες λύσεις με τον πραγματικό κόσμο: κλείδωμα (στo WC), χρονοπρογραμματισμός

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

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

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

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Εισαγωγή Μοντέλο συστήματος Χαρακτηρισμός και ορισμός κατάστασης αδιεξόδου Μέθοδοι χειρισμού αδιεξόδων Αποτροπή αδιεξόδου (Deadlock Prevention) Αποφυγή

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

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

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

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

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

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

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

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation) Το Πρόβλημα του Αδιεξόδου Ένα σύνολο από διεργασίες σε αναμονή, όπου η κάθε μια κατέχει έναν αριθμό από πόρους και περιμένει να αποκτήσει και έναν

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

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

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

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

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

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

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB ΣΧΟΛΗ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΕΜΠ ΜΕΘΟΔΟΙ ΕΠΙΛΥΣΗΣ ΜΕ Η/Υ 3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB Ν.Δ. Λαγαρός Μ. Φραγκιαδάκης Α. Στάμος Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες Χρήσης Creative

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

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Θέμα

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αδιέξοδα (Deadlocks)

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

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

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

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

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

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο Για το μάθημα «Διαχείριση Λειτουργικών Συστημάτων» του ακαδημαϊκού έτους 2015 2016, το προτεινόμενο σύγγραμμα είναι το: Operating Systems: Internals

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

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

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός ΔΙΔΑΣΚΩΝ: ΤΜΗΜΑ: Συνδουκάς Δημήτριος Διοίκησης Επιχειρήσεων (Γρεβενά) 1 Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης CreativeCommons.

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

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

Αντικειμενοστρεφής Προγραμματισμός ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Αντικειμενοστρεφής Προγραμματισμός Ενότητα 13: Ταυτόχρονος Προγραμματισμός Γρηγόρης Τσουμάκας, Επικ. Καθηγητής Άδειες Χρήσης Το παρόν

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

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

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

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

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

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

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

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

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

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

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

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

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

Δομές Δεδομένων Ενότητα 3

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

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

Σκελετός Παρουσίασης

Σκελετός Παρουσίασης Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Σκελετός

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα Πραγματικού Χρόνου

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

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

Δομές Δεδομένων Ενότητα 4

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

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

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

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

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

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

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Λίστες -Υλοποίηση ταξινομημένης λίστας με δυναμική δέσμευση μνήμης ΕΠΛ035

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

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

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα

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

Τεχνικές Προγραμματισμού και Χρήση Λογισμικού Η/Υ στις Κατασκευές

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

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

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

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

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

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

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

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

Παράλληλη Επεξεργασία Κεφάλαιο 10 ο Αντίγραφα Εργαζομένων

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

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

Παράλληλη Επεξεργασία Κεφάλαιο 5 Μοίρασμα Δεδομένων

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

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

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού

Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Προσπέλαση κοινών πόρων Πρωτόκολλα ελέγχου αμοιβαίου αποκλεισμού Μ.Στεφανιδάκης Κοινοί πόροι Κοινοί (διαμοιραζόμενοι) πόροι με μία η περισσότερες μονάδες

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

Πληροφορική ΙΙ Θεματική Ενότητα 5

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθηµα 1 Ο ρόλος του ΛΣ Υλικό Υπολογιστικό σύστηµα Λειτουργικό σύστηµα Λογισµικό Προγράµµατα εφαρµογής Στόχοι του ΛΣ Χρήστες ιευκόλυνση των χρηστών ιευκόλυνση

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

Βάσεις Δεδομένων ΙΙ Ενότητα 2

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

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

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

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

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

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

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

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

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

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

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών Ενότητα 7: Υπορουτίνες Καθ. Γιάννης Γαροφαλάκης Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ και Πληροφορικής Ορισμός Αφαίρεση με χρήση υπορουτινών (subroutine abstraction)

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΙΕΡΓΑΣΙΕΣ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΙΕΡΓΑΣΙΕΣ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθηµα: Λειτουργικά Συστήµατα Ι ΙΕΡΓΑΣΙΕΣ ιδάσκων: Αναπλ. Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ ιεργασία (Process) είναι η αφαιρετική θεώρηση ενός προγράµµατος

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

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

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

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

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

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

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

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Κεφάλαιο 6 Αδιέξοδο Μόνιµη αναµονή ενός συνόλου διεργασιών οι οποίες ανταγωνίζονται για πόρους του συστήµατος ή για να επικοινωνήσουν µεταξύ τους εν υπάρχει

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

Υ- 07 Παράλληλα Συστήματα Transac9onal memory

Υ- 07 Παράλληλα Συστήματα Transac9onal memory Υ- 07 Παράλληλα Συστήματα Transac9onal memory Αρης Ευθυμίου Παρ. προγρ/μός με κλειδιά Χαμηλού επιπέδου πολύ κοντά στα μέσα και τις δομές του υλικού πολλές λεπτομέρειες, εύκολα γίνεται λάθος χαμηλή παραγωγικότητα

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

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

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 5: Διεργασίες ΙΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

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

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

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

{ int a = 5; { int b = 7; a = b + 3;

{ int a = 5; { int b = 7; a = b + 3; Σχεδίαση Γλωσσών & Μεταγλωττιστές Ενότητα 1: Γλώσσες με δομή block Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Κεντρικής Μονάδας Επεξεργασίας (CPU) Βασίλης Σακκάς 4/12/2013 1 Xρονοδρομολόγηση Διεργασιών 1 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί

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