Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT0011 – Sistemas Operacionais Aula 02 – Interrupções Professor Ricardo Bernardo Sistemas Operacionais INTERRUPÇÕES Sistemas Operacionais Conceito de Interrupções Quando um programa entra em execução, suas instruções são executadas em sequência pelo processador. Pode ocorrer situações que force o processador lançar algum evento que cause o desvio da sequência original de execução do programa. Estes eventos são conhecidos como interrupções ou exceções. O desvio para uma rotina pré-definida para tratar um evento gerado por uma interrupção é chamada de rotina de tratamento de interrupção . A utilização de interrupções permitiu o desenvolvimento de concorrência nos computadores. Sistemas Operacionais Tipos de Interrupções As interrupções são geradas por dispositivos de hardware e podem ocorrer de forma síncrona ou assíncrona. • Relógio (temporizador) síncrona • Dispositivos de E/S (sinalização de conclusão) assíncrona • Falha de hardware (paridade de memória, erro de disco, etc.) assíncrona O termo interrupção é muitas vezes utilizado para qualquer atividade que suspenda a execução de uma tarefa, mesmo que seja solicitada pelo próprio programa. Utilizaremos para este fim, o termo “estado de exceção”. Sistemas Operacionais Tipos de Interrupções Estado de exceção são provocados pela própria aplicação • Estouro aritmético • Divisão por zero • Instrução ilegal • Acesso não permitido • Chamada ao sistema Obs.: Mascaramento de interrupções é a capacidade de inibir a ação de uma interrupção. As interrupções de segurança não podem ser mascaradas. Sistemas Operacionais Tipos de Interrupções Interrupções podem acontecer de forma sequencial ou em cascata. Sequencial uma interrupção só poderá ser atendida se nenhuma outra estiver em atendimento. • A rotina de serviço desabilita aas interrupções • Uma nova interrupção só será tratada após o retorno da anterior. • Finalizada a rotina de serviço de interrupção, o processador verifica por interrupções adicionais. Sistemas Operacionais Tipos de Interrupções Interrupções podem acontecer de forma sequencial ou em cascata. Cascata uma interrupção poderá interromper a ação de uma rotina de tratamento de outra interrupção. • Interrupções têm prioridade • Interrupções com alta prioridade interrompem rotinas de serviço de interrupções de menor prioridade. Exemplos de prioridade: impressora disco comunicação. Sistemas Operacionais O fluxo da interrupção Dispositivo de controle ou outro sistema de hardware que permita ativar uma interrupção Processador termina a execução da instrução corrente Processador reconhece sinal de interrupção Processador coloca PSW e PC na pilha de controle Processador carrega novo valor do PC, baseado na interrupção Salva informações remanescentes sobre o estado do processo Processa a interrupção Restaura a informação do estado do processo Restaura o velho PSW e PC Sistemas Operacionais APLICAÇÃO 100 101 102 STACK 102 PC estado APPSW Passo a passo das interrupções INSTRUÇÃO EM EXECUÇÃO Sistemas Operacionais APLICAÇÃO 100 101 102 STACK 102 PC estado APPSW Passo a passo das interrupções OCORRE INTERRUPÇÃO Sistemas Operacionais APLICAÇÃO 100 101 102 102 STACK 102 PC estado APPSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A SALVA PC Sistemas Operacionais APLICAÇÃO 100 101 102 estado AP 102 STACK 102 PC estado APPSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A SALVA PSW Sistemas Operacionais APLICAÇÃO 100 101 102 estado AP 102 STACK 500 PC estado Rotina APSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A ALTERA PSW e PC Sistemas Operacionais APLICAÇÃO 100 101 102 registradores estado AP 102 STACK 501 PC estado Rotina APSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A ROTINA A SALVA REGISTRADORES Sistemas Operacionais APLICAÇÃO 100 101 102 estado AP 102 STACK 510 PC estado Rotina APSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A ROTINA A TERMINA 510 Sistemas Operacionais APLICAÇÃO 100 101 102 102 STACK 510 PC Estado APPSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A RECUPERA PSW 510 Sistemas Operacionais APLICAÇÃO 100 101 102 102 STACK 102 PC Estado APPSW Passo a passo das interrupções 500 ROTINA DA INTERRUPÇÃO A RECUPERA PC 510 Sistemas Operacionais APLICAÇÃO 100 101 102 STACK 103 PC estado APPSW Passo a passo das interrupções INSTRUÇÃO EM EXECUÇÃO Sistemas Operacionais Resumindo • Sistema Operacional é um conjunto de programas cujas principais funções são: – Interface com usuário – Administração dos recursos – Segurança e estabilidade • Sistemas multitarefa utilizam as interrupções para promover a sensação de execução simultânea, mas sabemos que se trata de execução concorrente. Sistemas Operacionais Interrupção x Exceção • Uma interrupção é sempre gerada por algum evento externo ao programa e, nesse caso, independe da instrução que está sendo executada. • Um exemplo de interrupção é quando um dispositivo avisa ao processador que alguma operação de E/S está completa. • Nesse caso, o processador deve interromper o programa para tratar o término da operação. • Ao final da execução de cada instrução, a unidade de controle verifica a ocorrência de algum tipo de interrupção. • Nesse caso, o programa em execução é interrompido e o controle desviado para uma rotina responsável por tratar o evento ocorrido, denominada rotina de tratamento de interrupção. • Para que o programa possa posteriormente voltar a ser executado, é necessário que, no momento da interrupção, um conjunto de informações sobre a sua execução seja preservado. • Essas informações consistem no conteúdo de registradores, que deverão ser restaurados para a continuação do programa. Sistemas Operacionais Interrupção x Exceção Sistemas Operacionais Interrupção x Exceção • Para cada tipo de interrupção existe uma rotina de tratamento associada, para a qual o fluxo de execução deve ser desviado. A identificação do tipo de evento ocorrido é fundamental para determinar o endereço da rotina de tratamento. • No momento da ocorrência de uma interrupção, o processador deve saber para qual rotina de tratamento deve ser desviado o fluxo de execução. • O principal método utiliza uma estrutura de dados chamada vetor de interrupção, que contém o endereço inicial de todas as rotinas de tratamento existentes associadas a cada tipo de evento. • Uma exceção é semelhante a uma interrupção, sendo a principal diferença o motivo pelo qual o evento é gerado. • A exceção é resultado direto da execução de uma instrução do próprio programa, como: – Divisão de um número por zero; – Overflow em uma operação aritmética; – Instrução Inválida; – Instrução Ilegal, dentre outras... Sistemas Operacionais Interrupção x Exceção Exemplo de Interrupções de hardware
Compartilhar