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

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

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

Transcript

1 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις Το παρόν περιγράφει πλήρη λύση των θεμάτων, με σύντομες απαντήσεις. Για να βοηθήσει στην καλύτερη κατανόηση των απαντήσεων, προσφέρει αναλυτική επεξήγησή τους, η οποία δεν ήταν απαραίτητη για να θεωρείται τέλεια η λύση. Θέμα 1 (25%) Δίνεται το πλήρες πρόγραμμα C σε περιβάλλον UNIX που ακολουθεί μετά τα ζητούμενα. Θεωρήστε ότι οι κλήσεις συστήματος δεν αποτυγχάνουν, η Fn() δεν επιστρέφει ποτέ, η Fn() δεν εκτελεί κλήσεις συστήματος, κάθε νέα διεργασία κληρονομεί ακριβώς τον τρόπο χειρισμού σημάτων του πατέρα της και τέλος ότι οι κλήσεις συστήματος διακόπτονται από εισερχόμενα σήματα. Δεδομένου ότι η Fn() δεν επιστρέφει ποτέ, οι διεργασίες που δημιουργεί το πρόγραμμα έρχονται σε μόνιμη κατάσταση: το δέντρο διεργασιών μένει σταθερό για πάντα και κάθε διεργασία είναι μέσα σε συγκεκριμένη συνάρτηση ή κλήση συστήματος. α. (5%) Απαντήστε συνοπτικά, όχι πάνω από δύο γραμμές, στα ακόλουθα: 1. Η κλήση getppid() επιστρέφει το PID του γονέα της διεργασίας που την καλεί. Υπάρχει περίπτωση να αλλάξει η τιμή επιστροφής της από κλήση σε κλήση για μια διεργασία; 2. Όταν επιτυγχάνει κλήση fork(), τι σχέση έχει η μνήμη που βλέπει η διεργασία-παιδί με τη μνήμη της διεργασίας-πατέρα; 3. Τι κάνουν οι κλήσεις kill(pid, SIGINT) και signal(sigint, handler) στο UNIX; 4. Έστω διεργασίες P0, P1 που εκτελούνται ταυτόχρονα. Η P0 υπολογίζει την ψευδοτυχαία τιμή rndval και κάνει *p = rndval, όπου p δείκτης. Με ποιον μηχανισμό μπορεί η P1 να διαβάσει αυτή την τιμή ως *q, όπου q δείκτης στη δική της μνήμη; 1. Υπάρχει. Έστω η διεργασία με PID 1001, με γονέα την Οπότε getppid() == Αν η 1000 πεθάνει, τα παιδιά της υιοθετούνται από την init, οπότε εφεξής getppid() == Οι διεργασίες αναφέρονται ( βλέπουν ) πάντα σε εικονική μνήμη. Η μνήμη της διεργασίαςπαιδιού είναι ιδιωτικό αντίγραφο της μνήμης του πατέρα του όταν έγινε το fork(). 3. Η κλήση kill(pid, SIGINT) στέλνει το σήμα SIGINT στη διεργασία με PID pid. Η κλήση signal(sigint, handler) κανονίζει ώστε όταν η καλούσα διεργασία λάβει σήμα SIGINT να εκτελέσει τη συνάρτηση χειρισμού σήματος handler. 4. Οι διεργασίες πρέπει να έχουν εγκαταστήσει μοιραζόμενo τμήμα μνήμης ανάμεσά τους. Αν οι p, q είναι οι δείκτες προς τη μοιραζόμενη μνήμη για τις P0, P1 αντίστοιχα, ό,τι γράφει η P0 στο *p το διαβάζει η P1 στο *q. Λειτουργικά Συστήματα - 7ο εξάμηνο 1 cslab@ntua Μαρ. 2013

2 β. (12%) Σχεδιάστε το δέντρο διεργασιών στην τελική του μορφή, όταν δηλαδή όλες οι διεργασίες έχουν φτάσει σε μόνιμη κατάσταση. Εξηγήστε συνοπτικά πώς προκύπτει. γ. (4%) Για κάθε κόμβο του δέντρου διεργασιών, γράψτε: (i) την κλήση συστήματος ή συνάρτηση μέσα στην οποία βρίσκεται ο PC της αντίστοιχης διεργασίας, (ii) τα ορίσματα με τα οποία αυτή έχει κληθεί, (iii) τη γραμμή του προγράμματος απ όπου έγινε η κλήση της. Για τα ορίσματα, κάντε οποιαδήποτε υπόθεση χρειάζεστε για νούμερα που δεν γνωρίζετε, π.χ. PIDs που ανατίθενται από το σύστημα στις νέες διεργασίες. δ. (4%) Συμπληρώστε το δέντρο διεργασιών ώστε να φαίνεται η διαδιεργασιακή επικοινωνία: για κάθε μεταφορά δεδομένων ή αποστολή σήματος που συνέβη, σχεδιάστε ένα διακεκομμένο βέλος από τη διεργασία-αποστολέα στη διεργασία-παραλήπτη. Πάνω στο βέλος γράψτε την τιμή που μεταφέρεται κάθε φορά. 1 #include <...> /* Θεωρήστε όλες τις απαραίτητες οδηγίες #include */ 2 3 void Fn(...); /* Θεωρήστε δεδομένο τον ορισμό της */ 4 5 int pg[2]; 6 int glob = 1; 7 8 void handler(int signum) 9 { write(pg[1], &glob, sizeof(glob)); Fn(0, -5); int main(void) 12 { 13 int n = 5, i; 14 pid_t p, a; glob = 2; 17 pipe(pg); 18 signal(sigusr1, handler); a = getpid(); 21 p = fork(); 22 p = fork(); if (a == getpid()) { 25 while (1) 26 ; 27 glob = 4; write(pg[1], &glob, sizeof(glob)); 28 Fn(0, -1); if (p == 0) { 32 if (a == getppid()) { 33 Fn(1, -1); 34 exit(3); sleep(5); 37 glob = 3; 38 kill(a, SIGUSR1); 39 read(pg[0], &n, sizeof(n)); Λειτουργικά Συστήματα - 7ο εξάμηνο 2 cslab@ntua Μαρ. 2013

3 40 41 for (i = 0; i < n; i++) 42 if (fork() == 0) 43 Fn(3, i); 44 Fn(2, -1); wait(null); 47 Το δέντρο διεργασιών στην τελική κατάσταση φαίνεται στο ακόλουθο σχήμα. 2 PID: : Fn(0, 5) signal PID: : wait(null) PID: : Fn(2, 1) PID: : Fn(3, 0) PID: : Fn(3, 1) PID: : Fn(1, 1) Η αρχική διεργασία εκτελεί fork() (γραμμή 21) και μετά και αυτή και το παιδί της εκτελούν εκ νέου fork(), οπότε γεννούν από μία διεργασία ακόμη. Οι 4 διεργασίες, έστω 1000, 1001, 1002, 1003 διακρίνονται ως εξής: Για την 1000 ισχύει a == getpid() (γραμμή 20), οπότε εκτελεί busy-wait στις Για τις 1002, 1003 ισχύει p == 0, ενώ η 1001 καταλήγει στη γραμμή 46. Ανάμεσα στις 1002, 1003, μόνο η 1002 έχει πατέρα την αρχική, οπότε καταλήγει στη γραμμή 33. Η 1003 κοιμάται για λίγο στην 36, στέλνει σήμα SIGUSR1 στην 1000 και μπλοκάρει στο pipe. Η 1000 φεύγει από τις 25-26, μπαίνει στον handler, γράφει την τιμή 2 (γραμμή 16) στο pipe, και καταλήγει στη γραμμή 9. Τέλος, η 1003 ξεμπλοκάρει, γεννά 2 παιδιά (41-43), και καταλήγει στη 44. Επεξήγηση της απάντησης: Οι 4 διεργασίες βρίσκονται να εκτελούν τον ίδιο κώδικα από τη γραμμή 23 και κάτω. Διακρίνονται είτε με βάση το PID τους (είναι ίδιο με της αρχικής;), είτε με το αν βρίσκονται στα φύλλα του δέντρου (p == 0), σε συνδυασμό με το PID του πατέρα τους. Ότι η μεταβλητή glob είναι global στο πρόγραμμα (ορίζεται εκτός κάποιας συνάρτησης) αφορά στη γλώσσα προγραμματισμού C και μόνο: Είναι ορατή από όλα τα τμήματα του προγράμματος, και από τη main() και από τη handler(). Δεν είναι μοιραζόμενη μνήμη ανάμεσα στις διεργασίες, άρα η 1000 δεν βλέπει τις αλλαγές στη μνήμη άλλων διεργασιών (γραμμή 37). Θέμα 2 (25%) α. (5%) Τι είναι σημαφόρος και ποια είναι η χρησιμότητά του; Αναφέρετε πρόβλημα συγχρονισμού που μπορεί να λύσει ο σημαφόρος και δεν μπορεί το απλό κλείδωμα (lock). Σημαφόρος είναι μια ακέραια μεταβλητή η οποία, αφού αρχικοποιηθεί σε ορισμένη τιμή, είναι προσβάσιμη μόνο μέσω λειτουργιών P - wait() και V - signal(). Η λειτουργία wait() μπλοκάρει τον καλούντα έως ότου η τιμή του σημαφόρου γίνει θετική, οπότε του επιτρέπει να προχωρήσει αφού μειώσει κατά ένα την τιμή του σημαφόρου. Ο έλεγχος της τιμής του σημαφόρου κι η μεταβολή του γίνεται ατομικά. Η λειτουργία signal() αυξάνει κατά ένα την τιμή του σημαφόρου. Παράδειγμα προβλήματος που λύνεται με σημαφόρους κι όχι ένα απλό κλείδωμα είναι το ordering. Λειτουργικά Συστήματα - 7ο εξάμηνο 3 cslab@ntua Μαρ. 2013

4 β. (5%) Δώστε τον ορισμό του σημαφόρου κατά Dijkstra. Η υλοποίηση με βάση τον ορισμό αυτό λέμε ότι οδηγεί στο πρόβλημα της ενεργού αναμονής. Τι είναι το πρόβλημα αυτό και γιατί είναι ανεπιθύμητο; wait(s) { while (S <= 0) ; /* no-op */ S--; signal(s) { S++; Η παραπάνω υλοποίηση οδηγεί σε ενεργό αναμονή: οι διεργασίες που περιμένουν μέσα στη wait() εκτελούν συνεχώς έναν άερο βρόχο while() έως ότου μπορέσουν να μπουν στο κρίσιμο τμήμα. Αυτό είναι ανεπιθύμητο γιατί σπαταλώνται κύκλοι του επεξεργαστή, οι οποίοι ιδανικά θα μπορούσαν να χρησιμοποιηθούν από άλλες διεργασίες που είναι ταυτόχρονα προς εκτέλεση στο σύστημα. γ. (5%) Δώστε υλοποίηση του σημαφόρου που αποφεύγει την ενεργό αναμονή. Επισημάνετε σε ποια σημεία έχει περιοριστεί πλέον η αναμονή. Για να αποφύγουμε την ενεργό αναμονή, χρειάζεται οι διεργασίες που περιμένουν σε wait() να μπλοκάρουν, απελευθερώνοντας τον επεξεργαστή. Διεργασία που πρέπει να περιμένει σε wait() τοποθετεί τον εαυτό της σε ουρά αναμονής, μία για κάθε σημαφόρο, και γίνεται WAITING. Η αντίστοιχη signal() θα ξυπνήσει μία διεργασία από την ουρά, αλλάζοντας την κατάστασή της σε READY. typedef struct { int value; struct process *list; semaphore; wait (semaphore *S) { S->value--; if (S->value < 0) { add proc to S->list; block(); signal (semaphore *S) { S->value++; if (S->value <= 0) { remove P from S->list; wakeup(p); Επειδή και πάλι οι wait(), signal() πρέπει να εκτελούνται ατομικά, η ενεργός αναμονή έχει περιοριστεί στο να πάρουν οι wait(), signal() το ανάλογο κλείδωμα. Η διάρκεια της ενεργού αναμονής είναι ανεξάρτητη του μεγέθους του κρίσιμου τμήματος στις διεργασίες. δ. (10%) Υλοποιήστε σχήμα συγχρονισμού που θα προσομοιώνει τη συμπεριφορά πελατών μιας τράπεζας ως εξής: Η τράπεζα έχει K καθίσματα στην αίθουσα αναμονής και ένα γκισέ εξυπηρέτησης. Οι πελάτες της τράπεζας μπορούν να δουν από το παράθυρο αν υπάρχουν ελεύθερα καθίσματα. Αν δεν υπάρχουν, πηγαίνουν έναν περίπατο (take_a_walk()) και ξαναπροσπαθούν αργότερα. Αν υπάρχουν, εισέρχονται στην αίθουσα αναμονής και προσπαθούν να εξυπηρετηθούν ένας κάθε φορά στο γκισέ. O πελάτης εξυπηρετείται καλώντας την make_transaction(). Χρησιμοποιήστε μοιραζόμενες μεταβλητές και σημαφόρους για τη λύση σας. Μπορείτε να δουλέψετε κάνοντας όποιες αλλαγές θεωρείτε αναγκαίες στα σημεία που υποδηλώνονται με... στο τμήμα κώδικα που ακολουθεί: Λειτουργικά Συστήματα - 7ο εξάμηνο 4 cslab@ntua Μαρ. 2013

5 ... void bank_client() { while (1) {... if (...) { /* if seats available */... make_transaction();... break; else {... take_a_walk(); return_home(); Χρησιμοποιούμε σημαφόρο window ώστε κάθε πελάτης να ελέγχει ατομικά αν χωράει στην τράπεζα και αν να μπαίνει. Χρησιμοποιούμε σημαφόρο teller ώστε μόνο ένας πελάτης να εξυπηρετείται στο ταμείο κάθε φορά. window = semaphore(1); teller = semaphore(1); shared int people_in_bank = 0; void bank_client() { while (1) { wait(window); if (people_in_bank < K) { /* if seats available */ else { ++people_in_bank; signal(window); wait(teller); make_transaction(); signal(teller); wait(window); --people_in_bank; signal(window); break; return_home(); signal(window); take_a_walk(); Επεξήγηση της απάντησης: Η χρήση σημαφόρου αρχικοποιημένου στο K δεν θα ήταν χρήσιμη σε αυτή την περίπτωση, γιατί μια διεργασία δεν μπορεί να ξέρει αν θα μπλοκάρει εκ των προτέρων, πριν εκτελέσει wait(). Επίσης, η παραπάνω λύση δεν λαμβάνει υπόψη τη σειρά με την οποία εξυπηρετούνται οι πελάτες μέσα στην τράπεζα, είναι πιθανό π.χ. ο τελευταίος που μπήκε να πάρει πρώτος το σημαφόρο teller, και να εξυπηρετηθεί. Λειτουργικά Συστήματα - 7ο εξάμηνο 5 cslab@ntua Μαρ. 2013

6 Θέμα 3 (25%) α. (5%) Σχεδιάστε ενδεικτικό διάγραμμα καταστάσεων διεργασίας, με τουλάχιστον τις καταστάσεις NEW, RUNNING, WAITING, READY, TERMINATED. Ένα ενδεικτικό διάγραμμα καταστάσεων διεργασίας παρουσιάζεται στο ακόλουθο σχήμα. NEW READY RUNNING TERMINATED WAITING β. (10%) Αναφέρετε μία αιτία για κάθε μετάβαση. Για κάθε μετάβαση, δώστε ενδεικτικό παράδειγμα/τμήμα κώδικα C σε UNIX στο οποίο μπορεί να συμβεί. NEW READY: αποδοχή της διεργασίας για εκτέλεση στο σύστημα. Παράδειγμα: fork(); στη γονική διεργασία. Η διεργασία δημιουργείται (NEW) και γίνεται έτοιμη προς εκτέλεση (READY) μέσα στη fork(), από την οποία θα επιστρέψει όταν επιλεγεί προς εκτέλεση. RUNNING READY: εκπνοή του κβάντου χρόνου διεργασίας, διακοπή της και επαναφορά της στην ουρά έτοιμων διεργασιών. Παράδειγμα: οποιαδήποτε υπολογιστικά απαιτητική αλληλουχία εντολών, π.χ: s = 0; for (i = 0; i < ; i++) s += i; Αν ο υπολογισμός απαιτεί πάνω από ένα κβάντο χρόνου, η διεργασία θα διακοπεί και θα υποστεί μετάβαση από RUNNING σε READY. RUNNING WAITING: πραγματοποίηση κλήσης συστήματος που μπλοκάρει, π.χ. Ε/Ε από το δίσκο, read(fd, buf, n); ή εκτέλεση κλήσης sleep(60). WAITING READY: ολοκλήρωση διαδικασίας Ε/Ε, π.χ. ολοκλήρωση ανάγνωσης μπλοκ από το δίσκο στην κύρια μνήμη. Ο δίσκος προκαλεί διακοπή υλικού, κι η διεργασία που περίμενε τα δεδομένα μεταβαίνει από WAITING σε READY. Παράδειγμα: Η κλήση read() της προηγούμενης περίπτωσης, στην οποία βρίσκεται η διεργασία όταν γίνεται WAITING READY. READY RUNNING: επιλογή από τον χρονοδρομολογητή για εκτέλεση στη CPU, context switch σε αυτή τη διεργασία. Παράδειγμα: Ίδιο με των περιπτώσεων RUNNING READY, RUNNING WAITING. Είτε η διεργασία είχε μπλοκάρει λόγω Ε/Ε, είτε είχε διακοπεί λόγω εκπνοής του κβάντου χρόνου, τελικά θα κάνει READY RUNNING. RUNNING TERMINATED: κλήση της exit() από την τρέχουσα διεργασία. Στο UNIX η κατάσταση TERMINATED αντιστοιχεί σε διεργασία zombie που παραμένει στον πίνακα διεργασιών μέχρι ο πατέρας της να κάνει wait(). Παράδειγμα: exit(); γ. (5%) Περιγράψτε τους αλγορίθμους χρονοδρομολόγησης FCFS και SJF. Αναφέρετε πλεονεκτήματα και μειονεκτήματα καθενός από τους δύο. Ο αλγόριθμος FCFS επιλέγει από την ουρά έτοιμων διεργασιών τη διεργασία που εισήλθε στην ουρά πρώτη. Πλεονέκτημα: Απλότητα στην υλοποίηση. Μειονέκτημα: Σε περίπτωση που έχει καταφθάσει πρώτη μία διεργασία με πολύ μεγάλο ξέσπασμα ΚΜΕ (CPU burst) τότε ο χρόνος αναμονής Λειτουργικά Συστήματα - 7ο εξάμηνο 6 cslab@ntua Μαρ. 2013

7 των υπολοίπων διεργασιών θα είναι πολύ μεγάλος (φαινόμενο convoy). Γενικά, ο μέσος χρόνος αναμονής του αλγορίθμου FCFS μπορεί να είναι πολύ μεγάλος και με μεγάλη διακύμανση. Ο αλγόριθμος SJF επιλέγει από την ουρά έτοιμων διεργασιών τη διεργασία με το μικρότερο επόμενο ξέσπασμα ΚΜΕ. Πλεονέκτημα: Ο αλγόριθμος οδηγεί σε μικρούς χρόνους αναμονής. Μειονεκτήματα: Είναι δύσκολη η πρόβλεψη του χρόνου του επόμενου ξεσπάσματος ΚΜΕ. Ο αλγόριθμος μπορεί να οδηγήσει μία διεργασία σε λιμοκτονία, αν η πρόβλεψη για το επόμενο ξέσπασμα ΚΜΕ της συγκεκριμένης διεργασίας είναι μονίμως μικρότερη από την πρόβλεψη για κάποια άλλη διεργασία. δ. (5%) Σε τι διαφέρει η διακοπτή από τη μη-διακοπτή χρονοδρομολόγηση; Αναφέρετε ένα πλεονέκτημα κι ένα μειονέκτημα για κάθε μία από τις δύο στρατηγικές. Έστω ένας υπολογιστικός κόμβος, στον οποίο χρήστες υποβάλλουν μαζικά εργασίες προς εκτέλεση. Ποια από τις δύο θα διαλέγατε για το ΛΣ που εκτελείται εκεί; Στη διακοπτή χρονοδρομολόγηση ο χρονοδρομολογητής καλείται μόνο όταν: α) μία διεργασία μεταβεί από κατάσταση RUNNING σε κατάσταση WAITING (π.χ. με μία κλήση συστήματος που θα οδηγήσει σε Ε/Ε) και β) Όταν μία διεργασία τερματίσει. Πλεονεκτήματα: Ευκολία στην υλοποίηση. Περιορισμένες ανάγκες για συγχρονισμό μεταξύ των διεργασιών. Μειονέκτημα: Μπορεί να οδηγήσει σε μειωμένη αποκρισιμότητα του συστήματος (π.χ. μία διεργασία που εκτελεί υπολογισμούς στη CPU επί ώρες, δεν θα αντικατασταθεί από άλλη διεργασία, με αποτέλεσμα οι υπόλοιπες διεργασίες του συστήματος να μη σημειώνουν καμμία πρόοδο). Στη διακοπτή χρονοδρομολόγηση ο χρονοδρομολογητής καλείται επιπλέον των περιπτώσεων α) και β) και όταν: γ) συμβεί μία διακοπή υλικού (π.χ. από τον χρονιστή-timer του συστήματος) και δ) όταν μία διεργασία μεταβεί από κατάσταση WAITING σε κατάσταση READY (π.χ. μετά από την ολοκλήρωση κάποιας λειτουργίας Ε/Ε). Πλεονεκτήματα: Υψηλή αποκρισιμότητα. Μειονεκτήματα: Δυσκολία στην υλοποίηση. Ανάγκη για συγχρονισμό μεταξύ των διεργασιών, καθώς δεν είναι προβλέψιμα τα σημεία στα οποία θα γίνει εναλλαγή διεργασιών. Σε έναν υπολογιστικό κόμβο μεγαλύτερη προτεραιότητα έχει η υψηλή χρησιμοποίηση της ΚΜΕ ώστε οι υπολογιστικές εργασίες να ολοκληρώνονται με το μεγαλύτερο δυνατό ρυθμό. Για αυτό το λόγο προσπαθούμε να περιορίσουμε τους κύκλους της ΚΜΕ που καταναλώνονται σε μη υπολογιστικό κώδικα, όπως είναι ο κώδικας του χρονοδρομολογητή. Εφόσον ο χρονοδρομολογητής καλείται σπανιότερα στη μη-διακοπτή χρονοδρομολόγηση, αυτή είναι η προτιμότερη στρατηγική για αυτή την περίπτωση υπολογιστικού συστήματος. Θέμα 4 (25%) α. (10%) Έστω ΛΣ εικονικής μνήμης με σελιδοποίηση που ακολουθεί το μοντέλο fork()/exec() με Copy-On-Write (COW) για τη δημιουργία νέων διεργασιών. Το μέγεθος σελίδας είναι 4096 bytes. Η λίστα των ελεύθερων πλαισίων είναι 303, 127, 309, 310, 311, 312, 313, 314,... Δίνεται ο πίνακας σελίδων της υπό εκτέλεση διεργασίας P0: page valid perms frame 3 v rw v rw Τι μέγεθος έχει ο εκτελέσιμος κώδικας της διεργασίας, και γιατί; 2. Ποιες σελίδες αποθηκεύουν σταθερές, π.χ. strings, για τη διεργασία; Τι θα γίνει αν επιχειρήσει να γράψει σε αυτές; Λειτουργικά Συστήματα - 7ο εξάμηνο 7 cslab@ntua Μαρ. 2013

8 3. Τι page faults θα συμβούν, ποιοι θα είναι οι πίνακες σελίδων για τις P0, P1, P2 και τι θα κάνει το ΛΣ όταν οι διεργασίες επιχειρήσουν τα εξής, το ένα μετά το άλλο; Απαντήστε για κάθε βήμα χωριστά. 1. Η P0 εκτελεί fork() και γεννιέται η P1. 2. Η P1 διαβάζει από τη διεύθυνση Η P0 γράφει στη διεύθυνση Η P1 γράφει στη διεύθυνση Η P1 εκτελεί fork() και γεννιέται η P2. 6. Η P2 γράφει στη διεύθυνση Περιγράψτε επαρκώς όποιες παραδοχές κάνετε. Δεν μας δίνεται ο χάρτης μνήμης για τη διεργασία. Υποθέτουμε την πιο απλή περίπτωση, ότι ολόκληρη η μνήμη της διεργασίας είναι ιδιωτική (δεν υπάρχουν σελίδες σημειωμένες ως MAP_SHARED). Οπότε: 1. Μόνο μία σελίδα έχει δικαίωμα x, οπότε μόνο μία σελίδα μπορεί να περιέχει εκτελέσιμο κώδικα. Άρα ο εκτελέσιμος κώδικας της διεργασίας είναι μεγέθους 4KB. 2. Οι σταθερές δεν είναι εκτελέσιμος κώδικας, και πιθανότατα αποθηκεύονται σε σελίδα χωρίς δικαίωμα εγγραφής, ώστε να εντοπίζεται προσπάθεια αλλαγής τους από λανθασμένο ή κακόβουλο κώδικα. Μόνο η σελίδα 1 ικανοποιεί τις προδιαγραφές. 3. Δίνουμε τον πίνακα σελίδων κάθε διεργασίας σε κάθε βήμα: 1. Σε fork() με COW αντιγράφεται ο πίνακας σελίδων ώστε να χρησιμοποιούνται τα ίδια πλαίσια από πατέρα και παιδί, και οι δύο χάνουν το δικαίωμα w στον πίνακα σελίδων. P0 P1 page valid perms frame page valid perms frame 3 v r v r Η διεύθυνση 8512 είναι στη σελίδα 2, γιατί = 2. Έχει δικαίωμα r, η εντολή load εκτελείται χωρίς να συμβεί page fault. 3. Η διεύθυνση είναι στη σελίδα 3. Η P0 δεν έχει δικαίωμα w, συμβαίνει page fault κατά την εκτέλεση της εντολής store, το ΛΣ βλέπει από το χάρτη μνήμης ότι έχει γίνει COW, αναθέτει νέο πλαίσιο στη διεργασία από τα ελεύθερα, το 303, και δίνει δικαίωμα rw για τη συγκεκριμένη σελίδα. Θεωρούμε ότι ο πίνακας σελίδων της P0 δεν αλλάζει ακόμη. Θα μπορούσε, επειδή είναι η μοναδική που πλέον έχει αναφορά στο πλαίσιο 129 να αποκτήσει πρόσβαση rw στον πίνακα σελίδων της, ώστε να αποφευχθεί ένα ακόμη page fault. Υποθέτουμε ότι αυτό δεν συμβαίνει. 4. Η P1 δεν έχει δικαίωμα w στη σελίδα 3. Συμβαίνει page fault, είναι η μόνη που έχει δεδομένα στο πλαίσιο 129, το ΛΣ της δίνει δικαίωμα rw και επανεκκινεί την εντολή store. Μετά τα δύο τελευταία βήματα, οι πίνακες σελίδων έχουν γίνει: Λειτουργικά Συστήματα - 7ο εξάμηνο 8 cslab@ntua Μαρ. 2013

9 P0 page valid perms frame 3 v rw 303 P1 page valid perms frame 3 v rw 129 β. (5%) 5. Έχουμε fork() με COW, η P2 αποκτά πίνακα σελίδων αντίγραφο του πίνακα της P1, κανείς δεν έχει δικαίωμα εγγραφής: P0 P1 P2 page valid perms frame page valid perms frame page valid perms frame 3 v rw v r v r H P2 επιχειρεί να γράψει στη σελίδα 1. Δεν έχει δικαίωμα w, συμβαίνει page fault, το ΛΣ ξυπνά, συμβουλεύεται τον χάρτη μνήμης του, βλέπει ότι η σελίδα 1 είναι σελίδα κώδικα και η διεργασία δεν έχει δικαίωμα εγγραφής εκεί. Ο πυρήνας στέλνει σήμα SIGSEGV γιατί επιχειρείται μη επιτρεπτή πρόσβαση. Αν η διεργασία δεν το χειρίζεται, σκοτώνεται. 1. Τι είναι ο Τρέχων Κατάλογος (current working directory), για μια διεργασία; Πού κρατάει το ΛΣ την πληροφορία για τον τρέχοντα κατάλογο μιας διεργασίας; 2. Έστω δύο έργα/tasks T0, T1 στο Linux που εκτελούνται με τρέχοντα κατάλογο τον ριζικό ( / ), ο οποίος περιέχει αρχείο /file1 και άδειο κατάλογο /dir1. Το T0 αλλάζει τον τρέχοντα κατάλογο εκτελώντας chdir("/dir1"). Έπειτα, το T1 εκτελεί open("file1",...). Τι θα συμβεί αν τα T0, T1 είναι (α) χωριστές διεργασίες, (β) νήματα της ίδιας διεργασίας, (γ) διεργασίες πατέρας-παιδί; 1. Είναι ο κατάλογος από τον οποίο ξεκινά η επίλυση σχετικών μονοπατιών π.χ. dir/file1.txt, ή afile.bin, όταν η διεργασία αναφέρεται σε αυτά. Το ΛΣ κρατάει αυτή την πληροφορία στο PCB για τη διεργασία. 2. Το ερώτημα είναι αν η κλήση της chdir() από το T0 επηρεάζει την κλήση open() του T1, αν το σχετικό μονοπάτι θα επιλυθεί ξεκινώντας από το /dir1 ή από το /. Τρεις περιπτώσεις: (α) κάθε διεργασία έχει το δικό της PCB. Όταν το T0 κάνει chdir() δεν αλλάζει τον TK του Τ1, οπότε η open() επιτυγχάνει. (β) Τα νήματα ανήκουν στην ίδια διεργασία, έχουν κοινό PCB άρα κοινό τρέχοντα κατάλογ. Η chdir() αλλάζει τον κοινό TK, οπότε η open() αποτυγχάνει με errno = ENOENT. (γ) Ακριβώς όπως στην περίπτωση (α), δεν υπάρχει τίποτε ιδιαίτερο, δεν μοιράζονται το PCB, άρα ούτε τον ΤΚ. γ. (10%) Σε σύστημα αρχείων το FCB (i-node) περιέχει μετρητή (ακέραιο αριθμό) για την υλοποίηση μη συμβολικών συνδέσμων (hard links). Απαντήστε συνοπτικά στα εξής: 1. Τι συμβαίνει στα ανοιχτά αρχεία μιας διεργασίας όταν αυτή εκτελέσει exit(), και τι όταν σκοτωθεί από σήμα; Λειτουργικά Συστήματα - 7ο εξάμηνο 9 cslab@ntua Μαρ. 2013

10 2. Ο ελεύθερος χώρος στο σύστημα αρχείων που είναι προσαρτημένο στη θέση /mnt είναι 3GB. Το /mnt/data1, /mnt/data2 είναι hard links προς το ίδιο αρχείο, το οποίο περιέχει 2GB μη μηδενικά δεδομένα. Εξηγήστε πώς μπορεί να συμβεί το εξής σενάριο: 1. Εκτελούμε rm /mnt/data1. Ο ελεύθερος χώρος στο /mnt παραμένει αμετάβλητος. 2. Εκτελούμε rm /mnt/data2. Ο ελεύθερος χώρος στο /mnt παραμένει αμετάβλητος. 3. Εκτελούμε κατάλληλη εντολή kill. Ο ελεύθερος χώρος στο /mnt γίνεται 5GB. Τι συνέβη; 3. Τι θα συνέβαινε στο παραπάνω σενάριο αν υπήρχε ο συμβολικός δεσμός (so link) /mnt/data3 /mnt/data2; 1. Όταν μια διεργασία τερματίσει εκτελώντας exit() όλα τα αρχεία που είχε ανοιχτά κλείνουν, με ευθύνη του πυρήνα. Ακριβώς το ίδιο συμβαίνει κι όταν σκοτωθεί από σήμα: ο πυρήνας απελευθερώνει όλους τους πόρους που η διεργασία κατείχε, ώστε το σύστημα να παραμένει συνεπές. 2. Το σενάριο εξηγείται ως εξής: 1. Το /mnt/data1 είναι hard link. Η rm εκτελεί κλήση συστήματος unlink() σβήνει το όνομα /mnt/data1. Υπάρχουν ακόμη hard links προς το αρχείο, το inode δεν απελευθερώνεται, ο ελεύθερος χώρος παραμένει αμετάβλητος. 2. To /mnt/data2 ήταν το τελευταίο hard link. Το inode θα μπορούσε να διαγραφεί, αλλά δεν διαγράφεται γιατί μία διεργασία, έστω με PID 1001 είχε ανοίξει το αρχείο όσο είχε ακόμη όνομα να δείχνει στο inode, κάνοντας open("/mnt/data1",...). 3. Ο χρήστης έτρεξε kill 1001, σκοτώνοντας τη διεργασία. Όλα τα ανοιχτά της αρχεία κλείνουν, το inode δεν έχει hard links προς αυτό και δεν αναφέρεται σε αυτό κανένα ανοιχτό αρχείο, το σύστημα αρχείων το απελευθερώνει, κι ο ελεύθερος χώρος αυξάνεται στα 5GB. 3. Δεν θα άλλαζε απολύτως τίποτε. Το /mnt/data3 θα έμενε στο σύστημα αρχείων ως συμβολικός δεσμός που θα έδειχνε σε ανύπαρκτο όνομα (dangling link). Λειτουργικά Συστήματα - 7ο εξάμηνο 10 cslab@ntua Μαρ. 2013

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά Συστήματα 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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά συστήματα πραγματικού χρόνου

Λειτουργικά συστήματα πραγματικού χρόνου Λειτουργικά συστήματα πραγματικού χρόνου Τι είναι λειτουργικό σύστημα πραγματικού χρόνου; Λειτουργικό Σύστημα Πραγματικού Χρόνου (ΛΣΠΧ) είναι ένα λειτουργικό σύστημα που προορίζεται για εφαρμογές πραγματικού

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

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

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

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

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2

Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2 Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4 Φροντιστήριο 2 1 Λειτουργικό Σύστημα -> Multitasking Κάθε διεργασία μπορεί να ειδωθεί σαν μία δέσμη στοιχείων που διατηρούνται από τον πυρήνα

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 6 η Βρόχοι Επανάληψης Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

for for for for( . */

for for for for( . */ Εισαγωγή Στον Προγραµµατισµό «C» Βρόχοι Επανάληψης Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Ο βρόχος for Η εντολή for χρησιµοποιείται

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

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

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

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

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

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

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις Υλικό από: Κ Διαμαντάρας, Λειτουργικά Συστήματα, Τμήμα Πληροφορικής ΤΕΙΘ Σύνθεση Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο

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

Εργαστήριο 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) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

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

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) ..8 Κατανομή των αρχείων σε συσκευές Ακολουθείται κάποια λογική στην αποθήκευση των αρχείων:.αρχεία που χρησιμοποιούνται συχνά τοποθετούνται στους σκληρούς δίσκους που έχουν μεγάλη ταχύτητα πρόσβασης..αν

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

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

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

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

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30

ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30 4 Σεπτεμβρίου 2009 Σελ. 1/6 ΤΜΗΜΑ ΜΗΥΤΔ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (ΗΥ222) ΔΙΔΑΣΚΩΝ: ΧΡΗΣΤΟΣ Δ. ΑΝΤΩΝΟΠΟΥΛΟΣ Τελική Εξέταση Σεπτεμβρίου 2009, Χρόνος: 2:30 Θέμα 1 (3 μονάδες) α) (0,75

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

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

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

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

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

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

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

Διεργασίες - Σύνοψη. Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος. Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής

Διεργασίες - Σύνοψη. Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος. Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Διεργασίες

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

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

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

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

Δίκτυα Επικοινωνιών ΙΙ: 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, μη αξιόπιστο,

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

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

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

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

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

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

Αδιέξοδα (Deadlocks)

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

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

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

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

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

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

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

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

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

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

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

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