Sei sulla pagina 1di 2

A eficincia proporcionada por um sistema multiprogramvel resulta em maior complexidade do sistema operacional, j que alguns problemas surgem com

esse tipo de implementao. Se considerarmos que vrios programas esto simultaneamente ocupando diversas partes da memria, um programa no pode destruir dados ou cdigo de outro programa. Este e outros problemas, como quais so os programas que devero estar residentes em memria, ou em qual ordem os programa utilizaro a UCP, so resolvidos pelo sistema operacional. Interrupo e Exceo Durante a execuo de um programa, alguns eventos podem ocorrer durante seu processamento, obrigando a interveno do SO. Este tipo de interveno denominado interrupo ou exceo e pode ser resultado da execuo de instrues do prprio programa, gerado pelo SO ou por algum dispositivo de hardware. Nestas situaes o fluxo de execuo do programa desviado para uma rotina especial de tratamento. O que diferencia uma interrupo de uma exceo o tipo de evento que gera esta condio. Uma interrupo gerada pelo SO ou por algum dispositivo e, neste caso, independe do programa que est sendo executado. Um exemplo quando um perifrico avisa UCP que est pronto para transmitir algum dado. Neste caso, a UCP deve interromper o programa para atender a solicitao do dispositivo. No momento em que a unidade de controle detecta a ocorrncia de algum tipo de interrupo, o programa em execuo interrompido, e o controle desviado para uma rotina responsvel pelo tratamento da interrupo (rotina de tratamento da interrupo). Muitas vezes, aps a execuo dessa rotina, o controle deve voltar ao programa que, anteriormente, estava sendo processado. Para isso acontecer, necessrio que, no momento da interrupo, um conjunto de informaes sobre a execuo do programa seja preservado. Essas informaes consistem no contedo de alguns registradores, que devero ser restaurados posteriormente para a continuao do programa. Mecanismo de Interrupo: Programa

Salva os registradores

Rotina de tratamento

Identifica a origem da interrupo

Interrupo

Obtm o end. da rotina de tratam.

Restaura os registradores

No existe apenas um nico tipo de interrupo e sim diferentes tipos que devem ser atendidos por diversa rotinas de tratamento. No momento que uma interrupo acontece, a UCP deve saber para qual rotina de tratamento dever ser desviado o fluxo de execuo. Essa informao est em uma estrutura do sistema chamada de vetor de interrupo, que contm a relao de todas as rotinas de tratamento existentes, associadas a cada tipo de interrupo. Todo procedimento para detectar a interrupo, salvar o contexto do programa e desviar para uma rotina de tratamento denominado mecanismo de interrupo. Este mecanismo realizado, na maioria das vezes, pelo hardware dos computadores, e foi implementado pelos projetistas para criar uma maneira de sinalizar ao processador eventos assncronos que possam ocorrer no sistema.

As interrupes podem ser classificadas como mascarveis e no mascarveis. As mascarveis podem ser desabilitadas pelo processador. Neste caso, na ocorrncia de tais interrupes, elas sero ignoradas, ou seja, no recebero tratamento. No caso das interrupes no mascarveis, isto no possvel de se implementar, sendo o tratamento obrigatrio. No caso de mltiplas interrupes ocorrerem, o processador deve saber qual interrupo ter de atender primeiro. Para isso, as interrupes devero possuir prioridades, em funo da necessidade de atendimento de cada uma. Normalmente, o hardware dos computadores possui um dispositivo denominado controlador de pedidos de interrupo, responsvel por avaliar as interrupes geradas e suas prioridades de atendimento. A interrupo o mecanismo que tornou possvel a implementao da concorrncia nos computadores, sendo o fundamento bsico dos sistemas multiprogramveis. em funo desse mecanismo que o sistema operacional sincroniza a execuo de todas as suas rotinas e dos programas dos usurios, alm de controlar os perifricos e dispositivos do sistema. Inicialmente os SOs apenas implementavam o mecanismo de interrupo. Com a evoluo dos sistemas foi introduzido o conceito de exceo. Uma exceo resultado direto da execuo de uma instruo do prprio programa. Situaes como a diviso de um nmero por zero ou a ocorrncia de um overflow caracterizavam essa situao. O mecanismo de tratamento de excees semelhante ao de interrupes, porm, muitas vezes, podem ser escritas pelo prprio programador. Dessa forma, possvel evitar que um programa seja encerrado no caso de ocorrer, por ex., um overflow. Em sistemas mais primitivos, no existia a possibilidade de o programador implementar rotinas de tratamento. Com isso, na ocorrncia de tais eventos, o sistema poderia parar ou o operador teria que intervir para solucionar o problema. A diferena fundamental entre exceo e interrupo que a exceo gerada por um evento sncrono (quando resultado direto da execuo do programa corrente), e a interrupo gerada por eventos assncronos (quando ocorre independentemente da execuo do programa corrente).

Potrebbero piacerti anche