Buscar

Interrupções e Exceções em Programas

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes

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ê também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Capitulo 4 - Interrupções e Exceções 
	Quando executamos um procedimento ou programa, podem ocorrer algumas situações que necessite interrompe-lo para que um determinado evento solicitado pelo próprio programa que está em execução ou por uma chamada de um dispositivo de hardware do sistema ocorra, neste momento o sistema operacional necessita realizar uma intervenção, que é denominada de interrupções ou exceções, quando isto ocorre o fluxo de execução do programa é desviado para uma rotina especial de tratamento. O que vem a diferenciar uma interrupção de uma exceção é o tipo de evento que gera esta condição. 
Interrupção 
	A interrupção é fundamental para os sistemas multiprogramáveis, pois ele é o responsável por viabilizar a sincronização das rotinas e controlar os dispositivos e periféricos do sistema. Uma interrupção é gerada pelo sistema operacional ou por algum dispositivo e, neste caso, independe do programa que está sendo executado naquele momento. Este procedimento para ser realizado necessita que alguns passos sejam seguidos, iremos agora descrever com isto ocorre. A unidade de controle detecta a ocorrência de algum tipo de interrupção, o programa ou procedimento em execução é interrompido, o controle é desviado para uma rotina responsável pelo tratamento da interrupção, após a rotina ser solicitada ser realizada, o controle deve retornar ao programa ou procedimento que foi interrompido posteriormente. Para que este ação possa ser concretizada temos que no exato momento da interrupção que as informações sobre o programa ou procedimento que esta sendo executado sejam preservadas para posteriormente sejam recuperadas, para que o fluxo siga normalmente. Vamos agora descrever alguns mecanismos utilizados para nos auxiliar a gerenciar estas interrupções. 
	O vetor de interrupção fica responsável por armazenar a relação de todas as rotinas de tratamentos de interrupções existentes com suas respectivas associações para informar ao processador que necessita desta informação. 
	O controlador de pedidos de interrupção é um recurso do hardware dos sistemas computacionais, responsável por avaliar as interrupções geradas e suas respectivas prioridades de atendimento, para informar o processador, quando ocorrem múltiplas interrupções.
	As interrupções podem ser classificadas como mascaráveis que são interrupções que podem ser desabilitadas pelo processador, quando isto ocorre estas interrupções não receberão tratamento. As não mascaráveis onde não é possível de ocorrer, e consequentemente o tratamento é obrigatório.
Exceções 
	
	Os sistemas operacionais inicialmente somente utilizavam o recurso de interrupções durante as execuções das aplicações, posteriormente com a evolução dos sistemas, as próprias aplicações puderam realizar suas próprias interrupções, que foram denominadas de exceções.
	As exceções são os resultados direto da execução de uma instrução do próprio aplicativo que estiver sendo executado naquele momento. As formas como as exceções ocorrem durante as aplicações são muitos semelhantes aos das interrupções, mas, com a possibilidade das exceções serem desenvolvidas pelo próprio programador. Nos sistemas mais antigos não existia a possibilidade do programador desenvolver rotinas de tratamento, devido a este motivo, com a ocorrência de tais eventos, o sistema necessitaria da intervenção de um operador para solucionar o problema ou poderia até parar sua execução.
	A diferença básica entre interrupção e exceção, está que a primeira é gerada por eventos assíncronos e a segunda é gerada por um evento síncrono. Agora vamos entender um pouco mais sobre o que são eventos assíncronos e um evento síncrono:
	- Assíncronos 
		Um evento é dito como assíncrono quando ocorre independente da execução do programa corrente. Esses eventos, por serem imprevisíveis, podem ocorrer múltiplas vezes simultaneamente, como no caso de diversos dispositivos de entrada e saída informarem ao processador que estão prontos para receber ou transmitir dados.
	- Síncronos 
		Um evento é dito como síncrono quando é resultado direto da execução do programa corrente. Tais eventos são previsíveis e, por definição, só podem ocorrer um de cada vez. Se um programa que causa esse tipo de evento for reexecutado, com mesma entrada de dados, a exceção ocorrerá sempre na mesma instrução. 
Exercícios 
1 – O que são interrupções?
R:______________________________________________________________________________________________________________________________________________________________ 
2 – O que são exceções?
R:______________________________________________________________________________________________________________________________________________________________ 
3 – Quais é a diferença entre exceção e interrupção?
R:______________________________________________________________________________________________________________________________________________________________
4 – (ENADE) Processadores atuais incluem mecanismos para o tratamento de situações especiais, conhecidas como interrupções. Em uma interrupção, o fluxo normal de instruções é interrompido para que a causa da interrupção seja tratada. Com relação a esse assunto, assinale a opção correta.
Controladores de entrada e saída geram interrupções de forma síncrona à execução do processador, para que nenhuma instrução fique incompleta devido à ocorrência da interrupção.
Quando uma interrupção ocorre, o próprio processador salva todo o seu contexto atual, tais como registradores de dados e endereço e códigos de condição, para que esse mesmo contexto possa ser restaurado pela rotina de atendimento da interrupção.
O processador pode auto-interromper-se para tratar exceções de execução, tais como um erro em uma operação aritmética, uma tentativa de execução de instrução ilegal ou uma falha de página em memória virtual.
D Rotinas de tratamento de interrupção devem ser executada com o mecanismo de interrupção inibido, pois esse tipo de rotina não permite aninhamento.
E O uso de interrupção para realizar entrada ou saída de dados somente é eficiente quando o periférico trata grandes quantidades de dados, como é o caso de discos magnéticos e discos ópticos. Para periféricos com pouco volume de dados, como teclados e mouses, o uso de interrupção é ineficiente.

Outros materiais