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

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

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

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

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

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

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

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

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

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

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

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

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

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

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

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

Λειτουργικά συστήματα πραγματικού χρόνου

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

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

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

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

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

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

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

Αμοιβαίος αποκλεισμός

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

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

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

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

ροµολόγηση Επεξεργαστή

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

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

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

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

Δρομολόγηση σε σύστημα ενός επεξεργαστή

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

Υλοποίηση ενός προγραμματιστικού κελύφους εργασίας

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

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

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

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

ΔΙΕΡΓΑΣΙΕΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ver Επεξεργαστές κειμένου, λογιστικών φύλλων, παρουσιάσεων Οδηγοί συσκευών (Device Drivers)

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

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

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

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

Transcript:

Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016

Κεφάλαιο 4: Διεργασίες

Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα 2 Πρόγραμμα Ν Κ.Μ.Ε. Κ.Μ.Ε. Στους παλαιότερους υπολογιστές η Κεντρική Μονάδα Επεξεργασίας (Κ.Μ.Ε.) μπορούσε κάθε στιγμή να εκτελεί μόνο ένα πρόγραμμα. Στους σύγχρονους υπολογιστές που υποστηρίζουν πολυπρογραμματισμό, η Κ.Μ.Ε. μοιράζει το χρόνο της σε περισσότερα προγράμματα δίνοντας έτσι την εντύπωση ότι αυτά εκτελούνται ταυτόχρονα.

Ένα σύγχρονο λειτουργικό σύστημα που υποστηρίζει πολύ-προγραμματισμό, πρέπει να διατηρεί τις πληροφορίες που χρειάζονται ώστε ένα πρόγραμμα: Να φορτώνεται Να εκτελείται Να διακόπτεται Να ξανα-φορτώνεται Να ξανα-εκτελείται Η Διαδικασία αυτή αυξάνει τις απαιτήσεις από το λειτουργικό σύστημα αλλά τελικά αυξάνει τις επιδόσεις και τη λειτουργικότητά του.

Διεργασία είναι η εκτέλεση ενός προγράμματος με τους πόρους του συστήματος που αυτό απαιτεί και τις πληροφορίες που απαιτούνται για την εκτέλεσή του. Οι πιθανές καταστάσεις μιας Διεργασίας Εκτελούμενη Running (Χρησιμοποιεί την Κ.Μ.Ε.) Έτοιμη ή Εκτελέσιμη Ready (Έχει εκτοπιστεί προσωρινά για να εκτελεστεί άλλη διεργασία) Εμποδιζόμενη ή σε αναστολή Blocked (Δε μπορεί να εκτελεστεί μέχρι να λάβει χώρα ένα εξωτερικό συμβάν π.χ. απελευθέρωση ενός πόρου) Μια διεργασία όταν δημιουργείται εισάγεται στη λίστα των έτοιμων διεργασιών. Σταδιακά προωθείται προς την κεφαλή της λίστας και μόλις ο επεξεργαστής γίνει διαθέσιμος η διεργασία ανατίθεται στον επεξεργαστή και η κατάστασή της αλλάζει σε εκτελούμενη. Η διαδικασία της ανάθεσης της πρώτης διεργασίας από τη λίστα των έτοιμων διεργασιών στον επεξεργαστή ονομάζεται διεκπεραίωση και υλοποιείται από τον διεκπεραιωτή (dispatcher), που είναι τμήμα του δρομολογητή (scheduler).

Αναστολή Εκτέλεσης Διεργασίας Η εκτελούμενη διεργασία (running) αναστέλλεται μέσω τριών βασικών κατηγοριών συμβάντων (events). Με πρωτοβουλία της διεργασίας: Η διεργασία χρειάζεται Είσοδο/Έξοδο ή άλλη λειτουργία που απαιτεί προνομιακή λειτουργία (σε κατάσταση πυρήνα), οπότε καλεί το Λ.Σ. να την εκτελέσει μέσω κλήσης συστήματος (διακοπή λογισμικού). Με πρωτοβουλία του Λ.Σ: (α) Η διεργασία προκαλεί σφάλμα, οπότε προκαλείται παγίδευση (trap) ή προκύπτει διακοπή Ε/Ε ή υλικού που πρέπει να εξυπηρετηθεί. (β) Η διεργασία έχει εξαντλήσει το χρόνο της ή υπάρχει άλλη διεργασία υψηλότερης προτεραιότητας που πρέπει να εκτελεστεί. Και στις δύο περιπτώσεις το Λ.Σ. αναλαμβάνει τον έλεγχο του επεξεργαστή. Η κατάσταση της εκτελούμενης διεργασίας αλλάζει κατάλληλα είτε σε αναστολή (αν περιμένει κάτι) είτε έτοιμη (αν διεκόπη από το λειτουργικό) και προωθείται προς εκτέλεση η αμέσως επόμενη διεργασία στη λίστα των έτοιμων. Έτσι επιτυγχάνεται εναλλαγή διεργασιών.

Ο κύκλος ζωής μιας διεργασίας και η μετάβαση από κατάσταση σε κατάσταση Διάγραμμα 5 καταστάσεων Running : η διεργασία που εκτελείται Ready : είναι έτοιμη για εκτέλεση Blocked : υπό αναστολή, δεν μπορεί να εκτελεστεί μέχρι να προκύψει το κατάλληλο γεγονός New : έχει μόλις δημιουργηθεί από το Λ.Σ. Exit : έχει απελευθερωθεί από τη δεξαμενή εκτελέσιμων εργασιών από το Λ.Σ.., τερματίζεται Admit : το Λ.Σ. τοποθετεί τη διεργασία στην ουρά των διεργασιών προς εκτέλεση, δημιουργεί τις αντίστοιχες δομές δεδομένων. Dispatch : το Λ.Σ. εκχωρεί το σύστημα (CPU κλπ) στη διεργασία για να εκτελεστεί. Timeout : το Λ.Σ. προκαλεί χρονοδιακοπή. Event Waits : η διεργασία απαιτεί υπηρεσία από το Λ.Σ.. που προκαλεί διακοπή. Event Occurs : η υπηρεσία έχει εκτελεστεί και το Λ.Σ.. Ενημερώνει τις αντίστοιχες δομές δεδομένων. Release : το Λ.Σ. τερματίζει τη διεργασία, ακυρώνει τις αντίστοιχες δομές δεδομένων. Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Ο κύκλος ζωής μιας διεργασίας και η μετάβαση από κατάσταση σε κατάσταση Διάγραμμα 6 καταστάσεων Συνήθως οι λειτουργίες Ε/Ε είναι πολύ αργές (για τα δεδομένα της CPU), έτσι το Λ.Σ. μπορεί να διαχωρίζει τις λειτουργίες Ε/Ε σε 'αργές' και 'γρήγορες' και να δημιουργεί δυο διαφορετικές καταστάσεις αναστολής: blocked και suspended. Η διαφορά τους έγκειται στο ότι όταν μια διεργασία θεωρείται suspended τότε ο χώρος διευθύνσεών της μεταφέρεται στη δευτερεύουσα μνήμη, στη περιοχή εναλλαγής. Έτσι ελευθερώνεται χώρος στη κύρια μνήμη είτε για τη μεταφορά άλλων διεργασιών από τη δευτερεύουσα μνήμη, είτε για τη δημιουργία νέων διεργασιών. Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Ο κύκλος ζωής μιας διεργασίας και η μετάβαση από κατάσταση σε κατάσταση Διάγραμμα 7 καταστάσεων Γενικεύοντας τη χρήση της ιδεατής (virtual) μνήμης μπορούμε να παρατηρήσουμε ότι σε περίπτωση πολύ μεγάλου αριθμού διεργασιών ή περιορισμένης κύριας μνήμης το πρόβλημα ανεπάρκειας της κύριας μνήμης μπορεί να εμφανιστεί και σε άλλες καταστάσεις, όπως κατά τη δημιουργία, ή όταν η διεργασία είναι μεν έτοιμη αλλά δεν υπάρχει επαρκής χώρος στη κύρια μνήμη. Έτσι καταλήγουμε στο διάγραμμα 7 καταστάσεων. Οι καταστάσεις ready/suspended και blocked/suspended αντιστοιχούν στις ready και blocked αλλά στη δευετερεύουσα μνήμη. Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Δημιουργία Διεργασίας Γεγονότα που προκαλούν δημιουργία διεργασίας: Εκκίνηση συστήματος. Σύνδεση νέου χρήστη. Μια εκτελούμενη διεργασία αιτείται τη παροχή μιας υπηρεσίας ή την εκτέλεση μιας εφαρμογής. Μια εκτελούμενη διεργασία καλεί μια κλήση συστήματος για τη δημιουργία διεργασίας. Ένας χρήστης ζητά τη δημιουργία νέας διεργασίας (εκτέλεση ενός προγράμματος ή μιας εντολής φλοιού). Εκκίνηση μιας εργασίας δέσμης / σεναρίου φλοιού ή μιας χρονο-δρομολογημένης εργασίας. Πρέπει να ικανοποιούνται περιορισμοί του συστήματος, πχ αριθμός ενεργών διεργασιών, χώρος στη μνήμη, δικαιώματα δημιουργού κλπ.

Τερματισμός Διεργασίας Γεγονότα που προκαλούν τερματισμό διεργασίας: Κανονική έξοδος (τερματισμός). Εσφαλμένη έξοδος (επιστροφή κωδικού σφάλματος) Μοιραίο σφάλμα (Fatal error κατά την εκτέλεση) π.χ. μη έγκυρη εντολή, προνομιούχος εντολή, αριθμητικά σφάλματα, σφάλματα υπερχείλισης, υπέρβαση ορίων μνήμης, σφάλματα Ε/Ε, σφάλματα προστασίας, πέρας διαθέσιμου χρόνου Εξαναγκασμός σε τερματισμό από άλλη διεργασία (Αποστολή σήματος δια-διεργασιακή επικοινωνία, Kill). Εξαναγκασμός σε τερματισμό από το χρήστη.

Εναλλαγή Διεργασίας Γεγονότα που προκαλούν εναλλαγή (αναστολή εκτέλεσης και εισαγωγή άλλης) διεργασίας: Χρονοδιακοπή / Δρομολόγηση Η διεργασία έχει εξαντλήσει το μέγιστο επιτρεπόμενο χρονικό όριο ή γενικότερα η διεργασία προ-εκτοπίζεται (pre-empted) από το Λ.Σ., πχ υπάρχει άλλη διεργασία με μεγαλύτερη προτεραιότητα Εσωτερική διακοπή (trap) Προγραμματιστικά σφάλματα που προκαλούν παγίδευση Ε/Ε ή Hardware Interrupt Κλήση συστήματος π.χ. άνοιγμα αρχείου, δημιουργία διεργασίας παιδιού (fork), Δια-διεργασιακή επικοινωνία (wait, kill)

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Χώρος Διευθύνσεων Διεργασίας Κάθε Διεργασία εκτελείται στο δικό της χώρο διευθύνσεων

Χώρος Διευθύνσεων Διεργασίας Την περιοχή στοίβας (stack region), όπου αποθηκεύονται οι παράμετροι, οι τοπικές μεταβλητές και οι πληροφορίες κλήσης για τις ενεργές κλήσεις διαδικασιών. Την περιοχή δεδομένων (data region), όπου αποθηκεύονται (α) οι καθολικές μεταβλητές και (β) η δυναμικά παραχωρούμενη μνήμη (heap). Περιοχή κώδικα (text region): Ο κώδικας πρόγραμμα που εκτελεί η διεργασία Ακόμη έχουμε τη κοινόχρηστη μνήμη (global data, system calls, shared libraries) Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας

Για να υλοποιηθεί το μοντέλο κατάστασης διεργασιών, το Λ.Σ. συντηρεί έναν πίνακα διεργασιών (process table), ο οποίος περιλαμβάνει μια καταχώρηση μπλοκ ελέγχου διεργασίας (process control block) ή περιγραφέα διεργασίας (process descriptor) για κάθε διεργασία. Στην καταχώρηση αυτή εγγράφονται πληροφορίες σχετικές με: την κατάσταση της διεργασίας το χώρο διευθύνσεων (address space) το πλαίσιο επεξεργαστή (CPU context) Οι πληροφορίες αυτές αποτελούν την εικόνα της διεργασίας (process image) ώστε να συνεχίσει να εκτελείται μετά από κάθε αναστολή εκτέλεσης. Η δημιουργία μιας διεργασίας έχει επομένως μια αρχική επιβάρυνση (overhead).

Μπλοκ Ελέγχου Διεργασίας (Process Control Block)

Υλοποίηση του μοντέλου διεργασιών (μοντέλο καταστάσεων) Παράδειγμα Τριών Διεργασιών (1/4) Η υλοποίηση του μοντέλου διεργασιών (μοντέλο καταστάσεις) βασίζεται στη διαρκή εναλλαγή διεργασιών στη CPU. Κάθε εναλλαγή εμπλέκει το Λ.Σ. και κυρίως το Βραχυπρόθεσμο Δρομολογητή (Dispatcher).

Υλοποίηση του μοντέλου διεργασιών (μοντέλο καταστάσεων) Παράδειγμα Τριών Διεργασιών (2/4) Dispatcher Διευθύνσεις Εντολών Διαδικασίας Β Διευθύνσεις Εντολών Διαδικασίας Α Διευθύνσεις Εντολών Διαδικασίας Γ

Διεργασία Γ Διεργασία Α Time-out Time-out Dispatcher Dispatcher Διεργασία Α Διεργασία B Ι/Ο Διεργασία Β Time-out Dispatcher Dispatcher Διεργασία Γ Διεργασία Γ Time-out

Παράλληλο πρόγραμμα: Ένα πρόγραμμα που μπορεί να χωριστεί σε διεργασίες που μπορούν να εκτελεστούν παράλληλα Παράδειγμα 1: Ένα πρόγραμμα που εκτελεί τους ίδιους υπολογισμούς με διαφορετικά δεδομένα. Θα μπορούσε να χωριστεί σε παράλληλες διεργασίες, κάθε μια θα αναλάμβανε τον υπολογισμό διαφορετικών δεδομένων και θα εκτελούταν σε διαφορετική Κ.Μ.Ε. (π.χ. διαφορετικό πυρήνα). Δεδομένα 1 Δεδομένα 2 Διεργασία 1 Διεργασία 2 Κ.Μ.Ε. 1 Κ.Μ.Ε. 2

Παράλληλο πρόγραμμα: Ένα πρόγραμμα που μπορεί να χωριστεί σε διεργασίες που μπορούν να εκτελεστούν παράλληλα Παράδειγμα 2: Ένα τμήμα ενός προγράμματος θα μπορούσε να εκτελεστεί παράλληλα με κάποιο άλλο σε διαφορετικές Διεργασίες. Πρόγραμμα

Κρίσιμο τμήμα Διεργασίας: Ένα τμήμα διεργασίας που προσπελαύνει έναν αποκλειστικό πόρο του συστήματος και δεν πρέπει να διαμοιραστεί γιατί δημιουργείται πρόβλημα στην ακεραιτότητα των δεδομένων. Θέματα που πρέπει να επιλύει ένα Λ.Σ. πολυ-προγραμματισμού: Αμοιβαίος Αποκλεισμός: Όταν μια διεργασία εκτελεί το κρίσιμο τμήμα της, καμία άλλη δε μπορεί να εκτελέσει το δικό της. Δεν πρέπει δύο ή περισσότερες διεργασίες να αλληλο-επικαλύπτονται χρονικά στα κρίσιμα τμήματά τους. Μόνο μια διεργασία πρέπει να καταφέρνει να εισέλθει στο Κ.Τ. της κάθε φορά. Αδιέξοδο: Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο, όταν κάθε μια από αυτές περιμένει για ένα εξωτερικό συμβάν (π.χ. απελευθέρωση πόρου) που μπορεί να συμβεί μόνο από κάποια από τις διεργασίες που βρίσκονται στο αδιέξοδο (η μία περιμένει την άλλη δηλαδή). Υποσιτισμός: η αδυναμία μιας διεργασίας να εισέλθει στο κρίσιμο τμήμα της (αποκλείεται συνεχώς). Συγχρονισμός: Μια διεργασία μπορεί να χρειάζεται να σταματήσει και να περιμένει τα αποτελέσματα μιας άλλης να συγχρονιστούν δηλαδή.

Πηγές: Σύγχρονα Λειτουργικά Συστήματα, Andrew S. Tanebaum Λειτουργικά Συστήματα, ΤΕΕ Β Τάξη, 1 ος Κύκλος, Ο.Ε.Δ.Β. Λειτουργικά Συστήματα (Σημειώσεις)», Κ.Γ. Μαργαρίτης, Τμήμα Εφαρμοσμένης Πληροφορικής, Πανεπιστήμιο Μακεδονίας