2011 Santa Maria - RS RIO GRANDE DO SUL INSTITUTO FEDERAL Presidncia da Repblica Federativa do Brasil Ministrio da Educao Secretaria de Educao a Distncia Comisso de Acompanhamento e Validao Universidade Federal de Santa Catarina/UFSC Coordenao Institucional Araci Hack Catapan/UFSC Coordenao do Projeto Silvia Modesto Nassar/UFSC Cordenao de Design Instrucional Beatriz Helena Dal Molin/UNIOESTE Designers Intrucionais Helena Maria Maullmann/UFSC Jorge Luiz Silva Hermenegildo/CEFET-SC WEB Designers Beatriz Helena Dal Molin/UNIOESTE Mrcia Freire Rocha Cordeiro Machado/ETUFPR Superviso de Projeto Grco Ana Carine Garca Montero/UFSC Diagramao Joo Ricardo Zattar/UFSC Lus Henrique Lindler/UFSC Reviso Lcia Locatelli Flres/UFSC Comisso de Acompanhamento e Validao Colgio Tcnico Industrial de Santa Maria/CTISM Coordenador Institucional Paulo Roberto Colusso/CTISM Professor-autor Saul Azzolin Bonaldo/CTISM Coordenao Tcnica Iza Neuza Teixeira Bohrer/CTISM Coordenao de Design Erika Goellner/CTISM Reviso Pedaggica Andressa Rosemrie de Menezes Costa/CTISM Francine Netto Martins Tadielo/CTISM Marcia Migliore Freo/CTISM Reviso Textual Lourdes Maria Grotto de Moura/CTISM Vera da Silva Oliveira/CTISM Reviso Tcnica Eduardo Lehnhart Vargas/CTISM Ilustrao e Diagramao Gustavo Schwendler/CTISM Leandro Felipe Aguilar Freitas/CTISM Marcel Santos Jacques/CTISM Muren Fernandes Massia/CTISM Rafael Cavalli Viapiana/CTISM Ricardo Antunes Machado/CTISM Ficha catalogrca elaborada por Maristela Eckhardt CRB 10/737 Biblioteca Central UFSM Colgio Tcnico Industrial de Santa Maria Este Material Didtico foi elaborado pelo Colgio Tcnico Industrial de Santa Maria para o Sistema Escola Tcnica Aberta do Brasil e-Tec Brasil. B697t Bonaldo, Saul Azzolin Tecnologia da informtica / Saul Azzolin Bonaldo. 3. ed. Santa Maria:Universidade Federal de Santa Maria, Colgio Tcnico Industrial de Santa Maria, Curso Tcnico em Automao Industrial, 2009. 73 p. : il. ; 21 cm. 1. Informtica 2. Tecnologia 3. Arquitetura de computadores 4. Software 5. Programa Escola Aberta do Brasil I. Universidade Federal de Santa Maria. Curso Tcnico em Automao Industrial CDU 004 e-Tec Brasil 33 Apresentao e-Tec Brasil Prezado estudante, Bem-vindo ao e-Tec Brasil! Voc faz parte de uma rede nacional pblica de ensino, a Escola Tcnica Aberta do Brasil, instituda pelo Decreto n 6.301, de 12 de dezembro 2007, com o objetivo de democratizar o acesso ao ensino tcnico pblico, na mo- dalidade a distncia. O programa resultado de uma parceria entre o Minis- trio da Educao, por meio das Secretarias de Educao a Distncia (SEED) e de Educao Prossional e Tecnolgica (SETEC), as universidades e escolas tcnicas estaduais e federais. A educao a distncia no nosso pas, de dimenses continentais e gran- de diversidade regional e cultural, longe de distanciar, aproxima as pessoas ao garantir acesso educao de qualidade, e promover o fortalecimento da formao de jovens moradores de regies distantes dos grandes centros geogracamente ou economicamente. O e-Tec Brasil leva os cursos tcnicos a locais distantes das instituies de en- sino e para a periferia das grandes cidades, incentivando os jovens a concluir o ensino mdio. Os cursos so ofertados pelas instituies pblicas de ensino e o atendimento ao estudante realizado em escolas-polo integrantes das redes pblicas municipais e estaduais. O Ministrio da Educao, as instituies pblicas de ensino tcnico, seus servidores tcnicos e professores acreditam que uma educao prossional qualicada integradora do ensino mdio e educao tcnica, capaz de promover o cidado com capacidades para produzir, mas tambm com auto- nomia diante das diferentes dimenses da realidade: cultural, social, familiar, esportiva, poltica e tica. Ns acreditamos em voc! Desejamos sucesso na sua formao prossional! Ministrio da Educao Janeiro de 2010 Nosso contato etecbrasil@mec.gov.br e-Tec Brasil 5 Indicao de cones Os cones so elementos grcos utilizados para ampliar as formas de linguagem e facilitar a organizao e a leitura hipertextual. Ateno: indica pontos de maior relevncia no texto. Saiba mais: oferece novas informaes que enriquecem o assunto ou curiosidades e notcias recentes relacionadas ao tema estudado. Glossrio: indica a denio de um termo, palavra ou expresso utilizada no texto. Mdias integradas: sempre que se desejar que os estudantes desenvolvam atividades empregando diferentes mdias: vdeos, lmes, jornais, ambiente AVEA e outras. Atividades de aprendizagem: apresenta atividades em diferentes nveis de aprendizagem para que o estudante possa realiz-las e conferir o seu domnio do tema estudado. Tecnologia da Informtica e-Tec Brasil 6 e-Tec Brasil 7 Sumrio Palavra do professor-autor 9 Apresentao da disciplina 11 Projeto instrucional 13 Aula 1 Sistemas, cdigos numricos e aritimtica binria 15 1.1 Histrico 15 1.2 Sistemas de numerao 16 Aula 2 A arquitetura de um computador 27 2.1 Modelo de Von Neumann 27 2.2 Tipos de instrues 29 2.3 Memrias 30 2.4 Unidade central de processamento 35 2.5 Instrues 42 2.6 Estratgias de implementao de processadores 45 Aula 3 Traduo de programas 49 3.1 Programa em linguagem de mquina 49 3.2 Linguagens de montagem 50 3.3 Linguagens de programao 51 3.4 Traduo 53 3.5 Montagem 53 3.6 Compilao 55 3.7 Bibliotecas 56 3.8 Ligao 56 3.9 Interpretao 57 3.10 Compilao e interpretao: comparao 58 3.11 Emuladores e mquinas virtuais 59 Aula 4 Entradas e sadas 63 4.1 Consideraes iniciais 63 4.2 Tipos de dispositivos 64 e-Tec Brasil 4.3 Fomas de comunicao 65 4.4 Formas de transmisso 67 4.5 Transmisso simplex, half-duplex e full-duplex 69 Referncias 72 Currculo do professor-autor 73 e-Tec Brasil 9 Palavra do professor-autor Em meu princpio est meu m. T. S. Eliot, East Coker Juntamente com o progresso das comunicaes, fenmenos interessantes surgiram: o advento do rdio no causou estragos na vendagem de jornais, a televiso no acabou com o rdio e a internet no decretou o m de nenhuma das mdias tradicionais jornal, rdio e televiso. provvel que o grande interesse dos indivduos por informao e conhe- cimento explique esse fenmeno. Sabemos tambm que, quanto mais livre for uma nao, maior a liberdade de informao. Quando surgem governos ditatoriais, uma das primeiras decises decretar o m da liberdade de imprensa, seja fechando jornais, emissoras de rdio e televiso, seja criando conselhos de regulamentao, chegando at mesmo a tentativas de restrio ao livre acesso internet, atravs do bloqueio a determinados sites, ou a tentativas de catalogar usurios e armazenar seus rastros. No entanto, o livre acesso informao traz outra consequncia: hoje, ns dispomos de acesso instantneo a uma quantidade de informao muito maior do que conseguimos tratar. E a principal ferramenta responsvel pela disseminao da informao pelos mais diversos meios o computador. Assim, o objetivo principal desta disciplina oportunizar aos estudantes co- nhecimentos sobre a arquitetura de computadores e sobre o funcionamento desse equipamento onipresente no mundo atual. Acreditamos na sua capacidade de crescimento prossional e trabalhamos para que esta disciplina desempenhe um importante papel nesse sentido. Parabns pela escolha do curso e mos obra! Saul Azzolin Bonaldo e-Tec Brasil 11 Apresentao da disciplina A disciplina de Tecnologia da Informtica apresenta-se na forma presencial e a distncia. A carga horria total de 30 horas, sendo 24 horas no Ambiente Virtual de Ensino Aprendizagem (AVEA), 4 horas terico-prticas presenciais, divididas em dois encontros de 2 horas e, ainda, 2 horas destinadas ava- liao presencial. Este material didtico contm as palavras do professor-autor, projeto instru- cional, referncias e roteiro de estudo dividido em quatro unidades: 1. Sistemas e cdigos numricos e aritmtica binria; 2. A arquitetura de um computador; 3. Traduo de programas; 4. Entradas e sadas. Estas aulas sero estudadas de forma sequencial, permitindo ao aluno conhecer o funcionamento dos computadores, relacionando os conheci- mentos adquiridos nas unidades estudadas, visando identicar suas diversas aplicaes em automao industrial. Cada aula de estudo apresenta uma introduo, objetivos e um roteiro de estudo, composto por textos, guras, exemplos, equaes, links, mdias inte- gradas, questionamentos, reexes, lembretes, atividades de aprendizagem e sntese. As atividades de aprendizagem, dispostas quase ao nal da aula, visam a reforar o entendimento dos conceitos, bem como as aplicaes do assunto estudado ao cotidiano. O resumo serve como reforo ao contedo apresentado na aula e auxilia o estudante na passagem de uma aula para a outra. Devido ao fato da Tecnologia da Informtica estar em constante mutao e evoluo, sero disponibilizadas no AVEA atividades de aprendi- zagem adicionais. Os questionamentos presentes no material didtico, bem como as atividades de aprendizagem sero objetos de discusso em fruns especcos no AVEA. No AVEA sero utilizados recursos como hipertextos, animaes, simula- es, vdeos e imagens, vinculando o ambiente virtual ao material didtico. Tambm disponibilizados cronogramas de estudo, atividades de aprendiza- gem e atividades de avaliao para cada aula, contendo instrues, perodos e prazos. As atividades de aprendizagem e de avaliao sero desenvolvidas atravs da participao em fruns e chats, bem como pela realizao de tarefas, exerccios e pesquisas complementares. Essas atividades sero ava- liadas pelo professor e pelos tutores da disciplina, cujos resultados e sugestes sero divulgados aos alunos. Os critrios para a avaliao da disciplina sero disponibilizados no ambiente virtual, contemplando as atividades de aprendizagem e de avaliao no AVEA, atividades prticas presenciais e avaliao presencial. O cronograma de aulas prticas presenciais, bem como pr-requisitos, tarefas, procedimentos e instrues de segurana nos laboratrios prticos, sero disponibilizados no AVEA. e-Tec Brasil 12 Palavra do professor-autor e-Tec Brasil 13 Disciplina: Tecnologia da Informtica (carga horria: 30h). Ementa: Sistemas e cdigos numricos e aritmtica binria. A arquitetura de um computador. Traduo de programas. Entradas e sadas.
AULA OBJETIVOS DE APRENDIZAGEM MATERIAIS CARGA HORRIA (horas) 1. Sistemas, cdigos numricos e aritmtica binria Reconhecer, atravs do histrico da eletricidade, a importncia dos sistemas numricos na evoluo da humanidade. Compreender os elementos bsicos da base decimal: bit e byte. Conhecer a aritmtica binria e a representao dos resultados. Ambiente virtual: plataforma moodle. Apostila didtica. Recursos de apoio: links de leitura complementar indicados na apostila. 06 2. A arquitetura de um computador Compreender o funcionamento bsico da arquitetura de Von Neumann. Relacionar as diferentes partes constitutivas de um computador que obedece ao modelo de Von Neumann. Ambiente virtual: plataforma moodle. Apostila didtica. Recursos de apoio: links de leitura complementar indicados na apostila. 06 3. Traduo de programas Entender por que programas em linguagem de alto nvel devem ser traduzidos para linguagem de mquina. Compreender como se d a interpretao e compilao de programas. Conhecer emuladores e mquinas virtuais e compreender sua importncia. Ambiente virtual: plataforma moodle. Apostila didtica. Recursos de apoio: links de leitura complementar indicados na apostila. 06 4. Entradas e sadas Entender de que forma nossos comandos ingressam no computador. Compreender como podemos ter acesso aos resultados do processamento das informaes pelo computador. Diferenciar as diversas formas de comunicao de e para o computador, bem como a maneira como se d o armazenamento de informaes em um computador. Ambiente virtual: plataforma moodle. Apostila didtica. Recursos de apoio: links de leitura complementar indicados na apostila. 06 Projeto instrucional e-Tec Brasil Aula 1 Sistemas, cdigos numricos e aritmtica binria H tantas auroras que no brilharam ainda. Rig-Veda Objetivos Reconhecer, atravs do histrico da eletricidade, a importncia dos sistemas numricos na evoluo da humanidade. Compreender os elementos bsicos da base decimal: bit e byte. Conhecer a aritmtica binria e a representao dos resultados. 1.1 Histrico Alm de transmitidas e recebidas, as informaes podem ser armazenadas e depois reproduzidas em livros, em discos, em fotograas e na memria humana. Dessa forma, uma informao original pode ser transmitida muitas vezes e pelos mais diversos meios. O processamento da informao relaciona-se com o armazenamento, a transmisso, a combinao e a comparao da informao. De certa forma, cada ser vivo tambm um computador. Nesse caso, os sentidos so meios de receber sinais do meio ambiente. Essas impresses sensoriais so transmitidas por uma rede nervosa ao crebro atravs de sinais eltricos e qumicos. Os sons emitidos pelos seres vivos so tambm meios de transmitir informaes a outros seres; so mensagens que exprimem von- tades, impresses, ordens, etc. O crebro humano possui dois hemisfrios, sendo que o comportamento do hemisfrio direito assemelha-se ao funcionamento de um processador paralelo, e o comportamento do hemisfrio esquerdo assemelha-se ao fun- cionamento de um processador serial. A evoluo do ser humano permitiu que, com o aumento do poder com- putacional de seu crebro e demais rgos, fosse possvel criar e utilizar O termo multimdia vem da palavra inglesa multimedia e representa os diversos meios pelos quais as informaes so transmitidas e compartilhadas (multimeios). Saiba mais em: http://www.ted.com/index. php/talks/jill_bolte_taylor_s_ powerful_stroke_of_insight.html e-Tec Brasil 15 Aula 1 - Sistemas, cdigos numricos e aritmtica binria LINGUAGENS. Depois das palavras, vieram regras para combin-las: as leis da GRAMTICA e da LGICA. Aps isso, surgiram os nmeros, que servem para expressar quantidades. Os nmeros podem ser representados com os dedos (dedo = dgito). Possivelmente, vem da o sistema numrico o deci- mal (dez dedos) universalmente aceito pelo Sistema Internacional de Uni- dades, ao qual estamos todos acostumados. 1.2 Sistemas de numerao Os sistemas de numerao tm por objetivo estabelecer smbolos e conven- es para representar quantidades, de forma a registrar a informao quan- titativa e poder process-la. A representao de quantidades faz-se com os nmeros. No estudo da Tecnologia da Informtica, de grande importncia o conhe- cimento de alguns sistemas de numerao e cdigos numricos. O sistema decimal utilizado por ns no dia a dia e , sem dvida, o mais importante sistema numrico. Trata-se de um sistema que possui dez alga- rismos, com os quais podemos formar qualquer nmero atravs da lei geral de formao de nmeros. Os demais sistemas a serem estudados tambm so importantes, j que os sistemas digitais no trabalham com nmeros decimais, e sim com nmeros binrios. Isto ocorre porque os dispositivos eletrnicos presentes nos circuitos digitais e nos computadores so projetados para operao em dois estados (operao binria). Os sistemas de numerao so denidos pela base que eles utilizam, isto , o nmero de dgitos que o sistema utiliza. Em qualquer um dos sistemas de numerao, um nmero uma cadeia de dgitos, dentro da qual cada posio tem um determinado peso dentro dessa cadeia. O valor do nmero o valor da soma dos produtos dos dgitos pelo seu respectivo peso. Por exemplo, o nmero decimal 765 pode ser representado da seguinte forma, representado como na ilustrao a seguir: O homem utilizou diversos sistemas numricos antes de adotar o sistema decimal. Resqucios de bases numricas ancestrais persistem at hoje, como a base 60, utilizada na contagem do tempo e na trigonometria. Veremos mais adiante os porqus da escolha do sistema binrio por parte dos projetistas de computadores. e-Tec Brasil Tecnologia da Informtica 16 Nesse exemplo, nota-se que o algarismo menos signicativo (5) multiplica a unidade (1 ou 10 0 ), o segundo algarismo (6) multiplica a dezena (10 ou 10 1 ), e o mais signicativo (7) multiplica a centena (100 ou 10 2 ). A soma dos resul- tados ir representar o nmero. Portanto, pode-se armar que, de maneira geral, a regra bsica de formao de um nmero consiste no somatrio de cada algarismo correspondente multiplicado pela base (no exemplo, o n- mero 10) elevada por um ndice, conforme o posicionamento do algarismo no nmero. Assim, um sistema de numerao genrico pode ser expresso da seguinte forma: A BASE de um sistema de numerao igual ao nmero de dgitos que o sistema utiliza. O NOME DO SISTEMA dene o nmero de dgitos do sistema. Portanto, o SISTEMA DECIMAL, como o prprio nome diz, utiliza 10 DGITOS (0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e possui BASE 10. 1.1.1 Sistema binrio No sistema binrio, os dgitos podem assumir somente dois valores possveis que so: 0 e 1. A base desse sistema 2. A vantagem do sistema binrio reside no fato de que, possuindo apenas dois dgitos, esses so fa- cilmente representados por uma chave aberta e uma chave fechada, ou um rel ativado e um rel desativado, ou um transistor saturado e um transistor cortado, o que torna simples a implementao de sistemas digitais mecni- cos, eletromecnicos ou eletrnicos. a) Converso binrio decimal A converso de binrio para decimal feita diretamente, somando-se os pro- dutos dos dgitos (0 e 1) pelo seu respectivo peso. O valor resultante for- nece o nmero na base 10 ou no sistema decimal. Veja os exemplos a seguir: Em sistemas eletrnicos, o dgito binrio (0 ou 1) chamado de BIT, enquanto que um conjunto de 4 bits denominado NIBBLE. O BYTE, termo bastante utilizado principalmente na rea de informtica, constitudo de 8 bits. e-Tec Brasil Aula 1 - Sistemas, cdigos numricos e aritmtica binria 17 b) Converso decimal binrio A forma como se converte um nmero decimal para binrio diferente para nmeros inteiros e nmeros fracionrios. Para converter um nmero decimal inteiro em binrio, aplica-se o mtodo das divises sucessivas. Esse mtodo consiste em efetuar sucessivas divises pela base a ser convertida at o ltimo quociente possvel. O nmero trans- formado ser composto por este ltimo quociente (algarismo mais signica- tivo) e todos os restos, na ordem inversa s divises. Dessa forma, o sentido de leitura dos restos do ltimo obtido para o primeiro. Veja ilustrao a seguir. Para obter o cdigo binrio de um nmero fracionrio (decimal), multiplica-se por 2 o nmero aps a vrgula. Separa-se a parte inteira do resultado ob- tido e multiplica-se a parte fracionria por 2 novamente. Prossegue-se o processo at que se atinja uma aproximao desejada ou at que a parte fracionria se torna nula. A sequncia de 0 e 1 obtidas pelas partes e-Tec Brasil Tecnologia da Informtica 18 inteiras, comeando pelo primeiro inteiro obtido, ser a representao do nmero decimal fracionrio no sistema binrio. Veja o exemplo a seguir: Se tivermos um nmero decimal, como, por exemplo, (56,625) 10 , deve-se converter separadamente a parte inteira e a parte fracionria nos seus nmeros binrios equivalentes e, depois, agrupar os nmeros obtidos. 1.1.2 Sistema octal O sistema octal possui 8 dgitos e utiliza a base 8. Os dgitos so idnti- cos aos dgitos do sistema decimal de 0 at 7. Esse sistema pouco utilizado no campo da Eletrnica Digital. Trata-se apenas de um sistema numrico intermedirio entre os sistemas binrio e hexadecimal. a) Converso octal binrio Para se converter um nmero octal em seu equivalente binrio, cada dgito octal deve ser convertido no seu equivalente binrio de trs dgitos, confor- me ilustrado a seguir. b) Converso binrio octal A converso de binrio em octal o processo inverso ao apresentado no caso anterior, isto , converte-se cada grupo de 3 dgitos binrios pelo seu equivalente octal. Deve-se tomar cuidado para iniciar a converso dos grupos de 3 dgitos binrios sempre a partir do dgito menos signicativo, conforme ilustrado a seguir. e-Tec Brasil Aula 1 - Sistemas, cdigos numricos e aritmtica binria 19 c) Converso octal decimal A converso octal em decimal feita diretamente, somando-se os produtos dos dgitos octais com o peso do dgito dentro da cadeia de numerao, con- forme ilustrado a seguir. d) Converso decimal octal A converso de um nmero decimal (inteiro ou fracionrio) em seu equiva- lente octal (inteiro ou fracionrio) feita de forma idntica converso de decimal para binrio, ou seja, atravs do mtodo das divises sucessivas, conforme ilustrado a seguir. 1.1.3 Sistema hexadecimal Os nmeros hexadecimais so amplamente utilizados para a representao de nmeros e de dados binrios na operao com micro-processadores e tambm no mapeamento de memrias em sistemas digitais. Trata-se de um sistema numrico muito importante, aplicado em projetos de software e hardware. software a parte lgica, ou seja, o conjunto de instrues e dados processado pelos circuitos eletrnicos do hardware. Toda interao dos usurios de computadores modernos realizada atravs do software, que a camada, colocada sobre o hardware, que trans-forma o computador em algo til para o ser humano. hardware a parte fsica do computador, ou seja, o conjunto de componentes eletrnicos, circuitos integrados e placas, que se comunicam atravs de barramentos. e-Tec Brasil Tecnologia da Informtica 20 Os algarismos deste sistema so enumerados da seguinte forma: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Nota-se que a letra A representa o algarismo A, que por sua vez representa a quantidade dez. O mesmo ocorre para a letra B, que representa o algarismo B e a quantidade onze, sucedendo assim at o algarismo F, que representa a quantidade quinze. a) Converso hexadecimal binrio Para converter um nmero hexadecimal em seu equivalente binrio cada dgito hexadecimal deve ser convertido no seu equivalente binrio de quatro dgitos, conforme ilustrado a seguir. b) Converso binrio hexadecimal A converso de binrio em hexadecimal o processo inverso ao apresenta- do no caso anterior, isto , converte-se cada grupo de 4 dgitos binrios em seu equivalente hexadecimal. Da mesma forma que na converso de binrio para octal deve-se tomar cuidado para iniciar a converso sempre a partir do dgito menos signicativo. Veja o exemplo a seguir: c) Converso hexadecimal decimal A converso hexadecimal para decimal feita diretamente, aplicando a denio do sistema de numerao genrico na base 16, somando-se os produtos dos dgitos hexadecimais ao peso do dgito, de acordo com sua base, conforme ilustrado a seguir. e-Tec Brasil Aula 1 - Sistemas, cdigos numricos e aritmtica binria 21 d) Converso decimal hexadecimal A converso de um nmero decimal (inteiro ou fracionrio) em seu equiva- lente hexadecimal (inteiro ou fracionrio) feita de forma idntica converso de decimal para binrio, conforme ilustrado a seguir. 1.1.4 Cdigo BCD ou 8421 O cdigo BCD ou 8421 signica dgitos decimais codicados em binrios. Isto quer dizer que, nesse cdigo, cada dgito decimal substitudo direta- mente pelo seu equivalente binrio de quatro dgitos. Os nmeros BCD so teis sempre que a informao decimal transfe- rida para dentro ou para fora de um sistema digital. Os circuitos no interior de uma calculadora, por exemplo, podem processar nmeros BCD, j que introduzimos nmeros decimais no teclado e vemos como resposta um nmero decimal. J em computadores, os nmeros BCD tm valor e aplicao limitados, uma vez que os computadores operam com dgitos alfanumricos. Deve-se ressaltar que as seis ltimas combinaes de nmeros binrios de quatro bits no so utilizadas no cdigo BCD, conforme ilustrao a seguir. Relgios binrios em cdigo BCD, veja em: http://www.glassgiant.com/ geek/binaryclock/binary_clock_ ash.swf e-Tec Brasil Tecnologia da Informtica 22 preciso estar atento para no confundir um nmero BCD com um nmero binrio. O exemplo abaixo ilustra a diferenciao. Resumo Nessa aula, estudamos os sistemas de numerao mais utilizados em infor- mtica, bem como a converso de um sistema em outro. Sabemos que os computadores trabalham com nmeros de uma forma diversa da que ns trabalhamos: ns, seres humanos, utilizamos o sistema decimal, ou seja, o sistema numrico de base dez, enquanto que os computadores, por suas caractersticas constitutivas, trabalham com o sistema binrio, ou seja, com base 2. No entanto, os computadores no processam somente nmeros, mas tambm outros tipos de informao. E esse ser o tema das prximas aulas. A seguir, mostrada uma tabela com as equivalncias entre os siste- mas numricos estudados (Tabela 1.1). e-Tec Brasil Aula 1 - Sistemas, cdigos numricos e aritmtica binria 23 Tabela 1.1: Equivalncias entre os sistemas de numerao estudados decimal hexadecimal binrio octal 0 0 0000 00 1 1 0001 01 2 2 0010 02 3 3 0011 03 4 4 0100 04 5 5 0101 05 6 6 0110 06 7 7 0111 07 8 8 1000 10 9 9 1001 11 10 A 1010 12 11 B 1011 13 12 C 1100 14 13 D 1101 15 14 E 1110 16 15 F 1111 17 Atividades de aprendizagem a) 010101 2 = b) 1010101 2 = c) 11011011 2 = d) 000100010001 2 = e) 10 8 = f) 666 8 = g) 1500 8 = h) 2007 8 = 1. Converta para o sistema decimal os seguintes nmeros: e-Tec Brasil Tecnologia da Informtica 24 i) EAD 16 = j) FACA 16 = 2. Por que o nmero 2008 no pode ser octal? A quais das bases, dentre as estudadas, ele poderia pertencer? 3. Quantos bits existem em 4 bytes? 4. Quantos bits so necessrios para representar o nmero EAD 16 ? Explore as funcionalidades de sua calculadora cientca. A maioria das calculadoras cientcas realiza as operaes estudadas nesta aula. e-Tec Brasil Aula 1 - Sistemas, cdigos numricos e aritmtica binria 25 e-Tec Brasil Aula 2 A arquitetura de um computador Hardware aquilo que voc chuta, Software aquilo que voc xinga. Ditado popular Objetivos Compreender o funcionamento bsico da arquitetura de Von Neumann. Relacionar as diferentes partes constitutivas de um computador que obedece ao modelo de Von Neumann. 2.1 Modelo de Von Neumann Von Neumann props construir computadores que: 1. codicassem instrues que pudessem ser armazenadas na memria e sugeriu que se usassem cadeias de uns e zeros (binrio) para codic-los; 2. armazenassem na memria as instrues e todas as informaes neces- srias para a execuo da tarefa desejada; 3. ao processarem o programa, as instrues fossem buscadas diretamente na memria. Dessa forma, um computador tpico possui trs componentes bsicos, con- forme Quadro 2.1: Quadro 2.1: Componentes bsicos de um computador Unidade Central de Processamento (UCP ou CPU, como mais conhecida); Memria Principal; Sistema de Entrada e Sada. A CPU exerce o controle do computador; responsvel pela busca das instrues (as quais esto em sequncia), pela sua decodicao (ou interpretao) e exe- cuo. A busca e a decodicao das instrues so realizadas pela Unidade de Controle, enquanto que a execuo ca ao encargo da Unidade Operativa. Saiba mais sobre Von Neumann em: http://pt.wikipedia.org/wiki/ John_von_neumann e-Tec Brasil 27 Aula 2 - A arquitetura de um computador A unidade operativa, por sua vez, composta pela Unidade Lgica e Arit- mtica e por um conjunto de Registradores de uso genrico. A Memria Principal armazena as instrues e os dados a serem processados pela CPU. Por m, o Sistema de Entrada e Sada E/S (I/O Input/Output system, em ingls) tem como funo conectar o computador ao meio externo, a m de torn-lo verdadeiramente til ao ser humano. Observe a Figura 2.1 a seguir. Figura 2.1: Diagrama de blocos de um computador com arquitetura convencional Fonte: CTISM O sistema de entrada e sada composto por um meio fsico de conexo, chamado barramento (bus), e um conjunto de dispositivos de entrada e sada, chamados perifricos. Os perifricos, geralmente so sistemas mistos, do tipo eletromecnico, que permitem ao usurio entrar com os dados ou, ainda, obter ou visualizar os resultados. Podemos citar alguns exemplos de perifricos: teclado, vdeo, impressora, mouse, unidades de disco exvel e memrias ash, unidades de disco rgido (winchester), modem, placa de som, scanner, pen drives e cartes de memria. Alguns perifricos permitem somente a entrada de dados (teclado), outros s permitem a sada (vdeo e perifricos So aparelhos ou placas que enviam ou recebem informaes do computador. Em informtica, o termo perifrico aplica-se a qualquer equipamento acessrio que seja ligado CPU (unidade central de processamento), ou, um sentido mais amplo, o computador. e-Tec Brasil Tecnologia da Informtica 28 impressora) e outros, ainda, permitem tanto a entrada como a sada (unida- des de discos magnticos e pen drives). Associado a cada perifrico existente num computador, h um circuito especco de controle de interface de E/S (I/O interface processor), cuja funo adaptar os sinais gerados pelo perifrico conforme as necessidades do computador. Veja a Figura 2.2 a seguir. Figura 2.2: Subunidades da unidade central de processamento (CPU) Fonte: CTISM O diagrama de blocos da Figura 2.1 representa o modelo convencional de um computador, tambm conhecido como modelo (ou arquitetura) de Von Neumann, por ser descendente direto do computador desenvolvido em 1946 por Von Neumann e sua equipe. A maior parte dos computadores ainda hoje (2009) apresenta traos dessa arquitetura. Suas principais caractersticas so: Quadro 2.2: Caractersticas dos computadores possuem uma unidade de processamento central, para a execuo de operaes lgicas e aritmticas; possuem uma unidade de controle de programa, a qual determina o sequenciamento das instrues a serem executadas por meio de sinais de controle; as instrues dos programas so armazenadas de maneira sequencial, facilitando sua busca; possuem registradores dedicados ao armazenamento dos operandos e dos resultados das operaes; tm unidade de armazenamento central, na qual so guardados programas e dados de forma compartilhada; possuem um nico barramento do sistema, o qual deve ser usado de forma compartilhada para a transferncia de dados e instrues entre os diversos blocos. 2.2 Tipos de instrues As funes possveis de serem executadas pela CPU esto denidas no seu con- junto de instrues. Um computador tpico possui entre 50 e 200 instrues distintas, que podem ser divididas em trs grupos, conforme sua natureza: e-Tec Brasil Aula 2 - A arquitetura de um computador 29 Instrues de transferncia de dados; Instrues de processamento de dados; Instrues de controle. As instrues de transferncia de dados apenas movem as informaes, sem alterar seu contedo. As transferncias podem ocorrer dentro da CPU, entre a CPU e a memria principal, entre algum perifrico e a CPU, ou entre algum perifrico e a memria principal. As instrues de processamento de dados transformam as informaes, utilizando para isso os recursos de hardware disponveis na unidade operativa da CPU. Neste grupo, encon- tram-se as instrues aritmticas, tais como adio, subtrao e multipli- cao, e as instrues lgicas, tais como adio lgica (ou), multiplicao lgica (e), complementao (no ou) e ou-exclusivo. As instrues de con- trole determinam a sequncia segundo a qual as instrues so executadas, permitindo que o controle seja transferido de uma parte do programa para outra, ou entre diferentes subprogramas. Exemplos de instrues desse tipo so jump (salto), chamadas de sub-rotina e retorno de sub-rotina. A unidade de controle responsvel por controlar o endereo da memria principal no qual esto armazenadas as instrues. Para tanto, existe um re- gistrador especial, denominado contador de programa (program counter PC), cuja funo armazenar o endereo no qual est armazenada a ins- truo que est sendo executada. Como normalmente as instrues so ar- mazenadas e carregadas em sequncia, a operao mais comum realizada sobre o contedo do PC a soma um (incremento). Existem ainda outros registradores que facilitam o acesso s instrues e aos dados. Por exemplo, uma regio contnua da memria, denominada pilha (stack), utilizada na transferncia do controle do sistema (computador) entre subprogramas. O apontador de pilha (stack pointer SP) um regis- trador usado no controle da posio de memria para colocar/retirar dados do topo da pilha. 2.3 Memrias 2.3.1 Tecnologias As primeiras tecnologias utilizadas em memrias foram as memrias de ncleos magnticos (ferrite). As memrias modernas so compostas por cir- ferrite um material ferromagntico, composto de ferro, boro, brio, estrncio ou molibdnio. O Ferrite tem alta permeabilidade magntica, porm no retm magnetismo. As instrues lgicas, ou portas lgicas, so operaes matemticas baseadas na lgebra de Booble. Portas lgicas assunto para a prxima etapa do curso de Automao Industrial. Para familiarizar-se ao assunto, acesse o link: http://www.users.rdc.puc-rio.br/ rmano/ptlog.html e-Tec Brasil Tecnologia da Informtica 30 cuitos semicondutores, com novas tecnologias sendo criadas a cada ano, permitindo que grandes quantidades de clulas de memria sejam encapsu- ladas em pequenas pastilhas. 2.3.2 Hierarquia de memria A Memria Principal (MP) no o nico dispositivo de armazenamento de um computador. Em funo de caractersticas como tempo de acesso, capacidade de armazenamento, custo, etc., h uma hierarquia de dispositivos de mem- ria em computadores. Observe a Quadro 2.3 a seguir: Quadro 2.3: Caractersticas dos diversos tipos de memria Tipo Capacidade Velocidade Custo Localizao Volatilidade registrador bytes muito alta muito alto UCP voltil memria cache Kbytes alta alto UCP/placa voltil memria principal Mbytes mdia mdio placa voltil memria auxiliar Gbytes baixa baixo externa no voltil A UCP v nessa ordem e acessa primeiro a memria que est mais prxima. Vericamos no diagrama abaixo (Figura 2.3) que, quanto mais prxima da UCP, maior a velocidade, maior custo, porm, menor capacidade de arma- zenamento. Figura 2.3: Hierarquia da memria de 5 nveis Fonte: CTISM e-Tec Brasil Aula 2 - A arquitetura de um computador 31 a) Registradores Registradores so dispositivos de armazenamento temporrio, localizados na UCP, extremamente rpidos, com capacidade para apenas um dado (uma palavra). Devido a sua tecnologia de construo e por estar localizado na prpria pastilha (chip) da UCP, so muito caros. O conceito de registrador surgiu da necessidade de a UCP armazenar tem- porariamente dados intermedirios durante um processamento. Isso ocorre, por exemplo, quando um dado resultado de operao precisa ser armazena- do at que o resultado de uma busca da memria esteja disponvel para com ele realizar uma nova operao. Registradores so VOLTEIS, isto , dependem de estar energizados para manter armazenado seu contedo. b) Memria cache Com o desenvolvimento da tecnologia de construo da UCP, as velocidades foram cando muito mais altas que as das memrias, as quais no tiveram a mesma evoluo de velocidade. Pelas mais variadas razes, o aperfeioa- mento das memrias foi maior no fator capacidade. Dessa forma, os tempos de acesso s memrias foram cando insatisfatrios e a UCP, ao buscar um dado na memria, precisa car esperando muitos ciclos de mquina at que a memria retorne o dado buscado (wait states), congurando um garga- lo (bottleneck) ao desempenho do sistema. Por esse motivo, desenvolveram-se outras arquiteturas de memria privile- giando a velocidade de acesso. A arquitetura da memria cache muito diferente da arquitetura da memria principal, e o acesso a ela , muitas vezes, mais rpido. No entanto, o custo de fabricao da memria cache muito maior que o da memria principal. Dessa forma, no economica- mente vivel construir um computador somente com tecnologia de memria cache. Criou-se, ento, um artifcio, incorporando-se ao computador uma pequena poro de memria cache, localizada entre a UCP e a MP (memria principal), que funciona como um espelho de parte da MP. Desenvolveram-se, ainda, algoritmos que fazem com que, a cada momento, a memria cache armazene a poro de cdigo ou dados (por exemplo, uma sub-rotina) que esto sendo usados pela UCP. Essa transferncia (MP <--> Cache) feita pelo hardware: ela independe do software, que ignora se existe ou no memria cache, portanto ignora essa transferncia; nem chip um dispositivo microeletrnico que consiste de muitos transistores e outros componentes interligados, capazes de desempenhar muitas funes. Suas dimenses so extremamente reduzidas; os componentes so formados em pastilhas de material semicondutor de silcio. A importncia da integrao est no baixo custo, no alto desempenho e no tamanho reduzido dos circuitos aliado alta conabilidade e estabilidade de funcionamento. cache um termo do ingls que deriva do francs cacher (esconder, em portugus). Na prtica, para os demais componentes do sistema, tudo se passa como se no houvesse cache, j que nenhum deles, exceto o subsistema que controla o acesso memria, toma conhecimento de sua existncia. Os dados nele armazenados so fornecidos como se proviessem diretamente do local de armazenamento original, apenas mais rapidamente. essa a razo do nome, j que as coisas se passam como se os dados estivessem escondidos na cache. e-Tec Brasil Tecnologia da Informtica 32 A memria cache opera em funo de um princpio estatstico comprovado: em geral, os programas tendem a referenciar vrias vezes pequenos trechos de programas, como loops, sub-rotinas, funes e s tem sentido porque programas executados linearmente so raros. Desta forma, algoritmos (chamados algoritmos de cache) podem controlar qual parte do cdigo car copiada na cache a cada momento. o programador nem o sistema operacional tem controle sobre essa movi- mentao. Memrias cache tambm so VOLTEIS, isto , dependem de estar energi- zadas para manter gravado seu contedo. c) Memrias auxiliares Memrias auxiliares resolvem problemas de armazenamento de grandes quantidades de informaes. A capacidade da MP limitada pelo seu custo relativamente alto, enquanto que as memrias auxiliares tm maior capa- cidade e menor custo. Dessa forma, o custo por bit armazenado muito menor. Outra vantagem importante que as memrias auxiliares no so VOLTEIS, isto , no dependem de estar energizadas para manter gravado seu contedo. Os principais dispositivos de memria auxiliar so: discos rgidos (ou HD), drives de disquete, unidades de ta, CD-ROM, DVD, unidades tico-magn- ticas, pendrives e cartes de memria. d) Memria principal Conforme denimos anteriormente, a memria principal a parte do computador em que programas e dados so armazenados para processa- mento. A informao permanece na memria principal apenas enquanto necessrio para seu emprego pela UCP e, aps isso, a rea de MP ocupa- da pela informao liberada para ser, posteriormente, sobregravada por outra informao. Quem controla a utilizao da memria principal o sistema operacional. A memria precisa ter uma organizao que permita ao computador guar- dar e recuperar informaes quando necessrio. Portanto, no basta trans- ferir informaes para a memria. preciso haver uma maneira de encon- trar essa informao mais tarde, quando ela for necessria e, para isso, preciso haver um mecanismo que registre exatamente onde a informao foi armazenada. Sendo assim, a memria principal organizada em clulas. Clula a menor unidade da memria que pode ser endereada (no possvel buscar uma parte da clula) e tem um tamanho xo (para cada mquina). As mem- rias so compostas por um determinado nmero de clulas ou posies. Cada clula composta por um determinado nmero de bits. Todas as clu- Cache de disco no a mesma tecnologia da memria cache. Trata-se do emprego do mesmo conceito da memria cache, para acelerar a transferncia de dados entre disco, MP e UCP, usando um programa (um software, por ex.: SmartDrive) para manter um espelho do contedo de parte do disco (a mais provvel de ser requisitada a seguir pela UCP) gravado em uma parte da Memria Principal. Recentemente, as unidades de disco passaram a incorporar em sua interface chips de memria para acelerar a transferncia de dados, utilizando um algoritmo de cache. e-Tec Brasil Aula 2 - A arquitetura de um computador 33 las de um dado computador tm o mesmo tamanho, isto , todas as clulas daquele computador tero o mesmo nmero de bits. Cada clula identicada por um endereo nico, pelo qual referenciada pelo sistema e pelos programas. As clulas so numeradas sequencialmente, uma a uma, de 0 a (N-1); esse nmero chamado de endereo da clula. Endereo o localizador da clula, que permite identicar, sem sombra de dvida, uma clula. Assim, cada clula pode ser identicada pelo seu endereo. 2.3.3 Classicao das memrias Quanto leitura e escrita, as memrias podem ser classicadas como: R/W Read and Write (memria de leitura e escrita), comumente (e impro- priamente) chamada de RAM (Random Access Memory ou memria de acesso aleatrio), embora no seja a nica RAM. Esta memria permite operaes de escrita e leitura pelo usurio e pelos programas. Seu tempo de acesso independe do endereo acessado. cons- truda com tecnologia de semicondutores (bipolar, CCD), pode ser esttica (SRAM) ou dinmica (DRAM) e voltil. A MP construda com memria R/W. ROM Read Only Memory ou Memria apenas de Leitura Esta memria permite apenas a leitura e, uma vez gravada, no pode mais ser alterada. Tambm de acesso aleatrio (isto , tambm uma RAM), mas no voltil. utilizada geralmente por fabricantes para gravar programas que no devem ser alterados ou apagados acidentalmente (tal como a BIOS Basic Input Output System e microprogra- madores de memrias de controle). A ROM mais lenta que a R/W e barata, porm o processo produtivo depende de ser programada. PROM Programmable Read Only Memory ou Memria apenas de Leitura Programvel Esta memria um ROM programvel (em condies e com mquinas adequadas, chamadas queimadores de PROM) e geralmente comprada virgem (sem nada gravado); muito utilizada no processo de testar programas no lugar da ROM, ou sempre que se queira produzir ROM em quantidades pequenas. Uma vez programada (em fbrica ou no), no pode mais ser alterada. EPROM Erasable Programmable Read Only Memory ou Memria apenas de Leitura, Programvel e Eletronicamente Altervel Tambm chamada EAROM (Electrically Alterable ROM). Esta memria um PROM apagvel para o processo ele- trnico, sob controle da UCP, com equipamento e programas adequados. mais cara e geralmente utilizada em dispo- sitivos aos quais se deseja permitir a alterao, possibilitando a carga de novas verses de programas distncia ou, ento, para possibilitar a reprogramao dinmica de funes especcas de um determinado programa, geralmente relativas ao hardware. Uma clula no signica o mesmo que uma palavra; uma clula no contm necessariamente uma palavra. Palavra a unidade de processamento da UCP. Uma palavra deve representar um dado ou uma instruo, que poderia ser processada, armazenada ou transferida em uma nica operao. No entanto, em geral no assim que acontece e os computadores comerciais no seguem um padro nico para a organizao da UCP e MP. Computadores comerciais (tais como, por exemplo, os baseados nos processadores Intel 486) podem ter o tamanho da palavra denido como de 32 bits, porm sua estrutura de memria tem clulas de 16 bits. e-Tec Brasil Tecnologia da Informtica 34 2.4 Unidade central de processamento A Unidade Central de Processamento UCP (Central Processing Unity CPU) a responsvel pelo processamento e pela execuo dos programas arma- zenados na MP. As funes da UCP compreendem executar as instrues e controlar as operaes no computador. A UCP composta de duas partes: ULA ou UAL Unidade Lgica e Aritmtica tem por funo a efetiva execuo das instrues; UC Unidade de Controle Principal tem por funes a busca, a inter- pretao, o controle de execuo das instrues e o controle dos demais componentes do computador. Veja a Figura 2.4. Figura 2.4: Diagrama esquemtico da UAL Fonte: CTISM A seguir, apresentado o diagrama esquemtico de uma UCP (Figura 2.5). e-Tec Brasil Aula 2 - A arquitetura de um computador 35 Figura 2.5: Diagrama principal da CPU Fonte: CTISM Registradores importantes na UCP: Na UC, CI (Contador de Instrues, PC Program Counter) arma- zenado o endereo da prxima instruo a ser executada. Na UC, RI (Registrador de Instruo, IR Instruction Register) armazenada a instruo a ser executada. Na UAL, ACC (Acumulador, ACC Accumulator) so armazenados os dados (de entrada e resultados) para as operaes na ULA; o acumula- dor um dos principais elementos que denem o tamanho da palavra do computador. O tamanho da palavra igual ao tamanho do acumulador. Os dados so representados, no barramento, na forma de sinais de tenso, sendo que um sinal de tenso de uns poucos volts (high) representa o bit 1, e um sinal prximo de zero volts (low) representa o bit 0. e-Tec Brasil Tecnologia da Informtica 36 2.4.1 Comunicao entre memria principal e UCP a) Barramentos Os diversos componentes dos computadores comunicam-se atravs de bar- ramentos. Um barramento um conjunto de condutores eltricos que inter- ligam os diversos componentes de um computador entre si. Para um dado ser transportado de um componente a outro, preciso emitir os sinais de controle necessrios para o componente-origem colocar o dado no barra- mento e para o componente-destino ler o dado do barramento. Como um dado composto por bits (geralmente um ou mais bytes), o barramento dever ter tantas linhas condutoras quantos forem os bits a serem transpor- tados de cada vez. Assim, se quisermos transferir um byte por exemplo, 01100100 da UCP para a memria principal, os circuitos de controle encarregam-se de colocar o byte 01100100 no barramento, ou seja, colocaro sinais de tenso high nas 3, 6 e 7 linhas do barramento (por conveno, os bits so sempre or- denados da direita para a esquerda) e informaro a memria para ler o dado no barramento. A comunicao entre MP e UCP usa dois registradores da UCP chamados de Registrador de Endereos de Memria REM ou, em ingls, Memory Address Register (MAR), bem como o Registrador de Dados da Memria RDM ou, em ingls, Memory Buffer Register (MBR). Veja a Figura 2.6. Tempo de ciclo (ou ciclo de memria) conceituado como o tempo decorri- do entre dois ciclos sucessivos de acesso memria. As memrias dinmicas perdem seu contedo em alguns instantes e dependem de peridica atu- alizao (ciclo de refresh). No caso das SRAMs (Static RAM ou mem- rias estticas), que no dependem de refresh, o tempo de ciclo igual ao tempo de acesso. As memrias dinmicas, no entanto, requerem ciclos peridicos de refresh, o que faz com que a memria que indisponvel para novas transferncias a intervalos regulares necessrios para os ciclos de refresh. Assim, as memrias DRAM tm ciclo de memria maior que o tempo de acesso. e-Tec Brasil Aula 2 - A arquitetura de um computador 37 Figura 2.6: Esquema de funcionamento da comunicao MP / UCP Fonte: CTISM UCP / MP Barramento de endereos unidirecional (s a UCP envia dados write ou l dados read da MP); Barramento de dados bidirecional; Barramento de controle bidirecional. Registradores REM Registrador de Endereos de Memria (MAR Memory Address Register); RDM Registrador de Dados de Memria (MBR Memory Buffer Register). b) Palavra (unidade de informao) Palavra a unidade de informao do sistema UCP / MP. A conceituao mais usada dene palavra como capacidade de manipulao de bits do ncleo do computador (UCP e MP). Pressupe-se, assim, que todos os elementos do ncleo do computador (o que inclui o tamanho da UAL e do acumulador e registradores gerais da UCP e o barramento de dados) tenham a mesma largura (processem simultaneamente o mesmo nmero de bits), o que nem sempre acontece. Muitas vezes, encontram-se computadores em que o tamanho da UAL e do acumulador (e registradores gerais) no corresponde e-Tec Brasil Tecnologia da Informtica 38 ao tamanho dos barramentos. Dessa forma, encontram-se especicaes de computadores de 64 bits, mesmo quando seu barramento de dados de 32 bits, nesse caso, referindo-se exclusivamente capacidade de manipula- o da UCP de 64 bits (isto , sua UAL e seu acumulador tm 64 bits). Essa conceituao imprecisa, s vezes, enganosa e pode levar a erros de avalia- o da capacidade de processamento de um computador. Portanto, deve-se analisar caso a caso, porque a simples meno ao tamanho da palavra no uma terminologia que permite denir, de forma conclusiva, a arquitetura do computador. 2.4.2 Tempo de acesso Tempo de acesso (ou tempo de acesso para leitura) o tempo decorrido entre uma requisio de leitura de uma posio de memria e o instante em que a informao requerida est disponvel para utilizao pela UCP. Ou seja, o tempo que a memria consome para colocar o contedo de uma clula no barramento de dados. O tempo de acesso de uma memria depende da tecnologia da memria. O tempo de acesso de qualquer memria tipo RAM (Random Access Memory ou memria de acesso aleatrio) independente do endereo a ser acessado (a posio de memria a ser escrita ou lida), isto , o tempo de acesso o mesmo, qualquer que seja o endereo acessado. 2.4.3 Funcionamento A MP pode ser acessada atravs de duas operaes: Ler ou Escrever. Ler da memria signica requisitar MP o contedo de uma determinada clula (recuperar uma informao). Essa operao de recuperao da informao armazenada na MP consiste na transferncia de um conjunto de bits (cpia) da MP para a UCP e no destrutiva, isto , o contedo da clula no alterado. Seu sentido da MP para a UCP. Passos executados pelo hardware: A UCP armazena no REM o endereo onde a informao requerida est armazenada; A UCP comanda uma leitura; O contedo da posio identicada pelo endereo contido no REM transferido para o RDM e ca disponvel para a UCP. e-Tec Brasil Aula 2 - A arquitetura de um computador 39 Escrever na memria signica escrever uma informao em uma clula da MP (armazenar uma informao). Essa operao de armazenamento da in- formao na MP consiste na transferncia de um conjunto de bits da UCP para a MP e destrutiva (isso signica que qualquer informao que estiver gravada naquela clula ser sobregravada). Seu sentido da UCP para a MP. 2.4.4 Lgica temporizada Conforme vimos ao analisar a comunicao entre UCP e memria, as instru- es, os dados e os endereos trafegam no computador atravs dos barra- mentos (de dados, de endereos e de controle), sob a forma de bits represen- tados por sinais eltricos: uma tenso positiva alta (high geralmente entre 2,2V e 5V, dependendo do processador) signicando 1, e uma tenso baixa (low prxima de zero) signicando 0. Mas, os dados no computador no cam estticos; pelo contrrio, a cada ciclo (cada estado) dos circuitos, os sinais variam de forma a representar novas instrues, dados e endereos. Ou seja, os sinais cam estticos apenas por um curto espao de tempo, ne- cessrio e suciente para os circuitos poderem detectar os sinais presentes no barramento, naquele instante e reagir de forma apropriada. Assim, periodi- camente, uma nova congurao de bits colocada nos circuitos e tudo isso s faz sentido se pudermos, de alguma forma, organizar e sincronizar essas variaes, de modo que, num dado instante, os diversos circuitos do compu- tador possam congelar uma congurao de bits e process-las. Para isso, preciso que exista outro elemento que fornea uma base de tempo para que os circuitos e os sinais se sincronizem. Este circuito chamado clock o rel- gio interno do computador. Cada um dos diferentes estados que os circuitos assumem, limitados pelo sinal do clock, chamado ciclo de operao. A Unidade de Controle da UCP envia a todos os componentes do computador um sinal eltrico regular o pulso de clock que, por sua vez, fornece uma referncia de tempo para todas as atividades e permite o sincronismo das operaes internas. O clock um pulso alternado de sinais de tenso, gerado pelo circuito de relgio, composto de um cristal oscilador e circuitos auxiliares. Cada um dos intervalos regulares de tempo denidos pelo clock delimitado pelo incio da descida do sinal, equivalendo um ciclo excurso do sinal por um low e um high do pulso. O tempo do ciclo equivale ao perodo da oscilao. Sabemos que perodo o inverso da frequncia. Ou seja: P = 1 / f clock a frequncia de trabalho do processador, indica quantas operaes por segundo sero executadas pelo processador. e-Tec Brasil Tecnologia da Informtica 40 A frequncia f do clock medida em Hertz. Inversamente, a durao de cada ciclo chamada de perodo. Por exemplo, se f = 10 Hz, temos que P = 1/10 = 0,1 s (Figura 2.7). Figura 2.7: Diagrama temporal Fonte: CTISM Um MHz (1 megahertz) equivale a um milho de ciclos por segundo. Sendo a frequncia de um processador medida em megahertz ou em gigahertz, o perodo ser, ento, medido em nanossegundos, como vemos no exemplo na Quadro 2.4: Quadro 2.4: Medidas f = 10 MHz = 10 x 10 6 Hz P = 1/10.10 6 = 100 ns (100 nanosegundos) f = 1 GHz = 1 x 10 9 Hz P = 1/10 9 = 1 ns (1 picosegundo) Sempre que se fala sobre mquinas velozes, citam-se nmeros em gigahertz. Para um melhor entendimento sobre o que ocorre na mquina, em vez de falar sobre a frequncia do clock, seria mais ilustrativo discutir outra grande- za: o perodo, que pode ser denido como o tempo de durao de cada ciclo ou simplesmente tempo de ciclo. Quando se diz que um processador de 2 GHz, est se denindo a frequn- cia de operao de seu processador (seu clock), signicando que o processa- dor pode alternar seus estados internos 2 bilhes de vezes por segundo. Isto acarreta que cada ciclo (equivalente a um estado lgico) de operao dura 1 / 2.000.000.000 s = 0,5 x 10 -9 s, ou seja, 0,5 picosegundo. Os primeiros computadores tinham um nico sinal de clock geral, vlido para UCP, memria, barramentos de E/S (entrada /sada), etc. Na medida em Se tivermos dois processadores operando em um mesmo clock, poderemos ter desempenhos completamente diferentes, visto que o desempenho do processador deve ser analisado por um conjunto de caractersticas da arquitetura, do qual a frequncia do clock apenas um deles e no o mais importante. e-Tec Brasil Aula 2 - A arquitetura de um computador 41 que a tecnologia foi se aperfeioando, a frequncia de clock de operao dos processadores (e, em menor escala, tambm a das memrias) aumentou em uma escala muito maior que a dos demais componentes. Dessa forma, foi necessrio criar diferentes pulsos de clock para acomodar as frequncias de operao dos diferentes componentes. A placa-me de um PC utiliza uma frequncia-mestra para seu barramento (ciclo de barramento), a qual multiplicada ou dividida para ser utilizada pelos demais componentes. Por exemplo, o processador tem essa frequncia multiplicada por 2 a 4, e as cache secundrias (ciclos entre 10 e 20 ns) usam a prpria frequncia da placa-me. As memrias cache primrias, por sua vez, so hoje construdas como parte do processador e usam o mesmo clock do processador. O efeito prtico do aumento da frequncia de operao que a preciso de fabricao dos circuitos tambm precisa ser maior. O tamanho de cada juno de transistor ca menor. Uma juno menor requer menos potncia para sua operao, menos eltrons para operar uma transio de estados, menor tempo de propagao do sinal e, consequentemente, menor potn- cia dissipada. 2.5 Instrues Para que um programa possa ser executado por um computador, ele precisa ser constitudo por uma srie de instrues de mquina e estar armazenado em clulas sucessivas na memria principal. A UCP responsvel pela execuo das instrues que esto na memria. Quem executa um programa o hardware e o que ele espera encontrar um programa em linguagem de mquina, ou seja, uma sequncia de instru- es de mquina em cdigo binrio. A linguagem de mquina composta por cdigos binrios, representando instrues, endereos e dados, e est totalmente vinculada ao conjunto (set) de instrues da mquina. Um ser humano usa seu conhecimento e inteligncia para traduzir uma tare- fa complexa (tal como, por exemplo, a tarefa de buscar uma pasta num ar- quivo) numa srie de passos elementares (identicar o mvel e a gaveta em que est a pasta, andar at o mvel, abrir a gaveta, encontrar a pasta, retirar a pasta e fechar a gaveta). Para o computador, uma instruo precisa ser de- talhada, dividida em pequenas etapas de operaes, que so dependentes do conjunto de instrues do computador e individualmente executveis. e-Tec Brasil Tecnologia da Informtica 42 Fazendo um paralelo com linguagens de alto nvel, o programa elabora- do pelo programador (o cdigo-fonte composto de instrues complexas) precisa ser traduzido em pequenas operaes elementares (primitivas), executveis pelo hardware. Cada uma das instrues tem um cdigo binrio associado, que o cdigo da operao. 2.5.1 Formato geral de uma instruo O formato geral de uma instruo segue o denido a seguir: a) Cdigo de operao ou OPCODE o campo da instruo cujo valor binrio identica a operao a ser realizada pelo processador. Cada ins- truo dever ter um cdigo nico que a identique. b) Operando(s) (so) o(s) campo(s) da instruo cujo valor binrio si- naliza a localizao do dado (ou o prprio dado) que ser manipulado (processado) pela instruo durante a operao. Em geral, um operando identica o endereo de memria em que est contido o dado que ser manipulado, ou pode conter o endereo no qual o resultado da operao ser armazenado. Finalmente, um operando pode tambm indicar um registrador, que conter o dado propriamente dito ou um endereo de memria em que est armazenado o dado. Os operandos fornecem os dados da instruo. Por exemplo, uma instruo tpica de um programa em linguagem assembly de um microcontrolador PIC de 8 bits : Sendo movwf o cdigo da operao, que consiste num mnemnico e representa mover o contedo do acumulador w para o endereo f, e 0x05 o operando que representa o endereo de memria f. Dessa forma, ao nal da execuo dessa linha do programa, o dado que est no acumulador w ser transferido para o endereo 0x05 na memria. Os mnemnicos possibilitam escrever cdigo de um modo muito mais intuitivo, e sem perda de preciso. Mnemnica, de acordo com o Dicionrio Aulete Digital, uma tcnica para facilitar a memorizao atravs de exerccios como, por exemplo, a combinao de elementos associveis. e-Tec Brasil Aula 2 - A arquitetura de um computador 43 2.5.2 Conjunto de instrues Quando se projeta um hardware, dene-se o seu conjunto (set) de instru- es, ou seja, o conjunto de instrues elementares que o hardware capaz de executar. O projeto de um processador centrado no seu conjunto (set) de instrues. Funcionalmente, um processador precisa possuir instrues para realizar os comandos: Operaes matemticas sendo: Aritmticas: +, -, x, ; Lgicas: and, or, xor; Relacionais: >, <, =; Operaes de movimentao de dados (memria <--> UCP, reg <--> reg); Operaes de entrada e sada (leitura e escrita em dispositivos de E/S); Operaes de controle (desvio de sequncia de execuo, parada). 2.5.3 Ciclo de instruo As instrues so executadas sequencialmente (a no ser pela ocorrncia de um desvio), uma a uma. O ciclo de instruo indica a sequncia de execuo, isto , ele controla o u- xo de execuo das instrues. A seguir, ilustrado o ciclo de processamento de uma instruo (uxograma). Em alguns computadores (usando uma abordagem que visa reduo de custos), os dados podem ser transportados usando mais de um ciclo de barramento. e-Tec Brasil Tecnologia da Informtica 44 Figura 2.8: Ciclo de instruo Fonte: CTISM 2.6 Estratgias de implementao de processadores As principais estratgias de implementao de processadores que a indstria de semicondutores adota so o RISC e o CISC. O CISC (Complex Instruction Set Computer) a arquitetura utilizada nos pro- cessadores da famlia Pentium e dos Mac de primeira gerao, por exemplo. Essa arquitetura caracteriza-se por possuir um conjunto de instrues maior e mais complexo e apresentar um ciclo de processamento mais lento. O RISC (Reduced Instruction Set Computer), por sua vez, utilizado nos pro- cessadores Power PC e Sparc, e nos microcontroladores PIC de 8 bits. Essa arquitetura consiste em um conjunto de instrues menor e mais simples e possui um ciclo de processamento mais rpido. e-Tec Brasil Aula 2 - A arquitetura de um computador 45 Lembramos que em nosso estudo adotaremos o termo instruo, para as instrues de mquina ou em linguagem Assembly, e comando, para linguagens de alto nvel. Portanto, o projeto de um processador poderia ser resumido em: a) Denir o conjunto de instrues (todas as instrues possveis que o pro- cessador poder executar), ou seja: Denir o formato e o tamanho das instrues; Denir as operaes elementares. b) Projetar os componentes do processador (UAL, UC, registradores, barra- mentos). Duas estratgias so possveis na construo do decodicador de instrues da UC: Wired Logic (as instrues so todas implementadas em circuito); Microcdigo (apenas um grupo bsico de instrues so implementadas em circuito; as demais so montadas atravs de microprogramas que usam as instrues bsicas, valendo-se, para isso, at mesmo de algorit- mos de lgica difusa (Fuzzy Logic). Resumo Nessa aula, estudamos o funcionamento bsico da arquitetura de Von Neumann, bem como relacionamos as diferentes partes constitutivas de um computa- dor que obedece ao modelo de Von Neumann. J conhecemos o hardware bsico dos computadores e como os sinais eltricos trafegam atravs dos diferentes componentes fsicos dos computadores. Estamos aptos a avanar em nossos estudos, passando ao estudo dos softwares que movem estas poderosas mquinas. Atividades de aprendizagem 1. Descreva as principais caractersticas da arquitetura de Von Neumann. 2. Faa um comparativo entre os principais tipos de memria quanto hierarquia. e-Tec Brasil Tecnologia da Informtica 46 3. Com relao leitura e escrita, descreva os diversos tipos de memria. 4. Pesquise, na internet, vantagens e desvantagens dentre as principais estratgias de implementao de processadores. e-Tec Brasil Aula 2 - A arquitetura de um computador 47 e-Tec Brasil Aula 3 Traduo de programas A msica no est no piano. Objetivos Entender por que programas em linguagem de alto nvel devem ser traduzidos para linguagem de mquina. Compreender como se d a interpretao e compilao de pro- gramas. Conhecer emuladores e mquinas virtuais e compreender sua im- portncia. 3.1 Programa em linguagem de mquina Para executar uma tarefa qualquer, um computador precisa receber instru- es exatas sobre o que fazer. Uma sequncia adequada de instrues de computador, para a realizao de uma determinada tarefa, constitui-se de um PROGRAMA de computador. Uma linguagem de programao um conjunto de ferramentas, regras de sintaxe e smbolos ou cdigos que nos permitem escrever programas de computador, destinados a instruir o computador para a realizao de suas tarefas. A primeira e mais primitiva linguagem de computador a prpria linguagem de mquina, aquela que o computador entende diretamente e pode ser diretamente executada pelos circuitos do processador (pelo hardware). No incio da era da computao, os programas eram escritos em linguagem de mquina, isto , as instrues eram escritas diretamente na linguagem do computador (formada apenas com 1s e 0s). Um programa em linguagem de mquina uma longa srie de 0s e 1s, ordenados de forma que alguns representam cdigos de instrues e outros representam os dados que sero processados (ou indicam onde esses dados esto armazenados). Em um programa escrito em linguagem de mquina, cada instruo escrita pelo Alan Curtis Kay e-Tec Brasil 49 Aula 3 - Traduo de programas programador ser individualmente executada, isto , a cada instruo do programa corresponder uma ao do computador. A relao , portanto, 1 para 1 uma instruo do programa corresponde a uma operao do computador. Um programa em linguagem de mquina pode ser apresentado em binrio (0s e 1s) ou em hexadecimal (usando de 0 a F, ou seja, transformando cada 4 bits em um dgito hexadecimal). A apresentao em hexadecimal torna mais enxuta a representao (mas no mais simples), contudo serve somente para visualizao, pois um programa somente pode ser submetido ao computador em binrio. Imagine, ento, um programa extenso, escrito usando apenas 1s e 0s; imagine que, para cada diferente marca ou modelo de computador, as re- gras para entender esses cdigos sero totalmente diferentes; e nalmente imagine que voc teria que escrever uma a uma as instrues e os dados adequadamente codicados e ordenados, perfurar todo o programa em cartes e submeter toda a massa de cartes ao computador, para nal- mente receber, algumas horas depois, o seu programa de volta com uma mensagem de erro, do tipo erro no carto X...e mais nada! Um programa escrito nessa linguagem era difcil de ser escrito sem que se cometessem muitos erros, e esse processo era longo, demorado, difcil, entediante e, principalmente, caro. Um programa em linguagem de mquina era tambm extremamente dif- cil de ser entendido por outros programadores que futuramente viessem a trabalhar na sua manuteno. Essa complexidade levou necessidade de desenvolver tcnicas e ferramentas para tornar a escrita e a manuteno de programas mais fceis, mais rpida e, principalmente, mais barata. Cada famlia de computadores possui sua prpria linguagem de mquina. Um programa em linguagem de mquina dependente do computador, ou seja, tendo sido escrito para um determinado computador, somente poder ser executado em computadores da mesma famlia, que lhe sejam 100% compatveis. 3.2 Linguagens de montagem A primeira tentativa bem sucedida para resolver o problema acima descrito foi a criao de uma linguagem em que os cdigos numricos foram substi- e-Tec Brasil Tecnologia da Informtica 50 tudos por mnemnicos (palavras ou smbolos como, por exemplo, LOAD = carregar, e ADD = somar, que se aproximam de palavras comuns da lngua inglesa). As localizaes dos dados foram substitudas por referncias sim- blicas. Foram tambm denidas regras de sintaxe de fcil memorizao, de forma a tornar a escrita de programas e sua posterior manuteno uma tcnica de complexidade relativamente menor. Essa linguagem simblica recebeu o nome de Assembly Language (Linguagem de Montagem). Assim, o programador no mais precisava decorar os cdigos numricos que representavam as diferentes instrues e os endereos reais de armazenamento. Bastava decorar mnemnicos para as instrues e denir nomes para as referncias dos endereos (por exemplo, NOME para o local onde seriam armazenados os nomes e SALARIO para o local onde seriam armazenados os salrios, etc.), o que, sem dvida, facilita o trabalho. importante lembrar que um computador sempre monoglota, isto , ele entende nica e exclusivamente a sua prpria linguagem de mquina. Por- tanto, para escrever um programa em outra linguagem, que seja entendido e processado no computador, preciso ter outro programa que leia o que este outro escreveu, em linguagem alternativa e o traduza para uma nativa do computador, isto , a linguagem de mquina entendida pelo computador. O processo de traduo da linguagem de montagem para a linguagem de mquina (chamado de montagem) realizado por um programa chamado Assembler (Montador). O programa Assembler l cada instruo escrita em linguagem Assembly e a converte em uma instruo equivalente lingua- gem de mquina; e tambm converte cada uma das referncias simblicas de memria em endereos reais (resolve as referncias de memria). A criao de programas montadores facilitou muito o trabalho dos progra- madores. Outra vantagem menos bvia foi possibilitar o desenvolvimento de programas de crtica de sintaxe (os debuggers), facilitando o processo de depurao de erros de programao. 3.3 Linguagens de programao Apesar da existncia de programas Montadores, o processo continuava lento e complexo, exigindo do programador uma grande compreenso do processo e um profundo conhecimento da mquina que ele estava programando. Um programa de computador ainda era difcil de ser escrito, caro e dependen- e-Tec Brasil Aula 3 - Traduo de programas 51 te do computador para o qual foi escrito, j que um programa escrito em linguagem de mquina para um determinado computador s poderia ser processado em computadores 100% compatveis com ele. Esses problemas levaram a uma busca por linguagens que fossem mais sim- ples de programar e entender, mais rpidas e ecientes; levaram a programas mais enxutos, com menos instrues, menos dependentes do computador alvo, mas que processassem com boa ecincia, no acarretando processa- mento lento no computador. Foram desenvolvidas diversas linguagens de programao, buscando afastar- se do modelo centrado no computador. Alm disso, essas linguagens foram estruturadas buscando reetir melhor os processos humanos de soluo de problemas. Essas linguagens orientadas para problemas so tambm cha- madas linguagens de alto nvel, por serem afastadas do nvel de mquina. Algumas das primeiras linguagens de alto nvel desenvolvidas e amplamente difundidas foram a FORTRAN (1957), usada basicamente para manipulao de frmulas; ALGOL (1958), utilizada na manipulao de algoritmos; e COBOL (1959), utilizada para processamento comercial. Nas dcadas de 60 e 70 (podemos citar Pascal), a primeira linguagem foi estruturada de alto nvel; BASIC, linguagem criada para facilitar a programao por no prossionais; e ADA, linguagem para processamento em tempo real, criada sob encomenda do DoD (Department of Defense) norte-americano. Na dcada de 1980, surgiu o C e depois o C++ (com suporte a objetos), que esto entre as linguagens mais utilizadas hoje. Cada nova linguagem criada visa a atingir nveis de abstrao mais altos, isto , afasta cada vez mais o programador do nvel de mquina. Se, por um lado, essas novas linguagens facilitam muito o trabalho dos programadores, reduzindo sua necessidade de conhecer o hardware da mquina, por outro lado, elas cobram um alto preo em termos de desempenho, isto , so cada vez mais lentas, ao consumir cada vez mais ciclos de mquina e espao em memria. Esse aumento de exigncia da capacidade de processamento dos computadores compensado pelo aumento acelerado do poder de proces- samento dos novos chips e pelos avanos na arquitetura dos computadores. e-Tec Brasil Tecnologia da Informtica 52 Tal como na linguagem humana, as linguagens de computadores proliferam e sempre h problemas que persistem, continuando a busca por uma lingua- gem ideal a soluo denitiva. A linguagem Java a mais importante tendncia atual e o mais recente avano na busca pela linguagem universal. A linguagem Java pretende elevar a abstrao ainda mais um nvel e prope- se a ser independente da mquina na qual ser executada. Na realidade, quando no est sendo processado em um processador Java nativo, o c- digo Java interpretado por um emulador, que uma camada de software chamada mquina virtual Java (JVM Java Virtual Machine). 3.4 Traduo Sabemos que um programa escrito por um programador (chamado cdi- go-fonte) em uma linguagem de alto nvel um conjunto de instrues que claro para programadores, mas no para computadores. Ou seja, os computadores entendem nica e exclusivamente suas linguagens nativas, as linguagens de mquina. Programas em linguagem de alto nvel, a exemplo dos programas escritos em linguagem de montagem, tambm precisam ser traduzidos para a linguagem de mquina para serem submetidos ao compu- tador e processados. O processo de traduo do programa escrito em uma linguagem simblica pelo programador cdigo-fonte (source code), para a linguagem de m- quina do computador cdigo-objeto (object code), chamado compilao e realizado por um programa chamado compilador (compiler). 3.5 Montagem Citamos anteriormente uma forma de traduo rpida e simples: a executada pelo programa montador. O processo de montagem traduz um programa escrito em linguagem Assembly em um programa equivalente em linguagem de mquina, possvel de ser executado pelo computador. A seguir, na Figura 3.1, apresentado o uxo que representa o processo de montagem. e-Tec Brasil Aula 3 - Traduo de programas 53 Figura 3.1: Processo de montagem Fonte: CTISM No processo de montagem, o cdigo-fonte (programa em linguagem simb- lica escrito pelo programador) examinado, instruo por instruo, e feita a traduo, gerando o cdigo que ser executado (cdigo-objeto). Os passos executados pelo programa montador so: a) Vericar a correo do cdigo de instruo (se o mnemnico corresponde a uma instruo vlida para o computador, se os campos denidios na estrutura da linguagem e a sintaxe esto corretos) e substituir os mnem- nicos pelos cdigos numricos binrios equivalentes. Qualquer erro no c- digo acarreta a interrupo do processo e a emisso de mensagem de erro; b) Resolver as referncias de memria: os nomes simblicos adotados pelo programador so convertidos para endereos reais de memria (valores numricos binrios de endereos); c) Reservar espao em memria para o armazenamento das instrues e dos dados; d) Converter valores de constantes em binrio. e-Tec Brasil Tecnologia da Informtica 54 3.6 Compilao Compilao o processo de traduo de um programa escrito em linguagem de alto nvel para cdigo em linguagem de mquina. Esse processo anlogo ao da montagem (vericao/anlise do cdigo-fonte, resoluo das referncias de memria, reserva de espao em memria e converso para cdigo de mquina binrio). O que diferencia a compilao do processo de montagem sua maior complexidade. No processo de montagem, h uma relao de 1:1, ou seja, cada instruo do cdigo-fonte resulta em uma instruo de mquina, enquanto que na compilao a relao mltipla, cada instruo do cdigo-fonte pode gerar vrias instrues de mquina. Observe a Figura 3.2 a seguir. Figura 3.2: Processo de traduo Fonte: CTISM Durante a compilao, o cdigo-fonte analisado (anlise lxica, sinttica e semntica). gerado um cdigo intermedirio e so construdas tabelas de smbolos; alocam-se as reas de memria para variveis, atribuem-se os registradores a serem utilizados, e , nalmente, gerado o cdigo-objeto em linguagem binria de mquina. Em alguns compiladores, gerado um cdigo intermedirio em Assembly (que pode ser visualizado pelo programador) e que, em seguida, passa pelo montador para gerar nalmente o cdigo- objeto em linguagem de mquina. O cdigo-objeto pode ser absoluto (os endereos constantes so endereos reais de memria), ou relocvel (os endereos so relativos, tendo como refe- rncia o incio do programa; j os endereos reais de memria so denidos apenas em tempo de execuo). e-Tec Brasil Aula 3 - Traduo de programas 55 3.7 Bibliotecas O desenvolvimento de um programa certamente utilizar diversas operaes que so comuns a muitos programas, como, por exemplo, a execuo de uma instruo de entrada e sada, a classicao dos dados de um arquivo ou o clculo de funes matemticas. Uma linguagem de alto nvel geral- mente incorpora diversas rotinas prontas, que fazem parte da linguagem e compem bibliotecas (librarys) de funes pr-programadas que podero ser utilizadas pelo programador, economizando tempo, aumentando a ecin- cia e evitando erros. Dessa forma, um programa em alto nvel possivelmente conter diversas chamadas de biblioteca (library calls). Essas funes no devem ser confundidas com as instrues da linguagem. Na realidade, so pequenos programas externos que so denominados, atravs de instrues especiais, de chamada de biblioteca. Para serem executadas, essas rotinas precisam ser incorporadas ao cdigo do programador, isto , a chamada de biblioteca precisa ser substituda pelo cdigo propriamente dito, incluindo os parmetros necessrios. 3.8 Ligao O cdigo-objeto preparado pelo compilador, em geral, no imediatamente executvel, pois ainda existe cdigo (as rotinas de biblioteca) a ser incorporado ao programa. A cada chamada de biblioteca encontrada no cdigo-fonte, o compilador precisar incluir uma chamada para a rotina e o endereo dos dados que devem ser passados para a rotina. A tarefa de examinar o cdigo-objeto, procurar as referncias a rotinas de biblioteca (que constituem referncias externas no resolvidas), buscar a rotina da biblioteca, substituir a chamada pelo cdigo (resolver as refe- rncias externas) e obter os parmetros para inclu-los no cdigo-objeto executada por um programa chamado ligador (LinkEditor). O resultado da execuo do ligador o cdigo nal, pronto, para ser executado pelo com- putador, chamado mdulo de carga ou cdigo executvel (Figura 3.3). e-Tec Brasil Tecnologia da Informtica 56 Figura 3.3: Processo de compilao e ligao Fonte: CTISM O mdulo de carga, aps testado e depurado, isto , depois de resolvidos todos os erros, tambm chamados bugs, armazenado em memria de massa para ser executado quando necessrio. O processo de compilao e ligao executado apenas pelo programador na fase de desenvolvimento e no mais precisar ser executado pelo usurio quando da execuo do programa. 3.9 Interpretao Com a apresentao do processo de execuo de um programa em fases distintas (compilao/ligao/execuo), um programa, para ser executado, precisa, ter sido convertido para cdigo-objeto pelo compilador e ter pas- sado pelo ligador (ver Figura 3.4 a seguir). Esse processo o mais utilizado, porm no o nico. Figura 3.4: Processo de interpretao Fonte: CTISM O mtodo alternativo chama-se interpretao e, a partir do programa-fonte, realiza as trs fases: compilao, ligao e execuo, comando por comando, em tempo de execuo. No existem fases distintas nem se produzem cdigos intermedirios. Todo o processo de converso efetuado em tempo de exe- cuo e imediatamente executado. Ou seja, cada comando lido, vericado, Para saber o signicado de BUG, e qual a sua origem, consulte o link: http://pt.wikipedia.org/wiki/Bug e-Tec Brasil Aula 3 - Traduo de programas 57 convertido em cdigo executvel e imediatamente executado, antes que o comando seguinte seja lido. Linguagens como C e Pascal so linguagens tipicamente compiladas, enquanto que a BASIC foi desenvolvida como linguagem interpretada (hoje tambm exis- tem linguagens BASIC compiladas). As linguagens de programao tipicamente de usurio, tais como das planilhas Excel, o Word Basic (linguagem de constru- o de Macros do Word) e o Access, so exemplos de linguagens interpretadas. 3.10 Compilao e interpretao: comparao a) Tempo de execuo No mtodo de interpretao, cada vez que o programa for executado, ha- ver compilao, ligao e execuo de cada um dos comandos. No m- todo de compilao, o tempo de execuo do programa reduzido por- que todos os passos preliminares (compilao e ligao) foram previamente cumpridos. b) Consumo de memria No mtodo de interpretao, o interpretador um programa geralmente grande, que precisa permanecer na memria durante todo o tempo que du- rar a execuo do programa. Um programa necessita do interpretador para ter traduzidos cada um dos seus comandos, um a um, at o trmino de sua execuo (o interpretador somente descarregado depois do trmino da execuo do programa). No mtodo de compilao, o compilador carregado e ca na memria apenas durante o tempo de compilao, depois descarregado; o ligador carregado e ca na memria apenas durante o tempo de ligao, depois descarregado. Essas so funes realizadas pelo programador e execu- tadas apenas durante o desenvolvimento do programa. Quando o usurio for executar o programa, apenas o mdulo de carga (cdigo executvel) carregado e ca na memria durante a execuo. Dessa forma, vemos que o mtodo de interpretao acarreta um consumo de memria muito mais elevado durante a execuo do programa. c) Repetio de interpretao No mtodo de compilao, um programa compilado e ligado apenas uma vez, na hora da execuo; carregado apenas o mdulo de carga, que diretamente executvel. No mtodo de interpretao, cada programa ter que ser interpretado toda vez que for executado. e-Tec Brasil Tecnologia da Informtica 58 Outro aspecto a ser destacado que em programas contendo loops, no m- todo de interpretao as partes de cdigo pertencentes ao loop sero vrias vezes repetidas e tero que ser interpretadas tantas vezes quantas o loop tiver que ser percorrido. No mtodo de compilao, a traduo do cdigo do loop faz-se uma nica vez, em tempo de compilao e ligao. Essas carac- tersticas levam a um maior consumo de tempo no mtodo de interpretao, que , portanto, mais lento. d) Desenvolvimento de programas e depurao de erros No mtodo de compilao, a identicao de erros durante a fase de execuo ca sempre difcil, pois no h mais relao entre comandos do cdigo-fonte e instrues do executvel. No mtodo de interpretao, cada comando interpretado e executado individualmente, a relao entre cdigo fonte e executvel mais direta e o efeito da execuo (certa ou errada) direta e imediatamente sentida. Quando a execuo de um comando acarreta erro, quase sempre o erro pode ser encontrado no comando que acabou de ser executado. Assim, o interpretador pode informar o erro, indicando o comando ou a varivel causadora do problema. Essa caracterstica faz com que esse mtodo seja escolhido sempre que se pretende adotar uma linguagem mais fcil, a no prossional, ou para a programao ser mais fcil e rpida. Por exemplo, o mtodo de interpretao usado pela maioria dos Basic (uma linguagem projetada para ser usada por iniciantes) e por todas as linguagens tpicas de usurio como Access, Excel, etc. 3.11 Emuladores e mquinas virtuais Na informtica, um emulador um software que reproduz as funes de um determinado ambiente a m de permitir a execuo de outros softwares sobre ele. Pode ser pela transcrio de instrues de um processador alvo para o processador no qual ele est rodando, ou pela interpretao de cha- madas para simular o comportamento de um hardware especco. O emula- dor tambm responsvel pela simulao dos circuitos integrados ou chips do sistema de hardware em um software. Basicamente, um emulador expe as funes de um sistema para reproduzir seu comportamento, permitindo que um software criado para uma plataforma funcione em outra. Uma aplicao interessante dos interpretadores a gerao de cdigo uni- versal e de mquinas virtuais. e-Tec Brasil Aula 3 - Traduo de programas 59 Sabemos que um computador somente capaz de executar programas que tenham sido desenvolvidos para ele. Assim, um programa desenvolvido para rodar em PCs, rodando Windows, no funciona em PCs com Linux ou em Macintosh. Se voc concorda com essa armao, imagine ento uma pgina na internet, com textos, imagens e programas que podem ser visuali- zados e processados por quase todos os computadores. Como isso pode ser feito? Como computadores de marcas e modelos diferentes estaro lendo, interpretando e executando corretamente comandos que podem ter sido desenvolvidos usando outro computador? O segredo a utilizao de linguagens padronizadas, tais como: HTML, para a escrita das pginas; CGI, Java, Java Script, etc., para programas, que so suportadas por diversas plataformas. Assim, cada uma das plataformas (atra- vs dos programas visualizadores de pginas da internet, conhecidos como browsers ou mesmo atravs de seus respectivos sistemas operacionais) pode interpretar corretamente qualquer pgina feita e hospedada em qualquer computador. Uma situao semelhante ocorre quando algum desenvolve um programa que interpreta o cdigo executvel produzido para um determinado com- putador e o converte para ser executado em outro computador incompatvel com o primeiro. Imagine pegar um jogo desenvolvido para os consoles origi- nais Atari (por exemplo, o PacMan) e poder execut-lo num moderno PC. Ou pegar um programa que voc tenha escrito (por exemplo, uma planilha) para um Apple Macintosh e rod-lo num PC. Esse processo, em que um computa- dor opera como se fosse o outro, conhecido como emulao. Levando esse conceito um pouco mais adiante, imagine desenvolver um programa conversor que selecionasse qualquer programa escrito para uma determinada mquina e interpretasse seu cdigo executvel, traduzindo-o em tempo de execuo para instrues de outro computador. Esse programa criaria uma camada de emulao em que uma mquina se comportaria como outra. Poderamos ter um PC virtual emulado em um Macintosh, que es- taria, assim, apto a rodar qualquer programa escrito para PC. Esse programa emulador criaria um ambiente a que chamamos de mquina virtual, isto , uma mquina que se comporta como outra, diferente, no compatvel. Algo parecido foi desenvolvido pela Sun Microsystems na linguagem Java. Java uma linguagem que, em princpio, permite que programas escritos nela rodem em qualquer mquina. Na realidade, a Sun desenvolveu uma pla- Linux um sistema operacional - programa responsvel pelo funcionamento do computador - que faz a comunicao entre hardware (impressora, monitor, mouse, teclado) e software (aplicativos em geral). A diferena mais marcante entre Linux e Windows o fato de o Linux ser um sistema de cdigo aberto, desenvolvido por programadores voluntrios espalhados por toda internet e distribudo sob licena pblica. J o Windows software proprietrio, no possui cdigo- fonte disponvel e voc ainda precisa comprar uma licena para ter o direito de us-lo. e-Tec Brasil Tecnologia da Informtica 60 taforma Java (JVM - Java Virtual Machine) com caractersticas de ambiente necessrias para que os programas escritos em Java rodem adequadamente. A JVM suporta uma representao em software de uma UCP completa, com sua arquitetura perfeitamente denida, incluindo seu prprio conjunto de instrues. Os programadores Java escrevem o cdigo usando o conjunto de instrues denido pela linguagem Java. Essa fonte ser, ento, compilada gerando o cdigo de mquina virtual Java. Como o cdigo Java universal, os cdigos-fonte Java e os cdigos-objeto gerados so independentes da mquina em que o software ser depois processado. Assim, os programado- res Java no precisam preocupar-se em qual computador ou sistema opera- cional o programa vai ser executado: desenvolver para Java independente da mquina. Mas como possvel que isso funcione, sem desmentir tudo o que antes dissemos sobre o cdigo de mquina ser dependente do ambiente? Tudo bem que o cdigo Java rode bem em um processador Java, mas, e em outras plataformas? Bom, em outras plataformas, programas escritos em Java rodariam em mquinas virtuais que emulariam o ambiente Java. Isso signica que as empresas que desenvolvem software construram uma camada de software que, em tempo de execuo, l o cdigo Java e o interpreta, tra- duzindo-o para o cdigo nativo daquele ambiente. Esses programas inter- pretadores permitem que um programa Java seja traduzido, em tempo de execuo, para o cdigo nativo (ver Figura 3.5) e executado no computador do usurio, com maior ou menor ecincia, porm sempre mais lentamente que na mquina Java ideal. Figura 3.5: Processo cdigo Java Fonte: CTISM e-Tec Brasil Aula 3 - Traduo de programas 61 Resumo Vimos, nessa aula, que os programas de computadores feitos em algum tipo de linguagem de programao Pascal, C, C++, Basic devem ser traduzidos para linguagem de mquina. Aprendemos que os emuladores permitem que um programa feito para ro- dar em um determinado computador possa ser rodado em outro sem perder suas funcionalidades. Portanto, aps estudar hardware e software, resta-nos conhecer como interagir com o computador, ou seja, como os nossos co- mandos entram no computador e como podemos ter acesso aos resultados do processamento das informaes pelo computador. Atividades de aprendizagem 1. Pesquise na internet sobre a Lei de Moore e suas implicaes no desen- volvimento dos computadores. 2. Por quais motivos desenvolveram-se os emuladores e as mquinas virtuais? 3. Quais as razes que obrigam os programas escritos em linguagem de alto nvel, a serem traduzidos para linguagem de mquina? 4. Faa uma tabela comparativa entre compilao e interpretao. e-Tec Brasil Tecnologia da Informtica 62 e-Tec Brasil Aula 4 Entradas e sadas O bom andarilho no deixa rastros. Lao Tse, Tao-Te King Objetivos Entender de que forma nossos comandos ingressam no compu- tador. Compreender como podemos ter acesso aos resultados do pro- cessamento das informaes pelo computador. Diferenciar as diversas formas de comunicao de e para o computador, bem como a maneira como se d o armazenamento de informaes em um computador. 4.1 Consideraes iniciais Os dispositivos de entrada e sada tm como funes bsicas: a) A comunicao do usurio com o computador; b) A comunicao do computador com o meio ambiente (dispositivos exter- nos a serem monitorados ou controlados); c) Armazenamento (gravao) de dados. As caractersticas que regem a comunicao de cada um dos dispositivos de E/S (entrada e sada) com o ncleo do computador (composto de UCP e memria principal) so muito diferentes entre si. Cada dispositivo de E/S comunica-se com o ncleo de forma diversa do outro. Entre outras diferenas, os dispositivos de entrada e sada so mais lentos que o computador, ca- racterstica essa que impe restries comunicao, uma vez que o com- putador precisaria esperar muito tempo pela resposta do dispositivo. Outra diferena fundamental diz respeito s caractersticas das ligaes dos sinais dos dispositivos. e-Tec Brasil 63 Aula 4 - Entradas e sadas Os primeiros computadores, especialmente os de pequeno porte, eram mui- to lentos, e os problemas de diferena de velocidade eram resolvidos sem diculdade e no representavam um problema importante. Dessa forma, a ligao dos dispositivos de E/S era feita atravs de circuitos simples (as inter- faces) que apenas resolviam os aspectos de compatibilizao de sinais el- tricos entre os dispositivos de E/S e a UCP. Os aspectos relativos a diferenas de velocidade (especialmente tempo de acesso e taxa de transferncia de dados) eram resolvidos por programa, isto , por software. Entre esses compo- nentes, trafegam informaes relativas a dados, endereos e controle. 4.2 Tipos de dispositivos As funes dos dispositivos de entrada so: coletar informaes e introduzir as informaes na mquina; converter informaes do homem para a m- quina e vice-versa; e recuperar informaes dos dispositivos de armazena- mento. As funes dos dispositivos de sada so: exibir ou imprimir os resultados do processamento; controlar dispositivos externos. A UCP no se comunica diretamente com cada dispositivo de E/S, mas com interfaces, de forma a compatibilizar as diferentes caractersticas. O pro- cesso de comunicao (protocolo) feito atravs de transferncia de infor- maes de controle, endereos e dados propriamente ditos. Inicialmente, a UCP interroga o dispositivo, enviando o endereo deste e um sinal que indica se quer mandar ou receber dados atravs da interface. O perifrico, reconhe- cendo seu endereo, responde quando est pronto para receber (ou enviar) os dados. A UCP, ento, transfere (ou recebe) os dados atravs da interface, e o dispositivo responde, conrmando o recebimento (ou a transferncia) dos dados (acknowledge ou ACK) ou o no recebimento e, nesse caso, soli- citando retransmisso (not-acknowledge ou NACK). A compatibilizao de velocidades feita geralmente por programa, usando memrias temporrias na interface chamadas buffers - que armazenam as informaes conforme chegam da UCP, e as liberam para o dispositivo medida que este as pode receber. protocolo Um conjunto de informaes ou dados devem ser preparados de maneira a obedecerem a determinadas regras-padro que os computadores entendem para poderem ser transmitidos entre um computador e outro. Estas regras-padro so chamadas de protocolo. As interfaces de entrada e sada so conhecidas por diversos nomes, dependendo do fabricante: Interface de E/S = Adaptador de Perifrico, Controladora de E/S, Processador de Perifrico, Canal de E/S. e-Tec Brasil Tecnologia da Informtica 64 4.3 Formas de comunicao De uma forma geral, a comunicao entre o ncleo do computador e os dispositivos de E/S poderia ser classicada em dois grupos: comunicao paralela ou serial. Vamos, a seguir, analisar as caractersticas desses grupos. 4.3.1 Comunicao em paralelo Na comunicao em paralelo, grupos de bits so transferidos simultanea- mente (em geral, byte a byte), atravs de diversas linhas condutoras dos sinais. Dessa forma, como vrios bits so transmitidos simultaneamente a cada ciclo, a taxa de transferncia de dados (throughput) alta. Veja a Fi- gura 4.1 a seguir. Figura 4.1: Trfego de dados em uma transmisso paralela Fonte: CTISM No entanto, o processo de transferncia em paralelo envolve um controle sosticado e razoavelmente complexo, o que o torna mais caro. Um impor- tante problema diz respeito propagao dos sinais no meio fsico, isto , no cabo de conexo entre o dispositivo e a interface. Essa propagao deve ser feita de modo que os sinais (os bits) correspondentes a cada byte cheguem simultaneamente extremidade oposta do cabo, na qual sero reagrupados em bytes. Como os condutores que compem o cabo usualmente tero pe- quenas diferenas fsicas, a velocidade de propagao dos sinais digitais nos condutores poder ser ligeiramente diferente nos diversos os. Dependendo do comprimento do cabo, pode acontecer que um determina- do o conduza sinais de forma mais rpida (ou mais lenta) que os demais e, dessa forma, um determinado bit x em cada byte ir propagar-se mais rpido e chegar extremidade do cabo antes que os outros n-1 bits do byte. Esse fenmeno chamado skew, e as consequncias so catastrcas: os bits n chegariam fora de ordem (os bytes chegariam embaralhados) e a informa- o caria irrecupervel. Em decorrncia desse problema, h limites para o e-Tec Brasil Aula 4 - Entradas e sadas 65 comprimento do cabo que interliga um dispositivo ao computador quando o modo paralelo usado. As restries citadas contribuem para que a utilizao da comunicao em paralelo se limite a aplicaes que demandem altas taxas de transferncia, normalmente associadas a dispositivos mais velozes tais como unidades de disco, ou demandem altas taxas de transferncia, como CD-ROM, DVD, ou mesmo impressoras, e que se situem muito prximo do ncleo do computa- dor. Em geral, o comprimento dos cabos paralelos limitado at um mximo de aproximadamente 1,8 metros. 4.3.2 Comunicao serial Na comunicao serial, os bits so transferidos um a um, atravs de um nico par condutor. Os bytes a serem transmitidos so serializados, isto , so desmontados bit a bit e so individualmente transmitidos, um a um. Na outra extremidade do condutor, os bits so contados e, quando formam 8 bits, so remontados, reconstituindo os bytes originais. Nesse modo, o controle comparativamente muito mais simples que no modo paralelo e de implementao mais barata. Como todos os bits so transferidos pelo mesmo meio fsico (mesmo par de os), as eventuais irregularidades afetam todos os bits igualmente. Portanto, a transmisso serial no afetada por irregularidades do meio de transmisso e no h skew. Em princpio, a trans- misso serial intrinsecamente mais lenta que a paralela (pois apenas um bit transmitido de cada vez). Analise a Figura 4.2. Figura 4.2: Trfego de dados em uma transmisso serial Fonte: CTISM e-Tec Brasil Tecnologia da Informtica 66 Como os bits so transmitidos sequencialmente um a um, sua utilizao normalmente indicada apenas para perifricos mais lentos como, por exem- plo, teclado, mouse, etc., ou quando o problema da distncia for mandat- rio, como nas comunicaes a distncias mdias (tal como em redes locais) ou longas (comunicaes via linha telefnica usando modems). No entanto, ultimamente a transmisso serial tem recebido aperfeioamen- tos importantes (seja de protocolo, de interface, seja de meio de transmisso) que permitem o aumento da velocidade de transmisso por um nico par de os, cabo coaxial ou de bra tica. Como o aumento da velocidade de trans- misso em interfaces paralelas ocasiona mais skew, a tendncia tem sido no sentido do aperfeioamento das interfaces seriais que, hoje, permitem taxas de transferncia muito altas com, relativamente, poucas restries de distncia. Em microcomputadores, a interface USB - Universal Serial Bus permite, atualmente, ligar at 128 dispositivos a taxas muito altas (centenas de kbps). Veja a Quadro 4.1. Quadro 4.1: Comparativo de comunicao Caracterstica Paralelo Serial custo maior menor distncia curta sem limite throughput alto baixo 4.4 Formas de transmisso A transmisso de caracteres atravs de uma linha de comunicao pode ser feita por dois diferentes mtodos: transmisso sncrona e assncrona. 4.4.1 Transmisso sncrona Na transmisso sncrona, o intervalo de tempo entre dois caracteres sub- sequentes xo. Nesse mtodo, os dois dispositivos transmissor e recep- tor so sincronizados, pois existe uma relao direta entre o tempo e os caracteres transferidos. Quando no h caracteres a serem transferidos, o transmissor continua enviando caracteres especiais de forma que o intervalo de tempo entre caracteres mantm-se constante e o receptor sincronizado. No incio de uma transmisso sncrona, o relgio dos dispositivos transmissor e receptor so sincronizados atravs de um string (cadeia de caracteres) de sincronizao e so mantidos sincronizados por longos perodos de tempo (dependendo da estabilidade dos relgios), podendo transmitir dezenas de milhares de bits antes de terem necessidade de ressincronizar (Figura 4.3). Saiba mais sobre interfaces modernas, como a interface Serial ATA: http://www.infowester.com/ serialata.php e-Tec Brasil Aula 4 - Entradas e sadas 67 Figura 4.3: Representao temporal dos mtodos de transmisso Fonte: CTISM 4.4.2 Transmisso assncrona Na transmisso assncrona, o intervalo de tempo entre os caracteres no xo. Podemos exemplicar com um digitador operando um terminal, no qual podemos vericar que no h um uxo homogneo de caracteres a se- rem transmitidos. Como esse uxo no homogneo, no h como distin- guir a ausncia de bits sendo transmitidos de um eventual uxo de bits zero; assim o receptor nunca saberia quando viria o prximo caractere, portanto, no teria como identicar o que seria o primeiro bit. Para resolver esses problemas de transmisso assncrona, foi padronizado que, na ausncia de caracteres a serem transmitidos, o transmissor mantm a linha sempre no es- tado 1, isto , transmite ininterruptamente bits 1, o que a distingue tambm de linha interrompida. Quando for transmitir um caractere, para permitir que o receptor reconhea o incio do caractere, o transmissor insere um bit de partida (start bit) antes de cada caractere. Convenciona-se que esse start bit ser um bit zero, interrompendo assim a sequncia de bits 1 que caracteriza a linha livre (idle). Para maior segurana, ao nal de cada caractere, o trans- missor insere um (ou dois, dependendo do padro adotado) bit de parada (stop bits) e convenciona-se ser bits 1 para distingu-los dos bits de partida. Os bits de informao so transmitidos em intervalos de tempo uniformes entre o start bit e o(s) stop bit(s). Portanto, o transmissor e o receptor somen- te estaro sincronizados durante o intervalo de tempo entre os bits de start e stop. A transmisso assncrona tambm conhecida como start-stop. A Figura 4.4 exemplica essa transmisso. e-Tec Brasil Tecnologia da Informtica 68 Figura 4.4: Transmisso assncrona Fonte: CTISM A taxa de ecincia de uma transmisso de dados medida como a relao de nmero de bits teis dividido pelo total de bits transmitidos. No mtodo assncrono, a ecincia menor do que no mtodo sncrono, uma vez que h necessidade de inserir os bits de partida e parada, de forma que a cada caractere so inseridos de 2 a 3 bits que no contm informao. 4.5 Transmisso simplex, half-duplex e full-duplex Uma comunicao dita simplex quando permite comunicao apenas em um nico sentido, tendo em uma extremidade um dispositivo transmissor (transmitter) e do outro um dispositivo receptor (receiver). No h possibili- dade de o dispositivo receptor enviar dados ou mesmo sinalizar se os dados foram recebidos corretamente. Transmisses de rdio e televiso so exem- plos de transmisso simplex. Uma comunicao dita half-duplex (tambm chamada semi-duplex) quan- do existem em ambas as extremidades dispositivos que podem transmitir e receber dados, mas no simultaneamente. Durante uma transmisso half- duplex, em determinado instante, um dispositivo A ser transmissor e o outro B ser receptor; em outro instante os papis podem inverter-se, por exemplo, o dispositivo A poderia transmitir dados que B receberia; em segui- da, o sentido da transmisso seria invertido e B transmitiria para A a infor- mao se os dados foram corretamente recebidos ou se foram detectados erros de transmisso. A operao de troca de sentido de transmisso entre os dispositivos chamada de turn-around e o tempo necessrio para os dis- positivos chavearem entre as funes de transmissor e receptor chamado de turn-around time. e-Tec Brasil Aula 4 - Entradas e sadas 69 Uma transmisso dita full-duplex (tambm chamada apenas duplex) quando dados podem ser transmitidos e recebidos simultaneamente em ambos os sentidos. Poderamos entender uma linha full-duplex como funcionalmente equivalente a duas linhas simplex, uma em cada direo. Como as transmis- ses podem ser simultneas em ambos os sentidos e no existe perda de tempo com turn-around, uma linha full-duplex pode transmitir mais informa- es por unidade de tempo (maior throughput) do que uma linha half-duplex, considerando-se a mesma taxa de transmisso de dados. Veja a Figura 4.5. Figura 4.5: Transmisso simplex, half-duplex e full-duplex Fonte: CTISM Resumo Sabemos que o usurio comunica-se com o ncleo do computador (compos- to por UCP e memria principal) atravs de dispositivos de entrada e sada (dispositivos de E/S ou I/O devices). Nessa aula, analisamos como funcionam os dispositivos de entrada e sada e como feita a comunicao entre eles e o ncleo do computador. Finalizamos tambm o estudo dos princpios da Tecnologia da Informtica. Vimos que os dispositivos de entrada e sada tm como funes bsicas a comunicao do usurio com o computador, a comunicao do computador com o meio e o armazenamento de dados. Portanto, aps termos estudado hardware e software, vimos quais as variveis envolvidas, quando intera- gimos com o computador, ou seja, de que maneira os nossos comandos entram no computador, e como podemos ter acesso aos resultados do pro- cessamento das informaes pelo computador. e-Tec Brasil Tecnologia da Informtica 70 Atividades de aprendizagem 1. Quais as vantagens e desvantagens das transmisses paralela e serial? Na sua opinio, a transmisso sncrona mais convel que a assncrona? Justique. 2. Diferencie entre si as transmisses simplex, half-duplex e full-duplex. 3. Baseado nos conhecimentos adquiridos e em pesquisas realizadas na in- ternet, explique por que a interface serial ATA (SATA) pode ser mais rpi- da que a interface paralela IDE. e-Tec Brasil Aula 4 - Entradas e sadas 71 Referncias DAVID A.; HENNESSY, J. L. Computer Organization & Design: The hardware/software Interface. New York: Morgan Kaufmann Publishers, Inc, 1998. ERCEGOVAC, M.; LANG, T.; MORENO, J. Introduo aos Sistemas Digitais. Porto Alegre: Bookman, 2000. MANO, Rui. Curso de Tecnlogos em Processamento de Dados. Disponvel em: <http://wwwusers.rdc.pucrio.br/rmano/rmano.html>. Acesso em: Jul.2010. STALLINGS, W. Arquitetura e Organizao de Computadores. 5. ed. So Paulo: Makron Books, 2002. TANENBAUM, A. S. Organizao Estruturada de Computadores. Rio de Janeiro: LTC, 2001. TOCCI, R. J. Sistemas Digitais: princpios e aplicaes. 10. ed. So Paulo: Pearson, 2007. WAKERLY, J. F. Digital Design: principles and practices. 3rd Edition. New York: Prentice Hall, 2000. e-Tec Brasil 72 e-Tec Brasil 73 Currculo do professor-autor Saul Azzolin Bonaldo professor do Colgio Tcnico Industrial (CTISM) da Universidade Federal de Santa Maria (UFSM). graduado em Engenharia El- trica e mestre em Engenharia Eltrica pela UFSM. Trabalhou por vrios anos na iniciativa privada, especialmente no projeto e execuo de instalaes eltricas em baixa tenso, redes lgicas e sistemas de segurana eletrnica, adquirindo boa experincia em gesto empresarial e no acompanhamento e execuo de obras. Foi Inspetor do CREA-RS. No CTISM ministra as disciplinas de Eletrnica, Circuitos Digitais, Mquinas Eltricas e Projetos Eltricos. Atua tambm como Coordenador do Curso Tcnico em Automao Industrial. Membro do IEEE (The Institute of Electrical and Electronics Enginners) e liado ao IAS (Industry Application Society), ao PELS (Power Electronics Society) e ao IES (Industrial Electronics Society). revisor da revista Potentials, publicada pelo IEEE, e da Industrial Electronic Magazine, publicada pelo IES-IEEE. e-Tec Brasil Tecnologia da Informtica 74