Junior
Τι είναι η αλλαγή περιβάλλοντος;
sobes.tech AI
Απάντηση από AI
Η αλλαγή πλαισίου (Context Switching) είναι η διαδικασία αποθήκευσης της κατάστασης μιας διαδικασίας (ή νήματος) και η επαναφορά της κατάστασης μιας άλλης διαδικασίας (ή νήματος) από το λειτουργικό σύστημα. Αυτό επιτρέπει σε πολλαπλές διαδικασίες να μοιράζονται έναν και μόνο επεξεργαστή.
Ο αλγόριθμος περιλαμβάνει τα εξής βήματα:
- Αποθήκευση του τρέχοντος πλαισίου: Οι καταχωρητές του επεξεργαστή, ο μετρητής εντολών (PC), η κατάσταση της στοίβας και άλλες πληροφορίες σχετικά με τη τρέχουσα διαδικασία αποθηκεύονται στον περιγραφέα της (PCB - Πίνακας Ελέγχου Διαδικασίας).
- Επιλογή της επόμενης διαδικασίας: Ο προγραμματιστής του λειτουργικού συστήματος επιλέγει την επόμενη διαδικασία προς εκτέλεση.
- Ανάκτηση του πλαισίου: Η αποθηκευμένη κατάσταση της επιλεγμένης διαδικασίας φορτώνεται από το PCB στους καταχωρητές του επεξεργαστή.
Τα έξοδα (overhead) της αλλαγής πλαισίου περιλαμβάνουν:
- Χρόνο που δαπανάται στην αποθήκευση και ανάκτηση της κατάστασης.
- Απώλεια αποδοτικότητας λόγω cache misses, καθώς η cache που γεμίζει με δεδομένα μιας διαδικασίας γίνεται άχρηστη για άλλη.
- Κόστος εκτέλεσης των εντολών του προγραμματιστή.
Παράδειγμα:
Ας υποθέσουμε ότι έχουμε δύο διαδικασίες, A και B, που εκτελούνται σε έναν πυρήνα επεξεργαστή.
// Αρχικά, εκτελείται η διαδικασία A
// Η διαδικασία A χρησιμοποιεί τους πόρους CPU
// Συμβαίνει ένα γεγονός που απαιτεί αλλαγή, π.χ., η λήξη του quantum χρόνου της διαδικασίας A
// Η κατάσταση της διαδικασίας A (καταχωρητές, PC) αποθηκεύεται
// Το λειτουργικό σύστημα επιλέγει τη διαδικασία B για εκτέλεση
// Η κατάσταση της διαδικασίας B φορτώνεται
// Η διαδικασία B αρχίζει την εκτέλεση
Η αλλαγή πλαισίου είναι ένας θεμελιώδης μηχανισμός πολλαπλών εργασιών στα λειτουργικά συστήματα, που επιτρέπει τη δημιουργία της ψευδαίσθησης παράλληλης εκτέλεσης πολλαπλών διαδικασιών σε έναν φυσικό επεξεργαστή.