1 / 23

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

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

eliana-odom
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Περίληψη • Διεργασίες • Πολυπρογραμματισμός • Καταστάσεις Διεργασιών • Περιγραφή διεργασιών στο ΛΣ • Έλεγχος διεργασιών • Το ΛΣ Linux

  3. Διεργασία (process) • Διεργασία είναι κάθε πρόγραμμα που εκτελείται • Κώδικας του προγράμματος (program code) • Δεδομένα (data) τα οποία χρειάζονται από το πρόγραμμα (μεταβλητές, ενδιάμεση μνήμη (buffers), work space…) • Κατάσταση της διεργασίας (execution context or process state). • Καταχωρητές του επεξεργαστή και δεδομένα τα οποία χρησιμοποιεί το ΛΣ για να παρακολουθεί και να ελέγχει κάθε διεργασία (προτεραιότητα, κατάσταση Ε/Ε, κλπ). • Ή έννοια της διεργασίας είναισημαντική στην όλη λειτουργία του ΛΣ. • Κάθε πρόγραμμα αποτελείται από μια ή περισσότερες διεργασίες ή υποδιεργασίες (threads). • Ο καταμερισμός των πόρων του συστήματος γίνεται μεταξύ των διεργασιών • Διεργασίες συναγωνίζονται για πρόσβαση στους πόρους του συστήματος • Το ΛΣ επίσης αποτελείται από διάφορες διεργασίες.

  4. Διεργασία (process) • Τρόποι Δημιουργίας Διεργασιών • Υποβολή εργασίας (batch job submission) • Είσοδος νέου χρήστης (user login) • Παροχή κάποιας υπηρεσίας από το ΛΣ. • Μια διεργασία (εφαρμογή) δημιουργεί μια νέα (spawned child process) • Όταν δημιουργηθεί η νέα διεργασία το ΛΣ δημιουργεί τις απαιτούμενες δομές έτσι που να μπορεί να τη διαχειριστεί • Τρόποι τερματισμού διεργασιών • Κανονικός τερματισμός • Διάφορα λάθη (π.χ., αριθμητικά, προσπάθεια πρόσβασης σε μη επιτρεπτό χώρο, ΄χρήση μη επιτρεπτών εντολών) • Αποτυχία κάποιον συσκευών Ε/Ε • Παραβίαση χρονικών περιθωρίων • Όταν τερματίζεται μια διεργασία ελευθερώνεται η δεσμευμένη μνήμη.

  5. Λίστα Διεργασιών (Process List) CPU Registers Process List i i j PC Context Base b Process A Data Limit h Program Code Other Registers Context … Process B Data h Program Code

  6. Πολυπρογραμματισμός (multiprogramming) Δ1 Δ2 Δ3 Δ4 0xFFFF • Πολυπρογραμματισμός ή ψευδοπαράλληλο σύστημα • Ο επεξεργαστής μπορεί να εκτελεί μόνο ένα πρόγραμμα • Το ΛΣ δημιουργεί την ψευδαίσθηση ότι ο υπολογιστής εκτελεί παράλληλα πολλά προγράμματα PC 0

  7. Πολυπρογραμματισμός Δ1 Δ2 Δ3 Δ4 Χρόνος Δ1 Δ2 Δ3 Δ4 Μόνο ένα πρόγραμμα εκτελείται κάθε στιγμή. Ψευδαίσθηση ότι οι διεργασίες τρέχουν παράλληλα.

  8. Παράδειγμα Πολυπρογραμματισμού 0 100 Dispatcher 1000 Διεργασία Α 3000 Διεργασία Β 8000 Διεργασία Γ Κύρια Μνήμη 1000 1001 1002 1003 1004 1005 100 101 102 103 104 105 1006 1007 1008 100 … 105 100 101 102 103 104 105 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 100 … 105 3000 3001 3002 3003 100 101 … 105

  9. Μοντέλο Δύο Καταστάσεων Περιμένει Εκτελείται • Κάθε διεργασία μπορεί να βρίσκεται σε μια από δύο δυνατές καταστάσεις • Εκτελείται (running) • Δεν εκτελείται και περιμένει (waiting) • Μηχανή Πεπερασμένων Καταστάσεων (Finite State Machine FSM) Επιλογή Δημιουργία Διεργασίας Τερματισμός Αναστολή • Κύκλοι αντιπροσωπεύουν καταστάσεις(states) • Βέλη αντιπροσωπεύουν μεταβάσεις(event transitions)

  10. Μοντέλο Δύο Καταστάσεων • Υλοποίηση του μοντέλου δύο καταστάσεων σαν σύστημα ουράς Ουρά διεργασιών Δημιουργία διεργασίας Τερματισμός CPU • Πώς θα υλοποιούσατε μια ουρά; • Ποια τα πιθανά μειονεκτήματα του μοντέλου δύο καταστάσεων και πώς αντιμετωπίζονται; • Μια διεργασία μπορεί να μην εκτελείται για δύο λόγους • Ο χρονοδρομολογητής επέλεξε άλλη διεργασία να εκτελεσθεί από τον επεξεργαστή. • Η διεργασία δεν μπορεί να εκτελεσθεί διότι περιμένει κάποια συσκευή Ε/Ε.

  11. Μοντέλο Πέντε Καταστάσεων • Κάθε διεργασία μπορεί να βρίσκεται σε μια από πέντε δυνατές καταστάσεις • Εκτελείται (running) • Δεν εκτελείται αλλά είναι έτοιμη (ready) • Δεν εκτελείται και δεν είναι έτοιμη (blocked) • Νέα διεργασία υπό δημιουργία (new) • Παρόλο που έχει δημιουργηθεί μπορεί να παραμένει ανέτοιμη να εκτελεσθεί • Τερματισμός διεργασίας (Exit) • Μια διεργασία που τερματίζει πρέπει να ελευθερώσει όλους τους πόρους τους οποίους έχει δεσμευμένους.

  12. Μοντέλο Πέντε Καταστάσεων new Ready running exit blocked dispatched loaded Done Timeout I/ORequest I/O Response • Σε ορισμένα ΛΣ είναι δυνατόν να υπάρχουν επιπρόσθετες μεταβάσεις, π.χ., Ready  Exit, Blocked  Exit. Αυτό μπορεί να συμβαίνει όταν η διεργασία είναι θυγατρική από γονέα ο οποίος τερμάτισε.

  13. Υλοποίηση Μοντέλο Πέντε Καταστάσεων Ουρά Έτοιμων διεργασιών Δημιουργία διεργασίας Τερματισμός CPU Αλλαγή διεργασίας Ουρά Μη-Έτοιμων διεργασιών • Η αλλαγή διεργασίας ελέγχεται από το ΛΣ και μπορεί να γίνει διότι μια διεργασία έχει εξαντλήσει το χρονικό της περιθώριο ή διότι υπάρχει διεργασία υψηλότερης προτεραιότητας • Εναλλακτικά, μπορούν να υλοποιηθούν παράλληλες ουρές μη έτοιμων διεργασιών, μια για κάθε αναμενόμενο συμβάν.

  14. Μοντέλα Καταστάσεων dispatched loaded new Ready running exit Done Timeout I/ORequest I/O Response blocked • Άλλα μοντέλα μπορούν συμπεριλάβουν επιπρόσθετές καταστάσεις, π.χ., τι θα συμβεί εάν δεν υπάρχει διαθέσιμη μνήμη για να φορτωθεί άλλη μια διεργασία; • Suspended: κατάσταση στην οποία η διεργασία δεν είναι φορτωμένη στην κύρια μνήμη. activate suspended suspend

  15. Περιγραφή Διεργασιών στο ΛΣ • Το ΛΣ διατηρεί διάφορες δομές ελέγχου (control structures) όπου αποθηκεύονται οι πληροφορίες που χρειάζεται το ΛΣ • Πίνακας Μνήμης • Κατανομή μνήμης (κύριας ή δευτερεύουσας) σε διεργασίες • Κανόνες χρήσης και περιορισμούς πρόσβασης • Πίνακας συσκευών Ε/Ε • Ποιες συσκευές υπάρχου, πιες είναι δεσμευμένες και ποιες ελεύθερες. • Ποιες λειτουργίες Ε/Ε βρίσκονται σε εξέλιξη • Πίνακας Αρχείων • Που βρίσκεται το κάθε αρχείο καθώς και επιπρόσθετες πληροφορίες π.χ., κωδικούς πρόσβασης. • Πίνακας Διεργασιών • Το πρόγραμμα, τα δεδομένα του προγράμματος, οι τιμές των καταχωρητών (process image).

  16. Έλεγχος Διεργασιών • Τα περισσότερα ΛΣ υποστηρίζουν δύο τρόπους εκτέλεσης προγραμμάτων (modes of execution) • Στον πυρήνα (kernel mode) του ΛΣ • Διεργασίες που εκτελούνται στον πυρήνα έχουν περισσότερα προνόμια. • Μπορούν να χρησιμοποιούν περισσότερες εντολές • Έχουν άμεση πρόσβαση στις συσκευές Ε/Ε • Στο χώρο του χρήστη (user mode) • Προβλήματα • Πώς ο επεξεργαστής αποφασίζει ποιο τρόπο θα χρησιμοποιήσει; • Υπάρχει κάποιο bit στον καταχωρητή (Program Status Word PSW) • Πώς αλλάζει το τρόπος εκτέλεσης; • Το bit αυτό αλλάζει κατάσταση όταν συμβεί κάποιο γεγονός (event) π.χ., συστημική κλήση (system call)

  17. Έλεγχος Διεργασιών • Όταν δημιουργηθεί μια διεργασίας το ΛΣ • Προσδιορίζει μια ταυτότητα (process identification) • Παρέχει την απαιτούμενη μνήμη (memory allocation) • Αρχικοποιεί την δομή ελέγχου της διεργασίας (process control block initialization) • Αρχικοποιεί άλλες πιθανές συνδέσεις (π.χ., με τις λίστες του χρονοδρομολογητή) • Δημιουργεί ή επεκτείνει άλλες δομές δεδομένων (π.χ., την δομή μετρήσεων και παρακολούθησης για σκοπούς χρέωσης).

  18. Έλεγχος Διεργασιών • Εναλλαγή Διεργασιών (process switching) • Συμβαίνει σαν αποτέλεσμα κάποιου γεγονότος (event) • Σήμα διακοπής (interrupt,e.g.,clock interrupt, I/O interrupt). • Περιστατικό λάθους ή εξαιρετικής κατάστασης (fault or exception, e.g., Memory fault) • Κλήση επόπτη (supervisor call, e.g., a system call) • Εναλλαγή τρόπου εκτέλεσης • Μόλις παραληφθεί σήμα διακοπής το program counter πηδά στην αρχή της ρουτίναςπου διαχειρίζεται το σήμα διακοπής (interrupt handler). • Ο επεξεργαστής εναλλάσσει επίσης στον τρόπο εκτέλεσης στον πυρήνα (kernel mode). • Κάθε σήμα διακοπής δεν σημαίνει αυτόματα και εναλλαγή διεργασίας

  19. Έλεγχος Διεργασιών • Αλλαγή κατάστασης διεργασίας (process state change) • Μεταγωγή περιβάλλοντος (process switch or context switch). • Αποθήκευση της κατάστασης του επεξεργαστή (καταχωτητές – context) • Ενημέρωση της δομής ελέγχου της διεργασίας (process control block) • Μεταφορά της δομής ελέγχου της διεργασίας στη κατάλληλη ουρά • Επιλογή της επόμενης διεργασίας (χρονοδρομολογητής) • Ενημέρωση της δομής ελέγχου της νέας διεργασίας. • Ενημέρωση των δομών δεδομένων που σχετίζονται με τη διαχείριση της μνήμης • Επαναφορά της κατάστασης του επεξεργαστή στο σημείο που ήταν την τελευταία φορά πριν διακοπεί η δεδομένη διαδικασία.

  20. Linux • Κάθε διεργασία στο ΛΣ Linux περιγράφεται με τη δομή task_structure • State (Μοντέλο πέντε καταστάσεων) • Scheduling Information (Πληροφορίες για τη χρονοδρομολόγηση των διεργασιών) • Real-time processes • Normal process • Identifiers (Ταυτότητα διεργασιών) • Unique process identifier (Μοναδική ταυτότητα) • Group ID (ομαδική ταυτότητα) • Interprocess Communication. (Επικοινωνία μεταξύ διεργασιών) • Times and timers (Πληροφορίες σχετικές με την ώρα δημιουργίας μιας διεργασίας, διάστημα εκτέλεσης, χρονόμετρα) • File system. (Δείκτες (pointers) σε αρχείατα οποία ανοίχτηκαν από τη διεργασία)

  21. Linux • Κάθε διεργασία στο ΛΣ Linux περιγράφεται με τη δομή task_structure • Address space (διευθύνσεις του χώρου της διεργασίας) • Process-specific context (καταχωρητές και άλλες πληροφορίες που περιγράφουν το περιβάλλον (context) της διεργασίας.

  22. Καταστάσεις του ΛΣ Linux • Running: Either executing or ready to execute • Interruptible: Blocked state where the process is waiting for an I/O operation, availability of a resource or a signal from another process • Uninterruptible: Also a blocked state that waits only on hardware response (no signals) • Stopped: Process stopped that needs to be restarted by another process (e.g., debugger) • Zombie: Terminated process but its data structures still exist.

  23. Καταστάσεις του ΛΣ Linux Stopped Zombie Ready Executing Uninterruptible Interruptible signal signal dispatched creation termination timeout event signal or event I/Orequest

More Related