Quando si arresta, si riavvia o si esce dal PC, Windows svolge una serie di operazioni in background. Questo processo è fondamentale per assicurare che tutte le informazioni e i dati delle applicazioni vengano salvati prima che l’hardware venga spento.
Verifica degli utenti registrati durante l’arresto
Nel momento in cui si ordina al PC di spegnersi o riavviarsi, Windows verifica innanzitutto se sono presenti sessioni attive di altri utenti. Questa circostanza si verifica quando la sessione di Windows viene bloccata e si accede con un account differente senza aver effettuato la disconnessione.
Se Windows rileva che un altro utente non si è disconnesso correttamente, comparirà un avviso: “Qualcun altro sta ancora utilizzando questo PC”. Se si forza il riavvio, l’altro utente potrebbe perdere dati non salvati nelle applicazioni aperte. È consigliabile permettere all’utente di accedere, salvare il suo lavoro e disconnettersi prima di procedere con lo spegnimento.
Windows offre comunque l’opzione di cliccare su “Spegni comunque” se si è certi che l’altro utente non abbia dati non salvati. In questo caso, l’account utente verrà disconnesso forzatamente, chiudendo tutte le applicazioni aperte e causando la perdita di dati non salvati.
Nel caso in cui siate l’unico utente connesso, questo messaggio non verrà visualizzato e Windows procederà direttamente alla fase successiva.
Comunicazione con i programmi per salvare e chiudere
Prima di disconnettere effettivamente l’utente, Windows chiede a tutti i programmi in esecuzione di salvare il lavoro e di chiudersi. Ciò avviene anche durante lo spegnimento o il riavvio, in quanto la disconnessione è una fase indispensabile di questo processo.
In particolare, Windows invia il messaggio WM_QUERYENDSESSION ad ogni finestra aperta. I programmi non vengono chiusi forzatamente, ma viene loro richiesto di salvare e chiudere; pertanto, l’operazione potrebbe richiedere alcuni istanti. Ecco perché talvolta lo spegnimento o la disconnessione del PC può sembrare lento.
Tuttavia, i programmi possono “bloccare” questo processo se necessitano dell’input dell’utente. Per esempio, un programma potrebbe avere file aperti che necessitano di essere salvati. In caso di necessità di input, verrà mostrato l’avviso “Questa app impedisce l’arresto”. Un’applicazione può anche visualizzare un messaggio personalizzato grazie alla funzione ShutdownBlockReasonCreate.
In tal caso, cliccate su “Annulla”, controllate l’applicazione, salvate i dati e chiudetela autonomamente. Se volete ignorare il salvataggio dei dati, potete cliccare su “Spegni comunque” o “Esci comunque”.
È importante notare che Windows chiude le applicazioni non appena sono pronte. Quindi, se tra dieci applicazioni aperte, solo una blocca la chiusura, vedrete solo quella se cliccate “Annulla”. Le altre nove saranno già state chiuse.
In Windows 10, il sistema memorizza anche le finestre aperte e prova a riaprirle al successivo accesso.
Disconnessione dell’utente
Dopo aver richiesto a tutte le applicazioni di salvare e chiudersi, Windows disconnette l’utente. La “sessione” di Windows relativa all’account utente termina e nessun programma continuerà a funzionare con le credenziali di tale account.
Diversi processi garantiscono una disconnessione pulita da Windows. Ad esempio, il contenuto degli hive del registro di sistema dell’account utente, normalmente in memoria, viene salvato su disco alla disconnessione e ricaricato alla successiva sessione.
Nel caso di una disconnessione, Windows riporta l’utente alla schermata di accesso, dove sarà possibile effettuare il login con un altro account. In caso di spegnimento o riavvio, Windows prosegue con il processo di arresto.
Spegnimento di Windows
Una volta completata la disconnessione di tutti gli utenti, Windows deve procedere con lo spegnimento. Il sistema comunica a tutti i servizi e processi di arrestarsi correttamente, salvando i dati necessari su disco. In particolare, invia il messaggio SERVICE_ACCEPT_PRESHUTDOWN a tutti i servizi in esecuzione, seguito dal messaggio SERVICE_ACCEPT_SHUTDOWN. Il servizio ha 20 secondi per chiudersi prima che Windows lo forzi.
Windows 10 salva anche lo stato del kernel su disco, come un’ibernazione parziale. Al successivo avvio del PC, il sistema può ricaricare il kernel salvato e avviarsi più rapidamente, evitando la fase di inizializzazione hardware più lenta. Questa funzionalità si chiama “Avvio rapido”.
Durante le fasi finali del processo di arresto, Windows si occupa anche di applicare gli aggiornamenti disponibili. Queste operazioni vengono eseguite durante l’arresto, l’avvio e in background mentre il sistema è in esecuzione.
Una volta completate tutte le operazioni, Windows smonta in modo sicuro il disco rigido o l’unità a stato solido, attendendo un segnale di “cancellazione totale” che indica che tutti i dati sono stati salvati sul disco fisico. A questo punto, tutto il software è chiuso correttamente e i dati sono stati salvati.
Spegnimento fisico del PC
Infine, Windows invia un segnale di spegnimento ACPI al PC, che lo spegne fisicamente. Il processo di spegnimento è completato.
Chi ha utilizzato Windows 95 ricorderà che, prima dell’introduzione del segnale ACPI, compariva il messaggio “Ora è possibile spegnere il computer” e occorreva premere il pulsante di alimentazione. Lo standard ACPI (Advanced Configuration and Power Interface), introdotto nel 1996, permette a Windows di spegnere il PC.
Questo processo è diverso dalla sospensione o dall’ibernazione. Nella sospensione, il PC rimane acceso in modalità a basso consumo. Nell’ibernazione, invece, lo stato del sistema viene salvato su disco e ripristinato al riavvio.