Ακολουθεί μια απλοποιημένη εικόνα:
`` `
+------------------++-----------------++-----------------------------------------------------
| Διαδικασία a | <-> | Σχεδιασμός διαδικασιών | <-> | Διαδικασία b |
+------------------++-----------------++-----------------------------------------------------
^ |
| V
+-----------------------------------------------------
Διακόπτης περιβάλλοντος
`` `
Επεξήγηση:
1. Η διαδικασία a εκτελείται: Η CPU εκτελεί οδηγίες για τη διαδικασία Α. Οι καταχωρητές CPU, ο μετρητής προγράμματος (PC - υποδεικνύοντας την επόμενη εντολή) και πληροφορίες διαχείρισης μνήμης (όπως πίνακες σελίδων) αντικατοπτρίζουν όλες τις διαδικασίες Α.
2. Ο διακόπτης περιβάλλοντος ξεκίνησε: Διακοπή (π.χ. διακοπή χρονοδιακόπτη, ολοκλήρωση εισόδου/εξόδου) ή μια απόφαση προγραμματισμού αναγκάζει τον προγραμματιστή του λειτουργικού συστήματος να παρέμβει.
3. Ο προγραμματιστής αποθηκεύει την πλήρη κατάσταση της διαδικασίας Α (καταχωρητές CPU, PC, πληροφορίες διαχείρισης μνήμης) σε ένα μπλοκ ελέγχου διεργασίας (PCB), μια δομή δεδομένων στη μνήμη. Σκεφτείτε το PCB ως στιγμιότυπο της διαδικασίας.
4. Διαδικασία b Επιλεγμένη: Ο προγραμματιστής επιλέγει την επόμενη διαδικασία για να εκτελέσει, ας πούμε ότι η διαδικασία Β, με βάση διάφορους αλγόριθμους προγραμματισμού (π.χ. στρογγυλή-robin, βασισμένη στην προτεραιότητα).
5. Ο προγραμματιστής φορτώνει την αποθηκευμένη κατάσταση της διαδικασίας Β (από το PCB) στα Μονάδες Διαχείρισης, PC και Διαχείρισης Μνήμης CPU.
6. Η CPU εκτελεί τώρα οδηγίες για τη διαδικασία B.
Αυτή η διαδικασία επαναλαμβάνεται συνεχώς, επιτρέποντας σε πολλαπλές διαδικασίες να μοιράζονται το χρόνο της CPU, δημιουργώντας την ψευδαίσθηση της παράλληλης εκτέλεσης (ταυτόχρονη). Όσο πιο γρήγορα είναι ο διακόπτης περιβάλλοντος, τόσο πιο ομαλή είναι η εμπειρία πολλαπλών εργασιών. Ωστόσο, η εναλλαγή περιβάλλοντος έχει κάποια επιβάρυνση.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα