Buscar

Interrupções em Sistemas Operacionais

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes