Co to jest przełącznik kontekstu?

We wczesnych latach komputerów procesory były maszynami czysto sekwencyjnymi. Pomogło to zachować prostotę projektów. Jednak ograniczało to również wydajność. Wiele procesów będzie musiało zażądać danych z systemowej pamięci RAM lub dysku twardego. Chociaż systemowa pamięć RAM jest szybka, wciąż nie jest tak szybka jak procesor, pozostawiając go bezczynnym, czekając na dane, aż wróci odpowiedź z pamięci RAM. Jeszcze gorzej sytuacja wygląda w przypadku danych żądanych z dysku twardego, urządzenia pamięci masowej znacznie wolniejszego niż pamięć RAM. Tutaj procesor może być bezczynny przez znaczne okresy, czekając na odpowiedź. Niestety w przypadku procesorów sekwencyjnych ten problem jest po prostu nieunikniony.

Na szczęście nowoczesne procesory nie są już sekwencyjne. Oferują wiele zaawansowanych funkcji, takich jak wykonywanie poza kolejnością i wiele wątków. Wykonywanie poza kolejnością pozwala procesorowi analizować nadchodzące instrukcje i zmieniać ich kolejność, aby zmaksymalizować wydajność. Wielowątkowość umożliwia procesorowi uruchamianie wielu różnych wątków lub procesów.

Poza posiadaniem wielu rdzeni procesor nie może działać więcej niż jeden na raz. Może jednak sprawiać wrażenie, przełączając się między nimi regularnie, aby zapewnić każdemu z nich znaczną ilość stałego czasu procesora. Proces przełączania między wątkami nazywany jest przełączaniem kontekstu.

Jak działa przełącznik kontekstu?

Przełączanie kontekstu składa się z dwóch części, przełączania poprzedniego wątku i przełączania nowego. Aby zmienić stary wątek, CPU musi zapisać swój aktualny stan w bloku sterowania procesem lub w ramce przełączania. Obejmuje to wartości odpowiednich rejestrów CPU i zawsze składa się z wartości licznika programu. Po zapisaniu wątku uchwyt można dodać do gotowej kolejki, aby umożliwić jej przywrócenie w razie potrzeby.

Przełączanie w następnym wątku to ten sam proces w odwrotnej kolejności. Wątek jest wybierany albo z kolejki gotowych, w zależności od wagi. Alternatywnie, można go wybrać przez przerwanie wskazujące, że zdarzenie, na które wątek czekał, jest teraz gotowe lub zakończone. Dane dla wątku są następnie kopiowane do odpowiednich rejestrów, a wątek jest przywracany. W tym momencie nowy wątek jest gotowy do kontynuowania działania od miejsca, w którym się zatrzymał.

Wpływ na wydajność

Proces odczytu i zapisu danych podczas włączania i wyłączania wątku zajmuje trochę czasu, choć niewiele, ponieważ używana pamięć jest zwykle szybka. Wiąże się to jednak z dodatkowymi kosztami wydajności. Podczas przełączania wątków dane w pamięci podręcznej procesora i buforach z poprzedniego wątku mogą nie być istotne dla nowego wątku. Może to prowadzić do znacznego wzrostu TLB ( Translation Lookaside Buffer ) i chybień w pamięci podręcznej.

Ten efekt nie jest znaczący, jeśli dwa wątki zostały wygenerowane przez ten sam proces, ponieważ prawdopodobnie współdzielą znaczne elementy pamięci. TLB musi zostać całkowicie przepłukany podczas przełączania między wątkami z różnych metod. Prowadzi to do 100% wskaźnika chybień TLB, podczas gdy wskaźnik trafień w pamięci podręcznej procesora jest również znacznie zmniejszony.

Podczas gdy procesory oferują sprzętową obsługę przełączania kontekstu, systemy operacyjne zwykle tego nie używają. Sprzętowe przełączanie kontekstu nie ma świadomości znaczenia danych. Dlatego musi przechowywać i przywracać wszystkie rejestry, zwiększając czas i wymaganą przestrzeń do przechowywania.

Ponadto sprzętowe przełączanie kontekstu nie przechowuje danych z rejestrów zmiennoprzecinkowych, co może być konieczne. Dlatego powszechnie stosuje się przełączanie kontekstu oprogramowania. Pozwala na przechowywanie danych ze wszystkich rejestrów, w tym rejestrów zmiennoprzecinkowych. Przełączniki kontekstu oprogramowania rozumieją istotność danych. Oznacza to, że może wybierać, które z nich przechowywać w razie potrzeby.

Wniosek

Przełączanie kontekstu to proces, za pomocą którego nowoczesny procesor przełącza uruchomiony wątek. Proces obejmuje przechowywanie odpowiednich danych bieżącego wątku i przywracanie odpowiednich danych nowego wątku. Przełączanie kontekstu wiąże się z kosztem wydajności związanym z czasem potrzebnym do wykonania przełączenia, a także ze zwiększoną częstotliwością chybień w pamięci podręcznej i TLB, ponieważ nie są one przechowywane. Przełączenia kontekstu mają miejsce albo w celu zapewnienia, że ​​wszystkie wątki mają dobry zapas czasu procesora, albo z powodu przerwania wskazującego, że zdarzenie, na które czekała linia, zostało zakończone.



Leave a Comment

Jak sklonować dysk twardy

Jak sklonować dysk twardy

We współczesnej epoce cyfrowej, gdzie dane są cennym zasobem, klonowanie dysku twardego w systemie Windows może być dla wielu kluczowych procesów. Ten obszerny przewodnik

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Jak naprawić błąd ładowania sterownika WUDFRd w systemie Windows 10?

Czy podczas uruchamiania komputera pojawia się komunikat o błędzie informujący, że nie udało się załadować sterownika WUDFRd na Twój komputer?

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Jak naprawić błąd NVIDIA GeForce Experience o kodzie 0x0003

Czy na pulpicie pojawia się błąd NVIDIA GeForce o kodzie 0x0003? Jeśli tak, przeczytaj blog, aby dowiedzieć się, jak szybko i łatwo naprawić ten błąd.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Jak usunąć procesor graficzny z komputera z systemem Windows w 2023 r

Czy musisz usunąć GPU z komputera? Dołącz do mnie, gdy wyjaśnię, jak usunąć procesor graficzny z komputera w tym przewodniku krok po kroku.

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Jak zainstalować dysk SSD NVMe na komputerze stacjonarnym i laptopie

Kupiłeś nowy dysk SSD NVMe M.2, ale nie wiesz, jak go zainstalować? Czytaj dalej, aby dowiedzieć się, jak zainstalować dysk SSD NVMe na laptopie lub komputerze stacjonarnym.

Co to jest bomba logiczna?

Co to jest bomba logiczna?

Bomba logiczna to incydent związany z bezpieczeństwem, w którym osoba atakująca przeprowadza opóźnioną akcję. Czytaj dalej, aby dowiedzieć się więcej.

Co to jest SoC?

Co to jest SoC?

Jeśli kiedykolwiek zajrzałeś do wnętrza wieży PC, możesz zobaczyć, że jest tam wiele różnych komponentów. Twój przeciętny laptop zawiera większość tych samych komponentów

Co to jest szyfrowanie asymetryczne?

Co to jest szyfrowanie asymetryczne?

Algorytmy szyfrowania asymetrycznego wykorzystują dwa różne klucze. Jeden klucz służy do szyfrowania, a drugi do deszyfrowania.

Steam Deck: Jak sformatować kartę SD

Steam Deck: Jak sformatować kartę SD

Steam Deck jest dostępny w trzech opcjach przechowywania: 64 GB eMMC, 256 GB NVMe SSD i 512 GB NVMe SSD. W zależności od biblioteki gier i rozmiaru gier