Διεργασίες Flashcards
Τι είναι ο πολυπρογραμματισμός;
Η ταχύτατη εναλλαγή από διεργασία σε διεργασία
Σε ποιές καταστάσεις μπορεί να βρεθεί μία διεργασία;
εκτελούμενη (running)
έτοιμη προς εκτέλεση ή εκτελέσιμη
(ready or runnable)
υπό αναστολή (blocked)
Ποιές οι δυνατές μεταβάσεις μεταξύ των καταστάσεων μίας διεργασίας;
εκτελούμενη → υπό αναστολή
Η διεργασία αναμένει δεδομένα εισόδου
εκτελούμενη → εκτελέσιμη
Ο χρονοπρογραμματιστής επιλέγει άλλη διεργασία
εκτελέσιμη → εκτελούμενη
Ο χρονοπρογραμματιστής επιλέγει τη συγκεκριμένη διεργασία
υπό αναστολή → εκτελέσιμη
Τα δεδομένα εισόδου είναι διαθέσιμα
Τι σημαίνει ο όρος “κρίσιμο τμήμα”/ “κρίσιμη περιοχή”;
Κρίσιμο τμήμα ή περιοχή είναι το τμήμα ενός προγράμματος που περιέχει προσπελάσεις σε μη διαμοιραζόμενους πόρους
Τι είναι ενεργός αναμονή;
Μία διεργασία βρίσκεται σε ενεργό αναμονή όταν όσο “περιμένει” να συνεχίσει την εκτέλεσή της, χρησιμοποιεί την κεντρική μονάδα επεξεργασίας (CPU) για να ελέγχει αν έχει εκπληρωθεί ο όρος ή η συνθήκη που θα της επιτρέψει να συνεχίσει
Εξηγείστε τον όρο πρόβλημα αντιστροφής προτεραιοτήτων (priority inversion problem)
Έχω δύο διεργασίες Χ (χαμηλής προτεραιότητας) και Υ (υψηλής προτεραιότητας). Αν ξεκινήσει να εκτελείται η Υ ενώ η Χ βρίσκεται σε κρίσιμη περιοχή, τότε η Χ θα μπει σε αναστολή και η Υ θα μείνει επ’ άπειρο σε ενεργή αναμονή περιμένοντας να εισέλθει στην κρίσιμη περιοχή.
Τι είναι ο αμοιβαίος αποκλεισμός;
Η μέθοδος που εξασφαλίζει ότι όσο μία διεργασία κάνει χρήση κάποιου πόρου, καμία άλλη διεργασία δεν θα έχει πρόσβαση στον πόρο αυτό.
Πώς δημιουργείται μία διεργασία σε ένα απλό σύστημα;
Στα απλά συστήματα όλες οι απαιτούμενες διεργασίες δημιουργούνται και είναι έτοιμες να εκτελεστούν αμέσως μετά την εκκίνηση του συστήματος
Πώς δημιουργείται μία διεργασία σε ένα σύστημα γενικής χρήσης;
- Αρχικοποίηση Συστήματος - Κάποιες εκτελούνται στο προσκήνιο και εξυπηρετούν τους χρήστες & κάποιες (“Δαίμονες”) εκτελούνται στο παρασκήνιο
- Μία διεργασία εκτελεί κλήση συστήματος (System Call) για δημιουργία μιας νέας διεργασίας - Χρήσιμο σε περιπτώσεις που μια εργασία μπορεί να επιμεριστεί σε πολλές (βοηθητικές) διεργασίες
- Η αίτηση κάποιου χρήστη για τη δημιουργία μιας νέας διεργασίας (π.χ. Double-click)
- Το ξεκίνημα μιας εργασίας δέσμης - Δημιουργία διεργασίας για την εκτέλεση της επόμενης εργασίας στην ουρά
εισόδου
Σε όλες τις περιπτώσεις μία διεργασία καλεί κάποια άλλη
Πώς τερματίζει μία διεργασία;
- Κανονική έξοδος - Τερματίζεται οικειοθελώς αφού ολοκλήρωσε την εργασία της
- Έξοδος που προκλήθηκε από σφάλμα - Η διεργασία ανακαλύπτει ένα μοιραίο σφάλμα (π.χ. Έλλειψη αρχείου) και τερματίζει οικειοθελώς.
- Μοιραίο Σφάλμα - Σφάλμα στο κώδικα που προκαλεί ανοικειοθελή τερματισμό της
λειτουργίας - Τερματισμός από ενέργεια άλλης διεργασίας - μία διεργασία προτείνει στο λειτουργικό να
σκοτώσει μια άλλη
Για ποιούς λόγους μπορεί να μπλοκαριστεί μία διεργασία;
Περιμένει δεδομένα εισόδου που δεν είναι διαθέσιμα ή δεν έχει χρόνο η CPU
Τι είναι πίνακας διεργασιών (process table);
Ένας πίνακας ή συνδεδεμένη λίστα από δομές στην οποία τηρείται μία εγγρφή για κάθε διεργασία. Οι εγγραφές περιλαμβάνουν στοιχεία σχετικά με τη διαχείριση διεργασιών, μνήμης και αρχείων. (π.χ. κατάσταση διεργασίας, κατανομή μνήμης, πληροφορίες χρονοπρογραμματισμού) από το ΛΣ.
Πώς διακόπτεται μία διεργασία;
Σε κάθε ομάδα ομοειδών συσκευών αντιστοιχεί μια θέση μνήμης που καλείται διάνυσμα διακοπής (interrupt vector), όπου περιέχεται η διεύθυνση της διαδικασίας εξυπηρέτησης διακοπής (interrupt service procedure), η οποία ακολουθείται αν εμφανιστεί σήμα διακοπής
Ποιες προϋποθέσεις πρέπει να πληρούνται ώστε να εκτελεστούν παράλληλα διεργασίες;
- Δε βρίσκονται ποτέ ταυτόχρονα στα κρίσιμα τμήματά τους
- Δεν επιτρέπονται υποθέσεις σε ότι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών
- Διεργασία που δε βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να αναστείλει άλλες διεργασίες
- Δεν επιτρέπεται η έπ’ αόριστο αναμονή μιας διεργασίας, για να εισέλθει στο κρίσιμο τμήμα της.
Τι σημαίνει ο όρος ψευδοπαραλληλισμός;
Στη διάρκεια ενός δευτερολέπτου η CPU μπορεί να εξυπηρετήσει πολλές διεργασίες (για μερικά κλασματα την καθεμία). Έτσι, αν και δεν μπορεί να γίνεται χρήση της CPU από πολλές διεργασίες ταυτόχρονα, δημιουργείται η ψευδαίσθηση ότι κάτι τέτοιο συμβαίνει, γνωστή και ως ψευδοπαραλληλισμός.