Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos...

24
Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II Prof. Dr. Edson Moreno Capítulo 10.5 do Monteiro Capítulo 7 do Stallings

Transcript of Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos...

Page 1: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

Modos de Transferência

Introdução

Modos Bloqueado, Polling e Interjeição

Organização e Arquitetura de Computadores II

Prof. Dr. Edson Moreno

Capítulo 10.5 do Monteiro

Capítulo 7 do Stallings

Page 2: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

2 / 27

Introdução

• Questões motivadoras para analisar modos detransferência– Quando efetuar a transferência de modo a atender requisitos de

projeto?

– Quais mecanismos para controlar as transferências com eficiência?

• Requisitos– Rápida resposta a eventos críticos

• Eventos de segurança requerem resposta imediata

• Eventos de tempo real têm tempo máximo preciso para seremrespondidos

– Não sobrecarregar CPU com atividades de E/S

• Algumas atividades como acesso à disco e refresh de memória exigemaltas taxas de E/S

– Dois modos básicos

Modos de Transferência

Não programadoProgramado

Page 3: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

3 / 27

Impacto de IO no desempenho

• Exemplo:– Suponha que tenhamos um aplicativo que execute em 100

segundos, dos quais 90 segundos são gastos no processador e o

restantes é gasto em atividade de entrada e saída. Se o

desempenho do processador melhora 50% a cada ano, mas não

há qualquer melhora no sistema de entrada e saída, quanto mais

rápido este aplicativo vai ficar mais rápido no final de 5 anos?

Sabendo-se que,

Tmelhorado = Toriginal / (1 + melhora)

e que o ganho de desempenho é dado pelo

Ganho de desempenho = Toriginal / Tmelhorado

Page 4: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

4 / 27

Impacto de IO no desempenho

• Exemplo:

– Suponha que tenhamos um aplicativo que execute em 100

segundos, dos quais 90 segundos são gastos no processador e o

restantes é gasto em atividade de entrada e saída. Se o

desempenho do processador melhora 50% a cada ano, mas não

há qualquer melhora no sistema de entrada e saída, quanto mais

rápido este aplicativo vai ficar mais rápido no final de 5 anos?

Após n anosTempo de

processadorTempo de IO Tempo decorrido

% tempo

decorrido de IO

0 90 10 100 10

1 90/1,5 = 60 10 70 14

2 60/1,5 = 40 10 50 20

3 40/1,5 = 27 10 37 27

4 27/1,5 = 18 10 28 36

5 18/1,5 = 12 10 22 45

Ganhos

reduzidos !!!!

Page 5: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

5 / 27

Entrada/Saída Programada

• E/S controlada pela CPU

• Procedimento

1. Em instante determinável, processador pergunta para periféricos se

este está apto a receber ou transmitir informação

2. Em caso afirmativo realiza transferência

• Tipos

Interjeição

Bloqueado Polling

Programado

Page 6: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

6 / 27

MODO BLOQUEADO

Page 7: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

7 / 27

Modo Bloqueado

• Uma vez iniciada a comunicação, a CPU fica bloqueada

– Ocupada e escrava do periférico até terminar a operação

• Problema

– periféricos são muito mais lentos que CPU

• Consequência

– CPU é subutilizada

• Exemplo de utilização

– Máquinas reativas → Esperam ações externas captadas por sensores para

então responder ao meio

– Computador dedicado a tarefas dependentes de um único periférico

• Pesagem → Única atividade da máquina é pesar

Page 8: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

8 / 27

POLLING

Page 9: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

9 / 27

Polling

• CPU possui controle total da comunicação

– Determina os instantes de tempo que ocorrerão

transferências

• CPU periodicamente testa se algum dispositivo

quer se comunicar

– A pergunta pode ser diretamente em um porta de entrada

da CPU

• Otimização pode ser feita com controladores

– CPU periodicamente testa registradores de estado dos

controladores de E/S

• Estes registradores sinalizam possíveis transferências a serem

realizadas

Page 10: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

10 / 27

Polling - Controlador e Periférico

1. Periférico transfere dados para controlador• Coloca dados no barramento

• Ativa sinal send

2. Controlador armazena dados• Dados lidos são colocados em buffers

• Responde ack para periférico

• Sinaliza “dado presente” para CPU ativando flag

3. Controlador habilita novo envio de dados• Remove ack se

• Flag desativada (CPU já buscou)

• Tem espaço no buffer local para mais dados

4. Periférico habilita novo envio de dados• Remove send ao detectar remoção de ack

Page 11: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

11 / 27

Polling – CPU e Controlador

1. CPU verifica se tem dados para serem transferidos

• Executa polling periodicamente no registrador de estado

2. CPU lê o dado do controlador

• Quando flag ativa

• Lê dado do barramento

• Armazena dado em memória

3. CPU avisa controlador de leitura com sucesso

• CPU envia sinal de controle para desativar a flag

4. Periférico pode enviar novo dado

Page 12: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

12 / 27

Polling – Overrun Error

• No protocolo descrito no slide anterior só são enviados dados

quando ack desativado. Assim, o que acontece quando um

periférico necessita enviar uma rajada de dados?

– Tem que esperar

• Otimização no protocolo

– Permitir que periférico envie novos dados assim que receber ack

• Condição

– Se CPU demorar muito (mais tempo do que a nova escrita de dados) para

ler os dados recebidos

• Motivos possíveis

– CPU mais lenta que o periférico

– CPU ocupada com outras tarefas mais prioritárias

• Problema

– Dados novos podem sobrescrever dados que ainda não foram lidos

• Como amenizar problema?

– Área de armazenamento temporário (buffer) no controlador

Page 13: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

13 / 27

Polling – Exercício de Overrun Error

1. Assuma que uma serial assíncrona que escreve em um buffer a

uma taxa de 2 Mbps. Assuma também que há um programa fazendo

a leitura completa por polling deste buffer a cada 100ms. Qual deve

ser o tamanho do buffer para que não haja perda de dados

(sobreescrita pela serial de dado que não foi consumido pelo

programa)?

2. Faça um esquema temporal que ilustre os tempos de escrita no

buffer e leitura de dados

3. Faça um esquema de blocos ilustrando os principais sinais na

comunicação

Page 14: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

14 / 27

Polling – Cálculo de Tempo Desperdiçado

• Nos slides seguintes, analise o tempo

desperdiçando para atender por polling os

requisitos especificados em cada caso

Page 15: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

15 / 27

Polling – Cálculo de Tempo Desperdiçado 1

• Dados

– CPU lê flag a cada 0,1 µs (10 MHz)

– E/S transfere dados a 1 KB/seg

– Largura do barramento: 1 Byte

• Pergunta

– Quantas leituras desnecessárias são feitas ao flag para uma transferência?

• Resposta

– E/S transfere 1 B/mseg

• 9999 leituras sem sucesso para 1 com sucesso

Page 16: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

16 / 27

Polling – Cálculo de Tempo Desperdiçado 2

• Dados

– CPU operando a 50 MHz

– Rotina de polling consume 100 ciclos

• Pede-se

– Tempo de CPU consumido para verificar um mouse, sabendo-se que este

deve ser verificado 30 vezes/seg.

• Resposta

– Quantidade de ciclos gastos pela CPU em todas transferências

• 30 × 100 = 3.000 ciclos/seg

– % de ocupação da CPU

• (3.000 × 100%) / 50×106 = 0,006%

• Conclusão

– mouse não incomoda

Page 17: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

17 / 27

Polling – Cálculo de Tempo Desperdiçado 3

• Condições

– CPU operando a 50 MHz

– Rotina de polling consume 100 ciclos

• Pede-se

– Tempo para transferir dados de um periférico

– Taxa de 50 KB/seg, transferindo-se 2 bytes por vez

• Resposta

– Quantidade de transferências por segundo

• (50×103 Bytes / 2 Bytes) = 25.000 transferências/seg

– Quantidade de ciclos gastos pela CPU em todas transferências

• 25.000 × 100 = 2.500.000 ciclos/seg

– % de ocupação da CPU

• (2.500.000 × 100%) / 50×106 = 5%

• Conclusão

– Transferência de dados é tolerável

Page 18: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

18 / 27

Polling – Cálculo de Tempo Desperdiçado 4

• Condições

– CPU operando a 50 MHz

– Rotina de polling consume 100 ciclos

• Pede-se

– Tempo para transferir dados de um disco rígido

– Taxa de 2 MB/seg, transferindo 4 bytes por vez

• Resposta

– Quantidade de transferências por segundo

• (2×106 Bytes / 4 Bytes) = 500.000 transferências/seg

– Quantidade de ciclos gastos pela CPU em todas transferências

• 500.000 × 100 = 50×106 ciclos/seg

– % de ocupação da CPU

• (50×106 × 100%) / 50×106 = 100%

• Conclusão

– A CPU deveria ficar dedicada apenas para tratar a transferência de dados

com o disco rígido através de polling

Page 19: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

19 / 27

Polling em Vários Dispositivos 1

Page 20: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

20 / 27

Polling em Vários Dispositivos 2

• Verificação de flags

– Prioridade implícita

– Normalmente atende apenas um periférico por polling

– Prioridade de atendimento ao menor número de periférico pode acontecer

starvation

Page 21: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

21 / 27

Polling em Vários Dispositivos 3

• Solução para evitar starvation

– Leitura de mais de um periférico

– Esta solução pode causar muito atraso para a CPU

• Projetista decide em função de

– Número de periféricos

– Frequência estimada dos pedidos de atendimento

– Frequência de teste dentro do programa principal

• Existe alguma outra solução melhor?

Page 22: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

22 / 27

Polling em Vários Dispositivos 3

• Existe alguma outra solução melhor?

1. Atendimento com fila. Quem foi atendido vai para o final da fila e tem

a última prioridade no próximo polling

– Analise vantagens e desvantagens

2. ...

3. Interjeição

Page 23: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

23 / 27

INTERJEIÇÃO

Page 24: Introdução Modos Bloqueado, Polling e Interjeição...Modos de Transferência Introdução Modos Bloqueado, Polling e Interjeição Organização e Arquitetura de Computadores II

24 / 27

Interjeição

• O que é?

– Otimização do polling

• Funcionalidade

– Ou lógico de todos os flags

• Consequência

– Menor tempo com o teste

• Procedimento

– CPU só testa um bit →

independentemente do número de

periféricos