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

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

Διεργασίες.

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


Παρουσίαση με θέμα: "Διεργασίες."— Μεταγράφημα παρουσίασης:

1 Διεργασίες

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

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

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

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

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

7 Διάγραμμα των καταστάσεων μιας διεργασίας

8 Αναπαράσταση Εκτέλεσης Διεργασιών (ΥΣ με μια ΚΜΕ)
running P1 ready waiting P2 ready P3 ready

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

10 Πίνακας Ελέγχου Διεργασίας (συνέχεια)

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

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

13 Ουρές Αναμονής του ΛΣ

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

15 Πίνακας Ουρών Συσκευών

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

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

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

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

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

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

22 Δένδρο Διεργασιών σε ένα Σύστημα Unix

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

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

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

26 Μοντέλα Επικοινωνίας Πέρασμα μηνυμάτων Κοινή Μνήμη


Κατέβασμα ppt "Διεργασίες."

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


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