Jak działa Windows Scheduler? Mechanizm, który decyduje, który program dostaje procesor
Informatyka

Jak działa Windows Scheduler? Mechanizm, który decyduje, który program dostaje procesor

Jak działa Windows Scheduler? Mechanizm, który decyduje, który program dostaje procesor

Kiedy użytkownik uruchamia komputer, widzi dziesiątki aplikacji działających jednocześnie. Przeglądarka ładuje strony, komunikator odbiera wiadomości, system wykonuje aktualizacje, sterowniki obsługują urządzenia, a w tle działają setki usług Windows.

Naturalne pytanie brzmi: jak procesor wie, który program ma wykonywać w danym momencie?

Odpowiedź znajduje się w jednym z najważniejszych komponentów jądra Windows NT – Windows Scheduler, czyli planisty zadań procesora.

To właśnie Scheduler decyduje, który wątek otrzyma dostęp do CPU, jak długo będzie wykonywany i kiedy należy przekazać zasoby innemu zadaniu.

Bez niego współczesny Windows nie byłby w stanie obsługiwać wielozadaniowości.


Scheduler nie zarządza programami, tylko wątkami

To jeden z najważniejszych szczegółów, który często jest pomijany.

W Menedżerze zadań użytkownik widzi procesy:

  • Chrome.exe,
  • explorer.exe,
  • Discord.exe,
  • Teams.exe.

Jednak proces sam w sobie nie wykonuje instrukcji.

Właściwą jednostką wykonywania jest wątek (thread).

Proces jest jedynie kontenerem, który posiada:

  • pamięć,
  • zasoby,
  • uprawnienia,
  • jeden lub wiele wątków.

Scheduler Windows nie pyta:

„Który program uruchomić?”

Pyta:

„Który wątek powinien teraz otrzymać czas procesora?”

To fundamentalna różnica.


Dlaczego jeden procesor może obsługiwać wiele programów?

Starsze komputery z jednym rdzeniem fizycznie mogły wykonywać tylko jedną instrukcję w danym momencie.

Mimo tego użytkownik miał wrażenie, że wiele aplikacji działa równocześnie.

Było to możliwe dzięki mechanizmowi preemptive multitasking – wielozadaniowości z wywłaszczaniem.

Scheduler bardzo szybko przełącza procesor pomiędzy różnymi wątkami.

Przykładowo:

  • przeglądarka działa przez kilka milisekund,
  • potem procesor obsługuje sterownik sieci,
  • następnie wykonuje fragment kodu gry,
  • później obsługuje dźwięk.

Zmiany zachodzą tak szybko, że człowiek odbiera je jako jednoczesną pracę.


Jak Windows wybiera kolejny wątek?

Decyzja nie jest przypadkowa.

Scheduler analizuje wiele parametrów:

  • priorytet wątku,
  • aktualny stan wykonania,
  • dostępność rdzeni CPU,
  • historię wykorzystania procesora,
  • ograniczenia energetyczne,
  • powinowactwo procesora (CPU affinity).

Najważniejszym czynnikiem jest priorytet.

Windows posiada kilka poziomów priorytetów.

Standardowo aplikacje działają w zakresie:

Idle
Below Normal
Normal
Above Normal
High
Realtime

Większość programów działa z priorytetem:

Normal

i właśnie tak powinno pozostać.


Dlaczego nie warto ustawiać aplikacji na „Realtime”?

To jeden z popularnych trików znalezionych w poradnikach optymalizacyjnych.

Użytkownik ustawia grę lub program na:

Realtime

licząc na większą wydajność.

Problem polega na tym, że priorytet ten jest przeznaczony dla bardzo specyficznych zastosowań, np. systemów wymagających minimalnych opóźnień.

Jeżeli zwykła aplikacja otrzyma zbyt wysoki priorytet, może ograniczyć czas procesora dla:

  • sterowników,
  • usług systemowych,
  • obsługi wejścia,
  • komunikacji sieciowej.

Efekt może być odwrotny:

  • przycięcia,
  • niestabilność,
  • problemy z reakcją systemu.

Quantum – ile czasu dostaje wątek?

Scheduler nie pozwala jednemu programowi przejąć procesora na zawsze.

Każdy wątek otrzymuje określony fragment czasu na wykonanie pracy.

Ten fragment nazywany jest często quantum.

Po jego zakończeniu Scheduler może:

  1. zatrzymać aktualny wątek,
  2. zapisać jego stan,
  3. wybrać kolejny,
  4. wznowić wykonywanie.

Cały proces odbywa się bardzo szybko.


Context Switch – koszt przełączania zadań

Każde przełączenie pomiędzy wątkami wymaga pracy procesora.

Windows musi zapisać między innymi:

  • rejestry CPU,
  • licznik instrukcji,
  • stan wykonywania.

Następnie ładowany jest stan kolejnego wątku.

Operacja ta nazywa się context switch.

Samo przełączanie trwa bardzo krótko, ale przy ekstremalnej liczbie zmian może mieć wpływ na wydajność.

Dlatego system nie przełącza zadań bez potrzeby.


Jak Scheduler działa na wielu rdzeniach?

Nowoczesne procesory posiadają wiele rdzeni i wątków logicznych.

Windows Scheduler musi zdecydować nie tylko:

„który wątek?”

ale również:

„na którym rdzeniu?”

Przykładowo komputer z procesorem:

  • 8 rdzeni,
  • 16 wątków,

może wykonywać jednocześnie wiele zadań.

Scheduler zajmuje się między innymi:

Load balancing

Równomiernym rozłożeniem pracy pomiędzy rdzenie.

CPU affinity

Przypisaniem wybranych wątków do konkretnych rdzeni.

Core parking

Usypianiem nieużywanych rdzeni w celu oszczędzania energii.


Windows Scheduler a gry komputerowe

W przypadku gier planowanie zadań ma ogromne znaczenie.

Gra zazwyczaj posiada wiele wątków:

  • główny wątek silnika,
  • renderowanie grafiki,
  • fizyka,
  • dźwięk,
  • obsługa sieci.

Scheduler musi zdecydować, jak rozdzielić te zadania.

Problem jest szczególnie ciekawy w przypadku procesorów hybrydowych, takich jak nowsze układy Intel z rdzeniami:

  • Performance Core (P-Core),
  • Efficient Core (E-Core).

Windows 11 wykorzystuje mechanizm Intel Thread Director, który dostarcza Schedulerowi informacje o charakterystyce wykonywanych zadań.

Dzięki temu system może lepiej zdecydować, które zadania powinny trafić na szybkie rdzenie, a które na energooszczędne.

Jak działa Windows Scheduler? Mechanizm, który decyduje, który program dostaje procesor
Jak działa Windows Scheduler? Mechanizm, który decyduje, który program dostaje procesor

Dlaczego komputer czasami „nie reaguje”?

Każdy użytkownik zna sytuację:

  • program się zawiesił,
  • komputer zwolnił,
  • mysz zaczęła reagować z opóźnieniem.

Nie zawsze oznacza to problem z procesorem.

Możliwe przyczyny:

  • jeden wątek blokuje zasoby,
  • aplikacja wykonuje długą operację bez oddawania czasu CPU,
  • występuje przeciążenie wejścia/wyjścia,
  • sterownik działa nieprawidłowo.

Scheduler może zarządzać czasem procesora, ale nie naprawi źle napisanej aplikacji.


Windows Scheduler a energooszczędność

W laptopach Scheduler współpracuje z mechanizmami zarządzania energią.

System analizuje:

  • obciążenie CPU,
  • temperaturę,
  • tryb zasilania,
  • poziom baterii.

Przykład:

Podczas pracy biurowej nie ma sensu maksymalnie obciążać wszystkich rdzeni.

Windows może:

  • obniżyć taktowanie,
  • przenieść zadania na bardziej efektywne rdzenie,
  • uśpić nieaktywne jednostki.

Podczas gry lub renderowania sytuacja wygląda zupełnie inaczej.


Czy można ręcznie poprawić działanie Scheduler?

W internecie istnieje wiele porad:

  • wyłączanie usług,
  • ustawianie priorytetów,
  • blokowanie rdzeni,
  • zmiany w rejestrze.

W większości przypadków współczesny Windows radzi sobie lepiej niż ręczne konfiguracje.

Scheduler jest rozwijany od dziesięcioleci i uwzględnia tysiące scenariuszy.

Ręczna ingerencja ma sens głównie w:

  • środowiskach profesjonalnych,
  • testach wydajności,
  • stacjach roboczych,
  • serwerach.

Scheduler i bezpieczeństwo systemu

Planista zadań jest również ważny z punktu widzenia bezpieczeństwa.

Ataki typu:

  • denial of service lokalny,
  • przeciążanie CPU,
  • nadużywanie wysokich priorytetów,

mogą próbować wykorzystać mechanizmy planowania.

Dlatego Windows kontroluje:

  • kto może zmieniać priorytety,
  • jakie procesy mogą działać z wysokimi uprawnieniami,
  • jakie usługi mogą korzystać z zasobów systemowych.

Podsumowanie

Windows Scheduler to jeden z tych elementów Windows, którego działanie jest całkowicie niewidoczne, ale bez niego system nie byłby użyteczny.

To on decyduje, czy gra otrzyma wystarczającą ilość czasu procesora, czy przeglądarka pozostanie responsywna, a usługi systemowe będą działać stabilnie.

Najważniejsza rzecz do zapamiętania:

Windows nie zarządza czasem procesora dla programów. Zarządza nim dla wątków.

To właśnie ta warstwa abstrakcji pozwala współczesnym komputerom wykonywać setki zadań jednocześnie i sprawia, że użytkownik ma wrażenie płynnej, równoległej pracy całego systemu.

Polecane wpisy
Google otworzyło worek pełen nowości.

W San Francisco trwa jedno z najważniejszych wydarzeń dla światowego rynku internetowego. Konferencja Google I/O co roku obfituje w nowinki Czytaj dalej

Szybsze i bezpieczniejsze przeglądarki dla systemu Windows 11 – ranking i rekomendacje
Szybsze i bezpieczniejsze przeglądarki dla systemu Windows 11 – ranking i rekomendacje

🚀 Szybsze i bezpieczniejsze przeglądarki dla systemu Windows 11 – ranking i rekomendacje W dobie cyberzagrożeń i rosnących wymagań dotyczących Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.