Home » Artigos arquivados » 2003 – Introdução à organização de computadores

2003 – Introdução à organização de computadores

Autor: Laércio Vasconcelos
Janeiro/2003
Artigo baseado no livro
Hardware total

Este artigo apresenta noções básicas sobre organização de computadores, tal qual é estudada em cursos técnicos e superiores de informática. Aprenda como os computadores evoluíram até o que conhecemos hoje.

Este é um livro avançado, porém ao alcance dos leitores iniciantes, desde que estejam dispostos a aprender tudo desde o início. Por isso apresentamos conceitos básicos sobre PCs no capítulo 1, e vamos no presente capítulo apresentar outros ensinamentos que permitirão a você acompanhar os capítulos seguintes, que serão de nível mais especializado.

Quem estuda em um curso superior de engenharia eletrônica, informática, análise de sistemas ou engenharia de computação (o nome varia de acordo com a universidade), ou um curso de ensino médio na área de hardware ou processamento de dados, sempre encontra pela frente a matéria chamada de “Organização de computadores”. Pode aparecer com outros nomes, como “Introdução à computação digital”, “Fundamentos de computação digital” ou similar. A matéria ensina desde o início os fundamentos de computação digital, explicando o que é computador, CPU, memória, programa, etc. Este será o objetivo deste capítulo.
Organização de computadores

A organização de computadores é uma matéria ministrada em todos os cursos de computação. Ensina uma série de princípios sobre o funcionamento interno dos computadores. Esses princípios são válidos para qualquer tipo de computador, não importa o tamanho, a marca, o modelo, ou se trata de um computador novo ou antigo. Conhecendo a organização de computadores, você entenderá melhor o seu funcionamento e o estudo deste livro terá um melhor aproveitamento.

Normalmente os cursos de organização de computadores são genéricos, ou seja, apresentam informações que são válidas para qualquer tipo de computador. Mesmo assim, são apresentados exemplos ilustrando como as técnicas de organização são usadas por alguns modelos de computadores famosos. Neste livro, os exemplos serão totalmente voltados para os computadores tipo “PC”.
Os primeiros computadores eletrônicos

Desde muitos e muitos anos atrás, já existiam máquinas capazes de efetuar cálculos. Essas máquinas eram tetra-tetra-tetra avós dos computadores modernos e eram chamadas de calculadoras. Eram na verdade réguas de calcular, também chamadas de ábacos. Eram muito usadas pelos árabes e chineses. No início do século 20 já eram comuns as calculadoras mecânicas e elétricas. As calculadoras elétricas eram baseadas em um pequeno dispositivo elétrico, chamado de relé. Os relés tinham aproximadamente o tamanho de uma caixa de fósforos, bem maiores que os relés modernos, como os mostrados na figura 1. Calculadoras daquela época eram muito grandes, pois para construí-las eram necessários centenas de relés.

HARD-084

Figura 2.1

Relés.

 

 

As calculadoras elétricas, construídas com relés, eram muito melhores que as mecânicas. Eram mais rápidas e mais difíceis de apresentar defeitos. As calculadoras mecânicas apresentavam muitos defeitos, da mesma forma como ocorre com qualquer máquina mecânica. As calculadoras a relé também apresentavam defeitos, mas eram muito mais raros. Ainda existem, em pleno século 21, elevadores antigos cujo controle é feito por relés.

Resumindo, as calculadoras existentes até mais ou menos 1930 podiam ser de dois tipos:

a) Mecânicas: Lentas, apresentavam muitos defeitos
b) Elétricas: Um pouco mais rápidas, e apresentavam defeitos, mas menos que as mecânicas.

Já nos anos 30 existiam as válvulas eletrônicas, muito usadas em rádios. Um daqueles antigos rádios dos “tempos da vovó” possuíam mais ou menos uma dúzia de válvulas eletrônicas. As válvulas funcionavam como relés mais sofisticados. Eram muito mais rápidas que os relés, mas tinham o inconveniente de durarem pouco tempo. Após cerca de 1000 horas de uso, as válvulas “queimavam”, assim como ocorre com as lâmpadas. Era então necessário trocar a válvula queimada. Se um daqueles enormes “rádios da vovó” tinham uma dúzia de válvulas, imagine o tamanho que deveria ter um computador eletrônico, com milhares de válvulas.

HARD-085

Figura 2.2

Válvula eletrônica.

 

Podemos ver na figura 2 uma válvula eletrônica. Nos anos 30 e 40 foram construídos vários computadores, ainda experimentais, utilizando as válvulas. Esses computadores eram caríssimos e eram usados para aplicações militares, como por exemplo, cálculos da balística para lançamentos de projéteis. Esses computadores não eram tampouco fabricados em série. Cada modelo era normalmente um “filho único” da sua categoria. Eram na verdade grandes jeringonças eletrônicas. Alguns eram tão grandes que mediam do tamanho de um ginásio de esportes. Dentro da equipe de pessoas que trabalhavam com esses computadores, havia sempre um sujeito que carregava um carrinho cheio de válvulas. Passava o dia inteiro procurando e trocando válvulas queimadas. Para que uma válvula queimada não afetasse o resultado dos cálculos, esses computadores repetiam cada operação três vezes, por três circuitos diferentes, e “a maioria vencia”. Se uma válvula queimasse durante uma operação, provavelmente apenas um dos três resultados estaria errado, mas os outros dois estariam corretos.

Ao ter contato com os modernos computadores é muito engraçado saber como eram precárias as condições de funcionamento daqueles velhos computadores até o início dos anos 50. Ainda nessa época, os computadores eram chamados de “calculadoras”. Um dos famosos computadores da época era chamado de ENIAC (Electronic Numeric Integrator and Calculator).

HARD-086

Figura 2.3

Uma parte do computador ENIAC (1939).
Computadores transistorizados

Uma grande melhoria em todos os aparelhos eletrônicos ocorreu após a invenção do transistor. Esses pequenos componentes serviam para substituir as válvulas, mas com muitas vantagens. Eram muito menores, consumiam menos corrente elétrica e duravam muitos anos. Tornou-se possível a construção de computadores de menor tamanho, mais rápidos, mais confiáveis e mais baratos. Já no final dos anos 50, todos os computadores eram construídos com transistores. Também passaram a serem fabricados em série. Cada computador não era mais um “filho único”, e sim, fazia parte de uma série de máquinas iguais. Esses computadores ainda custavam milhões de dólares, mas passaram a ser usados em aplicações não militares:

Aplicações comerciais em grandes empresas

Controle de processos industriais

A indústria de computadores começou a crescer, dando origem ao desenvolvimento dos grandes gigantes da informática mundial, como a IBM.

HARD-087

Figura 2.4

Transistores.

 

 

Realmente os transistores causaram um grande impacto em todos os aparelhos eletrônicos, como rádios, TVs, vitrolas e tudo o mais que antes utilizava válvulas. Mas foi nos computadores que esses pequenos componentes tiveram a maior repercussão. Isso não é muito difícil de entender. Uma TV ou um rádio transistorizados não eram tão pequenos em comparação com os modelos a válvula. Mas no caso dos computadores, essa miniaturização era muito mais acentuada, já que os computadores a válvula eram verdadeiros gigantes. Computadores que ocupavam um salão inteiro, podiam ser construídos a transistor e ficavam do tamanho de uma estante. Computadores a válvula que ocupavam um prédio inteiro, podiam ser construídos com transistores, e passavam a ocupar apenas um andar. Assim foram os computadores até os anos 60.
Circuitos integrados

Ao mesmo tempo que os computadores transistorizados eram cada vez mais utilizados em todo o mundo, um outro grande avanço tecnológico ocorria: a corrida espacial. Americanos e soviéticos lançavam seus foguetes rumo ao espaço. A miniaturização de computadores era ainda mais importante, no caso de um computador a ser colocado a bordo de um foguete. Seria totalmente inviável levantar vôo carregando um enorme computador valvulado. Já para um computador transistorizado, isto era possível, mas se fosse conseguida uma miniaturização ainda maior, computadores mais poderosos ou então mais leves (ou ambas as coisas) poderiam ser embarcados nos foguetes.

HARD-088

Figura 2.5

Válvula, transistores e chip.

 

 

 

A NASA (Agência Espacial Norte-Americana) gastou bilhões de dólares com seu programa espacial, contratou empresas fabricantes de transistores para que realizassem uma miniaturização ainda maior. Uma dessas empresas, até hoje uma líder mundial em microeletrônica, é a Texas Instruments. Foram então criados os primeiros circuitos integrados, também chamados de chips. Um circuito integrado é um pequeno componente eletrônico que possui em seu interior, centenas, ou até milhares de transistores. A figura 5 mostra a comparação de tamanhos entre uma válvula, um transistor e um chip dos mais rudimentares. Enquanto um transistor é equivalente a uma válvula e tem um tamanho muito menor, um chip dos mais simples tem aproximadamente o mesmo tamanho que um transistor comum, mas em seu interior existem, na verdade, centenas de transistores.

Aqueles velhos chips dos anos 60 tinham em seu interior, dezenas ou centenas de transistores. Já os chips modernos, como os processadores usados nos microcomputadores, têm em seu interior algumas dezenas de milhões de transistores.

Os chips podem ser divididos em várias categorias, dependendo da quantidade de transistores que existem em seu interior:

SSI – Short Scale of Integration, ou Integração em Baixa Escala. Esses chips contém em seu interior apenas algumas dezenas de transistores.

MSI – Medium Scale of Integration, ou Integração em Média Escala. Esses chips contém algumas centenas de transistores.

LSI – Large Scale of Integration, ou Integração em Alta Escala. Contém em seu interior, alguns milhares de transistores.

VLSI – Very Large Scale of Integration, ou Integração em Escala Muito Alta. Esses chips contém da ordem de dezenas de milhares de transistores, ou mais.

Nos computadores modernos, quase todos os chips usados são do tipo LSI ou VLSI. Os chips SSI e MSI são ainda usados em pequenas quantidades, normalmente para auxiliar os chips LSI e VLSI.
Os primeiros microprocessadores

Não confunda essas duas palavras:

Microcomputador: É um computador pequeno, de tamanho tal que pode ser colocado sobre uma mesa. Quando surgiram os microcomputadores, existiam apenas os computadores de grande porte (que ocupavam salas inteiras) e os minicomputadores, que eram do tamanho de uma geladeira.

Microprocessador: É um pequeno chip que cabe na palma da mão. Podemos dizer que esse chip é o “cérebro” do computador. É ele que executa os programas, faz os cálculos e toma as decisões, de acordo com as instruções armazenadas na memória.

Podemos ver na figura 6 um microcomputador e na figura 7 um microprocessador.

HARD-089

Figura 2.6

Microcomputador.

 

HARD-090

 

 

Figura 2.7

Microprocessador.

 

 

 

Os microprocessadores formam uma parte importantíssima do computador, chamada de UCP (Unidade Central de Processamento), ou em inglês, CPU (Central Processing Unit). Antes da existência dos microprocessadores, as CPUs dos computadores eram formadas por um grande número de chips, distribuídos ao longo de uma ou diversas placas. Um microprocessador nada mais é que uma CPU inteira, dentro de um único CHIP. Podemos ver na figura 8, um microprocessador e uma placa de circuito. Um microprocessador contém todos os circuitos que antigamente eram formados por diversas placas.

HARD-091

Figura 2.8

Microprocessador e placas de circuito.

 

Ligando-se um microprocessador a alguns chips de memória e alguns outros chips auxiliares, tornou-se possível construir um computador inteiro em uma única placa de circuito. Esse computador, por ter um tamanho muito menor que os computadores da época (início dos anos 70), pas­sou a ser conhecido como microcomputador. Esses primeiros microcomputadores eram bem diferentes dos atuais. Não tinham, por exemplo, teclado, nem vídeo, nem impressora. Eram ligados a um aparelho chamado de TELETYPE (ou TELETIPO). O teletipo era uma máquina de escrever que continha uma leitora e uma perfuradora de fita de papel. Os programas não eram armazenados em discos, como nos dias atuais. Eram gravados em fitas de papel. Os pequenos furos da fita de papel representavam as instruções dos programas.

HARD-092

Figura 2.9

Microcomputadores do início dos anos 80.

 

 

Uma famosa empresa americana, a Intel, foi uma das primeiras a produzirem microprocessadores. Seu primeiro microprocessador era chamado de “4004”. O 4004 era um microprocessador ainda muito limitado. Era capaz de realizar operações com apenas 4 bits de cada vez. Se você ainda não sabe o que é um bit, não se preocupe, pois mais adiante neste capítulo explicaremos o que são bits e bytes. Para simplificar, um microprocessador de 4 bits só pode operar com números pequenos, de 0 a 15. Para usar números maiores, um microprocessador de 4 bits precisa dividir o número em várias partes e fazer as contas em várias etapas. Podemos exemplificar isto, fazendo uma analogia com o que acontece com o cérebro humano:

Pergunta: Quanto é 37×21 ?

Na escola nunca estudamos a tabuada de 37, e nem de 21. Para calcular 37×21 temos que fazer a conta:

37           1×7=7, 1×3=3
x 21         2×7=14, 2×3=6, 6+1=7
———–
37            7+0=7, 3+4=7, 7+0=7
+74
———–
777

Como nosso cérebro só sabe multiplicar números menores que 10, dividimos a operação em várias etapas, e encontramos assim o resultado 777. Esta multiplicação “complexa” precisou ser composta a partir de 4 multiplicações simples e 4 adições. Um microprocessador de 4 bits como o 4004 faz esse mesmo tipo de desmembramento para operar com números maiores.

Depois do 4004, a Intel lançou o 8008, que era um microprocessador de 8 bits. Era muito mais rápido que o 4004, já que podia operar com números maiores. Com 8 bits, esse chip podia operar diretamente com números entre 0 e 255. O que o 4004 precisava de duas etapas para realizar, podia ser realizado em uma única etapa pelo 8008. Esses chips eram caríssimos. Custavam, na época do seu lançamento, mais de 1000 dólares!

Depois do 8008, a INTEL lançou um novo microprocessador de 8 bits, chamado de 8080. Era mais rápido e mais barato que o 8008. O 8080 foi o primeiro microprocessador a ser usado em larga escala nos chamados “computadores pessoais”. Antes deles, os microcomputadores eram usados apenas em laboratórios científicos, em fábricas e em universidades. O 8080 popularizou o uso de microcomputadores por pequenas empresas e até para uso pessoal. Já no final dos anos 70 eram comuns os micros pessoais baseados no 8080 e em outros microprocessadores rivais: o MC6800 da Motorola, o 6502, usando em um antigo microcomputador chamado de APPLE, e o Z-80 fabricado pela ZILOG, usado em um antigo computador chamado TRS-80. Surgia então a indústria dos microcomputadores. Ao mesmo tempo, surgia a indústria do software para microcomputadores, que criava programas de vários tipos para serem usados nessas máquinas. Os microcomputadores dessa época já usavam teclado, vídeo e impressora. Seus dados e programas eram armazenados através de em gravadores de fita K-7 adaptados para trabalhar com microcomputadores.

A Intel produziu ainda nos anos 70, um outro microprocessador para substituir o 8080. Chamava-se 8085. Todos esses microprocessadores (8080, 8085, Z-80, 6502, 6800 e outros) operavam com 8 bits.

0210
Figura 2.10 – Microcomputador Schumec M101/85 (produzido no Brasil em 1981). Da esquerda para a direita:

a) Unidade de armazenamento (gravador K7)
b) Computador
c) Terminal de vídeo/teclado

 

Diretamente do túnel do tempo (1981), a figura 10 mostra um dos primeiros microcomputadores brasileiros, o Schumec M-101/85. Tinha um microprocessador Intel 8085 de 6 MHz, 16 KB de memória e um gravador de fita K-7 (Gradiente) para armazenamento de programas e dados. Seu monitor de vídeo era na verdade uma TV Philips adaptada, já que nesta época o Brasil não fabricava monitores.

Em meados dos anos 90, os microprocessadores passaram a ser chamados simplesmente de processadores. Você certamente está acostumado a ouvir termos como “processador Pentium III”, “processador Athlon”, “processador K6-2”, e assim por diante. Realmente a palavra “processador” é mais simples que “microprocessador”, e do ponto de vista de marketing, valoriza o componente. Neste livro, a partir deste ponto, também adoraremos o termo “processador”.
Os microcomputadores modernos

Assim como os microprocessadores passaram a ser chamados simplesmente de “processadores”, os microcomputadores são mais conhecidos pelos termos “micro”, “computador” ou simplesmente “PC”.

Até o final dos anos 70, os microcomputadores existentes operavam com 8 bits. Nessa época, a Intel lançou os primeiros processadores de 16 bits: o 8086 e o 8088. Um processador de 16 bits é capaz de operar com números maiores e de forma mais rápida que os modelos de 8 bits. Os dois microcomputadores que dominavam o mercado eram o Apple e o TRS-80. Utilizavam, respectivamente, os processadores 6502 e Z-80, ambos de 8 bits.

Nessa ocasião, a IBM, maior fabricante de computadores em todo o mundo, ainda não fabricava microcomputadores. Seus produtos eram os computadores de grande porte usados nos grandes centros de processamento de dados, e custavam alguns milhões de dólares. A IBM decidiu então entrar no mercado de computadores pessoais. Escolheu então o processador 8088 para usar em seu microcomputador, chamado de IBM Personal Computer, ou simplesmente, IBM PC. Era o primeiro microcomputador de 16 bits a ser produzido em grande escala, e passou logo a dominar o mercado. Até os dias atuais, os modernos microcomputadores são compatíveis com o IBM PC original, lançado em 1981. O IBM PC tinha as seguintes características:

Processador 8088, operando a 4.77 MHz

Monitor de vídeo monocromático

2 drives de disquetes de 320 kB

16 kB de memória, possibilitando expansão até 64 kB

Conexão para gravador K-7

Pouco tempo depois, a IBM realizou melhorias no projeto deste microcomputador e lançou o IBM PC-XT. A sigla “XT” significa Extended Technology (Tecnologia estendida). As características dos primeiros modelos do IBM PC-XT eram as seguintes:

Processador 8088, operando a 4.77 MHz

Monitor de vídeo monocromático ou colorido

2 drives de disquetes de 360 kB

64 kB de memória, possibilitando expansão até 256 kB

Disco rígido de 10 MB

A grande vantagem do IBM PC-XT (ou simplesmente XT) em relação ao IBM PC era a possibilidade de operar com um disco rígido de 10 MB, uma altíssima capacidade para aquela época.

O XT foi apenas o primeiro modelo de microcomputador a representar uma evolução do velho IBM PC. Ano após ano, até os dias atuais, são lançados novos modelos de microcomputadores, cada vez mais rápidos e com mais recursos. Considere por exemplo, um computador de 2001, com configuração modesta, em comparação com o IBM PC-XT:

IBM PC-XT Microcomputador moderno (2002)
Processador 8088 a 4.77 MHz Processador Pentium III de 1000 MHz, cerca de 5000 vezes mais rápido que o 8088 do XT.
Disco rígido de 10 MB Disco rígido de 30 GB (30.000 MB).
64 kB de memória 128 MB de memória
Memória expansível até 256 kB Memória expansível até 1,5 GB
Vídeo de baixa resolução, com 4 cores Vídeo de alta resolução, com 16,8 milhões de cores
Preço 5.000 dólares Preço: 1.500 dólares

Todos esses computadores são chamados de “PC compatíveis”. Mesmo esses modelos mais modernos, que são milhares de vezes mais velozes que o IBM PC original, ainda são chamados de “PCs”. Há muitos anos que a IBM já não é mais a única empresa a fabricar PCs. Atualmente existem diversas outras grandes empresas que produzem seus próprios PCs, mas todos eles são compatíveis com o IBM PC. No mundo inteiro existem centenas de milhões de microcomputadores tipo “PC”.

Ao longo dos anos, as melhorias sofridas pelos PCs foram as seguintes:

Preço: Com o aumento da produção e o uso de chips VLSI, foi possível reduzir drasticamente o preço dos equipamentos.

Processador: A cada ano são lançados novos processadores, cada vez mais velozes. Por exemplo, o processador 80286 foi utilizado em outro modelo da IBM chamado de IBM PC-AT. A sigla “AT” significa Advanced Technology (Tecnologia Avançada). O IBM PC-AT operava com 8 MHz, mas ao longo dos anos foram lançados novos modelos com velocidades mais altas.

8088-2 8 MHz 60% mais rápido que o 8088
8088-1 10 MHz 2 vezes mais rápido que o 8088
80286-8 8 MHz 6 vezes mais rápido que o 8088
80286-10 10 MHz 7,5 vezes mais rápido que o 8088
80286-12 12 MHz 9 vezes mais rápido que o 8088
80286-16 16 MHz 12 vezes mais rápido que o 8088
80286-20 20 MHz 15 vezes mais rápido que o 8088
80286-25 25 MHz 18 vezes mais rápido que o 8088

Assim como o 80286, outros processadores mais velozes foram lançados. Alguns dos processadores lançados entre 1985 e 1995 foram:

80386-16 16 MHz 17 vezes mais rápido que o 8088
80386DX-40 40 MHz 43 vezes mais rápido que o 8088
80486DX-25 25 MHz 54 vezes mais rápido que o 8088
80486DX4-100 100 MHz 200 vezes mais rápido que o 8088
Pentium-60 60 MHz 240 vezes mais rápido que o 8088
Pentium-100 100 MHz 400 vezes mais rápido que o 8088

Os programas que eram executados nos antigos PCs XT não são mais usados, por isso não faz mais sentido comparar PCs modernos com o IBM XT. Por exemplo, os antigos processadores de texto simplesmente recebiam os caracteres do teclado e os colocavam na tela e na memória, depois gravavam tudo em um arquivo. Os processadores de texto modernos fazem muito mais que isso. Por exemplo, exibem o texto usando caracteres de diversos estilos e tamanhos, fazem correção gramatical automática, de forma simultânea com a digitação, podem incluir gráficos e fotos, além de vários outros recursos avançados. Não adianta portanto dizer que, por exemplo, um processador Athlon de 1000 MHz é cerca de 8.000 vezes mais veloz que um XT. Ninguém conseguirá usar um programa moderno em um XT, e não faz sentido usar em um PC modernos, programas que eram usados no XT.

HARD-093

Figura 2.11

Processador Athlon.

 

Além de processadores mais velozes, outros componentes dos PCs sofreram uma grande evolução:

Disco rígido: Os XTs usavam discos rígidos com 10 MB, mas atualmente existem discos com capacidades milhares de vezes maiores. Em 1991, a maioria dos PCs usava discos com 40, 60 ou 80 MB. Já em 1993, os discos de 120 e 200 MB eram mais comuns. Em 1994 encontramos com maior freqüência os discos de 260, e 340 MB. A seguir surgiram discos com capacidades superiores a 1000 MB (1 GB). Atualmente o GB (gigabyte) é usado para medir a capacidade dos discos rígidos. Em 2001, os PCs mais modestos usavam discos de 10 GB, capacidade 1000 vezes maior que a dos discos rígidos dos primeiros XTs.

HARD-094

Figura 2.12

Um disco rígido.

 

Memória: Os primeiros PCs usavam 16 kB de memória. Os programas da época eram suficientemente pequenos para funcionar bem com esta pequena quantidade de memória. Mas logo surgiram programas mais sofisticados, que necessitavam de mais memória. Passaram a ser então, mais comuns, os PCs com 64 kB de memória. De início, 64 kB era uma quantidade de memória bem generosa, mas logo surgiram programas mais sofisticados, que necessitavam de mais memória. E assim a coisa prosseguiu. Cada vez eram lançados PCs com mais memória, e logo a seguir, programas mais sofisticados, que necessitavam de mais memória. Em 1985, 512 kB era uma quantidade de memória bem confortável. Já em 1990, 1 MB era a memória encontrada na maioria dos micros. Em 1993, o padrão passou a ser 4 MB. Em 1994 tornou-se cada vez mais comuns os micros com 8 MB. Em 1995 e 1996 a maioria dos PCs tinha 16 MB. Ao final do ano 2000, os PCs mais simples tinham 32 MB de memória, e já em 2001, 64 MB era o mínimo encontrado nos PCs de menor custo, enquanto os PCs bem configurados tinham 128 MB ou 256 MB. Sempre teremos PCs com quantidades cada vez maiores de memória, assim como programas cada vez mais sofisticados que farão uso dessa memória.

HARD-095

Figura 2.13

Um módulo de memória.

 

Todos os PCs atuais, equipados com os processadores de última geração, são na verdade sucessores do IBM PC-AT, que é por sua vez, sucessor do IBM PC. É muito comum escutar alguém dizendo, por exemplo:

“Possuo um Pentium III/800”.

Na verdade, a forma mais correta e completa de dizer, seria a seguinte:

“Possuo um PC compatível com o IBM PC-AT, equipado com um processador Pentium III de 800 MHz”.

Por questões práticas, é mais comum chamar um PC como este de simplesmente “Pentium III/800”, mas lembre-se que este é o nome correto do processador, e não do PC.
CPU, Entrada e Saída

Estamos falando sobre organização de computadores, mas até agora não entramos diretamente neste assunto. Vimos uma evolução da história dos computadores, para entender como tiveram origem os PCs modernos. Agora que sabemos como os PCs surgiram poderemos falar em organização de computadores de forma mais específica.

Todos os computadores possuem uma parte muito importante, chamada de unidade central de processamento (UCP). Em in­glês, usamos a sigla CPU, que é abreviatura de central processing unit. Nos computadores de grande porte, a CPU é formada por uma ou várias placas. Cada uma dessas placas contém vários chips. Nos microcomputadores a CPU nada mais é que o próprio processador. É também comum chamar a placa que contém o processador de placa de CPU ou placa mãe. Não quer dizer que a CPU seja a placa inteira. A placa de CPU é a placa que contém a CPU, ou seja, que contém o processador.

HARD-096

Figura 2.14

Placa de CPU.

 

Note que “CPU” não é a mesma coisa que “processador”, já que em computadores de maior porte (os supercomputadores, por exemplo), a CPU é formada por uma ou mais placas, com vários chips. Entretanto nos PCs é correto dizer que o processador é a CPU do computador, e que a placa de CPU de um microcomputador é a placa onde está localizado o processador.

HARD-097

Figura 2.15

Processador.

Não importa de que tipo de CPU estamos falando, seja um microprocessador, ou uma das várias placas que formam a CPU de um computador de grande porte, podemos dizer que a CPU realiza as seguintes tarefas:

a) Busca e executa as instruções existentes na memória.

Os programas e os dados que ficam gravados no disco (seja ele um disco rígido, disquetes ou outro meio de armazenamento), são transferidos para a memória. Uma vez estando na memória, a CPU (no nosso caso, o processador) pode executar os programas e processar os dados.

b) Comanda todos os outros chips do computador.

A CPU é auxiliada por vários circuitos que desempenham diversas funções. Por exemplo, quando você pressiona uma tecla, faz com que o teclado transmita o código da tecla pressionada. Este código é recebido por um circuito chamado de interface de teclado. Ao receber o código de uma tecla, a interface de teclado avisa a CPU que existe um caracter recebido. Por outro lado, quando a CPU precisa enviar uma mensagem para o usuário, precisa que a mensagem seja colocada na tela. Isto é feito com auxílio de um circuito chamado de interface de vídeo. A CPU envia para a interface de vídeo, a mensagem, seja ela em forma de texto ou figura. A interface de vídeo coloca então a mensagem na tela.

Quando a CPU executa instruções e processa dados, dizemos que está processando. A CPU passa, na verdade, o tempo todo executando instruções e processando dados. Quando um circuito recebe um dado e o transmite para a CPU, como no caso do teclado, dizemos que trata-se de uma operação de entrada de dados (Input). Quando um circuito transmite um dado, como no caso do vídeo, ou da impressora, dizemos que trata-se de uma operação de saída de dados (Output). Podemos dizer que o computador é uma máquina que passa o tempo todo realizando três operações:

Entrada / Processamento / Saída

A entrada de dados é realizada por diversos dispositivos coordenados pela CPU. Entre eles podemos citar o teclado e o mouse. O processamento é realizado pela própria CPU. Lembre-se que CPU significa Unidade Central de Processamento. A saída de dados é realizada por vários dispositivos, sob a coordenação da CPU. Entre eles podemos citar o vídeo e a impressora.

Vejamos então um pequeno resumo dos conceitos apresentados aqui:

CPU – É a Unidade Central de Processamento. Em computadores de grande porte, a CPU é formada por uma ou mais placas. Nos microcomputadores, a CPU é o processador.

Placa de CPU – Todo microcomputador possui uma placa principal, chamada de placa de CPU. Esta placa contém o processador, a memória e outros circuitos importantes.

Processamento – É a principal função da CPU. Além de realizar o processamento dos dados. A CPU também comanda as operações de entrada e saída, que são realizadas por circuitos auxiliares chamados de interfaces.
Bits e Bytes

Um velho ditado popular afirma que “para o bom entendedor, meia palavra basta”. Se isso é verdade, vamos tentar explicar com meias palavras o que é bit, byte, kB, MB e GB.

BIT – Número que pode representar apenas dois valores: 0 e 1.

BYTE – Grupo de 8 bits. Pode representar valores numéricos entre 0 e 255. Pode também ser usado para representar caracteres. Em geral cada caracter ocupa um byte.

kB (KILOBYTE) – Um grupo de aproximadamente 1.000 bytes.

MB (MEGABYTE) – Um grupo de aproximadamente 1.000.000 bytes.

GB (GIGABYTE) – Um grupo de aproximadamente 1.000.000.000 bytes.

A explicação em meias palavras está muito deficiente, mas é melhor saber “mais ou menos” que não saber nada. Vamos agora apresentar uma explicação decente do que são essas coisas.

Estamos acostumados a utilizar o sistema decimal de numeração. Esse sistema usa 10 algarismos para formar todos os números: 0, 1, 2, 3, 4, 5, 6, 7, 8, e 9. O sistema de numeração decimal usa exatamente 10 algarismos, devido ao fato dos seres humanos terem 10 dedos. Historicamente o número 10 foi escolhido, pois os números eram usados na vida cotidiana para contar. Contar carneiros, bois, pães, pessoas, etc. Nada mais natural que contar com os dedos. Pergunte a uma criança de 3 anos, quantos anos ela tem, e você verá que ela responderá mostrando 3 dedos da mão.

Imagine um número qualquer de 3 algarismos, como por exemplo, 732. Dizemos que esse número tem 3 dígitos decimais. O primeiro dígito, o das centenas, é o 7. O segundo dígito, o das dezenas, é o 3, e o terceiro dígito, o das unidades, é o 2. Existem muitos outros números de 3 dígitos. O menor deles é 100 e o maior deles é 999.

Os computadores podem receber valores decimais, através do teclado, e escrever valores decimais, através do vídeo, por exemplo. Mas internamente, ou seja, no interior da CPU e da memória, os valores são armazenados em um outro sistema, mas adequado aos circuitos do computador. Trata-se do sistema binário. Enquanto no sistema decimal cada dígito pode assumir 10 valores (0, 1, 2, 3, …, 9), no sistema binário cada dígito pode assumir apenas 2 valores: 0 e 1. Para nós é complicado raciocinar com números binários, mas para os circuitos do computador, esta é a forma mais simples. Por exemplo, o número 13, que no sistema decimal é representado apenas com dois dígitos (1 e 3), no sistema binário é representado com 4 dígitos, na forma: 1011.

Muitos cursos de organização de computadores ou introdução à informática, ensinam neste ponto como transformar números do sistema decimal para o sistema binário, e vice-versa. Muitos principiantes ficam até assustados com tantas contas. A dificuldade de muitas pessoas com matemática, acaba fazendo essas pessoas terem medo da informática. Para sua felicidade, não será feito nada disso aqui. Nosso objetivo no momento é explicar o que é um BIT. Apresentaremos entretanto no final deste capítulo, as clássicas conversões entre os sistemas de numeração decimal e binário.

BIT nada mais é que a abreviatura de BInary digiT, ou seja, dígito binário. Talvez os nossos conhecidos algarismos do sistema decimal devessem ser chamados de “DET” (DEcimal digiT). Poderíamos dizer nesse caso que os “DETS” existentes são 0, 1, 2, 3, … 9. Não existe o termo “DET” que estamos apresentando aqui, apenas para fazer uma analogia. Dessa forma você pode entender melhor que os BITS podem assumir dois valores: 0 e 1.

Dentro do computador, todos os dados que estão sendo armazenados ou processados são representados na forma de BITS. Como um BIT é muito pouco, já que pode representar apenas dois valores, os computadores trabalham com agrupamentos de bits. Por exemplo, os processadores antigos, como o 8080, podiam operar com 8 bits de cada vez. Os PCs que usavam os processadores 8088 e 80286 trabalham com 16 bits (apesar de aceitarem também instruções e dados de 8 bits). Os processadores 80386, 80486, Pentium e superiores, operam com 32 bits, apesar de também aceitarem dados de 8 e 16 bits, e de terem algumas instruções especiais para dados de 64 e 80 bits.

Sempre que um processador, uma memória ou outro chip qualquer precisar receber ou transmitir dados, esses dados são transferidos na forma de BITS. Entretanto, para que a transferência seja mais rápida, esses bits não são transferidos um de cada vez, e sim, vários de uma só vez. Com um único fio só é possível transmitir um bit de cada vez. Com 8 fios é possível transmitir 8 bits de cada vez, o que é muito mais rápido. Nos PCs, os bits são transmitidos em grupos de 4, 8, 16, 32 ou 64 bits simultâneos.

Um grupo de 4 bits é chamado de NIBBLE

Um grupo de 8 bits é chamado de BYTE

Um grupo de 16 bits é chamado de WORD

Um grupo de 32 bits é chamado de DOUBLE WORD (DWORD)

Um grupo de 64 bits é chamado de QUAD WORD (QWORD)

Você não precisa decorar todas essas palavras. Basta saber que um BYTE (lê-se “báite”) é um grupo formado por 8 bits. Esses 8 bits cami­nham sempre juntos, como se fossem pássaros de um mesmo bando. Toda vez que um bit é transferido de um lugar para outro, os 8 bits seguem o mesmo caminho, cada um por um “fio” diferente.

Os bytes podem ser usados para representar números, caracteres, figuras, ou qualquer outro tipo de dado armazenado ou processado em um computador. Para representar caracteres, por exemplo, basta estabelecer um código que indique um número associado a cada caracter. Um código muito utilizado é o ASCII, no qual temos por exemplo:

01000001 – A
01000010 – B
01001010 – L
00100011 – #
01010100 – T

Ninguém precisa decorar esses números. Na verdade, alguns “micreiros” (pessoa que gosta de conhecer a fundo o funcionamento interno dos microcomputadores) acabam, de forma imperceptível, decorando esses valores. Mas não é necessário decorar esses números para saber usar o computador. É importante que você saiba que, por exemplo, quando você pressiona a tecla “T”, o teclado transmitirá para o computador um código numérico que representa esta letra. Não é importante saber qual é o código, mas é importante saber que é formado por 8 bits, e que ficarão armazenados na memória do computador, ocupando exatamente 1 byte.

Vamos agora fazer um teste, para ver se você entendeu. A seguir estão duas piadas. Se você não entender as pidadas, significa que não entendeu nada sobre BITS e BYTES.

Piada 1:
O sujeito chegou na banca de revistas e pediu ao jornaleiro:
– Por favor, eu quero comprar uma revista “BYTE”.
O jornaleiro não tinha mais nenhum exemplar da revista “BYTE”, e falou:
– A revista “BYTE” acabou. Agora só tem a revista “BIT”.
O sujeito falou então (de brincadeira):
– Então vou levar oito revistas “BIT”.

Piada 2:
Ao terminar um curso de organização de computadores, o aluno perguntou:
– Professor, eu gostei muito do curso, entendi tudo, mas só ficou uma dúvida. Afinal de contas, qual é a pronúncia correta; “BIT” ou “BYTE” ?

Não precisa rir das piadas, basta entender.

Vejamos agora o que é kB, MB e GB. Dissemos anteriormente que 1 kB é aproximadamente 1000 bytes. Na verdade, 1 kB são 1024 bytes. Este número foi escolhido porque sua representação binária é muito mais simples que a representação do número 1000:

1000 = 01111101000 em binário
1024 = 10000000000 em binário

Por razões de simplificação de hardware, o número 1024 foi o escolhido para representar o “k” da computação. Na vida cotidiana e na física, o “k” vale 1000:

1 km = 1000 metros
1 kg = 1000 gramas
1 kV = 1000 volts

Entretanto, na informática, o multiplicador “k” (lê-se “quilo” ou “ká”) vale 1024. Da mesma forma, o multiplicador “M” (lê-se “mega”), que normalmente vale 1.000.000, na computação vale:

1 M = 1024 k = 1024×1024 = 1.048.576

Portanto, 1 MB (lê-se “um megabyte”) são exatamente 1.048.576 bytes. Mas para efeitos práticos, podemos dizer que 1 MB é aproximadamente 1 milhão de bytes.

O multiplicador “G” (lê-se “giga”), que normalmente vale 1 bilhão, na computação vale:

1 G = 1024 M = 1024x1024x1024 = 1.073.741.824

Portanto, 1 GB (lê-se “um gigabyte”) são exatamente 1.073.741.824 bytes, mas para efeitos práticos podemos dizer que 1 GB é aproximadamente 1 bilhão de bytes.
Memória principal

A CPU é a parte mais importante de um computador. Essa importância é tão grande que é comum ouvir pessoas chamando seus computadores pelo nome do processador: “… possuo um Pentium III…”.

Podemos dizer que depois da CPU, a parte mais importante de um computador é a memória. Tanto é assim que ouvimos muitos usuários de micros falarem: “… possuo um Pentium III com 128 MB de memória…”.

A memória principal é aquela que é acessada diretamente pelo processador. É formada por diversos tipos de chips. Podemos ver na figura 16 alguns tipos de chips de memória, usados para formar a memória principal de PCs.

HARD-098

Figura 2.16

Exemplos de chips e módulos de memória.

 

Além da memória principal, que é diretamente acessada pela CPU, existe também a memória secundária, que será estudada na próxima sessão. A memória secundária não é acessada diretamente pela CPU. Seu acesso é feito através de interfaces ou controladoras especiais. Podemos citar como exemplo de memória secundária, o disco rígido. A memória secundária não é formada por chips, e sim, por dispositivos que utilizam outras tecnologias de armazenamento. O disco rígido, assim como os disquetes e as unidades de fita, usam a tecnologia magnética para armazenar dados. Os discos CD-ROM usam tecnologia ótica.

HARD-099

Figura 2.17

Módulos de memória instalados em uma placa de CPU.

 

HARD-03

Figura 2.18

Memórias de uma placa de vídeo.

 

No caso dos microcomputadores, quase toda a memória principal fica localizada na placa de CPU. Entretanto, algumas outras placas, chamadas de placas de expansão, também podem conter mais memória. É o caso da placa de vídeo.

Os chips de memória podem ser divididos em duas categorias:

RAM – São chips de memória que podem ser lidos e gravados pela CPU a qualquer instante. A CPU usa a RAM para armazenar e executar programas vindos do disco, para ler e escrever os dados que estão sendo processados. Uma outra característica da RAM, é que se trata de uma memória volátil. Isso significa que quando o computador é desligado, todos os seus dados são apagados. Por essa razão, é necessário que os programas e dados fiquem gravados no disco, que é uma memória permanente.

ROM – É a abreviatura de read only memory, ou seja, “memória para leitura apenas”. São chips de memória que podem ser lidos pela CPU a qualquer instante, mas não podem ser gravados. Sua gravação é feita apenas pelo fabricante do computador, ou pelo fabricante de memórias. A outra característica importante de ROM é que trata-se de uma memória permanente. Seu conteúdo nunca é perdido, mesmo com o computador desligado. Nos microcomputadores, existe um programa muito importante chamado de BIOS (Basic Input-Output System – Sistema Básico de Entrada e Saída). O BIOS tem várias funções, entre as quais, a de realizar a “partida” do computador. Quando ligamos o computador, o BIOS realiza a contagem de memória, faz uma rápida checagem do funcionamento do computador e realiza a carga do Sistema Operacional que deve estar armazenado no disco. O BIOS está gravado em uma memória ROM localizada na placa de CPU. Existem tipos de ROM que podem ser gravados através de programas especiais. Por exemplo as do tipo Flash ROM. Também ficam disponíveis apenas para leitura, mas utilizando um programa especial fornecido pelo fabricante da placa de CPU, o BIOS pode ser regravado.

Como já mostramos, a placa de CPU contém quase toda a memória de um PC, mas outras placas também podem conter memórias, do tipo RAM e do tipo ROM. Por exemplo, as placas de vídeo contém uma ROM com o seu próprio BIOS, e contém uma RAM chamada de memória de vídeo, que armazena os caracteres e gráficos que são mostrados na tela.
Memória secundária

A memória secundária também é chamada de memória de massa. É uma memória do tipo permanente (não se apaga quando o computador está desligado), que tem uma alta capacidade de armazenamento, e um custo muito mais baixo que o da memória principal. Considere por exemplo, um computador com 64 MB de RAM (que faz parte da memória principal) e um disco rígido de 40 GB (que faz parte da memória secundária). Os 40 GB do disco rígido servem para armazenar diversos programas e diversos dados. Os 64 MB de RAM servem para manter apenas os programas e os dados que estão sendo processados em um dado instante. Podemos também mostrar como o custo da memória secundária é muito mais baixo que o da memória principal. Enquanto 64 MB de RAM custam cerca de $30 (preços de 2001), um disco rígido de 40 GB custa cerca de $200. Dividindo o preço pela capacidade, constatamos que 1 MB de RAM custam cerca de 50 centavos de dólar, enquanto 1 MB de espaço no disco rígido custam menos de 1 centavo de dólar. A tabela abaixo mostra os preços, as capacidades e o custo de armazenamento por cada MB armazenado (preços relativos a 2001). Observe como o custo do armazenamento da memória secundária é muito mais baixo.

Dispositivo Tipo Capacidade de referênica Custo total Custo por MB aproximado
RAM Principal 128 MB $ 60 $ 0,50
Disquete Secundária 1.44 MB $ 0,50 $ 0,35 *
Zip Disk Secundária 100 MB $ 10 $ 0,10 *
CD-RW Secundária 600 MB $ 5 $ 0,008 *
Disco rígido Secundária 40 GB $ 200 $ 0,005
CD-R Secundária 600 MB $ 2 $ 0,004 *
CD-ROM Secundária 600 MB $ 1 $ 0,002 *
Fita Secundária 12 GB $ 10 $ 0,001 *

De acordo com a tabela, a memória RAM é o tipo mais caro, custando cerca de 50 centavos por MB (preços de 2001). Outro custo por MB elevado é o do disquete, que apesar de barato, tem capacidade muito baixa, apenas 1.44 MB. O próximo na escala de valores é o ZIP Disk, com custo de cerca de 10 centavos por MB armazenado. O disco rígido tem custo por MB ainda mais baixo, abaixo de 1 centavo de dólar. Os demais meios citados têm custo por MB inferior a 1 centavo. O CD-RW é uma espécie de disco, similar ao CD-ROM, mas pode ser gravado e apagado sucessivas vezes. O CD-R é um CD que também pode ser gravado, porém uma única vez. O CD-ROM tem custo por MB ainda menor, mas para que fique barato precisa ser produzido em série, em milhares de cópias iguais. Para volumes de dados muito grandes, as unidades de fita são a melhor opção, com custo da ordem de 1 décimo de centavo.

O custo por MB indicado na tabela acima não é o único valor a ser considerado. No caso do disquete, deve ser também levado em conta o custo do drive, que é de cerca de $15. Mas um único drive pode ser usado com diversos disquetes. No caso do CD-ROM, deve ser levado em conta o custo do drive de CD-ROM, que é de cerca de $ 50. No caso da fita magnética, usamos como base uma unidade DAT de 12 GB, que custa cerca de $500. O ZIP Disk requer um ZIP Drive, que custa cerca de $100, e o uso de CDs graváveis (CD-R) requer um gravador, que custa cerca de $200.

0219

Figura 2.19

Dispositivos de armazenamento secundário.

 

A memória secundária é muito mais barata, de maior capacidade, e ainda é permanente, ou seja, não apaga os dados quando o computador é desligado. Por que então esse tipo de memória não é usado no lugar da memória principal? O problema é que infelizmente, os dispositivos de armazenamento secundário são extremamente lentos, se comparados com a RAM. São lentos demais para serem acoplados diretamente ao processador. Além disso, não permitem acessos a seus bytes individuais, como um processador precisa realizar. Os meios de armazenamento secundário só permitem o acesso a blocos de dados. Em um disquete ou em um disco rígido, por exemplo, as leituras são feitas em unidades mínimas chamadas de setores. Cada setor tem 512 bytes. Para ter acesso a um único byte, é preciso ler o setor inteiro. Isso faz com que seu acoplamento direto à CPU seja inviável. As memórias RAM e ROM são milhares de vezes mais rápidas e permitem que sejam feitos acessos a qualquer um de seus bytes, de forma individual. Por isso são usadas para formar a memória principal.

A tabela abaixo mostra o tempo que o processador precisa para ter acesso a um byte qualquer, em cada um dos tipos de memória. Os valores mostrados são aproximados, mas são suficientes para mostrar como as memórias ROM e RAM são muito mais rápidas.

RAM 0,000.000.010 s
ROM 0,000.000.200 s
Disco rígido 0,010 s
Disquete 0,100 s
CD-ROM 0,200 s
Fita 60 s

Os meios de armazenamento secundário são mais lentos porque envolvem movimento de suas partes mecânicas. O disco rígido, o drive de disquete e o drive de CD-ROM, citados na tabela acima, precisam mover as cabeças de leitura até o ponto onde será feita a leitura. A unidade de fita precisa girar a fita até o ponto a ser acessado. As memórias ROM e RAM não precisam desses movimentos, pois seu acesso é inteiramente eletrônico. Por isso são usadas como memória principal.
Dispositivos de entrada e saída

Já vimos que um computador passa o tempo todo realizando três tarefas:

a) Entrada

Feita por chips e dispositivos especializados em leitura de dados, sob a coordenação da CPU.

 

b) Processamento

Feito pela CPU

 

c) Saída

Feita por chips e dispositivos especializados em transmissão ou gravação de dados, sob a coordenação da CPU.

 

Existem portanto no computador, os chamados dispositivos de entrada e saída, também chamados de periféricos. Através desses dispositivos, o computador pode armazenar, ler, transmitir e receber dados. A memória secundária, já estudada na seção anterior, é formada por diversos dispositivos de entrada e saída.

O termo “Entrada e Saída” é abreviado por E/S, ou para quem preferir a língua inglesa, I/O (Input/Output). Dentre os diversos dispositivos de E/S, existem alguns que são especializados apenas em entrada, outros especializados apenas em saída e outros em ambos. Podemos citar os seguintes exemplos:

Entrada:

Teclado – Lê os caracteres digitados pelo usuário
Mouse – Lê os movimentos e toques de botões
Drive de CD-ROM – Lê dados de CDs
Microfone – Transmite sons para o computador
Scanner – Capta figuras e fotos

Saída:

Vídeo – Mostra na tela caracteres e gráficos
Impressora – Imprime caracteres e gráficos
Alto-falante – Emite som

Entrada e saída:

Disco rígido – Grava e lê dados
Drive de disquete – Grava e lê dados em disquetes
Unidade de fita – Grava e lê em fitas magnéticas
Modem – Transmite e recebe dados pela linha telefônica

A CPU não pode comunicar-se diretamente com os periféricos. Esta comunicação é feita com a ajuda de circuitos chamados de interfaces. Por exemplo, os dados que são recebidos do mouse chegam até a CPU através da interface serial. Os dados a serem impressos são transmitidos até a impressora através de um circuito chamado de interface paralela. Os dados provenientes de um microfone chegam até a CPU através de uma interface, chamada de conversor analógico-digital, localizado na placa de som.

As figuras 20, 21 e 22 mostram diversos tipos de periféricos.

HARD-04

Figura 2.20

Dispositivos de entrada:

Teclado
Scanner
Drive de CD-ROM
Mouse

 

HARD-05

Figura 2.21

Dispositivos de saída:

Impressora
Monitor
Alto falantes

 

HARD-06

Figura 2.22

Dispositivos de entrada e saída:

Disco rígido
Drive de disquetes
Unidade de fita
Modem

Os PCs modernos saem da fábrica já acompanhados de vários dispositivos de entrada e saída:

Monitor

Drive de disquetes

Disco rígido

Teclado

Mouse

Alto falantes

Modem

Placa de som

O usuário pode, nesse caso, adquirir novos periféricos e placas e realizar sua instalação. Essa tarefa pode ser realizada por usuários mais experientes, ou então por técnicos especializados. Quando instalamos novos periféricos e placas em um computador, dizemos que estamos realizando um expansão. Nesse caso, podem ser instalados, por exem­plo:

Impressora

Scanner

Joystick

ZIP Drive

Gravador de CDs

DVD

Arquivos

“Arquivo” é uma das palavras mais importantes em computação. Em inglês, sua tradução é “File”. Arquivo nada mais é que um conjunto de dados gravados na memória secundária (disco rígido, disquete, fita magnética, CD-ROM, etc). Os arquivos são uma forma de organizar os dados dentro da memória secundária. Se os dados estivessem todos espalhados, por exemplo, ao longo de um disquete, seu acesso seria extremamente complicado. Podemos fazer uma analogia entre dados, arquivos, casas e ruas. Os dados corresponderiam às casas, enquanto que os arquivos corresponderiam às ruas. Seria dificílimo localizar uma casa, sabendo apenas os nomes de seus moradores. Sabendo o nome da rua, o acesso é bem mais imediato. Por essa razão, os dados são agrupados em arquivos. Sabendo o nome do arquivo, fica mais fácil localizar os dados.

Os nomes completos dos arquivos são tradicionalmente divididos em duas partes, separadas por um ponto. Por exemplo:

CARTA.DOC

Neste caso, o “nome” é CARTA, e a extensão é DOC. É comum nesse caso, dizer que o nome do arquivo é CARTA, ou então CARTA.DOC. Da mesma forma, dizemos que o nome de uma pessoa é, por exemplo, JOÃO DA COSTA, mas podemos dizer também que o nome é apenas JOÃO.

A extensão serve para indicar o tipo de arquivo. Por exemplo, DOC significa que trata-se de um documento de texto; JPG é um arquivo gráfico, EXE é um arquivo de programa, WAV é um arquivo de som, e assim por diante. No passado, os arquivos podiam usar no máximo 8 caracteres para o nome e 3 caracteres para a extensão (formato 8.3). A partir do lançamento do sistema operacional Windows 95 da Microsoft e do OS/2, da IBM, os PCs passaram a utilizar nomes longos. Hoje podemos usar para os arquivos, nomes como:

Relatório Mensal.DOC
Foto do passeio 001.JPG
Rugido do leão.WAV

Os arquivos podem armazenar diversos tipos de dados:

Instruções para a CPU:

Dizemos que se trata de um arquivo executável. Os arquivos executáveis, nos microcomputadores, normalmente usam a extensão EXE. Por exemplo:

DXDIAG.EXE
MPLAYER.EXE
EXPLORER.EXE
PBRUSH.EXE

Documentos:

São textos digitados com o auxílio de um tipo de programa chamado de editor de textos, ou processador de textos. Normalmente esses arquivos usam a extensão TXT ou DOC. Por exemplo:

CURRIC.DOC
LISTA.TXT
REUNIÃO.DOC

Gráficos:

São arquivos que representam figuras. Essas figuras podem ser vistas na tela ou na impressora, com o auxílio de programas apropriados.

Dados genéricos:

Muitas vezes os programas precisam manipular uma quantidade de dados tão grande que não cabem na memória principal. Nesse caso, esses dados são armazenados em arquivos que são lidos da memória secundária e processados por partes. Muitas vezes esses dados podem até caber na memória principal, mas por uma questão de organização ficam armazenados em arquivos. Por exemplo, podemos ter um arquivo que contém os nomes dos alunos de um colégio, assim como as notas que cada aluno obteve nas provas já realizadas.

É fácil ver um disquete, uma fita magnética, um CD-ROM ou até mesmo um disco rígido (para isto é preciso abrir o computador). Mas não podemos “ver” os arquivos, já que são gravados magneticamente (ou oticamente, no caso do CD-ROM e outros meios óticos). Os “olhos” usados para “ver” os arquivos são as cabeças de leitura, localizadas dentro dos respectivos periféricos. Através das cabeças de leitura, os dados podem ser lidos e transformados em impulsos eletrônicos e enviados para a CPU e para a memória. A CPU, por sua vez, pode acessar os dados originários dos arquivos e enviá-los para os dispositivos de saída, como o monitor e a impressora, para que possamos vê-los com nossos próprios olhos. Por exemplo, se um arquivo contém uma carta, só poderemos ver esta carta depois que o arquivo for lido pela CPU e enviado para a impressora.

HARD-07

Figura 2.23

Arquivos “vistos” na tela e na impressora.
Programas

Os computadores passam o tempo todo executando programas. Os programas nada mais são que grupos de instruções e dados. Por exemplo, quando você está executando um jogo no computador, está na verdade executando um programa. Se você deixa o computador “parado”, por exemplo, na hora do almoço, pode pensar que nessa hora o computador não está executando nenhum programa. Engana-se. Na verdade, mesmo que você não tenha dado nenhum comando, o computador está na verdade executando um programa interno. O que este programa faz é monitorar continuamente o teclado e o mouse, para checar se você envia um novo comando. A única hora em que o computador não está executando programa nenhum é quando está desligado ou em estado de espera.

Para que um programa possa ser executado, é preciso que seja transferido para a memória RAM. A maioria dos programas ficam armazenados em disco (disco rígido, CD-ROM, etc.), mas a CPU não pode executar nenhum programa diretamente a partir do disco. O programa precisa ser antes lido do disco e carregado na RAM. Por exemplo, para executar o programa Bloco de Notas (pequeno editor de textos que acompanha o Windows), é preciso que você clique os menus do Windows na seqüência:

Iniciar / Programas / Acessórios / Bloco de Notas

Note que os nomes dos programas que aparecem nos menus do Windows não são necessariamente iguais aos nomes com os quais esses programas estão armazenados no disco. O programa que aparece nos menus com o nome de Bloco de Notas é na verdade o arquivo NOTEPAD.EXE.

Uma vez usada esta seqüência de cliques, o NOTEPAD.EXE é lido do disco rígido e carregado na RAM. A CPU pode então executar o programa. A figura 24 simboliza a leitura do programa NOTEPAD.EXE a partir do disco para a memória RAM (essa operação é chamada de carga), e seu processamento pela CPU (essa operação é chamada de execução).

HARD-08

Figura 2.24

Carga e execução do programa NOTEPAD.EXE (Bloco de Notas).

 

Você poderá estar pensando como que é feita a mágica da leitura do arquivo NOTEPAD.EXE do disco para a memória, e a seguir sua execução. Na verdade, quem leu o arquivo NOTEPAD.EXE e providenciou sua execução foi um outro programa. Trata-se de um programa que fica o tempo todo na memória, chamado de sistema operacional. No nosso exemplo, trata-se do sistema operacional Windows. Uma das várias funções do sistema operacional é ficar o tempo todo ativo na memória RAM, esperando que o usuário comande a execução de algum programa.

Um sistema operacional é um grande conjunto de programas e arquivos auxiliares. O próprio Bloco de Notas é um programa que faz parte do sistema operacional Windows. Outro programa importante do Windows é o EXPLORER.EXE. Este programa é o responsável por, entre outras coisas, receber os comandos que o usuário envia o computador, através do teclado e do mouse. Por exemplo, quando clicamos em Iniciar e aparece um menu, no qual consta a opção Programas, depois Acessórios e finalmente Bloco de Notas, é o EXPLORER.EXE que está recebendo os comandos do mouse e apresentando os menus na tela. Portanto, quando você usa um comando ou programa, como o Bloco de Notas, o que ocorrer na verdade é o seguinte:

1) Inicialmente o EXPLORER.EXE está checando se você fornece algum comando pelo teclado ou pelo mouse.

2) Você clica em Iniciar / Programas / Acessórios / Bloco de Notas.

3) O programa EXPLORER.EXE identifica que o programa chamado Bloco de Notas é na verdade o NOTEPAD.EXE. Ele envia comandos para outros componentes do sistema operacional para que procurem no disco o arquivo NOTEPAD.EXE e para que façam sua carga na memória RAM.

4) O Windows é um sistema operacional que permite que vários programas possam ser executados ao mesmo tempo. Na verdade o processador dedica uma fração do seu tempo para cada um dos programas em execução. Por exemplo, enquanto a área de trabalho do Windows continua na tela e novos comandos podem ser usados (ou seja, o programa EXPLORER.EXE está ativo), o processador também exibe a janela do programa NOTEPAD.EXE. Você pode então utilizar o NOTEPAD.EXE, digitando um texto e salvando-o em um arquivo.

5) Você finaliza o programa NOTEPAD.EXE, fechando a sua janela ou usando o comando Arquivo / Sair.

Podemos entender então que nenhum programa chega até a memória por mágica, e sim, através do controle feito pelo sistema operacional. Alguém mais observador pode então ficar com a seguinte dúvida: “Se é o sistema operacional quem lê para a RAM todos os programas a serem executados, como é então que o próprio sistema operacional chegou na RAM?”.

Realmente é uma dúvida muito interessante. No instante em que ligamos o computador, a RAM não contém programa algum (lembre-se que os dados existentes na RAM são apagados quando o computador é desligado). Nesse instante, o sistema operacional está armazenado no disco rígido e precisa ser carregado na memória. Quem faz a carga do sistema operacional para a memória é um programa chamado BIOS, que fica gravado na memória ROM. Lembre-se que a memória ROM não perde seus dados quando o computador é desligado.

Portanto, no instante em que ligamos o computador, o BIOS já está na memória, e é imediatamente processado pela CPU. O processamento do BIOS começa com uma contagem de memória, seguido de alguns testes rápidos no hardware, e finalmente a leitura do sistema operacional do disco para a memória RAM. Esse processo, ou seja, a carga do sistema operacional na memória RAM, é chamado de boot. A figura 25 mostra o processo de boot com maior clareza:

HARD-09

Figura 2.25

Boot e carga de um programa.

 

1) No instante em que o computador é ligado, o sistema operacional (S.O.) está armazenado em disco, a RAM está “vazia”, e a CPU executa o BIOS.

2) Mostra o instante em que termina a operação de boot. O sistema operacional já está carregado na memória e já está sendo executado pela CPU.

3) Mostra o que ocorre imediatamente antes da execução do programa NOTEPAD.EXE. O sistema operacional (mais especificamente, o programa EXPLORER.EXE, que faz parte do S.O.) recebe um comando do usuário para que leia o arquivo NOTEPAD.EXE do disco para a memória RAM.

4) O programa NOTEPAD.EXE está sendo executado pela CPU.
Sistema Operacional

Vimos que o sistema operacional é um conjunto de programas que são carregados na memória quando o computador é ligado, e que tem como uma de suas responsabilidades, providenciar a execução dos comandos solicitados pelo usuário. Não fique achando que é só isso o que o sistema operacional faz. Essa é apenas uma de suas funções.

Em um passado recente, muitos sistemas operacionais de diversos computadores receberam o nome de D.O.S, que significa “Disk Operating System” (Sistema Operacional de Disco). Até meados dos anos 90, o sistema operacional mais utilizado nos PCs era o MS-DOS (Microsoft Disk Operating System). A partir de meados dos anos 90, o sistema operacional mais comum passou a ser o Windows 95, seguido pelas suas atualizações (Windows 98, Windows ME, Windows XP…). Ainda assim o chamado “modo MS-DOS” é oferecido juntamente com o Windows. Usuários de programas antigos podem desta forma utilizar este “MS-DOS” embutido no Windows, tornando possível a execução de programas antigos.

Uma das atribuições do sistema operacional, como vimos, é fazer a carga e providenciar a execução dos programas que o usuário solicita. Mesmo quando um programa qualquer está em execução, o sistema operacional continua ajudando. Por exemplo, muitos programas precisam realizar acesso ao teclado, vídeo e impressora, assim como acessos ao disco para ler e gravar arquivos. Todos esses acessos são realizados pelo sistema operacional, que fica o tempo todo ativo, prestando serviços aos programas que estão sendo executados.

O sistema operacional também faz um gerenciamento dos recursos do computador, para evitar que os programas entrem em conflito. Por exemplo, o sistema operacional evita que dois programas simultaneamente acessem a mesma área da memória, o que poderia causar grandes problemas. O sistema operacional funciona como um “maestro”, providenciando para que todos os programas e todos os componentes do computador funcionem de forma harmônica.
Conversões de bases de numeração

Este tópico é mais ligado à matemática que à informática. É um assunto que faz parte do programa de matemática do ensino fundamental (antigo primeiro grau), mas muitas escolas acabam deixando-o de lado. Para usar um computador não é preciso conhecer as bases de numeração, mas para quem vai desenvolver programas ou trabalhar com hardware, freqüentemente é necessário usá-las.

Estamos acostumados a usar a base 10 por motivos históricos: temos 10 dedos, e os dedos foram a primeira tentativa de contar, há alguns milhares de anos. Nesta base são usados 10 algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Do ponto de vista matemático, podemos ter bases de numeração de qualquer tipo. As bases usadas em computação são as indicadas na tabela abaixo:

Base Número de dígitos Dígitos
Binária 2 0, 1
Octal 8 0, 1, 2, 3, 4, 5, 6, 7
Decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Hexadecimal 16 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

A contagem de números sucessivos consiste em aumentar o dígito das unidades até o valor máximo (no caso da base decimal, o máximo é 9). Ao chegarmos no máximo, o dígito das unidades passa a ser zero, e o dígito das dezenas é aumentado. Quando o dígito das dezenas chega ao valor máximo, ele se torna zero e o das centenas é aumentado, e assim por diante. Sem muito aprofundamento matemático, note que só faz sentido em chamar as posições de unidades, dezenas e centenas se estivermos usando a base 10.

Vamos agora contar os 20 primeiros números em cada uma das bases citadas:

Base 10:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19.

Bastante familiar, mas veja como seriam eles na base 8:
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23.

Note que o “10” na base octal é o mesmo que “8” na base decimal. O “23” em octal corresponde ao “19” em decimal.

Na base hexadecimal temos 16 dígitos. São usados além dos tradicionais 0 a 9, novos dígitos com maiores valores. Convencionou-se utilizar letras do alfabeto latino, ao invés de criar novos algarismos. A contagem dos 20 primeiros números na base hexadecimal seria então:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 12, 13.

A mesma contagem usando a base 2 ficaria:

0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, 1111, 10000, 10001, 10010, 10011.

Parece estranho, mas todas as bases tem algo em comum, que é o método de contagem. Chegando ao dígito máximo (1 no caso da base binária, 7 no caso da octal, 9 no caso da decimal e F no caso da hexadecimal), ele se torna zero e fazemos o “vai 1”. Poderíamos assim construir uma tabela de equivalência:

Decimal Binário Octal Hexadecimal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13

Note que se não tomarmos cuidado, podemos fazer confusão entre as bases. Por exemplo, o número 13 tem valores diferentes quando usamos bases decimal, octal e hexadecimal. Quando não é feita ressalva alguma, consideramos que um número está expresso em decimal. Quando é usada uma base diferente, devemos usar um indicador apropriado. Por exemplo, o 13 em hexadecimal pode ser escrito de duas formas:

13h ou 1316

Em octal usamos indicadores como:

13q ou 138

Em binário usamos um “b” ou um índice “2” ao seu final. Por exemplo:

1001b ou 10012

De acordo com a tabela, vemos por exemplo que:

19 = 10011b = 23q = 13h

Muitas calculadoras científicas possuem funções para conversões de bases de numeração. A própria calculadora virtual que acompanha o Windows tem essas funções. Use Iniciar / Programas / Acessórios / Calculadora para executar o programa. Use então o comando Exibir / Científica. Digite agora um número decimal qualquer e use as opções Hex, Dec, Oct e Bin para fazer as conversões. Na figura 26, digitamos o número 2002 em decimal e a seguir marcamos a opção Hex. O número é automaticamente convertido, resultando em 7D2. Portanto 2002 = 7D2h.

0226

Figura 2.26

A calculadora do Windows faz mudanças de base.

 

 

 

Quando não temos uma calculadora, podemos fazer mudanças de base através de cálculos manuais. Vejamos como.
Conversão de uma base qualquer para a base decimal

Dado um número expresso em uma base qualquer, tudo o que temos que fazer é somar as parcelas relativas a cada dígito. Cada parcela é igual ao valor do dígito multiplicado pelo seu peso. Os pesos são potências da base usada. Veja por exemplo o que significa o número 2375 na base 10:

2375 = 2×1000 + 3×300 + 7×10 +5×1

ou seja:

2375 = 2×103 + 3×102 + 7×101 + 5×100

Como vemos, cada algarismo é multiplicado por uma potência da base (lembrando que 100 vale 1 e que 101 vale 10). Uma fórmula geral, considerando um número abcde expresso na base x, seu valor na base 10 seria:

a.x4 + b.x3 +c.x2 +d.x +e

Usemos a fórmula para calcular quanto vale 7D2h (base 16). Ficaria:

7×162 + Dx16 + 2

Lembrando que o dígito D em hexadecimal vale 13 decimal, e trocando 162 por 256 (16×16), ficaríamos com:

7×256 + 13×16 + 2 = 1792 + 208 + 2 = 2002

Portanto 7D2h = 2002, como já constatamos pela calculadora do Windows.

Em um outro exemplo, vamos converter o número binário 10011101b para decimal. Ficaríamos com:

1×27 + 0x26 + 0x25 + 1×24 +1×23 + 1×22 + 0x2 + 1

Substituindo as potências de 2 ficamos com:

1×128 + 1×16 + 1×8 + 1×4 + 1 = 157
Conversão da base decimal para uma base qualquer

A conversão de um número decimal para uma base qualquer consiste em realizar divisões sucessivas e tomar os restos dessas divisões. Os valores dos restos formarão os dígitos na nova base. Vamos mostrar o método através do exemplo de conversão do número 2002 decimal para a base 16. Devemos então fazer divisões sucessivas por 16. Cada quociente deve ser a seguir dividido por 16, até que o quociente fique menor que a base.

HARD-010

Figura 2.27

Exemplo de conversão de base 10 para base 16.

 

A figura 27 mostra a operação completa. O número decimal 2002 a ser convertido é dividido pela base desejada, no caso 16. O resultado da divisão foi 125, e o resto foi 2. O número 125 é agora dividido por 16, e encontramos o resultado 7 e resto 13. Enquanto o resultado é maior ou igual à base, continuamos a divisão. Terminadas todas as divisões, o resultado final (no caso, 7) é o primeiro dígito do valor convertido. Os dígitos seguintes são os restos das divisões. Note que o resto 13 é expresso como D em hexadecimal. Concluímos portanto que 2002 = 7D2h.

Os processos de conversão de base são relativamente trabalhosos devido ao elevado número de cálculos. Muitas pessoas não gostam de matemática, e muitos estudantes desistem da informática quando começam um curso por conceitos numéricos como este. Se você achou complicado fazer mudanças de base, não desanime. Você não precisará fazer isso no dia a dia.
Conversão entre duas bases quaisquer

Uma forma simples de fazer esta conversão, apesar de trabalhosa para executar, é converter primeiro para a base 10, para depois converter para a base desejada. Vamos exemplificar mostrando como converter o número 10011101b para hexadecimal. Inicialmente convertemos 10011101b para decimal. Já vimos em um exemplo anterior que este valor é 157. Agora vamos fazer as divisões sucessivas de 157 para chegarmos à base 16. Dividindo 157 por 16 ficamos com 9 e resto 13.

HARD-011

Figura 2.28

Convertendo 157 decimal para a base 16.

Tomamos agora os resultados para formar os dígitos do valor convertido. Lembrando que 13 decimal corresponde a D em hexadecimal, concluímos que 10011101b = 157 = 9Dh.
Conversões simplificadas entre binário, octal e hexadecimal

Essas conversões são complicadas quando são feitas em duas etapas, como no exemplo anterior. Felizmente existem formas mais simples de fazê-las, sem praticamente cálculo algum. Para converter de binário para hexadecimal, divida o número a partir da direita, em grupos de 4. Cada grupo de 4 dígitos deve ser então transformado em um dígito hexadecimal. Vamos tomar como exemplo o número binário 10011101b mostrado no exemplo anterior. Dividindo em grupos de 4 dígitos, da direita para a esquerda, ficamos com:

1001 1101

Agora basta saber que 1001 vale 9, e que 1101 vale D, e temos o valor convertido, 7D. Assim não é preciso fazer cálculos exaustivos, basta conhecer as representações binárias e hexadecimais de números de 0 a 15:

Binário Hex   Binário Hex
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

Fica fácil fazer a conversão até mesmo de números grandes. Por exemplo, para converter 11011001011011101001101b para hexadecimal, temos:

110 1100 1011 0111 0100 1101 = 6CB74Dh

Note que o primeiro grupo ficou com apenas 3 dígitos, já que a separação é feita da direita para a esquerda. Devemos completar com zeros à esquerda até formar 4 dígitos, portanto 110 fica como 0110, que vale 6 de acordo com a tabela.

A conversão de hexadecimal para binário é ainda mais simples. Basta escrever cada dígito hexadecimal na sua forma binária. Por exemplo, para converter 57CFh para binário temos 5=0101, 7=0111, C=1100 e F=1111:

0101 0111 1100 1111

Podemos agora suprimir os espaços em branco e remover os zeros à esquerda, ficando com 101011111001111b

A base octal é pouco usada, mas suas conversões para binário são simples. Para converter de binário para octal, separamos o número em grupos de 3 dígitos, da direita para a esquerda, e a seguir usamos a tabela:

Binário Octal Binário Octal
000 0 100 4
001 1 101 5
010 2 110 6
011 3 111 7

Por exemplo, para converter 10011101000110b para octal, ficamos com:

10 011 101 000 110 = 23506q

Para converter de octal para binário, basta escrever cada dígito octal na sua representação binária. Por exemplo para converter o número 32613q para binário, usamos 3=011, 2=010, 6=110, 1=001 e 3=011. Ficamos então com:

32613q = 011 010 110 001 011

O zero à esquerda é suprimido e ficamos com 11010110001011b.