Co dzieje się, gdy komputer się wyłącza?

62

Po kliknięciu przycisku zamykania pojawia się kolejny ekran z informacją o wyłączeniu :

wyłączanie

Co tak naprawdę dzieje się na tym etapie?

Myślę, że w systemie Windows XP powiedziałoby to coś w rodzaju zapisywania ustawień przed wyłączeniem. Jednak jakie ustawienia należy zapisać, jeśli zastosujesz motyw lub coś, co zostanie zapisane po kliknięciu Zastosuj.

Jeśli odmontowuje HD, to na pewno będzie to samo, co wymuszenie wyłączenia ( pociągnięcie za wtyczkę )

bs677
źródło
1
Kasowanie zaległych zapisów na dysku, usługi zamykania, ...
DavidPostill
16
Napędy nie są właściwie odmontowywane po wyciągnięciu wtyczki.
RockPaperLizard
3
Oto dobre ustawienie, które możesz docenić: superuser.com/questions/426029/…
RockPaperLizard
8
"when you apply a theme or something it is saved when you click apply"- zapisane tak, niekoniecznie zapisane na dysku Dyski są bardzo wolne. Tak więc pewna ilość pamięci RAM jest używana do buforowania danych na dysku. Możesz zamknąć program w dowolnym momencie, a system operacyjny upewni się, że dane zostaną ostatecznie zapisane na dysk. Ale system operacyjny potrzebuje prądu do działania. Jeśli po prostu szarpniesz wtyczkę (wyjmij baterię laptopa), wówczas niezapisane dane zostaną utracone. Co gorsza, nie wiesz, ile jest niezapisane - ostatnia linia? Połowa twoich ustawień? Wszystkie twoje ustawienia? Z twojego punktu widzenia wszystko, czego doświadczasz, to uszkodzone dane
slebetman
1
To może Cię zainteresować: niektóre systemy Linux pokazują krok po kroku aktualizacje tego, co robi system, gdy się zamyka. Oto kilka przykładów: 1 2 (chociaż żaden z nich nie pokazuje pełnej procedury zamykania; jest więcej elementów, które pojawiają się wcześniej). Windows przechodzi podobne kroki.
David Z

Odpowiedzi:

67

Istnieje wiele rzeczy dzieje się podczas zamykania systemu. Oto tylko kilka przykładów:

  • Sprawdź, czy aplikacje użytkownika nie zostały zamknięte (jak niezapisany dokument) i w razie potrzeby poproś użytkownika
  • Zatrzymaj usługi w tle
  • Poczekaj na sygnał zakończenia z otwartych usług i aplikacji
  • Opróżnia pamięć podręczną na dysk
  • Napisz pliki dziennika
  • Wszyscy użytkownicy są wylogowani
  • Zakończ muszlę
  • Rozpocznij instalowanie aktualizacji systemu Windows, jeśli to konieczne, i w razie potrzeby powiedz systemowi, aby zakończył aktualizację podczas uruchamiania
  • Wyślij sygnał wyłączenia ACPI (właśnie to powoduje wyłączenie urządzenia)

Edycja: możesz dodać więcej w komentarzach, jeśli możesz pomyśleć o innych elementach.

Keltari
źródło
7
W systemie Linux przechowuje również pulę entropii na dysku. Jest to ważne przy następnym uruchomieniu. A może się mylę?
Ismael Miguel
76
Wysyła wszystkie twoje „prywatne” informacje do Microsoft, w przypadku Win10.
Lolums,
30
Dobry system operacyjny hamowałby także zawieszenie wywołane pokrywką laptopa. Nienawidzę tego, gdy procedura zamykania jest wznawiana, gdy ponownie otwieram laptopa.
user2394284,
6
@ Ben zajmuje to znacznie dłużej niż mikrosekundy. dlatego tak długo to trwa
Keltari
5
Każdy z uruchomionych procesów, w tym usługi i sterowniki, jest uprzejmie proszony przez system operacyjny o zaprzestanie swoich działań i posprzątanie po sobie. Nie są po prostu zabijani, ale zanim system operacyjny zacznie porządkować bufory i pamięci podręczne
JamesB
13

Rejestr systemu jest (może?) Zapisywany na dysku. Z powrotem na XP zauważyłem, że jeśli dokonasz jakichkolwiek zmian w rejestrze, a następnie odłączysz zasilanie, zmiany nie zostaną zapisane. Nie jestem do końca tego pewien, tylko wskazuję.

Oto fragment dokumentu wydanego przez Microsoft.

• Zamknięcie sesji systemu. Faza ta obejmuje podfazy powiadomień przed zamknięciem i powiadomień o zamknięciu:

• Powiadomienie przed zamknięciem. System Windows seryjnie wyłącza wszystkie zarejestrowane usługi, aby otrzymywać powiadomienia przed zamknięciem. Usługi zamówione - usługi, które skonfigurowały kolejność wyłączania usług zależnych - są zamykane przed usługami niezamówionymi.

• Powiadomienie o wyłączeniu. Wszystkie usługi, które zarejestrowały się w celu otrzymywania powiadomień o zamykaniu, są zamykane równolegle. Jeśli wszystkie usługi nie zostały zakończone po 20 sekundach (w systemie Windows Vista) lub 12 sekundach (w systemach operacyjnych klienta Windows 7), system kontynuuje zamykanie. Procesy i usługi, które nie zamykają się w odpowiednim czasie, pozostają uruchomione podczas zamykania systemu.

• Zamknięcie jądra. Pozostała część systemu, na przykład wszystkie urządzenia i sterowniki, są zamykane podczas fazy zamykania jądra.


Zasadniczo to, na co czekasz, to każda usługa do wyczyszczenia i wyjścia. Każda usługa ma 12 sekund na wyjście, zanim zostanie zabita.

Połowa czasu wyłączenia jest przeznaczona na zamknięcie usług systemowych. Jeśli naprawdę interesuje Cię, jaki czas jest przeznaczony na to, co podczas zamykania systemu, Windows zawiera narzędzie do śledzenia czasu zamykania.

xbootmgr -trace shutdown -numRuns 3 -resultPath% systemdrive% \ traces -postBootDelay 180 -traceFlags base

I żeby zrozumieć wygenerowany plik (koniecznie uruchom go w% systemdrive% \ traces)

xperf -i trace.etl -o summary.xml -a zamknięcie

Źródła: Aktualizacja: Linki z serwerów Microsoft już nie działają

download.microsoft.com/download/3/C/A/3CA9058B-7EE5-4191-99E2-DB5917877522/OnOffTransPerf.docx

https://s3-us-west-1.amazonaws.com/omarpersonal/OnOffTransPerf.docx

download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/OnOffTrans.docx

https://s3-us-west-1.amazonaws.com/omarpersonal/onofftrans.docx

zzarzzur
źródło
Każda szansa, że ​​masz rzeczywisty plik analizy wydajności przejścia systemu Windows on / off, do którego link znajduje się tutaj: download.microsoft.com/download/3/C/A/… na tej stronie: msdn.microsoft.com/en-US/ biblioteka / windows / hardware / dn550976 . Nigdzie nie mogę tego znaleźć. Chciałbym uzyskać definicję każdego pola w XML identyfikatora zdarzenia 100.
Jordan W.
1
@JordanW. To dziwne, jak linki w Microsoft przestały działać. Oto link do dokumentu analizy wydajności. s3-us-west-1.amazonaws.com/omarpersonal/OnOffTransPerf.docx
zzarzzur