Você está na página 1de 20

Mecanismo de Interrupo

http://www.inf.ufes.br/~rgomes/so.htm

Paralelismo de Operao

Num sistema multiprogramado a CPU est sempre apta a compartilhar o seu tempo entre os vrios programas e os diferentes dispositivos perifricos que necessitam da sua ateno. O mecanismo de interrupo constitui a base para a implementao do esquema de paralelismo entre CPU S.O. e perifricos na multiprogramao.
2010/1 Prof. Jos Gonalves - LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Interrupo de Hardware
um mecanismo usado para sinalizar CPU a ocorrncia de eventos importantes relacionados aos dispositivos perifricos e outros elementos do sistema. Na ocorrncia da interrupo requerido que a CPU pare momentaneamente o que est fazendo para atend-la.
Ex: trmino de operao de E/S, chegada de um dado em uma interface de rede, tecla pressionada, click no mouse, etc.

A interrupo permite aos dispositivos perifricos sincronizarem a sua operao com a CPU. Caso no existisse, a CPU teria que ficar verificando se algum perifrico pretende reportar algum evento (polling).
Desperdcio de tempo de CPU Eventos com diferentes taxas3de sinalizao (teclado x disco)

http://www.inf.ufes.br/~rgomes/so.htm

Interrupo de Hardware

(cont.)

A ocorrncia de uma interrupo fora uma mudana no fluxo de controle, que transferido para uma rotina de tratamento da interrupo correspondente (Interrupt Handler ou Interrupt Service Routine). Esta rotina possui um conjunto de instrues prdefinidas, adequadas a cada tipo de interrupo. Observar que as interrupes so eventos gerados assincronamente atividade regular do sistema. O sistema no sabe em que ponto no fluxo de instrues a interrupo ocorrer. O tempo de servir a interrupo descontado do quantum do processo em execuo (time-slice).
4

http://www.inf.ufes.br/~rgomes/so.htm
Hardware
Dispositivo de controle ou outro sistema de hardware que permita ativar uma interrupo Salva informaes remanescentes sobre o estado do processo Processador termina a execuo da instruo corrente Processa a interrupo

Fluxo de Processamento de uma Interrupo

Software (Rotina de servio)

Processador reconhece sinal de interrupo Restaura a informao do estado do processo

Processador coloca PSW e PC na pilha de controle Restaura o velho PSW e PC

Processador carrega novo valor do PC, baseado na interrupo

http://www.inf.ufes.br/~rgomes/so.htm

IRQ e PIC
Interrupt requests (IRQ)
Canais para requisio de interrupes um canal por perifrico.

Programmable Interrupt Controller (PIC)


Um controlador de interrupes responsvel pelo encaminhamento das interrupes dos perifricos para o processador. Estabelece um protocolo com o processador, trocando dados necessrios para servir a interrupo.

http://www.inf.ufes.br/~rgomes/so.htm

PIC 8259A (Intel)

O controlador de interrupes ativa o sinal INT A CPU responde com INTA (INTerrupt Acknowledge); O controlador de interrupes responde atravs do bus de dados (D0 a D7) com o nmero da entrada que produziu a interrupo; A CPU utiliza esse nmero para indexar uma tabela de endereos de memria (designados interrupt vectors) onde esto os conjuntos de instrues que servem cada interrupo.
7

http://www.inf.ufes.br/~rgomes/so.htm

CPU (comunicao com o mundo exterior)

http://www.inf.ufes.br/~rgomes/so.htm

Interrupo Aes do Hardware


1.

Controlador do dispositivo ativa uma linha de interrupo no barramento de sistema para iniciar a seqncia de interrupo. Ativao no barramento de um sinal de reconhecimento da interrupo. Controlador do dispositivo vetor de interrupo. Processador remove o vetor de interrupo do barramento e salva seu valor temporariamente. Pilha armazena o contedo do PC e do registrador contendo a PSW. Processador localiza um novo PC com a ajuda do vetor de interrupo (ndice para a tabela situada na parte baixa da memria).

2.

3. 4.

5.

6.

http://www.inf.ufes.br/~rgomes/so.htm

Interrupo Aes do Software


7. 8.

Salvar o contedo dosstradores - restaurao posterior. Vetor de interrupo compartilhado por todos os dispositivos de um mesmo tipo (no se sabe qual terminal causou a interrupo). Obteno de outra informao sobre a interrupo. Correo de algum erro de E/S. Atualizao das variveis envolvidas. Gerao de cdigo especial para informar ao dispositivo ou controlador do dispositivo que uma interrupo est sendo processada. Restaurao dos valores originais dos registradores. Execuo da instruo RETURN FROM INTERRUPT. Processador continua a execuo do programa.

9. 10. 11. 12.

13. 14. 10

http://www.inf.ufes.br/~rgomes/so.htm

Tipos de Interrupo
Hardware
Pedidos de dispositivos perifricos, relgio do sistema, circuitos de monitorizao de energia.

Software
Uma interrupo causada por um programa (chamada ao sistema - SVC).

Exceo
Ocorrem devido a utilizaes indevidas de instrues ou de dados (e.g., diviso por zero, acesso a uma posio de memria protegida, overflow, etc.).
11

http://www.inf.ufes.br/~rgomes/so.htm

Interrupo Externa e Interna

http://www.inf.ufes.br/~rgomes/so.htm

Interrupo de Software (SVC)

http://www.inf.ufes.br/~rgomes/so.htm

Mltiplas Interrupes Modelo Sequencial


Programa do usurio Interrupo Rotina X

Interrupo Rotina Y

A Rotina de Servio desabilita as interrupes Uma nova interrupo s tratada aps o retorno A interrupo pode demorar a ser tratada, o que pode eventualmente ocasionar uma perda de dados Finalizada a Rotina de Servio de Interrupo, o processador checa por interrupes adicionais

http://www.inf.ufes.br/~rgomes/so.htm

Mltiplas Interrupes Modelo Cascata


Programa do usurio Interrupo Rotina X

Interrupo Rotina Y

Interrupes tm prioridade Interrupes com alta prioridade interrompem rotinas de servio de interrupes de menor prioridade

http://www.inf.ufes.br/~rgomes/so.htm

Nveis Tpicos de Interrupo


Erros de Mquina Relgio Disco Interface de Rede Terminal
Prioridade mais baixa

Prioridade mais alta

Interrupo de SW

S.O. 2010/1

Prof. Jos Gonalves - LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Inibio de Interrupes
O ncleo (kernel) do S.O. alguma vezes previne a ocorrncia de interrupes durante atividades crticas, que poderiam resultar em dados corrompidos se estas fossem permitidas. Assim, certas instrues (ditas privilegiadas) permitem colocar o processador em um certo nvel de execuo em que ele mascara (inibe) certos valores de interrupo. Interrupes mascarveis.
S.O. 2010/1 Prof. Jos Gonalves - LPRM/DI/UFES

http://www.inf.ufes.br/~rgomes/so.htm

Rotina de Interrupo do Relgio


O relgio (clock) um elemento de hardware que interrompe a CPU em intervalos de tempos fixos.
CPU tick, clock tick ou tick. Algumas mquinas requerem que o S.O. rearme o relgio aps cada interrupo; em outras, o relgio rearma-se sozinho.

A interrupo de relgio a mais prioritria, s perdendo para a interrupo de falha de energia. Uma Rotina de Interrupo do Relgio (Clock Interrupt Handler) executada em resposta a uma interrupo do relgio.
LPRM/DI/UFES 18 Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Rotina de Interrupo do Relgio

(cont.)

A maioria dos computadores suporta uma variedade de intervalos:


Unix tipicamente configura o CPU tick em 10 ms. A constante HZ (definida no arquivo param.h) armazena a freqncia desejada para o CPU tick.
Ex: HZ=100 implica em um intervalo de tick de 10 ms.

LPRM/DI/UFES

As funes do kernel so usualmente medidas em nmeros de CPU ticks ao invs de segundos ou milisegundos.
19

Sistemas Operacionais

http://www.inf.ufes.br/~rgomes/so.htm

Rotina de Interrupo do Relgio

(cont.)

Tarefas tpicas do Clock Interrupt Handler:


Reiniciar o relgio, se necessrio. Atualizar as estatsticas de uso da CPU p/ o processo corrente. Realizar funes relacionadas ao escalonamento (recalcular prioridades, tratar evento de fim de fatia de tempo do processo corrente, etc.). Manipular sinais (ex: enviar o sinal SIGXCPU para o processo corrente, caso ele tenha excedido a sua cota de uso de CPU). Atualizar o time-of-day e outros timers relacionados. Acordar processos de sistema quando apropriado (ex: swapper e pagedaemon) e manipular callouts e alarmes.
LPRM/DI/UFES 20 Sistemas Operacionais