Condividi tramite


Miglioramento delle prestazioni di avvio del sistema

Una delle funzionalità che gli utenti del computer richiedono più frequentemente è tempi di avvio rapido da stati di alimentazione, standby e ibernazione. Per ridurre il tempo di avvio, Windows usa una serie di tecniche, che includono quanto segue:

  • Rimuovere, dall'elenco delle operazioni di avvio, dei processi e dei servizi che possono essere posticipati fino al completamento dell'avvio.

  • Prefetch memory pages in base al modello di richieste per caricare queste pagine nelle startup di sistema precedenti.

  • Sovrapporre l'inizializzazione del dispositivo con le operazioni di I/O del disco necessarie per caricare il sistema operativo.

  • Abilitare le inizializzazioni dei dispositivi da eseguire in parallelo anziché in sequenza.

Un driver in modalità kernel deve seguire questa procedura per migliorare le prestazioni del processo di avvio:

  • Quando un computer viene avviato da uno stato di alimentazione (avvio a freddo), il driver del dispositivo deve eseguire solo le operazioni necessarie per inizializzare il dispositivo e rinviare tutte le altre operazioni del dispositivo fino al completamento dell'avvio. Limitare il codice di inizializzazione del driver alle operazioni necessarie per rendere il dispositivo pronto per l'uso.

  • Quando un computer viene avviato dallo stato di standby o di ibernazione (avvio caldo), un driver che deve essere inizializzato prima del completamento dell'avvio deve usare thread di lavoro con priorità elevata e elementi di lavoro di coda critici per disattivare tutte le piccole attività necessarie. In caso contrario, il thread del driver potrebbe essere bloccato per il tempo del processore da thread non correlati e l'avvio verrà ritardato.

  • Durante un'avvio caldo da standby o ibernazione, la routine DPC di un driver o il codice di inizializzazione eseguito in DISPATCH_LEVEL, deve evitare tempi di esecuzione lunghi che impediscono l'esecuzione di altri driver. Per altre informazioni, vedere Condivisione delle risorse del processore durante l'avvio da uno stato di Low-Power.

  • Durante un'avvio caldo da standby o ibernazione, un driver di dispositivo funzionale deve completare immediatamente un'IRP set-power S0 e quindi richiedere un IRP impostato D0. Se il driver completa tempestivamente l'IRP set-power S0, il sistema operativo può completare l'avvio mentre il driver reinizializza il dispositivo come attività in background. Per altre informazioni, vedere Avvio rapido da un Low-Power Stato.

  • Un driver di dispositivo non deve contenere un blocco di rotazione per più di un breve periodo di tempo, soprattutto durante un'avvio ad accesso sporadico da uno stato di spegnimento. In caso contrario, altre inizializzazioni del dispositivo non possono verificarsi in parallelo.

Questa sezione include gli argomenti seguenti:

Condivisione delle risorse del processore durante l'avvio da un Low-Power stato

Avvio rapido da uno stato di Low-Power