Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες
|
|
- Ἀριστοτέλης Ζαχαρίας Βιτάλης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Επικοινωνία µεταξύ ιεργασιών και Σύνδροµες ιεργασίες Interprocess Communication and Concurrent Processes Περίληψη Σύνδροµος Προγραµµατισµός Συνθήκη συναγωνισµού Συγχρονισµός διεργασιών Κρίσιµες περιοχές και αµοιβαίος αποκλεισµός Το Πρόβληµα Παραγωγών και Καταναλωτών Λύσεις βασισµένες στο λογισµικό Λύσεις βασισµένες στο υλικό (hardware). Λύσεις µε Σηµατοφόρους Παρακολουθητές Μηνύµατα 1
2 Σύνδροµος Προγραµµατισµός Σύνδροµος Προγραµµατισµός (concurrent programming): ταυτόχρονη εκτέλεση δύο ή περισσοτέρων διεργασιών σε ένα σύστηµα. Πολυπρογραµµατισµός (συνεχής εναλλαγή διεργασιών που εκτελούνται από τον επεξεργαστή) Συστήµατα πολλαπλών επεξεργαστών Προβλήµατα Επικοινωνία µεταξύ διεργασιών Καταµερισµός πόρων µεταξύ διεργασιών Ανταγωνιζόµενες διεργασίες Συνεργαζόµενες διεργασίες Συγχρονισµός των δραστηριοτήτων µεταξύ διεργασιών Τα προβλήµατα εµφανίζονται στους τοµείς Πολλαπλών εφαρµογών οµή εφαρµογών (εφαρµογές δοµηµένες σαν πολλαπλές διεργασίες ή υποδιεργασίες) οµή του ΛΣ (εφαρµογή του ΛΣ σαν πολλαπλές διεργασίες) Σύνδροµες ιεργασίες Το ΛΣ (σε συνεργασία µε το υλικό (hardware) του συστήµατος) είναι υπεύθυνο για την επίλυση των πιο κάτω προβληµάτων ιαχείριση των εκτελούµενων διεργασιών και κατανοµή πόρων Μια διεργασία µπορεί να µην γνωρίζει την ύπαρξη της άλλης και έτσι να ανταγωνίζονται για τον καταµερισµό των πόρων (competition) Μια διεργασία µπορεί να γνωρίζει έµµεσα την ύπαρξη της άλλης (π.χ., ύπαρξη κοινής µνήµης) οπόταν µπορεί να συνεργάζονται (collaborate) Μια διεργασία µπορεί να γνωρίζει άµεσα την ύπαρξη της άλλης (π.χ., έχουν σχεδιαστεί µαζί) οπόταν µπορεί να συνεργάζονται (collaborate). Προστασία του χώρου της µιας διεργασίες από παρεµβολές από άλλες διεργασίες. Παροχή τρόπων επικοινωνίας και συγχρονισµού Ανεξαρτησία αποτελεσµάτων από τη σχετική ταχύτητα εκτέλεσης 2
3 Απλό Παράδειγµα Υποθέστε ότι δύο διεργασίες 1 και 2 χρησιµοποιούν τον ακόλουθο κώδικα για να «ξανατυπώσουν» κάθε χαρακτήρα εισόδου στην έξοδο (οθόνη). void echo() chin= getchar(); chout= chin; putchar(chout); Για εξυπηρέτηση χώρου υπάρχει µόνο ένα αντίγραφο στη µνήµη το οποίο τρέχουν όλες οι διεργασίες. Ποιο το αναµενόµενο αποτέλεσµα του κώδικα; Απλό Παράδειγµα Υποθέστε ότι οι είσοδος της 1 είναι x και την 2 y. Βρέστε ένα πιθανό ίχνος ιεργασία 1 chin= getchar(); //=x chout= chin; //=y putchar(chout); void echo() chin= getchar(); chout= chin; putchar(chout); ιεργασία 2 chin= getchar(); //=y chout= chin; //=y putchar(chout); Πρόβληµα: Το y τυπώθηκε δύο φορές ενώ το x καµιά. 3
4 Συνεργασία ιεργασιών: Παράδειγµα 1 Υποθέστε ότι οι 1 και 2 έχουν κοινές µεταβλητές a=1 και b=2. 1: a= a+b; 2: b= a+b; Βρέστε τις τελικές τιµές των µεταβλητών a και b. ιεργασία 1 a= 1+2 =3 ιεργασία 2 b= 3+2= 5 ιεργασία 1 a= 1+3= 4 ιεργασία 2 b= 1+2 =3 Πρόβληµα: Η σειρά µε την οποία εκτελούνται οι εντολές επηρεάζει το τελικό αποτέλεσµα (race conditions). Συνεργασία ιεργασιών: Παράδειγµα 1 Υποθέστε ότι οι 1 και 2 έχουν κοινές µεταβλητές a=1 και b=1. ιεργασία 1 ιεργασία 2 a= a+1; b= 2*b; b= b+1; a= 2*a; Βρέστε τις τελικές τιµές των µεταβλητών a και b a= 1+1=2 a= 1+1=2 b= 1+1=2 b=2*2=4 b= 2+1=3 a=2*2=4 Πρόβληµα: Η σειρά µε την οποία εκτελούνται οι εντολές επηρεάζει το τελικό αποτέλεσµα (race conditions). 2 b=2*1=2 a=2*2=4 4
5 Συνθήκη Συναγωνισµού (Race Conditions) Ησειρά µε την οποία θα εκτελεστούν δύο ή περισσότερες εντολές δεν είναι καθορισµένη. Μπορεί να αλλάξει κάτω από συνθήκες µη ελεγχόµενες από τον προγραµµατιστή Προγραµµατιστικά λάθη αυτής της µορφής είναι πολύ δύσκολα να ανιχνευτούν και να διορθωθούν αφού η συµπεριφορά του προγράµµατος µπορεί να αλλάξει από εκτέλεση σε εκτέλεση. Κρίσιµες Περιοχές και Αµοιβαίος Αποκλεισµός Κρίσιµες περιοχές (critical region): µέρος του προγράµµατος στο οποίο επιχειρείται πρόσβαση σε κοινό χώρο, κοινά αρχεία κλπ. Αµοιβαίος Αποκλεισµός (mutual exclusion): Μηχανισµός ο οποίος δεν επιτρέπει την ταυτόχρονη πρόσβαση σε κρίσιµες περιοχές από δύο ή περισσότερες διεργασίες. Για να επιτύχουµε αποδοτικό συντονισµό µεταξύ παράλληλων διεργασιών οι ακόλουθες συνθήκες πρέπει να ισχύουν εν πρέπει να βρίσκονται ταυτόχρονα σε κρίσιµη περιοχή περισσότερες από µία διεργασίες. Το αποτέλεσµα πρέπει να είναι ανεξάρτητο από τη ταχύτητα των επεξεργαστών ή τον καταµερισµό του χρόνου του επεξεργαστή. ιεργασία που τρέχει εκτός κρίσιµης περιοχής δεν µπορεί να αποκλείσει άλλη διεργασία Καµιά διεργασία δεν πρέπει να µπορεί να αποκλειστεί για πάντα. 5
6 Προστασία µε Αµοιβαίο Αποκλεισµό Υποθέστε ότι οι 1 και 2 έχουν κοινές µεταβλητές a=1 και b=1. ιεργασία 1 ιεργασία 2 entercritical(); entercritical; a= a+1; b= 2*b; b= b+1; a= 2*a; exitcritical(); exitcritical(); Ηεντολή entercritical() δεν επιτρέπει σε άλλη διεργασία πρόσβαση στον προστατευµένο χώρο. Πρόσβαση επιτρέπεται µόνο µετά την εκτέλεση της exitcritical(). Με αυτό τον τρόπο εγγυούµαστε τη σωστή εκτέλεση 1 a= 1+1=2 b= 1+1=2 2 b=2*2=4 a=2*2=4 Πρόβληµα Παραγωγών και Καταναλωτών Υποθέστε ότι n διεργασίες παράγουν (produce) κάποια δεδοµένα τα οποία αποθηκεύουν σε µια κυκλική ενδιάµεση µνήµη (ουρά). m διεργασίες καταναλώνουν τα δεδοµένα (consume) buf[n] 0 1 j j+1 k k+1 N-1 out in array buf[n]; int in, out; /*global variables*/ 6
7 Πρόβληµα Παραγωγών και Καταναλωτών array buf[n]; int in, out; void producer() item= produce(); buf[in]= item; in= (in+1)%n; /*global variables*/ void consumer() item= buf[out]; consume(item); out= (out+1)%n; Προβλήµατα: Τι θα συµβεί αν η διαδικασία consumer() τρέξει όταν το buffer είναι άδειο; Τι θα συµβεί αν η διαδικασία producer() τρέξει όταν το buffer είναι γεµάτο; Πρόβληµα Παραγωγών και Καταναλωτών array buf[n]; int nbuf=0; int in, out; void producer() item= produce(); while(nbuf==n); buf[in]= item; in= (in+1)%n; nbuf++; /*number of items in buffer*/ /*global variables*/ Busy Waiting void consumer() while(nbuf==0); item= buf[out]; consume(item); out= (out+1)%n; nbuf--; Προβλήµατα: συγχρονισµός των διεργασιών 7
8 Πρόβληµα Συγχρονισµού void producer() item= produce(); while(nbuf==n); buf[in]= item; in= (in+1)%n; nbuf++; Υποθέτουµε ότι οι τιµές του in και nbuf αποθηκεύονται σε κάποια τοπική µεταβλητή (καταχωρητή). Υποθέστε ότι out= 5 in= 7 nbuf= 2 Producer 1 Buf[7]= item1; in=7+1= 8 nbuf= 3 Producer 2 Buf[7]= item2; in=7+1= 8 nbuf= 3 Αµοιβαίος Αποκλεισµός (Mutual Exclusion) Κρίσιµη Περιοχή (critical region) Σε κάθε δεδοµένη στιγµή, µόνο µια διεργασία µπορεί να βρίσκεται µέσα στην κρίσιµή περιοχή void producer() item= produce(); while(nbuf==n); buf[in]= item; in= (in+1)%n; nbuf++; Κρίσιµη Περιοχή void consumer() while(nbuf==0); item= buf[out]; consume(item); out= (out+1)%n; nbuf--; 8
9 Εφαρµογή Αµοιβαίου Αποκλεισµού Υποθέστε πως υπάρχουν µόνο δύο διεργασίες. int turn=0; /*global variable*/ void process0() void process1() while(turn!=0); while(turn!=1); turn= 1; turn= 0; Πετυχαίνεται ο αµοιβαίος αποκλεισµός; Ναι! Λύθηκε το πρόβληµα; Όχι! Τι θα συµβεί εάν οι δύο διεργασίες εκτελούν την κρίσιµη περιοχή µε διαφορετική συχνότητα; ιεργασία που τρέχει εκτός κρίσιµης περιοχής δεν αφήνει άλλη διεργασία να µπει στη κρίσιµη περιοχή. Εφαρµογή Αµοιβαίου Αποκλεισµού boolean interested[2]; void process0() while(interested[1]); interested[0]= true; interested[0]= false; Πετυχαίνεται ο αµοιβαίος αποκλεισµός; /*global variable*/ void process1() while(interested[0]); interested[1]= true; interested[1]= false; Όχι! Η διεργασία 0 εκτελείται µέχρι το while loop, βρίσκει το interested[1]=true και αµέσως διακόπτεται. Η διεργασία 1 µπαίνει κανονικά στη κρίσιµη περιοχή αφού interested[0]=false. Στη συνέχεια µπαίνει και η διεργασία 0 στη κρίσιµη περιοχή. 9
10 Εφαρµογή Αµοιβαίου Αποκλεισµού Λύση Peterson int turn= 0; boolean interested[2]; void process0() interested[0]= true; turn= 0; while(turn==0 && interested[1]); interested[0]= false; /*global variable*/ void process1() interested[1]= true; turn= 1; while(turn==1 && interested[0]); interested[1]= false; Πετυχαίνεται ο αµοιβαίος αποκλεισµός µε χρήση λογισµικού. Μειονέκτηµα: χρήση του busy-waiting Αµοιβαίος Αποκλεισµός µε Υποστήριξη Υλικού (Hardware Support) Ατοµική εντολή (atomic instructions): είναι εντολές οι οποίες εκτελούνται µέσα σε ένα µόνο κύκλο του επεξεργαστή έτσι που να µην υπάρχει περίπτωση να διακοπούν από κάποιο σήµα διακοπής boolean testset(int x) if(x==0) x=1; return true; else return false; Ο επεξεργαστής µπορεί να υποστηρίζει µια εντολή η οποία να υλοποιεί τη ρουτίνα testset() σαν µια µόνο εντολή Παράδειγµα: TSL instruction in Tanenbaum Fig
11 Αµοιβαίος Αποκλεισµός µε Υποστήριξη Υλικού (Hardware Support) int lock= 0; /*global variable*/ int N; /*Number of processes*/ void process(int i) while(!testset(lock)); lock= 0; Πετυχαίνεται ο αµοιβαίος αποκλεισµός µε την υποστήριξη του υλικού. Μειονεκτήµατα: Χρήση του busy-waiting Είναι πιθανή η παρατεταµένη στέρηση (starvation) µιας διεργασίας Υπάρχει η πιθανότητα αδιεξόδου στην περίπτωση που µια διεργασία υψηλότερης προτεραιότητας διακόψει την εκτέλεση διεργασίας που βρίσκεται στη κρίσιµη περιοχή. Σηµατοφόροι (Semaphores) struct semaphore int count; queuetype queue; Οι Σηµατοφόροι είναι δοµές υλοποιούνται από το πρόγραµµα µεταγλωττισµού (compiler) και οι οποίες υποστηρίζονται από το ΛΣ. void down(semaphore s) s.count--; if(s.count < 0) addprocess(s.queue); sleep(); void up(semaphore s) s.count++; if(s.count <= 0) p= getprocess(s.queue); wakeup(p); υαδικοί σηµατοφόροι (binary semaphores mutex) 11
12 Σηµατοφόροι (Semaphores) Οι Σηµατοφόροι αρχικοποιούνται σε κάποια µη-αρνητική τιµή Η ρουτίνα down() (ή wait()) µειώνει την τιµή κατά 1. Εάν η τιµή δεν είναι αρνητική τότε η διεργασία συνεχίζει κανονικά Εάν η τιµή γίνει αρνητική τότε σταµατά η εκτέλεση της διεργασίας Η ρουτίνα up() (ή signal()) αυξάνει την τιµή κατά 1. Εάν η τιµή γίνει µηδέν ή παραµείνει αρνητική τότε µια διεργασία επανανεργοποιείται και γίνεται έτοιµη για εκτέλεση. Οι υαδικοί Σηµατοφόροι αρχικοποιούνται στη τιµή 0 ή 1 Η ρουτίνα down() (ή wait()) ελέγχει την τιµή. Εάν η τιµή είναι 1, τότε την µετατρέπει σε 0 η διεργασία συνεχίζει κανονικά Εάν η τιµή είναι 0 τότε σταµατά η εκτέλεση της διεργασίας Η ρουτίνα up() (ή signal()) Ελέγχει εάν κάποια διεργασία είναι απενεργοποιηµένη και την επανανεργοποιεί Εάν δεν υπάρχει απενεργοποιηµένη διεργασία µετατρέπει την τιµή σε 1. Αµοιβαίος Αποκλεισµός µε Σηµατοφόρους semaphore lock= 1; int N; void process(int i) down(&lock); up(&lock); /*global variable*/ /*Number of processes*/ Πετυχαίνεται ο αµοιβαίος αποκλεισµός µε την χρήση σηµατοφόρων. 12
13 Το Πρόβληµα Παραγωγού-Καταναλωτή µε Σηµατοφόρους semaphore lock= 1; semaphore empty= N; semaphore full= 0; void producer() item= produce(); down(&empty); down(&lock); buf[in]= item; in= (in+1)%n; nbuf++; up(&lock); up(&full); /*buffer size*/ Κρίσιµη Περιοχή void consumer() down(&full); down(&lock); item= buf[out]; out= (out+1)%n; nbuf--; up(&lock); up(&empty); consume(item); Αµοιβαίος Αποκλεισµός µε Παρακολουθητές (monitors) Παρακολουθητές (monitors) Πρέπει απαραίτητα να υποστηρίζονται από τη γλώσσα προγραµµατισµού Java, Concurrent Pascal, Modula-2 είναι παραδείγµατα γλωσσών που υποστηρίζουν τους παρακολουθητές. Αποτελούνται από ένα σύνολο από δοµές δεδοµένων, µεταβλητές και ρουτίνες. Οι διάφορες διεργασίες έχουν πρόσβαση µόνο στις ρουτίνες αλλά όχι στις µεταβλητές. Αντίστοιχο της κλάσης (class) σε αντικειµενοστραφή προγραµµατισµό Μια διεργασία δεν µπορεί να εκτελέσει ρουτίνες του παρατηρητή εάν την δεδοµένη στιγµή µια άλλη διεργασία εκτελεί οποιαδήποτε άλλη ρουτίνα Ανά πάσα στιγµή, µόνο µια διεργασία µπορεί να εκτελείται στον παρατηρητή Πετυχαίνεται έτσι αυτόµατα ο αµοιβαίος αποκλεισµός 13
14 Αµοιβαίος Αποκλεισµός µε Παρακολουθητές (monitors) Παρακολουθητές (monitors) Ο παρακολουθητής διαθέτει ρουτίνες όπως το wait(s) και signal(s) οι οποίες αναστέλλουν και επανενεργοποιούν µια διεργασία βάση της τιµής της µεταβλητής συνθήκης s (condition variable). Σε τελική ανάλυση ο αµοιβαίος αποκλεισµός επιτυγχάνεται µε τις τεχνικές που προαναφέρθηκαν (π.χ., σηµατοφόρους) το πλεονέκτηµα αυτής της µεθόδου είναι ότι την ευθύνη για την υλοποίηση του αµοιβαίου αποκλεισµού την έχει η γλώσσα προγραµµατισµού και όχι ο προγραµµατιστής. Επόµενος η εφαρµογή του αµοιβαίου αποκλεισµού γίνεται πιο εύκολη και η πιθανότητα προγραµµατιστικού λάθους µειώνεται. Το Πρόβληµα Παραγωγού-Καταναλωτή µε Παρακολουθητές monitor PrdCns(int i) condition full, emplty; int nbuf; void insert(item) if (nbuf==n)wait(full); insert(item); nbuf= nbuf+1; if(nbuf==1) signal(empty); void remove(item) if (nbuf)==0)wait(empty); remove(item); nbuf= nbuf-1; if(nbuf==n-1)signal(full); void producer() item= produce(); PrdCns.insert(item); void consumer() item= PrdCns.remove(); consume(item); 14
15 Ανταλλαγή Μηνυµάτων Τι θα συµβεί σε περίπτωση που έχουµε ένα κατανεµηµένο σύστηµα µε πολλούς επεξεργαστές οι οποίοι επικοινωνούν µέσω δικτύου; ΛΣ υποστηρίζουν την ανταλλαγή µηνυµάτων µέσω συστηµικών κλήσεων. send(destination, &message); receive(source, &message); Πολλαπλά προβλήµατα Τι θα συµβεί εάν το µήνυµα χαθεί; Τι θα συµβεί εάν χαθεί η επιβεβαίωση λήψης (Acknowledgement ); Πιστοποίηση ταυτότητας (authentication). Τα προβλήµατα αυτά είναι το θέµα του µαθήµατος ΗΜΥ 360 ίκτυα Υπολογιστών Το Πρόβληµα Παραγωγού-Καταναλωτή µε Μηνύµατα void Producer() int item; message m; item= produce(); receive(consumer, &m); buildmessage(&m,item); send(consumer,&m); void consumer() int item; message m; for(int i=0; i<n; i++) send(producer, &m); receive(producer, &m); item= getitem(&m); send(producer,&m); consume(item); 15
Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi
Προϋποθέσεις για Αµοιβαίο Αποκλεισµό Μόνο µία διεργασία σε κρίσιµο τµήµασεκοινό πόρο Μία διεργασία που σταµατά σε µη κρίσιµο σηµείο δεν πρέπει να επιρεάζει τις υπόλοιπες διεργασίες εν πρέπει να υπάρχει
Διαβάστε περισσότεραΔιεργασίες (Processes)
Διεργασία (process) ή καθήκον (task) Διεργασίες (Processes) στοιχειώδης οντότητα/δραστηριότητα υπολογισμού (processing entity/activity) εκτέλεση ενός προγράμματος ένα (κύριο) νήμα (thread)/ρεύμα ελέγχου/εκτέλεσης
Διαβάστε περισσότεραΛειτουργικά Συστήματα Η/Υ
Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 5 «Αμοιβαίος Αποκλεισμός» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Αμοιβαίος Αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του
Διαβάστε περισσότεραΛειτουργικά Συστήματα
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 4α: Σημαφόροι, Πρόβλημα Συνδαιτυμόνων Φιλοσόφων, Αδιέξοδα Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΛειτουργικά Συστήματα
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 5 : Αμοιβαίος Αποκλεισμός Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών
Διαβάστε περισσότεραΕισαγωγή στα Λειτουργικά Συστήματα
Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 4: Διεργασίες ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθηµα 1 Ο ρόλος του ΛΣ Υλικό Υπολογιστικό σύστηµα Λειτουργικό σύστηµα Λογισµικό Προγράµµατα εφαρµογής Στόχοι του ΛΣ Χρήστες ιευκόλυνση των χρηστών ιευκόλυνση
Διαβάστε περισσότεραΑμοιβαίος αποκλεισμός
Αμοιβαίος αποκλεισμός 1. Εισαγωγή 2. Κρίσιμα τμήματα (Critical Sections) 3. Υλοποίηση του αμοιβαίου αποκλεισμού I. Προσεγγίσεις λογισμικού II. Υποστήριξη εκ μέρους του υλικού III. Σηματοφορείς 4. Κλασσικά
Διαβάστε περισσότεραΕλεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1
Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός
Διαβάστε περισσότεραΕλεγκτές/Παρακολουθητές (Monitors) Ταυτόχρονος Προγραμματισμός 1
Ελεγκτές/Παρακολουθητές (Monitors) 1 lalis@inf.uth.gr Ελεγκτές Αμοιβαίος αποκλεισμός στο πλαίσιο ενός τμήματος λογισμικού που προσπελάζεται με δομημένο τρόπο, μέσω προκαθορισμένης διασύνδεσης (API) Ο συγχρονισμός
Διαβάστε περισσότερα2.3 Επικοινωνία Διεργασιών
2.3 Επικοινωνία Διεργασιών 2.3.3 Η λύση του Peterson. (για 2 διεργασίες) Το σενάριο περιλαμβάνει 2 διεργασίες. Υπάρχουν 2 ρουτίνες που καλούνται για να μπούν και να βγούν οι διεργασίες σε/από critical
Διαβάστε περισσότεραΑδιέξοδα (Deadlocks)
Αδιέξοδα (Deadlocks) Περίληψη Αδιέξοδα (deadlocks) Τύποι πόρων (preemptable non preemptable) Μοντελοποίηση αδιεξόδων Στρατηγικές Στρουθοκαµηλισµός (ostrich algorithm) Ανίχνευση και αποκατάσταση (detection
Διαβάστε περισσότεραΔΙΕΡΓΑΣΙΕΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΕΡΓΑΣΙΕΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΔΙΕΡΓΑΣΙΕΣ Διεργασία (Process) είναι η αφαιρετική θεώρηση ενός προγράμματος
Διαβάστε περισσότερα2.4 Κλασσικά Προβλήματα IPC
2.4 Κλασσικά Προβλήματα IPC 1 Οι φιλόσοφοι που γευματίζουν - Dining Philosophers Μια πρώτη λύση για Ν φιλοσόφους: philosopher (i) while (1) { think; take_fork(i);/* πάρε αριστερό ξυλάκι */ take_fork(i+1
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΙΕΡΓΑΣΙΕΣ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθηµα: Λειτουργικά Συστήµατα Ι ΙΕΡΓΑΣΙΕΣ ιδάσκων: Αναπλ. Καθ. Κ. Λαµπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ ιεργασία (Process) είναι η αφαιρετική θεώρηση ενός προγράµµατος
Διαβάστε περισσότεραΜάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός
Μάθημα 4 ο Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός Εισαγωγή Σκοπός του μαθήματος αυτού είναι να εξηγήσει την έννοια του κρίσιμου τμήματος σε μία διεργασία και να δείξει τη λύση για ένα απλό πρόβλημα
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 4: Σήματα. Διαδιεργασιακή Επικοινωνία. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΕνότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός
ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 4 (Κεφάλαιο 5) Συντρέχων Προγραμματισμός
Διαβάστε περισσότεραENOTHTA 3 ΣYNTPEXΩN ΠPOΓPAMMATIΣMOΣ
ENOTHTA 3 Περιεχόµενα 1. Oι έννοιες του ταυτοχρονισµού και συντρέχοντα προγραµµατισµού 2. Συρρουτίνες 3. Aλληλεπίδραση µεταξύ διεργασιών 4. Aνταγωνισµός µεταξύ διεργασιών 5. Συνεργασία µεταξύ διεργασιών
Διαβάστε περισσότεραΣυγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση
Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση Κεφάλαιο 6 Αδιέξοδο Μόνιµη αναµονή ενός συνόλου διεργασιών οι οποίες ανταγωνίζονται για πόρους του συστήµατος ή για να επικοινωνήσουν µεταξύ τους εν υπάρχει
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΛΟΓΙΣΜΙΚΟ (software)
ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων
Διαβάστε περισσότεραΛογισµικό (Software SW) Γλώσσες
Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής
Διαβάστε περισσότεραΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 4: Σήματα. Διαδιεργασιακή Επικοινωνία. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΣυγχρονισμός Μέρος Α : Κρίσιμο τμήμα και κλειδώματα
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Συγχρονισμός Μέρος Α : Κρίσιμο τμήμα και κλειδώματα 9 ο Εξάμηνο Η ανάγκη για συγχρονισμό
Διαβάστε περισσότεραΕπιτεύγµατα των Λ.Σ.
Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος
Διαβάστε περισσότεραΘοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο
Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο Για το μάθημα «Διαχείριση Λειτουργικών Συστημάτων» του ακαδημαϊκού έτους 2015 2016, το προτεινόμενο σύγγραμμα είναι το: Operating Systems: Internals
Διαβάστε περισσότεραΝήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1
Νήµαταστην Java Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων Κατανεµηµένα Συστήµατα 11-1 Νήµαταστην Java γεννηθείσα notify notifyall έτοιµη start εκπνοή
Διαβάστε περισσότερα2. ΙΕΡΓΑΣΙΕΣ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) 2.1 ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΙΕΡΓΑΣΙΕΣ (1/11) 2.1.1 Το µοντέλο διεργασίας Για την επίτευξη ψευδοπαραλληλισµού (pseudoparallelism)
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραροµολόγηση Επεξεργαστή
ροµολόγηση Επεξεργαστή Κεφάλαιο 9 Στόχοι της ροµολόγησης Χρόνος Απόκρισης Throughput Αποδοτική χρήση επεξεργαστή Τύποι ροµολόγησης Μακροπρόθεσµη δροµολόγηση Μεσοπρόθεσµη δροµολόγηση Βραχυπρόθεσµη δροµολόγηση
Διαβάστε περισσότεραΣύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1
Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Σύγχρονα κανάλια επικοινωνίας Μέρος του Communicating Sequential Processes (CSP) που
Διαβάστε περισσότεραΠρογραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας
Προγραµµατισµός ΙΙ Ηγλώσσααντικειµενοστραφούς προγραµµατισµού Java ιδάσκων ηµήτριος Κατσαρός, Ph.D. @ Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας Αυτό-αξιολόγηση 1η: 08/02/2006 1
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΗΥ222)
Λειτουργικά Συστήματα (ΗΥ222) Ταυτοχρονισμός, Συγχρονισμός Πολλαπλές Διεργασίες/Νήματα σε 1 Κοινωνία: Προβλήματα; «Κοινωνικές Γιάννης διεργασίες/νήματα»: Διαβάζουν/γράφουν στον ίδιο χώρο. Αποτέλεσμα; Πιθανότατα
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή
ΚΕΦΑΛΑΙΟ 9 Ταυτόχρονος προγραμματισμός και νήματα Σύνοψη Σε αυτό το κεφάλαιο πραγματευόμαστε τον ταυτόχρονο προγραμματισμό με τη χρήση νημάτων. Η έμφαση είναι στην κατανόηση βασικών λειτουργιών των νημάτων
Διαβάστε περισσότεραΜηχανισμοί και προγραμματιστικές δομές συγχρονισμού. Προβλήματα συγχρονισμού (και λύσεις)
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Περιεχόμενα
Διαβάστε περισσότεραΕπικοινωνία Διεργασιών (ΙnterProcess Communication, IPC)
Επικοινωνία Διεργασιών (ΙnterProcess Communication, IPC) Τουλάχιστον δύο διεργασίες (ο αποστολέας και ο παραλήπτης) Σύγχρονη (synchronous) Aσύγχρονη (asynchronous) Χρονική σύνδεση Δε χρειάζεται χρονική
Διαβάστε περισσότεραΛειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα
Διαβάστε περισσότεραΟρισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα
ΝΗΜΑΤΑ ΣΤΗ JAVA (1) Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα πρόγραµµα. Αιτία Η δυνατότητα αποµόνωσης (ή αυτονόµησης) κάποιων
Διαβάστε περισσότεραιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΣΥΓΧΡΟΝΙΣΜΟΣ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 4 ΔΙΑΔΙΕΡΓΑΣΙΑΚΗ ΕΠΙΚΟΙΝΩΝΙΑ ΣΥΓΧΡΟΝΙΣΜΟΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση
Διαβάστε περισσότεραΣηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1
Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής if () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά προτού αυτό
Διαβάστε περισσότεραΠροβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1
Προβλήματα Συγχρονισμού (με ελεγκτή) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Υλοποίηση σηματοφόρων Οι σηματοφόροι είναι ένας ΑΤΔ με συγκεκριμένες λειτουργίες πρόσβασης Μπορεί να υλοποιηθούν με «φυσικό»
Διαβάστε περισσότεραΚρίσιμη Περιοχή Υπό Συνθήκη (Conditional Critical Regions) Ταυτόχρονος Προγραμματισμός 1
Κρίσιμη Περιοχή Υπό Συνθήκη (onditional ritical Regions) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Πέρα από ελεγκτές Ο ελεγκτής είναι χρήσιμο εργαλείο συγχρονισμού παρέχει στον προγραμματιστή εγγυημένο
Διαβάστε περισσότεραΣκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»
Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών
Διαβάστε περισσότεραΝήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1
Νήµατα ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων Κατανεµηµένα Συστήµατα 10-1 ιεργασίεςκαι νήµατα ιεργασία 1 Μνήµη ιεργασία 2 Μνήµη ιεργασία 3 Μνήµη Λειτουργικό Σύστηµα
Διαβάστε περισσότεραΠεριγραφή και Έλεγχος ιεργασιών
Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα
Διαβάστε περισσότεραΣυγχρονισμός & σηματοφόροι. Προγραμματισμός II 1
Συγχρονισμός & σηματοφόροι Προγραμματισμός II 1 lalis@inf.uth.gr Ταυτόχρονη εκτέλεση Οι διεργασίες εκτελούνται ταυτόχρονα μεταξύ τους Ο προγραμματιστής δεν ελέγχει την εναλλαγή Τι γίνεται αν δύο ή περισσότερες
Διαβάστε περισσότεραΕργαστήριο 14. Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t)
Εργαστήριο 14 Συγχρονισμός Νημάτων (χρήση pthread_mutex_t, pthread_cond_t) Να γράψετε πρόγραμμα που να δημιουργεί 1 νήμα Έτσι στο πρόγραμμα σας θα υπάρχουν 2 νήματα (το ένα νήμα είναι το αρχικό νήμα που
Διαβάστε περισσότεραΚεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ
Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ Καθ. Παπαδάκη Αν. Λειτουργικά Συστήματα 1 Περιγραφή Διεργασίας Στους υπολογιστές που έχουν μια μόνο ΚΜΕ, σε κάθε χρονική στιγμή μπορεί να εκτελείται μια μόνο εντολή γλώσσας
Διαβάστε περισσότεραΑ. Ερωτήσεις Ανάπτυξης
οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;
Διαβάστε περισσότεραΣηματοφόροι (Σηματοφορείς) Ταυτόχρονος Προγραμματισμός 1
Σηματοφόροι (Σηματοφορείς) 1 lalis@inf.uth.gr Αποφυγή ενεργής αναμονής εναλλαγή if/while () { WAIT(); Μπορεί να γίνει εναλλαγή αφού το νήμα κάνει τον έλεγχο της συνθήκης αναμονής και την βρει αληθή, αλλά
Διαβάστε περισσότεραΚεφάλαιο 3: Λειτουργικά Συστήµατα
Κεφάλαιο 3: Λειτουργικά Συστήµατα B Μέρος Συντονισµός Δραστηριοτήτων Υπολογιστή Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Εισαγωγή Σήµερα θα περιγράψουµε πως ένα λειτουργικό
Διαβάστε περισσότεραΚατανεμημένα Συστήματα
Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013 Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python,
Διαβάστε περισσότεραΛειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΤι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΛειτουργικά Συστήματα
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 3: Δρομολόγηση Κεντρικής Μονάδας Επεξεργασίας Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΚαρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά
Διαβάστε περισσότεραΚεφάλαιο 3. Διδακτικοί Στόχοι
Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,
Διαβάστε περισσότεραιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων
ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΔιάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 8: Πρόβλημα Αμοιβαίου Αποκλεισμού ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Μοντέλο Κοινόχρηστης Μνήμης Αλγόριθμοι Αμοιβαίου Αποκλεισμού με Ισχυρούς Καταχωρητές ΕΠΛ432: Κατανεµηµένοι
Διαβάστε περισσότεραΤο μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες Το μάθημα ΛΣ Πραγματικού Χρόνου Θεωρητικό υπόβαθρο Αρχές Προγραμματισμού Παραδείγματα ΛΣ Εργασίες
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότεραΛιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα
Διαβάστε περισσότεραΧρονοπρογραµµατισµός ιεργασιών (Process Scheduling)
Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling) Περίληψη Χρονοπρογραµµατισµός διεργασιών και κριτήρια Κατηγορίες χρονοπρογραµµατιστών λγόριθµοι χρονοπρογραµµατισµού Χρονοπρογραµµατισµός Η πολιτική
Διαβάστε περισσότεραΥλοποίηση Σηματοφόρων
Υλοποίηση Σηματοφόρων 1 lalis@inf.uth.gr Υλοποίηση σε επίπεδο συστήματος Εσωτερική κατάσταση: Ένας ακέραιος για την αποθήκευση της τιμής του σηματοφόρου Μια ουρά αναμονής που τοποθετείται ένα νήμα όταν
Διαβάστε περισσότεραΛειτουργικά Συστήματα Πραγματικού Χρόνου
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες Μ.Στεφανιδάκης Το μάθημα ΛΣ Πραγματικού Χρόνου Θεωρητικό υπόβαθρο Αρχές Προγραμματισμού Παραδείγματα
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΜΟΣ Κεφάλαιο 10 : Εντολές επιλογής και αποφάσεων 1 ο Φύλλο Εργασιών Εισαγωγικές ασκήσεις για την εντολή if ΑΠΑΝΤΗΣΕΙΣ 1. Ποιες από τις παρακάτω εντολές είναι σωστές; α) if A + B
Διαβάστε περισσότερα13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1
13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών
Διαβάστε περισσότερα1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»
1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Συγχρονισμός (συνέχεια) Μεταβλητές υπό συνθήκη Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Συγχρονισμός μεταξύ νημάτων
Διαβάστε περισσότεραΚατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα
Διαβάστε περισσότεραΑµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1
Αµοιβαίοςαποκλεισµός Εισαγωγή Συγκεντρωτική προσέγγιση Κατανεµηµένη προσέγγιση Αλγόριθµος Lamport Αλγόριθµος Ricart-Agrawala Προσέγγιση µεταβίβασης σκυτάλης Αλγόριθµος LeLann Αλγόριθµος Raymond Αλγόριθµος
Διαβάστε περισσότεραΚεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού
Διαβάστε περισσότερα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];
Διαβάστε περισσότεραΑμοιβαίος αποκλεισμός με κοινή μνήμη. Ταυτόχρονος Προγραμματισμός 1
Αμοιβαίος αποκλεισμός με κοινή μνήμη 1 lalis@inf.uth.gr Το πρόβλημα Έστω ότι δύο η περισσότερα νήματα επιθυμούν να προσπελάσουν έναν κοινό πόρο, που όμως δεν μπορεί να χρησιμοποιηθεί ταυτόχρονα Η χρήση
Διαβάστε περισσότεραa = 10; a = k; int a,b,c; a = b = c = 10;
C: Από τη Θεωρία στην Εφαρµογή Κεφάλαιο 4 ο Τελεστές Γ. Σ. Τσελίκης Ν. Δ. Τσελίκας Ο τελεστής εκχώρησης = Ο τελεστής = χρησιµοποιείται για την απόδοση τιµής (ή αλλιώς ανάθεση τιµής) σε µία µεταβλητή Π.χ.
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Διαβάστε περισσότεραΛιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!
Διαβάστε περισσότερα3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα
ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3. Λειτουργικό Σύστηµα 3. Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα
ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 4 η Τελεστές Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης
Διαβάστε περισσότεραΛειτουργικά Συστήματα Πραγματικού Χρόνου
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Η χρήση του χρόνου Μ.Στεφανιδάκης Συστήματα πραγματικού χρόνου: ελεγκτής και ελεγχόμενο σύστημα real-time system
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"
Διαβάστε περισσότεραΠοια ιδιότητα αϖό τις δύο τελευταίες είναι ϖιο ισχυρή;
Το Πρόβληµα του Αµοιβαίου Αϖοκλεισµού Τµήµατα Κώδικα Ο χρήστης που την τρέχουσα χρονική στιγµή προσβαίνει τον πόρο βρίσκεται στο κρίσιµο τµήµα του. Χρήστες που την τρέχουσα χρονική στιγµή δεν ενδιαφέρονται
Διαβάστε περισσότεραΛειτουργικά συστήματα πραγματικού χρόνου
Λειτουργικά συστήματα πραγματικού χρόνου Τι είναι λειτουργικό σύστημα πραγματικού χρόνου; Λειτουργικό Σύστημα Πραγματικού Χρόνου (ΛΣΠΧ) είναι ένα λειτουργικό σύστημα που προορίζεται για εφαρμογές πραγματικού
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07
ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07 Αλγόριθμος: Βήμα προς βήμα διαδικασία για την επίλυση κάποιου προβλήματος. Το πλήθος των βημάτων πρέπει να είναι πεπερασμένο. Αλλιώς: Πεπερασμένη
Διαβάστε περισσότεραΕνότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1
ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java Είσοδος Χρησιμοποιούμε την κλάση Scanner της Java import java.util.scanner; Αρχικοποιείται με το ρεύμα εισόδου: Scanner in = new Scanner(System.in);
Διαβάστε περισσότεραΛειτουργικά Συστήματα
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 1 : Εισαγωγή Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΛειτουργικά Συστήματα. Ενότητα # 2: Διεργασίες και Νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής
Λειτουργικά Συστήματα Ενότητα # 2: Διεργασίες και Νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του
Διαβάστε περισσότεραΣύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1
Σύγχρονη επικοινωνία με ανταλλαγή μηνυμάτων (CSP message passing model) Ταυτόχρονος Προγραμματισμός 1 lalis@inf.uth.gr Σύγχρονα κανάλια επικοινωνίας Μέρος του Communicating Sequential Processes (CSP) που
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Διαβάστε περισσότεραΔιάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι
Διάλεξη 9: Αλγόριθμοι Αμοιβαίου Αποκλεισμού με τη χρήση μεταβλητών Ανάγνωσης/Εγγραφής ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Τι θα δούμε σήμερα Αλγόριθμος Ψησταριάς (Bakery Algorithm) Αλγόριθμος 2- επεξεργαστών
Διαβάστε περισσότεραΠροβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)
Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων
Διαβάστε περισσότεραΕισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος
Εισαγωγή στα Λειτουργικά συστήματα Ι Καθηγητής Κώστας Αναγνωστόπουλος Τι είναι Λειτουργικό Σύστημα Ένα πρόγραμμα ή συλλογή προγραμμάτων που ελέγχει και διαχειρίζεται το υλικό μιας υπολογιστικής μηχανής
Διαβάστε περισσότεραΤο Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε
Οµοφωνία σε σύστηµα µε αϖοτυχίες κατάρρευσης διεργασιών Παναγιώτα Φατούρου Κατανεµηµένα Συστήµατα 1 Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες
Διαβάστε περισσότερα