Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Διεργασίες. Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Διεργασίες. Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and."— Μεταγράφημα παρουσίασης:

1 Διεργασίες

2 Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, “Operating Systems Concepts”, 7 th Edition Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: Επίσης χρησιμοποιήθηκε υλικό από τις διαφάνειες παραδόσεων του βιβλίου: William Stallings, “Operating Systems: Internal and Design Principles”, Fourth Edition”, που βρίσκονται στο δικτυακό τόπο:

3 Σελίδα 3 ΔΙΕΡΓΑΣΙΕΣ Περιεχόμενα — Η έννοια της διεργασίας — Ουρές αναμονής — Χρονοπρογραμματιστές — Εναλλαγή περιβάλλοντος λειτουργίας — Λειτουργίες διεργασιών — Διαδιεργασιακή επικοινωνία

4 Σελίδα 4 ΔΙΕΡΓΑΣΙΕΣ Η Έννοια της Διεργασίας — Διεργασία (Process) – ο μηχανισμός εκτέλεσης ενός προγράμματος — Η διαδικασία ενεργή οντότητα (περιέχει ένα σύνολο από συσχετισμένους με αυτή πόρους προκειμένου να εκτελεστεί), το πρόγραμμα παθητική — Σημαντικό: ένα πρόγραμμα από μόνο του δεν αποτελεί διεργασία — Κάθε διεργασία εκτελεί ένα μοναδικό πρόγραμμα. Το ίδιο πρόγραμμα μπορεί να εκτελείται από πολλές διεργασίες (με διαφορετικές ταχύτητες και ακολουθίες εκτέλεσης των εντολών) — Η εκτέλεση μιας διεργασίας γίνεται σειριακά. Το λειτουργικό μπορεί όμως να εκτελεί πολλές διεργασίες «παράλληλα» μεταξύ τους

5 Σελίδα 5 ΔΙΕΡΓΑΣΙΕΣ Καταστάσεις Διεργασίας — new: η διεργασία δημιουργείται — running: η διεργασία εκτελείται σε κάποιον επεξεργαστή — waiting: η διεργασία αναμένει (απενεργοποιημένη) κάποιο συμβάν — ready: η διεργασία αναμένει να τις δοθεί (από το ΛΣ) σε κάποιον επεξεργαστή για την συνέχιση της εκτέλεσης της — terminated: η διεργασία έχει ολοκληρώσει την εκτέλεσή της

6 Σελίδα 6 ΔΙΕΡΓΑΣΙΕΣ Αλλαγές Κατάστασης Διεργασίας — running -> waiting -> ready: Μια διεργασία αλλάζει την κατάσταση της από running σε waiting συνήθως όταν περιμένει να τις δοθεί κάποιος πόρος ή επιθυμεί να χρησιμοποιήσει κάποιον πόρο που δεν είναι διαθέσιμος και πρέπει να ελευθερωθεί. Εν συνεχεία, η διεργασία αλλάζει σε κατάσταση ready όταν τις δοθεί ο πόρος που ζητήθηκε — running -> ready: Μια διεργασία αλλάζει την κατάσταση της από running σε ready συνήθως όταν η εκτέλεση της διακόπτεται από διακοπή υλικού (hardware interrupt) ή κλήση συστήματος (software trap) — ready -> running: Μια διεργασία αλλάζει την κατάσταση της από ready σε running όταν τις δοθεί επεξεργαστής για να συνεχίσει την εκτέλεση της

7 Σελίδα 7 ΔΙΕΡΓΑΣΙΕΣ Διάγραμμα των καταστάσεων μιας διεργασίας

8 Σελίδα 8 ΔΙΕΡΓΑΣΙΕΣ Αναπαράσταση Εκτέλεσης Διεργασιών (ΥΣ με μια ΚΜΕ) running P1 ready waiting running P2ready waiting running P3ready waiting

9 Σελίδα 9 ΔΙΕΡΓΑΣΙΕΣ Πίνακας Ελέγχου Διεργασίας – Process Control Block (PCB) Βασικές πληροφορίες που συσχετίζονται με την κάθε διεργασία: — Κατάσταση διεργασίας (process state) — Μετρητής εντολών προγράμματος (program counter) — Καταχωρητές της ΚΜΕ (CPU registers) — Πληροφορίες για το χρονοπρογραμματισμό της ΚΜΕ (CPU scheduling information) — Πληροφορίες διαχείρισης μνήμης (memory-management information) — Συλλογή στοιχείων διαχείρισης (accounting information) — Πληροφορίες κατάστασης εισόδου/εξόδου (Ι/Ο status information)

10 Σελίδα 10 ΔΙΕΡΓΑΣΙΕΣ Πίνακας Ελέγχου Διεργασίας (συνέχεια)

11 Σελίδα 11 ΔΙΕΡΓΑΣΙΕΣ Νήματα — Το νήμα είναι η βασική μονάδα χρησιμοποίησης της ΚΜΕ — Τα νήματα που ανήκουν σε μία διεργασία διαμοιράζονται:  το τμήμα κώδικα,  το τμήμα δεδομένων  ανοικτά αρχεία  τους άλλους πόρους του ΛΣ — Οι διεργασίες μπορεί να είναι μονονηματικές ή πολυνηματικές

12 Σελίδα 12 ΔΙΕΡΓΑΣΙΕΣ Ουρές Συσκευών — Για κάθε συσκευή, το ΛΣ διατηρεί ουρά με τις διεργασίες που περιμένουν (σε κατάσταση waiting) για την ολοκλήρωση κάποιας αίτησης — Μια διεργασία προστίθεται σε μια ουρά αναμονής όταν καλεί (άμεσα ή έμμεσα) μια από τις συναρτήσεις πρόσβασης της συσκευής αλλά η εξυπηρέτηση της αίτησης δεν είναι εφικτή άμεσα — Κάθε φορά που ολοκληρώνεται μια λειτουργία της συσκευής (διακοπή), γίνεται έλεγχος κατά πόσο μπορούν πλέον να εξυπηρετηθούν κάποιες από τις αιτήσεις των διεργασιών που βρίσκονται στην ουρά αναμονής

13 Σελίδα 13 ΔΙΕΡΓΑΣΙΕΣ Ουρές Αναμονής του ΛΣ

14 Σελίδα 14 ΔΙΕΡΓΑΣΙΕΣ Επιλογή Διεργασίας προς Εκτέλεση — Στις ουρές αναμονής τοποθετούνται οι πίνακες ελέγχου των διεργασιών που αναμένουν την ολοκλήρωση των αιτήσεών τους — Όταν η αίτηση μιας διεργασίας εξυπηρετηθεί, το ΛΣ επαναφέρει την διεργασία σε κατάσταση ready και την τοποθετεί στην ουρά αναμονής (ready queue) των διεργασιών έτοιμων προς εκτέλεση — Ο γρήγορος έλεγχος της ουράς έτοιμων διεργασιών είναι αποφασιστικής σημασίας για την απόδοση του συστήματος

15 Σελίδα 15 ΔΙΕΡΓΑΣΙΕΣ Πίνακας Ουρών Συσκευών

16 Σελίδα 16 ΔΙΕΡΓΑΣΙΕΣ Εναλλαγή Περιβάλλοντος Λειτουργίας — Όταν η ΚΜΕ ανατίθεται σε μια νέα διεργασία για να συνεχίσει την εκτέλεση της, το ΛΣ πρέπει να σώσει την κατάσταση της τρέχουσας διεργασίας (που εκτελείται εκείνη την στιγμή) και να φορτώσει την κατάσταση της νέας διεργασίας προς εκτέλεση — Αυτή η διαδικασία ονομάζεται εναλλαγή περιβάλλοντος λειτουργίας (context switch). O χρόνος που απαιτείται για την εκτέλεση της λειτουργίας αυτής είναι φόρτος (overhead) για το σύστημα (το οποίο όσο ασχολείται με την εναλλαγή δεν κάνει χρήσιμη δουλειά για τις διεργασίες των χρηστών) — Ο χρόνος της εναλλαγής εξαρτάται (α) από την πολυπλοκότητα του ΛΣ και (β) την υποστήριξη από το υλικό του ΥΣ (κυρίως από τον επεξεργαστή και την μονάδα διαχείρισης μνήμης)

17 Σελίδα 17 ΔΙΕΡΓΑΣΙΕΣ Εναλλαγή Περιβάλλοντος Λειτουργίας (συνέχεια) ανενεργή Διεργασία 0Λειτουργικό ΣύστημαΔιεργασία 1 Αποθήκευση κατάστασης στο PCB0 εκτέλεση Ανάκτηση κατάστασης από PCB1 εκτέλεση Αποθήκευση κατάστασης στο PCB1 Ανάκτηση κατάστασης από PCB εκτέλεση ανενεργή Διακοπή ή κλήση συστήματος Χρόνος Εκτέλεσης ΛΣ (context switch)

18 Σελίδα 18 ΔΙΕΡΓΑΣΙΕΣ Κλασική Υλοποίηση Εναλλαγής Περιβάλλοντος Λειτουργίας — Η εναλλαγή περιβάλλοντος λειτουργίας γίνεται συνήθως μέσω ειδικής κλήσης συστήματος, η οποία μπορεί να ενεργοποιηθεί είτε μέσα από κώδικα χειρισμού διακοπών (interrupt handler) είτε μέσα από άλλες συναρτήσεις βιβλιοθήκης ή κλήσεις συστήματος — Η κλήση εναλλαγής περιβάλλοντος λειτουργίας, σώζει την κατάσταση της τρέχουσας διεργασίας στον πίνακα ελέγχου της και επαναφέρει την κατάσταση της διεργασίας προς εκτέλεσης χρησιμοποιώντας τις τιμές που έχουν αποθηκευτεί στο αντίστοιχο πίνακα ελέγχου — Κατά την διάρκεια της εναλλαγής γίνεται και αλλαγή από την στοίβα συστήματος της τρέχουσας διεργασίας στην στοίβα συστήματος της νέας διεργασίας, με αποτέλεσμα όταν επιστρέφει η κλήση συστήματος να συνεχίσει η εκτέλεση του κώδικα της νέας διεργασίας

19 Σελίδα 19 ΔΙΕΡΓΑΣΙΕΣ Αναπαράσταση Κλήσης Εναλλαγής Περιβάλλοντος Λειτουργίας foo1 u stack foo1 foo2 foo3 foo2 foo3 foo1 ctxt P1 running P2 ready P2 running P1 ready u stack foo2 s stack ctxt u stack foo1 s stack ctxt u stack foo2 s stack foo3 ctxt foo3

20 Σελίδα 20 ΔΙΕΡΓΑΣΙΕΣ Δημιουργία Νέας Διεργασίας — Οι πατρικές διεργασίες (Parent process) δημιουργούν διεργασίες παιδιά (children processes), οι οποίες με τη σειρά τους, δημιουργούν άλλες διεργασίες, δημιουργώντας έτσι ένα δένδρο διεργασιών — Διαμοιρασμός πόρων  Οι «γονείς και τα παιδιά» μοιράζονται όλους τους πόρους  Τα παιδιά παίρνουν υποσύνολο των πόρων  Οι πατρικές και οι θυγατρικές δεν μοιράζονται κανέναν πόρο — Εκτέλεση  Οι πατρικές και οι θυγατρικές διεργασίες εκτελούνται ταυτόχρονα  Οι πατρικές διεργασίες περιμένουν τον τερματισμό των παιδιών

21 Σελίδα 21 ΔΙΕΡΓΑΣΙΕΣ Δημιουργία Διεργασίας (συνέχεια) — Χώρος Διευθύνσεων:  Το παιδί αντίγραφο του πατέρα  Το παιδί φορτώνει και εκτελεί κάποιο πρόγραμμα — Παραδείγματα στο UNIX:  Με την κλήση συστήματος fork() δημιουργούνται νέες διεργασίες  Με την κλήση συστήματος exec(), η οποία χρησιμοποιείται μετά την fork() για την αντικατάσταση του χώρου μνήμης της διεργασίας με ένα νέο πρόγραμμα  Με την κλήση συστήματος clone() δημιουργούνται νέα νήματα εκτέλεσης (threads of control)

22 Σελίδα 22 ΔΙΕΡΓΑΣΙΕΣ Δένδρο Διεργασιών σε ένα Σύστημα Unix

23 Σελίδα 23 ΔΙΕΡΓΑΣΙΕΣ Τερματισμός Διεργασίας — Η διεργασία εκτελεί την τελευταία εντολή και καλεί το ΛΣ (exit).  Μεταφορά δεδομένων προς τον πατέρα (μέσω wait).  Οι πόροι της διεργασίας επανέρχονται στη διάθεση του ΛΣ — Η πατρική διεργασία μπορεί να διακόψει τη θυγατρική (abort).  Η θυγατρική έχει υπερβεί τους πόρους που της είχαν ανατεθεί  Η εργασία που ανατέθηκε στο παιδί δεν χρειάζεται — Η διεργασία πατέρας τερματίζει την εκτέλεση της  To ΛΣ δεν επιτρέπει στο παιδί να συνεχίσει εφόσον ο πατέρας τερματίσει  Διαδοχικοί Τερματισμοί

24 Σελίδα 24 ΔΙΕΡΓΑΣΙΕΣ Συνεργαζόμενες Διεργασίες — Οι ανεξάρτητες (Independent) διεργασίες δεν επηρεάζουν άλλες διεργασίες ούτε και επηρεάζονται από την εκτέλεση άλλων διεργασιών — Οι συνεργαζόμενες (Cooperating) διεργασίες μπορούν να επηρεάσουν ή να επηρεαστούν από την εκτέλεση άλλων διεργασιών — Κύριοι λόγοι για την δημιουργία συνεργαζόμενων διεργασιών:  Διαχείριση κοινής πληροφορίας  Επιτάχυνση υπολογισμών  Διαχωρισμός κώδικα σε ξεχωριστά τμήματα

25 Σελίδα 25 ΔΙΕΡΓΑΣΙΕΣ Επικοινωνία μεταξύ Διεργασιών — Οι διεργασίες επικοινωνούν μεταξύ τους για να επιτευχθεί:  ανταλλαγή δεδομένων  συγχρονισμός επεξεργασίας — Υπάρχουν δύο βασικές προσεγγίσεις επικοινωνίας:  χρήση κοινής μνήμης  ανταλλαγή μηνυμάτων — Κοινή μνήμη (shared memory): οι διεργασίες χρησιμοποιούν κοινές μεταβλητές των οποίων τις τιμές αλλάζουν κατάλληλα — Ανταλλαγή μηνυμάτων (message passing): οι διεργασίες επικοινωνούν στέλνοντας και λαμβάνοντας μηνύματα

26 Σελίδα 26 ΔΙΕΡΓΑΣΙΕΣ Μοντέλα Επικοινωνίας Πέρασμα μηνυμάτων Κοινή Μνήμη


Κατέβασμα ppt "Διεργασίες. Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google