Exercícios MT1
Nenhum exercício corresponde a esta pesquisa.
Desempenho
Atualizações sucessivas do componente certoEscolha múltipla
Teste 1 (MPCP), 2018/19
Uma aplicação demora 100 ms a executar: 72 ms de processamento no CPU e 28 ms de acesso a disco. O avanço da tecnologia permite duplicar o desempenho de um componente por ano. Se em cada ano se atualizar apenas o componente que, nesse ano, conduz a um melhor tempo total, qual é o tempo de execução ao fim de 4 atualizações?
Solução
Ao fim de 4 atualizações, a aplicação demora 10,75 ms.
Acompanha-se o tempo total ano a ano, atualizando um componente de cada vez: ano 0: 72 + 28 = 100 ms; ano 1: 36 + 28 = 64 ms; ano 2: 36 + 7 = 43 ms; ano 3: 9 + 7 = 16 ms; ano 4: 9 + 1,75 = 10,75 ms.
- 23 ms. Não corresponde à sequência de atualizações do enunciado.
- 8 ms. Subestima o tempo que resta após 4 anos.
- 10,75 ms. É o tempo da tabela de atualizações ano a ano.
- 11,5 ms. Próximo, mas não é o valor da tabela oficial.
Componente que limita as operações de E/SAutoavaliação
Teste 1 (MPCP), 2020/21
Um computador tem um CPU a 2,4 GHz que gasta 1,5 milhões de ciclos por cada operação de E/S e um barramento de memória com capacidade para 256 MB/s. As leituras do disco fazem-se em blocos de 128 kB. Indique a taxa máxima de operações de E/S permitida pelo CPU e pelo barramento e qual dos dois limita o desempenho do sistema.
Solução
CPU: 1600 operações/s. Barramento: 2000 operações/s. O CPU limita o desempenho.
O CPU leva ms por operação, ou seja 1600 operações/s. O barramento transfere 256 MB/s, ou seja blocos/s. Como 1600 < 2000, o CPU é o gargalo do sistema.
Confere a tua resposta:
- O CPU permite 1600 operações/s (0,625 ms por operação).
- O barramento permite cerca de 2000 operações/s (256 MB/s ÷ 128 kB).
- A resposta indica que o CPU é o componente limitante.
Caches
Vantagem de write-back face a write-throughEscolha múltipla
Teste 1 (MPCP), 2020/21
Em comparação com write-through, o uso de write-back permite:
Solução
Write-back reduz o número de acessos à memória principal.
Com write-back, as escritas ficam na cache (marcando o bloco como modificado) e só são transferidas para a memória principal quando o bloco vai ser substituído. Assim, várias escritas consecutivas no mesmo bloco resultam numa única escrita na memória principal.
- implementar um sistema de memória mais rápido. A política de escrita não torna a memória mais rápida.
- simplificar as operações de leitura. As leituras são tratadas da mesma forma.
- reduzir o número total de bits de memória. O número de bits não depende da política de escrita.
- reduzir o número de acessos à memória principal. As escritas acumulam-se na cache e só descem à memória na substituição.
O que blocos de cache maiores aproveitamEscolha múltipla
Teste 1 (MPCP), 2020/21
O uso de blocos de cache maiores permite aproveitar melhor:
Solução
Blocos maiores aproveitam melhor a proximidade espacial.
Um bloco maior traz para a cache, além do byte acedido, os bytes que lhe são adjacentes em memória. Como os programas tendem a aceder a endereços próximos uns dos outros, esses bytes têm grande probabilidade de vir a ser necessários, e já estão na cache. Isso é a localidade espacial.
- a frequência de relógio. O tamanho do bloco não altera o relógio do CPU.
- a penalidade de falta. Blocos maiores podem até aumentar a penalidade de falta.
- a proximidade espacial. Blocos maiores trazem para a cache os bytes vizinhos do acedido.
- a proximidade temporal. A localidade temporal depende da reutilização no tempo.
Cache de mapeamento direto: endereço, faltas e taxa de acertosAutoavaliação
Teste 1 (MPCP), 2020/21
Uma memória cache de mapeamento direto com política write-through tem 128 blocos de 32 bytes e etiquetas com 12 bits.
(a) Quantos bits são usados para representar endereços de memória?
(b) A cache é usada como cache de dados e começa vazia (todos os blocos com V=0). Antes da execução do fragmento abaixo, tem-se X0 = 0x00000A80 e X2 = 0x00000014. Quantos blocos são transferidos da memória principal devido às leituras de dados?
L1: ldr W1, [ X0 ]
add W1, W1, 1
str W1, [ X0 ]
add X0, X0, 4
add W2, W2, -1
cbnz W2, L1
(c) A mesma memória é usada como cache de instruções de um CPU com CPI ideal 1,5 e penalidade de falta de 100 ciclos. Qual deve ser a taxa de acertos para que o CPI efetivo não seja superior a 12,5?
Solução
(a) 24 bits. (b) 3 blocos. (c) Taxa de acertos .
(a) 128 blocos → 7 bits de índice; 32 bytes por bloco → 5 bits de offset; com 12 bits de etiqueta, o endereço tem bits. (b) O ciclo acede a 0xA80, 0xA84, …, 0xACC (20 endereços de 4 em 4 bytes), que pertencem aos blocos 0xA80, 0xAA0 e 0xAC0: 3 blocos distintos, logo 3 faltas e 3 blocos transferidos. (c) , logo e .
Confere a tua resposta:
- A resposta indica 24 bits de endereço (12 de etiqueta + 7 de índice + 5 de offset).
- A resposta indica que são transferidos 3 blocos nas leituras.
- A resposta indica uma taxa de acertos de pelo menos 0,89 (89%).
Armazenamento
Transferência de 200 MB em disco magnético e em SSDEscolha múltipla
Teste 1 (MPCP), 2018/19
Um computador possui um disco magnético de 10000 RPM, 832 setores de 4 kB por cilindro, tempo de busca mínimo 2 ms e médio de 8 ms, e taxa de transferência 100 MB/s, e um SSD com taxa de transferência 50 MB/s. Pretende-se transferir um ficheiro de 200 MB de cada disco, no cenário mais favorável (sem atrasos de controlador). Qual das afirmações é verdadeira?
Solução
O ficheiro de 200 MB transfere-se mais depressa no disco magnético (≈ 2,131 s contra 4 s no SSD).
No disco magnético, 200 MB são 50000 setores de 4 kB, que ocupam 61 cilindros. No melhor caso, o tempo é 8 ms de busca média + 3 ms de rotação média (a 10000 RPM) + 60 × 2 ms de buscas mínimas entre cilindros + 200 MB / 100 MB/s = 2 s, num total de ≈ 2131 ms. No SSD, o tempo é 200 MB / 50 MB/s = 4 s. Logo o disco magnético é mais rápido neste cenário.
- O tempo no SSD é 2 vezes menor.. O SSD é mais lento neste cenário: 4 s contra 2,131 s.
- O tempo no SSD é 4 vezes menor.. Vale o contrário: o disco magnético é mais rápido.
- O tempo é menor no disco magnético.. 2,131 s no magnético contra 4 s no SSD.
- O tempo é igual em ambos os discos.. As taxas de transferência são diferentes.
Configuração RAID para 32 TB de capacidade útilAutoavaliação
Teste 1 (MPCP), 2018/19
Pretende-se construir um sistema RAID com 32 TB de capacidade útil. Estão disponíveis discos Dsk1 (2 TB, 5,9 W, 140 €) e Dsk2 (1 TB, 3,2 W, 65 €), e as organizações Org1 (RAID-1), Org2 (RAID-5 com 4 grupos de proteção) e Org3 (RAID-6 com 2 grupos de proteção). Indique, para cada alínea, a melhor configuração:
(a) a que requer mais discos; (b) a que tem o custo de aquisição mais baixo; (c) a que tem menor consumo; (d) aquela em que, com um disco avariado, a situação normal pode ser restabelecida mais depressa.
Solução
(a) RAID-1 e Dsk2. (b) RAID-5 (4 grupos) e Dsk2. (c) RAID-6 (2 grupos) e Dsk2. (d) RAID-1 e Dsk2.
Número de discos: RAID-1 precisa de 32 (Dsk1) ou 64 (Dsk2); RAID-5 com 4 grupos precisa de 4×(8/d+1) = 20 (Dsk1) ou 36 (Dsk2); RAID-6 com 2 grupos precisa de 2×(16/d+2) = 20 (Dsk1) ou 36 (Dsk2). Custos: 4480/4160 € (RAID-1), 2800/2340 € (RAID-5), 2800/2340 € (RAID-6). Consumos: 188,8/204,8 W (RAID-1), 118/115,2 W (RAID-5 e RAID-6). Na avaria, RAID-1 copia o disco espelho, enquanto RAID-5/6 recalculam a paridade lendo todo o grupo; com discos menores (Dsk2) a recuperação é mais rápida.
Confere a tua resposta:
- (a) A resposta indica RAID-1 com Dsk2 (64 discos).
- (b) A resposta indica RAID-5 com 4 grupos e Dsk2 (2340 €).
- (c) A resposta indica RAID-6 com 2 grupos e Dsk2 (115,2 W).
- (d) A resposta indica RAID-1 com Dsk2.
Tempo de leitura de um ficheiro em disco magnéticoEscolha múltipla
Teste 1 (MPCP), 2020/21
Um disco magnético roda a 10000 RPM, tem latência média de busca de 40 ms, latência de controlador de 15 ms e transfere dados a 50 MB/s. Qual é o tempo de leitura de um ficheiro de 25 MB guardado em setores adjacentes?
Solução
O tempo de leitura é 558 ms.
A 10000 RPM, uma rotação completa demora 6 ms e a latência média de rotação é metade: 3 ms. O tempo total é 40 ms (busca) + 3 ms (rotação média) + 15 ms (controlador) + 25 MB / 50 MB/s = 500 ms (transferência), ou seja 558 ms.
- 58,5 ms. Esquece o tempo de transferência dos dados.
- 61,5 ms. Usa a rotação média de forma incorreta.
- 558 ms. 40 + 3 + 15 + 500 = 558 ms.
- 601 ms. Usa a rotação completa em vez da média.
Disponibilidade de um disco com MTTR = MTTF/4Valor
Teste 1 (MPCP), 2020/21
Um disco tem tempo médio entre avarias (MTTF) e tempo médio de reparação (MTTR) com . Qual é a disponibilidade do disco?
Solução
Disponibilidade .
A disponibilidade é a fração do tempo em que o sistema está operacional: . Substituindo , obtém-se (80%).
Entrada e saída
Quando convém usar interrupções em vez de varrimentoEscolha múltipla
Teste 1 (MPCP), 2018/19
Qual das seguintes afirmações sobre a gestão de periféricos é verdadeira?
Solução
Quanto mais esporádicos forem os acessos a um periférico, mais conveniente é geri-los por interrupção.
O varrimento (polling) interroga o periférico a uma taxa constante e gasta ciclos de CPU mesmo quando não há nada para fazer. Com interrupções, o CPU só é desviado quando o periférico sinaliza que precisa de atenção, o que compensa quando os acessos são esporádicos.
- Quanto mais frequentes forem os acessos, mais convém interrupção.. Acessos frequentes adaptam-se melhor a varrimento.
- Quanto mais esporádicos forem os acessos, mais convém interrupção.. O varrimento gasta ciclos à espera; a interrupção só quando é preciso.
- O varrimento é sempre mais rápido que a interrupção.. Depende do trabalho exigido pelo periférico.
- O varrimento é sempre mais lento que a interrupção.. Depende do trabalho exigido pelo periférico.
Papel do CPU numa transferência por DMAEscolha múltipla
Teste 1 (MPCP), 2018/19
No contexto de uma transferência por acesso direto à memória (DMA), qual das afirmações é verdadeira?
Solução
Numa transferência por DMA, o CPU apenas inicia a transferência.
O CPU configura o controlador de DMA e inicia a transferência. A partir daí, é o controlador de DMA que comanda a transferência de dados entre o periférico e a memória, enviando uma interrupção ao CPU apenas no fim do processo.
- O CPU tem de executar a transferência.. Quem comanda a transferência é o controlador de DMA.
- O CPU não tem qualquer intervenção na transferência.. O CPU tem de configurar e iniciar a transferência.
- O CPU tem apenas de iniciar a transferência.. Depois de iniciada, o controlador de DMA trata de tudo.
- O CPU tem de iniciar e terminar a transferência.. O fim é sinalizado por interrupção do controlador.
Sistema com CPU, barramento e disco: blocos, latências e sensoresAutoavaliação
Teste 1 (MPCP), 2018/19
Um sistema é composto por um CPU a 3 GHz que gasta 2 milhões de ciclos por operação de E/S, um barramento de memória com capacidade para 750 MB/s e um disco com tempo de acesso de 4 ms e taxa de transferência de 80 MB/s.
(a) Assumindo que a taxa média de transferência do disco é 25 MB/s, calcule o tamanho do bloco de dados transferido em cada acesso e o tempo médio de busca mais rotação do disco.
(b) Determine o desempenho de cada componente em blocos/s e indique qual deles limita o desempenho do sistema.
(c) A comunicação com sensores ambientais faz-se por varrimento (polling), gastando o CPU 1000 ciclos por acesso, com 3 acessos/s por sensor. Quantos sensores podem ser usados se a taxa de ocupação do CPU com os sensores for 0,0025%?
Solução
(a) 100 kB por acesso; busca + rotação = 2,75 ms. (b) O disco limita o sistema (250 blocos/s). (c) 25 sensores.
(a) Bloco = 25 MB/s × 4 ms = 100 kB; busca + rotação = 4 ms − 100 kB / 80 MB/s = 4 − 1,25 = 2,75 ms. (b) CPU: 2×10⁶ ciclos a 3×10⁹ ciclos/s = 2/3 ms por bloco → 1500 blocos/s; barramento: 750 MB/s ÷ 100 kB = 7500 blocos/s; disco: 1 / 4 ms = 250 blocos/s. O disco é o gargalo. (c) Cada sensor consome 1000 × 3 = 3000 ciclos/s; 0,0025% de 3×10⁹ = 75000 ciclos/s; N = 75000/3000 = 25 sensores.
Confere a tua resposta:
- O bloco transferido em cada acesso tem 100 kB e o tempo de busca mais rotação é 2,75 ms.
- O disco limita o sistema, com 250 blocos/s (CPU: 1500 blocos/s; barramento: 7500 blocos/s).
- Podem ser usados 25 sensores.
Polling ou interrupções: ciclos de CPU gastos por cada estratégiaAutoavaliação
Teste 1 (MPCP), 2020/21
Um disco rígido transfere 4 palavras (8 bytes cada) a uma taxa de 16 MB/s e está ocupado a transferir dados durante 80% do tempo. O CPU opera a 2,5 GHz. Cada operação de polling consome 800 ciclos e a sobrecarga de cada transferência por interrupção é 1000 ciclos. Apresentando os ciclos de CPU consumidos por segundo em cada opção, indique qual é a estratégia de gestão do periférico mais vantajosa.
Solução
Polling: 3,2×10⁸ ciclos/s. Interrupções: 4×10⁸ ciclos/s. O polling é mais vantajoso.
O disco transfere 16 MB/s × 0,8 = 12,8 MB/s, ou seja 12,8×10⁶ / 32 = 400000 blocos de 32 bytes por segundo. Com polling, é preciso sondar pelo menos uma vez por transferência: 400000 × 800 = 3,2×10⁸ ciclos/s. Com interrupções: 400000 × 1000 = 4×10⁸ ciclos/s. Como 3,2×10⁸ < 4×10⁸, o polling consome menos ciclos de CPU.
Confere a tua resposta:
- A resposta calcula 400000 transferências/s (16 MB/s × 80% ÷ 32 bytes).
- O polling consome 3,2×10⁸ ciclos/s e as interrupções 4×10⁸ ciclos/s.
- A resposta conclui que o polling é mais vantajoso neste caso.