Você está na página 1de 7

13

Captulo 2 Abstraes e Tecnologia Computacional


Neste captulo discute as abstraes utilizadas em sistemas de computadores. O princpio da abstrao a forma encontrada pelos projetistas de hardware e software para tratar a complexidade dos sistemas computacionais. Alm disso, apresenta algumas das tecnologias computacionais que vem sendo empregadas e que tornam mais fceis a utilizao destes sistemas.

2.1 Introduo
Nos ltimos anos temos presenciado uma evoluo rpida dos sistemas computacionais. Podemos dizer que os computadores levaram a civilizao contempornea a uma terceira revoluo, a chamada revoluo da informao. Antes a civilizao presenciou a revoluo agrcola e a industrial. A revoluo da informao proporcionou um aumento significativo na disseminao de informaes. Este fato aumentou a capacidade intelectual da humanidade com impacto direto nas cincias. Atualmente os cientistas da computao tm trabalhado em vrias linhas de investigao cientfica. Eles buscam viabilizar ferramentas mais eficientes para que os cientistas tericos e experimentais possam explorar novas fronteiras do conhecimento nas mais diversas reas como as Engenharias, a Astronomia, a Biologia, a Fsica, a Qumica entre outras. O custo dos sistemas computacionais tem decrescido significativamente nos ltimos anos. A reduo do custo permite que a utilizao dos computadores se multiplique. Hoje estes sistemas so viveis para diversas aplicaes onde antigamente o custo era proibitivo, como por exemplo nos caixas eletrnicos, nos automveis ou laptops. Os avanos verificados na tecnologia de hardware tm permitido que os especialistas criem programas extremamente teis. Este fato pode ser comprovado no emprego dos computadores nas mais diversas atividades desenvolvidas pelas pessoas. Os bons programadores tm como um dos seus principais objetivos o desempenho dos seus programas. Para os usurios a obteno de resultados rpidos um fator preponderante para o sucesso de qualquer software. Nos anos 60 e 70 a principal restrio para um bom desempenho dos computadores era o tamanho da memria. Assim, os programadores procuravam minimizar o espao de memria utilizado pelo seu programa para torn-lo mais

14

rpido. Os avanos nas tcnicas de projeto dos processadores e na tecnologia de fabricao das memrias reduziram muito a importncia de programas pequenos. Os programadores atuais para obter bom desempenho devem se familiarizar com os aspectos que substituram o modelo de memria dos anos 60 e 70, como a natureza hierrquica dos sistemas de memria associado ao paralelismo no nvel dos processadores. Os especialistas que desejam construir compiladores, sistemas operacionais, sistemas gerenciadores de base de dados ou programas aplicativos realmente eficientes e, portanto competitivos, devem ampliar seus conhecimentos sobre organizao de computadores. Nas prximas sees apresentamos os fundamentos que so utilizados nos demais captulos. Introduzimos os conceitos bsicos e as definies, alm de destacar os principais componentes de hardware e software da mquina.

2.2 Nveis de Software Inferiores ao Programa do Usurio


A comunicao num sistema de computador eletrnico digital binrio realizada atravs de sinais eltricos. Os smbolos escolhidos para representar os dgitos binrios so 0 e 1. Podemos visualizar a linguagem da mquina como um conjunto de nmeros na base 2. Cada dgito binrio tambm conhecido como um bit. Os computadores executam programas que so compostos por um conjunto de comandos que formam a soluo de um problema. Cada comando individual denominado instruo. As instrues nada mais so do que um conjunto de bits inteligveis pelo computador e que podem ser associados a nmeros. Por exemplo, os bits 1000110010100000 podem informar a um determinado processador para somar dois nmeros. Nos primeiros computadores os programadores tinham que escrever seus programas na linguagem nativa do computador. A prtica de usar nmeros binrios era cansativa e propensa a erros. Este fato levou a inveno de uma notao mais prxima da maneira das pessoas pensarem. Inicialmente esta traduo era realizada manualmente para a linguagem binria. O uso da mquina para programar a prpria mquina foi a forma encontrada pelos pioneiros da programao para traduzir programas escritos em uma linguagem simblica para a linguagem da mquina. O primeiro deste programas foi denominado montador. O montador traduzia uma verso simblica de cada instruo para a sua verso correspondente em binrio. Por exemplo, o programador poderia escrever ADD A, B sendo o montador responsvel pela tarefa de traduzir esta instruo para os bits 1000110010100000. O nome desta linguagem simblica, formada por nemnicos, linguagem de montagem ou linguagem assembly.

15

Apesar de muitas mudanas e melhorias, as linguagens de montagem esto longe da facilidade desejada pelos cientistas. A linguagem de montagem obriga o programador a escrever uma linha para cada instruo a ser executada pela mquina. Isto fora o programador a raciocinar como a mquina. Este pensamento de raciocinar num nvel mais baixo inspirou uma questo simples. Se podemos traduzir uma linguagem de montagem para instrues binrias, de maneira a tornar mais simples o trabalho dos programadores, porque no traduzir uma notao de mais alto nvel para uma notao binria? Apesar de ser uma tarefa mais complexa projetar e construir este tradutor, ela vivel. Os programadores de hoje tm uma alta produtividade devido ao projeto deste tradutor de alto nvel denominado compilador. Os compiladores so programas que aceitam uma notao mais natural muito prxima da nossa linguagem. A linguagem que eles compilam so denominadas linguagem de alto nvel. Seu uso permite que um programador escreva a seguinte expresso A + B e o compilador a expresse na linguagem de montagem
ADD A, B. Por sua vez, o montador deve traduzir este comando para a instruo binria

1000110010100000. As linguagens de alto nvel oferecem vrias vantagens aos programadores. Primeiro, elas permitem que os programadores raciocinem de uma forma mais natural, mesmo usando palavras em lngua inglesa e notaes algbricas. Alm disso, as linguagens de alto nvel so projetadas de acordo com o tipo de programa a ser escrito. Por exemplo, a linguagem Fortran foi projetada para realizar clculos cientficos, o Cobol para processar dados comerciais, o Lisp para manipular smbolos e assim por diante. A segunda vantagem do uso das linguagens de alto nvel o aumento da produtividade dos programadores. O tempo gasto para desenvolver programas melhora na razo inversa da quantidade de linhas de cdigo necessrias para expressar uma idia. Outra vantagem o fato de que programas escritos em tais linguagens so independentes do computador no qual foram desenvolvidos. Isto porque os compiladores e montadores, em geral, podem traduzir linguagens de alto nvel para instrues de qualquer mquina. A reutilizao de programas j escritos muito mais vantajosa do que escrever novamente um programa desde o princpio. Por isso, os programadores compartilham as rotinas potencialmente mais utilizadas, organizando-as em bibliotecas. Uma das primeiras bibliotecas a ser idealizada continha rotinas de entrada e sada de dados. Ela continha rotinas, por exemplo, para controlar uma impressora, um disco, fitas entre outros dispositivos. A experincia mostrou que um conjunto de programas poderia ser mais eficientemente executado se houvesse um programa separado responsvel por supervisionar a execuo dos demais. Ele seria responsvel por iniciar o processamento do prximo programa numa fila, evitando a interveno humana para realizar esta tarefa. Estes tipos de

16

programas, denominados supervisores, juntamente com as rotinas de entrada e sada formam a base do que hoje chamamos de sistema operacional. Os sistemas operacionais so programas que controlam e coordenam os recursos fsicos da mquina, alm de implementarem a interface entre os servios do sistema e o usurio. Os softwares tendem a ser classificados por seu uso. Aqueles que implementam servios para tornar a mquina mais atrativa, servios estes utilizados por outros programas, so denominados softwares do sistema. Como exemplo destes softwares podemos citar os sistemas operacionais, os compiladores e montadores. J os softwares de aplicao ou simplesmente aplicativos so programas desenvolvidos para simples usurios da mquina, como por exemplo, as planilhas eletrnicas ou os processadores de texto.

2.3 Componentes do Computador


A seo 2.2 apresentou alguns dos conceitos bsicos envolvidos no nvel do software. Esta seo aborda um pouco sobre o hardware dos computadores. A Figura 2.1 ilustra uma viso simplificada dos nveis hierrquicos do hardware e do software, mostrados de forma clssica, como anis concntricos, construdos a partir do ncleo do hardware em direo a camada do software mais prxima do usurio.

Softwares de aplicao Softwares de sistema

Hardware

Figura 2.1. Viso simplificada dos nveis hierrquicos do hardware e do software.

Um computador tpico dos dias de hoje possui vrios dispositivos de entrada e sada como um teclado, vdeo, mouse, impressora e um gabinete contendo mais hardware. Segundo o livro de Patterson e Henessy, este hardware composto por cinco componentes clssicos que so os dispositivos de entrada de dados, os dispositivos de sada de dados, a memria, o caminho de dados e a unidade de controle. Estes dois ltimos componentes quando

17

combinados so chamados de processador. A Figura 2.2 ilustra uma possvel organizao interna do chip de um processador.

Controle Cache de dados

Lgica de desvio

Cache de instrues

Barra- Caminho mento de dados


ponto fixo

Caminho de dados ponto flutuante

Figura 2.2. Interior de um chip de processador.

Um fato comum que ocorre tanto na descrio do hardware quanto na descrio do software que sempre que aprofundamos a discusso aparecem mais detalhes sobre o assunto. Se olharmos pela perspectiva inversa, os detalhes do nvel mais baixo so mantidos escondidos dos nveis mais altos. O uso dessas camadas ou abstraes uma das tcnicas mais importantes empregadas no projeto de sistemas computacionais sofisticados. Isto porque permite que modelos mais simples sejam utilizados nos nveis superiores. Uma das abstraes mais importantes a interface entre o hardware e o software no nvel mais baixo. Em funo de sua importncia essa abstrao recebeu o nome de arquitetura do conjunto de instrues. A arquitetura do conjunto de instrues de uma mquina inclui todos os pontos que o programador precisa conhecer para fazer com que a mquina trabalhe corretamente. Esta interface padro permite que os projetistas de computadores pensem nas funes independentemente do hardware que as executa. Os projetistas de computadores distinguem a arquitetura do conjunto de instrues da implementao da arquitetura. Esta interface abstrata possibilita que diferentes implementaes de uma mesma arquitetura possam ser realizadas, com custo e desempenho variveis e que executam o mesmo software.

18

Uma outra questo importante nos dias de hoje a conexo entre computadores atravs das redes. As ligaes em rede tm uma srie de vantagens como a troca de informaes com altas taxas de velocidade, o compartilhamento de recursos e acessos remotos. As redes variam muito em relao ao seu tamanho e seu desempenho. Uma das redes de comunicao mais populares a Ethernet. Sua tecnologia apropriada para interconexo numa rede local. Isto , ela adequada, por exemplo, a distncias como um andar de um edifcio. Para redes de longa distncia (entre cidades, continentes) so utilizadas transmisses via satlite, rdio ou fibras ticas.

2.4 Circuitos Integrados


O desenvolvimento da tecnologia de implementao dos componentes eletrnicos vem sustentando o crescimento da indstria de computao desde os anos 70. A tecnologia que impe limites ao que um computador pode realizar. Por exemplo, a tecnologia que define a velocidade de processamento e a capacidade de armazenamento. Um transistor um componente eletrnico controlado por eletricidade. Antigamente os circuitos integrados eram compostos por dezenas ou centenas de transistores em um nico chip. Num curto intervalo de tempo, a mesma rea de um chip passou a integrar vrios milhes de transistores dando origem aos chamados circuitos very large-scale integrated (VLSI). O processo de fabricao de um chip tem incio com o silcio que um elemento qumico encontrado na areia. Ele um elemento semicondutor porque no um bom condutor de eletricidade nem um bom isolante. Quando combinado com outros elementos qumicos especiais o silcio pode adquirir excelente condutividade, ser completamente isolante, ou conduzir ou isolar a eletricidade sob certas condies especiais atuando como uma chave. Os transistores pertencem a esta ltima categoria. Portanto, um circuito VSLI um conjunto formado por milhes de combinaes de condutores, isolantes e chaves. O processo de fabricao dos circuitos integrados importante para a determinao do custo final de um chip. Ele determina tambm o custo final de um computador. A Figura 2.3 mostra o processo de fabricao de um chip. A figura mostra uma barra de silcio que aps ser fatiada transforma-se num waffer virgem. Para gravar os circuitos so necessrios de 20 a 30 passos de processamento. Os waffers j como padro gravado so divididos em chips por um separador. Depois de testados estes chips so encapsulados, novamente testados e disponibilizados para consumo.

19
Barra de silcio Waffers virgens 20 a 30 passos de processamento

Fatiador Chips testados Chip pronto para encapsulamento Testador de chips

Chips individuais Separador

Waffers gravados

Chips encapsulados Teste final

Chips testados Expedio para consumo

Figura 2.3. Processo de fabricao de um chip.

2.5 Consideraes Finais


Apesar de ser difcil prever o nvel da relao custo/desempenho que os computadores tero no futuro, seguro apostar na premissa de que esta relao ser melhor do que a possumos hoje. Para aproveitar estes avanos os projetistas de computadores e os programadores de software devem entender de uma grande variedade de assuntos. Tanto os projetistas de hardware quanto os projetistas de software constroem seus sistemas baseados numa arquitetura com nveis hierrquicos. O entendimento da abstrao de importncia fundamental para a compreenso dos sistemas computacionais da atualidade.