Διεργασίες και Νήματα (1/2)
|
|
- Ὑπατος Βουρδουμπάς
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,
2 Διεργασίες - Σύνοψη Οργάνωση ενός σύγχρονου ΛΣ Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος Διεργασία Process Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Πίνακας Ελέγχου Διεργασίας Χρονοδρομολόγηση ρ ησε συστήματα καταμερισμού μ χρόνου Λειτουργίες διεργασιών Δημιουργία διεργασιών - το μοντέλο του UNIX Διαδιεργασιακή ήεπικοινωνία
3 Διεργασίες - Σύνοψη Οργάνωση ενός σύγχρονου ΛΣ Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος Διεργασία Process Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Πίνακας Ελέγχου Διεργασίας Χρονοδρομολόγηση ρ ησε συστήματα καταμερισμού μ χρόνου Λειτουργίες διεργασιών Δημιουργία διεργασιών - το μοντέλο του UNIX Διαδιεργασιακή ήεπικοινωνία
4 Οργάνωση ενός ΛΣ Διεργασία 1 Διεργασία 2 Διεργασία 3 Χώρος Χρήστη Υπηρεσίες ΛΣ Χώρος Πυρήνα Οδηγοί Συσκευών Υλικό Υλικό
5 Οργάνωση ενός ΛΣ Διεργασία 1 Διεργασία 2 Διεργασία 3 κλήσεις συστήματος Χώρος Χρήστη Υπηρεσίες ΛΣ Χώρος Πυρήνα Οδηγοί Συσκευών Υλικό Υλικό
6 Λειτουργία ενός Σύγχρονου Συστήματος (1) Βασισμένη σε αιτήματα / συμβάντα / διακοπές Το ΛΣ ενεργοποιείται όταν γίνει κάτι από τα παρακάτω: Αίτηση διακοπής από το λογισμικό (trap, software interrupt) Ολοκλήρωση λειτουργίας Ε/Ε (διακοπή υλικού, hardware interrupt) Εσφαλμένη ή μη επιτρεπόμενη εντολή, π.χ. διαίρεση με το μηδέν, (exception, εξαίρεση ) Ο έλεγχος περνάει σε προκαθορισμένο κώδικα του ΛΣ, ανάλογα με τη διακοπή (άνυσμα διακοπών), την αίτηση ή την εξαίρεση Ρουτίνα εξυπηρέτησης διακοπής Μετά το τέλος της, επιστροφή στο προηγούμενο σημείο, υπό προϋποθέσεις
7 Λειτουργία ενός Σύγχρονου Συστήματος (2) νήματα εκτέλεσης Ν CPU(s) κρυ υφή μνήμ μη εκτέλεση εντολών εντολές και δεδομένα μνήμη αίτηση Ε /Ε δεδομέ ένα διακο πή Απευθείας Πρόσβαση στη Μνήμη (DMA) μονάδες Ε/Ε
8 Λειτουργία ενός Σύγχρονου Συστήματος (3) Ανάγκη για Προστασία / Απομόνωση Των υπόλοιπων προγραμμάτων Των δομών του ΛΣ Από κακογραμμένο / κακόβουλο κώδικα Λύση: Δύο καταστάσεις λειτουργίας Κατάσταση Χρήστη User Mode Κατάσταση Επόπτη Supervisor / Kernel Mode Πρέπει να παρέχεται από το Υλικό (x86;) Ορισμένες εντολές είναι προνομιούχες (privileged) Οι ρουτίνες εξυπηρέτησης διακοπών τρέχουν σε κατάσταση επόπτη
9 Οργάνωση ενός ΛΣ Διεργασία 1 Διεργασία 2 Διεργασία 3 κλήσεις συστήματος Χώρος Χρήστη Υπηρεσίες ΛΣ Χώρος Πυρήνα Οδηγοί Συσκευών Υλικό Υλικό
10 Κλήση Συστήματος Χώρος Χρήστη compute Init ret compute syscall from syscall trap return from interrupt t service syscall Χώρος Πυρήνα Αίτηση προς το ΛΣ (π.χ. Ε/Ε από συσκευή ή αρχείο, αναμονή συμβάντος, διαχείριση διεργασιών) Μετάβαση από κατάσταση χρήστη σε κατάσταση πυρήνα (privileged mode) Κι αν χρειάζεται να περιμένει έως ότου ολοκληρωθεί μια λειτουργία Ε/Ε; Πόσο είναι το κόστος της κλήσης; Υπάρχουν κι άλλοι τρόποι. SYSENTER / SYSEXIT interrupt User Kernel
11 Διεργασίες - Σύνοψη Οργάνωση ενός σύγχρονου ΛΣ Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος Διεργασία Process Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Πίνακας Ελέγχου Διεργασίας Χρονοδρομολόγηση σε συστήματα καταμερισμού χρόνου Λειτουργίες διεργασιών Δημιουργία διεργασιών - το μοντέλο του UNIX Διαδιεργασιακή Επικοινωνία
12 Διεργασία Process Διεργασία: ένα πρόγραμμα υπό εκτέλεση Ένα ζωντανό πρόγραμμα, φορτωμένο στη μνήμη Διεργασία = κώδικας + κατάσταση Πολλές διεργασίες μπορεί να έχουν κοινό πρόγραμμα, κοινό κώδικα Κάθε μία έχει τη δική της, χωριστή κατάσταση Πολλές διεργασίες εκτελούνται ταυτόχρονα κάτω από ΛΣ καταμερισμού μ χρόνου Multiprogramming με time sharing Αναγνωρίζεται από μοναδικό όprocess ID(PID)
13 Τι είναι μια Διεργασία;
14 κώδικας - program text Τι είναι μια Διεργασία;
15 Τι είναι μια Διεργασία; κώδικας - program text Αρχιτεκτονική κατάσταση Μετρητής προγράμματος (PC) Καταχωρητές CPU (%eax, %ebx, %ecx)
16 Τι είναι μια Διεργασία; κώδικας - program text Αρχιτεκτονική κατάσταση Μετρητής προγράμματος (PC) Καταχωρητές CPU (%eax, %ebx, %ecx) Ιδιωτικός, απομονωμένος χώρος μνήμης Τμήμα δεδομένων (data segment) μεταβλητές Σωρός (heap) Στοίβα (stack)
17 Τι είναι μια Διεργασία; κώδικας - program text Αρχιτεκτονική κατάσταση Μετρητής προγράμματος (PC) Καταχωρητές CPU (%eax, %ebx, %ecx) Ιδιωτικός, απομονωμένος χώρος μνήμης Τμήμα δεδομένων (data segment) μεταβλητές Σωρός (heap) Στοίβα (stack) Χρησιμοποιούμενοι πόροι του συστήματος Ανοιχτά αρχεία, δικτυακές συνδέσεις
18 Στιγμιότυπο Διεργασίας στη Μνήμη 2ΤΒ Στοίβα Σωρός Δεδομένα 0 Κείμενο
19 Στιγμιότυπο Διεργασίας στη Μνήμη 2ΤΒ Στοίβα Σωρός Δεδομένα 0 Κείμενο
20 Σύγχρονα ΛΣ καταμερισμού χρόνου Διεργασία: η βασική μονάδα εκτέλεσης σε σύγχρονα ΛΣ καταμερισμού χρόνου Ταυτόχρονη, απομονωμένη εκτέλεση Με τη δική της αρχιτεκτονική κατάσταση Σε δικό της, απομονωμένο χώρο μνήμης Αλληλεπίδραση ημε τον έξω κόσμο κλήσεις συστήματος
21 Σύγχρονα ΛΣ καταμερισμού χρόνου Διεργασία: η βασική μονάδα εκτέλεσης σε σύγχρονα ΛΣ καταμερισμού χρόνου Ταυτόχρονη, απομονωμένη εκτέλεση Με τη δική της αρχιτεκτονική κατάσταση Σε δικό της, απομονωμένο χώρο μνήμης Αλληλεπίδραση ημε τον έξω κόσμο κλήσεις συστήματος Το ΛΣ δημιουργεί και συντηρεί την ψευδαίσθηση της αποκλειστικής χρήσης της μηχανής καταμερισμός χρόνου ανάμεσα στις υπό εκτέλεση διεργασίες Ανάγκη για χρονοδρομολόγηση (CPU Scheduling) Δυνητικά σε πολλούς επεξεργαστές (SMP/multicore) Με δίκαιη κατανομή πόρων ανάμεσα στις διεργασίες
22 Καταμερισμός Χρόνου: η γενική ιδέα CPU t Ο υπολογιστικός χρόνος κατανέμεται ανάμεσα στις διεργασίες που είναι έτοιμες να τρέξουν (P1, P2, P3) Κάθε διεργασία τρέχει για χρόνο <= του κβάντου χρόνου (time quantum) Το χρονοδρομολογητή ενεργοποιούν διακοπές χρονιστή (timer interrupts) interrupt User Kernel
23 Καταμερισμός Χρόνου: η γενική ιδέα CPU P 1 timer t Ο υπολογιστικός χρόνος κατανέμεται ανάμεσα στις διεργασίες που είναι έτοιμες να τρέξουν (P1, P2, P3) Κάθε διεργασία τρέχει για χρόνο <= του κβάντου χρόνου (time quantum) Το χρονοδρομολογητή ενεργοποιούν διακοπές χρονιστή (timer interrupts) interrupt User Kernel
24 Καταμερισμός Χρόνου: η γενική ιδέα CPU P 1 S timer t Ο υπολογιστικός χρόνος κατανέμεται ανάμεσα στις διεργασίες που είναι έτοιμες να τρέξουν (P1, P2, P3) Κάθε διεργασία τρέχει για χρόνο <= του κβάντου χρόνου (time quantum) Το χρονοδρομολογητή ενεργοποιούν διακοπές χρονιστή (timer interrupts) interrupt User Kernel
25 Καταμερισμός Χρόνου: η γενική ιδέα CPU P 1 S P 2 S P 3 S P 1 timer timer timer t Ο υπολογιστικός χρόνος κατανέμεται ανάμεσα στις διεργασίες που είναι έτοιμες να τρέξουν (P1, P2, P3) Κάθε διεργασία τρέχει για χρόνο <= του κβάντου χρόνου (time quantum) Το χρονοδρομολογητή ενεργοποιούν διακοπές χρονιστή (timer interrupts) interrupt User Kernel
26 Καταμερισμός Χρόνου: η γενική ιδέα tq CPU P 1 S P 2 S P 3 S P 1 timer timer timer t Ο υπολογιστικός χρόνος κατανέμεται ανάμεσα στις διεργασίες που είναι έτοιμες να τρέξουν (P1, P2, P3) Κάθε διεργασία τρέχει για χρόνο <= του κβάντου χρόνου (time quantum) Το χρονοδρομολογητή ενεργοποιούν διακοπές χρονιστή (timer interrupts) interrupt User Kernel
27 Κατάσταση Διεργασίας Μεταβάσεις Κάθε διεργασία μεταβαίνει από κατάσταση σε κατάσταση (process state) Νέα (New) δημιουργείται Υπό Εκτέλεση (Running) εκτελείται τώρα στη CPU Έτοιμη (Ready) έτοιμη προς εκτέλεση σε CPU, χρειάζεται χρόνο CPU Σε Αναμονή (Waiting) περιμένει να ολοκληρωθεί E/E, αναμονή συμβάντος, δεν είναι υποψήφια για εκτέλεση σε CPU Τερματισμένη (Terminated) η εκτέλεσή της έχει ολοκληρωθεί
28 Νέα (New) Κύκλος Ζωής μιας Διεργασίας (1)
29 Κύκλος Ζωής μιας Διεργασίας (1) Νέα (New) αποδοχή Έτοιμη (Ready)
30 Κύκλος Ζωής μιας Διεργασίας (1) Νέα (New) αποδοχή Έτοιμη Υπό Εκτέλεση (Ready) (Running) επιλογή από χρονοδρομολογητή
31 Κύκλος Ζωής μιας Διεργασίας (1) Νέα (New) αποδοχή εκπνοή κβάντου χρόνου Έτοιμη Υπό Εκτέλεση (Ready) (Running) επιλογή από χρονοδρομολογητή
32 Κύκλος Ζωής μιας Διεργασίας (1) Νέα (New) αποδοχή εκπνοή κβάντου χρόνου Έτοιμη Υπό Εκτέλεση (Ready) (Running) επιλογή από χρονοδρομολογητή ολοκλήρωση Ε/Ε ή συμβάντος Σε Αναμονή (Waiting) αίτηση Ε/Ε ή αναμονή συμβάντος
33 Κύκλος Ζωής μιας Διεργασίας (1) Νέα (New) αποδοχή εκπνοή κβάντου χρόνου Τερματισμένη (Terminated) έξοδος Έτοιμη Υπό Εκτέλεση (Ready) (Running) επιλογή από χρονοδρομολογητή ολοκλήρωση Ε/Ε ή συμβάντος Σε Αναμονή (Waiting) αίτηση Ε/Ε ή αναμονή συμβάντος
34 Πίνακας Ελέγχου Διεργασίας (1) Process Control Block (PCB) Ταυτότητα διεργασίας (PID) Κατάσταση διεργασίας (process state) Νέα, Έτοιμη, Υπό Εκτέλεση, Σε Αναμονή, Τερματισμένη Αρχιτεκτονική κατάσταση (architectural t state) t Μετρητής προγράμματος, καταχωρητές CPU Πληροφορίες χρονοδρομολόγησης Προτεραιότητα, δείκτες σε ουρές χρονοδρομολογητή Πληροφορίες διαχείρισης μνήμης Δεσμευμένες περιοχές μνήμης, είδος και όρια πρόσβασης Πληροφορίες για έλεγχο πρόσβασης Ταυτότητα χρήστη, δικαιώματα πρόσβασης, δυνατότητες Πληροφορίες για τρέχουσα κατάσταση λειτουργιών Ε/Ε Πίνακας ανοιχτών αρχείων
35 Πίνακας Ελέγχου Διεργασίας (2) PCB ταυτότητα διεργασίας κατάσταση διεργασίας μετρητής προγράμματος καταχωρητές CPU δεδομένα διαχείρισης μνήμης (περιοχές, όρια) πίνακας ανοιχτών αρχείων δικαιώματα πρόσβασης (αριθμός χρήστη, δυνατότητες)
36 Πίνακας Ελέγχου Διεργασίας (2) $ cat /usr/src/linux/include/linux/sched.h... struct task_struct { volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */ void *stack;... int prio, static_prio, i normal_prio; unsigned int rt_priority;... struct mm_struct *mm, *active_mm;... pid _ t pid;... const struct cred *cred; /* effective (overridable) subjective task * credentials (COW) */... /* open file information */ struct files_struct struct *files;... }; real-life Linux PCB in C
37 Διεργασίες - Σύνοψη Οργάνωση ενός σύγχρονου ΛΣ Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος Διεργασία Process Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Πίνακας Ελέγχου Διεργασίας Χρονοδρομολόγηση σε συστήματα καταμερισμού χρόνου Λειτουργίες διεργασιών Δημιουργία διεργασιών - το μοντέλο του UNIX Διαδιεργασιακή Επικοινωνία
38 Καταμερισμός Χρόνου: η γενική ιδέα tq CPU P 1 S P 2 S P 3 S P 1 timer timer timer t Ο υπολογιστικός χρόνος κατανέμεται ανάμεσα στις διεργασίες που είναι έτοιμες να τρέξουν (P1, P2, P3) Κάθε διεργασία τρέχει για χρόνο <= του κβάντου χρόνου (time quantum) Το χρονοδρομολογητή ενεργοποιούν διακοπές χρονιστή (timer interrupts) interrupt User Kernel
39 Εναλλαγή Περιβάλλοντος Λειτουργίας (1) Context Switch: Η CPU αλλάζει από διεργασία σε διεργασία Αποθήκευση κατάστασης παλιάς (στο PCB της) Επαναφορά νέας διεργασίας (από το PCB της) Πόσο διαρκεί; Είναι χαμένος χρόνος για τη CPU Πόσο συχνά; το σύστημα πρέπει να είναι αποκρίσιμο
40 Εναλλαγή Περιβάλλοντος Λειτουργίας (2) P 0 P 1 διακοπή ή κλήση συστήματος Αποθήκευση κατάστασης στο PCB P 0 Τι ποσοστό του Επαναφορά κατάστασης από PCB P 1 χρόνου χάνεται στο context tswitch; διακοπή ή κλήση συστήματος Αποθήκευση κατάστασης στο PCB P 1 Επαναφορά κατάστασης από PCB P 0 interrupt User Kernel
41 Κύκλος Ζωής μιας Διεργασίας (2) create() / fork() Ουρά Έτοιμων Διεργασιών (Ready List) CPU exit() Εκπνοή κβάντου χρόνου I/O read() / write() Αίτηση I/Ο Διακοπή / άλλο συμβάν sleep() / wait() Αναμονή για συμβάν
42 Διεργασίες - Σύνοψη Οργάνωση ενός σύγχρονου ΛΣ Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος Διεργασία Process Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Πίνακας Ελέγχου Διεργασίας Χρονοδρομολόγηση σε συστήματα καταμερισμού χρόνου Λειτουργίες ί διεργασιών Δημιουργία διεργασιών - το μοντέλο του UNIX Διαδιεργασιακή Επικοινωνία
43 Λειτουργίες Διεργασιών Δημιουργία και καταστροφή διεργασιών Δυναμική, κατά τη λειτουργία του συστήματος (fork()) Μέσω κλήσεων συστήματος
44 Λειτουργίες Διεργασιών Δημιουργία και καταστροφή διεργασιών Δυναμική, κατά τη λειτουργία του συστήματος (fork()) Μέσω κλήσεων συστήματος Ιεραρχία διεργασιών Μια γονική διεργασία δημιουργεί διεργασίες-παιδιά (parent και children processes) Προκύπτει ιεραρχική οργάνωση, σε δέντρο διεργασιών
45 Λειτουργίες Διεργασιών Δημιουργία και καταστροφή διεργασιών Δυναμική, κατά τη λειτουργία του συστήματος (fork()) Μέσω κλήσεων συστήματος Ιεραρχία διεργασιών Μια γονική διεργασία δημιουργεί διεργασίες-παιδιά (parent και children processes) Προκύπτει ιεραρχική οργάνωση, σε δέντρο διεργασιών Τερματισμός διεργασίας Οικειοθελής, όταν ολοκληρώσει το έργο της (exit()) Βίαιος, λόγω εξωτερικού παράγοντα Αποστολή σήματος (kill()) από άλλη διεργασία τερματισμός από το λειτουργικό όλόγω εσφαλμένης λειτουργίας ( This program has performed an illegal operation στα Windows)
46 Λειτουργίες Διεργασιών Δημιουργία και καταστροφή διεργασιών Δυναμική, κατά τη λειτουργία του συστήματος (fork()) Μέσω κλήσεων συστήματος Ιεραρχία διεργασιών Μια γονική διεργασία δημιουργεί διεργασίες-παιδιά (parent και children processes) Προκύπτει ιεραρχική οργάνωση, σε δέντρο διεργασιών Τερματισμός διεργασίας Οικειοθελής, όταν ολοκληρώσει το έργο της (exit()) Βίαιος, λόγω εξωτερικού παράγοντα Αποστολή σήματος (kill()) από άλλη διεργασία τερματισμός από το λειτουργικό όλόγω εσφαλμένης λειτουργίας ( This program has performed an illegal operation στα Windows) Ο γονέας ενημερώνεται (wait()) Κι αν πεθάνει πριν από το παιδί του;
47 Δέντρο Διεργασιών στο Linux init (1) syslogd (2781) cupsd (3043) smbd (2978) smbd (3018) sshd (20484) sshd (678) bash (1835) vi (1892) firefox (1903) pstree (2001)
48 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ } else { } PID=981 mypid = getpid(); child(); father();
49 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ } else { } PID=981 mypid = getpid(); child(); father();
50 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ } else { } PID=981 mypid = getpid(); child(); father();
51 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : -1 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981
52 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : -1 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981
53 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : -1 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981
54 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : -1 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = -1, errno = if (p < 0) { ENOMEM perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981
55 Δημιουργία στο μοντέλο του UNIX: fork()
56 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ } else { } PID=981 mypid = getpid(); child(); father();
57 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ } else { } PID=981 mypid = getpid(); child(); father();
58 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
59 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
60 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
61 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
62 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
63 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: 987 pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
64 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: 987 pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
65 Δημιουργία στο μοντέλο του UNIX: fork() Δεδομένα : 987 p =? mypid =? Κείμενο: pid_t p, mypid; p = fork(); p = 987 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=981 Δεδομένα : 0 p =? mypid =? Κείμενο: 987 pid_t p, mypid; p = fork(); p = 0 if (p < 0) { perror( fork ); exit(1); }elseif(p == 0){ mypid = getpid(); child(); } else { father(); } PID=987
66 Δημιουργία στο μοντέλο του UNIX: fork() Όλες οι διεργασίες προκύπτουν με fork() [σχεδόν όλες] Ίδιο πρόγραμμα με γονική διεργασία, αντίγραφο χώρου μνήμης, κληρονομεί ανοιχτά αρχεία, συνδέσεις, δικαιώματα πρόσβασης Αντικατάσταση προγράμματος διεργασίας: execve() Η γονική διεργασία ενημερώνεται για το θάνατο του παιδιού με wait() συλλογή τιμής τερματισμού (exit status) Μέχρι τότε, παιδί που έχει καλέσει την exit() είναι zombie Αν ο γονέας πεθάνει πρώτα, η διεργασία γίνεται παιδί της init (PID = 1), που κάνει συνεχώς wait() prog-a Prog-A fork wait Prog-A 987 Prog-B 987 (zombie) Prog-B execve 987 exit
67 Διεργασίες - Σύνοψη Οργάνωση ενός σύγχρονου ΛΣ Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος Διεργασία Process Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής Πίνακας Ελέγχου Διεργασίας Χρονοδρομολόγηση σε συστήματα καταμερισμού χρόνου Λειτουργίες διεργασιών Δημιουργία διεργασιών - το μοντέλο του UNIX Διαδιεργασιακή Επικοινωνία
68 Διαδιεργασιακή Επικοινωνία (IPC) Inter-Process Communication (IPC) Διεργασίες που συνεργάζονται. Γιατί;
69 Διαδιεργασιακή Επικοινωνία (IPC) Inter-Process Communication (IPC) Διεργασίες που συνεργάζονται. Γιατί; Παράλληλη εκτέλεση, επιτάχυνση Δομημένη σχεδίαση, διαχωρισμός προνομίων Ταυτόχρονη πρόσβαση σε κοινά δεδομένα
70 Διαδιεργασιακή Επικοινωνία (IPC) Inter-Process Communication (IPC) Διεργασίες που συνεργάζονται. Γιατί; Παράλληλη εκτέλεση, επιτάχυνση Δομημένη σχεδίαση, διαχωρισμός προνομίων Ταυτόχρονη πρόσβαση σε κοινά δεδομένα Διαφορετικοί Μηχανισμοί από ΛΣ σε ΛΣ Μοιραζόμενη Μνήμη (Shared Memory Segments) Μηνύματα η μ (Microkernels - Mach, POSIX messages) Σήματα (UNIX) Pipes (UNIX, Win32)
71 Μοιραζόμενη Μνήμη Εικονική ήμνήμη P0 Εικονική ήμνήμη P1 Φυσική Μνήμη Πρόσβαση σε κοινό τμήμα μνήμης (shared memory segment) Για περισσότερες από μία διεργασίες Άμεση αλληλεπίδραση, με εντολές load/store Χωρίς κλήσεις συστήματος Ενημέρωση για αλλαγές; έλεγχος (polling) Πώς εξασφαλίζεται ότι δεν γράφουν στο ίδιο σημείο ταυτόχρονα; Το κοινό τμήμα απεικονίζεται στο χώρο εικονικής μνήμης των διεργασιών
72 Μοιραζόμενη Μνήμη Εικονική ήμνήμη P0 Εικονική ήμνήμη P1 Φυσική Μνήμη Πρόσβαση σε κοινό τμήμα μνήμης (shared memory segment) Για περισσότερες από μία διεργασίες Άμεση αλληλεπίδραση, με εντολές load/store Χωρίς κλήσεις συστήματος Ενημέρωση για αλλαγές; έλεγχος (polling) Πώς εξασφαλίζεται ότι δεν γράφουν στο ίδιο σημείο ταυτόχρονα; Το κοινό τμήμα απεικονίζεται στο χώρο εικονικής μνήμης των διεργασιών
73 Μοιραζόμενη Μνήμη Εικονική ήμνήμη P0 Εικονική ήμνήμη P1 Φυσική Μνήμη Πρόσβαση σε κοινό τμήμα μνήμης (shared memory segment) Για περισσότερες από μία διεργασίες Άμεση αλληλεπίδραση, με εντολές load/store Χωρίς κλήσεις συστήματος Ενημέρωση για αλλαγές; έλεγχος (polling) Πώς εξασφαλίζεται ότι δεν γράφουν στο ίδιο σημείο ταυτόχρονα; Το κοινό τμήμα απεικονίζεται στο χώρο εικονικής μνήμης των διεργασιών
74 Μοιραζόμενη Μνήμη Εικονική ήμνήμη P0 Εικονική ήμνήμη P1 Φυσική Μνήμη Πρόσβαση σε κοινό τμήμα μνήμης (shared memory segment) Για περισσότερες από μία διεργασίες Άμεση αλληλεπίδραση, με εντολές load/store Χωρίς κλήσεις συστήματος Ενημέρωση για αλλαγές; έλεγχος (polling) Πώς εξασφαλίζεται ότι δεν γράφουν στο ίδιο σημείο ταυτόχρονα; Το κοινό τμήμα απεικονίζεται στο χώρο εικονικής μνήμης των διεργασιών
75 Επικοινωνία με πέρασμα μηνυμάτων (1) Διεργασία 1 Διεργασία 2 Μ Χώρος Χρήστη Πυρήνας Χώρος Πυρήνα Επικοινωνία χωρίς μοιραζόμενη μνήμη μέσω κλήσεων συστήματος
76 Επικοινωνία με πέρασμα μηνυμάτων (1) Διεργασία 1 Διεργασία 2 Μ Χώρος Χρήστη sendmsg() Μ Πυρήνας Χώρος Πυρήνα Επικοινωνία χωρίς μοιραζόμενη μνήμη μέσω κλήσεων συστήματος
77 Επικοινωνία με πέρασμα μηνυμάτων (1) Διεργασία 1 Διεργασία 2 Μ Μ Χώρος Χρήστη sendmsg() recvmsg() Μ Πυρήνας Χώρος Πυρήνα Επικοινωνία χωρίς μοιραζόμενη μνήμη μέσω κλήσεων συστήματος
78 Επικοινωνία με πέρασμα μηνυμάτων (2) Σχεδιαστικές αποφάσεις
79 Επικοινωνία με πέρασμα μηνυμάτων (2) Σχεδιαστικές αποφάσεις Άμεση ή έμμεση επικοινωνία;
80 Επικοινωνία με πέρασμα μηνυμάτων (2) Σχεδιαστικές αποφάσεις Άμεση ή έμμεση επικοινωνία; Σύγχρονη ή ασύγχρονη επικοινωνία;
81 Επικοινωνία με πέρασμα μηνυμάτων (2) Σχεδιαστικές αποφάσεις Άμεση ή έμμεση επικοινωνία; Σύγχρονη ή ασύγχρονη επικοινωνία; Προσωρινή αποθήκευση μηνυμάτων σε απομονωτές Προσωρινή αποθήκευση μηνυμάτων σε απομονωτές (buffering)
82 Επικοινωνία με πέρασμα μηνυμάτων (2) Ονοματολογία Άμεσα, συμμετρικά send(p, message); receive(q, message) όπου P, Q είναι Process IDs Άμεσα, ασύμμετρα send(p, message); receive(id, message) όπου το P δίνεται, το id τίθεται από την receive() Έμμεσα, με χρήση γραμματοθυρίδων (mailboxes) / θυρών (ports) send(a, message); receive(a, message) όπου Α το αναγνωριστικό της θυρίδας (π.χ. ένας ακέραιος) δημιουργία και καταστροφή θυρίδων;
83 Επικοινωνία με πέρασμα μηνυμάτων (3) Συγχρονισμός Αποστολές με ή χωρίς αναμονή (blocking / non-blocking send) Λήψη με ή χωρίς αναμονή (blocking / non-blocking receive) Σύγχρονος ή ασύγχρονος τρόπος λειτουργίας (rendez-vous) Προσωρινή ρ αποθήκευση σε απομονωτές Χωρίς προσωρινή αποθήκευση (σύγχρονα) Πεπερασμένη χωρητικότητα ο αποστολέας μπλοκάρει όταν ο απομονωτής γεμίσει Απεριόριστη χωρητικότητα με δυναμική δέσμευση χώρου
84 Σήματα στο UNIX (1) Ενσωματωμένα ήδη από τις πρώτες εκδόσεις του UNIX (Έκδοση 7) Ασύγχρονη Ειδοποίηση για Εξωτερικό Γεγονός Κάθε σήμα έχει ένα συμβολικό όνομα SIGINT, SIGTSTP, SIGCONT, SIGSTOP, SIGFPE, SIGSEGV, SIGABRT, SIGQUIT, SIGWINCH, SIGTERM, SIGKILL Και διαφορετική σημασία, π.χ. Διακοπή Πληκτρολογίου, Ctrl-C (SIGINT) Αναστολή από το πληκτρολόγιο (SIGTSTP) Τερματισμός (SIGTERM) Βίαιος Τερματισμός (SIGKILL) Κάποια αποστέλλονται αυτόματα από το ΛΣ κάποια από άλλη Κάποια αποστέλλονται αυτόματα από το ΛΣ, κάποια από άλλη διεργασία (kill())
85 Σήματα στο UNIX (2) Για εισερχόμενο σήμα, εκτελείται προκαθορισμένη ενέργεια (συνήθως τερματισμός) Η wait() επιστρέφει ανάλογο status Το σήμα μπορεί να συλληφθεί, οπότε εκτελείται συνάρτηση χειρισμού του (signal(), sigaction()) π.χ., όταν πατηθεί Ctrl-C, C, σώσε το ανοιχτό αρχείο Τα SIGSTOP και SIGKILL δεν πιάνονται Αναξιόπιστος μηχανισμός επικοινωνίας Ασύγχρονος, με race conditions Το POSIX προβλέπει αξιόπιστα σήματα (sigprocmask(), sigsuspend())
86 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] άκρο εγγραφής M read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης Ένας από τους βασικότερους μηχανισμούς στο UNIX Μονόδρομη μεταφορά δεδομένων Από το άκρο εγγραφής στο άκρο ανάγνωσης Δημιουργία με pipe(), επικοινωνία με write() και read() Αν η σωλήνωση είναι άδεια; η read() μπλοκάρει
87 Σωληνώσεις στο UNIX (1) Διεργασία Χώρος Χρήστη Χώρος Πυρήνα int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));
88 Σωληνώσεις στο UNIX (1) Διεργασία Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));
89 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] άκρο εγγραφής M Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));
90 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] άκρο εγγραφής M int fd[2]; int num1, num2; read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));
91 Σωληνώσεις στο UNIX (1) Διεργασία write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης int fd[2]; int num1, num2; pipe(fd); write(fd[1], &num1, sizeof(num1)); read(fd[0], &num2, sizeof(num2));
92 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας Χώρος Χρήστη Χώρος Πυρήνα pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
93 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
94 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
95 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] read fd[0] Διεργασία παιδί write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
96 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] Διεργασία παιδί write fd[1] read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
97 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] Διεργασία παιδί read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
98 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] άκρο εγγραφής M Διεργασία παιδί read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
99 Σωληνώσεις στο UNIX (2) Διεργασία πατέρας write fd[1] Διεργασία παιδί read fd[0] Χώρος Χρήστη Χώρος Πυρήνα άκρο εγγραφής άκρο ανάγνωσης pipe(fd); fork(); ο πατέρας κλείνει το άκρο ανάγνωσης το παιδί κλείνει το άκρο εγγραφής
100 Ερωτήσεις;
101 Ερωτήσεις; και στη λίστα:
Διεργασίες - Σύνοψη. Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος. Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Διεργασίες
Διαβάστε περισσότεραΧρονοδρομολογητής Κυκλικής Επαναφοράς
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 4 η Εργαστηριακή Άσκηση: Χρονοδρομολογητής Κυκλικής Επαναφοράς Λειτουργικά Συστήματα Υπολογιστών
Διαβάστε περισσότεραΔιαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 2 η Εργαστηριακή Άσκηση: Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Λειτουργικά
Διαβάστε περισσότεραΔιαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων 2 η Εργαστηριακή Άσκηση: Διαχείριση Διεργασιών και Διαδιεργασιακή Επικοινωνία Λειτουργικά
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΠεριγραφή και Έλεγχος ιεργασιών
Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1 ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact: nifantop@unipi.gr Περιεχόμενα ενότητας Διεργασίες Κλήσεις δημιουργίας και τερματισμού διεργασιών Επικοινωνία διεργασιών μέσω
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότερα1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»
1. Εισαγωγή Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 3 «Διεργασίες» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας Η έννοια της διεργασίας (process) είναι θεμελιώδης για την κατανόηση του τρόπου με τον οποίο
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΕικονική Μνήμη (1/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη
Διαβάστε περισσότεραΔιεργασίες και Νήματα (2/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΗΥ321)
Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)! Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΔΙΕΡΓΑΣΙΕΣ +- Με τον όρο διεργασία στο UNIX εννοούμε τη δυναμικη πράξη της
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος 2010-2011
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Θέμα
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων
Διαβάστε περισσότεραΣκελετός Παρουσίασης
Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Σκελετός
Διαβάστε περισσότεραΛειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα
Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα
Διαβάστε περισσότεραΛειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΤι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα
ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3.1 Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός ανταγωνισµού µεταξύ
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος 2011-2012
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος Κανονική Εξέταση Λύσεις
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΔίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals
Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr
ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή
Διαβάστε περισσότεραΔημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1
Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ Πολυεπεξεργασία Διεργασία (process) Νήμα (thread) Εργασία (task/job) Διεργασίες Διεργασία είναι μια (συγκεκριμένη) εκτέλεση κάποιου προγράμματος για λογαριασμό κάποιου
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΛειτουργικά Συστήματα
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 3 : Διεργασίες Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον
Διαβάστε περισσότερα2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ
2. Σκοποί και Λειτουργίες των ΛΣ Λειτουργικά Συστήματα Η/Υ I. Προστασία του υλικού II. Επικοινωνία με τον χρήστη III. Διαχείριση, αξιοποίηση και έλεγχος πόρων IV. Ικανότητα και ευκολία εξέλιξης Κεφάλαιο
Διαβάστε περισσότεραΕισαγωγή στα Λειτουργικά Συστήματα
Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΕισαγωγή εκτελέσιμου κώδικα σε διεργασίες
0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε
Διαβάστε περισσότεραΤο μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες Το μάθημα ΛΣ Πραγματικού Χρόνου Θεωρητικό υπόβαθρο Αρχές Προγραμματισμού Παραδείγματα ΛΣ Εργασίες
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX
Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) σήματα (signals) Ανάγκη Ότι είδαμε
Διαβάστε περισσότεραΝτίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4. Λειτουργικά Συστήματα- Φροντιστήριο 2
Ντίρλης Νικόλαος- ΕΤΥ 2 ο Φροντιστήριο Παρασκευή, 18/10/2013 Β4 Φροντιστήριο 2 1 Λειτουργικό Σύστημα -> Multitasking Κάθε διεργασία μπορεί να ειδωθεί σαν μία δέσμη στοιχείων που διατηρούνται από τον πυρήνα
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ ΔΟΜΗ ΤΟΥ Η/Υ (PC compatibles) RAM CPU PCI Bridge PCI Bridges P2P Bridge RAM CPU PCI Bridge PCI2ISA Bridge Δομή της CPU Register file IP CPU TLB Level-1 cache RAM SP MMU
Διαβάστε περισσότεραΕνότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1
ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Σήματα (signals)
Προγραμματισμός συστημάτων UNIX/POSIX Σήματα (signals) Σήματα (signals) Τα σήματα είναι «διακοπές» λογισμικού (software interrupts) οι οποίες διακόπτουν την κανονική λειτουργία μίας διεργασίας. Προκαλούνται
Διαβάστε περισσότεραΥποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε
Διαβάστε περισσότεραΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Ύλη του Μαθήµατος Μάθηµα: Λειτουργικά Συστήµατα ΙΙ UNIX Βιβλίο Μαθήµατος: α) Tanenbaum, A.:ΣύγχροναΛειτουργικάΣυστήµατα, 2ηΈκδοση, Εκδόσεις Κλειδάριθµος. β) Wrightson, K.,
Διαβάστε περισσότεραΠρογραμματισμός Ταυτόχρονος Προγραμματισμός
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΛειτουργικά Συστήματα Πραγματικού Χρόνου
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες Μ.Στεφανιδάκης Το μάθημα ΛΣ Πραγματικού Χρόνου Θεωρητικό υπόβαθρο Αρχές Προγραμματισμού Παραδείγματα
Διαβάστε περισσότεραΕπιτεύγµατα των Λ.Σ.
Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος
Διαβάστε περισσότεραΛειτουργικά Συστήματα
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 2β: Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διαβάστε περισσότεραΛειτουργικά συστήματα πραγματικού χρόνου
Λειτουργικά συστήματα πραγματικού χρόνου Τι είναι λειτουργικό σύστημα πραγματικού χρόνου; Λειτουργικό Σύστημα Πραγματικού Χρόνου (ΛΣΠΧ) είναι ένα λειτουργικό σύστημα που προορίζεται για εφαρμογές πραγματικού
Διαβάστε περισσότεραΤο λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Διαβάστε περισσότεραΔιαχείριση Κύριας Μνήμης
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διαχείριση Κύριας Μνήμης Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Διαχείριση
Διαβάστε περισσότεραΜάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή
Μάθημα 8: Επικοινωνία Συσκευών με τον Επεξεργαστή 8.1 Τακτική σάρωση (Polling) Ας υποθέσουμε ότι έχουμε ένα πληκτρολόγιο συνδεδεμένο σε ένα υπολογιστικό σύστημα. Το πληκτρολόγιο είναι μια μονάδα εισόδου.
Διαβάστε περισσότεραΒασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1
Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution
Διαβάστε περισσότερα3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα
ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα 3. Λειτουργικό Σύστηµα 3. Η εξέλιξη των λειτουργικών συστηµάτων 3.2 Αρχιτεκτονική λειτουργικών συστηµάτων 3.3 Συντονισµός των δραστηριοτήτων του υπολογιστή 3.4 Χειρισµός
Διαβάστε περισσότεραΛΟΓΙΣΜΙΚΟ (software)
ΛΟΓΙΣΜΙΚΟ (software) Το Λογισµικό του Ηλεκτρονικού Υπολογιστή Περιεχόµενα Ορισµός Λογισµικού Κατηγορίες Λογισµικό Συστήµατος Λογισµικό Εφαρµογών Το λογισµικό είναι: Το λογισµικό Το σύνολο των προγραµµάτων
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Λειτουργικά Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:09 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών
Διαβάστε περισσότεραΟργάνωση Υπολογιστών (IΙI)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό
Διαβάστε περισσότεραΔιαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1
Διαδιεργασιακή επικοινωνία (inter-process communication IPC) Προγραμματισμός II 1 lalis@inf.uth.gr Συνεργασία ανάμεσα σε διεργασίες Για ασφάλεια/ανεξαρτησία, το ΛΣ εξασφαλίζει πλήρη απομόνωση ανάμεσα στις
Διαβάστε περισσότεραΕισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος
Εισαγωγή στα Λειτουργικά συστήματα Ι Καθηγητής Κώστας Αναγνωστόπουλος Τι είναι Λειτουργικό Σύστημα Ένα πρόγραμμα ή συλλογή προγραμμάτων που ελέγχει και διαχειρίζεται το υλικό μιας υπολογιστικής μηχανής
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Πρόγραμμα και εκτέλεση προγράμματος Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραΘέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας
Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας Το επίπεδο προτεραιότητας µιας διεργασίας µπορεί να αλλάξει µε χρήση της συνάρτησης nice. Κάθε διεργασία διαθέτει µια τιµή που καλείται
Διαβάστε περισσότεραΛειτουργικά Συστήματα Πραγματικού Χρόνου
Λειτουργικά Συστήματα Πραγματικού Χρόνου 2006-07 Λειτουργικά Συστήματα Πραγματικού Χρόνου Η χρήση του χρόνου Μ.Στεφανιδάκης Συστήματα πραγματικού χρόνου: ελεγκτής και ελεγχόμενο σύστημα real-time system
Διαβάστε περισσότεραΠροηγμένοι Μικροεπεξεργαστές. Εργαστήριο 4 - Editor
Προηγμένοι Μικροεπεξεργαστές Εργαστήριο 4 - Editor Περιγραφή Υλοποίηση ενός υποτυπώδους editor που θα: Διαβάζει ένα προκαθορισμένο αρχείο Θα το απεικονίζει στην οθόνη Θα κάνει highlight με έναν ελεγχόμενο
Διαβάστε περισσότεραΟργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:
Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά
Διαβάστε περισσότεραΛειτουργικά Συστήματα (ΗΥ321)
Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 17: Χειρισμός Εισόδου - Εξόδου Συστήματα Εισόδου / Εξόδου: Το Υλικό Ε/Ε Μεγάλη ποικιλία συσκευών Ε/Ε Και μεγαλώνει Συνηθισμένες έννοιες: Πόρτα Δίαυλος Κοινό μέσο πρόσβασης
Διαβάστε περισσότεραΚεφάλαιο 3. Διδακτικοί Στόχοι
Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΛιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Το Λ.Σ. είναι υπεύθυνο για την κατανομή των πόρων του συστήματος (επεξεργαστές, μνήμη, αποθηκευτικά μέσα και συσκευές εισόδου/εξόδου) στα διάφορα ανταγωνιζόμενα προγράμματα
Διαβάστε περισσότεραΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών
ΗΜΥ 213 - Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών Διάλεξη 4 Περίληψη Συναρτήσεις Χρονόμετρο Χρήση Διακοπτών Coprocessor Διαχείριση
Διαβάστε περισσότεραΈνα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,
Διεργασίες 1. Εισαγωγή - ορισμοί 2. Καταστάσεις διεργασίας 3. Διαγράμματα καταστάσεων 4. Μπλοκ ελέγχου διεργασίας PCB 5. Υπηρεσίες Λ.Σ. για διαχείριση διεργασιών 6. Εναλλαγή Πλαισίου (Context Switch) 7.
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής ΕΥ311-Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Εργαστήριο: Παραδείγματα δημιουργίας διεργασιών στο Linux Ένα πρόγραμμα (το στιγμιότυπο της εκτέλεσης του οποίου
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκό Έτος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΛιβανός Γιώργος Εξάμηνο 2017Β
Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Εργαστήριο
Διαβάστε περισσότεραΒασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX
Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί
Διαβάστε περισσότεραΛειτουργικά Συστήματα
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 2 : Σκοποί ΛΣ Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΣκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»
Σκοπός Μαθήματος Λειτουργικά Συστήματα Η/Υ Θεωρία: Βασικές έννοιες των λειτουργικών συστημάτων Βασικές αρχές σχεδιασμού τους Κεφάλαιο 1 «Εισαγωγή» Εργαστήριο: Πρακτική εξάσκηση στη χρήση των λειτουργικών
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)
Προγραμματισμός συστημάτων UNIX/POSIX Διεργασίες (processes) Δομή αρχείου προγράμματος Πρόγραμμα (program) ονομάζεται το εκτελέσιμο αρχείο που βρίσκεται αποθηκευμένο στο δίσκο (π.χ. το a.out, ή το ls ή
Διαβάστε περισσότεραΛειτουργικά Συστήματα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Λειτουργικά Συστήματα Ενότητα 3: Διεργασίες. Καταστάσεις Διεργασιών. PCB. Νήματα. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΠροηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 4 Real Mode Interrupts
Προηγμένοι Μικροεπεξεργαστές Φροντιστήριο 4 Real Mode Interrupts Επισκόπηση Μορφές control tranfer Γενικά μη προγραμματισμένες Ασυγχρονα προς την εκτέλεση του προγράμματος Hardware interrupts Σύγχρονα
Διαβάστε περισσότεραΜάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)
Μάθημα 6 ο Χρονοδρομολόγηση (Scheduling) Σκοπός του μαθήματος Στην ενότητα αυτή θα εξηγήσουμε το ρόλο και τη λειτουργία της χρονοδρομολόγησης σε ένα Λειτουργικό Σύστημα. Θα μάθουμε: Να ορίζουμε τι είναι
Διαβάστε περισσότεραΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ
ΔΙΑΧΥΤΑ ΚΑΙ ΕΝΣΩΜΑΤΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ CPUs Διδάσκων: Παναγιώτης Καρκαζής Περίγραμμα -Συσκευές Ι/Ο - Διακοπές, Εξαιρέσεις, Παγίδες -Καταστάσεις λειτουργίας -Συνεπαξεργαστές mechanism Συσκευές Ι/Ο Οι συσκευές
Διαβάστε περισσότεραΚεφάλαιο 3: Λειτουργικά Συστήματα
Κεφάλαιο 3: Λειτουργικά Συστήματα (από το βιβλίο του Brookshear) B Μέρος Συντονισμός Δραστηριοτήτων Υπολογιστή Εισαγωγή Σήμερα θα περιγράψουμε πως ένα λειτουργικό σύστημα συντονίζει την εκτέλεση Λογισμικού
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Κεντρικής Μονάδας Επεξεργασίας (CPU) Βασίλης Σακκάς 4/12/2013 1 Xρονοδρομολόγηση Διεργασιών 1 Η χρονοδρομολόγηση σε ένα Λ/Σ αποφασίζει ποια διεργασία θα χρησιμοποιεί
Διαβάστε περισσότεραΤο λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Υποσύστημα μνήμης Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Δομή Λειτουργικών Συστημάτων Βασίλης Σακκάς 20/11/2013 1 Δομή ενός Λ/Σ -1 Μονολιθικά συστήματα (monolithic systems) Λειτουργικά συστήματα με ανυπαρξία δομής: "η μεγάλη ακαταστασία"
Διαβάστε περισσότεραΕργαστήριο 7 fork(), exec(), signals
Εργαστήριο 7 fork(), exec(), signals Στο εργαστήριο θα μελετηθούν: Παραδείγματα χρήσης των συναρτήσεων fork και exec Συνάρτηση waitpid Συνάρτηση WIFEXITED Συνάρτηση WEXITSTATUS Παράδειγμα χρήσης σημάτων
Διαβάστε περισσότεραΤμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)
Διαβάστε περισσότεραΕισαγωγή...1. 1 Χαρακτηριστικά του πυρήνα του Linux...7. 1.1 Ο ρόλος του λειτουργικού συστήματος...7
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Διπλωματική Εργασία Υλοποίηση ενός Γενικού Στρώματος Επικοινωνίας Πυρήνα προς Πυρήνα
Διαβάστε περισσότερα