Stati di alimentazione del sistema
Per l'utente, un sistema di computer sembra essere acceso o spento. Non esistono altri stati rilevabili. Tuttavia, il sistema supporta più stati di alimentazione che corrispondono agli stati di alimentazione definiti nella specifica ACPI (Advanced Configuration and Power Interface). Esistono anche variazioni di questi stati, ad esempio sospensione ibrida e avvio rapido. Questo articolo presenta questi stati e descrive come sono correlati tra loro.
Nota
Gli integratori di sistema e gli sviluppatori che creano driver o applicazioni con un servizio di sistema devono prestare particolare attenzione ai problemi di qualità dei driver, ad esempio perdite di memoria. Anche se la qualità dei driver è sempre stata importante, il tempo di aggiornamento tra i riavvii del kernel può essere significativamente più lungo rispetto alle versioni precedenti del sistema operativo perché il kernel, i driver e i servizi vengono mantenuti e ripristinati, non riavviati, in sospensioni e arresti avviati dall'utente.
Nella tabella seguente sono elencati gli stati di alimentazione ACPI dal consumo di energia più alto a quello più basso.
Stato di alimentazione | Stato ACPI | Descrizione |
---|---|---|
Lavoro | S0 | Il sistema è completamente utilizzabile. I componenti hardware che non sono in uso possono risparmiare energia immettendo uno stato di alimentazione inferiore. |
Sospensione (standby moderno) | S0 inattiva a basso consumo | Alcuni sistemi SoC supportano uno stato di inattività a basso consumo noto come Standby moderno. In questo stato, il sistema può passare molto rapidamente da uno stato a basso consumo a uno stato ad alta potenza in risposta agli eventi hardware e di rete. I sistemi che supportano modern standby non usano S1-S3. |
Sospendi | S1 S2 S3 |
Il sistema sembra essere disattivato. La quantità di energia consumata negli stati S1-S3 è minore di S0 e più di S4. S3 consuma meno energia rispetto a S2 e S2 consuma meno energia rispetto a S1. I sistemi supportano in genere uno di questi tre stati, non tutti e tre. Negli stati S1-S3, la memoria volatile viene mantenuta aggiornata per mantenere lo stato del sistema. Alcuni componenti rimangono accesi in modo che il computer possa riattivarsi dall'input dalla tastiera, dalla LAN o da un dispositivo USB. La sospensione ibrida, usata nei desktop, è la posizione in cui un sistema usa un file di ibernazione con S1-S3. Il file di ibernazione salva lo stato del sistema nel caso in cui il sistema perde l'alimentazione durante la sospensione. Nota: i sistemi SoC che supportano modern standby non usano S1-S3. |
Ibernazione | S4 | Il sistema sembra essere disattivato. Il consumo di energia è ridotto al livello più basso. Il sistema salva il contenuto della memoria volatile in un file di ibernazione per mantenere lo stato del sistema. Alcuni componenti rimangono accesi in modo che il computer possa riattivarsi dall'input dalla tastiera, dalla LAN o da un dispositivo USB. Il contesto di lavoro può essere ripristinato se è archiviato su supporti non volatile. L'avvio rapido è la posizione in cui l'utente viene disconnesso prima della creazione del file di ibernazione. Ciò consente un file di ibernazione più piccolo, più appropriato per i sistemi con meno funzionalità di archiviazione. |
Sfumati | S5 | Il sistema sembra essere disattivato. Questo stato è costituito da un ciclo di arresto completo e di avvio. |
Meccanica disattivata | G3 | Il sistema è completamente spento e non consuma energia. Il sistema torna allo stato di lavoro solo dopo un riavvio completo. |
L'enumerazione SYSTEM_POWER_STATE definisce i valori utilizzati per specificare gli stati di alimentazione del sistema.
Stato di lavoro: S0
Durante lo stato di lavoro, il sistema è attivo e in esecuzione. In termini semplici, il dispositivo è ATTIVATO. Indipendentemente dal fatto che lo schermo sia acceso o disattivato, il dispositivo è in stato di esecuzione completo. Per risparmiare energia, soprattutto nei dispositivi a batteria, è consigliabile spegnere i componenti hardware quando non vengono usati.
Importante
Spegnere i componenti hardware ogni volta che non vengono usati, indipendentemente dallo stato. Un basso consumo energetico è una considerazione importante per i consumer di dispositivi mobili.
Stato sospensione: standby moderno
Nella modalità di inattività S0 a basso consumo dello stato di lavoro, detto anche Standby moderno, il sistema rimane parzialmente in esecuzione. Durante lo standby moderno, il sistema può rimanere aggiornato ogni volta che è disponibile una rete appropriata e riattivare anche quando è necessaria un'azione in tempo reale, ad esempio la manutenzione del sistema operativo. La riattivazione standby moderna è notevolmente più veloce rispetto a S1-S3. Per altre info, vedi Standby moderno.
Nota
Lo standby moderno è disponibile solo in alcuni sistemi SoC. Quando è supportato, il sistema non supporta S1-S3.
Attenzione
Non abilitare la riattivazione LAN (WoL) S3 nei sistemi con supporto di Standaby moderni. Svegliare un computer con un pacchetto magic è supportato in modo nativo da Modern Standby. L'abilitazione di WoL S3 legacy non è necessaria e può causare tempeste di pacchetti DHCP e/o DNS nella rete.
Stato sospensione: S1-S3
Il sistema entra in sospensione in base a diversi criteri, tra cui l'attività utente o l'applicazione e le preferenze impostate dall'utente nella pagina Power &sleep dell'app Impostazioni. Per impostazione predefinita, il sistema usa lo stato di sospensione più basso supportato da tutti i dispositivi di riattivazione abilitati. Per altre informazioni su come il sistema determina quando immettere la sospensione, vedere Criteri di sospensione del sistema.
Prima che il sistema entri in sospensione, determina lo stato di sospensione appropriato, notifica le applicazioni e i driver della transizione in sospeso e quindi passa il sistema allo stato di sospensione. Nel caso di una transizione critica, ad esempio quando viene raggiunta la soglia critica della batteria, il sistema non invia notifiche alle applicazioni e ai driver. Le applicazioni devono essere preparate per questo e intraprendere l'azione appropriata quando il sistema torna allo stato di lavoro.
Negli stati S1-S3 , la memoria volatile viene mantenuta aggiornata per mantenere lo stato del sistema. Alcuni componenti rimangono accesi in modo che il computer possa riattivarsi dall'input dalla tastiera, dalla LAN o da un dispositivo USB.
Il sistema si riattiva anche dalla sospensione in risposta all'attività dell'utente o a un evento di riattivazione definito da un'applicazione. Per altre informazioni, vedere Eventi di riattivazione del sistema. Il tempo necessario per la riattivazione del sistema dipende dallo stato di sospensione da cui si sta svegliando. Il sistema richiede più tempo per la riattivazione da uno stato con alimentazione inferiore (S3) rispetto a uno stato con tecnologia superiore (S1) a causa del lavoro aggiuntivo che potrebbe essere necessario eseguire l'hardware. Ad esempio, stabilizzando l'alimentatore o inizializzando nuovamente il processore.
Attenzione
Quando si chiama SetThreadExecutionState, il ES_AWAYMODE_REQUIRED
valore deve essere usato solo quando è assolutamente necessario dalle applicazioni multimediali che richiedono al sistema di eseguire attività in background, ad esempio registrare contenuti televisivi o trasmettere contenuti multimediali ad altri dispositivi mentre il sistema sembra dormire. Le applicazioni che non richiedono l'elaborazione in background critica o che vengono eseguite su computer portatili non devono abilitare la modalità di distanza perché impedisce al sistema di conservare l'alimentazione immettendo un vero stato di sospensione.
Sospensione ibrida: S1-S3 + file di ibernazione
Il sonno ibrido è uno stato speciale che è una combinazione degli stati di sospensione e ibernazione. È quando un sistema usa un file di ibernazione con S1-S3. La sospensione ibrida è disponibile solo in alcuni sistemi. Se abilitata, il sistema scrive un file di ibernazione ma entra in uno stato di sospensione più elevato. Se l'alimentazione viene persa mentre il sistema è in sospensione, il sistema si riattiva dall'ibernazione, che richiede più tempo ma ripristina lo stato del sistema dell'utente.
Stato di ibernazione: S4
Windows usa l'ibernazione per offrire un'esperienza di avvio veloce. Quando disponibile, viene usato anche nei dispositivi mobili per estendere la durata utilizzabile della batteria di un sistema fornendo un meccanismo per salvare tutto lo stato dell'utente prima di arrestare il sistema. In una transizione di ibernazione, tutto il contenuto della memoria viene scritto in un file nell'unità di sistema primaria, ovvero il file di ibernazione. In questo modo viene mantenuto lo stato del sistema operativo, delle applicazioni e dei dispositivi. Nel caso in cui il footprint di memoria combinato consuma tutta la memoria fisica, il file di ibernazione deve essere sufficientemente grande per garantire che ci sia spazio per salvare tutto il contenuto della memoria fisica. Poiché i dati vengono scritti nell'archiviazione non volatile, la DRAM non deve mantenere l'aggiornamento automatico e può essere spenta, il che significa che il consumo di energia di ibernazione è molto basso, quasi uguale all'alimentazione spenta.
Durante un arresto completo e l'avvio (S5), l'intera sessione utente viene arrestata e riavviata all'avvio successivo. Al contrario, durante un'ibernazione (S4), la sessione utente viene chiusa e lo stato utente viene salvato.
Avvio rapido: file di ibernazione ridotto
L'avvio rapido è un tipo di arresto che usa un file di ibernazione per velocizzare l'avvio successivo. Durante questo tipo di arresto, l'utente viene disconnesso prima della creazione del file di ibernazione. L'avvio rapido consente un file di ibernazione più piccolo, più appropriato per i sistemi con meno funzionalità di archiviazione. Per altre info, vedi Tipi di file di ibernazione.
Quando si usa l'avvio rapido, il sistema appare all'utente come se si verificasse un arresto completo (S5), anche se il sistema ha effettivamente superato S4. Questo include il modo in cui il sistema risponde agli allarmi di riattivazione del dispositivo.
L'avvio rapido si disconnette dalle sessioni utente, ma il contenuto del kernel (sessione 0) viene scritto sul disco rigido. Ciò consente un avvio più veloce.
Per avviare a livello di codice un arresto rapido dello stile di avvio, chiamare la funzione InitiateShutdown con il SHUTDOWN_HYBRID
flag o la funzione ExitWindowsEx con il EWX_HYBRID_SHUTDOWN
flag .
Nota
In Windows, l'avvio rapido è la transizione predefinita quando viene richiesto un arresto del sistema. Un arresto completo (S5) si verifica quando viene richiesto un riavvio del sistema o quando un'applicazione chiama un'API di arresto.
Immissione dell'ibernazione
Quando viene effettuata una richiesta di ibernazione, vengono eseguiti i passaggi seguenti quando il sistema entra in ibernazione:
- Le app e i servizi ricevono una notifica
- I driver ricevono una notifica
- Lo stato utente e di sistema viene salvato su disco in un formato compresso
- Il firmware riceve una notifica
Nota
Tutti i core del sistema vengono usati per comprimere i dati in memoria e scriverli su disco.
Per avviare una transizione di ibernazione a livello di codice, chiamare la funzione SetSuspendState .
Ripresa dall'ibernazione
Quando un sistema riprende dall'ibernazione.
Quando un sistema è acceso, i passaggi seguenti si verificano quando il sistema riprende dall'ibernazione:
- Post di sistema
- La memoria di sistema viene decompressa e ripristinata dal file di ibernazione
- Inizializzazione del dispositivo
- I driver vengono ripristinati allo stato in cui si trovavano prima dell'ibernazione
- I servizi vengono ripristinati allo stato in cui si trovavano prima dell'ibernazione
- Il sistema diventa disponibile per l'accesso
Un curriculum dall'ibernazione inizia con un POST di sistema simile a un arresto S5. Il gestore di avvio del sistema operativo determina che è necessario un curriculum dall'ibernazione rilevando un file di ibernazione valido. Quindi indirizza il sistema a riprendere, ripristinando il contenuto della memoria e tutti i registri architetturali. In caso di ripresa dall'ibernazione, il contenuto della memoria di sistema viene letto nuovamente dal disco, decompresso e ripristinato, che inserisce il sistema nello stato esatto in cui si trovava quando è stato ibernato. Dopo il ripristino della memoria, i dispositivi vengono riattivati, il computer torna a uno stato in esecuzione, pronto per l'accesso.
Nota
Durante una ripresa dall'ibernazione, i driver e i servizi vengono informati ma non vengono riavviati. Vengono ripristinati solo allo stato in cui si trovavano prima dell'ibernazione.
Tipi di file di ibernazione
I file di ibernazione vengono usati per la sospensione ibrida, l'avvio rapido e l'ibernazione standard. Esistono due tipi, differenziati per dimensione, un file di ibernazione di dimensioni complete e ridotte. Solo l'avvio rapido può usare un file di ibernazione ridotto.
Tipo di file di ibernazione | Dimensioni predefinite | Supporta... |
---|---|---|
Completa | 40% della memoria fisica | ibernazione, sospensione ibrida, avvio rapido |
Ridotta | 20% della memoria fisica | avvio rapido |
Per verificare o modificare il tipo di file di ibernazione usato, eseguire l'utilità powercfg.exe . Negli esempi seguenti viene illustrato come. Per altre informazioni, eseguire powercfg /? hibernate
.
Esempio | Descrizione |
---|---|
powercfg /a |
Verificare il tipo di file di ibernazione. Quando viene usato un file di ibernazione completo, lo stato dei risultati è un'opzione disponibile. Quando viene usato un file di ibernazione ridotto, i risultati dicono che l'ibernazione non è supportata. Se il sistema non dispone di alcun file di ibernazione, i risultati dicono che l'ibernazione non è stata abilitata. |
powercfg /h /type full |
Modificare il tipo di file di ibernazione in full. Questa opzione non è consigliata nei sistemi con meno di 32 GB di spazio di archiviazione. |
powercfg /h /type reduced |
Modificare il tipo di file di ibernazione in riduzione. Se il comando restituisce "il parametro non è corretto", vedere l'esempio seguente. |
powercfg /h /size 0 powercfg /h /type reduced |
Riprovare a modificare il tipo di file di ibernazione in modo da ridurre. Se il file di ibernazione è impostato su una dimensione personalizzata maggiore del 40%, è prima necessario impostare le dimensioni del file su zero. Ripetere quindi la configurazione ridotta. |
Stato di disattivazione temporanea: S5
Lo stato di disattivazione temporanea è quando il sistema si arresta completamente senza un file di ibernazione. Soft off è noto anche come arresto completo. Durante un arresto e un avvio completi, l'intera sessione utente viene arrestata e riavviata all'avvio successivo. Di conseguenza, un avvio/avvio da questo stato richiede molto più tempo rispetto a S1-S4. Un arresto completo (S5) si verifica quando viene richiesto un riavvio del sistema o quando un'applicazione chiama un'API di arresto.
Stato di off meccanica: G3
In questo stato, il sistema è completamente spento e non consuma energia. Il sistema torna allo stato di lavoro solo dopo un riavvio completo.
Comportamento di riattivazione LAN
La funzionalità di riattivazione LAN (WOL) attiva il computer da uno stato di basso consumo quando una scheda di rete rileva un evento WOL (in genere un pacchetto Ethernet appositamente costruito).
WOL è supportato dalla sospensione S3 o dall'ibernazione S4 . Non è supportato dagli stati di avvio rapido o S5 soft off shutdown. Le schede di interfaccia di rete non sono armate per la riattivazione in questi stati perché gli utenti non si aspettano che i loro sistemi si sveglino da soli.
Nota
WOL non è ufficialmente supportato dallo stato S5 soft off. Tuttavia, il BIOS in alcuni sistemi potrebbe supportare l'arming delle schede di interfaccia di rete per la riattivazione, anche se Windows non è coinvolto nel processo.