Computadores possuem mecanismos para:
- Gerar interrupções
- Essas interrupções podem ser geradas através E/S e Memória
- E/S e memória requisitam o uso da Cpu e isso gera a interrupção
Objetivo atual:
- Analisar as interrupções geradas pelas comunicações entre os módulos (E/S, Memória, Cpu)
Como podem ser geradas interrupções (Classes de Interrupções):
- Programa -> Gerado por uma instrução -> Ex.: overflow, divisão por 0, referênciar errado a memória
- Timer -> timer dentro do processo
- E/S -> Requisição de entradas de dados pelo teclado
- Falha de Hardware -> Falta de Energia, Erro de paridade de memória
Qual o objetivo da interrupção ?
- Melhorar o processamento
- Boa parte dos dispositivos são mais lentos que a Cpu
- Enquanto a Cpu aguarda (fica ociosa) a resposta da comunicação com outro módulo
- Milhares de outras instruções poderiam ter sido concluidas
- Por isso são geradas as interrupções
Como acontece o controle do Fluxo de Programa (analisando as interrupções) ?
- Suponha que o usuário está utilizando um programa que possui instruções que pensam entradas do teclado (E/S)
- Essa operação de E/S acontece em 3 etapas:
1. Instruções que informam/preparam a operação de E/S
2. A execução do Comando de E/S
3. A finalização da E/S
- Descrevendo a E/S:
- 1. Oi cpu. Vou precisar de você. Prepare-se.
- 2. Cpu informa que está pronta e executa a operação desejada
- 3. Cpu finaliza seu programa e fica a espera de outra instrução
Descrevendo as 3 etapas da E/S:
- Preparação da Cpu:
- Cópia de dados para um buffer
- Preparar parâmetros para um comando de dispositivo
- Comando de E/S sem interrupção
- Espera o dispositivo de E/S para realizar a função desejada
- Não há a etapa de preparação
- Ficar testando se a operação de E/S terminou repetidamente
- Tudo fica mais complexo de administrar
- Sequência de Intruções para Finalizar a E/S
- Marcação de flag -> Indica sucesso ou falha da operação
Na página 61 do livro é apresentado três cenários de interrupções:
- Sem interrupção
- Com interrupção e curta esperada pela E/S
- Com interrupções, mas com longa espera pela E/S