Junior
Czym jest przełączanie kontekstu?
sobes.tech AI
Odpowiedź od AI
Przełączanie kontekstu (Context Switching) to proces zapisywania stanu jednego procesu (lub wątku) i przywracania stanu innego procesu (lub wątku) przez system operacyjny. Pozwala to wielu procesom dzielić ten sam procesor.
Algorytm obejmuje następujące kroki:
- Zapisanie bieżącego kontekstu: Rejestry procesora, licznik instrukcji (PC), stan stosu i inne informacje o bieżącym procesie są zapisywane w jego opisie (PCB - Blok Kontroli Procesu).
- Wybór następnego procesu: Planista systemu operacyjnego wybiera kolejny proces do wykonania.
- Przywrócenie kontekstu: Zapisany stan wybranego procesu jest ładowany z jego PCB do rejestrów procesora.
Koszty (nakład) przełączania kontekstu obejmują:
- Czas poświęcony na zapisanie i przywrócenie stanu.
- Straty efektywności z powodu cache misses, ponieważ cache wypełniony danymi jednego procesu staje się nieaktualny dla innego.
- Koszty wykonania instrukcji planisty.
Przykład:
Załóżmy, że mamy dwa procesy, A i B, wykonujące się na jednym rdzeniu procesora.
// Na początku wykonywany jest Proces A
// Proces A korzysta z zasobów CPU
// Występuje zdarzenie wymagające przełączenia, np. upływ kwantu czasu Procesu A
// Stan Procesu A (rejestry, PC) jest zapisywany
// System operacyjny wybiera Proces B do wykonania
// Stan Procesu B jest ładowany
// Proces B zaczyna wykonywać się
Przełączanie kontekstu jest podstawowym mechanizmem wielozadaniowości w systemach operacyjnych, umożliwiającym tworzenie iluzji równoległego wykonywania wielu procesów na jednym fizycznym procesorze.