Secondo Microsoft, capire come funziona Windows non è un compito facile. Se sei un normale utente di casa, implicano, non c'è motivo di preoccuparsi della tua piccola testa riguardo a questi aspetti tecnici. Torna a giocare e navigare sul web: lasciaci le cose intelligenti a noi.

Naturalmente, questo non è completamente vero. Certo, molte persone non guadagneranno nulla dallo studio delle strutture dati che circondano un processo di Windows, per esempio. Tuttavia, l'apprendimento di pochi concetti fondamentali può aiutarti a migliorare le prestazioni del tuo PC, a risolvere i problemi e a diagnosticare o prevenire arresti anomali del sistema. E non hai bisogno di una laurea in informatica per capire queste idee.

Numero di thread

Premi [CTRL] + [Shift] + [ESC] per avviare Task Manager, fai clic sulla scheda Processi e vedrai un lungo elenco di programmi in esecuzione sul tuo sistema. Fai clic su "Mostra i processi di tutti gli utenti" (su Vista) e ne aggiungerai ancora di più, per un totale di oltre 60 sul nostro PC di prova. È una configurazione molto impegnativa, ma la realtà del processore potrebbe essere anche peggiore.

Il fatto è che un processo di Windows non esegue "nulla". È solo una raccolta di dati relativi a un programma. Ogni processo contiene almeno un thread, tuttavia, ed è questo che esegue il codice del programma. Clicca 'Visualizza | Seleziona Colonne, trova e controlla la casella Thread, fai clic su "OK" e vedrai che praticamente tutti i tuoi processi hanno più di un thread. E molti hanno molto di più: numeri di 10, 20 o 30 non sono affatto rari. Il nostro sistema di test ha elencato più di 600 thread, senza aprire una singola applicazione.

Ciò non significa che tutti i 600 thread vogliono essere eseguiti simultaneamente, tuttavia, e Task Manager può rivelare anche questo. Clicca 'Visualizza | Seleziona Colonne, controlla "Tempo CPU" e fai clic su "OK": vedrai che la maggior parte dei processi ha un utilizzo della CPU molto piccolo o assente. Questi sono come i servizi di Windows, configurati e pronti per essere eseguiti, ma in realtà non consumano alcun tempo di CPU finché non ne hai bisogno per qualcosa.

Tuttavia, anche se alcuni thread sono dormienti, ci sarà spesso più esecuzione di quanto la tua CPU possa gestire contemporaneamente. Quindi, come decide il sistema su quale thread riceve maggiore attenzione?

Problemi di pianificazione

Windows assegna a ogni thread un 'quantum', che è un lasso di tempo in cui è consentito eseguire prima che un altro thread possa ottenere un cambiamento nella CPU. Le edizioni consumer di Windows usano un breve quantum, forse 20 millisecondi, il che significa che nessuna attività dovrebbe essere in grado di afferrare il processore per molto tempo.

Il sistema triplica anche il quantum dell'applicazione in primo piano, quindi i suoi thread ottengono il 300 percento in più di tempo CPU rispetto alla concorrenza. Questo è un buon modo per garantire che qualsiasi programma su cui stai lavorando sia reattivo e reattivo, ma c'è un prezzo da pagare.

Ogni volta che la CPU scambia i thread, deve anche eseguire un interruttore di contesto, in cui salva lo stato di un thread e quindi richiama lo stato del successivo. E questo richiede una quantità di tempo breve, ma ancora misurabile. Un breve quantum crea un'interfaccia reattiva, quindi, ma aumenta anche il sovraccarico per la CPU. Passa molto tempo a gestire il sistema piuttosto che a gestire i thread.

Come risultato di questo problema, i prodotti Microsoft Server utilizzano un quantum lungo, sei volte più lungo del consumer Windows e quindi rendono molto più efficiente l'uso della CPU. Sembra utile? È facile provarlo per te. Apri l'applet di sistema nel Pannello di controllo, fai clic su "Avanzate" (quindi "Impostazioni delle prestazioni | Avanzate in Vista") e imposta "Regola per le migliori prestazioni di" su "Servizi in background". Windows ora imposterà il tuo PC per utilizzare un quantum lungo senza boost di primo piano. Ciò significa riduzione dei costi generali della CPU e migliori prestazioni generali, soprattutto su sistemi che eseguono molti programmi.