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 fazer apenas uma operação de cada 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 ou ações, 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 Quando um programa entra em execução, suas instruções são executadas em sequência pelo processador. Durante a execução alguns eventos inesperados podem ocorrer, ocasionando um desvio forçado no fluxo de execução. Estes eventos são conhecidos como interrupções ou exceções. Sinalização de operação de E/S de dispositivo externo (interrupção) Problemas decorrentes da execução de instruções do programa (exceção) Sistemas Operacionais Conceito de Interrupção e Exceção Ao final de cada instrução, a UC verifica a ocorrência de interrupção ou exceção Processador interrompe o programa em execução para tratar o evento 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ção Hardware Pedidos de dispositivos periféricos, relógio do sistema, circuitos de monitoramento de energia. Software Uma interrupção causada por um programa (chamada ao sistema - SC). Exceção Ocorrem devido a utilizações indevidas de instruções ou de dados (divisão por zero, acesso a uma posição de memória protegida, overflow, etc.). 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ção com a CPU. Caso não existisse, a CPU teria que ficar verificando a necessidade dos periférico em intervalos de tempo, gerando com isso alguns problemas. • Desperdício de tempo de CPU; • Eventos com diferentes taxas de sinalização (teclado x disco). Sistemas Operacionais Interrupção de Hardware A ocorrência de uma interrupção força uma mudança no fluxo de controle 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 cada tipo de interrupção. Observar que as interrupções são eventos gerados assincronamente à atividade regular do sistema. O sistema não sabe em que ponto no fluxo de instruções a interrupção ocorrerá. O tempo de servir a interrupção é descontado do quantum do processo em execução (time slice). 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. • Dispositivos de E/S (sinalização de conclusão) • Falha de hardware (paridade de memória, erro de disco, etc.) Interrupções síncronas,muitas vezes também chamadas de traps ocorrem em consequência da instrução sendo executada. • Relógio (temporizador) síncrona Sistemas Operacionais Interrupções Assíncronas e Síncronas Um tipo importante de interrupção de hardware á a interrupção do relógio. O relógio é um elemento de hardware que interrompe a CPU em intervalos de tempos fixos. • CPU tick, clock tick ou tick. • Alguns computadores requerem que o S.O. rearme o relógio após cada interrupção; em outras, o relógio rearma-se sozinho. 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 O relógio permite ao sistema operacional atribuir quotas de tempos de execução (fatias de tempo – time slice) para cada um dos processos em um sistema multiprograma. 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. Uma “Rotina de Interrupção do Relógio” (Clock Interrupt Handler) é executada em resposta a uma interrupção do relógio. 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 Mecanismo de Interrupção • O sinal de interrupção gerado para o processador; • Ao terminar a instrução corrente o processador identifica a interrupção gerada; • O status do programa corrente é salvo (conteúdo do PC, PSW); • O controle do processador é transferido para a rotina de serviço; • Rotina de tratamento salva demais conteúdos de registradores na pilha de controle e é executada; • Após o término, todos os registradores são restaurados e programa interrompido retorna a sua execução; • O ponto de interrupção pode ocorrer em qualquer parte do programa. Sistemas Operacionais Conceito de Interrupção e Exceção Sistemas Operacionais Tratamento de Interrupção Para cada tipo de interrupção existe uma rotina de tratamento associada para a qual o fluxo de execução é desviado. Dois métodos para tratamento de interrupções: • Vetor de interrupção. Contém o endereço inicial de todas as rotinas de tratamento para cada tipo de evento. • A partir de um registrador de status. Uma única rotina que verifica o tipo de evento e faz o tratamento adequado. Sistemas Operacionais Interrupção Interrupções que são decorrentes de eventos assíncronos, sem 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 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. Para este fim utilizaremos o termo “estado de exceção”. Exceções são eventos síncronos, resultado direto da execução do programa corrente. Divisão por zero Overflow em operação aritmética 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 Inibição de Interrupções O núcleo (kernel) do S.O. alguma vezes previne a ocorrência de interrupções durante atividades críticas, que poderiam resultar em dados corrompidos se estas fossem permitidas. Assim, certas instruções (ditas privilegiadas) permitem colocar o processador em um certo nível de execução em que ele mascara (inibe) certos valores de interrupção. Elas são chamadas interrupçõesmascaráveis 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 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 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 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 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, os endereços de IRQ, esta é a 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 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