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

Σχετικά έγγραφα
1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΛΟΓΙΣΜΙΚΟ (software)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Λειτουργικά Συστήματα

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

Ε-85: Ειδικά Θέµατα Λογισµικού

Λειτουργικά Συστήματα

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

Λειτουργικά Συστήματα (Λ/Σ)

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Εισαγωγή στην Πληροφορική

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εισαγωγή στα Λειτουργικά Συστήματα

Λιβανός Γιώργος Εξάμηνο 2017Β

Σκελετός Παρουσίασης

ΗΜΥ 313: Τεχνολογία Λειτουργικών Συστηµάτων

Επιτεύγµατα των Λ.Σ.

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

Λειτουργικά συστήµατα. Λογισμικό Συστήματος 1

Το μάθημα. Λειτουργικά Συστήματα Πραγματικού Χρόνου Βασικές Έννοιες 6. Ενσωματωμένα Συστήματα (embedded systems) Παραδείγματα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα (ΗΥ321)

Εισαγωγή στην Πληροφορική

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Χρονοπρογραµµατισµός ιεργασιών (Process Scheduling)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Κεφάλαιο 3: Λειτουργικά Συστήματα

Λειτουργικά Συστήματα

Χρονοδρομολογητής Κυκλικής Επαναφοράς

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΟΡΓΑΝΩΣΗ Η/Υ

Παράλληλη Επεξεργασία

Εικονική Μνήμη (Virtual Μemory)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Λιβανός Γιώργος Εξάμηνο 2017Β

Λειτουργικά Συστήματα Πραγματικού Χρόνου

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Κεφάλαιο 4. Λογισμικό Συστήματος

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Λειτουργικά Συστήματα. Εισαγωγή

Λειτουργικά Συστήματα (Λ/Σ)

ENOTHTA 2 IEPΓAΣIEΣ: ΠEPIΓPAΦH KAI EΛEΓXOΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Χρονοπρογραμματισμός Εργαστηριακές Ασκήσεις

Κύριες Υπηρεσίες ενός ΛΣ

Κεφάλαιο 3: Λειτουργικά Συστήµατα

Εικονική Μνήμη (Virtual Μemory)

ΗΜΥ 213. Εργαστήριο Οργάνωσης Η.Y. και Μικροεπεξεργαστών week 5. Διδάσκων: Δρ. Γιώργος Ζάγγουλος

Λειτουργικά Συστήματα

Κεφάλαιο 4 Λογισμικό συστήματος. Εφαρμογές Πληροφορικής Κεφ.4 Καραμαούνας Πολύκαρπος 1

Λειτουργικά Συστήματα (Λ/Σ)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ H/Y

Διάλεξη Εισαγωγή στη Java, Μέρος Γ

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Ένα πρόγραμμα σε εκτέλεση, Μια ασύγχρονη δραστηριότητα,

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

Κεφάλαιο 4: Λογισμικό Συστήματος

Κατανεμημένα Συστήματα

Χρονοδρομολόγηση Ι Μοντέλα διεργασιών, Προθεσμίες και Αλγόριθμοι

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Λειτουργικά Συστήματα

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών. Διάλεξη 13. Εξαιρέσεις και Διακοπές (Exceptions and Interrupts)

Κεφάλαιο 3. Διδακτικοί Στόχοι

Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 2

Λειτουργικά Συστήματα

Πληροφορική 2. Λειτουργικά Συστήματα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Λειτουργικά Συστήµατα

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

Ενότητα 6 (Κεφάλαιο 9) Χρονοδρομολόγηση

Διεργασίες και Νήματα (2/2)

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΕΡΓΑΣΙΕΣ

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Λειτουργικά Συστήματα Η/Υ

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Πληροφορική I. "Λογισμικό (Software)" B. Φερεντίνος

Αρχιτεκτονική Υπολογιστών

Transcript:

Περιγραφή και Έλεγχος ιεργασιών Περίληψη ιεργασίες Πολυπρογραµµατισµός Καταστάσεις ιεργασιών Περιγραφή διεργασιών στο ΛΣ Έλεγχος διεργασιών Το ΛΣ Linux 1

ιεργασία (process) ιεργασία είναι κάθε πρόγραµµα που εκτελείται Κώδικας του προγράµµατος (program code) εδοµένα (data) τα οποία χρειάζονται από το πρόγραµµα (µεταβλητές, ενδιάµεση µνήµη (buffers), work space ) Κατάσταση της διεργασίας (execution context or process state). Καταχωρητές του επεξεργαστή και δεδοµένα τα οποία χρησιµοποιεί το ΛΣ για να παρακολουθεί και να ελέγχει κάθε διεργασία (προτεραιότητα, κατάσταση Ε/Ε, κλπ). Ή έννοια της διεργασίας είναι σηµαντική στην όλη λειτουργία του ΛΣ. Κάθε πρόγραµµα αποτελείται από µια ή περισσότερες διεργασίες ή υποδιεργασίες (threads). Ο καταµερισµός των πόρων του συστήµατος γίνεται µεταξύ των διεργασιών ιεργασίες συναγωνίζονται για πρόσβαση στους πόρους του συστήµατος Το ΛΣ επίσης αποτελείται από διάφορες διεργασίες. ιεργασία (process) Τρόποι ηµιουργίας ιεργασιών Υποβολή εργασίας (batch job submission) Είσοδος νέου χρήστης (user login) Παροχή κάποιας υπηρεσίας από το ΛΣ. Μια διεργασία (εφαρµογή) δηµιουργεί µια νέα (spawned child process) Όταν δηµιουργηθεί η νέα διεργασία το ΛΣ δηµιουργεί τις απαιτούµενες δοµές έτσι που να µπορεί να τη διαχειριστεί Τρόποι τερµατισµού διεργασιών Κανονικός τερµατισµός ιάφορα λάθη (π.χ., αριθµητικά, προσπάθεια πρόσβασης σε µη επιτρεπτό χώρο, χρήση µη επιτρεπτών εντολών) Αποτυχία κάποιον συσκευών Ε/Ε Παραβίαση χρονικών περιθωρίων Όταν τερµατίζεται µια διεργασία ελευθερώνεται η δεσµευµένη µνήµη. 2

Λίστα ιεργασιών (Process List) Process List i j CPU Registers i PC Process A Context Data Program Code b h Base Limit Process B Context Data Program Code h Other Registers Πολυπρογραµµατισµός (multiprogramming) Πολυπρογραµµατισµός ή ψευδοπαράλληλο σύστηµα Ο επεξεργαστής µπορεί να εκτελεί µόνο ένα πρόγραµµα Το ΛΣ δηµιουργεί την ψευδαίσθηση ότι ο υπολογιστής εκτελεί παράλληλα πολλά προγράµµατα PC 0xFFFF 1 2 3 4 0 3

Πολυπρογραµµατισµός 1 1 2 3 4 Χρόνος 2 3 4 Μόνο ένα πρόγραµµα εκτελείται κάθε στιγµή. Ψευδαίσθηση ότι οι διεργασίες τρέχουν παράλληλα. Παράδειγµα Πολυπρογραµµατισµού 0 Ίχνη των ιεργασιών Ίχνος 100 1000 3000 8000 Dispatcher ιεργασία Α ιεργασία Β ιεργασία Γ Κύρια Μνήµη ιερ. Α 1000 1001 1002 1003 1004 1005 1006 1007 1008 ιερ. Β 3000 3001 3002 3003 3004 ιερ. Γ 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 1000 1001 1002 1003 1004 1005 100 101 102 103 104 105 3000 3001 3002 3003 100 101 102 103 104 105 8000 8001 8002 8003 8004 8005 100 101 105 1006 1007 1008 100 105 8006 8007 8008 8009 8010 100 105 4

Μοντέλο ύο Καταστάσεων Κάθε διεργασία µπορεί να βρίσκεται σε µια από δύο δυνατές καταστάσεις Εκτελείται (running) εν εκτελείται και περιµένει (waiting) Μηχανή Πεπερασµένων Καταστάσεων (Finite State Machine FSM) Επιλογή ηµιουργία ιεργασίας Περιµένει Εκτελείται Τερµατισµός Αναστολή Κύκλοι αντιπροσωπεύουν καταστάσεις (states) Βέλη αντιπροσωπεύουν µεταβάσεις (event transitions) Μοντέλο ύο Καταστάσεων Υλοποίηση του µοντέλου δύο καταστάσεων σαν σύστηµα ουράς ηµιουργία διεργασίας Ουρά διεργασιών CPU Τερµατισµός Πώς θα υλοποιούσατε µια ουρά; Ποια τα πιθανά µειονεκτήµατα του µοντέλου δύο καταστάσεων και πώς αντιµετωπίζονται; Μια διεργασία µπορεί να µην εκτελείται για δύο λόγους Ο χρονοδροµολογητής επέλεξε άλλη διεργασία να εκτελεσθεί από τον επεξεργαστή. Η διεργασία δεν µπορεί να εκτελεσθεί διότι περιµένει κάποια συσκευή Ε/Ε. 5

Μοντέλο Πέντε Καταστάσεων Κάθε διεργασία µπορεί να βρίσκεται σε µια από πέντε δυνατές καταστάσεις Εκτελείται (running) εν εκτελείται αλλά είναι έτοιµη (ready) εν εκτελείται και δεν είναι έτοιµη (blocked) Νέα διεργασία υπό δηµιουργία (new) Παρόλο που έχει δηµιουργηθεί µπορεί να παραµένει ανέτοιµη να εκτελεσθεί Τερµατισµός διεργασίας (Exit) Μια διεργασία που τερµατίζει πρέπει να ελευθερώσει όλους τους πόρους τους οποίους έχει δεσµευµένους. Μοντέλο Πέντε Καταστάσεων dispatched loaded Done new Ready running exit I/O Response Timeout blocked I/O Request Σε ορισµένα ΛΣ είναι δυνατόν να υπάρχουν επιπρόσθετες µεταβάσεις, π.χ., Ready Exit, Blocked Exit. Αυτό µπορεί να συµβαίνει όταν η διεργασία είναι θυγατρική από γονέα ο οποίος τερµάτισε. 6

Υλοποίηση Μοντέλο Πέντε Καταστάσεων ηµιουργία διεργασίας Ουρά Έτοιµων διεργασιών CPU Τερµατισµός Αλλαγή διεργασίας Ουρά Μη-Έτοιµων διεργασιών Ηαλλαγή διεργασίας ελέγχεται από το ΛΣ και µπορεί να γίνει διότι µια διεργασία έχει εξαντλήσει το χρονικό της περιθώριο ή διότι υπάρχει διεργασία υψηλότερης προτεραιότητας Εναλλακτικά, µπορούν να υλοποιηθούν παράλληλες ουρές µη έτοιµων διεργασιών, µια για κάθε αναµενόµενο συµβάν. Μοντέλα Καταστάσεων Άλλα µοντέλα µπορούν συµπεριλάβουν επιπρόσθετές καταστάσεις, π.χ., τι θα συµβεί εάν δεν υπάρχει διαθέσιµη µνήµη για να φορτωθεί άλλη µια διεργασία; Suspended: κατάσταση στην οποία η διεργασία δεν είναι φορτωµένη στην κύρια µνήµη. dispatched loaded Done new Ready running exit activate Timeout I/O Response I/O Request suspended suspend blocked 7

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

Έλεγχος ιεργασιών Όταν δηµιουργηθεί µια διεργασίας το ΛΣ Προσδιορίζει µια ταυτότητα (process identification) Παρέχει την απαιτούµενη µνήµη (memory allocation) Αρχικοποιεί την δοµή ελέγχου της διεργασίας (process control block initialization) Αρχικοποιεί άλλες πιθανές συνδέσεις (π.χ., µε τις λίστες του χρονοδροµολογητή) ηµιουργεί ή επεκτείνει άλλες δοµές δεδοµένων (π.χ., την δοµή µετρήσεων και παρακολούθησης για σκοπούς χρέωσης). Έλεγχος ιεργασιών Εναλλαγή ιεργασιών (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). Κάθε σήµα διακοπής δεν σηµαίνει αυτόµατα και εναλλαγή διεργασίας 9

Έλεγχος ιεργασιών Αλλαγή κατάστασης διεργασίας (process state change) Μεταγωγή περιβάλλοντος (process switch or context switch). Αποθήκευση της κατάστασης του επεξεργαστή (καταχωτητές context) Ενηµέρωση της δοµής ελέγχου της διεργασίας (process control block) Μεταφορά της δοµής ελέγχου της διεργασίας στη κατάλληλη ουρά Επιλογή της επόµενης διεργασίας (χρονοδροµολογητής) Ενηµέρωση της δοµής ελέγχου της νέας διεργασίας. Ενηµέρωση των δοµών δεδοµένων που σχετίζονται µε τη διαχείριση της µνήµης Επαναφορά της κατάστασης του επεξεργαστή στο σηµείο που ήταν την τελευταία φορά πριν διακοπεί η δεδοµένη διαδικασία. 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) σε αρχεία τα οποία ανοίχτηκαν από τη διεργασία) 10

Linux Κάθε διεργασία στο ΛΣ Linux περιγράφεται µε τη δοµή task_structure Address space (διευθύνσεις του χώρου της διεργασίας) Process-specific context (καταχωρητές και άλλες πληροφορίες που περιγράφουν το περιβάλλον (context) της διεργασίας. Καταστάσεις του ΛΣ 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. 11

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