Aula 05 Figuras Interrupção
Fluxo de controle com e sem interrupções
Ciclos de Instrução
Transferência de Controle via Interrupções
Transferência de Controle com Múltiplas Interrupções
Exercício (ENADE 2005) Processadores atuais incluem mecanismos para o tratamento de situações especiais, conhecidas como interrupções. Em uma interrupção, o fluxo normal de instruções é interrompido para que a causa da interrupção seja tratada. Com relação a esse assunto, assinale a opção correta: a. Controladores de entrada e saída geram interrupções de forma síncrona à execução do processador, para que nenhuma instrução fique incompleta devido à ocorrência da interrupção b. Quando uma interrupção ocorre, o próprio processador salva todo o seu contexto atual, tais como registradores de dados e endereço e códigos de condição, para que esse mesmo contexto possa ser restaurado pela rotina de atendimento da interrupção c. O processador pode auto-interromper-se para tratar exceções de execução, tais como um erro em uma operação aritmética, uma tentativa de execução de instrução ilegal ou uma falha de página em memória virtual d. Rotinas de tratamento de interrupção devem ser executadas com o mecanismo de interrupção inibido, pois esse tipo de rotina não permite aninhamento e. O uso de interrupção para realizar entrada ou saída de dados somente é eficiente quando o periférico trata grandes quantidades de dados, como é o caso de discos magnéticos e discos ópticos. Para periféricos com pouco volume de dados, como teclados e mouses, o uso de interrupção é ineficiente
Exercício Comentários sobre a questão (ENADE 2005): a. Controladores de entrada e saída geram interrupções de forma síncrona à execução do processador, para que nenhuma instrução fique incompleta devido à ocorrência da interrupção Resposta errada, pois não há sincronismo. Os sistemas (controlador e processador) são essencialmente assíncronos b. Quando uma interrupção ocorre, o próprio processador salva todo o seu contexto atual, tais como registradores de dados e endereço e códigos de condição, para que esse mesmo contexto possa ser restaurado pela rotina de atendimento da interrupção Resposta dúbia. O processador pode salvar o contexto, ou o contexto pode ser salvo em pilha, dependendo do tipo de mecanismo implementado. A recuperação do contexto pode ser feita ao término do rotina de atendimento de interrupção, com recuperação da pilha ou após retornar desta, de forma automática pelo próprio processador c. O processador pode auto-interromper-se para tratar exceções de execução, tais como um erro em uma operação aritmética, uma tentativa de execução de instrução ilegal ou uma falha de página em memória virtual Resposta certa. Este mecanismo é implementado em quase a totalidade dos processadores comerciais d. Rotinas de tratamento de interrupção devem ser executadas com o mecanismo de interrupção inibido, pois esse tipo de rotina não permite aninhamento Resposta errada. O erro ocorre principalmente devido a palavra devem. Dependendo da arquitetura do processador não é permitido o aninhamento de interrupções. Este é o caso típico de tratamento de interrupções rápidas que somente tem um banco de registradores espelho. Porém, muitos processadores permitem aninhamento de ints e. O uso de interrupção para realizar entrada ou saída de dados somente é eficiente quando o periférico trata grandes quantidades de dados, como é o caso de discos magnéticos e discos ópticos. Para periféricos com pouco volume de dados, como teclados e mouses, o uso de interrupção é ineficiente Resposta errada. O que pode ser considerado errada é dizer que int é somente eficiente se tratar de transferência com grande quantidade de dados. Além do mais, depende do que vem a ser a definição de eficiência. No contexto desta questão, a eficiência tem a ver apenas com a velocidade de execução do programa. Aqui não são levadas em consideração questões como código necessário, consumo de energia, etc...