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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 7

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

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

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

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

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

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

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

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

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 8

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

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

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

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

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

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

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

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 4 ΛΟΓΙΣΜΙΚΟ ΣΥΣΤΗΜΑΤΟΣ. ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ-MSc

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

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

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

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

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

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

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

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

Μάθημα 1 ο ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

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

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

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

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

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

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Εργαστηριακή Άσκηση. Τμήμα Μηχανικών Πληροφορικής ΤΕ

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

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

Εικονική Μνήμη (1/2)

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Επανάληψη

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Εξετάσεις Προόδου 8/1/2014 Τεχνικός Εφαρμογών Πληροφορικής (Πολυμέσα/ Web designer - developper/video games)

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

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

Εισαγωγή στην Επιστήμη των Υπολογιστών

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

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

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

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Αδιέξοδα Ανάθεση Πόρων (Deadlocks Resource Allocation)

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

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

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

ΛΥΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ. Γράψτε τις επόμενες διαδικασίες σε όποια γλώσσα προγραμματισμού προτιμάτε:

Ενότητα 3 - Θέματα Εφαρμοσμένης Επιστήμης Υπολογιστών. Κοντογιάννης Βασίλειος ΠΕ19

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

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ,

Μάθημα 10 ο ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ ΕΞΟΔΟΥ (INPUT/OUTPUT)

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

ΚΕΦΑΛΑΙΟ 2 - ΛΟΓΙΣΜΙΚΟ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

Transcript:

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

Εισαγωγή H κεντρική μονάδα επεξεργασίας (ΚΜΕ) και η κύρια μνήμη αποτελούν τα βασικά δομικά στοιχεία ενός υπολογιστικού συστήματος. Η πρώτη εκτελεί εντολές χειρισμού δεδομένων (λογικές και αριθμητικές πράξεις και μετακινήσεις) και η δεύτερη έχει αποθηκευμένες τις εντολές των προγραμμάτων που εκτελούνται καθώς και τα δεδομένα που γίνονται αντικείμενο διαχείρισης. Για να εκτελεστεί ένα πρόγραμμα θα πρέπει να έχει φορτωθεί στην κύρια μνήμη σε μορφή εντολών που μπορεί να εκτελέσει η ΚΜΕ και μετά να του παραχωρηθεί χρόνος στην ΚΜΕ.

Πως γίνεται αυτό; Υπάρχει μια ομάδα προγραμμάτων που εκτελούνται συνεχώς και ανήκουν στον πυρήνα του λειτουργικού συστήματος. Μέρος των καθηκόντων τους είναι να «μοιράζουν» τον χρόνο της KME και τη διαθέσιμη μνήμη στα προγράμματα που φαίνονται ότι εκτελούνται ταυτόχρονα. Για παράδειγμα, όταν ένα πρόγραμμα που εκτελείται περιμένει δεδομένα από τον πολύ πιο αργό (σε σχέση με την ΚΜΕ και την κύρια μνήμη) σκληρό δίσκο, τότε έχει τη δυνατότητα κάποιο άλλο πρόγραμμα να συνεχίσει την δική του εκτέλεση από το σημείο στο οποίο βρισκόταν.

Ένα αντίστοιχο παράδειγμα

Καταμερισμός εργασιών Αν όμως ο ζαχαροπλάστης αφιερώνει 5 σε κάθε γλυκό, τότε το πρόγραμμα παρασκευής τους μπορεί να οργανωθεί σαν το Διάγραμμα 3. Ο τρόπος αυτός παρασκευής των γλυκών έχει ως αποτέλεσμα τη γρηγορότερη ολοκλήρωση αυτών που παρασκευάζονται εύκολα, ανεξάρτητα από τη σειρά με την οποία δόθηκαν οι συνταγές.

Κβάντα χρόνου Αντίστοιχα ένα λειτουργικό σύστημα καταμερισμού χρόνου θα μοιράζει το χρόνο της ΚΜΕ σε μικρά στοιχειώδη διαστήματα, τα κβάντα χρόνου (time quanta). Σε κάθε κβάντο επιλέγεται ένα από τα προγράμματα και εκτελούνται εντολές από αυτό μέχρι να τελειώσει το χρονικό διάστημα που του διατέθηκε. Όταν ο χρόνος ολοκληρωθεί, επιλέγεται ένα άλλο πρόγραμμα κ.ο.κ. Η διαδικασία αυτή είναι αρκετά πολύπλοκη και επιβαρύνει τις απαιτήσεις του ίδιου του ΛΣ. Το όφελος όμως από αυτή είναι (1) η αύξηση της απόδοσης, αφού το υλικό χρησιμοποιείται παράλληλα, και (2) η μείωση του χρόνου ανακύκλωσης, αφού τα προγράμματα κατά μέσο όρο εξυπηρετούνται πιο γρήγορα.

Προσοχή όμως Η συνεχής εναλλαγή ανάμεσα σε πολλές συνταγές είναι πολύ εύκολο να προκαλέσει σφάλματα. Για να μη γίνονται λοιπόν λάθη, πρέπει ο ζαχαροπλάστης κατά την εναλλαγή από τη μια συνταγή στην άλλη να κάνει ορισμένες ενέργειες όπως: Να σημειώνει μέχρι ποιο σημείο της τρέχουσας συνταγής έχει φθάσει, ώστε να μπορεί να συνεχίσει από το σωστό σημείο όταν έλθει ξανά η σειρά της. Να τοποθετήσει ό,τι από το γλυκό έχει παρασκευάσει μέχρι εκείνη τη στιγμή σε ένα ορισμένο μέρος, για να μπορεί αργότερα να το ξαναπάρει. Αν κάποιο βήμα της τρέχουσας συνταγής δεν είναι δυνατόν να διακοπεί, όπως π.χ. όταν κάτι ψήνεται στο φούρνο, πρέπει να σημειώσει ότι αυτό το βήμα εκκρεμεί.

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

Τι είναι Διεργασία Με τον όρο διεργασία (process) νοείται ένα πρόγραμμα το οποίο έχει φορτωθεί στην κύρια μνήμη και βρίσκεται σε κατάσταση εκτέλεσης με αποτέλεσμα να καταναλώνει χρόνο της ΚΜΕ και πόρους του συστήματος (κύρια μνήμη, χώρο σε αποθηκευτικά μέσα, κανάλια επικοινωνίας). Η διεργασία δηλαδή εκφράζει κάτι δυναμικό και σε εξέλιξη σε αντίθεση με το πρόγραμμα που είναι κάτι στατικό.

Ερμηνεία Σε όλη τη διάρκεια της λειτουργίας του υπολογιστή γίνεται προσπάθεια η ΚΜΕ να είναι διαρκώς απασχολημένη με την εκτέλεση διεργασιών. Από την μεριά του χρήστη οι διεργασίες αυτές φαίνονται να είναι σε ταυτόχρονη εκτέλεση, ενώ στην ουσία μόνο μια από όλες τις διεργασίες είναι σε εκτέλεση σε κάθε χρονική στιγμή σε ένα σύστημα με μια ΚΜΕ ενός πυρήνα. Αυτή η μέθοδος λειτουργίας ονομάζεται πολύπρογραμματισμός (multiprogramming) και δίνει μια ψευδή εντύπωση παραλληλισμού. (Για πραγματική παράλληλη επεξεργασία θα πρέπει να υπάρχουν παραπάνω από ένας πυρήνες επεξεργασίας είτε μέσω ΚΜΕ πολλαπλών πυρήνων είτε μέσω πολλών ΚΜΕ είτε και τα δύο).

Οι διεργασίες σε ΛΣ Windows 7

Καταστάσεις των διεργασιών Από τη δημιουργία μιας διεργασίας μέχρι την ολοκλήρωση και τον τερματισμό της υπάρχουν τρία διακριτά και επαναλαμβανόμενα στάδια. Έτσι, μια διεργασία μπορεί να είναι: Εκτελούμενη (running): Όταν απασχολεί την ΚΜΕ Έτοιμη (runnable, ready): Όταν είναι πλέον έτοιμη και περιμένει τη σειρά της για να πάρει χρόνο στην ΚΜΕ και να συνεχίσει την εκτέλεση της. Υπό αναστολή (blocked): Όταν περιμένει την ολοκλήρωση κάποιου εξωτερικού από αυτή συμβάντος (π.χ δεδομένα από κάποια περιφερειακή συσκευή) για να μπορεί να μεταβεί σε κατάσταση ετοιμότητας, έτσι ώστε να μπορεί να εκτελεστεί.

Μεταγωγή περιβάλλοντος Η εναλλαγή από τη μια διεργασία στην άλλη ονομάζεται μεταγωγή περιβάλλοντος (context switching). Οι πληροφορίες που κρατούνται κατά τη μεταγωγή περιβάλλοντος αφορούν τα ακόλουθα: Από ποια εντολή του προγράμματος πρέπει να συνεχισθεί η εκτέλεση της διεργασίας την επόμενη φορά. Ποια είναι η κατάσταση της ΚΜΕ, ώστε να επαναφερθεί για να συνεχιστεί σωστά η εκτέλεση της διεργασίας. Ποια είναι τα ενδιάμεσα αποτελέσματα που έχουν υπολογιστεί μέχρι εκείνη τη στιγμή. Το ΛΣ καταγράφει αυτές τις πληροφορίες για κάθε διεργασία σε μια ειδική περιοχή της μνήμης που ονομάζεται Process Control Block.

Σύγκριση επίδοσης ΛΣ Ένα απλοποιημένο παράδειγμα μπορεί να δείξει με παραστατικό τρόπο τις διαφορές μεταξύ των διαφόρων ΛΣ και τα πλεονεκτήματα του καταμερισμού χρόνου. Σε ένα υπολογιστικό σύστημα δίνονται για εκτέλεση τρία προγράμματα με απαιτήσεις σε χρόνο που φαίνονται στον παράπλευρο πίνακα. Κάνουμε την υπόθεση ότι κάθε διεργασία χρησιμοποιεί κατά σειρά πρώτα την ΚΜΕ, μετά το δίσκο και μετά τον εκτυπωτή.

Παράδειγμα Το σχεδιάγραμμα εκτέλεσης για ένα ΛΣ ομαδικής επεξεργασίας είναι το εξής:

Παράδειγμα Για το σύστημα πολυπρογραμματισμού και το σύστημα καταμερισμού χρόνου θα έχουμε:

Οι επιδόσεις ανά ΛΣ Τα αποτελέσματα για τα τρία συστήματα συνοψίζονται στον παραπάνω πίνακα. Παρατηρούμε ότι ο συνολικός χρόνος εκτέλεσης και ο ανενεργός χρόνος για το σύστημα ομαδικής επεξεργασίας είναι πολύ μεγαλύτεροι από ό,τι στα άλλα δυο συστήματα. Το σύστημα καταμερισμού χρόνου έχει άλλο ένα πλεονέκτημα: καμία διεργασία δεν ευνοείται ως προς το πότε θα τερματίσει. Μια και όλες οι διεργασίες έχουν περίπου τις ίδιες χρονικές απαιτήσεις, τελειώνουν περίπου στον ίδιο χρόνο.

Άσκηση

Ελαφρές διεργασίες Κάθε ΛΣ αποτελείται από πολλά επί μέρους προγράμματα, τα οποία εκτελούνται παράλληλα για να εξυπηρετούν τους χρήστες, είναι δηλαδή και αυτό χωρισμένο σε διεργασίες. Το ίδιο μπορεί να γίνει και με τα προγράμματα των χρηστών, να διαιρεθούν δηλαδή σε τμήματα τα οποία εκτελούνται παράλληλα. Όταν όμως τα τμήματα αυτά πρέπει να μοιράζονται διάφορα στοιχεία του προγράμματος, όπως π.χ. μεταβλητές, μπορεί να χρησιμοποιηθεί και ένα εναλλακτικό είδος διεργασιών, οι ελαφρές διεργασίες (lightweight processes) ή νήματα εκτέλεσης (threads of execution) ή απλούστερα νήματα (threads).

Νήματα (Threads) Όπως για κάθε διεργασία, έτσι και για κάθε νήμα το ΛΣ κρατά ένα σύνολο από πληροφορίες σε μια ειδική περιοχή της μνήμης, η οποία αποκαλείται Σύνολο Ελέγχου Νήματος (Thread Control Block) ή αλλιώς ΣΕΝ (TCB). Το ΣΕΝ κρατά τις απαραίτητες πληροφορίες για κάθε νήμα, αλλά όσες πληροφορίες είναι κοινές μεταξύ τους (π.χ. αυτές για τη μοιραζόμενη μνήμη) καταγράφονται μια φορά μόνο. Όταν ένα πρόγραμμα διαιρεθεί σε νήματα που εκτελούνται «παράλληλα» (όπως οι διεργασίες) αντί σε ανεξάρτητες διεργασίες, προκαλείται μικρότερη επιβάρυνση στο υπολογιστικό σύστημα, γιατί η μεταγωγή περιβάλλοντος μεταξύ νημάτων είναι πιο γρήγορη από ό,τι μεταξύ διεργασιών.

Απεικόνιση Διεργασιών Ένας τρόπος για να αναπαραστήσουμε γραφικά τα ταυτόχρονα προγράμματα είναι να χρησιμοποιήσουμε το γράφο προβαδίσματος (precedence graph). Με τη βοήθεια ενός τέτοιου γράφου που αναπαριστά κάποιο πρόγραμμα, μπορούμε να δούμε ποια τμήματα του προγράμματος μπορούν να εκτελεστούν παράλληλα και ποια πρέπει να περιμένουν μέχρι να ολοκληρωθούν κάποια άλλα.

Γράφος προβαδίσματος Ένας γράφος αποτελείται από κόμβους (vertices) και ακμές (edges). Μια ακμή συνδέει δυο κόμβους μεταξύ τους, και μπορεί να έχει ή όχι κατεύθυνση. Στην περίπτωση που η ακμή έχει κατεύθυνση ονομάζεται κατευθυνόμενη (directed). Συνήθως σε ένα γράφο δεν εμφανίζονται μαζί κατευθυνόμενες και μη ακμές. Όταν όλες οι ακμές είναι κατευθυνόμενες πρόκειται για έναν κατευθυνόμενο γράφο (directed graph), αλλιώς αποκαλείται απλώς γράφος.

Παράδειγμα Ένας καλός τρόπος για να φανταστούμε ένα γράφο είναι το οδικό δίκτυο μεταξύ πόλεων. Οι κόμβοι είναι οι πόλεις και οι ακμές είναι οι δρόμοι που συνδέουν ζεύγη πόλεων. Οι μονόδρομοι είναι κατευθυνόμενες ακμές, και οι δρόμοι διπλής κατευθύνσεως είναι μη κατευθυνόμενες ακμές.

Γράφος και Διεργασία Σε ένα γράφο προβαδίσματος, κάθε διεργασία παριστάνεται με έναν κόμβο. Αν η διεργασία Δx πρέπει να έχει ολοκληρωθεί για να αρχίσει η Δy, τότε o γράφος περιέχει μια κατευθυνόμενη ακμή από τον κόμβο της Δx σε αυτόν της Δy. Στην εποπτική αναπαράσταση του γράφου έχουμε ένα βέλος από τη Δx προς τη Δy. Οι γράφοι προβαδίσματος είναι κατευθυνόμενοι και μια βασική ιδιότητά τους είναι ότι δεν έχουν κύκλους, είναι δηλαδή ακυκλικοί. Ένας κύκλος είναι μια σειρά από ακμές την οποία μπορούμε να διασχίσουμε από κόμβο σε κόμβο, καταλήγοντας στο σημείο από όπου ξεκινήσαμε. Αν ένας γράφος προβαδίσματος έχει κύκλους, τότε δεν μπορεί να βρεθεί καμία δυνατή σειρά εκτέλεσης των διεργασιών.

Γράφοι προβαδίσματος & προγράμματα Ο γράφος προβαδίσματος είναι ένα πολύ καλό εργαλείο για τη γραφική αναπαράσταση ταυτόχρονων προγραμμάτων. Για παράδειγμα, η εντολή δ4 μπορεί να εκτελεστεί ταυτόχρονα με οποιαδήποτε από τις δ, γιατί δεν υπάρχει μονοπάτι μέσα στο γράφο που να τις συνδέει. Έτσι μπορούν να γραφούν τουλάχιστον τρία διαφορετικά παράλληλα προγράμματα τα οποία υπακούουν στους περιορισμούς του γράφου.

Ανακεφαλαίωση 1 Ο καταμερισμός του χρόνου της ΚΜΕ μεταξύ πολλών προγραμμάτων δίνει τη δυνατότητα να εκτελούνται αυτά ταυτόχρονα βελτιώνοντας συνολικά τις επιδόσεις του υπολογιστικού συστήματος. Τα προγράμματα που βρίσκονται σε κάποιο στάδιο της εκτέλεσής τους από την ΚΜΕ ονομάζονται διεργασίες. Η διαδικασία εναλλαγής από τη μια διεργασία στην άλλη, δηλαδή η μεταγωγή περιβάλλοντος, απαιτεί την καταγραφή πληροφοριών για τη διεργασία που διακόπτεται ώστε να μπορεί να συνεχιστεί αργότερα σωστά η εκτέλεσή της.

Ανακεφαλαίωση 2 Μια εναλλακτική μορφή οργάνωσης ταυτόχρονων προγραμμάτων, τα οποία διαιρούνται σε τμήματα που μπορούν να εκτελούνται παράλληλα, είναι τα νήματα, μια «ελαφριά» μορφή διεργασιών. Τα νήματα χρησιμοποιούν κοινό τμήμα μνήμης και έτσι δεν απαιτούν μηχανισμούς επικοινωνίας πολλές φορές και έτσι επιβαρύνουν λιγότερο το υπολογιστικό σύστημα. Ένας τρόπος αναπαράστασης ταυτοχρόνων προγραμμάτων είναι ο γράφος προβαδίσματος, όπου κάθε διεργασία είναι ένας κόμβος. Αν μια διεργασία πρέπει να ολοκληρωθεί προτού μια άλλη ξεκινήσει, ο γράφος περιέχει μια κατευθυνόμενη ακμή από τον πρώτο κόμβο στο δεύτερο.

Ερωτήσεις Τι εννοούμε με τον όρο διεργασία; Σε τι διαφέρει από το πρόγραμμα; Πόσα είδη διεργασιών υπάρχουν; Τι είναι η μεταγωγή περιβάλλοντος για μία διεργασία; Τι είναι ο γράφος; Τι συμβολίζει μία ακμή σε ένα γράφο προβαδίσματος;