Udostępnij przez


Opóźnienie synchronizacji jądra rozmyte

Uwaga / Notatka

To sprawdzenie jest przestarzałe, począwszy od systemu Windows 10 Build 19042 lub nowszego

Opcja losowego harmonogramowania wątków w synchronizacji jądra pomaga w wykrywaniu błędów współbieżności w sterownikach.

Ostrożność Ta opcja nie jest przeznaczona do użycia podczas weryfikowania wszystkich (lub dużej kolekcji) sterowników na komputerze. Ta opcja powinna być używana tylko w przypadku przeprowadzania ukierunkowanego testowania poszczególnych sterowników lub dołączonych sterowników filtrów. Użycie tej opcji na dużej liczbie sterowników w tym samym czasie może spowodować nieprzewidywalne wyniki i może wymusić awarie składników niepowiązanych z testowanych sterowników.

Uwaga Ta opcja jest dostępna od systemu Windows 8.1.

Po wybraniu opcji weryfikator sterowników wstawia losowe opóźnienia w różnych punktach wątków. Podobnie jak opcja Fuzzing opóźnień w strukturze Power Framework, opcja fuzzing opóźnień synchronizacji jądra używa algorytmu, który pomaga zwiększyć szanse na znalezienie błędów w sterownikach. Fuzzowanie opóźnień synchronizacji jądra udoskonala tradycyjne testy przeciążeniowe, w których program testowy jest uruchamiany przez kilka dni, a nawet tygodni, w nadziei na wykrycie problemów, które mogą wystąpić podczas współbieżnego wykonywania.

Aktywowanie tej opcji

Funkcję opóźnienia synchronizacji jądra można aktywować dla co najmniej jednego sterownika za pomocą Menedżera weryfikatora sterowników lub wiersza polecenia Verifier.exe. Aby uzyskać szczegółowe informacje, zobacz Wybieranie opcji weryfikatora sterowników. Aby aktywować lub dezaktywować opcję Opóźnij rozmycie programu Power Framework, należy ponownie uruchomić komputer.

Uwaga Opcja fuzzowania opóźnienia synchronizacji jądra zwiększa prawdopodobieństwo wystąpienia warunków współbieżności w czasie wykonywania, poprzez wstawianie losowych opóźnień do różnych wywołań funkcji API jądra. Aby opóźnienia były bardziej skuteczne, można włączyć tę opcję z innymi opcjami weryfikatora sterowników. Ze względu na opóźnienia, które można wprowadzić, można oczekiwać, że komputer będzie miał wolniejsze odpowiedzi.

  • W wierszu polecenia

    W wierszu polecenia opóźnienie synchronizacji jądra Kernel jest reprezentowane przez verifier /flags 0x00800000 (Bit 23). Aby aktywować Power Framework Delay Fuzzing, użyj wartości flagi 0x00800000 lub dodaj 0x00800000 do tej wartości. Przykład:

    verifier /flags 0x00800000 /driver MyDriver.sys
    

    Funkcja będzie aktywna po następnym rozruchu.

  • Korzystanie z Menedżera weryfikatora sterowników

    1. Uruchom Menedżera weryfikatora sterowników. Wpisz Weryfikator w oknie wiersza polecenia.
    2. Wybierz pozycję Utwórz ustawienia niestandardowe (dla deweloperów kodu), a następnie kliknij przycisk Dalej.
    3. Wybierz poszczególne ustawienia z pełnej listy.
    4. Wybierz (zaznacz) Fuzzowanie opóźnienia synchronizacji jądra.
    5. Zrestartuj komputer.

Dlaczego synchronizacja jądra opóźnia rozmycie?

Większość procedur sterowników jest powtarzana i współbieżna. Błędy związane z współbieżnością są notorycznie trudne do znalezienia. Usterki mogą obejmować zakleszczenia i warunki wyścigu spowodowane problemami z synchronizacją i nieprawidłowym czasem między wątkami. Testy obciążeniowe to tradycyjna technika testowania służąca do znajdowania tych usterek, ale może być niska i kosztowna, a wyniki nie zawsze są powtarzalne. Opcja fuzzingu z opóźnieniami synchronizacji jądra zwiększa prawdopodobieństwo wystąpienia warunków wyścigu danych w czasie działania poprzez wstawianie losowych opóźnień w różnych wywołaniach funkcji API jądra. Jeśli na przykład warunek wyścigu powoduje, że sterownik uzyskuje dostęp do IRP po jego anulowaniu, opcja fuzzowania opóźnienia synchronizacji jądra zwiększa prawdopodobieństwo wystąpienia tego warunku wyścigu, co pozwala Weryfikatorowi sterownika wykryć błąd podczas testowania. Opcja opóźnienia synchronizacji jądra zwiększa moc i skuteczność weryfikatora sterowników.