Co to jest przełączanie kontekstu?

Jeden z największych kroków naprzód w projektowaniu i obsłudze jednostek centralnych (CPU) nastąpił, gdy projektanci komputerowych systemów operacyjnych opracowali techniki umożliwiające użytkownikom wielozadaniowość. Wielozadaniowość w odniesieniu do komputerów to praktyka uruchamiania dwóch lub więcej programów jednocześnie. Z punktu widzenia użytkownika końcowego może to nie wydawać się skomplikowane ani naciągane, ale w rzeczywistości stanowi znaczny skok w projektowaniu systemu. W wielozadaniowości procesor musi żonglować wszystkimi operacjami dla różnych aktywnych programów, rejestrując, gdzie jest z każdym programem, gdy użytkownik przełącza się między nimi. Przełączanie kontekstu to proces, który pozwala procesorowi zapamiętywać i przywracać stany różnych aktywnych programów, umożliwiając mu dokończenie tego żonglowania.

Podczas przełączania kontekstu procesor porzuca program, który aktualnie obsługuje, przechowując określone miejsce, w którym się znajdował, aby mógł później wznowić swój postęp. Aby spojrzeć na to z innej perspektywy, przełączanie kontekstu przypomina trochę czytanie wielu książek w tym samym czasie, ciągłe przełączanie się między nimi, przy jednoczesnym zapamiętywaniu numerów stron dla każdej z nich. Informacja „numer strony” dla programów podczas operacji przełączania kontekstu jest przechowywana przez blok sterowania procesem (PCB). PCB jest również czasami określana jako „switchframe”. Informacje te są przechowywane w pamięci w rzeczywistym procesorze, dopóki nie będą ponownie potrzebne.

Przełączanie kontekstu występuje w trzech możliwych sytuacjach: obsługa przerwań, wielozadaniowość i przełączanie użytkowników. Podczas obsługi przerwań inny program „przerywa” bieżący program podczas jego działania. Gdy CPU otrzyma przerwanie, dokonuje przełączenia kontekstu, aby żonglować między uruchomionym programem a programem żądającym natychmiastowych danych. W wielozadaniowości procesor przeskakuje między programami, dając każdemu z nich wycinek czasu przetwarzania i wykonując operację przełączania kontekstu w celu zmiany między nimi. W przypadku niektórych systemów operacyjnych przełączanie kontekstu jest również wykonywane podczas przełączania użytkownika dla systemu operacyjnego, chociaż nie jest to wyraźnie wymagane.

Przełączaniem kontekstu może sterować system operacyjny lub sprzęt komputerowy. Niektóre nowoczesne systemy operacyjne i są przeznaczone do sterowania przełączaniem kontekstu przez sam system operacyjny, ignorując wbudowaną obsługę sprzętową procedury. Dzięki temu system operacyjny może zapisać więcej informacji podczas przełączania kontekstu, co pozwala zachować więcej informacji o przełączniku.