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

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

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

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις Το παρόν περιγράφει πλήρη λύση τον θεμάτων, με σύντομες απαντήσεις. Για να βοηθήσει στην καλύτερη κατανόηση των απαντήσεων, προσφέρει αναλυτική επεξήγησή τους, η οποία δεν ήταν απαραίτητη για να θεωρείται τέλεια η λύση. Θέμα 1 (25%) Δίνεται το πρόγραμμα C σε περιβάλλον UNIX που ακολουθεί μετά τα ζητούμενα. Θεωρήστε ότι οι κλήσεις συστήματος δεν αποτυγχάνουν, η Fn() δεν επιστρέφει ποτέ, η Fn() δεν εκτελεί κλήσεις συστήματος, όταν μια διεργασία δημιουργείται κληρονομεί ακριβώς τον τρόπο χειρισμού σημάτων του πατέρα της και τέλος ότι οι κλήσεις συστήματος διακόπτονται από εισερχόμενα σήματα. Δεδομένου ότι η Fn() δεν επιστρέφει ποτέ, οι διεργασίες που δημιουργεί το πρόγραμμα έρχονται σε μόνιμη κατάσταση: το δέντρο διεργασιών μένει σταθερό για πάντα και κάθε διεργασία εκτελεί συγκεκριμένη συνάρτηση ή κλήση συστήματος. α. (5%) Απαντήστε συνοπτικά, όχι πάνω από δύο γραμμές, στα ακόλουθα: i. Τι κάνει η κλήση συστήματος pipe() στο UNIX; Πόσες και τι τύπου τιμές δίνει στο πρόγραμμα που την καλεί; Με ποιον τρόπο επιστρέφει αυτές τις τιμές και πού τις γράφει; ii. Τι παθαίνει μια διεργασία που καλεί την read() σε άδειο pipe όταν είναι ανοιχτό το άκρο εγγραφής; iii. Τι επιστρέφει η read() σε κάποιον που διαβάζει από άδειο pipe όταν κανείς δεν έχει πλέον ανοιχτό το άκρο εγγραφής; iv. Τι επιστρέφουν οι κλήσεις getpid(), getppid() στο UNIX; Υπάρχει περίπτωση οι τιμές που επιστρέφουν να αλλάξουν για την ίδια διεργασία κατά τη διάρκεια της ζωής της; i. Κατασκευάζει ένα νέο pipe στο χώρο πυρήνα. Επιστρέφει δύο περιγραφητές αρχείων, που είναι μη μηδενικοί ακέραιοι: έναν περιγραφητή για το άκρο ανάγνωσης, έναν για το άκρο εγγραφής. Τους γράφει σε δύο συνεχόμενες θέσεις μνήμης, ξεκινώντας από τον δείκτη p που δέχεται ως όρισμα, ώστε να είναι προσβάσιμοι ως p[0], p[1], αντίστοιχα. Λειτουργικά Συστήματα - 7ο εξάμηνο 1 cslab@ntua Μαρ. 2012

2 ii. Μπλοκάρει μέχρι να γράψει κάποιος, ή να καταρρεύσει το άκρο εγγραφής. iii. Επιστρέφει τιμή 0, δηλώνοντας κατάσταση EOF. iv. Επιστρέφουν το PID της ίδιας της διεργασίας και της γονικής της, αντίστοιχα. Η επιστροφή της getpid() δεν αλλάζει ποτέ, η επιστροφή της getppid() μπορεί να αλλάξει αν ο γονέας μιας διεργασίας πεθάνει κι αυτή υιοθετηθεί από την init. β. (12%) Για την τελική κατάσταση των διεργασιών του προγράμματος: σχεδιάστε το δέντρο διεργασιών τότε. Εξηγήστε συνοπτικά πώς προκύπτει. γ. (4%) Για κάθε κόμβο του δέντρου, γράψτε: (i) την κλήση συστήματος ή συνάρτηση μέσα στην οποία βρίσκεται ο PC της αντίστοιχης διεργασίας, (ii) τα ορίσματα με τα οποία αυτή έχει κληθεί, (iii) τη γραμμή του προγράμματος απ όπου έγινε η κλήση της. Για τα ορίσματα, κάντε οποιαδήποτε υπόθεση χρειάζεστε για νούμερα που δεν γνωρίζετε, π.χ. PIDs που ανατίθενται από το σύστημα στις νέες διεργασίες. δ. (4%) Συμπληρώστε το δέντρο διεργασιών ώστε να φαίνεται η διαδιεργασιακή επικοινωνία: για κάθε μεταφορά δεδομένων ή αποστολή σήματος που συνέβη, σχεδιάστε ένα διακεκομμένο βέλος από τη διεργασία-αποστολέα στη διεργασία-παραλήπτη. Πάνω στο βέλος γράψτε την τιμή που μεταφέρεται κάθε φορά. 1 void handler(int signum) 2 Fn(0, -1); 3 4 int main(void) 5 6 int i, p[2], writefd[4]; 7 pid_t pid[4]; 8 9 signal(sigusr1, handler); for (i = 0; i < 4; i++) 12 pipe(p); 13 pid[i] = fork(); 14 if (pid[i] == 0) 15 close(p[1]); 16 read(p[0], &pid[i], sizeof(pid_t)); 17 if (pid[i] > 0) kill(pid[i], SIGUSR1); 18 Fn(i, pid[i]); close(p[0]); 21 writefd[i] = p[1]; write(writefd[1], &pid[0], sizeof(pid_t)); 25 close(writefd[3]); 26 wait(null); 27 write(writefd[2], &pid[1], sizeof(pid_t)); 28 Fn(-1, -2); 29 return 0; 30 Λειτουργικά Συστήματα - 7ο εξάμηνο 2 cslab@ntua Μαρ. 2012

3 Το δέντρο διεργασιών στην τελική κατάσταση φαίνεται στο ακόλουθο σχήμα. 2: Fn(0, 1) 26: wait(null) 18: Fn(1, 1234) 16: read(p[0],...)) 18: Fn(3, 0) Ο πατέρας κατασκευάζει 4 παιδιά, ένα pipe για το κάθε παιδί. Κρατάει ανοιχτά μόνο τα άκρα εγγραφής, στον πίνακα writefd[]. Κάθε παιδί μπλοκάρει, μέχρι να διαβάσει ένα PID από το αντίστοιχο pipe, στο οποίο στέλνει SIGUSR1. O πατέρας ζητά από το παιδί 1 να σκοτώσει το 0, το 2 μένει για πάντα μπλοκαρισμένο, και το 3 ξεμπλοκάρει γιατί ο πατέρας κλείνει το άκρο εγγραφής και δεν μπορεί κανείς πια να γράψει στο pipe. Διαδιεργασιακή επικοινωνία: Ο πατέρας στέλνει το pid του 0, έστω 1234 στο παιδί 1, το 1 σκοτώνει το 0. Επεξήγηση της απάντησης: Αρχικά (γραμμή 9) κανονίζεται κάθε φορά που παραλαμβάνεται σήμα SIGURG να εκτελείται η συνάρτηση χειρισμού handler. Η αρχική διεργασία εκτελεί 4 fork(), δημιουργώντας ισάριθμες διεργασίες-παιδιά (γραμμή 13, μέσα στο for loop, γραμμή 11). Πριν από κάθε δημιουργία παιδιού κατασκευάζει ένα νέο pipe με άκρα ανάγνωσης/εγγραφής τα p[0], p[1], αντίστοιχα. Μετά από κάθε fork() ο πατέρας κλείνει το άκρο ανάγνωσης και κρατά το άκρο εγγραφής στην αντίστοιχη θέση πίνακα writefd[]. Επίσης, κρατά το PID του νέου παιδιού σε αντίστοιχη θέση του πίνακα pid[]. Τελικά, μετά το loop (γραμμή 23) οι πίνακες pid[], writefd[] περιέχουν τα PIDs των παιδιών και τους περιγραφητές για τα άκρα εγγραφής των pipes, αντίστοιχα. Κάθε νέο παιδί, αφού κλείσει το άκρο εγγραφής του αντίστοιχου pipe, μπλοκάρει με read() στο άκρο ανάγνωσης ζητώντας να διαβάζει στην αντίστοιχη θέση του πίνακα pid[] τόσα bytes όσο ο τύπος pid_t. Αυτή η ενέργεια δεν επηρεάζει καθόλου τον πατέρα, αφού δεν μοιράζονται μνήμη. Επιπλέον, η αρχική τιμή της θέσης pid[i] είναι μηδέν, αφού η fork() στο παιδί επιστρέφει 0. O πατέρας περνά στο παιδί 1 το PID του παιδιού 0 (έστω 1234) στη γραμμή 24. Στη συνέχεια κλείνει τον περιγραφητή writefd[3], οπότε το άκρο εγγραφής του pipe 3 καταρρέει. Τέλος, μπλοκάρει για πάντα στη wait() (γραμμή 26), γιατί κανένα παιδί δεν πεθαίνει μέχρι να φτάσει το σύστημα σε μόνιμη κατάσταση. Το παιδί 1 ξυπνά, στέλνει SIGUSR1 στο παιδί 0 (γραμμή 17) και μπλοκάρει για πάντα σε κλήση της Fn(1, 1234). Το παιδί 0 ήταν μπλοκαρισμένο στη γραμμή 16. Με την παραλαβή του SIGUSR1 εκτελεί τον handler() και μπλοκάρει για πάντα στην Fn(), γραμμή 2. Το παιδί 3 ξυπνά, γιατί η read() στη γραμμή 1 επιστρέφει EOF, αφού κανείς δεν μπορεί πια να γράψει στο άδειο pipe 3. Η τιμή pid[3] έχει παραμείνει 0, οπότε μπλοκάρει σε κλήση Fn(3, 0), γραμμή 18. Τέλος, το παιδί 2 δεν έχει κανέναν να το ξυπνήσει ποτέ, και μένει για πάντα στη read(). Η μόνη διαδιεργασιακή επικοινωνία που ολοκληρώνεται είναι η μεταφορά του PID του παιδιού 0, έστω 1234 από την αρχική διεργασία στο παιδί 1, και η αποστολή του σήματος SIGUSR1 από το παιδί 1 στο παιδί 0. Θέμα 2 (25%) α. (10%) Σε ένα γραφείο μπορούν να βρίσκονται είτε οι εργαζόμενοι που δουλεύουν εκεί, είτε η καθαρίστρια που επιμελείται το χώρο. Οι εργαζόμενοι εργάζονται μέσα στο χώρο (work_for_a_while()) και κάνουν περιοδικά διάλειμμα στην αυλή (take_a_break()). Η καθαρίστρια δεν μπαίνει ποτέ στο Λειτουργικά Συστήματα - 7ο εξάμηνο 3 cslab@ntua Μαρ. 2012

4 γραφείο όσο υπάρχουν υπάλληλοι εκεί αντίστοιχα, οι εργαζόμενοι δεν μπαίνουν στο γραφείο όσο η καθαρίστρια καθαρίζει. Οι εργαζόμενοι αναπαρίστανται από διεργασίες που εκτελούν τη διαδικασία worker(), η καθαρίστρια αναπαρίσταται από διεργασία που εκτελεί τη διαδικασία cleaner(). void worker()... work_for_a_while();... void cleaner()... clean_the_room();... Στα σημεία που υποδηλώνονται με... ζητείται να υλοποιήσετε σχήμα συγχρονισμού ώστε να εξασφαλίζεται ο τρόπος εργασίας που περιγράφηκε. Μπορείτε να χρησιμοποιήσετε κλήσεις signal() και wait() σε κατάλληλα αρχικοποιημένους σημαφόρους κι όποιες μεταβλητές μοιραζόμενες ανάμεσα στις διεργασίες χρειάζεστε. Στη λύση που δώσατε, υπάρχει ενδεχόμενο λιμοκτονίας; Σχολιάστε. Η κατάσταση που περιγράφεται είναι ισοδύναμη με το γνωστό πρόβλημα συγχρονισμού αναγνωστών και εγγραφέων. mutex = semaphore(1); empty = semaphore(1); int worker_count = 0; void worker() void cleaner() wait(mutex); worker_count++; if (worker_count == 1) wait(empty); signal(mutex); work_for_a_while(); wait(empty); clean_the_room(); signal(empty); wait(mutex); worker_count--; if (worker_count == 0) signal(empty); signal(mutex); Η λύση αυτή ενέχει τον κίνδυνο να λιμοκτονήσει η καθαρίστρια περιμένοντας να αδειάσει ο χώρος εργασίας, αν συνεχώς καταφτάνουν νέοι εργαζόμενοι. β. (5%) Το γραφείο του προηγούμενου ερωτήματος διαθέτει ακριβώς N θέσεις εργασίας. Τροποποιήστε το σχήμα συγχρονισμού του προηγούμενου ερωτήματος, ώστε το πολύ N εργαζόμενοι να μπορούν να βρίσκονται μέσα στο χώρο εργασίας, να εκτελούν δηλαδή την work_for_a_while() ταυτόχρονα. Λειτουργικά Συστήματα - 7ο εξάμηνο 4 cslab@ntua Μαρ. 2012

5 Θα χρησιμοποιήσουμε έναν επιπλέον σημαφόρο (available_desks), αρχικοποιημένο στην τιμή N, ο οποίος θα καταγράφει των αριθμό των ελεύθερων θέσεων εργασίας στο χώρο: mutex = semaphore(1); empty_room = semaphore(1); available_desks = semaphore(n); int worker_count = 0; void worker() void cleaner() wait(mutex); worker_count++; if (worker_count == 1) wait(empty_room); signal(mutex); wait(available_desks); work_for_a_while(); signal(available_desks); wait(empty_room); clean_the_room(); signal(empty_room); wait(mutex); worker_count--; if (worker_count == 0) signal(empty_room); signal(mutex); γ. (10%) Επειδή οι ανάγκες καθαρισμού αυξήθηκαν, προσλαμβάνονται περισσότερες καθαρίστριες, οι οποίες μπορούν να εργάζονται ταυτόχρονα στον ίδιο χώρο. Και πάλι, μόνο όταν δεν υπάρχουν εργαζόμενοι εκεί. Τροποποιήστε κατάλληλα το σχήμα συγχρονισμού του προηγούμενου ερωτήματος, ώστε στο χώρο να μπορούν να βρίσκονται ταυτόχρονα είτε το πολύ N εργαζόμενοι είτε το πολύ M καθαρίστριες. Χρησιμοποιούμε έναν επιπλέον σημαφόρο (available_brooms) για να καταγράφουμε τον αριθμό των διαθέσιμων σκουπών για χρήση από τις καθαρίστριες. Ο κώδικας της διαδικασίας cleaner() είναι πλέον συμμετρικός με τον κώδικα της διαδικασίας worker(): mutex1 = semaphore(1); mutex2 = semaphore(1); empty_room = semaphore(1); available_desks = semaphore(n); available_brooms = semaphore(m); int worker_count = 0; int cleaner_count = 0; Λειτουργικά Συστήματα - 7ο εξάμηνο 5 cslab@ntua Μαρ. 2012

6 void worker() wait(mutex1); worker_count++; if (worker_count == 1) wait(empty_room); signal(mutex1); void cleaner() wait(mutex2); cleaner_count++; if (cleaner_count == 1) wait(empty_room); signal(mutex2); wait(available_desks); work_for_a_while(); signal(available_desks); wait(available_brooms); clean_the_room(); signal(available_brooms); wait(mutex1); worker_count--; if (worker_count == 0) signal(empty_room); signal(mutex1); wait(mutex2); cleaner_count--; if (cleaner_count == 0) signal(empty_room); signal(mutex2); Θέμα 3 (25%) α. (5%) Σχεδιάστε ενδεικτικό διάγραμμα καταστάσεων διεργασίας, με τουλάχιστον τις καταστάσεις RUNNING, WAITING, READY, TERMINATED. Ένα ενδεικτικό διάγραμμα καταστάσεων διεργασίας παρουσιάζεται στο ακόλουθο σχήμα. NEW READY RUNNING TERMINATED WAITING β. (5%) Αναφέρετε μια αιτία για κάθε μετάβαση. NEW READY: αποδοχή της διεργασίας για εκτέλεση στο σύστημα. READY RUNNING: επιλογή από τον χρονοδρομολογητή για εκτέλεση στη CPU, context switch σε αυτή τη διεργασία. RUNNING READY: εκπνοή του κβάντου χρόνου διεργασίας, διακοπή της και επαναφορά της στην ουρά έτοιμων διεργασιών. RUNNING WAITING: πραγματοποίηση κλήσης συστήματος που μπλοκάρει, π.χ. Ε/Ε από το δίσκο, ή εκτέλεση κλήσης sleep(). WAITING READY: ολοκλήρωση διαδικασίας Ε/Ε, π.χ. ολοκλήρωση ανάγνωσης μπλοκ από το δίσκο στην κύρια μνήμη. Ο δίσκος προκαλεί διακοπή υλικού, κι η διεργασία που περίμενε τα δεδομένα μεταβαίνει από WAITING σε READY. Λειτουργικά Συστήματα - 7ο εξάμηνο 6 cslab@ntua Μαρ. 2012

7 RUNNING TERMINATED: κλήση της exit() από την τρέχουσα διεργασία. Στο UNIX η κατάσταση TERMINATED αντιστοιχεί σε διεργασία zombie που παραμένει στον πίνακα διεργασιών μέχρι ο πατέρας της να κάνει wait(). γ. (5%) Σε ποιες μεταβάσεις λαμβάνεται απόφαση χρονοδρομολόγησης από το ΛΣ; Πού διαφέρει ένας διακοπτός (preemptive) από ένα μη-διακοπτό/συνεργατικό (non-preemptive/ cooperative) αλγόριθμο χρονοδρομολόγησης σε σχέση με το πότε παίρνονται αποφάσεις χρονοδρομολόγησης; Σχολιάστε τη συμπεριφορά τους όταν συμβαίνουν διακοπές λογισμικού και υλικού (so ware και hardware interrupts). Μη-διακοπτός: μόνο σε RUNNING WAITING ή RUNNING TERMINATED. Διακοπτός: και σε μεταβάσεις RUNNING READY, WAITING READY. Ο μη-διακοπτός αποφασίζει μόνο όταν συμβεί so ware interrupt (system call ή άλλο trap), ο διακοπτός αποφασίζει κι όταν συμβεί hardware interrupt (π.χ. από τον timer ή τον δίσκο). Επεξήγηση της απάντησης: Γενικά, μπορεί να λαμβάνεται απόφαση σε οποιαδήποτε από τις μεταβάσεις RUNNING WAITING, RUNNING READY, WAITING READY, RUNNING TERMINATED. Ένας μη-διακοπτός (non-preemptive/cooperative) χρονοδρομολογητής δίνει τη CPU σε μια διεργασία μέχρι εκείνη να θελήσει να την απελευθερώσει, είτε να εκτελέσει δηλαδή μια κλήση συστήματος που μπλοκάρει, είτε να τερματίσει. Αυτό σημαίνει ότι λαμβάνει απόφαση χρονοδρομολόγησης μόνο στις μεταβάσεις RUNNING WAITING, RUNNING TERMINATED. Οι μεταβάσεις αυτές αντιστοιχούν σε διακοπές λογισμικού: η τρέχουσα διεργασία προκαλεί trap για κλήση συστήματος, ή page fault. Ένας διακοπτός (preemptive) χρονοδρομολογητής ενεργοποιείται και στις μεταβάσεις RUNNING READY, WAITING READY. Οι μεταβάσεις αυτές αντιστοιχούν σε διακοπές υλικού, από εξωτερικούς παράγοντες: ο χρονιστής διακόπτει τη CPU γιατί το κβάντο χρόνου τελείωσε, ή ο δίσκος διακόπτει τη CPU γιατί μια μεταφορά ολοκληρώθηκε, αντίστοιχα. Στην περίπτωση αυτή, η διακοπή υλικού μπορεί να οδηγήσει σε αλλαγή της τρέχουσας διεργασίας, ακόμη κι αν εκείνη δεν ήταν διατεθειμένη να αφήσει εκείνη τη στιγμή τη CPU. δ. (5%) Αναφέρετε ένα πλεονέκτημα κι ένα μειονέκτημα για κάθε μία από τις δύο στρατηγικές (διακοπτή χρονοδρομολόγηση ή μη-διακοπτή). Ποια από τις δύο θα διαλέγατε για ένα ΛΣ με γραφικό περιβάλλον που εκτελεί εφαρμογές που έχουν συχνή αλληλεπίδραση με το χρήστη; Mη-διακοπτή χρονοδρομολόγηση: απλούστερη στην υλοποίηση, χωρίς ειδικό υλικό (χρονιστής), πρόβλημα αν μία διεργασία μονοπωλεί τη CPU. Διακοπτή: εξασφαλισμένη κατανομή χρόνου, πιο πολύπλοκη στην υλοποίηση, ανάγκη συγχρονισμού για πρόσβαση σε κοινά δεδομένα. Θα επιλέγαμε διακοπτή χρονοδρομολόγηση για καλύτερη αποκρισιμότητα του συστήματος. Επεξήγηση της απάντησης: Η μη-διακοπτή/συνεργατική χρονοδρομολόγηση είναι απλούστερη στην υλοποίηση και δεν απαιτεί ειδικό υλικό (χρονιστή), ωστόσο μια κακογραμμένη ή κακόβουλη διεργασία μπορεί να μονοπωλεί τη CPU και να καταστρέψει την αποκρισιμότητα του συστήματος, μην επιτρέποντας σε άλλες να εκτελεστούν. Η διακοπτή χρονοδρομολόγηση επιβάλλει το μηχανισμό χρονοδρομολόγησης σε κάθε περίπτωση, αλλά είναι περισσότερο πολύπλοκη στην υλοποίηση και εισάγει κόστος λόγω της ανάγκης συγχρονισμού της πρόσβασης σε κοινά δεδομένα. Στην περίπτωση που περιγράφεται ταιριάζει διακοπτή στρατηγική χρονοδρομολόγησης, ώστε να εξασφαλιστεί ότι το σύστημα θα έχει προβλέψιμο χρόνο απόκρισης στις ενέργειες του χρήστη κι αυτός θα απολαμβάνει καλή υπηρεσία. ε. (5%) Δουλεύετε στον editor vi σε μονοεπεξεργαστικό σύστημα UNIX, ενώ μεταγλωττίζετε μεγάλο πρόγραμμα. Πιέζετε ένα πλήκτρο. Η ενέργειά σας αυτή μπορεί να προκαλέσει context switch Λειτουργικά Συστήματα - 7ο εξάμηνο 7 cslab@ntua Μαρ. 2012

8 όταν το ΛΣ χρησιμοποιεί (i) διακοπτό (ii) μη-διακοπτό αλγόριθμο χρονοδρομολόγησης; Αν ναι, περιγράψτε με βήματα τι συμβαίνει στο σύστημα και καταλήγει σε context switch. Πατάμε το πλήκτρο, γίνεται διακοπή υλικού, ξεκινά ο interrupt handler, ο vi γίνεται READY. Σε διακοπτή χρονοδρομολόγηση μπορεί να σταματήσει η τρέχουσα διεργασία (έστω ο μεταγλωττιστής) και να γίνει context switch στο vi. Σε μη-διακοπτή θα γίνει context switch αργότερα, μόνο όταν ο μεταγλωττιστής μπλοκάρει ή τερματίσει. Επεξήγηση της απάντησης: Υποθέτουμε ότι ο μεταγλωττιστής είναι η τρέχουσα διεργασία όταν πιέζουμε ένα πλήκτρο. Το πληκτρολόγιο προκαλεί διακοπή υλικού, η οποία εξυπηρετείται από κώδικα πυρήνα του ΛΣ και προκαλεί μετάβαση WAITING READY για τη διεργασία του vi. Στην περίπτωση μη-διακοπτής χρονοδρομολόγησης δεν λαμβάνεται εδώ απόφαση χρονοδρομολόγησης, κι η τρέχουσα διεργασία συνεχίζει να εκτελείται ανεπηρέαστη. Όταν εκτελέσει μια κλήση συστήματος που μπλοκάρει, π.χ. χρειαστεί δεδομένα από το δίσκο, οπότε θα έχουμε μετάβαση RUNNING WAITING, τότε θα επιλεγεί μια νέα διεργασία από όσες είναι READY προς εκτέλεση. Υποθέτουμε ότι θα είναι ο vi, οπότε θα γίνει context switch προς αυτόν. Αν έχουμε διακοπτή χρονοδρομολόγηση, με το που ο vi περάσει σε READY θα ληφθεί απόφαση χρονοδρομολόγησης, οπότε μπορεί να γίνει άμεσα context switch από τη διεργασία του μεταγλωττιστή προς αυτόν. Θέμα 4 (25%) α. (15%) Μια διεργασία εκτελεί το ακόλουθο τμήμα κώδικα σε σύστημα UNIΧ εικονικής μνήμης με σελιδοποίηση. Θεωρήστε ότι οι σελίδες που περιέχουν τον κώδικά της και τις μεταβλητές i, n, sum, len, total, είναι πάντοτε στη φυσική μνήμη. Καμία κλήση δεν αποτυγχάνει. Υπάρχουν κι άλλες διεργασίες στο σύστημα κι ο αλγόριθμος χρονοδρομολόγησης είναι RR. Το σύστημα έχει 16GB φυσικής μνήμης. 1 long i, n, sum, len, total = 1024 * ; 2 char *p, *buf = malloc(total); 3 4 fd = open("a_file_larger_than_1gb", O_RDONLY); 5 p = buf; len = total; 6 while (len > 0) /* 1GB total */ 7 n = read(fd, p, ); /* 1MB */ 8 p += n; len -= n; for (sum = 0, i = 0; i < total; i++) sum += i; 12 sleep(60); 13 for (i = 0; i < total; i++) buf[i]++; Απαντήστε συνοπτικά, όχι πάνω από δύο-τρεις γραμμές, στις παρακάτω ερωτήσεις για τη συμπεριφορά της διεργασίας. Κάντε όποιες ρεαλιστικές υποθέσεις χρειάζεστε, αρκεί να τις καταγράψετε. Σε κάθε περίπτωση δικαιολογήστε θετική απάντησή σας με αντίστοιχο σενάριο/παράδειγμα. i. Ποιες κλήσεις συστήματος εκτελεί η διεργασία στις γραμμές 4 9; Γίνεται να υποστεί μετάβαση RUNNING WAITING κατά την εκτέλεσή τους; ii. Γίνεται να μην πάει σε WAITING καθ όλη την εκτέλεση των 4 9; iii. Γίνεται να μην παραμείνει RUNNING καθ όλη την εκτέλεση της 11; iv. Γίνεται να παραμείνει RUNNING κατά την εκτέλεση της 12; Λειτουργικά Συστήματα - 7ο εξάμηνο 8 cslab@ntua Μαρ. 2012

9 v. Ποιες κλήσεις συστήματος εκτελεί στη γραμμή 13; Ποιες είναι όλες οι δυνατές μεταβάσεις κατά την εκτέλεση της 13; Είναι δυνατή μετάβαση RUNNING WAITING; Γιατί; Θεωρήστε καταστάσεις RUNNING, WAITING, READY, TERMINATED. i. Εκτελεί κλήσεις open() και read(). Ναι, αν πρέπει το ΛΣ να ζητήσει να έρθουν δεδομένα από το δίσκο. Μέχρι να έρθουν, θα είναι WAITING. ii. Ναι, αν ό,τι χρειάζεται από το δίσκο είναι στην block/page cache που τηρεί το ΛΣ στη RAM. iii. Ναι, γιατί έχουμε διακοπτή χρονοδρομολόγηση (Round-Robin) και μπορεί να πάει σε READY, όταν εκπνεύσει το κβάντο χρόνου. iv. Αποκλείεται, η sleep() μπλοκάρει. v. Καμία. Μπορεί να πάει RUNNING READY, READY RUNNING, RUNNING WAITING, WAITING READY, αν εκπνεύσει το κβάντο χρόνου ή κάνει page fault κατά την πρόσβαση στον buf[]. Επεξήγηση των απάντησεων: i. Εκτελεί τις κλήσεις συστήματος open() και read(). Ναι, είναι πολύ πιθανό να υποστεί μετάβαση RUNNING WAITING, γιατί π.χ, το ΛΣ χρειάζεται να φέρει από το δίσκο καταλόγους του συστήματος αρχείων για να ολοκληρώσει το open(), ή να φέρει μπλοκ με τα περιεχόμενα του αρχείου, για να ολοκληρώσει αιτήσεις read(). Στην περίπτωση αυτή, η διεργασία είναι WAITING για όσο διαρκεί η λειτουργία Ε/Ε. ii. Ναι, μπορεί να μην πάει ποτέ σε WAITING. Το ΛΣ αποθηκεύει προσωρινά σε κρυφή μνήμη στη RAM (block/page cache) δεδομένα του δίσκου, ώστε να αποφεύγει συχνές λειτουργίες Ε/Ε. Επειδή το σύστημα έχει πολλή φυσική μνήμη (16GB), είναι πιθανό, ειδικά αν δεν είναι η πρώτη φορά που τρέχει αυτό το πρόγραμμα, το 1GB δεδομένων που χρειάζεται να είναι ήδη στην cache. iii. Παρόλο που δεν εκτελεί καμία κλήση συστήματος, ούτε υπάρχει περίπτωση να υποστεί page fault, αφού θεωρούμε ότι όλες οι σελίδες που ακουμπά στη γραμμή 11 είναι στη φυσική μνήμη, δεν είναι σίγουρο ότι θα παραμείνει RUNNING καθ όλη την εκτέλεσή της. Αφού έχουμε χρονοδρομολόγηση RR μαζί με άλλες διεργασίες, αν η CPU έχει ρολόι της τάξης των GHz είναι σίγουρο ότι η εκτέλεση της 11 θα πάρει χρόνο της τάξης του sec, κάποια κβάντα χρόνου. Οπότε η διεργασία θα υποστεί μεταβάσεις RUNNING READY RUNNING. iv. Αποκλείται. Κλήση της sleep() συνεπάγεται μετάβαση σε WAITING. v. Δεν εκτελεί καμία κλήση συστήματος. Ωστόσο, επειδή (i) η εκτέλεση της 13 διαρκεί κάποια κβάντα χρόνου (ii) δεν είναι εξασφαλισμένο ότι όλες οι σελίδες για το 1GB στο οποίο δείχνει ο buf θα είναι στη φυσική μνήμη, μπορεί να συμβούν οι μεταβάσεις RUNNING READY, READY RUNNING, RUNNING WAITING, WAITING READY. Οι δύο πρώτες λόγω εκπνοής κβάντου χρόνου, οι δύο τελευταίες λόγω page fault και εκτέλεσης λειτουργίας Ε/Ε για την μεταφορά των απαιτούμενων σελίδων στην κύρια μνήμη. Λειτουργικά Συστήματα - 7ο εξάμηνο 9 cslab@ntua Μαρ. 2012

10 β. (10%) Σε ΛΣ με σελιδοποίηση κατ απαίτηση (demand paging), επιχειρούμε να τρέξουμε με λάθος παραμέτρους ένα πολύ μεγάλο εκτελέσιμο, της τάξης των 400MB. Όταν το εκτελέσιμο τρέξει, εκτυπώνει μήνυμα λάθους για τις παραμέτρους κι η διεργασία τερματίζει. Τα μπλοκ του δίσκου που το περιέχουν δεν έχουν προσπελαστεί ποτέ από την εκκίνηση του ΛΣ. Το ΛΣ δεν γνωρίζει τίποτε για την εσωτερική οργάνωση του κώδικα του εκτελέσιμου. Ο δίσκος υποστηρίζει ρυθμό μεταφοράς 20MB/s προς την κύρια μνήμη. i. Πόσο χρόνο τουλάχιστον θα χρειαζόταν η ανάγνωση του εκτελέσιμου από το δίσκο στην κύρια μνήμη; ii. Περιγράψτε μηχανισμό του ΛΣ με τον οποίο μια διεργασία μπορεί να προσπελάσει δεδομένα αρχείου στο δίσκο, χωρίς την εκτέλεση κλήσεων συστήματος read()/write(). iii. Περιγράψτε σενάριο όπου το εκτελέσιμο τρέχει, παράγει το μήνυμα λάθους και τερματίζει, σε πολύ λιγότερο από μερικά δευτερόλεπτα. i. Τουλάχιστον t = 400MB 20MB/s = 20s. ii. Με απεικόνιση του αρχείου στην εικονική μνήμη, η διεργασία κάνει Ε/E με εντολές load/store του επεξεργαστή, χωρίς system call. Ζητάει απεικόνιση (με mmap()) και κάνει load ή store κάτι στην ανάλογη περιοχή της μνήμης. Τότε θα συμβεί page fault και το ΛΣ θα φέρει τη σελίδα που χρειάζεται στη μνήμη. iii. Όπως στο (ii), o φορτωτής απεικονίζει το εκτελέσιμο στη μνήμη, χωρίς καμία σελίδα του στη μνήμη. Με το που πάει ο PC στην πρώτη εντολή, θα γίνει page fault. Ενώ το πρόγραμμα τρέχει, θα έρθουν στη μνήμη μόνο οι λίγες, απαραίτητες σελίδες που χρειάζονται για να τυπωθεί το μήνυμα λάθους, οπότε μόνο ένα πολύ μικρό μέρος του προγράμματος θα έρθει από τον δίσκο. Επεξήγηση της απάντησης: i. O δίσκος μεταφέρει με 20MB/s, το αρχείο είναι 400MB, χρειάζεται τουλάχιστον t = 400MB 20MB/s = 20s. ii. Μια διεργασία μπορεί να χρησιμοποιήσει το μηχανισμό απεικόνισης (mapping) αρχείων στην εικονική μνήμη, ώστε να έχει πρόσβαση στα δεδομένα τους μέσω εντολών load/store χωρίς την πραγματοποίηση κλήσεων συστήματος. Αρχικά χρειάζεται να εγκαταστήσει την απεικόνιση, ζητώντας από το ΛΣ με μια κλήση mmap() να τροποποιήσει κατάλληλα το χάρτη μνήμης της. Tο αρχείο απεικονίζεται σε συγκεκριμένη περιοχή εικονικής μνήμης, ξεκινώντας π.χ. από τη διεύθυνση vaddr. Ένα load στη διεύθυνση vaddr + offset προκαλεί page fault: ενεργοποιείται η ρουτίνα εξυπηρέτησης σφάλματος σελίδας του ΛΣ, η οποία αναθέτει ένα νέο πλαίσιο μνήμης στη διεργασία, το οποίο γεμίζει με τη σελίδα του αρχείου η οποία περιέχει το offset. Εφεξής, η διεργασία μπορεί να έχει πρόσβαση στο offset και τα δεδομένα που περιέχονται στην ίδια σελίδα χωρίς page fault. Αν θελήσει να κάνει load ή store σε σελίδα που αντιστοιχεί σε άλλο μέρος του αρχείου, γίνεται πάλι page fault κι η διαδικασία επαναλαμβάνεται. iii. Δεν χρειάζεται να φορτωθεί ολόκληρο το εκτελέσιμο στη μνήμη για να ξεκινήσει η εκτέλεση της διεργασίας. Η εκτέλεση μπορεί να ξεκινήσει έχοντας απεικονισμένο το εκτελέσιμο στη μνήμη, χωρίς ούτε μία σελίδα του να βρίσκεται στη φυσική μνήμη. Με το που τεθεί ο PC στο σημείο εκκίνησης του εκτελέσιμου, θα προκληθεί page fault και θα έρθει η πρώτη σελίδα του στη μνήμη. Αυτό θα γίνεται συνεχώς καθώς ο PC ακουμπά σελίδες που δεν έχουν ακόμη έγκυρη μετάφραση στον πίνακα σελίδων. Υποθέτοντας ότι το πρόγραμμα πολύ σύντομα θα Λειτουργικά Συστήματα - 7ο εξάμηνο 10 cslab@ntua Μαρ. 2012

11 τερματίσει, γιατί έχει κληθεί χωρίς τα σωστά ορίσματα, κι ότι για να γίνει αυτό ενεργοποιείται ένα πολύ μικρό μέρος του, καταλήγουμε ότι πολύ λίγες σελίδες θα χρειαστεί να έρθουν τελικά στη φυσική μνήμη. Ο συνολικός χρόνος μεταφοράς τους καθορίζει και το χρόνο εκτέλεσης του προγράμματος. Λειτουργικά Συστήματα - 7ο εξάμηνο 11 cslab@ntua Μαρ. 2012

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

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

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

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

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ 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 Θέμα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε: ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ Πρόβλημα 1: Το Πανεπιστήμιο Μακεδονίας, εφαρμόζοντας την αρχή της ισότητας μεταξύ των δύο φύλων μετέτρεψε τις τουαλέτες των φοιτητών σε κοινές τουαλέτες. Προς αποφυγή όμως παρεξηγήσεων

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

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

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

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

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

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

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

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

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

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

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

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

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7 ο Αλγόριθμοι Χρονοδρομολόγησης Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και την αξιολόγηση των αλγορίθμων χρονοδρομολόγησης, και θα παρουσιάσουμε τους κυριότερους. Θα μάθουμε:

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

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

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

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

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

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

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

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

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

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

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

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

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

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access) Μελετώντας το μάθημα θα μπορείς να ξέρεις τη λειτουργία του Polling να ξέρεις

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

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

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

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

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

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

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

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

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

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

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή

Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.

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

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

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

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

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

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

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση Εργαστηριακή Άσκηση Οι Αλγόριθμοι Χρονοπρογραμματισμού First Come First Serve (FCFS), Shortest Job First (SJF), Round Robin (RR), Priority Weighted (PRI) Επιμέλεια: Βασίλης Τσακανίκας Περιεχόμενα Αλγόριθμοι

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

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

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

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

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

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

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης 7.1 Ορισμός Στόχοι Αλγόριθμο χρονοδρομολόγησης (scheduling algorithm) ονομάζουμε την μεθοδολογία την οποία χρησιμοποιεί ο κάθε χρονοδρομολογητής (βραχυχρόνιος, μεσοχρόνιος

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο

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

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

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

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

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES) Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων

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

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty)

Σελίδα Φορτώθηκε Προσπελάστηκε Συχνότητα R Μ (dirty) Ιδεατή Μνήμη Άσκηση 1: Ένας υπολογιστής έχει τέσσερα πλαίσια σελίδων. Οι χρονικές στιγμές φόρτωσης, τελευταίας προσπέλασης, ο αριθμός αναφορών και τα bit αναφοράς (R) και μεταβολής (M ή dirty ) φαίνονται

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου ΣΥΣΤΗΜΑΤΑ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ Μάθημα Επιλογής Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου Δρ. Γεώργιος Κεραμίδας e-mail: gkeramidas@teimes.gr 1 Διεργασίες: Κατάσταση Εκτέλεσης (3-σταδίων) Κατάσταση

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

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια: Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται

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

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

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

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

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

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

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

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

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

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

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

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

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

Περιγραφή και Έλεγχος ιεργασιών

Περιγραφή και Έλεγχος ιεργασιών Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση

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

$./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 Εισαγωγή στην Εργασία: Ο στόχος της εργασίας αυτής είναι να εξοικειωθείτε με την δημιουργία

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 17: Χειρισμός Εισόδου - Εξόδου Συστήματα Εισόδου / Εξόδου: Το Υλικό Ε/Ε Μεγάλη ποικιλία συσκευών Ε/Ε Και μεγαλώνει Συνηθισμένες έννοιες: Πόρτα Δίαυλος Κοινό μέσο πρόσβασης

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

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC Αρχιτεκτονική Πλατφόρμας Μπορεί να μοντελοποιηθεί σαν ένα σύνολο από διασυνδεδεμένα κομμάτια: 1. Στοιχεία επεξεργασίας (processing

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο 2018-2019 Άσκηση 1 Φροντιστήριο: 05/10/2018 Παράδοση: 18/10/2018 Υλοποίηση Linux C Shell ΤΑ : shevtsov(shevtsov@csd.uoc.gr) Ώρες Γραφείου : Δευτέρα 14:00-16:00

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ

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

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

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

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

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

Λειτουργικά Συστήματα (ΗΥ321) Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 8: Σελιδοποίηση & Swapping Από τα Προηγούμενα 2 Φυσική μνήμη Έλλειψη προστασίας Περιορισμένο μέγεθος Συνεχείς ή κατά κανόνα συνεχείς περιοχές Διαμοίραση ορατή στα

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

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

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

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων. Έως τώρα σε ένα πρόγραμμα έχουμε μάθει να εισάγουμε δεδομένα από το πληκτρολόγιο χρησιμοποιώντας την συνάρτηση scanf() και να εκτυπώνουμε δεδομένα

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

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

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

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00 ΣΕΤ ΑΣΚΗΣΕΩΝ 3 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2013-2014 Προθεσµία: 7/1/2014, 22:00 Περιεχόµενα Διαβάστε πριν ξεκινήσετε Εκφώνηση άσκησης 1 Οδηγίες αποστολής άσκησης Πριν ξεκινήσετε (ΔΙΑΒΑΣΤΕ

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

Οι εντολές ελέγχου της ροής ενός προγράμματος. Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης

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

Διαχείριση Κύριας Μνήμης

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

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

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

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

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

Προβλήματα, αλγόριθμοι, ψευδοκώδικας

Προβλήματα, αλγόριθμοι, ψευδοκώδικας Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου

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

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

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

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

Εγχειρίδιο Χρήσης Slide Recorder

Εγχειρίδιο Χρήσης Slide Recorder Εγχειρίδιο Χρήσης Slide Recorder Αναπτύχθηκε στο Κέντρο Λειτουργίας Διαχείρισης Δικτύου, Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Προγραμματιστής: Γιώργος Φράγκος Περιεχόμενα Εγχειρίδιο Χρήσης Slide

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα; Λίστα για ψώνια Έννοιες: αρχεία- άνοιγμα- εγγραφή διάβασμα Προαπαιτούμενα : δομή επιλογής, επανάληψης, συναρτήσεις, λίστες Ο Άκης, τώρα που έμαθε και τις λίστες στην Python αποφάσισε να φτιάξει μια λίστα

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling) Μάθημα 6 ο Χρονοδρομολόγηση (Scheduling) Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και τη λειτουργία της χρονοδρομολόγησης σε ένα Λειτουργικό Σύστημα. Θα μάθουμε: Να ορίζουμε τι είναι

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