Διεργασίες Flashcards

1
Q

Τι είναι ο πολυπρογραμματισμός;

A

Η ταχύτατη εναλλαγή από διεργασία σε διεργασία

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Σε ποιές καταστάσεις μπορεί να βρεθεί μία διεργασία;

A

εκτελούμενη (running)
έτοιμη προς εκτέλεση ή εκτελέσιμη
(ready or runnable)
υπό αναστολή (blocked)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Ποιές οι δυνατές μεταβάσεις μεταξύ των καταστάσεων μίας διεργασίας;

A

εκτελούμενη → υπό αναστολή
Η διεργασία αναμένει δεδομένα εισόδου

εκτελούμενη → εκτελέσιμη
Ο χρονοπρογραμματιστής επιλέγει άλλη διεργασία

εκτελέσιμη → εκτελούμενη
Ο χρονοπρογραμματιστής επιλέγει τη συγκεκριμένη διεργασία

υπό αναστολή → εκτελέσιμη
Τα δεδομένα εισόδου είναι διαθέσιμα

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Τι σημαίνει ο όρος “κρίσιμο τμήμα”/ “κρίσιμη περιοχή”;

A

Κρίσιμο τμήμα ή περιοχή είναι το τμήμα ενός προγράμματος που περιέχει προσπελάσεις σε μη διαμοιραζόμενους πόρους

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Τι είναι ενεργός αναμονή;

A

Μία διεργασία βρίσκεται σε ενεργό αναμονή όταν όσο “περιμένει” να συνεχίσει την εκτέλεσή της, χρησιμοποιεί την κεντρική μονάδα επεξεργασίας (CPU) για να ελέγχει αν έχει εκπληρωθεί ο όρος ή η συνθήκη που θα της επιτρέψει να συνεχίσει

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Εξηγείστε τον όρο πρόβλημα αντιστροφής προτεραιοτήτων (priority inversion problem)

A

Έχω δύο διεργασίες Χ (χαμηλής προτεραιότητας) και Υ (υψηλής προτεραιότητας). Αν ξεκινήσει να εκτελείται η Υ ενώ η Χ βρίσκεται σε κρίσιμη περιοχή, τότε η Χ θα μπει σε αναστολή και η Υ θα μείνει επ’ άπειρο σε ενεργή αναμονή περιμένοντας να εισέλθει στην κρίσιμη περιοχή.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Τι είναι ο αμοιβαίος αποκλεισμός;

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Πώς δημιουργείται μία διεργασία σε ένα απλό σύστημα;

A

Στα απλά συστήματα όλες οι απαιτούμενες διεργασίες δημιουργούνται και είναι έτοιμες να εκτελεστούν αμέσως μετά την εκκίνηση του συστήματος

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Πώς δημιουργείται μία διεργασία σε ένα σύστημα γενικής χρήσης;

A
  1. Αρχικοποίηση Συστήματος - Κάποιες εκτελούνται στο προσκήνιο και εξυπηρετούν τους χρήστες & κάποιες (“Δαίμονες”) εκτελούνται στο παρασκήνιο
  2. Μία διεργασία εκτελεί κλήση συστήματος (System Call) για δημιουργία μιας νέας διεργασίας - Χρήσιμο σε περιπτώσεις που μια εργασία μπορεί να επιμεριστεί σε πολλές (βοηθητικές) διεργασίες
  3. Η αίτηση κάποιου χρήστη για τη δημιουργία μιας νέας διεργασίας (π.χ. Double-click)
  4. Το ξεκίνημα μιας εργασίας δέσμης - Δημιουργία διεργασίας για την εκτέλεση της επόμενης εργασίας στην ουρά
    εισόδου

Σε όλες τις περιπτώσεις μία διεργασία καλεί κάποια άλλη

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Πώς τερματίζει μία διεργασία;

A
  • Κανονική έξοδος - Τερματίζεται οικειοθελώς αφού ολοκλήρωσε την εργασία της
  • Έξοδος που προκλήθηκε από σφάλμα - Η διεργασία ανακαλύπτει ένα μοιραίο σφάλμα (π.χ. Έλλειψη αρχείου) και τερματίζει οικειοθελώς.
  • Μοιραίο Σφάλμα - Σφάλμα στο κώδικα που προκαλεί ανοικειοθελή τερματισμό της
    λειτουργίας
  • Τερματισμός από ενέργεια άλλης διεργασίας - μία διεργασία προτείνει στο λειτουργικό να
    σκοτώσει μια άλλη
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Για ποιούς λόγους μπορεί να μπλοκαριστεί μία διεργασία;

A

Περιμένει δεδομένα εισόδου που δεν είναι διαθέσιμα ή δεν έχει χρόνο η CPU

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Τι είναι πίνακας διεργασιών (process table);

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Πώς διακόπτεται μία διεργασία;

A

Σε κάθε ομάδα ομοειδών συσκευών αντιστοιχεί μια θέση μνήμης που καλείται διάνυσμα διακοπής (interrupt vector), όπου περιέχεται η διεύθυνση της διαδικασίας εξυπηρέτησης διακοπής (interrupt service procedure), η οποία ακολουθείται αν εμφανιστεί σήμα διακοπής

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Ποιες προϋποθέσεις πρέπει να πληρούνται ώστε να εκτελεστούν παράλληλα διεργασίες;

A
  • Δε βρίσκονται ποτέ ταυτόχρονα στα κρίσιμα τμήματά τους
  • Δεν επιτρέπονται υποθέσεις σε ότι αφορά την ταχύτητα ή το πλήθος των επεξεργαστών
  • Διεργασία που δε βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να αναστείλει άλλες διεργασίες
  • Δεν επιτρέπεται η έπ’ αόριστο αναμονή μιας διεργασίας, για να εισέλθει στο κρίσιμο τμήμα της.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Τι σημαίνει ο όρος ψευδοπαραλληλισμός;

A

Στη διάρκεια ενός δευτερολέπτου η CPU μπορεί να εξυπηρετήσει πολλές διεργασίες (για μερικά κλασματα την καθεμία). Έτσι, αν και δεν μπορεί να γίνεται χρήση της CPU από πολλές διεργασίες ταυτόχρονα, δημιουργείται η ψευδαίσθηση ότι κάτι τέτοιο συμβαίνει, γνωστή και ως ψευδοπαραλληλισμός.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Τι γνωρίζετε για την ιεραρχία των διεργασιών στα Windows;

A

Σε γενικές γραμμές δεν υπάρχει ιεραρχία μεταξύ διεργασιών στα Windows. Οι διεργασίες μπορούν να δημιουργήσουν άλλες και να τις χειρίζονται είναι, όμως, δυνατόν να παρακάμψουν τη διεργασία μεταβιβάζοντας το “χειριστήριο” σε κάποια άλλη διεργασία.

17
Q

Τι γνωρίζετε για την ιεραρχία των διεργασιών στα UNIX;

A

Στα UNIX, κατά την εκκίνηση, εκτελείται μια διεργασία (“init”) η οποία δημιουργεί μία διεργασία για κάθε τερματικό (σύστημα fork). Όταν ένας χρήστης συνδέεται σε έναν τερματικό, η διεργασία σύνδεσης δημιουργεί ένα κέλυφος (shell) το οποίο, μεταξυ άλλων, δέχεται εντολες για τη δημιουργία νέων διεργασιών. Οι διεργασίες, λοιπόν, σχηματίζουν δένδρο με ρίζα την init.
Ακομα, όταν μία διεργασία δέχεται σήμα από το πληκτρολόγιο, αυτή, οι θυγατρικές της και οι υπόλοιποι απόγονοί τους (process group) λαμβάνουν το σήμα αυτό και το λαμβάνουν υπόψη, το αγνοούν ή τερματίζουν (προεπιλεγμένη ενέργεια).

18
Q

Τι εννοούμε με τον όρο “Συνθήκες Συναγωνισμού” (Race Conditions);

A

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

19
Q

Τι γνωρίζετε για τον αμοιβαίο αποκλεισμό με απενεργοποίηση διακοπών;

A

Όταν μιλάμε για απενεργοποίηση διακοπών, εννοούμε ότι μία διεργασία έχει τη δυνατότητα να απενεργοποιήσει τις διακοπές που συμβαίνουν στο σύστημα (μαζί και τις διακοπές ρολογιού) κατά τη διάρκεια της εκτέλεσής της, ώστε να μπορεί να αλληλεπιδρά με την κοινόχρηστη μνήμη χωρίς να τη διακόψει τίποτα.

Προβλήματα:
* Μία διεργασία μπορεί να απενεργοποιήσει τις διακοπές μόνο στον πυρήνα στον οποίο εκτελείται, άρα το πρόβλημα παραμένει στα πολυπυρηνικά συστήματα
* Μπορεί να μη σταμτήσει η εκτέλεση της διεργασίας, άρα να μην ενεργοποιηθούν ποτέ οι διακοπές

Άρα, η απενεργοποίηση των διακοπών είναι σκόπιμη μόνο όταν συμβαίνει από το ίδιο το λειτουργικό για το χρονικό διάστημα κατά το οποίο ο πυρήνας ενημερώνει μεταβλητές ή λίστες.

20
Q

Τι γνωρίζετε για τον αμοιβαίο αποκλεισμό με μεταβλητές κλειδώματος;

A

Ο όρος “μεταβλητή κλειδώματος” αναφέρεται στην ύπαρξη μίας μεταβλητής boolean η οποία μας δείχνει αν κάποια διεργασία βρίσκεται σε κρίσιμη περιοχή (1) ή όχι (0).
Όταν μία διεργασία θέλει να εισέλθει στην κρίσιμη περιοχή της, ελέγχει την μεταβλητή κλειδώματος. Αν είναι 0, εισέρχεται στην κρίσιμη περιοχή και αλλάζει την τιμή της μεταβλητής σε 1, αλλιώς περιμένει να γίνει η τιμή της 0.
Η μέθοδος αυτή εξακολουθεί να είναι ευάλωτη στις συνθήκες ανταγωνισμού.

21
Q

Τι γνωρίζετε για τον αμοιβαίο αποκλεισμό με αυστηρή εναλλαγή;

A

Έστω δύο διεργασίες Α και Β και μία boolean μεταβλητή turn. Όταν η turn ισούται με 0, η διεργασία Α μπορεί να εισέλθει στην κρίσιμη περιοχή της, ενώ όταν ισούται με 1, η Β μπορεί να εισέλθει στην κρίσιμη περιοχή της. Και οι δύο διεργασίες αλλάζουν την τιμή της turn όταν εξέρχονται από την κρίσιμη περιοχή τους και συνεχίζουν να εκτελούνται ώσπου να χρειαστεί να μπούν ξανά σε αυτή. Τη στιγμή εκείνη, αν δεν μπορούν ακόμα να εισέλθουν στην κρίσιμη περιοχή μπαίνουν σε ενεργό αναμονή.
Η διαδικασία αυτή δεν είναι ευάλωτη στις συνθήκες ανταγωνισμού, όμως προϋποθέτει ότι οι δύο διεργασίες θα εισέρχονται εναλλάξ στα κρίσιμα σημεία τους. Έτσι, η μία διεργασία ίσως ανασταλλεί από μία άλλη που βρίσκεται σε μη-κρίσιμη περιοχή, επειδή η δεύτερη εκτελείται πολύ πιο αργά.

22
Q

Ποιά λύση προτείνει ο Peterson για την παράλληλη εκτέλεση διεργασιών;

A

Όταν μία διεργασία θέλει να εισέλθει στην κρίσιμη περιοχή καλεί τη μέθοδο enter_region η οποία της επιτρέπει να μπει στην κρίσιμη περιοχή, αν δεν βρίσκεται κάποια άλλη διεργασία σε αυτή. Αλλιώς, τη βάζει σε ενεργό αναμονή μέχρι η διεργασία που βρίσκεται στηνν κρίσιμη περιοχή να βγει από αυτή.
Με τη λύση αυτή καμία διεργασία δεν αναστέλεται από κάποια που βρίσκεται σε μη-κρίσιμη περιοχη, ούτε υπάρχει περίπτωση να προκύψουν συνθηκες ανταγωνισμού, όμως υπάρχει περίπτωση μία διεργασία να βρίσκεται σε ενεργό αναμονή για μεγάλο διάστημα.

23
Q

Τι είναι το κλείδωμα του διαύλου μνήμης;

A

Μία CPU κλειδώνει τον δίαυλο μνήμης για μία συγκεκριμένη λέξη, ώστε να μην μπορεί να γίνε ανάγνωση ή επεξεργασία της λέξης αυτής από τις υπόλοιπες CPU για ένα διάστημα.