Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος
|
|
- ÔΠοσειδῶν Πρωτονοτάριος
- 7 χρόνια πριν
- Προβολές:
Transcript
1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Επαναληπτική Εξέταση Λύσεις Το παρόν περιγράφει πλήρη λύση των θεμάτων. Για να βοηθήσει στην καλύτερη κατανόηση των απαντήσεων, προσφέρει αναλυτική επεξήγησή τους, η οποία δεν ήταν απαραίτητη για να θεωρείται τέλεια η λύση. Θέμα 1 (25%) Δίνεται το πρόγραμμα C σε περιβάλλον UNIX που ακολουθεί μετά τα ζητούμενα. Θεωρήστε ότι οι κλήσεις συστήματος δεν αποτυγχάνουν και ότι κάθε νέα διεργασία κληρονομεί ακριβώς τον τρόπο χειρισμού σημάτων του πατέρα. i. Σχεδιάστε το γράφο διεργασιών στην τελική του μορφή, όταν δηλαδή όλες οι διεργασίες και τα νήματα έχουν φτάσει σε μόνιμη κατάσταση. Επισημάνετε τις διεργασίες με κυκλικό κόμβο και τα νήματα με τετράγωνο κόμβο στο γράφο. Για κάθε κόμβο φροντίστε να φαίνεται η γονική διεργασία με βέλος. Αν υπάρχουν, δείξτε και τις διεργασίες/νήματα που έζησαν προσωρινά, αλλά δεν υπάρχουν στη μόνιμη κατάσταση, με διακεκομμένο περίγραμμα. (10%) ii. Για κάθε κομβο του γράφου επισημάνετε: (i) την κλήση συστήματος ή συνάρτηση μέσα στην οποία βρίσκεται ο Program Counter της αντίστοιχης διεργασίας/νήματος, (ii) τα ορίσματα με τα οποία αυτή έχει κληθεί και (iii) τη γραμμή του προγράμματος από όπου έγινε η κλήση της. Για τις διεργασίες/νήματα που έζησαν προσωρινά επισημάνετε την τελευταία κλήση συστήματος ή συνάρτηση στην οποία βρέθηκε ο Program Counter. (5%) iii. Συμπληρώστε το σχήμα σας ώστε να φαίνεται η διαδιεργασιακή επικοινωνία: για κάθε μεταφορά δεδομένων ή αποστολή σήματος που συνέβη, σχεδιάστε ένα διακεκομμένο βέλος από τη διεργασία-αποστολέα στη διεργασία-παραλήπτη. Πάνω από το βέλος γράψτε την τιμή που μεταφέρεται κάθε φορά. (4%) iv. Τί θα τυπωθεί στις γραμμές 54 και 56 του προγράμματος; (6%) Σημείωση: Από το man page της kill δίνεται: int kill(pid_t pid, int sig); If pid equals 0, then sig is sent to every process in the process group of the calling process. Λειτουργικά Συστήματα - 7ο εξάμηνο 1 cslab@ntua Σεπ. 2016
2 1 int res = 0, num = 2, pd[2], arg[32]; 2 pthread_t thread[32]; 3 sem_t sem; 4 5 void h(int s) 6 { 7 read(pd[0], &num, sizeof(num)); 8 sem_post(&sem); 9 } void *f(void *var) 12 { 13 int tmp = *(int *)var; 14 res += tmp; 15 pthread_exit((void *)0); 16 } int main() 19 { 20 int i, k, p, pstatus; 21 void *tstatus; sem_init(&sem, 0, 0); 24 signal(sigusr1, h); 25 pipe(pd); for (i = 0; i < num; i++) { 28 p = fork(); if (p == 0) { 31 sem_wait(&sem); 32 num++; 33 for (k = 0; k < num; k++) { 34 arg[k] = k; 35 pthread_create(&thread[k], NULL, f, (void *)&arg[k]); 36 } for (k = 0; k < num; k++) pthread_join(thread[k], &tstatus); 39 if (num < 4) write(pd[1], &num, sizeof(num)); exit(res); 42 } 43 } write(pd[1], &num, sizeof(num)); 46 signal(sigusr1, SIG_IGN); /* To SIGUSR1 αγνοείται από την καλούσα διεργασία */ 47 kill(0, SIGUSR1); /* Δείτε επισήμανση στην εκφώνηση */ for (i = 0; i < num; i++) { 50 wait(&pstatus); 51 if (WIFEXITED(pstatus)) res += WEXITSTATUS(pstatus); 52 } printf("final result1: %d \n", res); 55 read(pd[0], &num, sizeof(num)); 56 printf("final result2: %d \n", num); return 0; 59 } Λειτουργικά Συστήματα - 7ο εξάμηνο 2 cslab@ntua Σεπ. 2016
3 Λύση Θέματος 1 (i), (ii), (iii) 15: pthread_exit(0) SIGUSR1 pipe: 2 41: exit(res) 15: pthread_exit(0) 15: pthread_exit(0) SIGUSR1 55: read(...) pipe: 3 41: exit(res) 15: pthread_exit(0) 15: pthread_exit(0) SIGUSR1 15: pthread_exit(0) 15: pthread_exit(0) (iv) Στη γραμμή 54 δεν γνωρίζουμε ποια τιμή θα τυπωθεί, καθώς η τιμή του res που επιστρέφεται από κάθε διεργασία-παιδί στη γραμμή 41 υπόκειται σε race condition κατά τη διάρκεια εκτέλεσης των νημάτων (γραμμή 14). Στη γραμμή 56 η διεργασία-πατέρας δεν θα φτάσει ποτέ καθώς έχει κολλήσει στη γραμμή 55, όπου περιμένει να διαβάσει κάποια τιμή από το pipe. Λειτουργικά Συστήματα - 7ο εξάμηνο 3 cslab@ntua Σεπ. 2016
4 Θέμα 2 (60%) Δίνεται το ημιτελές πρόγραμμα που ακολουθεί μετά τα ερωτήματα, το οποίο εκτελείται σε σύστημα με τα παρακάτω χαρακτηριστικά: - To ΛΣ υποστηρίζει εικονική μνήμη με σελιδοποίηση και ακολουθεί το μοντέλο fork()/exec() με Copy-on-Write (CoW) για τη δημιουργία νέων διεργασιών. - Το μέγεθος σελίδας/πλαισίου είναι 4096 bytes (4KiB). Η φυσική μνήμη περιλαμβάνει 10 πλαίσια. - Σε κάθε πρόγραμμα που εκτελείται στο εν λόγω σύστημα, το ΛΣ παραχωρεί ξεχωριστή(ές) σελίδα(ες) μνήμης για τον κώδικα του πρόγράμματος, τις global μεταβλητές (αν υπάρχουν), τις σταθερές (αν υπάρχουν) και τη στοίβα, ενώ υποστηρίζει δυναμική παραχώρηση μνήμης από το σωρό. Η στοίβα κάθε προγράμματος είναι 4KiB. - Tο ΛΣ παραχωρεί φυσική μνήμη στο σωρό της διεργασίας όταν πραγματοποιείται εγγραφή στη μνήμη αυτή. Ο κώδικας του παρακάτω προγράμματος είναι 4KiB, η βιβλιοθήκη της C (συναρτήσεις fopen(), malloc(), fprintf(), scanf(), fscanf()) καταλαμβάνει 8KiB και είναι στατικά συνδεδεμένη με το πρόγραμμα, ενώ η μαθηματική βιβλιοθήκη (συνάρτηση sqrt()) καταλαμβάνει 4KiΒ και συνδέεται με το πρόγραμμα δυναμικά. Ο κώδικας και τα δεδομένα του ΛΣ καταλαμβάνουν επίσης από 4KiΒ στη μνήμη το καθένα. Υπενθυμίζεται ότι sizeof(int) = 4. i. Στους Πίνακες 1-3 σας δίνεται η εικόνα της φυσικής μνήμης ακριβώς πριν από την εκτέλεση του προγράμματος, καθώς και η μορφή του πίνακα σελίδων και του χάρτη μνήμης που το ΛΣ τηρεί για κάθε διεργασία. Δώστε την εικόνα της φυσικής μνήμης, καθώς και τον πίνακα σελίδων και το χάρτη μνήμης για κάθε διεργασία που βρίσκεται σε εκτέλεση στις γραμμές του κώδικα 9, 11, 18, 19 (αμέσως μετά τη fork), 23 και 28 (θεωρήστε ότι η γραμμή 22 εκτελείται πριν την 27). (30 %) ii. Περιγράψτε αν και υπό ποιες συνθήκες στις γραμμές κώδικα 8, 10, 12, 13, 16, 19, 22 και 27 είναι δυνατόν να εμπλακεί ο χρονοδρομολογητής στην εκτέλεση του προγράμματος. Θεωρήστε ότι όλες οι συναρτήσεις και οι κλήσεις συστήματος επιτυγχάνουν. Αγνοήστε τις περιπτώσεις που ο χρονοδρομολογητής καλείται λόγω διακοπής από το χρονιστή. (10%) iii. Συμπληρώστε το πρόγραμμα οπουδήποτε κρίνετε σκόπιμο, ώστε να πραγματοποιείται σωστά και παράλληλα (στις 2 διεργασίες που έχουν δημιουργηθεί) ο υπολογισμός. Το αποτέλεσμα της πράξης θα πρέπει να είναι ορατό στη διεργασία πατέρα. (10%) iv. Δώστε έκδοση του παραπάνω προγράμματος χρησιμοποιώντας νήματα POSIX. (10%) πλαίσιο περιγραφή 0 κώδικας ΛΣ 1 δεδομένα ΛΣ 2 free 3 free 4 math lib 5 free 6 free 7 free 8 free 9 free Πίνακας 1: Πλαίσια στη φυσική μνήμη page permissions frame page number π.χ. r, rw, x, κλπ αριθμός πλαισίου στη φυσική μνήμη Πίνακας 2: Πίνακας Σελίδων Λειτουργικά Συστήματα - 7ο εξάμηνο 4 cslab@ntua Σεπ. 2016
5 page permisssions block page number π.χ. r, rw, x, κλπ αριθμός block στο δίσκο - ενδεικτικά Πίνακας 3: Χάρτης Μνήμης 1 #define SIZE 1024 // constant 2 3 int *a, i, t, ITER; 4 5 int main(void) 6 { 7 FILE *infile; 8 infile = fopen("1.txt", "r"); 9 10 a = malloc(size*sizeof(int)); fprintf(stdout, "Give me the number of iterations\n"); 13 scanf("%d", &ITER); for (i = 0; i < SIZE; i++) { 16 fscanf(infile, "%d\n", &a[i]); 17 } if (fork() == 0) { 20 for (t = 0; t < ITER; t++) 21 for (i = 1; i < SIZE/2; i++) 22 a[i] = sqrt((a[i-1] + a[i+1]) / 2); 23 } 24 else { 25 for (t = 0; t < ITER; t++) 26 for (i = SIZE/2; i < SIZE - 1; i++) 27 a[i] = sqrt((a[i-1] + a[i+1]) / 2); 28 } return 0; 31 } Λύση Θέματος 2 i. Οι πίνακες που ακολουθούν είναι ενδεικτικοί (υπάρχουν πολλοί εναλλακτικοί έγκυροι πίνακες). Στις γραμμή 9 του κώδικα η φυσική μνήμη έχει ως εξής: πλαίσιο περιγραφή 0 κώδικας ΛΣ 1 δεδομένα ΛΣ 2 κώδικας P1 3 σταθερές P1 4 math lib 5 μεταβλητές P1 6 βιβλιοθήκη C 7 βιβλιοθήκη C 8 στοίβα P1 9 free Πίνακας 4: Πλαίσια στη φυσική μνήμη Λειτουργικά Συστήματα - 7ο εξάμηνο 5 cslab@ntua Σεπ. 2016
6 Αντίστοιχα ο πίνακας σελίδων για τη διεργασία (έστω P1): και ο χάρτης μνήμης: page permissions frame 0 rx 2 1 r 3 2 rw 5 3 rx 6 4 rx 7 5 rw 8 Πίνακας 5: Πίνακας Σελίδων P1 page permisssions block 0 rx - 1 r - 2 rw - 3 rx - 4 rx - 5 rw - Πίνακας 6: Χάρτης Μνήμης P1 Στη γραμμή 11 η εικόνα της φυσικής μνήμης καθώς και ο πίνακας σελίδων παραμένουν ίδιοι, λόγω on demand paging, αλλά ο χάρτης μνήμης της P1 διαμορφώνεται ως εξής: page permisssions block 0 rx - 1 r - 2 rw - 3 rx - 4 rx - 5 rw - 6 rw - Πίνακας 7: Χάρτης Μνήμης P1 Στη γραμμή 18 δεσμεύεται μια σελίδα, καθώς πραγματοποιείται εγγραφή στο δεσμευμένο buffer στο σωρό. Ο χάρτης μνήμης δεν αλλάζει, αλλά η φυσική μνήμη και ο πίνακας σελίδων της P1 γίνονται αντίστοιχα: πλαίσιο περιγραφή 0 κώδικας ΛΣ 1 δεδομένα ΛΣ 2 κώδικας P1 3 σταθερές P1 4 math lib 5 μεταβλητές P1 6 βιβλιοθήκη C 7 βιβλιοθήκη C 8 στοίβα P1 9 σωρός P1 Πίνακας 8: Πλαίσια στη φυσική μνήμη Λειτουργικά Συστήματα - 7ο εξάμηνο 6 cslab@ntua Σεπ. 2016
7 page permissions frame 0 rx 2 1 r 3 2 rw 5 3 rx 6 4 rx 7 5 rw 8 6 rw 9 Πίνακας 9: Πίνακας Σελίδων P1 Στη γραμμή 19 (αμέσως μετά τη fork()) δημιουργείται ένα αντίγραφο του πίνακα σελίδων για την P2 (έχοντας χάσει τα write permissions) και αντίστοιχα ένα αντίγραφο του χάρτη μνήμης για την P2. Η εικόνα της φυσικής μνήμης παραμένει ίδια. Οπότε έχουμε: page permissions frame 0 rx 2 1 r 3 2 r 5 3 rx 6 4 rx 7 5 r 8 6 r 9 Πίνακας 10: Πίνακας Σελίδων P1 page permissions frame 0 rx 2 1 r 3 2 r 5 3 rx 6 4 rx 7 5 r 8 6 r 9 Πίνακας 11: Πίνακας Σελίδων P2 page permisssions block 0 rx - 1 r - 2 rw - 3 rx - 4 rx - 5 rw - 6 rw - Πίνακας 12: Χάρτης Μνήμης P1 Λειτουργικά Συστήματα - 7ο εξάμηνο 7 cslab@ntua Σεπ. 2016
8 page permisssions block 0 rx - 1 r - 2 rw - 3 rx - 4 rx - 5 rw - 6 rw - Πίνακας 13: Χάρτης Μνήμης P2 Στη γραμμή 22 έχουμε πρόσβαση στη math lib, γεγονός που προσθέτει μία εγγραφή στον αντίστοιχο πίνακα σελίδων. Επίσης, αλλάζει η στοίβα της P2. Σε αυτό το σημείο, όμως, δεν υπάρχει ελεύθερο πλαίσιο στη φυσική μνήμη. Συνεπώς, πρέπει να αντικαταστήσουμε ένα πλαίσιο και να το αντιγράψουμε στο δίσκο (έστω block 515). Επιλέγουμε αυτό να είναι το πλαίσιο 5 (με κάποιον υποθετικό αλγόριθμο αντικατάστασης). Τέλος, η P2 πραγματοποιεί εγγραφή στη μεταβλητή a και στο δεσμευμένο χώρο στο σωρό, οπότε έχουμε επίσης COW. Ομοίως, αντιγράφουμε το πλαίσια 8 (block 516) και το πλαίσιο 9 (block 517). Οι πίνακες στη γραμμή 23 έχουν ως εξής (σχετικά με τον πίνακα σελίδων P1 oι εγγραφές που δεν υπάρχουν θεωρούνται ισοδύναμα ως invalid): πλαίσιο περιγραφή 0 κώδικας ΛΣ 1 δεδομένα ΛΣ 2 κώδικας P1 3 σταθερές P1 4 math lib 5 μεταβλητές P2 6 βιβλιοθήκη C 7 βιβλιοθήκη C 8 στοίβα P2 9 σωρός P2 Πίνακας 14: Πλαίσια στη φυσική μνήμη page permissions frame 0 rx 2 1 r 3 2 rw 5 3 rx 6 4 rx 7 5 rw 8 6 rw 9 7 rx 4 Πίνακας 15: Πίνακας Σελίδων P2 page permisssions block 0 rx - 1 r - 2 rw - 3 rx - 4 rx - 5 rw - 6 rw - 7 rx - Πίνακας 16: Χάρτης Μνήμης P2 Λειτουργικά Συστήματα - 7ο εξάμηνο 8 cslab@ntua Σεπ. 2016
9 page permissions frame 0 rx 2 1 r 3 3 rx 6 4 rx 7 Πίνακας 17: Πίνακας Σελίδων P1 page permisssions block 0 rx - 1 r - 2 rw rx - 4 rx - 5 rw rw 517 Πίνακας 18: Χάρτης Μνήμης P1 Τέλος, στη γραμμή 26 (θεωρούμε ότι εκτελείται μετά τη γραμμή 22) κάποια από τα πλαίσια που ανήκουν στην P2 θα αντικατασταθούν από αντίστοιχα στης P1 λόγω έλλειψης χώρου. Συγκεκριμένα, τα πλαίσια που αφορούν στη στοίβα, το σωρό και τις μεταβλητές της P2 θα αντιγραφούν στο δίσκο (έστω block 532, 533, 534) και αντιστοίχως θα αντιγραφούν από το δίσκο (block 515, 516, 517) τα σχετικά πλαίσια της P1. Επίσης, θα προστεθεί η σχετική εγγραφή για τη math lib στον πίνακα σελίδων της P1. Έτσι οι πίνακες ενημερώνονται ακολούθως (σχετικά με τον πίνακα σελίδων P2 oι εγγραφές που δεν υπάρχουν θεωρούνται ισοδύναμα ως invalid): πλαίσιο περιγραφή 0 κώδικας ΛΣ 1 δεδομένα ΛΣ 2 κώδικας P1 3 σταθερές P1 4 math lib 5 μεταβλητές P1 6 βιβλιοθήκη C 7 βιβλιοθήκη C 8 στοίβα P1 9 σωρός P1 Πίνακας 19: Πλαίσια στη φυσική μνήμη page permissions frame 0 rx 2 1 r 3 2 rw 5 3 rx 6 4 rx 7 5 rw 8 6 rw 9 7 rx 4 Πίνακας 20: Πίνακας Σελίδων P1 Λειτουργικά Συστήματα - 7ο εξάμηνο 9 cslab@ntua Σεπ. 2016
10 page permisssions block 0 rx - 1 r - 2 rw - 3 rx - 4 rx - 5 rw - 6 rw - 7 rx - Πίνακας 21: Χάρτης Μνήμης P1 page permissions frame 0 rx 2 1 r 3 3 rx 6 4 rx 7 7 rx 4 Πίνακας 22: Πίνακας Σελίδων P2 page permisssions block 0 rx - 1 r - 2 rw rx - 4 rx - 5 rw rw rx - Πίνακας 23: Χάρτης Μνήμης P2 Λειτουργικά Συστήματα - 7ο εξάμηνο 10 cslab@ntua Σεπ. 2016
11 ii. Θεωρούμε διακοπτή στρατηγική χρονοδρομολόγησης. Ο χρονοδρομολογητής σε αυτή την περίπτωση εμπλέκεται (εκτός από τις περιπτώσεις του χρονιστή) όταν μια διεργασία κάνει Ε/Ε ή όταν μια διεργασία μεταβεί σε κατάσταση εκτέλεσης (ready). Επομένως για τις συγκεκριμένες γραμμές κώδικα: Γραμμή 8: Η διεργασία κάνει αίτημα στο ΛΣ για να ανοίξει το αρχείο. Δεν πραγματοποιεί κάποια Ε/Ε, οπότε δεν εμπλέκεται ο χρονοδρομολογητής. Γραμμή 10: Η διεργασία κάνει αίτημα στο ΛΣ για παραχώρηση δυναμικής μνήμης. Δεν πραγματοποιεί κάποια Ε/Ε, οπότε δεν εμπλέκεται ο χρονοδρομολογητής. Γραμμή 12: Η διεργασία πραγματοποιεί Ε/Ε οπότε εμπλέκεται ο χρονοδρομολογητής. Σημείωση: Ανάλογα με την υλοποίηση η εγγραφή στο τερματικό μπορεί να γίνει ασύγχρονα χωρίς ανάγκη αναμονής της διεργασίας. Σε αυτή την περίπτωση ο χρονοδρομολογητής δεν εμπλέκεται. Γραμμή 13: Η διεργασία πραγματοποιεί Ε/Ε και αναμονή εισόδου από το χρήστη, οπότε εμπλέκεται ο χρονοδρομολογητής. Γραμμή 16: Η διεργασία πραγματοποιεί Ε/Ε (ανάγνωση αρχείου από το δίσκο), άρα εμπλέκεται ο χρονοδρομολογητής. Γραμμή 19: Δημιουργείται νέα διεργασία και μεταβαίνει σε κατάσταση εκτέλεσης. Εμπλέκεται ο χρονοδρομολογητής. Γραμμή 22: Αν τα πλαίσια που απαιτούνται για τις συγκεκριμένες πράξεις βρίσκονται στη φυσική μνήμη, δεν δημιουργείται αίτημα Ε/Ε, οπότε δεν εμπλέκεται ο χρονοδρομολογητής. Στη συγκεκριμένη περίπτωση (βλέπε λύση ερωτήματος i) η φυσική μνήμη δεν επαρκεί και γίνεται μεταφορά πλαισίων στο δίσκο. Εφόσον πραγματοποιείται Ε/Ε, εμπλέκεται ο χρονοδρομολογητής. Γραμμή 27: Ομοίως με γραμμή 22. Λειτουργικά Συστήματα - 7ο εξάμηνο 11 cslab@ntua Σεπ. 2016
12 iii. Η λύση δίνεται στη συνέχεια. 1 2 #define SIZE 1024 // constant 3 4 int main(void) 5 { 6 int *a; 7 int i, t, ITER; 8 9 int pd[2][2]; int *status; FILE *infile; 14 infile = fopen("1.txt", "r"); a = malloc(size*sizeof(int)); fprintf(stdout, "Give me the number of iterations\n"); 19 scanf("%d", &ITER); for (i = 0; i < SIZE; i++) { 22 fscanf(infile, "%d\n", &a[i]); 23 } pipe(pd[0]); 26 pipe(pd[1]); if (fork() == 0) { for (t = 0; t < ITER; t++) { for (i = 1; i < SIZE/2; i++) 33 a[i] = (a[i-1] + a[i+1]) / 2; /* exchange boundary values */ 36 write(pd[0][1],&a[size/2-1], sizeof(int)); 37 read(pd[1][0],&a[size/2],sizeof(int)); 38 } 39 read(pd[1][0],&a[size/2],size/2*sizeof(int)); /* wait for child to finish its part */ 42 wait(status); 43 } 44 else { for (t = 0; t < ITER; t++) { for (i = SIZE/2; i < SIZE - 1; i++) 49 a[i] = (a[i-1] + a[i+1]) / 2; /* exchange boundary values */ 52 write(pd[1][1],&a[size/2], sizeof(int)); 53 read(pd[0][0],&a[size/2-1],sizeof(int)); 54 } /* send result to parent */ 57 write(pd[1][1],&a[size/2],size/2*sizeof(int)); Λειτουργικά Συστήματα - 7ο εξάμηνο 12 cslab@ntua Σεπ. 2016
13 58 exit(0); 59 } /* father prints the result */ 62 for (i = 0; i < SIZE; i++) fprintf(stdout,"%d\n", a[i]); return 0; 65 } Λειτουργικά Συστήματα - 7ο εξάμηνο 13 cslab@ntua Σεπ. 2016
14 iv. Η λύση δίνεται στη συνέχεια. 1 2 #define SIZE 1024 // constant 3 4 int *a; 5 6 sem_t sem[2]; 7 8 typedef struct thread_info_t{ 9 int mystart; 10 int myend; 11 int iterations; 12 sem_t *wsem; 13 sem_t *psem; 14 } thread_info; void *calc (void *args); int main(void) 19 { 20 int i, t, ITER, rc; pthread_t threads[2]; 23 thread_info thread_info_array[2]; FILE *infile; 26 infile = fopen("1.txt", "r"); a = malloc(size*sizeof(int)); fprintf(stdout, "Give me the number of iterations\n"); 31 scanf("%d", &ITER); for (i = 0; i < SIZE; i++) { 34 fscanf(infile, "%d\n", &a[i]); 35 } sem_init(&sem[0], 0, 0); 38 sem_init(&sem[1], 0, 0); thread_info_array[0].mystart = 0; 41 thread_info_array[0].myend = SIZE/2; 42 thread_info_array[0].iterations = ITER; 43 thread_info_array[0].wsem = &sem[0]; 44 thread_info_array[0].psem = &sem[1]; thread_info_array[1].mystart = SIZE/2; 47 thread_info_array[1].myend = SIZE - 1; 48 thread_info_array[1].iterations = ITER; 49 thread_info_array[1].wsem = &sem[1]; 50 thread_info_array[1].psem = &sem[0]; for(t = 0; t < 2; t++) { 53 rc = pthread_create(&threads[t], NULL, calc, (void *)&thread_info_array[t]); 54 } 55 for(t = 0; t < 2; t++) { 56 pthread_join(threads[t], NULL); 57 } Λειτουργικά Συστήματα - 7ο εξάμηνο 14 cslab@ntua Σεπ. 2016
15 58 59 for (i = 0; i < SIZE; i++) printf("%d\n", a[i]); return 0; 62 } void *calc (void *args) 65 { 66 thread_info *myinfo; 67 myinfo=(thread_info *)args; int t, i; int start = myinfo->mystart; 72 int end = myinfo->myend; 73 int iterations = myinfo->iterations; 74 sem_t *wsem = myinfo->wsem; 75 sem_t *psem = myinfo->psem; for (t = 0; t < iterations; t++) { 78 for (i = start + 1; i < end; i++) 79 a[i] = (a[i-1] + a[i+1]) / 2; /* notify sibling thread that boundary value has been written for this 82 iteration */ 83 sem_post(psem); /* wait sibling thread to write its boundary value for this iteration */ 86 sem_wait(wsem); 87 } } Λειτουργικά Συστήματα - 7ο εξάμηνο 15 cslab@ntua Σεπ. 2016
16 Θέμα 3 (15%) Απαντήστε συνοπτικά στις παρακάτω ερωτήσεις: i. Αναφέρετε μηχανισμούς με τους οποίους το υλικό υποστηρίζει τις παρακάτω λειτουργίες: - Διαχωρισμός χώρου χρήστη και χώρου πυρήνα. (1%) - Διακοπτή χρονοδρομολόγηση. (1%) - Εικονική μνήμη. (1%) - Αποδοτικός συγχρονισμός. (1%) - Εικονικοποίηση. (1%) ii. Ποια ζητήματα πρέπει να λάβει υπόψη του ο σχεδιαστής του χρονοδρομολογητή όταν στο σύστημα υπάρχουν πολλαπλοί επεξεργαστές; (4%) iii. Τι είναι το πρόβλημα της ενεργού αναμονής; Δώστε ψευδοκώδικα για την υλοποίηση των σημαφόρων με και χωρίς ενεργό αναμονή. (6%) Λύση Θέματος 3 i. - Διαχωρισμός χώρου χρήστη και χώρου πυρήνα: Trap ii. - Διακοπτή χρονοδρομολόγηση: Hardware timer - Εικονική μνήμη: Memory Management Unit (MMU) - Αποδοτικός συγχρονισμός: Atomic instructions - Εικονικοποίηση: Protection rings/privilege levels Προσκόλληση σε Επεξεργαστή (processor affinity) Επίδοση κρυφής μνήμης Εξισορρόπηση Φόρτου (load balancing) Απαιτεί μετακίνηση διεργασιών * Μετακίνηση ώθησης (push migration) * Μετακίνηση έλξης (pull migration) Γνώση φυσικής τοπολογίας συστήματος (πχ. NUMA, SMT) iii. Το πρόβλημα της ενεργού αναμονής (busy-wait) αναφέρεται στην κατανάλωση υπολογιστικών πόρων από μια διεργασία που εκτελεί επαναληπτικά ένα βρόχο αναμονής περιμένοντας άλλη διεργασία που βρίσκεται στο κρίσιμο τμήμα της. Κατά της διάρκεια της επαναληπτικής εκτέλεσης η ΚΜΕ δεν μπορεί να χρησιμοποιηθεί για άλλες εργασίες. Ψευδοκώδικας: Υλοποίηση με ενεργό αναμονή 1 wait (S) { 2 while (1) { 3 lock(s_lock); 4 if (S > 0) { 5 S--; 6 unlock(s_lock); 7 break; 8 } 9 unlock(s_lock); 10 } 11 } 12 1 signal (S) { 2 lock(s_lock); 3 S++; 4 unlock(s_lock); 5 } 6 Λειτουργικά Συστήματα - 7ο εξάμηνο 16 cslab@ntua Σεπ. 2016
17 Υλοποίηση χωρίς ενεργό αναμονή 1 wait (S) { 2 lock(s_lock); 3 S--; 4 if (S < 0) { 5 add proc to S_list; 6 unlock(s_lock); 7 block(); 8 } 9 unlock(s_lock); 10 } 11 1 signal (S) { 2 lock(s_lock); 3 S++; 4 if (S <= 0) { 5 remove P from S_list; 6 wakeup(p); 7 } 8 unlock(s_lock); 9 } 10 Λειτουργικά Συστήματα - 7ο εξάμηνο 17 cslab@ntua Σεπ. 2016
Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΧρονοδρομολογητής Κυκλικής Επαναφοράς
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 4 η Εργαστηριακή Άσκηση: Χρονοδρομολογητής Κυκλικής Επαναφοράς Λειτουργικά Συστήματα Υπολογιστών
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Θέμα
Διαβάστε περισσότεραΕικονική Μνήμη (1/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΣκελετός Παρουσίασης
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Σκελετός
Διαβάστε περισσότεραΔιαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 2 η Εργαστηριακή Άσκηση: Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της
Διαβάστε περισσότεραΑ Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο
Διαβάστε περισσότεραΔιεργασίες και Νήματα (2/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΗΥ321)
Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο
Διαβάστε περισσότεραΛειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΤι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων
Διαβάστε περισσότεραΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
Προπτυχιακό Πρόγραμμα Σπουδών Πληροφορική - ΠΛΗ 11-2005 - 06 ΕΠΑΝΑΛΗΠΤΙΚΗ ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ 8 ΙΟΥΛΙΟΥ 2006 ΜΕΡΟΣ Α'. ΕΡΩΤΗΣΕΙΣ ΠΟΛΛΑΠΛΩΝ ΕΠΙΛΟΓΩΝ [ΔΙΑΡΚΕΙΑ ΕΞΕΤΑΣΗΣ: 45 ] Σε κάθε ερώτηση απαντάτε επιλέγοντας
Διαβάστε περισσότεραΕθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 3 η Εργαστηριακή Άσκηση: Συγχρονισμός Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2017-2018
Διαβάστε περισσότεραΕθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 3 η Εργαστηριακή Άσκηση: Συγχρονισμός Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017
Διαβάστε περισσότεραΑνάπτυξη και Σχεδίαση Λογισμικού
Ανάπτυξη και Σχεδίαση Λογισμικού Η γλώσσα προγραμματισμού C Γεώργιος Δημητρίου Δυναμική Κατανομή Μνήμης Δυναμική εκχώρηση μνήμης Σωρός Συναρτήσεις malloc(), calloc(), realloc(), free() Δυναμικές δομές
Διαβάστε περισσότερα#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΔιεργασίες και Νήματα (1/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Διεργασίες
Διαβάστε περισσότεραΔομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Διαχείριση
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό (με. τη C)
Υποχρεωτικό Μάθημα 3 ου Εξαμήνου Χειμερινό Εξάμηνο Ακ. Έτους 20 Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Εισαγωγή στον Προγραμματισμό (με τη C) Διδάσκουσα: Φατούρου Παναγιώτα faturu [at] csd.uoc.gr
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals)
Προγραμματισμός συστημάτων UNIX/POSIX Σήματα (signals) Σήματα (signals) Τα σήματα είναι «διακοπές» λογισμικού (software interrupts) οι οποίες διακόπτουν την κανονική λειτουργία μίας διεργασίας. Προκαλούνται
Διαβάστε περισσότεραΠαρουσίαση 5 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος
Διαβάστε περισσότερα1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»
1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον
Διαβάστε περισσότεραΔιάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1
Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μνήμη I CS100,
Διαβάστε περισσότεραΠαρουσίαση 5 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:10 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΚεφάλαιο 3. Διδακτικοί Στόχοι
Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές
Διαβάστε περισσότεραΚεφάλαιο , 3.2: Συναρτήσεις II. (Διάλεξη 12)
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II (Διάλεξη 12) 12-1 Ανασκόπηση Δομής Προγράμματος με Συναρτήσεις 1 void PrintMessage (); Πρότυπο (Δήλωση) Συνάρτησης (Δηλώνουν τι επιπλέον συναρτήσεις θα χρησιμοποιήσουμε
Διαβάστε περισσότεραΔιάλεξη 18η: Διαχείρηση Αρχείων
Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh
Διαβάστε περισσότεραΙδιοκτησία Αντικειµένου
Software Transactional Memory H STM υποστηρίζει την εκτέλεση δοσοληψιών από τις διεργασίες, οι οποίες περιέχουν λειτουργίες που ο χρήστης θέλει να εκτελέσει στα διαµοιραζόµενα αντικείµενα. H STM εγγυάται
Διαβάστε περισσότεραΔιαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 2 η Εργαστηριακή Άσκηση: Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Λειτουργικά
Διαβάστε περισσότεραιαφάνειες παρουσίασης #5 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΣτοίβες με Δυναμική Δέσμευση Μνήμης
ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές
Διαβάστε περισσότεραΜεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 9 Συναρτήσεις Μέρος II Θέματα ιάλεξης Μη- ομημένος
Διαβάστε περισσότεραΠρογραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαδιεργασιακή Επικοινωνία Εργαστηριακές Ασκήσεις
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διαδιεργασιακή Επικοινωνία Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής,
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Διαβάστε περισσότεραΕργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα
Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Λίστες -Υλοποίηση ταξινομημένης λίστας με δυναμική δέσμευση μνήμης ΕΠΛ035
Διαβάστε περισσότεραΕνότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις
Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 9: Στοίβες:Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθεί η χρήση στοιβών στις εξής εφαρμογές: Υλοποίηση Στοιβών με Δυναμική Δέσμευση Μνήμης Εφαρμογή Στοιβών 1: Αναδρομικές συναρτήσεις Εφαρμογή
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες
Η γλώσσα προγραμματισμού C Συνδεδεμένες Λίστες Τι είναι οι συνδεδεμένες λίστες (linked lists) Μια Συνδεδεμένη Λίστα (Σ.Λ.) είναι μια διάταξη από κόμβους που μπορούμε να τους διαχειριστούμε δυναμικά. Κάθε
Διαβάστε περισσότεραΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό
Διαβάστε περισσότεραΚεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.
Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα
Διαβάστε περισσότεραΛειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX
Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) σήματα (signals) Ανάγκη Ότι είδαμε
Διαβάστε περισσότεραΗ γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2)
Η γλώσσα προγραμματισμού C Οι συναρτήσεις στη C (2) Κατηγορίες μνήμης εκτελέσιμου προγράμματος Στις καθολικές και στατικές μεταβλητές οι χώροι μνήμης δεσμεύονται κατά την διάρκεια της μεταγλώττισης. Οι
Διαβάστε περισσότεραΑ. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Διαβάστε περισσότεραΗ πολυνηματική γλώσσα προγραμματισμού Cilk
Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΕργαστήριο 9: Αρχεία
Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας
Διαβάστε περισσότεραΟρισμός μεταβλητών δεικτών και αρχικοποίηση
Ορισμός μεταβλητών δεικτών και αρχικοποίηση Η έννοια του δείκτη Κάθε μεταβλητή σχετίζεται με μια θέση στην κύρια μνήμη του Η/Υ η οποία έχει τη δική της ξεχωριστή διεύθυνση Ο δείκτης είναι μια μεταβλητή
Διαβάστε περισσότεραΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ
ΟΔΗΓΙΕΣ: ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ - ΠΛΗ10 ΤΕΛΙΚΕΣ ΕΞΕΤΑΣΕΙΣ - 14 ΙΟΥΝΙΟΥ 2015 Τα θέματα που έχετε στα χέρια σας είναι σε τρεις (3) σελίδες. Επιβεβαιώστε το και αν λείπει κάποια σελίδα
Διαβάστε περισσότεραΔιαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 14 η Διαχείριση Μνήμης και Δομές Δεδομένων Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Ασκήσεις Επανάληψης Ενδιάµεσης
Διαβάστε περισσότεραUNIX System Programming
UNIX System Programming Processes Objectives look at how to program UNIX processes fork( ), wait( ) Overview 1. What is a Process? 2. fork() 3. wait() 4. Process Data 1. What is a Process? A process is
Διαβάστε περισσότεραΠεριεχόμενα. Πρόλογος... 21
Περιεχόμενα Πρόλογος... 21 Κεφάλαιο 1: Εισαγωγή στον προγραμματισμό... 25 Εισαγωγή...27 Πώς να διαβάσετε αυτό το βιβλίο...27 Η δομή των κεφαλαίων...28 Γιατί να μάθω προγραμματισμό;...31 Γιατί να μάθω C;...31
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:11 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΔιαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1
Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις
Διαβάστε περισσότεραΚαρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA
Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA 1. Εισαγωγή Τι είναι Νήµα; Κάθε νήµα εκτέλεσης είναι ουσιαστικά
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ N:08 Δρ. Μηνάς Δασυγένης mdasyg@ieee.rg Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Διαβάστε περισσότεραΚεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ
Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (
Διαβάστε περισσότεραΦροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων 1. Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως εξής: (i) Διαδοχική χορήγηση μνήμης Υποθέτουμε ότι οι λίστες μας έχουν μέγιστο μέγεθος max και χρησιμοποιούμε τη δομή type elements[max];
Διαβάστε περισσότερα(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)
(Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη
Διαβάστε περισσότεραΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β
ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β 1. (10 μον.) Απαντήστε σωστό ή λάθος στις παρακάτω ερωτήσεις (αʹ) _2togo είναι έγκυρο όνομα μεταβλητής (βʹ) Αν p είναι δείκτης στο πρώτο στοιχείο
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΕισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 14 Δυναμική διαχείριση μνήμης Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Στατική δέσμευση μνήμης Με τη δήλωση απλών μεταβλητών
Διαβάστε περισσότεραΔομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΙόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]
Διαβάστε περισσότεραΔιάλεξη 9: Δυναμική Δέσμευση Μνήμης
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 9: Δυναμική Δέσμευση Μνήμης (Κεφάλαιο 17.1-17.4, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 9-1
Διαβάστε περισσότεραΕπανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ
Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε
Διαβάστε περισσότεραΕισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Διαβάστε περισσότεραΕργαστήριο 5 fork(), exec(), signals
Εργαστήριο 5 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)
Προγραμματισμός συστημάτων UNIX/POSIX Διεργασίες (processes) Δομή αρχείου προγράμματος Πρόγραμμα (program) ονομάζεται το εκτελέσιμο αρχείο που βρίσκεται αποθηκευμένο στο δίσκο (π.χ. το a.out, ή το ls ή
Διαβάστε περισσότεραΔομημένος Προγραμματισμός (ΤΛ1006)
Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής
Διαβάστε περισσότεραΦροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων Άσκηση 1 Υποθέτουμε πως οι λίστες είναι υλοποιημένες χρησιμοποιώντας τις πιο κάτω δομές. typedef struct Node{ type data; struct node *next; node; node *top; list; Υλοποιούμε
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Μemory)
ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1
Διαβάστε περισσότερα