A opção em questão não é por baixo do clock; Windows não manipula a CPU ou placa-mãe ou multiplicadores ou FSB ou qualquer coisa. A opção sobre a qual você está perguntando é simplesmente um fator que é usado durante o agendamento de tarefas .
Quando os processos são executados, o agendador de tarefas do Windows aloca um número específico de ciclos de CPU para diferentes processos e alterna de volta e para permitir que preemptivo multitarefa . Normalmente, ele atribui quantos ciclos de CPU estiverem disponíveis para executar tudo o mais rápido possível. Se houver ciclos livres, ele permite que o programa seja executado; caso contrário, ele coloca o processo em uma fila e verifica se existe outro programa que tenha esgotado a sua quota para o "quantum" atual ( ou "time-slice") e deve ser movido para o final da linha.
Não é de surpreender que a CPU com 100% de capacidade funcione por um tempo, e isso pode ser indesejável. O que o Windows permite que você faça é atribuir um limite para o quanto a capacidade da CPU é utilizável.Nesse caso, quando os processos solicitam o tempo de CPU, o agendador funciona exatamente como antes, exceto pelo fato de usar o limite especificado em seus cálculos em vez de 100%. Como resultado, haverá ciclos de CPU que permanecem sem uso, o que permite que a CPU permaneça em uma temperatura mais baixa.
Como exemplo simplificado e inventado, imagine que esse era o pseudo-código para o algoritmo de agendamento (com comentários marcados por ;
):
; function to calculate total CPU cycles used by all processes
calc-total-used:
used-total = 0 ; initialize counter to 0
for each program: ; loop through each running process
used-total = used-total + process-used ; add CPU cycles of each process to counter
return used-total as percentage ; convert to percent and return value
; main scheduling control, check if free cycles available
if (calc-total-used < max-percent) ; calc used %, see if less than max allowed
then run program ; if so, run the program
else: ; if not, try to free some up
add program to queue ; if not, add it to the queue
… ; check if any process are out of cycles
Observe como o cálculo do agendamento usa uma variável max-percent
de codificação 100%
. Dessa forma, se você defini-lo abaixo de 100%, ele só permitirá que um programa seja executado se o uso atual for menor que 100% , o que significa que qualquer CPU circula entre max-percent
acima que não será usado.
Portanto, esta opção não pode prejudicar a CPU; não é diferente de simplesmente não rodar nenhum programa e apenas rodar o sistema (você provavelmente já teve seu sistema inativo perto de 0% da carga da CPU muitos vezes).