Dia 16 - 1.6 Desempenho - Parte 1

Matheus Gomes - Oct 15 - - Dev Community
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?

fórmula de desempenho em tempo de execução

6030=2\frac{60}{30} = 2

A é 2 vezes mais rápido que B. Ou seja, B é 2 vezes mais lento que A.

Então:

A2=B\frac{A}{2} = B

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:

Fórmula de 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

10=a2x1010 = \frac{a}{2x10⁹}
a=10x2x10=20x10ciclosa = 10x2x10⁹ = 20x10⁹ ciclos

Computador B:
b == taxa de clock

6=1,2x20x10b6 = \frac{1,2x20x10⁹}{b}
b=1,2x20x106b = \frac{1,2x20x10⁹}{6}
b=0,2x20x101b = \frac{0,2x20x10⁹}{1}
b=4x101=4GHzb = \frac{4x10⁹}{1} = 4GHz
. . . . . . . . . . . . . . . . . . . . . .