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

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

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

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις Το παρόν περιγράφει πλήρη λύση των θεμάτων, με σύντομες απαντήσεις. Για να βοηθήσει στην καλύτερη κατανόηση των απαντήσεων, προσφέρει αναλυτική επεξήγησή τους, η οποία δεν ήταν απαραίτητη για να θεωρείται τέλεια η λύση. Θέμα 1 (15%) Αντιμετωπίζουμε το πρόβλημα συγχρονισμού του νηπιαγωγείου ( Kindergarten ), όπου οι κανονισμοί επιβάλλουν να είναι πάντα παρών ένας δάσκαλος ανά R παιδιά, όπου R ακέραιος αριθμός (π.χ. αναλογία παιδιών/δασκάλων 3:1), ώστε να εξασφαλίζεται η σωστή επίβλεψη των παιδιών. Επιπλέον, το σχήμα μας επιθυμούμε να έχει τα παρακάτω χαρακτηριστικά: 1. Αν ένας δάσκαλος αποπειραθεί να αποχωρήσει αλλά αυτό δεν είναι δυνατό, θα πρέπει να επιστρέφει στα καθήκοντά του (και να μην κολλάει αναμένοντας πότε θα ικανοποιηθεί η συνθήκη εξόδου). 2. Κάθε γονέας θα πρέπει να μπορεί να εισέρχεται στο χώρο του νηπιαγωγείου προκειμένου να ελέγξει αν τηρείται ο κανονισμός. Δώστε σχήμα συγχρονισμού των διεργασιών Teacher, Child και Parent που ικανοποιεί τις παραπάνω απαιτήσεις ορίζοντας τις συναρτήσεις *_enter(), *_exit() και verify_compliance() που χρησιμοποιούνται στη συνέχεια, ή αντικαθιστώντας τις κλήσεις τους με κατάλληλο κώδικα εντός των Teacher, Child και Parent. Μπορείτε να χρησιμοποιήσετε κλειδώματα, σημαφόρους και μοιραζόμενες μεταβλητές (mutexes/locks, semaphores, shared variables). void Teacher() { teacher_enter();...critical section... teach(); teacher_exit(); go_home(); void Child() { child_enter();...critical section... learn(); child_exit(); go_home(); void Parent() { parent_enter();...critical section... verify_compliance(); parent_exit(); go_home(); Για τη λύση του προβλήματος συγχρονισμού θα χρησιμοποιήσουμε τις κοινές μεταβλητές teacher, child και room που μετρούν τον αριθμό των δασκάλων, των παιδιών και του ελεύθερου χώρου για παιδιά αντίστοιχα. Θα χρησιμοποιήσουμε το μοναδιαίο σημαφόρο mutex για να ελέγξουμε την Λειτουργικά Συστήματα - 7ο εξάμηνο 1 cslab@ntua Μαρ. 2014

2 πρόσβαση στα κοινά δεδομένα και το μοναδιαίο σημαφόρο door που προσομοιώνει τη λειτουργία της πόρτας εισόδου του σταθμού. Κάθε δάσκαλος κατά την είσοδό του ενημερώνει τους κατάλληλους μετρητές και στην περίπτωση που η έλευσή του είναι αυτή που θα επιτρέψει σε νέα παιδιά να εισέλθουν ανοίγει την πόρτα εισόδου. Για να εξέλθει ο δάσκαλος ελέγχει αν ισχύουν οι συνθήκες προκειμένου να φύγει και ανάλογα, είτε φεύγει, είτε επιστρέφει στα καθήκοντά του. Τα παιδιά με τη σειρά τους αναμένουν στην πόρτα εισόδου μέχρι να μπορούν να εισέλθουν. Στη συνέχεια κάνουν έναν περαιτέρω έλεγχο αν υπάρχει χώρος (γιατί, π.χ. στο μεσοδιάστημα μπορεί να έφυγε κάποιος δάσκαλος) και αν υπάρχει χώρος εισέρχονται, αν όχι ξαναπεριμένουν στην πόρτα. Σε περίπτωση που μετά την είσοδό τους εξακολουθεί να υπάρχει ελεύθερος χώρος, φροντίζουν να αφήσουν την πόρτα ανοιχτή. shared int teacher = 0, child = 0; mutex semaphore(1); door semaphore(0); void Teacher() { wait(mutex); teacher++; room += R; if (room == R) signal(door); teach(); wait(mutex); if (room >= R) { teacher--; room -= R; break; go_home(); void Child() { wait(door); wait(mutex); if (room) { child++; room--; if (room) signal(door); break; learn(); wait(mutex); child--; room++; go_home(); void Parent() { wait(mutex); if ((teacher - 1) * R >= child) printf("regulation respected\n"); else printf("regulation violated\n"); go_home(); Λειτουργικά Συστήματα - 7ο εξάμηνο 2 cslab@ntua Μαρ. 2014

3 Θέμα 2 (20%) Δίνεται το πρόγραμμα C σε περιβάλλον UNIX που ακολουθεί μετά τα ζητούμενα. Θεωρήστε ότι οι κλήσεις συστήματος δεν αποτυγχάνουν, η Fn() δεν επιστρέφει ποτέ, η Fn() δεν εκτελεί κλήσεις συστήματος, κάθε νέα διεργασία κληρονομεί ακριβώς τον τρόπο χειρισμού σημάτων του πατέρα της και τέλος ότι οι κλήσεις συστήματος διακόπτονται από εισερχόμενα σήματα. Δεδομένου ότι η Fn() δεν επιστρέφει ποτέ, οι διεργασίες που δημιουργεί το πρόγραμμα έρχονται σε μόνιμη κατάσταση: το δέντρο διεργασιών μένει σταθερό για πάντα και κάθε διεργασία είναι μέσα σε συγκεκριμένη συνάρτηση ή κλήση συστήματος. α. (12%) Σχεδιάστε το δέντρο διεργασιών στην τελική του μορφή, όταν δηλαδή όλες οι διεργασίες έχουν φτάσει σε μόνιμη κατάσταση. Εξηγήστε συνοπτικά πώς προκύπτει. β. (4%) Σε κάθε κόμβο του δέντρου διεργασιών επισημάνετε: (i) την κλήση συστήματος ή συνάρτηση μέσα στην οποία βρίσκεται ο Program Counter της αντίστοιχης διεργασίας, (ii) τα ορίσματα με τα οποία αυτή έχει κληθεί, (iii) τη γραμμή του προγράμματος απ όπου έγινε η κλήση της. Για τα ορίσματα, κάντε οποιαδήποτε υπόθεση χρειάζεστε για νούμερα που δεν γνωρίζετε, π.χ. PIDs που ανατίθενται από το σύστημα στις νέες διεργασίες. γ. (4%) Συμπληρώστε το δέντρο διεργασιών ώστε να φαίνεται η διαδιεργασιακή επικοινωνία: για κάθε μεταφορά δεδομένων ή αποστολή σήματος που συνέβη, σχεδιάστε ένα διακεκομμένο βέλος από τη διεργασία-αποστολέα στη διεργασία-παραλήπτη. Πάνω στο βέλος γράψτε την τιμή που μεταφέρεται κάθε φορά. 1 int n, pd[2]; 2 char c; 3 pid_t p; 4 5 void h(int s) 6 { write(pd[1], &p, 2); read(pd[0], &p, 2); Fn(pd[0], pd[1]); 7 8 int main(void) 9 { 10 pipe(pd); 11 signal(sigusr1, h); 12 n = pd[1]; p = fork(); 15 if (p == 0) { 16 pipe(pd); 17 pd[1] = n; 18 p = fork(); 19 else 20 p = 0; if (p) 23 kill(p, SIGUSR1); read(pd[0], &c, 1); 26 Fn(p, pd[0]); 27 wait(&status); 28 Fn(4, 2); 29 return 0; 30 Λειτουργικά Συστήματα - 7ο εξάμηνο 3 cslab@ntua Μαρ. 2014

4 Το δέντρο διεργασιών, η θέση του PC για κάθε διεργασία και κάθε διαδιεργασιακή επικοινωνία φαίνεται στο ακόλουθο σχήμα. PID: : Fn(0, 3) 1 byte PID: : read(5,..., 1) signal PID: : read(5,..., 2) Η αρχική διεργασία (έστω με PID 1000) δημιουργεί ένα pipe (έστω pipe0), προσβάσιμο μέσω των περιγραφητών αρχείου 3, 4. Θέτει n = 4. Δημιουργεί παιδί (1001), γρ. 14. Θέτει p = 0, γρ. 20, προσπερνά την γρ. 22, μπλοκάρει σε ανάγνωση από το pipe0 στη γρ. 25. Η 1001 δημιουργείται, γρ. 14, δημιουργεί ένα δεύτερο pipe (έστω pipe1), προσβάσιμο μέσω περιγραφητών 5, 6. Συνεχίζει να έχει ανοιχτό το pipe0. Οι τιμές 5, 6, γράφονται στον πίνακα pd[2], πανωγράφοντας τις υπάρχουσες. Έπειτα, χρησιμοποιεί την μεταβλητή n για να θέσει το pd[1] ίσο με τον περιγραφητή του άκρου εγγραφής του pipe0, pd[1] = 4. Η κατάσταση των pipe0, pipe1 δεν επηρεάζεται. Δημιουργεί παιδί (έστω 1002), γρ. 18 και του στέλνει σήμα SIGUSR1, γρ. 23. Τέλος μπλοκάρει σε read() από τον περιγραφητή 5, δηλ. από το pipe1, γρ. 25. Η 1002 δημιουργείται, γρ. 22 και λαμβάνει το SIGUSR1. Μπορεί να έχει προλάβει να μπλοκάρει στο read() από το pipe1, μπορεί και όχι. Δεν μας ενδιαφέρει, δίνεται ότι τα εισερχόμενα σήματα διακόπτουν τις κλήσεις συστήματος. Εκτελεί τον signal handler (γρ. 6), γράφει 2 bytes στο pipe0 (λόγω της γρ. 17), επιχειρεί να διαβάσει 2 bytes από το pipe1 και μπλοκάρει για πάντα. Τέλος, η 1000 ξυπνάει, και μένει για πάντα μέσα στην Fn(0, 3). Υπενθύμιση: Κάθε διεργασία στο UNIX κληρονομεί ανοιχτούς τους περιγραφητές αρχείου 0 (stdin), 1 (stdout), 2 (stderr) από τον πατέρα της. Οπότε, δεν περιμένουμε οι τιμές αυτές να χρησιμοποιούνται για τους περιγραφητές αρχείων των pipes, χωρίς να περιγράφεται ρητά προηγούμενο κλείσιμό τους με close(). Θέμα 3 (40%) α. (20%) Ο κώδικας που σας δίνεται στη συνέχεια βρίσκει τους πρώτους αριθμούς σε δεδομένο διάστημα [low, high]. Το πρόγραμμα αυτό εκτελείται από τη διεργασία Α σε σύστημα με έναν επεξεργαστή και ΛΣ που υποστηρίζει εικονική μνήμη με σελιδοποίηση κατ απαίτηση (demand paging). 1 int main(int argc, char *argv[]) 2 { 3 long i, j, prime, low, high, counter = 0; low = atol(argv[1]); 6 high = atol(argv[2]); for (i = low; i <= high; i += 2) { 9 prime = 1; 10 for (j = 3; j < sqrt(i) + 1; j += 2) 11 if (i % j == 0) { 12 prime = 0; 13 break; 14 Λειτουργικά Συστήματα - 7ο εξάμηνο 4 cslab@ntua Μαρ. 2014

5 15 if (prime) { 16 counter++; 17 printf("%ld is a prime number\n", i); printf("%ld prime numbers were found in interval [%ld, %ld]\n", 22 counter, low, high); return 0; 25 i. Κατά την εκτέλεση του κυρίως αλγορίθμου (γραμμές 8 19) επισημάνετε τα σημεία στον κώδικα στα οποία μπορεί να κληθεί ο χρονοδρομολογητής αν έχουμε διακοπτή (preemptive) ή μη-διακοπτή (non-preemptive) πολιτική χρονοδρομολόγησης. (3%) ii. Προτείνετε αλλαγές στον κώδικα του προγράμματος ώστε κατά την εκτέλεση των συγκεκριμένων γραμμών σε σύστημα με μη-διακοπτή χρονοδρομολόγηση, το πρόγραμμά σας να μονοπωλήσει τον επεξεργαστή, δηλαδή να ολοκληρωθεί η εκτέλεση των γραμμών χωρίς το πρόγραμμα να αφήσει τον επεξεργαστή. Η έξοδος του προγράμματος θα πρέπει να είναι ακριβώς η ίδια μετά τις αλλαγές που θα κάνετε. (5%) iii. Πώς αναμένετε να αλλάξει η ταχύτητα εκτέλεσης αν επιτύχετε τη μονοπώληση και πού θα οφείλονται τυχόν αλλαγές; (4%) iv. Είναι δυνατόν να επιτευχθεί η μονοπώληση για οποιοδήποτε εύρος του διαστήματος [low, high] ; (4%) v. Θεωρήστε ότι στο σύστημα υπάρχει άλλη μία διεργασία (έστω Β) έτοιμη προς εκτέλεση. Αν επιτύχετε την παραπάνω μονοπώληση σχολιάστε πώς θα μεταβληθούν για το συγκεκριμένο χρονικό διάστημα της μονοπώλησης οι μετρικές: ρυθμός διεκπεραίωσης (throughput) και χρόνος αναμονής (waiting time) για τη διεργασία Α, τη διεργασία Β και το σύστημα συνολικά. Δικαιολογήστε την απάντησή σας. (4%) i. Αν έχουμε διακοπτή πολιτική χρονοδρομολόγησης ο χρονοδρομολογητής μπορεί να κληθεί σε οποιοδήποτε σημείο. Αν έχουμε μη-διακοπτή πολιτική, ο χρονοδρομολογητής μπορεί να κληθεί μέσα από κάποιο system call, δηλαδή στη γραμμή 17, αφού η κλήση της printf() μπορεί να οδηγήσει σε κλήση της write(). ii. Για να επιτύχουμε το στόχο μας θα πρέπει να αφαιρέσουμε την κλήση συστήματος μέσα από το συγκεκριμένο μπλοκ κώδικα. Προκειμένου να διατηρήσουμε την ίδια έξοδο, μπορούμε να φυλάξουμε την τιμή κάθε πρώτου αριθμού που βρίσκει το πρόγραμμά μας σε μία δομή (π.χ. ένα πίνακα) και να κάνουμε τις εκτυπώσεις όλες μαζί στο τέλος. iii. Η ταχύτητα εκτέλεσης θα αυξηθεί για το συγκεκριμένο μπλοκ κώδικα μιας και ο επεξεργαστής θα χρησιμοποιείται αποκλειστικά από τη συγκεκριμένη διεργασία. Επίσης, εξοικονομούμε και το κόστος από τις εναλλαγές περιβάλλοντος (context switch). Τέλος, μπορούμε να αναμένουμε και βελτίωση στο χρόνο από τις μαζικές εκτυπώσεις κατά την τελική φάση της εκτύπωσης (π.χ. κατασκευάζοντας μεγάλα string εκτύπωσης και μειώνοντας τις κλήσεις συστήματος). iv. Για μεγάλο εύρος [low, high] η πρόσβαση στη δομή που θα κρατάει τους πρώτους αριθμούς θα οδηγήσει σε page faults, οπότε εκεί θα εμπλακεί ο χρονοδρομολογητής και θα σταματήσει η μονοπώληση. v. Ο ρυθμός διεκπεραίωσης θα αυξηθεί για τη διεργασία Α, θα μηδενιστεί για τη διεργασία Β και θα αυξηθεί συνολικά για το σύστημα εφόσον θα αποφεύγεται το κόστος του context switch. Ο χρόνος αναμονής θα μηδενιστεί για τη διεργασία Α, θα αυξηθεί για τη διεργασία Β και θα μειωθεί για το σύστημα συνολικά (ομοίως επειδή αποφεύγεται ο χρόνος αναμονής του context switch). Λειτουργικά Συστήματα - 7ο εξάμηνο 5 cslab@ntua Μαρ. 2014

6 β. (20%) Αγοράσατε σύστημα με πολυπύρηνο επεξεργαστή και θέλετε να εκτελέσετε το πρόγραμμα υπολογισμού των πρώτων αριθμών του προηγούμενου ερωτήματος παράλληλα. Καταστρώστε ενδεικτικό παράλληλο πρόγραμμα: i. Με πολλαπλές διεργασίες στο μοντέλο του UNIX (fork() / wait()). ii. Με πολλαπλά νήματα ακολουθώντας τη λογική των POSIX threads. Η έξοδος και των δύο εκδόσεων του παράλληλου προγράμματος θα πρέπει να συμφωνεί με αυτή του σειριακού προγράμματος ως προς τα αποτελέσματα που προκύπτουν και όχι απαραίτητα ως προς της σειρά εμφάνισής τους. ΣΗΜΕΙΩΣΗ: Δεν καλείστε να αναπαράγετε ακριβώς τις κλήσεις συναρτήσεων σε κάθε περίπτωση, αλλά να χρησιμοποιήσετε τους αντίστοιχους μηχανισμούς που σας παρέχονται. Στη συνέχεια δίνονται πλήρη προγράμματα που υλοποιούν τα ζητούμενα του ερωτήματος (χωρίς ελέγχους σφαλμάτων, ορισμάτων, κλπ). Η ορθή επίλυση του θέματος δεν απαιτεί τη λεπτομέρεια και ακρίβεια των προγραμμάτων που ακολουθούν. Λειτουργικά Συστήματα - 7ο εξάμηνο 6 cslab@ntua Μαρ. 2014

7 Λύση με fork() / wait(): 1 /* 2 * parallel prime numbers with fork() / wait() 3 * 4 */ 5 6 #include <stdio.h> 7 #include <stdlib.h> 8 #include <math.h> 9 #include <unistd.h> 10 #include <sys/types.h> 11 #include <sys/wait.h> long int count_primes(long int low, long int high); int main(int argc, char *argv[]) 16 { long int i, tmp, low, high, *p_low, *p_high, chunk, counter = 0; 19 int procs, **pd, pid, status; 20 char buf[32]; low = atol(argv[1]); 23 high = atol(argv[2]); 24 procs = atoi(argv[3]); p_low = malloc(procs * sizeof(long int)); 27 p_high = malloc(procs * sizeof(long int)); 28 pd = malloc(procs * sizeof(int *)); for (i = 0; i < procs; i++) 31 pd[i] = malloc(2 * sizeof(int)); chunk = (high - low) / procs; p_low[0] = low; for (i = 0; i < procs; i++) { if (i < procs - 1){ 40 p_high[i] = p_low[i] + chunk; 41 p_low[i+1] = p_high[i] + 1; 42 else 43 p_high[i] = high; pipe(pd[i]); pid = fork(); if (pid) { 50 write(pd[i][1], &p_low[i], sizeof(p_low[i])); Λειτουργικά Συστήματα - 7ο εξάμηνο 7 cslab@ntua Μαρ. 2014

8 51 write(pd[i][1], &p_high[i], sizeof(p_high[i])); 52 else { 53 read(pd[i][0], &low, sizeof(low)); 54 read(pd[i][0], &high, sizeof(high)); 55 counter = count_primes(low, high); 56 write(pd[i][1], &counter, sizeof(counter)); 57 exit(0); for (i = 0; i < procs; i++) { 62 wait(&status); for (i = 0; i < procs; i++) { 66 read(pd[i][0], &tmp, sizeof(tmp)); 67 counter += tmp; fprintf(stdout,"%ld prime numbers were found in interval %ld %ld\n", 71 counter, low, high); return 0; long int count_primes(long int low, long int high) 77 { 78 long int i, j, prime, counter = 0; for (i = low; i <= high; i += 2) { 81 prime = 1; 82 for (j = 3; j < sqrt(i) + 1; j += 2) 83 if (i % j == 0) { 84 prime = 0; 85 break; if (prime) { 88 counter++; 89 fprintf(stdout,"%ld is a prime number\n", i); return counter; 94 Λειτουργικά Συστήματα - 7ο εξάμηνο 8 cslab@ntua Μαρ. 2014

9 Λύση με POSIX threads: 1 /* 2 * parallel prime numbers with POSIX threads 3 * 4 */ 5 #include <stdlib.h> 6 #include <stdio.h> 7 #include <math.h> 8 #include <pthread.h> 9 10 typedef struct t_args { 11 long int low, high; 12 long int counter; 13 thread_args; void *count_primes_t(void *args); int main(int argc, char *argv[]) 18 { 19 pthread_t *thr; 20 thread_args *thr_args; long int i, low, high, *p_low, *p_high, chunk, counter = 0; 23 int threads; low = atol(argv[1]); 26 high = atol(argv[2]); 27 threads = atoi(argv[3]); p_low = malloc(threads * sizeof(long int)); 30 p_high = malloc(threads * sizeof(long int)); thr = malloc(threads * sizeof(pthread_t)); 33 thr_args = malloc(threads * sizeof(thread_args)); chunk = (high - low) / threads; p_low[0] = low; for (i = 0; i < threads; i++) { if (i < threads - 1){ 42 p_high[i] = p_low[i] + chunk; 43 p_low[i+1] = p_high[i] + 1; else p_high[i] = high; thr_args[i].low = p_low[i]; 48 thr_args[i].high = p_high[i]; pthread_create(&thr[i], NULL, count_primes_t, &thr_args[i]); Λειτουργικά Συστήματα - 7ο εξάμηνο 9 cslab@ntua Μαρ. 2014

10 for (i = 0; i < threads; i++) { 54 pthread_join(thr[i], NULL); 55 counter += thr_args[i].counter; fprintf(stdout,"%ld prime numbers were found in interval %ld %ld\n", 59 counter, low, high); return 0; void *count_primes_t(void *args) 65 { 66 thread_args *my_args; 67 long int i, j, my_low, my_high, counter = 0; 68 int prime; my_args = args; 71 my_low = my_args->low; 72 my_high = my_args->high; for(i = my_low; i <= my_high; i += 2) { 75 prime = 1; 76 for (j = 3; j < sqrt(i) + 1; j += 2) 77 if (i % j == 0) { 78 prime = 0; 79 break; if (prime) { 82 counter++; 83 fprintf(stdout,"%ld is a prime number\n", i); my_args->counter = counter; 88 pthread_exit(null); 89 Θέμα 4 (25%) α. (10%) Έστω ΛΣ με υποστήριξη σελιδοποίησης κατ απαίτηση (demand paging), μοιραζόμενης μνήμης για διαδιεργασιακή επικοινωνία και CoW για τη δημιουργία νέων διεργασιών. i. Μια διεργασία εκτελεί fork(). Τι παθαίνουν οι εγγραφές του πίνακα σελίδων της; ii. Περιγράψτε ένα σενάριο όπου αμέσως μετά το fork() υπάρχουν ακόμη σελίδες με το bit WRITE αναμμένο στον πίνακα σελίδων της γονικής διεργασίας. Γιατί συμβαίνει αυτό; iii. Περιγράψτε ένα σενάριο όπου μια διεργασία έχει δικαίωμα εγγραφής σε μεταβλητή var χωρίς να είναι αναμμένο το bit WRITE στην αντίστοιχη εγγραφή του πίνακα σελίδων. iv. Υπάρχει περίπτωση μια διεργασία να έχει δικαίωμα εγγραφής σε μεταβλητή var και να μην έχει αναμμένο το bit WRITE στην αντίστοιχη εγγραφή του χάρτη μνήμης; Λειτουργικά Συστήματα - 7ο εξάμηνο 10 cslab@ntua Μαρ. 2014

11 v. Υπάρχει περίπτωση μια διεργασία να εκτελέσει open() σε αρχείο στο δίσκο και να μην πάει σε WAITING κατά την εκτέλεση κλήσεων read() από αυτόν τον περιγραφητή; vi. Υπάρχει περίπτωση μια διεργασία να πάει σε WAITING χωρίς να δεχτεί κάποιο σήμα και χωρίς να εκτελέσει κλήση συστήματος; i. Η διεργασία χάνει το δικαίωμα WRITE σε κάθε σελίδα. Ο σκοπός είναι να μπορούν οι διεργασίες να μοιράζονται πλαίσια φυσικής μνήμης, διατηρώντας όμως την ψευδαίσθηση ότι κάθε διεργασία έχει τον δικό της, ιδιωτικό χώρο μνήμης. Οπότε, δεν μπορεί πλέον η διεργασία να έχει απευθείας δικαίωμα εγγραφής στα κοινά πλαίσια, πρέπει να προκληθεί page fault και να το χειριστεί το ΛΣ, ώστε να της ανατεθεί ένα νέο, ιδιωτικό πλαίσιο στο οποίο θα έχει δικαίωμα WRITE. ii. Η γονική διεργασία έχει ρητά ζητήσει (π.χ. με mmap(..., MAP_SHARED,...)) περιοχές μοιραζόμενης μνήμης με τα παιδιά της. Οπότε, οι εγγραφές της στις αντίστοιχες σελίδες πρέπει να είναι ορατές από τις διεργασίες-παιδιά της, οπότε για αυτές τις σελίδες το bit WRITE μένει αναμμένο. iii. Είναι το κλασικό σενάριο CoW. Θα συμβεί page fault και το ΛΣ θα αναθέσει νέο πλαίσιο, αφού συμβουλευτεί τον χάρτη μνήμης. iv. Όχι. Το ΛΣ διατηρεί κάθε δικαίωμα πρόσβασης στον χάρτη μνήμης. Αν το bit WRITE δεν είναι αναμμένο, η διεργασία δεν έχει δικαίωμα εγγραφής και θα δεχτεί σήμα SIGSEGV (Segmentation fault). v. Ναι. Η ίδια ή άλλη διεργασία έχει ήδη διαβάσει τα συγκεκριμένα blocks του αρχείου, οπότε αυτά έχουν ήδη έρθει στην cache που τηρεί το λειτουργικό στη RAM, οπότε η διεργασία μένει RUNNING κι ο πυρήνας κάνει memcpy() τα δεδομένα από την cache στον userspace buffer. vi. Ναι. Στην περίπτωση page fault όπου πρέπει να έρθουν σελίδες από το δίσκο. β. (5%) Έστω κατάλογος /u ιδιοκτησίας user2 στον οποίο όλοι οι χρήστες έχουν δικαίωμα εγγραφής χωρίς περιορισμούς, αρχείο /u/prv1 που ανήκει στο χρήστη user1, και διεργασία με PID 1234 του user2. Οι δύο χρήστες εκτελούν κατά σειρά τις εξής εντολές, με επιτυχία: (χρήστης user1) chmod ugo=r /u/prv1: Όλοι οι χρήστες έχουν πρόσβαση μόνο για ανάγνωση (χρήστης user2) ln /u/prv1 /u/prv2: Δημιουργία νέου hard link prv2 στο prv1 Απαντήστε στα ακόλουθα, με σύντομη αιτιολόγηση: i. Τι θα γίνει αν η διεργασία 1234 καλέσει open("/u/prv1", O_WRONLY); ii. Τι θα γίνει αν η διεργασία 1234 καλέσει open("/u/prv2", O_RDONLY); iii. Τι δικαιώματα έχει ο user2 στο prv1 και στο prv2; iv. Τι θα γίνει αν ο user2 επιχειρήσει να εκτελέσει rm prv2; v. Τι θα γίνει αν ο user2 επιχειρήσει να εκτελέσει rm prv1; Για να απαντηθούν τα παρακάτω χρειάζεται να λάβουμε υπόψη ότι: Τα μεταδεδομένα ενός αρχείου (μέγεθος, ιδιοκτήτης, δικαιώματα πρόσβασης κλπ) τηρούνται στο i-node του. Τα ονόματα (hard links) που δείχνουν προς το συγκεκριμένο αρχείο τηρούνται στους αντίστοιχους καταλόγους. Δημιουργία νέου hard link προς υπάρχον i-node συνεπάγεται μόνο δημιουργία ονόματος, τα μεταδεδομένα του i-node δεν επηρεάζονται, εκτός από κάποιον reference counter που μετρά το πλήθος των links. Οπότε: i. Το /u/prv1 και το /u/prv2 είναι hard links στο ίδιο i-node άρα έχουν κοινό ιδιοκτήτη και κοινά permissions. Και τα δύο ανήκουν στον user1, με δικαίωμα μόνο ανάγνωσης για όλους. Άρα η συγκεκριμένη κλήση αποτυγχάνει, η open() επιστρέφει -1 και θέτει errno = EACCES (Access denied). Λειτουργικά Συστήματα - 7ο εξάμηνο 11 cslab@ntua Μαρ. 2014

12 ii. Η κλήση επιτυγχάνει κι επιστρέφει έναν περιγραφητή αρχείου. iii. Ακριβώς τα ίδια και στα δύο: Το αρχείο ανήκει στον user1 κι ο user2 έχει δικαίωμα μόνο για ανάγνωση. iv. Η εντολή rm εκτελεί την κλήση συστήματος unlink() για να διαγράψει το συγκεκριμένο όνομα. Η διαγραφή του ονόματος επηρεάζει τον κατάλογο, όχι το i-node. Από τη στιγμή που κάθε χρήστης έχει δικαίωμα εγγραφής στον /u, ο user2 θα μπορέσει να διαγράψει το όνομα του αρχείου στο οποίο δεν έχει δικαίωμα εγγραφής. Δείτε και ερώτηση 6.17 στο v. Ομοίως. Η διαγραφή του ονόματος θα ολοκληρωθεί. γ. (10%) Η διεργασία 1234 έχει ανοίξει το /u/prv2 και εκτελεί συνεχόμενες κλήσεις read() για να διαβάσει ευαίσθητα δεδομένα του user1 και να τα εμφανίσει στην οθόνη. O user1 επιθυμεί να σταματήσει την πρόσβαση της 1234 στο αρχείο. Ποιες από τις παρακάτω μεθόδους ή συνδυασμός τους θα δουλέψουν και γιατί; (5%) i. Εκτέλεση της εντολής chmod go-r prv1, ώστε να έχει αποκλειστική πρόσβαση στο prv1. ii. Εκτέλεση της εντολής chmod go-r prv2, ώστε να έχει αποκλειστική πρόσβαση στο prv2. iii. Εκτέλεση της εντολής kill iv. Διαγραφή των αρχείων prv1, prv2, με την εντολή rm prv1 prv2. Περιγράψτε τρόπο με τον οποίο ο user1 μπορεί σίγουρα να σταματήσει τις αναγνώσεις της (5%) Για να απαντηθούν τα παρακάτω, χρειάζεται να λάβουμε υπόψη ότι: Ο πυρήνας μελετά τα δικαιώματα ενός αρχείου κι αποφασίζει αν θα επιτρέψει ή όχι την πρόσβαση κατά την εκτέλεση της open(). Από τη στιγμή που μια διεργασία έχει έγκυρο περιγραφητή, έχει ανοιχτό αρχείο προς συγκεκριμένο i-node, αυτό δεν επηρεάζεται από αλλαγή των δικαιωμάτων του αρχείου στο δίσκο. Άρα κανείς συνδυασμός των προτεινόμενων ενεργειών δεν θα δουλέψει: i. Δεν θα επηρεάσει τη διεργασία Έχει ήδη ανοιχτό αρχείο. ii. Δεν θα επηρεάσει τη διεργασία Έχει ήδη ανοιχτό αρχείο. iii. Η διεργασία της εντολής kill εκτελείται με τα δικαιώματα του user1 και δεν έχει δικαίωμα να στείλει μήνυμα στην 1234 που ανήκει στον user2. iv. Η διαγραφή των ονομάτων θα επηρεάσει τον reference counter πάνω στο i-node, αλλά όχι το ανοιχτό αρχείο που διατηρεί η Όταν το ανοιχτό αρχείο κλείσει, το i-node θα απελευθερωθεί. Αυτό που σίγουρα θα δουλέψει, είναι ο user1 είναι να πετσοκόψει (truncate) το αρχείο, ανοίγοντάς το με open("/u/prv1", O_WRONLY O_TRUNC). Ουσιαστικά έχει πρόσβαση στο i-node μέσω υπάρχοντος ονόματος και μηδενίζει το μήκος του. Κάθε επόμενη read() της 1234 θα επιστρέφει EOF. Προαιρετικά, μπορεί προηγουμένως να αντιγράψει τα δεδομένα του αρχείου σε δικό του ιδιωτικό. Λειτουργικά Συστήματα - 7ο εξάμηνο 12 cslab@ntua Μαρ. 2014

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της

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

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

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

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

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

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

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

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

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

Εικονική Μνήμη (1/2)

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

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

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) σήματα (signals) Ανάγκη Ότι είδαμε

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes)

Προγραμματισμός συστημάτων UNIX/POSIX. Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Προγραμματισμός συστημάτων UNIX/POSIX Διαδιεργασιακή επικοινωνία: αγωγοί (IPC inter-process communication: pipes) Επικοινωνία μεταξύ διεργασιών γονέα-παιδιού Κατά κάποιο τρόπο, θα δημιουργήσουμε ένα τύπο

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις Υλικό από: Modern Operating Systems Laboratory Exercises, Shrivakan Mishra Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ FILE SYSTEM >_ ΔΙΚΑΙΩΜΑΤΑ >_ ΔΙΚΑΙΩΜΑΤΑ? >_ ΜΕΤΑΒΟΛΗ ΔΙΚΑΙΩΜΑΤΩΝ +- chmod

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

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος 2009-2010. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Είσοδος/Έξοδος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Είσοδος/Έξοδος Μέχρι τώρα όποτε θέλαμε να διαβάσουμε χρησιμοποιούσαμε πάντα

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

Διάλεξη 18η: Διαχείρηση Αρχείων

Διάλεξη 18η: Διαχείρηση Αρχείων Διάλεξη 18η: Διαχείρηση Αρχείων Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Αρχεία CS100, 2015-2016 1 / 24 Η βιβλιοθήκη Εισόδου/Εξόδου Στο stdioh

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

Προγραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals)

Προγραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals) Προγραμματισμός συστημάτων UNIX/POSIX Σήματα (signals) Σήματα (signals) Τα σήματα είναι «διακοπές» λογισμικού (software interrupts) οι οποίες διακόπτουν την κανονική λειτουργία μίας διεργασίας. Προκαλούνται

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128] ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2017 (27/1/2017) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

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

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

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

Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία

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

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

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

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

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

Α Β Γ static; printf(%c\n, putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf(*); ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Α Περιόδου 2016 (1/2/2016) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Εργαστήριο 5 fork(), exec(), signals

Εργαστήριο 5 fork(), exec(), signals Εργαστήριο 5 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων

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

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

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections)

Προγραμματισμός συστημάτων UNIX/POSIX. Ανακατευθύνσεις (redirections) Προγραμματισμός συστημάτων UNIX/POSIX Ανακατευθύνσεις (redirections) Shell & ανακατεύθυνση εισόδου Κατά την εκτέλεση ενός προγράμματος, η είσοδος και η έξοδος ενός προγράμματος μπορούν να ανακατευθυνθούν

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

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

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

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

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input). Κ24: Προγραμματισμός Συστήματος 2η Εργασία Εαρινό Εξάμηνο 2017 Προθεσμία Υποβολής: Κυριακή 30 Απριλίου 2017 Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία

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

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

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Προχωρημένα Θέματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ανακατεύθυνση Εισόδου/Εξόδου Συνήθως η τυπική είσοδος ενός προγράμματος (stdin) προέρχεται

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

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

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές

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

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες» 1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται

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

Εκφωνήσεις ασκήσεων εργαστηρίου 1

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

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

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Η πολυνηματική γλώσσα προγραμματισμού Cilk Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου Θέµα 1. (α') 2 - ii 3 - iii 4 - iv

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου Θέµα 1. (α') 2 - ii 3 - iii 4 - iv ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου 2011 Θέµα 1 (α') 1 - i 2 - ii 3 - iii 4 - iv 5 - v 6 - vi 7 - vii 8 - viii 9 - ix 10 - x Το αποτέλεσµα είναι η αντιστοιχία των

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

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

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

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

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15) (Κεφάλαιο 2.7 και 12) Αρχεία στην C (Διάλεξη 15) 14-1 Επανάληψη στην Αποθήκευση (Storage) Για να αποθηκεύσουμε δεδομένα από ένα πρόγραμμα, πρέπει να χρησιμοποιήσουμε την Δευτερεύουσα Μνήμη 14-2 Επανάληψη

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

Εργαστήριο 9: Αρχεία

Εργαστήριο 9: Αρχεία Εργαστήριο 9: Αρχεία Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Αρχεία, Είσοδος/Έξοδος από/προς αρχεία - Δυαδικά αρχεία - Παραδείγματα ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ.

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

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct)

Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Ι Αρχεία δεδομένων, μέρος δεύτερο: δυαδικά αρχεία ΙΙ Δομές δεδομένων (struct) Αρχεία Το γενικό πλαίσιο: data stream (ρεύμα δεδομένων). stdin, stdout, stderr data stream ως προς τα δεδομένα βάσει προσπέλασης

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή ΑΕΜ ΒΑΘΜΟΣ ΣΧΟΛΙΑ 00497 -Δεν ελέγχετε αν η createlist εκτελλέστικε σωστά και δεν τερµατίζετε το πρόγραµµα σε διαφορετική -Σωστά βρίσκετε το σηµείο στο οποίο πρέπει να προστεθεί ο κόµβος. -Σωστά τερµατίζετε

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

Διεργασίες και Νήματα (2/2)

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

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes) Προγραμματισμός συστημάτων UNIX/POSIX Διεργασίες (processes) Δομή αρχείου προγράμματος Πρόγραμμα (program) ονομάζεται το εκτελέσιμο αρχείο που βρίσκεται αποθηκευμένο στο δίσκο (π.χ. το a.out, ή το ls ή

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

Επεξεργασία Αρχείων Κειµένου

Επεξεργασία Αρχείων Κειµένου Επεξεργασία Αρχείων Κειµένου Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αρχεία Κειµένου Γενικά Συναρτήσεις Επεξεργασίας Αρχείων Κειµένου ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Αρχεία Γενικά

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

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

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

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

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

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

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

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

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Διαχείριση

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος 2001-2002 ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4 «Προγραμματισμός Η/Υ» - Τετράδιο Εργαστηρίου #4 2 Γενικά Στο Τετράδιο #4 του Εργαστηρίου θα αναφερθούμε σε θέματα διαχείρισης πινάκων

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

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

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II (Κεφάλαια 25.2, KNK-2ED) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

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

Μεθόδων Επίλυσης Προβλημάτων

Μεθόδων Επίλυσης Προβλημάτων ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 10 Αρχεία στην C Επανάληψη στην Αποθήκευση (Storage)

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

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

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

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

UNIX System Programming

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

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

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

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

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

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

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 3: Είσοδος / Έξοδος, Βασικοί Τύποι, Δήλωση Μεταβλητών Ένα Ακόμα Παράδειγμα #include int main(int argc, char* argv[]) { } putchar('h'); putchar('e'); putchar('l');

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

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

Λειτουργικά Συστήματα Δρ. Βασίλης Ταμπακάς Δρ. Ιωάννης Ε. Λιβιέρης Τμήμα Μηχανικών Πληροφορικής Τ.Ε Περιεχόμενα Περιεχόμενα... 1 1. Εισαγωγή, Θεωρητική Υποδομή Εργαστηριακής Άσκησης... 2 2. Εργαστηριακή υποδομή εργαστηριακής

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

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

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

Βιβλιοθήκη stdio. Προγραμματισμός II 1

Βιβλιοθήκη stdio. Προγραμματισμός II 1 Βιβλιοθήκη 1 lalis@inf.uth.gr Δεδομένα και ερμηνεία (ξανά) Τα δεδομένα στον Η/Υ έχουν δυαδική μορφή (bytes) Η ερμηνεία των bytes εξαρτάται από το πρόγραμμα που παράγει/καταναλώνει τα δεδομένα Μια δημοφιλής

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής Στο εργαστήριο αυτό θα δούμε πώς ορίζονται και πώς χρησιμοποιούνται οι συμβολοσειρές στην C. Επίσης, θα μελετήσουμε κάποιες από τις συναρτήσεις

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

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Π. Σταθοπούλου pstath@ece.upatras.gr ή pstath@upatras.gr Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7 Φροντιστήριο : ευτέρα 11πµ-12πµ ΗΛ4 ❶ Προετοιµασία για το 1 ο Εργαστήριο

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

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

Α. 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) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................

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

Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία

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

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

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μεταβλητές,

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

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

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

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

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

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

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

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

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Συναρτήσεις Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Συναρτήσεις Ως τώρα γράφαμε όλα τα προγράμματα μας μέσα στην main..1

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

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο

ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο ΕΠΕΞΕΡΓΑΣΙΑ ΑΡΧΕΙΩΝ Λέµε αρχείο (File) τη συστηµατική συγκέντρωση δεδοµένων. Τα περισσότερα προγράµµατα στη γλώσσα C, τα οποία διαπραγµατεύονται είσοδο, αποθήκευση και επεξεργασία δεδοµένων χρησιµοποιούν

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

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

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

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

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

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

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

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 4: Δείκτες και Πίνακες Στην ενότητα αυτή θα μελετηθούν τα εξής θέματα: Πίνακες Δεικτών, Παραδείγματα, Πολυδιάστατοι πίνακες Πέρασμα παραμέτρων σε προγράμματα C Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες:

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

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

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος

Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο Καθηγητής Δ. Γουνόπουλος Πληροφορική & Τηλεπικοινωνίες Υλοποίηση Συστημάτων Βάσεων Δεδομένων - Χειμερινό Εξάμηνο 2016 2017 Καθηγητής Δ. Γουνόπουλος Άσκηση 1 - Προθεσμία: 9 Δεκ. 2016 Σκοπός της εργασίας αυτής είναι η κατανόηση

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

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

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

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος

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

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ. Αρχεία και Μεταδεδομένα

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΣΗΜΕΙΩΣΕΙΣ. Αρχεία και Μεταδεδομένα ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΑΘΗΜΑ: ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Αρχεία και Μεταδεδομένα ΣΗΜΕΙΩΣΕΙΣ Κάθε αρχείο χαρακτηρίζεται και αναφέρεται από ένα αριθμό

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου

Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου 1 Εισαγωγή στο περιβάλλον προγραμματισμού του εργαστηρίου Λειτουργικά Συστήματα 7ο εξάμηνο ΣΗΜΜΥ ακ έτος 2015-2016 http://wwwcslabecentuagr/courses/os CSLab National Technical University of Athens Εργαστήριο

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