logo

Przełączanie kontekstu w systemie operacyjnym (system operacyjny)

Przełączanie kontekstu to technika lub metoda stosowana przez system operacyjny do przełączania procesu z jednego stanu do drugiego w celu wykonania jego funkcji przy użyciu procesorów w systemie. Podczas przełączania w systemie przechowuje status starego działającego procesu w postaci rejestrów i przypisuje procesor do nowego procesu w celu wykonania jego zadań. Podczas gdy w systemie działa nowy proces, poprzedni proces musi czekać w gotowej kolejce. Wykonywanie starego procesu rozpoczyna się w momencie, w którym zatrzymał go inny proces. Definiuje cechy wielozadaniowego systemu operacyjnego, w którym wiele procesów korzysta z tego samego procesora, aby wykonywać wiele zadań bez potrzeby stosowania dodatkowych procesorów w systemie.

Potrzeba przełączania kontekstu

Przełączanie kontekstu pomaga współdzielić pojedynczy procesor między wszystkimi procesami, aby zakończyć jego wykonywanie i zapisać status zadań systemu. Gdy proces zostanie ponownie załadowany w systemie, jego wykonanie rozpoczyna się w tym samym miejscu, w którym występuje konflikt.

Poniżej przedstawiono powody opisujące potrzebę przełączania kontekstu w systemie operacyjnym.

  1. Przełączenie jednego procesu na inny proces nie odbywa się bezpośrednio w systemie. Przełączanie kontekstu pomaga systemowi operacyjnemu przełączającemu się między wieloma procesami w wykorzystaniu zasobów procesora do wykonywania swoich zadań i przechowywania kontekstu. Obsługę procesu możemy wznowić w tym samym momencie później. Jeżeli nie zapiszemy danych lub kontekstu aktualnie działającego procesu, zapisane dane mogą zostać utracone podczas przełączania pomiędzy procesami.
  2. Jeśli proces o wysokim priorytecie znajdzie się w kolejce gotowości, aktualnie działający proces zostanie zamknięty lub zatrzymany przez proces o wysokim priorytecie, aby zakończyć swoje zadania w systemie.
  3. Jeśli jakikolwiek działający proces wymaga zasobów we/wy w systemie, bieżący proces zostanie przełączony przez inny proces w celu wykorzystania procesorów. A kiedy wymagania we/wy zostaną spełnione, stary proces przechodzi w stan gotowości i czeka na wykonanie w procesorze. Przełączanie kontekstu przechowuje stan procesu w celu wznowienia jego zadań w systemie operacyjnym. W przeciwnym razie proces musi rozpocząć swoje wykonanie od poziomu początkowego.
  4. Jeżeli podczas wykonywania procesu w systemie operacyjnym wystąpią jakiekolwiek przerwania, stan procesu zapisywany jest w postaci rejestrów przy wykorzystaniu przełączania kontekstu. Po rozwiązaniu przerwań proces przechodzi ze stanu oczekiwania do stanu gotowości, aby później wznowić wykonywanie w tym samym momencie, w którym nastąpiło przerwanie przez system operacyjny.
  5. Przełączanie kontekstu umożliwia pojedynczemu procesorowi obsługę wielu żądań procesów jednocześnie bez konieczności stosowania dodatkowych procesorów.

Przykład przełączania kontekstu

Załóżmy, że wiele procesów jest przechowywanych w bloku sterowania procesem (PCB). Jeden proces jest w stanie uruchomionym, aby wykonać swoje zadanie przy użyciu procesorów. W trakcie działania procesu w kolejce gotowych pojawia się inny proces, którego priorytetem jest wykonanie zadania przy użyciu procesora. Tutaj zastosowaliśmy przełączanie kontekstu, które przełącza bieżący proces na nowy proces, wymagający od procesora zakończenia swoich zadań. Podczas przełączania procesu przełączenie kontekstu zapisuje w rejestrach stan starego procesu. Gdy proces zostanie ponownie załadowany do procesora, rozpoczyna wykonywanie procesu, gdy nowy proces zatrzymuje stary proces. Jeśli nie zapiszemy stanu procesu, musimy rozpocząć jego realizację na poziomie początkowym. W ten sposób przełączanie kontekstu pomaga systemowi operacyjnemu przełączać się między procesami, przechowywać lub przeładowywać proces, gdy wymaga on wykonania swoich zadań.

Wyzwalacze przełączania kontekstu

Poniżej przedstawiono trzy typy wyzwalaczy przełączania kontekstu.

  1. Przerywa
  2. Wielozadaniowość
  3. Przełącznik jądra/użytkownika

Przerywa : Procesor żąda odczytania danych z dysku i jeśli występują jakieś przerwania, przełączanie kontekstu automatycznie przełącza część sprzętu, która wymaga mniej czasu na obsługę przerwań.

Wielozadaniowość : Przełączanie kontekstu jest cechą wielozadaniowości, która umożliwia przełączenie procesu z procesora, aby można było uruchomić inny proces. Podczas przełączania procesu zapisywany jest stary stan, aby wznowić wykonywanie procesu w tym samym punkcie systemu.

Przełącznik jądra/użytkownika : Jest używany w systemach operacyjnych podczas przełączania pomiędzy trybem użytkownika i wykonywanym jest tryb jądra/użytkownika.

Co to jest płytka drukowana?

PCB (blok sterowania procesem) to struktura danych używana w systemie operacyjnym do przechowywania wszystkich informacji związanych z danymi procesu. Na przykład, gdy proces jest tworzony w systemie operacyjnym, aktualizowana jest informacja o procesie, przełączanie informacji o procesie, proces kończy się na PCB.

Kroki przełączania kontekstu

Istnieje kilka etapów obejmujących przełączanie kontekstu procesów. Poniższy diagram przedstawia przełączanie kontekstu dwóch procesów, P1 do P2, gdy w kolejce gotowych PCB wystąpi przerwanie, potrzeby we/wy lub proces oparty na priorytetach.

Na czym polega przełączanie kontekstu w systemie operacyjnym

Jak widać na schemacie, początkowo na procesorze uruchomiony jest proces P1, który wykonuje swoje zadanie, a w tym samym czasie inny proces, P2, jest w stanie gotowości. Jeżeli wystąpił błąd, przerwanie lub proces wymaga wejścia/wyjścia, proces P1 przełącza swój stan z uruchomionego do stanu oczekiwania. Przed zmianą stanu procesu P1, przełączenie kontekstu zapisuje kontekst procesu P1 w postaci rejestrów i licznika programu do PCB1 . Następnie ładuje stan procesu P2 ze stanu gotowości PCB2 do stanu działającego.

czytanie Java w CSV

Podczas przełączania procesu P1 na proces 2 podejmowane są następujące kroki:

  1. Po pierwsze, przełączanie kontekstu wymaga zapisania stanu procesu P1 w postaci licznika programu i rejestrów na PCB (blok licznika programu), który jest w stanie uruchomionym.
  2. Teraz zaktualizuj PCB1, aby przetworzyć P1 i przenieś proces do odpowiedniej kolejki, takiej jak kolejka gotowości, kolejka we/wy i kolejka oczekiwania.
  3. Następnie inny proces przechodzi w stan uruchomienia, lub możemy wybrać ze stanu gotowości nowy proces, który ma zostać wykonany, lub proces ma wysoki priorytet do wykonania swojego zadania.
  4. Teraz musimy zaktualizować PCB (blok sterowania procesem) dla wybranego procesu P2. Obejmuje to przełączanie stanu procesu ze stanu gotowości do stanu działania lub z innego stanu, takiego jak zablokowanie, wyjście lub zawieszenie.
  5. Jeśli procesor wykonuje już proces P2, musimy uzyskać status procesu P2, aby wznowić jego wykonywanie w tym samym momencie, w którym nastąpiło przerwanie systemowe.

Podobnie proces P2 jest wyłączany z procesora, dzięki czemu proces P1 może wznowić wykonywanie. Proces P1 jest przeładowywany z PCB1 do stanu uruchomionego, aby wznowić swoje zadanie w tym samym momencie. W przeciwnym razie informacje zostaną utracone, a po ponownym uruchomieniu proces rozpocznie wykonywanie na poziomie początkowym.