Você está na página 1de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

CONCORRNCIA

NDICE:

1. Introduo 2. Interrupo e Exceo 3. Operaes de Entrada e Sada 4. Buffering 5. Spooling 6. Reentrncia 7. Proteo do Sistema 8. Bibliografia 9. Lista de Exerccios

1 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

1. INTRODUO
Os sistemas operacionais podem ser vistos como um conjunto de rotinas que executam concorrentemente de forma ordenada. A possibilidade do processador executar instrues em paralelo com operaes de E/S permite que diversas tarefas sejam executadas concorrentemente. O conceito de concorrncia o princpio bsico para o projeto dos sistemas multiprogramados. Os sistemas multiprogramveis surgiram a partir de limitaes existentes nos sistemas operacionais monoprogramveis. Nestes sistemas, somente um programa pode estar em execuo por vez, permanecendo o processador dedicado a uma tarefa. Nesse tipo de sistema ocorre um desperdcio na utilizao do processador, pois enquanto uma leitura em disco realizada, o processador permanece ocioso. O tempo de espera relativamente longo, j que as operaes com dispositivos de entrada e sada so muito lentas se comparadas com a velocidade com que o processador executa instrues. Outro aspecto a ser considerado a subutilizao da memria principal. Um programa que no ocupe totalmente a memria ocasiona a existncia de reas livres sem utilizao. Nos sistemas multiprogramveis, vrios programas podem estar residentes na memria, concorrendo pela utilizao do processador. Neste caso, a CPU permanece menos tempo ociosa e a memria principal utilizada de forma mais eficiente. A utilizao concorrente da CPU deve ser implementada de maneira que, quando um programa perde o uso do processador e depois retorna para continuar sua execuo, seu estado deve ser idntico ao do momento em que foi interrompido. O programa dever continuar sua execuo exatamente na instruo em que havia parado, aparentando ao usurio que nada aconteceu. No caso de perifricos, comum termos, em sistemas monoprogramveis, impressoras paradas por um grande perodo de tempo e discos com acesso restrito a um nico usurio. Esses problemas so minimizados em sistemas multiprogramveis, onde possvel compartilhar dispositivos de E/S entre diversos aplicativos.

E/S

CPU

livre

tempo

Sistema monoprogramvel
2 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

E/S

CPU

tempo

Sistema multiprogramvel

2. INTERRUPO E EXCEO
Durante a execuo de um programa, alguns eventos inesperados podem ocorrer ocasionando um desvio forado no seu fluxo de execuo. Estes tipos de eventos so conhecidos por interrupo ou exceo e podem ser conseqncia da sinalizao de algum dispositivo de hardware externo ao processador ou da execuo de instrues do prprio programa. A diferena entre interrupo e exceo dada pelo tipo de evento ocorrido. 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 dispositivos. Uma interrupo sempre gerada por um evento externo ao programa e, neste caso, independe da instruo que est sendo executada. Um exemplo de interrupo ocorre quando um dispositivo avisa ao processador que alguma operao de E/S est completa. Neste caso, o processador deve interromper o programa para tratar o trmino da operao. Ao final da execuo de cada instruo, a unidade de controle verifica a ocorrncia de algum tipo de interrupo. Neste caso, o programa em execuo interrompido e o controle desviado para uma rotina responsvel por tratar o evento ocorrido, denominada rotina de tratamento de interrupo. Para que o programa possa posteriormente voltar a ser executado, necessrio que, no momento da interrupo, um conjunto de informaes sobre a sua execuo seja preservado. Essas informaes consistem no contedo de registradores, que devero ser restaurados para a continuao do programa.

3 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

Figura 1: Mecanismos de interrupo e exceo

Para cada tipo de interrupo existe uma rotina de tratamento associada, para a qual o fluxo de execuo deve ser desviado. A identificao do tipo de evento ocorrido fundamental para determinar o endereo da rotina de tratamento. Existem dois mtodos utilizados para o tratamento de interrupes. O primeiro mtodo utiliza uma estrutura de dados chamada vetor de interrupo, que contm o endereo inicial de todas as rotinas de tratamento existentes associadas a cada tipo de evento. Um segundo mtodo utiliza um registrador de status que armazena o tipo do evento ocorrido. As interrupes so decorrentes de eventos assncronos, ou seja, no relacionados instruo do programa corrente. Esses eventos, por serem imprevisveis, podem ocorrer mltiplas vezes. Isto possibilita a ocorrncia de mltiplas interrupes simultneas. Uma maneira de evitar esta situao a rotina de tratamento inibir as demais interrupes. Neste caso, na ocorrncia de outras interrupes durante a execuo da rotina de tratamento sero ignoradas, ou seja, no recebero tratamento. Alguns processadores no permitem que interrupes sejam desabilitadas, fazendo com que exista um tratamento para a ocorrncia de mltiplas interrupes. Neste caso, o processador precisa saber qual a ordem de atendimento que dever seguir. Para isto, as interrupes devero possuir prioridades, em funo da importncia no atendimento de cada uma. Uma exceo semelhante a uma interrupo, sendo a principal diferena o motivo pelo qual o evento gerado. A exceo resultado direto da execuo de uma instruo do prprio programa, como a diviso de um nmero por zero ou a ocorrncia de overflow em uma operao aritmtica. A diferena fundamental entre exceo e interrupo que a primeira gerada por um evento sncrono, enquanto a segunda gerada por eventos assncronos. Um evento sncrono quando resultado direto da execuo do programa corrente. Tais eventos so previsveis e s pode ocorrer um nico de cada vez.
4 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

Da mesma forma que na interrupo, sempre que uma exceo gerada, o programa em execuo interrompido e o controle desviado para uma rotina de tratamento de exceo. Para cada tipo de exceo existe uma rotina de tratamento adequada para qual o fluxo de execuo deve ser desviado.

3. OPERAES DE ENTRADA E SADA


Nos primeiros sistemas computacionais, a comunicao entre o processador e os perifricos era controlada por um conjunto de instrues especiais, denominadas instrues de entrada/sada, executadas pelo prprio processador. Essas instrues continham detalhes especficos de cada perifrico. O surgimento do controlador ou interface permitiu ao processador agir de maneira independente dos dispositivos de E/S. Com esse novo elemento, o processador no mais se comunicava diretamente com os perifricos, mas sim atravs do controlador. Isso simplificou as instrues de E/S, por no ser mais necessrio especificar detalhes de operao dos perifricos, tarefa esta realizada pelo controlador.

CPU

Memria principal

Controlador

Dispositivos de E/S

Figura 2: Controlador

Com a utilizao do controlador, existiam duas maneiras pelas quais o processador gerenciava as operaes de E/S. Na primeira, o processador sincronizava com o perifrico para o incio da transferncia de dados e aps iniciada a transferncia, o sistema ficava permanentemente testando o estado do perifrico para saber quando a operao chegaria ao seu final. Este controle, chamado E/S controlada por programa, mantinha o processador ocupado at o trmino da operao de E/S. A evoluo desse modelo foi permitir que, aps o incio da transferncia dos dados, o processador permanecesse livre para realizar outras tarefas. Assim, em
5 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

determinados intervalos de tempo, o sistema operacional deveria testar cada dispositivo para saber do trmino da operao de E/S. Isso permitiu o surgimento dos primeiros sistemas multiprogramveis. Com a implementao do mecanismo de interrupes, as operaes de E/S puderam ser realizadas de uma forma mais eficiente. Em vez do sistema periodicamente verificar o estado de uma operao pendente, o prprio controlador interrompia o processador para avisar o trmino da operao. Com esse mecanismo, denominado E/S controlada por interrupo, o processador, aps a execuo de um comando de leitura ou gravao, permanece livre para o processamento de outras tarefas. A operao de E/S controlada por interrupo muito mais eficiente que a controlada por programa, j que elimina a necessidade de o processador esperar pelo trmino da operao, alm de permitir que vrias operaes de E/S sejam executadas simultaneamente. Apesar disso, a transferncia de grande volume de dados exige muitas intervenes do processador, reduzindo sua eficincia. A soluo para esse problema foi a implementao de uma tcnica de transferncia de dados denominada DMA (Direct Memory Access). A tcnica DMA permite que um bloco de dados seja transferido entre a memria principal e dispositivos de E/S, sem a interveno do processador, exceto no incio e no final da transferncia. Quando o sistema deseja ler ou gravar um bloco de dados, o processador informa ao controlador sua localizao, o dispositivo de E/S, a posio inicial da memria de onde os dados sero lidos ou gravados e o tamanho do bloco. Com estas informaes, o controlador realiza a transferncia entre o perifrico e a memria principal, e o processador interrompido somente no final da operao. A rea de memria utilizada pelo controlador na tcnica de DMA chamada buffer de entrada/sada. A extenso do conceito de DMA possibilitou o surgimento do canal de entrada/sada introduzido pela IBM. O canal um processador com capacidade de executar programas de E/S, permitindo o controle total sobre operaes de E/S. As instrues de E/S so armazenadas na memria principal pelo processador, porm o canal responsvel pela sua execuo. Assim, o processador realiza uma operao de E/S, instruindo o canal para executar um programa localizado na memria. O canal atua como um elo de ligao entre o processador e o controlador.

6 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

CPU

Memria principal

Canal de E/S

Controlador

Controlador

Dispositivos de E/S

Dispositivos de E/S

Figura 3: Canal de E/S A evoluo do canal permitiu que este possusse sua prpria memria, eliminando a necessidade de os programas de E/S serem carregados para a memria principal.

4. BUFFERING
A tcnica de buffering consiste na utilizao de uma rea na memria principal, denominada buffer, para a transferncia de dados entre os dispositivos de E/S e a memria. Esta tcnica permite que em uma operao de leitura, o dado seja transferido primeiramente para o buffer, liberando imediatamente o dispositivo de entrada para realizar uma nova leitura.

Figura 4: Operaes de E/S utilizando buffer

7 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

O buffering permite minimizar o problema da disparidade da velocidade de processamento existente entre o processador e os dispositivos de E/S. O objetivo principal desta tcnica manter, na maior parte do tempo, processador e dispositivos de E/S ocupados. A unidade de transferncia utilizada no buffering o registro.

5. SPOOLING
A tcnica de spooling (simultaneous peripheral operation on-line) foi introduzida no final dos anos 1950 para aumentar o grau de concorrncia e a eficincia dos sistemas operacionais. Naquela poca, os programas dos usurios eram submetidos um a um para processamento. Como a velocidade de operao dos dispositivos de E/S muito menor que a do processador, era comum que a CPU permanecesse ociosa espera de programas e dados de entrada ou pelo trmino de uma impresso. A soluo foi armazenar os vrios programas e seus dados em uma fita magntica e, em seguida, submet-los ao processamento. Da mesma forma, em vez de um job gravar suas sadas diretamente na impressora, poderia direcion-las para uma outra fita, que depois seria impressa. Esta forma de processamento chamada de spooling e foi a base dos sistemas batch. A tcnica de spooling utiliza uma rea em disco como se fosse um grande buffer. Neste caso, dados podem ser lidos ou gravados em disco, enquanto programas so executados concorrentemente. Atualmente essa tcnica est presente na maioria dos sistemas operacionais, sendo utilizada no gerenciamento de impresso. No momento em que um comando de impresso executado, as informaes que sero impressas so gravadas antes em um arquivo em disco, conhecido como arquivo de spool, liberando imediatamente o programa para outras atividades. Posteriormente, o sistema operacional encarrega-se de direcionar o contedo do arquivo de spool para a impressora.

Figura 5: Tcnica de spooling

8 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

O uso do spooling permite desvincular o programa do dispositivo de impresso, impedindo que um programa reserve a impressora para uso exclusivo. O sistema operacional responsvel por gerenciar a seqncia de impresses solicitadas pelos programas, seguindo critrios que garantam a segurana e ouso eficiente das impressoras.

6. REENTRNCIA
comum, em sistemas multiprogramveis, vrios usurios utilizarem os mesmos aplicativos simultaneamente. Se cada usurio que utilizasse um destes aplicativos trouxesse o cdigo executvel para a memria, haveria diversas cpias de um mesmo programa na memria principal, o que ocasionaria um desperdcio de espao. Reentrncia a capacidade de um cdigo executvel ser compartilhado por diversos usurios, exigindo que apenas uma cpia do programa esteja na memria. A reentrncia permite que cada usurio possa estar em um ponto diferente do cdigo reentrante, manipulando dados prprios, exclusivos de cada usurio.

Figura 7: Reentrncia

7. PROTEO DO SISTEMA
A eficincia proporcionada por um ambiente multiprogramvel resulta em maior complexidade do sistema operacional, j que alguns problemas de proteo surgem como decorrncia desse tipo de implementao. Se considerarmos que diversos usurios esto compartilhando os mesmos recursos, como memria, processador e dispositivos de E/S, deve existir uma preocupao em garantir a confiabilidade e a integridade dos programas e dados dos usurios, alm do prprio sistema operacional.
9 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

Como vrios programas ocupam a memria simultaneamente, cada usurio possui uma rea reservada onde seus dados e cdigo so armazenados. O sistema operacional deve possuir mecanismos de proteo, de forma a preservar estas informaes. Caso um programa tente acessar uma posio de memria fora de sua rea, um erro indicando a violao de acesso deve ocorrer. Semelhante ao compartilhamento de memria, um disco armazena arquivos de diferentes usurios. Mais uma vez, o sistema operacional deve garantir a integridade e confiabilidade dos dados de cada usurio. Uma das principais caractersticas da multiprogramao permitir que vrios programas compartilhem o processador. O sistema operacional deve ser responsvel pelo controle da utilizao do processador de forma a impedir que algum programa monopolize o seu uso. Para solucionar esses diversos problemas, o sistema operacional deve implementar mecanismos de proteo que controlem o acesso concorrente aos diversos recursos do sistema.

8. BIBLIOGRAFIA
MACHADO, F. B., MAIA, L. P., Arquitetura de Sistemas Operacionais, 3a edio, Ed. LTC, 2002, Rio de Janeiro TANENBAUM, A., Sistemas Operacionais Modernos, 5a edio, Ed. Makron Books, 1999, Rio de Janeiro

10 de 11

SISTEMAS OPERACIONAIS NOTAS DE AULA

9. LISTA DE EXERCCIOS
1. O que concorrncia e como este conceito est presente nos sistemas operacionais multiprogramveis? 2. Por que o mecanismo de interrupo fundamental para a implementao da multiprogramao? 3. 4. 5. 6. 7. 8. Explique o mecanismo de funcionamento das interrupes. O que so eventos sncronos e assncronos? Como estes eventos esto relacionados ao mecanismo de interrupo e exceo? D exemplos de eventos associados ao mecanismo de exceo. Qual a vantagem da E/S controlada por interrupo comparada com a tcnica de spooling? O que DMA e qual a vantagem desta tcnica? Como a tcnica de buffering permite aumentar a concorrncia em um sistema computacional? 9. Explique o mecanismo de spooling de impresso. (200kb), compilador (300kb), software de correio eletrnico (200kb) e uma aplicao corporativa (500kb). Caso o sistema no implemente reentrncia, qual o espao de memria principal ocupado pelos programas quando 10 usurios estiverem utilizando todas as aplicaes simultaneamente? Qual o espao liberado quando o sistema implementa reentrncia em todas as aplicaes? 11. Por que a questo da proteo torna-se fundamental em ambientes multiprogramveis?

10. Em um sistema multiprogramvel, seus usurios utilizam o mesmo editor de texto

11 de 11