Co to jest przełączanie kontekstu w systemie operacyjnym?
Przełączanie kontekstu polega na przechowywaniu kontekstu lub stanu procesu tak, że może on być ponownie załadowany, gdy jest to wymagane i wykonanie może być wznowione od tego samego punktu, co wcześniej. Jest to cecha wielozadaniowego systemu operacyjnego i pozwala pojedynczemu procesorowi być współdzielonym przez wiele procesów.
Diagram demonstrujący przełączanie kontekstu jest następujący –
W powyższym diagramie, początkowo uruchomiony jest Proces 1. Proces 1 jest wyłączany, a proces 2 jest włączany z powodu przerwania lub wywołania systemowego. Przełączenie kontekstu polega na zapisaniu stanu procesu 1 do PCB1 i załadowaniu stanu procesu 2 z PCB2. Po pewnym czasie ponownie następuje przełączenie kontekstu i proces 2 jest wyłączany, a proces 1 jest ponownie włączany. Obejmuje to zapisanie stanu procesu 2 do PCB2 i załadowanie stanu procesu 1 z PCB1.
Wyzwalacze przełączania kontekstu
Istnieją trzy główne wyzwalacze przełączania kontekstu. Są one podane w następujący sposób –
-
Multitasking: W środowisku wielozadaniowym proces jest wyłączany z CPU, aby można było uruchomić inny proces. Stan starego procesu jest zapisywany i ładowany jest stan nowego procesu. W systemie preemptive, procesy mogą być wyłączane przez scheduler.
-
Obsługa przerwań: Sprzęt przełącza część kontekstu, gdy wystąpi przerwanie. Dzieje się to automatycznie. Zmieniana jest tylko część kontekstu, aby zminimalizować czas potrzebny na obsługę przerwania.
-
Przełączanie trybu użytkownika i jądra: Przełączanie kontekstu może mieć miejsce, gdy w systemie operacyjnym wymagane jest przejście między trybem użytkownika a trybem jądra.
Kroki przełączania kontekstu
Kroki związane z przełączaniem kontekstu są następujące –
- Zapisz kontekst procesu, który jest aktualnie uruchomiony na procesorze. Zaktualizuj blok sterowania procesem i inne ważne pola.
- Przesuń blok sterowania procesem powyższego procesu do odpowiedniej kolejki, takiej jak kolejka gotowości, kolejka I/O itp.
- Wybierz nowy proces do wykonania.
- Zaktualizuj blok sterowania procesem wybranego procesu. Obejmuje to aktualizację stanu procesu do uruchomionego.
- Uaktualnij struktury danych zarządzania pamięcią zgodnie z wymaganiami.
- Przywróć kontekst poprzednio uruchomionego procesu, gdy zostanie on ponownie załadowany na procesor. Odbywa się to przez załadowanie poprzednich wartości bloku sterowania procesem i rejestrów.
Koszt przełączania kontekstu
Przełączanie kontekstu prowadzi do kosztów ogólnych z powodu płukania TLB, dzielenia pamięci podręcznej między wiele zadań, uruchamiania harmonogramu zadań itp. Przełączanie kontekstu między dwoma wątkami tego samego procesu jest szybsze niż między dwoma różnymi procesami, ponieważ wątki mają te same mapy pamięci wirtualnej. Z tego powodu przepłukiwanie TLB nie jest wymagane.
.
Leave a Reply