Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCT0011 – Sistemas Operacionais Aula 02 – Interrupções INTERRUPÇÕES Sistemas Operacionais Conceito de Interrupção e Exceção Apesar de podermos executar muitos programas ao mesmo tempo, os processadores são capazes de executar apenas uma operação por vez. A multitarefa surge de uma troca de execução, muito rápida entre os aplicativos abertos, dando a impressão de que eles estão sendo executados ao mesmo tempo. Permitir a execução simultânea de dois ou mais programas, exige compartilhamento de recursos únicos como teclado, área de display, processador e etc. Todos esses recursos são importantes e essenciais as aplicações concorrentes e o principal é o microprocessador. Sistemas Operacionais Conceito de Interrupção e Exceção Uma interrupção é um evento externo ao processador que causa a parada da sequência de execução do programa corrente, desviando a execução para um bloco de código chamado rotina de interrupção. Quando um programa entra em execução, suas instruções são executadas em sequência pelo processador e alguns eventos inesperados podem provocar desvios forçados neste fluxo de execução. Estes eventos são conhecidos como interrupções ou exceções. Sistemas Operacionais Conceito de Interrupção e Exceção Ao final da execução de cada instrução, a unidade de controle, verifica se existe alguma solicitação de interrupção ou exceção. Caso exista, o processador vai interromper o programa em execução para tratar o evento. Esse desvio faz o processador executar uma rotina pré-definida, 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ção Interrupção por hardware Interrupções geradas por dispositivos periféricos, relógio do sistema, circuitos de monitoramento de energia. Exceção Eventos causados pelo próprio processador durante a execução de instruções, sob certas circunstâncias. • Divisão por zero; • Instrução inexistente; • Acesso a região de memória protegida; • Falta de página. Sistemas Operacionais Interrupção de Hardware O mecanismo de interrupção permite que o hardware "chame a atenção" da CPU quando há algo a ser feito. Na ocorrência da interrupção, é requerido que a CPU pare momentaneamente o que está fazendo para atendê-la. A interrupção permite aos dispositivos periféricos sincronizarem as suas operações com a CPU. Caso não existisse, a CPU teria que verificar constantemente a necessidade dos periféricos, gerando com isso desperdício de tempo, agravado por diferentes taxas de sinalização dos dispositivos (teclado, disco, etc). Sistemas Operacionais Interrupção de Hardware A ocorrência de uma interrupção, força uma mudança no fluxo de execução para uma rotina de tratamento da interrupção correspondente (Interrupt Handler ou Interrupt Service Routine). Esta rotina possui um conjunto de instruções pré-definidas, adequadas a necessidade de cada tipo de interrupção. As interrupções são geradas assincronamente às atividades regulares do sistema, ou seja, o sistema não sabe em que ponto no fluxo de instruções a interrupção ocorrerá. Sistemas Operacionais Interrupções Assíncronas e Síncronas Interrupções geradas por algum dispositivo externo à CPU, são chamadas de interrupções de hardware ou assíncronas (ocorrem independentemente das instruções que a CPU está executando). Um tipo importante de interrupção de hardware é a interrupção do relógio. Esse mecanismo permite ao sistema operacional atribuir quotas de tempos de execução (fatias de tempo – time slice) para cada um dos processos em um sistema multitarefa. A interrupção de relógio é a mais prioritária, só perdendo para a interrupção de falha de energia. Sistemas Operacionais Interrupções Assíncronas e Síncronas A cada interrupção do relógio, o tratador pode verificar se a fatia de tempo do processo em execução já se esgotou e, se for esse o caso, suspendê-lo e acionar o escalonador para que esse escolha outro processo para colocar em execução. O tempo utilizado para atender uma interrupção é descontado do tempo total de execução definido para o processo em andamento. Uma “Rotina de Interrupção do Relógio” (Clock Interrupt Handler) é executada em resposta a uma interrupção do relógio. Sistemas Operacionais Interrupções Assíncronas e Síncronas Interrupções síncronas, também chamadas de traps, são geradas por software e ocorrem em decorrência de instruções executadas. Interrupções síncronas podem ser geradas explicitamente por instruções do programa como forma do mesmo acionar o sistema operacional, para requisitar um serviço E/S. Um programa não pode "chamar" uma rotina do sistema operacional, pois o S.O. é um processo independente com espaço de endereçamento próprio. Utilizando o mecanismo de interrupção de software, um processo pode acionar um tratador que pode "encaminhar" uma chamada ao sistema operacional. Sistemas Operacionais Exceção 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. Exceções são eventos síncronos, resultado direto da execução do programa corrente. São previsíveis, só podem ocorrer uma de cada vez e o tratamento é equivalente ao da interrupção; A rotina de tratamento para uma determinada exceção pode ser escrita pelo próprio programador; Sistemas Operacionais Interrupção e Exceção Interrupt Request e Programmable Interrupt Controller IRQ Canais para requisição de interrupções – um canal por periférico. PIC Um controlador de interrupções é responsável pelo encaminhamento das interrupções dos periféricos para o processador. Estabelece um protocolo com o processador, trocando dados necessários para servir a interrupção. Sistemas Operacionais Interrupção Interrupções decorrentes de eventos assíncronos não tem relação com o programa corrente. Podem ocorrer múltiplas vezes num mesmo intervalo de tempo (simultaneamente); Rotina de tratamento pode desabilitar tratamento das demais interrupções; o Interrupções mascaráveis; Demais interrupções podem ser enfileiradas segundo respectivas prioridades; Sistemas Operacionais Inibição de Interrupções Algumas aplicações de tempo real possuem módulos críticos que não devem ser interrompidos durante sua execução. Por este motivo algumas interrupções podem ter seu tratamento adiado, enquanto outras devem ser tratadas de imediato (por exemplo, entrada de dados e alarmes). Por esta razão a maioria dos microprocessadores trabalham com interrupções que podem ser mascaráveis ou não- mascaráveis. Através de instruções específicas o programa pode habilitar ou desabilitar uma interrupção mascarável, enquanto uma não-mascarável deverá ser sempre atendida e reservada apenas para eventos de alta importância. Sistemas Operacionais Tratamento de Interrupções As interrupções dos microprocessadores costumam ser de dois tipos: • Vetoradas • Não-vetoradas. Interrupção Vetorada O processador reserva uma área de memória especifica que contém o endereço inicial de cada uma das rotinas de tratamento das interrupções. Os endereços desta área de memória são chamados vetores de interrupção e exigem a identificação do dispositivo periférico solicitante da interrupção. Essa identificação é utilizada para provocar o desvio para o endereço da rotina de tratamento da interrupção (vetor de interrupções). Sistemas Operacionais Tratamento de Interrupções Interrupção não vetorada Uma única rotina identifica o causador de cada interrupção e faz o tratamento da mesma. Isso aumenta o tempo de resposta. Em geral uma causa da interrupção é gerada eanotada em um registrador causa e através dele o sistema operacional (ou Kernel) pode imediatamente identificar o dispositivo que o interrompeu. Nos sistemas existe a possibilidade de ocorrerem pedidos de interrupção simultâneos, devendo existir algum critério para a escolha de qual será atendida primeiro. Esse critério é normalmente definido por prioridade, podendo ser implementado de diversas formas. Sistemas Operacionais Níveis Típicos de Interrupções 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 (Sytem Call) 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 Mecanismo de Interrupção 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 as 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 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 de Processamento 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 Hardware Software (Rotina de serviço) 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 IRQ Num PC atual, as IRQ tem esta configuração de endereços mais comum: IRQ 0 - Sinal de clock da placa mãe (fixo) IRQ 1 - Teclado (fixo) IRQ 2 - Cascateador de IRQs (fixo) IRQ 3 - Livre (serial 2 desativada) IRQ 4 - Modem IRQ 5 - Livre IRQ 6 - Drive de disquetes IRQ 7 - Livre (porta paralela desativada) IRQ 8 - Relógio do CMOS (fixo) IRQ 9 - Placa de som, placa de rede (1), placa de rede (2) IRQ 10 - Placa de vídeo IRQ 11 - Controlador USB (Mouse, impressora e scanner) IRQ 12 - Porta PS/2 IRQ 13 - Coprocessador aritmético IRQ 14 - IDE Primária IRQ 15 - Livre (IDE Secundária desativada) Sistemas Operacionais Estruturas de Controle Memória Dispositivos Arquivos Processos Tabelas de Memória Tabelas de E / S Tabelas de Arquivos Tabela de Processos Processo 1 Processo 2 Processo 3 Processo n Processo 1 Processo n imagem do processo imagem do processo Sistemas Operacionais Exceção - System Calls Método empregado para um processo usuário solicitar serviços ao sistema operacional • Normalmente baseada em interrupções de software (traps); • Aciona a rotina de tratamento de exceção • Identifica serviço requisitado; • Verifica validade dos parâmetros; • Executa o serviço; • Retorna ao processo do usuário . System Call Aplicação Biblioteca Hardware Núcleo do Sistema Operacional Núcleo do Sistema Operacional Sistemas Operacionais Exceção - System Calls Chamada a uma rotina do sistema Sistemas Operacionais Exceção - System Calls Funções das System Calls • Gerência de processos e threads • Gerência de memória • Gerência do sistema de arquivos • Gerência de dispositivos Tipos de instruções • Privilegiadas • Não-privilegiadas Modos de acesso • Modo Usuário (instruções associadas ao uso não privilegiado) • Modo Kernel (instruções associadas ao uso privilegiado) 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 Reflexão e Dúvidas
Compartilhar