Esse post fala sobre o capítulo 1.6 do livro "Organização e Projeto de Computadores: Interface Hardware/Software"
-
Definindo desempenho
Na computação há duas medidas de desempenho: largura de banda
e tempo de execução
.
Tempo de execução: Tempo total exigido para o computador completar uma tarefa.
Largura de banda: Número de tarefas completadas por unidade de tempo.
Tomar medidas para reduzir o tempo de resposta, quase sempre melhora a largura de banda. (por exemplo, trocar o processador por uma versão mais rápida) Essa medida é categorizada como escalonamento vertical.
Aumentar a quantidade de processadores normalmente só melhora a largura de banda, porém, se o processamento for tão grande quanto a largura da banda, o tempo de resposta também é melhorado, pois diminuiria tempo de espera de tarefas enfileiradas. Essa medida é categorizada como escalonamento horizontal.
Relacionando desempenho e tempo de execução
Comparando dois computadores:
Se computador A executa um programa em 30 segundos, e B em 60, o quanto A é mais rápido que B?
A é 2 vezes mais rápido que B. Ou seja, B é 2 vezes mais lento que A.
Então:
Medindo desempenho
O tempo é a principal medida de desempenho do computador. Mas há distinção entre o tempo decorrido e o tempo que o processador está trabalhando em nosso favor.
O tempo de CPU é o tempo real que a CPU gasta para uma tarefa específica, podendo ser separado em:
Tempo de CPU do usuário: tempo gasto de CPU em um programa.
Tempo de CPU do sistema: tempo gasto do sistema operacional realizando tarefas em favor do programa.
"Para melhorar o desempenho de um programa, deve-se ter uma definição clara de qual é a métrica de desempenho de interesse."
Desempenho da CPU e seus fatores
Ciclo de clock: Tempo para um periodo de clock do processador que trabalha em uma taxa constante.
Período de clock: Extensão de cada ciclo de clock.
Para calcular o tempo de execução da CPU:
Então, para melhorar o desempenho é necessário reduzir o número de ciclos de clocks, ou o tamanho do ciclo do clock.
Por exemplo, temos um computador A que executa um programa em 10 segundos. O clock dele é de 2 GHz. E queremos montar um computador B que execute esse programa em 6 segundos, o computador B exigirá 1,2 vezes a quantidade de ciclos de clock do computador A. Precisamos achar que taxa de clock o computador B deve ter.
Computador A:
2 GHz == 2x10⁹
a == ciclos de clock de CPU
Computador B:
b == taxa de clock