Sobes.tech
Junior

Τι είναι η αλλαγή περιβάλλοντος;

sobes.tech AI

Απάντηση από AI

Η αλλαγή πλαισίου (Context Switching) είναι η διαδικασία αποθήκευσης της κατάστασης μιας διαδικασίας (ή νήματος) και η επαναφορά της κατάστασης μιας άλλης διαδικασίας (ή νήματος) από το λειτουργικό σύστημα. Αυτό επιτρέπει σε πολλαπλές διαδικασίες να μοιράζονται έναν και μόνο επεξεργαστή.

Ο αλγόριθμος περιλαμβάνει τα εξής βήματα:

  1. Αποθήκευση του τρέχοντος πλαισίου: Οι καταχωρητές του επεξεργαστή, ο μετρητής εντολών (PC), η κατάσταση της στοίβας και άλλες πληροφορίες σχετικά με τη τρέχουσα διαδικασία αποθηκεύονται στον περιγραφέα της (PCB - Πίνακας Ελέγχου Διαδικασίας).
  2. Επιλογή της επόμενης διαδικασίας: Ο προγραμματιστής του λειτουργικού συστήματος επιλέγει την επόμενη διαδικασία προς εκτέλεση.
  3. Ανάκτηση του πλαισίου: Η αποθηκευμένη κατάσταση της επιλεγμένης διαδικασίας φορτώνεται από το PCB στους καταχωρητές του επεξεργαστή.

Τα έξοδα (overhead) της αλλαγής πλαισίου περιλαμβάνουν:

  • Χρόνο που δαπανάται στην αποθήκευση και ανάκτηση της κατάστασης.
  • Απώλεια αποδοτικότητας λόγω cache misses, καθώς η cache που γεμίζει με δεδομένα μιας διαδικασίας γίνεται άχρηστη για άλλη.
  • Κόστος εκτέλεσης των εντολών του προγραμματιστή.

Παράδειγμα:

Ας υποθέσουμε ότι έχουμε δύο διαδικασίες, A και B, που εκτελούνται σε έναν πυρήνα επεξεργαστή.

// Αρχικά, εκτελείται η διαδικασία A
// Η διαδικασία A χρησιμοποιεί τους πόρους CPU

// Συμβαίνει ένα γεγονός που απαιτεί αλλαγή, π.χ., η λήξη του quantum χρόνου της διαδικασίας A
// Η κατάσταση της διαδικασίας A (καταχωρητές, PC) αποθηκεύεται
// Το λειτουργικό σύστημα επιλέγει τη διαδικασία B για εκτέλεση
// Η κατάσταση της διαδικασίας B φορτώνεται
// Η διαδικασία B αρχίζει την εκτέλεση

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