Co to jest przełączanie kontekstu?
Jeden z największych postępów w projektowaniu i działaniu 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 lub dalekosiężne, ale w rzeczywistości stanowi znaczący skok w projektowaniu systemu. W wielozadaniowości procesor musi żonglować wszystkimi operacjami dla różnych aktywnych programów, nagrywając je z każdym programem, gdy użytkownik przełącza się między nimi. Przełączanie kontekstu to proces, który pozwala CPU zapamiętywać i przywracać stany dla różnych aktywnych programów, umożliwiając mu zakończenie tej czynności żonglowania.
Podczas przełączania kontekstu procesor upuszcza program, który aktualnie obsługuje, zapisując określone miejsce w tym programie, aby mógł wznowić swój postęp później. Mówiąc inaczej, przełączanie kontekstu przypomina trochę czytanie wielu książek jednocześnie, ciągłe przełączanie się między nimi, zawsze pamiętając numery stron dla każdej z nich. Informacje o „numerze strony” dla programów podczas operacji przełączania kontekstu są przechowywane przez blok sterujący procesem (PCB). PCB jest również czasami nazywane „ramką przełączającą”. Informacje te są przechowywane w pamięci rzeczywistego procesora, 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 procesor otrzyma przerwanie, wykonuje zmianę kontekstu, aby żonglować między uruchomionym programem a programem żądającym natychmiastowych danych. W wielozadaniowości procesor przeskakuje w obie strony między programami, dając każdemu odcinek czasu przetwarzania i wykonując operację przełączania kontekstu w celu przełączania między nimi. W przypadku niektórych systemów operacyjnych zmiana kontekstu jest również wykonywana podczas zmiany użytkownika dla systemu operacyjnego, chociaż nie jest to wyraźnie wymagane.
System operacyjny lub sprzęt komputerowy mogą kontrolować przełączanie kontekstu. Niektóre nowoczesne systemy operacyjne są zaprojektowane do sterowania przełączaniem kontekstu przez sam system operacyjny, ignorując wbudowane wsparcie sprzętowe dla tej 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.