Διεργασίες.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Λειτουργικό Σύστημα (Operating System) 1o μέρος
Advertisements

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΕΡΓΑΣΙΩΝ
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Λειτουργικά Συστήματα
Νήματα στη Java Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία
Δομή Μαθήματος Υπεύθυνος: Δρ Ν. Πετρέλλης, ΠΔ407
Συστήματα εισόδου/εξόδου
Η επιστήμη των υπολογιστών
Λειτουργικά Συστήματα
ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ.
ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ Κεφάλαιο 4 ο Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Λειτουργικό Σύστημα 2ο μέρος.
Αρχιτεκτονική Υπολογιστών Γλώσσες Μηχανής
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Λογισμικο συστηματοσ Κεφάλαιο 4ο
Message Passing Interface (MPI)
24/11/2003Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2003 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
22/11/2004Message Passing Interface (MPI)1 Αθήνα, Νοέμβριος 2004 Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 2ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 11 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4 1.  Ένα thread έχει: ID, program counter, register set, stack  Μοιράζεται με τα άλλα threads της ίδιας διεργασίας.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
Νήματα Οι διεργασίες έχουν τα παρακάτω συστατικά:
William Stallings Computer Organization and Architecture 7 th Edition Κεφάλαιο 16 Λειτουργία Μονάδας Ελέγχου.
Η ΕΚΤΕΛΕΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΧΡΗΣΤΗ ΑΠ’ ΤΟΝ Η/Υ ΤΟΜΕΑΣ ΤΕΧΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Δ.ΙΕΚ ΠΑΤΡΑΣ.
Τι είναι διεργασία Ένα πρόγραμμα σε εκτέλεση Η διεργασία περιλαμβάνει:
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
Message Passing Interface (MPI) Συστήματα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστημάτων Αθήνα, Δεκέμβριος 2002.
Επικοινωνία μεταξύ Διεργασιών και Σύνδρομες Διεργασίες Interprocess Communication and Concurrent Processes.
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Διεργασίες Λειτουργικά Συστήματα. Λειτουργικά Συστήματα/ Slide 2 Η Έννοια της Διεργασίας * Διεργασία (Process) – ο μηχανισμός εκτέλεσης ενός προγράμματος.
Εφαρμογές Υπολογιστών Ά Λυκείου Κεφ. 4 Λογισμικό Συστήματος
Νήματα με την χρήση των Posix Threads (pthreads)‏.
ΕΝΟΤΗΤΑ 2 – Κεφάλαιο 5: Γνωριμία με το Λογισμικό
Κωνσταντίνος Αντωνής © 2014Διαδικτυακός και Ταυτόχρονος Προγραμματισμός Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών 1.
Χρονοδρομολόγηση CPU Βασικές Αρχές Κριτήρια Χρονοδρομολόγησης
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
1 Λειτουργικά Συστήματα Ενότητα 4 : Αρχιτεκτονικές ΛΣ Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
1 Λειτουργικά Συστήματα Ενότητα 13 : Δρομολόγηση Διεργασιών 3/3 Δημήτριος Λιαροκάπης Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου.
Κύρια Μνήμη Διάφοροι τύποι μνήμης RAM Από πάνω προς τα κάτω, DIP, SIPP, SIMM (30-pin), SIMM (72-pin), DIMM (168-pin), DDR DIMM (184-pin). Μνήμη RΟM.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
Πληροφορική 2 Λειτουργικά Συστήματα 1. Λογισμικό Υπολογιστών 2 Υπολογιστής ΥλικόΛογισμικό Λειτουργικό Σύστημα Προγράμματα Εφαρμογών.
Διαχείριση Πόρων (1/10) Εισαγωγή στην Πληροφορκή 1 Στα πρώτα χρόνια των υπολογιστών, όπου μόνο ένα πρόγραμμα είχε τη δυνατότητα να βρίσκεται στην κύρια.
Λειτουργικά Συστήματα
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
Λειτουργικά Συστήματα
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
Κατανεμημένα Συστήματα
Γνωριμία με το Λογισμικό του Υπολογιστή
Τι είναι διεργασία Ένα πρόγραμμα σε εκτέλεση Η διεργασία περιλαμβάνει:
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Χρονοπρογραμματισμός CPU - SCHEDULING
Λειτουργικά Συστήματα και Ασφάλεια Πληροφοριακών Συστημάτων ΔΙΕΡΓΑΣΙΕΣ
Εισαγωγή στα Λειτουργικά Συστήματα (ΛΣ) Operating Systems (OS)
Ομοιόμορφη Αποδοτική Διαχείριση του Ταυτοχρονισμού των Εξυπηρετητών
Το μοντέλο πελάτη - εξυπηρετητή
Διπλωματική Εργασία για το Μεταπτυχιακό Δίπλωμα Ειδίκευσης
Διεργασίες Διεργασίες Διαδιεργασιακή Επικοινωνία (IPC)
Processes.
ΔΙΕΡΓΑΣΙΕΣ.
Το υπολογιστικό σύστημα σαν ενιαίο σύνολο
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μεταγράφημα παρουσίασης:

Διεργασίες

Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, “Operating Systems Concepts”, 7th Edition Οι διαφάνειες αυτές βρίσκονται στο δικτυακό τόπο: http://www.cs.purdue.edu/homes/yau/cs503/ Επίσης χρησιμοποιήθηκε υλικό από τις διαφάνειες παραδόσεων του βιβλίου: William Stallings, “Operating Systems: Internal and Design Principles”, Fourth Edition”, που βρίσκονται στο δικτυακό τόπο: http://WilliamStallings.com/OS4e.html

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αναπαράσταση Κλήσης Εναλλαγής Περιβάλλοντος Λειτουργίας 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

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

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

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

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

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

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

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