Você está na página 1de 117

ORGANIZAO DE

COMPUTADORES

autor do original
MARCO FBIO POLLI

1 edio
SESES
rio de janeiro 2015
Conselho editorial fernando fukuda, simone markenson, jeferson ferreira fagundes

Autor do original marco fbio polli

Projeto editorial roberto paes

Coordenao de produo rodrigo azevedo de oliveira

Projeto grfico paulo vitor bastos

Diagramao fabrico

Reviso lingustica aderbal torres bezerra

Imagem de capa nome do autor shutterstock

Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida
por quaisquer meios (eletrnico ou mecnico, incluindo fotocpia e gravao) ou arquivada em
qualquer sistema ou banco de dados sem permisso escrita da Editora. Copyright seses, 2015.

Dados Internacionais de Catalogao na Publicao (cip)

P771o Polli, Marco


Organizao de computadores / Marco Polli.
Rio de Janeiro: SESES, 2014.
128 p. : il.

ISBN 978-85-60923-49-6
1.Cincias da computao. 2. Organizao de computadores.
3. Arquitetura de computadores. 4. Processamento. I. SESES.
II. Estcio
CDD 004.22

Diretoria de Ensino Fbrica de Conhecimento


Rua do Bispo, 83, bloco F, Campus Joo Ucha
Rio Comprido Rio de Janeiro rj cep 20261-063
Sumrio

Prefcio 5

1. Processamento de Dados
e Estrutura Bsica do Computador 8
Organizao e arquitetura de computadores 9
Processamento de dados, Informao e Conhecimento 9
Breve histrico dos computadores 12
Viso geral do computador pessoal 19
Elementos Bsicos da Arquitetura de Von Neumann 22
Construo de algoritmos simples 25

2. Representao de Dados 34

Elementos binrios fundamentais: bits, bytes e words. 34


Bases numricas 38
Representao de caracteres 44
Tipos de dados e uso de variveis em algoritmos 46

3. lgebra Booleana e Operaes Lgicas em


Algoritimos 56
lgebra booleana 57
Portas lgicas 64
Operaes aritmticas e lgicas em algoritmos 65
4. Instrues e Processamento 78

Componentes fundamentais para o processamento 78


Instrues de computador 80
Aspectos de arquitetura nos computadores pessoais 85

5. Memria e Dispositivos de Entrada e Sada 98

Memria 99
Dispositivos de entrada e sada E/S 110
Tipos de Computadores 111
Prefcio
Prezados(as) alunos(as)

No fim da dcada de 1970, os computadores pessoais comeam a ser introduzidos


no mercado. Ferramentas de processamento de dados que antes eram apenas dispo-
nveis para grandes empresas, por meio de mquinas que ocupavam salas inteiras,
passaram a estar em cima da mesa dos escritrios e das casas das pessoas. S esse
desenvolvimento j seria suficente para mudar a nossa sociedade, mas a histria no
parou a. A interligao desses computadores e dos servidores na internet, transfor-
mou a maneira com que as pessoas se comunicam, compram, se divertem e criam. Por
fim, o prprio computador pessoal deixou de ser o centro desse modo de vida, com
smartphones, tablets e dispostivos que ainda esto sendo criados.
Em sua histria, os computadores mostraram ser uma base de inovaes contnuas
e de uso criativo, uma histria que ainda continua e podemos influenciar. Para tanto,
devemos conhecer como os computadores funcionam e so organizados. Esse conhe-
cimento essencial tanto para o desenvolvimento de hardware, de software ou mesmo
para se fazer um bom uso dessa tecnologia.Com essa preocupao, o contedo da
disciplina organizado do seguinte modo:
Captulo 1 Entenderemos o que processamento de dados e o funcionamento
bsico de um computador.
Captulo 2 Ser explicada a linguagem binria.
Captulo 3 Entenderemos a lgebra booleana e a sua implementao em algo-
ritmos simples.
Captulo 4 Veremos com mais detalhes como o computador trata dados e ins-
trues na Unidade Central de Processamento.
Captulo 5 Exploraremos os tipos de memria e suas inter-
-relaes.

Bons estudos!

6
1
Processamento de
Dados e Estrutura
Bsica do Computador
1 Processamento de Dados
e Estrutura Bsica do Computador

Computadores no se limitam aos notebooks e aos desktops nos escritrios, eles


esto nos equipamentos mdicos, carros, aparelhos de TV, celulares e em sim-
ples brinquedos. impossvel dissociar a computao do nosso estilo de vida.
Porm, so poucas pessoas que de fato entendem como funciona um computa-
dor e como dados so processados. Esse conhecimento importante para que
os computadores e seu modo de usar continuem a se desenvolver.
Aqui vamos descrever os elementos bsicos de computao e sua histria, ser-
vindo de base para os demais captulos da disciplina. Vamos entender o concei-
to de dados e seu processamento. Um breve panomora da trajetria histrica
dos computadores ser apresentado para que depois discutamos a arquitetura
da Von Neumann. Dessa forma, teremos uma viso fundamental sobre o funcio-
namento do computador.

OBJETIVOS
Compreender a diferena entre organizao e arquitetura de computadores.
Dominar o conceito de dados e do seu processamento.
Entender a trajetria de evoluo dos seus computadores e seus tipos principais.
Identificar as partes principais de um computador segundo a arquitetura de Von Neumann.

REFLEXO
Voc j deve ter visto diversos filmes e artigos que discutem o tema da inteligncia artificial. Seria
possvel mesmo que computadores sejam inteligentes? Eles poderiam ter vontade ou conscin-
cia? Ao ler esse captulo, busque refletir sobre o que um computador pode ou no fazer, relem-
brando as obras de fico e opinies sobre o assunto.

captulo 1 9
1.1 Organizao e arquitetura de computadores

A organizao dos computadores trata da estrutura dessas mquinas, preocu-


pando-se com circuitos, tipos de memria e demais componentes fsicos usa-
dos, como os perifricos. Ou seja, busca-se saber como se d o funcionamento
do computador. J a arquitetura dos computadores fornece elementos crticos
a serem usados pelo programador: dados e suas representaes, operaes l-
gicas e rotinas, etc. Por isso, a da descrio da arquitetura possui uma natureza
mais abstrata. Devido importncia de se integrar conhecimento de hardware
e software, esta disciplina cobrir aspectos tanto de organizao quanto arqui-
tetura, seguindo o caminho de obras de referncia na rea (NULL & LOBUR,
2010; MURDOCA & HEURING; 2000; STALLINGS, 2002; MONTEIRO, 2007).
Por mais simples ou complexa que seja a estrutura de um computador, a
sua funo bsica o processamento de dados. A seguir, vamos discutir qual
o significado dessa atividade e a sua relao com o conhecimento.

1.2 Processamento de dados, Informao e Conhecimento

Vamos discutir um pouco esses conceitos e as diferenas entre eles?


A seguir, apresento trechos da definio dada pelo professor Dr. Valdemar W.
Setzer, disponibilizada em: <http://www.ime.usp.br/~vwsetzer/dado-info.html>.
Segundo o professor Dr. Valdemar Setzer, podemos dizer que dado :

[...] uma sequncia de smbolos quantificados ou quantificveis. Portanto, um texto um


dado. De fato, as letras so smbolos quantificados, j que o alfabeto, sendo um conjunto
finito, pode por si s constituir uma base numrica (a base hexadecimal emprega tradi-
cionalmente, alm dos 10 dgitos decimais, as letras de A a E). Tambm so dados fotos,
figuras, sons gravados e animao, pois todos podem ser quantificados a ponto de se
ter eventualmente dificuldade de distinguir a sua reproduo, a partir da representao
quantificada, com o original. muito importante notar-se que, mesmo se incompreensvel
para o leitor, qualquer texto constitui um dado ou uma sequncia de dados [...]. (SETZER)

Segundo o Dr. Setzer, o dado uma entidade matemtica puramente sin-


ttica, ou seja, os dados podem ser descritos por estruturas de representao.
Assim sendo, podemos dizer que o computador capaz de armazenar dados.

10 captulo 1
Esses dados podem ser quantificados, conectados entre si e manipulados pelo
Processamento de Dados.
Podemos definir dado tambm como unidades bsicas a partir das quais
as informaes podero ser elaboradas ou obtidas. So fatos brutos, ainda no
organizados nem processados.
J a informao seria:

[...]umaabstraoinformal(isto,nopodeserformalizadaatravsdeumateorialgicaoumate-
mtica),queestnamentedealgum,representandoalgosignificativoparaessapessoa.Note-
-se que isto no uma definio, uma caracterizao, porque algo, significativo e al-
gum no esto bem definidos; assumo aqui um entendimento intuitivo (ingnuo) desses
termos. Por exemplo, a frase Paris uma cidade fascinante um exemplo de informao
desde que seja lida ou ouvida por algum, desde que Paris signifique para essa pessoa
a capital da Frana (supondo-se que o autor da frase queria referir-se a essa cidade) e
fascinante tenha a qualidade usual e intuitiva associada com essa palavra.

Assim, a informao depende de algum tipo de relacionamento, avaliao


ou interpretao dos dados.
Veja tambm que informao e dado mantm relaes:

[...] Se a representao da informao for feita por meio de dados, como na frase sobre
Paris, pode ser armazenada em um computador. Mas, ateno, o que armazenado na
mquina no a informao, mas a sua representao em forma de dados. Essa repre-
sentao pode ser transformada pela mquina, como na formatao de um texto, o que
seria uma transformao sinttica. A mquina no pode mudar o significado a partir deste,
j que ele depende de uma pessoa que possui a informao. Obviamente, a mquina pode
embaralhar os dados de modo que eles passem a ser ininteligveis pela pessoa que os re-
cebe, deixando de ser informao para essa pessoa. Alm disso, possvel transformar a
representao de uma informao de modo que mude de informao para quem a recebe
(por exemplo, o computador pode mudar o nome da cidade de Paris para Londres). Hou-
ve mudana no significado para o receptor, mas no computador a alterao foi puramente
sinttica, uma manipulao matemtica de dados.
Assim, no possvel processar informao diretamente em um computador. Para isso
necessrio reduzi-la a dados. No exemplo, fascinante teria que ser quantificado, usando-
se por exemplo uma escala de zero a quatro. Mas ento isso no seria mais informao [...].

captulo 1 11
Podemos agrupar dados isolados e torn-los consistentes ao se transfor-
marem em informaes. Por exemplo, se tivermos um conjunto de dados que
descreva a temperatura do ambiente num local, horrio e data, poderamos ter
a seguinte relao:

ADAPTADO DE (CRTES, 2008)


Em Ribeiro Preto, SP,
no dia 3 de fevereiro,
15h10
s 15h10 estava uma
temperatura de 24.
3 de fevereiro
Processamento

Entrada Classificar Sada

(Dados) Filtrar (Informaes)

Organizar
Ribeiro
24
Preto- SP

Figura 1 - Gerao de informaes a partir do processamento de dados.

Assim, o conjunto de dados inicial foi organizado de maneira que faa sen-
tido queles que o estiverem lendo. Isto os torna informao. No entanto, a
representao no computador feita baseada nos dados.

E como fica o conhecimento?

Caracterizo Conhecimento como uma abstrao interior, pessoal, de algo que foi expe-
rimentado, vivenciado, por algum. Continuando o exemplo, algum tem algum conheci-
mento de Paris somente se a visitou.

Desta maneira, o conhecimento precisa ser descrito por informaes.

12 captulo 1
[...] A informao pode ser inserida em um computador por meio de uma representao
em forma de dados (se bem que, estando na mquina, deixa de ser informao). Como o
conhecimento no sujeito a representaes, no pode ser inserido em um computador.
Assim, neste sentido, absolutamente equivocado falar-se de uma base de conheci-
mento em um computador. O que se tem , de fato, uma tradicional base (ou banco)
de dados.
Um nen de alguns meses tem muito conhecimento (por exemplo, reconhece a me,
sabe que chorando ganha comida etc.). Mas no se pode dizer que ele tem informaes,
pois no associa conceitos. Do mesmo modo, nesta conceituao no se pode dizer que
um animal tem informao, mas certamente tem muito conhecimento. [...]

A informao, segundo o Dr. Setzer, associa-se semntica, enquanto o co-


nhecimento est associado pragmtica, ou seja, algo existente no mundo real.

CONEXO
Recomendaes 1.3
Leia na ntegra o artigo do Dr. Setzer em: <http://www.ime.usp.br/~vwsetzer/dado-info.html>.
Acesso em: 24 jul. de 2014.

1.3 Breve histrico dos computadores

Um dos pontos interessantes na histria do surgimento dos computadores foi


a rpida evoluo das tecnologias utilizadas para sua produo.
O primeiro computador de grande porte a usar eletrnica digital foi o ENIAC
(Electrical Numerical Integrator and Calculator). Ele era de grande porte, devido
quantidade de clculos que ele era capaz de realizar: cerca de 5 mil somas ou
360 multiplicaes por segundo (muito pouco comparado capacidade de nos-
sos computadores atuais).

captulo 1 13
WIKIMEDIA

Figura 2 ENIAC (Parte dele, na verdade, pois aqui vemos sua interface de operao.)

O ENIAC comeou a ser desenvolvido por John Eckert e John Mau-


chly. O desenvolvimento iniciou-se em 1943, com financiamento mili-
tar, para ser usado na Segunda Guerra Mundial, mas s se tornou opera-
cional em 1946. Tinha cerca de 30 toneladas e ocupava 180 m2 de rea.
Em 1944, juntou-se ao grupo de pesquisadores o engenheiro John Von Neu-
mann. Este criou a arquitetura (chamada de arquitetura de Von Neumann) que
usada at hoje nos computadores comerciais.
WIKIMEDIA

Figura 3 O ENIAC numa viso mais ampla

14 captulo 1
WIKIMEDIA

O ENIAC no tinha sistema operacional e


todas as operaes eram inseridas diretamente
na mquina usando cdigos numricos.
Foi produzido usando a tecnologia de vlvu-
las a vcuo, que foi a tecnologia inicial para com-
putadores eletrnicos. Por isto, ele o marco da
Primeira Gerao de Computadores. O proble-
ma das vlvulas era o custo alto para manuten-
o. Para voc ter uma ideia, o ENIAC foi cons-
trudo usando mais de 17 mil vlvulas e gastava
mais de 200.000 watts, aquecendo muito!
As vlvulas eletrnicas possuam o tama-
nho aproximado de uma lmpada eltrica.
A era da computao comercial iniciou-se
no ano de 1951, quando o UNIVAC (Universal
Automatic Computer) foi entregue ao primeiro
cliente: o escritrio do Censo do Estados Uni-
dos para tabulao dos dados do censo do ano
Figura 4 Foto de uma vlvula anterior. Pode-se dizer que o UNIVAC foi o re-
eletrnica sultado de modificaes positivas no ENIAC.

Em 1947, os cientistas John Barde-


ANNEDAVE / DREAMSTIME.COM

en, Walter H. Brattain e William Sho-


ckley desenvolveram o transistor. O
transistor um pequeno dispositivo
que transmite sinais eletrnicos usan-
do um resistor. Os transistores revo-
lucionaram a eletrnica e a maneira
de construir computadores. Alm de
serem muito menores do que as vlvu-
las, consumiam muito menos energia
e geravam menos calor. Tambm eram
Figura 5 Foto de um transistor
simples mais rpidos e mais confiveis do que
as vlvulas. Um novo avano, nesta
mesma poca, foi a criao de uma linguagem simblica para manipular ins-
trues das mquinas em vez de cdigos numricos, e isto tornou um pouco

captulo 1 15
menos ardil a tarefa de criar programas para os computadores. Depois das
linguagens assembly (as linguagens simblicas), surgiram as linguagens de
mais alto nvel, como Fortran e COBOL. So linguagens com comandos em
ingls, em vez de smbolos e marcaes como nas linguagens assembly. E esta
foi chamada a segunda gerao dos computadores. Nesta poca, os computa-
dores ainda no atingiam as pessoas comuns da sociedade, sendo usados
apenas por universidades e por organizaes do governo e militares.
Entre 1965 e 1970, surgiu o Circuito Integrado (CI). Trata-se de um circuito
eletrnico completo num pequeno chip feito de silcio. Em 1965, os CIs come-
aram a substituir os transistores nos computadores e a ns tivemos os Com-
putadores de Terceira Gerao.

ALEXSKOPJE / DREAMSTIME.COM

Figura 6 Foto de circuitos integrados

O silcio um material chamado semicondutor, pois conduz corrente eltri-


ca quando misturado com impurezas qumicas em sua constituio (voc pode
pesquisar os detalhes de materiais semicondutores se ficar curioso!).
O marco importante desta terceira gerao foi o lanamento do computador da
srie IBM 360 em 1964. Trata-se de uma linha de computadores projetada pela IBM
tanto para uso comercial quanto cientfico. Foi uma srie com o intuito de inserir o
uso de computadores nos negcios e em operaes comerciais.

16 captulo 1
NASA / WIKIMEDIA
Figura 7 O IBM 360

J a quarta gerao de computadores, com incio na dcada de 1970, traz


consigo a criao do microprocessador. Os computadores atuais so muito me-
nores, mais de 100 vezes menores que aqueles de primeira gerao, mas um
nico chip mais poderoso que o prprio ENIAC. Para voc ter uma ideia, em
1977 uma calculadora podia fazer cerca de 250 multiplicaes por segundo,
custava de 300 a 500 dlares e pesava mais de 500 gramas. Hoje, uma calcula-
dora pesa muito pouco, custa 1 dlar ou menos s vezes (depende da cotao)
e realiza muito mais clculos. Em comparao ao ENIAC, um Pentium de 150
MHz era capaz de mais de 300 milhes de operaes de soma por segundo, en-
quanto que o ENIAC processa apenas 5.000 operaes.

CONCEITO
International Business Machines (IBM) trata-se de uma empresa de desenvolvimento de
hardware e software, estadunidense, com quase um sculo de existncia. Mais informaes
em <http://www.ibm.com/ibm/br/pt/>.

captulo 1 17
D uma olhada na figura a seguir.

Figura 8 Evoluo dos computadores


Retirado de A histria dos processadores, desde ENIAC at Nehalem/INTEL.

Claro que a histria mais recente dos computadores voc j conhece, mas
vamos apenas comentar um pouco sobre os computadores pessoais. Estes com-
putadores mudaram completamente o paradigma do uso de computadores.
O primeiro computador pessoal que foi disponibilizado ao pblico em ge-
ral foi o MITS Altair, produzido em 1975. Na poca, foi choque grande, pois
os computadores s faziam sentido para empresas, universidades, o governo
ou os militares! Para que ter um computador em casa? Se fosse para investir,
investiria em maquinrios, em ferramentas, mas um computador? No teria
serventia! Esse seria um tpico discurso de um pai cujo filho acabou de lhe fazer
um pedido naquela poca!

18 captulo 1
ATENO
A evoluo na velocidade dos microprocessadores tida para alguns como a quinta gerao
dos computadores. O marco seria o microprocessador Intel 386, que permitia a execuo de
vrias tarefas ao mesmo tempo.

Quando Steve Jobs e Steve Wozniak mostraram ao pblico jovem o Apple I,


todo mundo foi ao delrio! Ele possua um teclado fcil de usar e tela! A Apple
mostraria, mais tarde, sua facilidade em conseguir sucesso comercial com o
Apple II e o software de planilha eletrnica VisiCalc.
VOLKER STEGER / SCIENCE PHOTO LIBRARY / SPL DC / LATINSTOCK

VOLKER STEGER / SCIENCE PHOTO LIBRARY / SPL DC / LATINSTOCK


Figura 10 Apple I Figura 11 Apple II

Em 1981, a IBM lanou seu primeiro computador pessoal e capturou a


maior fatia de mercado em 18 meses. O padro IBM PC foi adotado e copiado
por outras empresas.
HO / IBM / AFP

Figura 12 IBM PC

captulo 1 19
No podemos nos esquecer de um nome importantssimo no sculo passado.
Claro, ainda um nome muito importante: Microsoft. A hoje gigante empresa de
software forneceu o sistema operacional para o computador pessoal da IBM. Este sof-
tware, chamado de MS-DOS, foi usado pela IBM e pelas empresas que criaram com-
putadores pessoais baseadas no padro IBM PC. Com grande expanso, a Microsoft
logo evoluiu para novas verses de seu sistema operacional at que descobriram e
popularizaram a interface grfica com o sistema operacional Windows! Os sistemas
Windows mudaram o conceito de interface entre usurio e computador. No foi a
Microsoft que criou o conceito de interface grfica, mas foi uma das principais em-
presas (seno a principal) a populariz-lo!

CONEXO
Recomendaes 2.1
Assista ao filme histria do computador em minutos disponvel em <www.youtube.com/wa-
tch?v=F3qWg1JBPZg>.
Acesso em: 24 jul. de 2014.

1.4 Viso geral do computador pessoal

O hardware de seu computador pessoal precisa dos seguintes componentes


para um efetivo funcionamento:
dispositivos de entrada;
dispositivos de sada;
dispositivos de armazenamento secundrio;
unidade de processamento.

O funcionamento bsico de um computador convencional acontece de


acordo com a figura a seguir:

20 captulo 1
Armazenamento secundrio

ADAPTADO DE: (CAPRON E JOHNSON, 2004)


O dispositivo de
armazenamento
secundrio armazena
dados e programas

A unidade central de
processamento (UCP)
executa instrues
O dispositivo
O dispositivo de computador
de sada
de entrada envia
disponibiliza
dados unidade
os dados
central de
processados
processamento
A memria mantm (as Informaes)
dados e programas em
uso no momento

Entrada Processamento Sada

Figura 13 Componentes principais de um computador e mecanismo de funcionamento.

As informaes so inseridas no ambiente computacional por meio dos


dispositivos de entrada. Estes dispositivos permitem que ns, seres humanos,
ou equipamentos forneamos informaes para serem processadas. Exemplos
seriam o mouse, o teclado, leitores ticos, dentre outros.
Estas informaes de entrada so armazenadas na memria, e a unidade
central de processamento (UCP) realiza o devido tratamento destas. Aps isto,
dispositivos de sada podem exibir o resultado do processamento. Exemplos
de dispositivos de sada so monitores, impressoras, dispositivos de som etc.

CONEXO
Recomendaes 2.3
Veja o vdeo do Olhar Digital sobre o que considerar na hora de comprar um computador, em
<www.youtube.com/watch?v=vYo6IceDsVQ>.

captulo 1 21
Alm disso, existem componentes que permitem a gravao de dados de
maneira permanente e tambm o intercmbio de dados. Estes dispositivos so
chamados de dispositivos de armazenamento secundrio.
Detalhando um pouco mais os componentes de um computador, temos a
figura a seguir.

2 3

1
6

Figura 14 Componentes bsico do computador: 1 monitor, 2 placa-me, 3 proces-


sador, 4 memria RAM, 5 placas de expanso, 6 fonte de alimentao, 7 leitor tico
(DVD, CD etc.), 8 disco rgido (hd), 9 mouse, 10 teclado.

Dispositivos de entrada: 10 e 9
Dispositivos de sada: 1
Armazenamento secundrio: 7 e 8
Elementos da UCP: 2, 3, 4, 5 e 6.

A UCP representa toda a unidade que faz o processamento, mas no um


nico componente, pois rene diversos outros. Por exemplo, a placa-me, que
recebe este nome em razo de todos os demais componentes da UCP, perifri-
cos de entrada e de sada, dependerem dela para conexo. uma placa que faz
a interligao entre todos os componentes do computador. Nela h os slots de
memria, onde fica a memria RAM do computador. A memria RAM (mem-
ria de acesso randmico) a memria de trabalho da mquina. Nela ficam os

22 captulo 1
programas que esto sendo processados e todas as informaes necessrias.
Alm da memria RAM, temos o prprio processador, a unidade capaz de reali-
zar complexas operaes matemticas, e as placas de expanso, que permitem
adicionarmos novas funcionalidades ao nosso computador, como uma placa
que faa processamento dedicado de vdeo. Enquanto a memria RAM guarda
as informaes de trabalho, os discos rgidos guardam todas as informaes
e todos os programas. Quando desligamos o computador, as informaes so
salvas no disco. Quando ligamos o computador, os programas necessrios para
utilizao dele, bem como aquele que desejarmos, so carregados do disco
para a memria RAM.
Alm dos componentes vistos, podemos enumerar um outro tipo de dispo-
sitivo: Dispositivo para Comunicao Externa. No hardware de seu computa-
dor, ele tratado com um dispositivo de entrada e sada, mas interessante
diferenci-lo. Exemplos destes dispositivos so:
placas de rede;
hub;
switch;
modems.

1.5 Elementos Bsicos da Arquitetura de Von Neumann

Lembra-se de termos comentado sobre John Von Neumann, que participou da


criao do ENIAC? Apesar de Von Neumann ter sua formao na rea de mate-
mtica, sua contribuio foi muito importante em diversas outras reas e, ele
popularizou a chamada Arquitetura de Von Neumann, que ser nosso objeto de
estudo agora.
A arquitetura de Von Neumann a base da construo da principal arquite-
tura dos computadores modernos, os PCs.
De maneira bem simples, ela funciona assim:
A unidade central de processamento (UCP) faz operaes com
1. Informaes. Estas operaes podem ser:
a) operaes de entrada e sada, como leitura de dados do teclado e
escrever dados na tela. So operaes para insero de dados na
memria do computador ou para exibio de informaes que es-
tejam armazenadas nesta.

captulo 1 23
b) operaes aritmticas como adio, subtrao, multiplicao e di-
viso de valores inteiros ou ponto flutuante (basicamente, nme-
ros reais representados num formato definido);
c) operaes lgicas e relacionais como comparaes, testes de con-
dies lgicas etc.;
d) movimentao de dados entre os vrios componentes, ou seja, res-
gate e insero de informao na memria ou em dispositivos de
entrada e sada.
2. Para fazer estas operaes, necessitar de que as informaes estejam
na memria. Trata-se de um componente eletrnico para armazenar
informaes.
3. Alm da memria, existem os dispositivos de entrada e sada, como te-
clado e mouse (entrada) ou monitor e impressora (sada), que emitiro
as informaes num formato legvel ao usurio do computador.

Memria Primria Dados

Unidade de
Dados

Dados

Entrada e
Sada

Unidade Lgico Unidade de


Controle
e Aritmtica Controle

Figura 15 A arquitetura de Von Neumann Viso interna do funcionamento de um com-


putador.

Ento, basicamente, na arquitetura de Von Neumann, o que ocorre que


uma mquina pode armazenar seus programas e execut-los numa unidade
responsvel por diferentes operaes.
Pela figura, pudemos ver que as informaes podem ser dados ou infor-
maes de controle. As informaes de controle so aquelas que dizem o que
deve ser feito com os dados. Por exemplo, se tivssemos, de alguma maneira,

24 captulo 1
na memria a informao da expresso 5 + 7 < 10 ?, saberamos que estamos
tentando comparar a soma de 5 e 7 com o valor 10 e saber quem maior. Logo,
5, 7 e 10 so dados e + , < e ? so informaes de controle. O computador
entenderia que deve somar os dados 5 e 7 (controle +) e verificar se o resultado
menor que 10 (controle < e resultado ?).
As duas outras unidades da figura so a ULA (Unidade Lgica e Aritmtica)
que serve para realizar as operaes, efetivamente, e a UC (Unidade de Contro-
le), que serve para decodificar as operaes, ou seja, entender o que precisa ser
feito, e disparar novas operaes, caso necessrio.
A UCP entende operaes num determinado formato. Vamos aqui chamar
formato de linguagem, ok?
Bom, o computador entende a linguagem eletrnica que popularmente
chamada de binria, devido sua representao. Como um programador vai
escrever cdigos que descrevam operaes em binrio? No vai (geralmente)!
Nesse ponto, entrar em cena uma camada intermediria que cuidar disto
para ele! Um programador de hoje escreve cdigo em linguagem de alto nvel. Isto
quer dizer que a linguagem de mais fcil compreenso humana!

Os passos seguidos por um programador so:


1. Ele pensa no problema e o analisa;
2. depois formula algoritmos que possam resolver este problema;
3. na sequncia, transforma os algoritmos em cdigo de alto nvel (esta
fase chamada de codificao ou programao);
4. aps isto, traduz o cdigo de alto nvel, que resultar num executvel;
5. um executvel um programa que roda sobre uma plataforma;
6. uma plataforma um computador com sua arquitetura e um sistema
principal de gerenciamento de seus recursos, chamado sistema ope-
racional;
7. o sistema operacional sabe como fazer o executvel funcionar, usan-
do memria, dispositivos de entrada e sada etc.
8. o Windows, o Linux, o Solarix e o Unix, dentre outros, so exemplos de
sistemas operacionais (veremos mais sobre sistemas operacionais no
captulo seguinte).
9. mas sistema operacional por exemplo Windows, no aquela inter-
face que voc v com editores de texto e planilhas. Ele compreende os
programas, as rotinas que esto por trs de todo o funcionamento de
seu computador (tambm veremos mais disto no captulo seguinte).

captulo 1 25
1.6 Construo de algoritmos simples

Algoritmos so conjuntos sistemticos e formalizados de intrues voltados


para resoluo de um problema (PIVA JR. et al, 2012). O conceito de algorit-
mo no exclusivo da computao: uma receita de bolo, por exemplo, pode ser
considerado como tal. Porm, a estrutura de algoritmos se tornou mais difun-
dida a partir da programao.
Nos prximos dois captulos, vamos relacionar os conceitos de organizao
e arquitetura de computadores com sua implementao em algoritmos sim-
ples. Para tanto, vamos apresentar um ambiente de programao que pode ser
facilmente usado pelo aluno, alm de uma explicao introdutria sobre a es-
trutura de algoritmos.

1.6.1 Indicao de ambiente de desenvolvimento

Para simplificar o processo de codificao de algoritmos por meio de pseudo-


cdigos que utilizaremos neste e no prximo captulo um ambiente de desen-
volvimento conhecido como VisuAlg. Esse ambiente pode ser obtido gratuita-
mente e permite a construo e simulao de algoritmos. O programa VisuAlg
muito indicado para programadores iniciantes, uma vez que possui uma inter-
face simplificada e de fcil compreenso. O quadro 1.1 apresenta os endereos
principais do ambiente de desenvolvimento VisuAlg.

SITE OFICIAL
http://www.facom.ufu.br/~claudio/Cursos/PP/Docs/Visualg2.pdf

Download (endereo abreviado)

goo.gl/n8YLk

Download (endereo completo)

http://www.guanabara.info/2007/09/visualg-v25/

Quadro 1.1 Ambiente de Desenvolvimento VisuALg.

26 captulo 1
Inicialmente utilize um dos endereos apresentados no quadro 1.1 para reali-
zar o download do ambiente. Escolha uma pasta no seu computador para arma-
zenar o arquivo. Finalizado o processo de download clique duas vezes sobre o
arquivo e voc visualizar uma tela semelhante a ilustrada na figura 15.

Figura 16 Tela inicial do instalador do VisuAlg.

Clicando no boto avanar voc poder definir o diretrio para instalao


do programa. Geralmente no necessrio modificar o diretrio, assim, clique
novamente no boto avanar. Na tela Componentes Selecionados, voc tam-
bm no precisar realizar nenhuma alterao, dessa forma, clique novamente
no boto avanar. A tela Selecione o grupo do menu Iniciar, permite a especifi-
cao do nome que ser definido para menu, o que novamente no necessita de
modificao. A tela seguinte Selecionar Tarefas Adicionais, tambm j possui
as principais configuraes definidas, com isso, voc pode clicar no boto avan-
ar, e em seguida, clique no boto instalar. A instalao rpida e dura apenas
alguns segundos. No final, voc j poder iniciar o ambiente VisuAlg.
Para a criao de um novo algoritmo no ambiente VisuAlg, voc dever uti-
lizar o menu Arquivo>Novo, ou simplesmente pressionar as teclas de atalho
CTRL+N. Dessa forma, um novo algoritmo ser criado conforme ilustra a figura
2. Para salvar os algoritmos codificados voc dever utilizar o menu Arquivo>-
Salvar (CTRL+S). O ambiente VisuAlg utiliza a extenso .alg para representar os
arquivos com algoritmos.

captulo 1 27
Figura 17 Criao de um novo algoritmo no ambiente VisuAlg.

Nesse momento voc j tem o ambiente para desenvolvimento de algorit-


mos VisuAlg instalado no seu computador. Alm disso, voc j sabe como criar
um novo algoritmo. Poderemos agora iniciar um estudo mais detalhado a res-
peito da construo de algoritmos.

1.6.2 Estrutura bsica de um algortimo

O primeiro passo para a construo de algoritmos computacionais o enten-


dimento do conceito de algoritmo. Segundo Forbellone (2005), um algoritmo
uma sequncia de passos que visa atingir um objetivo bem definido. Outra
definio pode ser encontrada em Ascencio e Edilene (2002), em que um al-
goritmo descrito como uma sequncia de passos que deve ser seguida para
a realizao de uma tarefa. Dentro deste contexto, voc pode entender o termo
algoritmo como um conjunto de passos que busca a soluo de um problema.
No cenrio computacional, os algoritmos tm como fundamento a elabo-
rao de uma sequncia de passos de forma que o computador seja capaz de
solucionar um determinado problema. Em geral, os algoritmos so utilizados
para abstrair1 problemas do mundo real, e transform-los em solues no mun-
do computacional.

1 Avaliar caractersticas e propriedades em separado; considerar parte.

28 captulo 1
A escrita de algoritmos a base para o processo de desenvolvimento dos pro-
gramas de computador. No ciclo de vida do desenvolvimento de um programa, o
primeiro estgio a elaborao da representao algortmica. Assim, inicialmen-
te, os programadores criam uma especificao algortmica do problema compu-
tacional, antes de transform-lo no cdigo fonte de uma determinada linguagem
de programao. Com a representao algortmica do problema possvel espe-
cificar quais as principais funcionalidades do futuro programa, bem como, iden-
tificar possveis erros que ocorrero com a execuo do programa.
Para a construo de um algoritmo computacional necessrio a utiliza-
o de uma estrutura bsica, que definida a partir de uma sintaxe especfica
e contm blocos pr-determinados para codificao. Nesta estrutura, especi-
ficado, por exemplo, o nome do algoritmo, quais variveis sero utilizadas e o
bloco de instrues que contm a lgica do programa. O cdigo 1 apresenta a
estrutura bsica de um algoritmo computacional, a qual foi definida utilizando
uma representao conhecida como pseudocdigo. Esse tipo de representao
tambm comumente descrita como portugus estruturado ou portugol.

Cdigo 1
1 algoritmo semnome
2 // Funo :
3 // Autor :
4 // Data : 20/10/2011
5 // Seo de Declaraes
6 var
7
8 inicio
9 // Seo de Comandos
10 fimalgoritmo

Na primeira linha do algoritmo necessrio especificar um nome, da mes-


ma maneira que voc define nomes para documentos em editores de texto.
As linhas 2, 3 e 4 apresentam informaes gerais a respeito dos algoritmos.

captulo 1 29
importante destacar que estas linhas comeam pelos caracteres //, os
quais so chamados de comentrios. Uma linha de comentrio tem como
objetivo auxiliar o entendimento do algoritmo, assim, voc poder utiliz-las
sempre que necessrio. Outro detalhe interessante sobre os comentrios,
que as linhas comentadas no influenciam na execuo do algoritmo, dessa
forma, voc poder escrever comentrios em portugus da maneira que de-
terminar mais adequada. Na linha 5 temos a seo de declaraes, a qual ser
utilizada para declarao das variveis que fazem parte do programa. A linha
8 define o incio do algoritmo, e as linhas seguintes (Seo de Comandos),
especificam a lgica de programao utilizada no algoritmo. Por fim, a linha
10, denominada fimalgoritmo, representa o trmino do algoritmo.
Para demonstrar a utilizao do ambiente VisuAlg na codificao de algo-
ritmos, vamos escrever nosso primeiro algoritmo. Este algoritmo tem como
objetivo exibir seu nome completo na tela, assim, inicialmente voc dever
abrir o ambiente e escrever o algoritmo conforme apresentado na figura 17.

Figura 18 Codificao do algoritmo para exibir o nome na tela.

Finalizada a codificao do algoritmo fundamental salvar o cdigo antes


de realizar a execuo. Para isso, utilize o menu Arquivo>Salvar, ou simples-
mente pressione a tecla de atalho Ctrl+S. Voc pode escolher a pasta de sua
preferncia para armazenar o arquivo. A escolha do nome do algoritmo im-

30 captulo 1
portante, assim, recomenda-se no utilizar espaos, acentos, ou caracteres es-
peciais. Para este exemplo, utilizaremos o seguinte nome unid3_exemplo01.
alg. A extenso .alg utilizado pelo ambiente VisuAlg para identificar arquivos
do tipo algoritmo.
Para facilitar o acompanhamento da codificao, voc pode exibir os n-
meros das linhas, dessa forma, utilize o menu Exibir>Nmero de linhas para
habilitar o recurso. Em seguida, poderemos executar o algoritmo e visualizar o
resultado na tela. A execuo de um algoritmo no ambiente VisuAlg realizada
por meio do menu Algoritmo > Executar, alternativamente, voc poder utilizar
a tecla de atalho F9. A figura 4 apresenta o resultado da execuo do algoritmo.

Figura 19 Resultado da execuo do algoritmo no ambiente VisuAlg.

Com isso, voc aprendeu os procedimentos para codificao de um algoritmo


no ambiente VisuAlg, bem como, sua execuo e visualizao dos resultados.

ATIVIDADE
1. Especifique a diferena entre organizao e arquitetura de computadores.

2. Descreva a arquitetura de Von Neumann.

3. Pode-se dizer que o computador pessoal extinguiu os mainframes? Justifique.

4. Pesquise sobre outras arquiteturas de computadores alm daquela de Von Neumann.

captulo 1 31
REFLEXO
Vimos at aqui que h muito mais sobre computadores do que simplesmente entender como
eles funcionam. A histria e a evoluo dos computadores determinaram, de certa forma,
como as pessoas passaram a pensar em tecnologia e a consumir tecnologia. Mesmo que
voc no se torne especialista na rea de tecnologia da informao, sempre importante
saber como funcionam os equipamentos que sero usados no dia a dia. Isto facilita o dilogo
entre ns e as novas tecnologias.

LEITURA
Artigo O papel da informao no processo de capacitao tecnolgica das micro e peque-
nas empresas. Escrito por Paulo Csar Rezende de Carvalho Alvim.
Disponvel em:
<http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100-19651998000100004>

Livro Administrao de Sistemas de Informao, do autor Pedro Luiz Cortes. Livro muito
interessante e abrangente sobre o uso de sistemas de informao nas empresas.

REFERNCIAS BIBLIOGRFICAS
CAPRON, H. L.; JOHNSON, J. A. Introducao a Informatica. Sao Paulo: Pearson Prentice Hall.
2004.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informacao Gerenciais. Sao Paulo: Prentice Hall.


2007.

MONTEIRO, M. A. Introduo Organizao de Computadores. 5a ed. So Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introduo Arquitetura de Computadores. Rio de Janeiro:


Campus, 2000.

32 captulo 1
NULL, L.; LOBUR, J. Princpios Bsicos de Arquitetura e Organizao de Computadores. 2a ed.
Porto Alegre: Bookman, 2010.

PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIANCHI, F. Algoritmos e Programao de
Computadores. Rio de Janeiro: Elsevier, 2012.

STALLINGS, W. Arquitetura e Organizao de Computadores. So Paulo: Prentice Hall, 2002.

NO PRXIMO CAPTULO
No prximo captulo, entederemos como os dados so representados na computao. Sero
vistos os conceitos de bit, byte, bases e a converso entre elas.

captulo 1 33
2
Representao de
Dados
2 Representao de Dados
No captulo prvio, entendemos o computador como uma mquina que pro-
cessa dados. Deve-se notar que existem artefatos mecnicos que, mesmo com
capacidade limitada, conseguem fazer tambm processamento tal como cal-
culadoras mecnicas criadas no sc. XVII. Claro que pela sua capacidade e flexi-
bilidade, o nosso interesse reside nos computadores baseados em dispositivos
eletrnicos, e assim descrevemos no captulo anterior a evoluo das mquinas
baseadas em vlvulas, transistores simples e microprocessadores. Porm, no
foi respondida uma pergunta importante: como os computadores eletrnicos
conseguem reconhecer dados.
Para tratar dessa questo, este captulo comea com a definio de elementos fun-
damentais da linguagem binria, partindo para bases numricas fundamentais.

OBJETIVOS
Compreender o que so bits, bytes e palavras (words).
Conhecer as principais bases numricas.
Saber como o computador representa nmeros e caracteres.
Entender, sob a perspectiva de programao, o relacionamento entre variveis e tipos de dados.

REFLEXO
Ao preencher dados em formulrios eletrnicos, muitas vezes recebemos mensagens de
erro, indicando incompatibilidade entre os dados que entramos e o tipo de dados esperado.
Qual seria a consequncia de no haver esse controle?

2.1 Elementos binrios fundamentais: bits, bytes e words.

Pode-se pensar em diversas propriedades relacionadas ao componente ele-


trnico e corrente eltrica, tais como voltagem, amperagem, frequncia de
sinal, etc. Porm, fundamentalmente, um dispositivo tem ou no corrente el-
trica passando por ele, em suma, est desligado ou ligado. Por isso, a forma
bsica de representao de dados em componentes eletrnicos se baseia na
linguagem binria (LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004).

captulo 2 35
Essa linguagem contm dois dgitos apenas, os quais vo corresponder aos dois
estados bsicos. A representao desses dois dgitos foi convencionada como
sendo 0 ou 1. Deve-se comentar que a linguagem binria foi desenvolvida antes
mesmo da eletrnica e da computao, porm se mostrou perfeitamente ade-
quada para esses campos de desenvolvimento (NULL & LOBUR, 2010).
unidade de dgito binrio (zero ou um) se d o nome de bit, termo vindo do
ingls binary digital unit (STALLINGS, 2002). Como bits isolados podem conter
apenas dois estados, nmeros e palavras so representados por diversos bits
seguindo determinada conveno. poca do desenvolvimento do IBM 360, os
engenheiros da empresa passaram a usar conjuntos de 8 bits como unidade
bsica de endereamento de memria este sendo um assunto tratado no cap-
tulo 4. Esse conjunto de 8 bits chamado de byte. Deve-se notar que a definio
do byte estava ligada arquitetura e caractersticas do hardware. Com o tem-
po, as unidades de endereamento foram crescendo, sendo 32 bits e 64 bits
as mais encontradas hoje. O termo word ou palavra usado para identificar
esses conjuntos de bits adjacentes, sendo o seu nmero varivel segundo o uso
(MONTEIRO, 2007), ver quadro 2.1.

Bit Digito binrio

Byte Conjunto de 8 bits

Nmero convencionado
WORD
de bits adjacentes

Figura 1 Elementos fundamentais de Linguagem Binria (MONTEIRO, 2007).

CONEXO
Assista a um vdeo sobre o funcionamento do computador e o uso de bits e bytes:
<https://www.youtube.com/watch?v=6oDiJLg6xbE>
Acesso em: 24 jul. de 2014.

36 captulo 2
Tamanho Exemplo
bits 1
nibble 1 1 0 1
byte 0 0 0 1 1 1 1 1
16 bits 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 1
32 bits 0 0 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0 1 1 0

Quadro 2.1 Conjunto de Dados mais Comuns


Fonte: adaptado de (MONTEIRO, 2007, p. 94)

O aumento de capacidade de processamento e armazenamento de dados


nos deixou familiares com termos como megabyte, gigabyte, etc. Essas unida-
des se referem a potncias de dez de quantidade de bytes, conforme est rela-
cionado no quadro 2.2.

MLTIPLOS SMBOLO VALOR


kilo k 1000

mega M 10002

giga G 10003

tera T 10004

peta P 10005

exa E 10006

zetta Z 10007

yotta Y 10008

Quadro 2.2 Mltiplos decimais de bytes


Fonte: (STALLINGS, 2002)

captulo 2 37
A definio simples desses mltiplos pode ser melhor ilustrada com algu-
mas estimativas de uso:
A Biblioteca do Congresso Americano guardava em 2011 cerca de 235 te-
rabytes (MCKENNA, 2013).
Em 2008, o Google j processava 20 mil terabytes ao dia (SCHONFELD,
2010).
Os servios de mapas do Google disponibilizam certa de 20 petabytes de
imagens (MCKENNA, 2013).
Em 2014, estima-se que o Facebook tinha nada menos do que
258 petabytes em arquivos de fotos e vdeos (LEUNG, 2014).
A capacidade do crebro humano para armazenar memria seria equiva-
lente a 2,5 petabytes (SMITH, 2010).

Deve-se reforar que esses nmeros so apenas estimativas, sendo o clculo


preciso bastante complexo e sujeito a diversas questes metodolgicas.

Figura 2 Biblioteca do Congresso Americano, Washington.


<http://commons.wikimedia.org/wiki/File:Library_of_Congress_Interior_
Jan_2006.jpg>
Acesso em: 24 jul. de 2014

38 captulo 2
Figura 3 Um dos datacenter do Facebook, Oregon.
Fonte: <http://commons.wikimedia.org/wiki/File:Facebook_Data_Center.jpg>
Acesso em: 24 jul. de 2014

At este ponto tratamos de alguns elementos bsicos de linguagem binria


e demos alguma noo de escala de uso. Entretanto como nmeros e palavras
so representados nesse tipo de conveno? Para explorarmos esse assunto,
preciso conhecer algumas bases numricas e como se pode convert-las.

2.2 Bases numricas

2.2.1 Base decimal


O sistema numrico decimal foi adotado dos rabes pelo europeus e a base
que usamos para contas simples a complexas transaes financeiras em nossa
economia (NULL & LOBUR, 2010). Como um sistema muito comum, no nos
detemos para pensar como funciona. Veja o exemplo abaixo de decomposio
de nmeros em base decimal:
15 = 1x10 + 5x1
146 = 1x100 + 4x10 + 6x1
8303 = 8x1000 + 3x100 + 0x10 + 3x1

captulo 2 39
Outra forma importante de decompor nmeros com o uso de potncias.
Os nmeros acima podem ser reescritos como em termos de potncias de 10,
lembrando que qualquer potncia elevada a zero igual a 1:

15 = 1x101 + 5x100

Nesse caso, temos dois dgitos: o dgito 5, corresponde ao multiplicador da


potncia elevada a zero. O dgito 1, corresponde ao multiplicador da potncia
elevada a 1. Por analogia, examine os casos seguintes:
146 = 1x102 + 4x101 + 6x100
8303 = 8x103 + 3x102 + 0x101 + 3x100

Em outras bases numricas, usamos potncias de base correspondente.


Mas por que estudamos outras bases? Dependendo da utilizao, a base deci-
mal pode no ser a mais eficiente e eficaz. Deve-se saber que h uma notao
que explicita em que base o nmero deve ser entendido:
(153)10 refere-se a 153 na base decimal.
(1110)2 refere-se a 1110 na base binria, que ser vista a seguir.

2.2.2 Base binria

Como sabemos, mais adequado implementar dados em base binria no


computador. No quadro 3, temos uma relao da representao dos nmeros
de 1 a 15. Porm como esses nmeros so formados? Podemos entend-los a
partir de sua decomposio em potncias de dois:

(14)10 = (1 1 1 0)2 = (1x23) + (1x22) + (1x21) + (0x20)

= 8 + 4 + 2 + 0 = 14

Por analogia, verifique estes trs exemplos:


(1)10 = (1)2 = 1x20 = 1
(2)10 = (10)2 = 1x21 + 0x20 = 2 + 0 = 2
(9)10 = (1001)2 = 1x23 + 0x22 + 0x21 + 1x20 = 8 + 0 + 0 + 1 = 9

40 captulo 2
0 0

1 1

2 10

3 11

4 100

5 101

6 110

7 111

8 1000

9 1001

10 1010

11 1011

12 1100

13 1101

14 1110

15 1111

Quadro 2.3 Representao Binria de Inteiros Positivos (zero a quinze)

Olhando novamente o quadro 2.3, vemos que o nmero 1 representado


por um dgito, j o nmero nove por quatro. Para a estrutura do computador,
interessante termos uma padronizao dos processos de leitura e alocao de

captulo 2 41
memria para cada varivel. O byte, tambm referido como octeto (MURDO-
CA & HEURING; 2000), surgiu com essa preocupao, definindo conjuntos em
uma quantidade fixa de 8 bits. No caso do nmero 1, os seus dgitos vacantes
so preenchidos por zero, assim temos na representao de inteiros positivos:
(1)10 = (000000001)2
(9)10 = (00001001)2
(255)10 = (11111111)2

Usando as combinaes possveis de zeros e uns em 8 bits, um byte pode


representar 256 valores numricos, ou seja, 28. Se precisssemos usar apenas
inteiros positivos, poderamos representar valores comeando por zero at che-
gar a 255. Contudo, para indicar se o valor negativo ou positivo em um byte,
precisamos usar um dgito para ter essa informao. Assim, usando-se o byte,
chega-se a um intervalo que vai de -128 a 127 (STALLINGS, 2002) .

Bug do Milnio
Quando os sistemas computacionais estavam sendo desenvolvidos no ps-guerra, um
dos principais gargalos era a capacidade de memria e processamento. Por essa ra-
zo, foi simplificada a representao dos anos, subentendendo que todas as datas se
referiam ao sculo 20. Assim, a representao de 1985 correspondia a 85, suben-
tendendo-se os dgitos 19 frente. Chegando a 2000, porm, teramos 00, que
seria entendido como 1900. Previu-se que esse problema de representao pudesse
causar o colapso de muitos sistemas computacionais, mas as consequncias foram
muito menores do que as previstas (BBC, 2014).
Tambm pela forma de representao de datas, esto previstos problemas em 2038
com sistemas UNIX de 32 bits e programados na linguagem C (SMAAL, 2011).

Para representar valores maiores ou menores do que esse intervalo, h duas


sadas principais. A primeira lanar mo de words (palavras), como de 16 bits
ou 32 bits citados anteriormente. Em uma palavra de 16 bits, os valores de
nmeros inteiros podem variar de -32.768 a 32.767 (MONTEIRO, 2007). A quan-
tidade de bits e o formato que so convencionados a cada dado importante.
Antes de mais nada, quanto maior o word, naturalmente maior o uso de me-
mria e capacidade de processamento. Outro fator importante que uma vez
fixado o tamanho de certo tipo de dado em um sistema, o custo de mudana

42 captulo 2
pode ser considervel. O problema (bug) do milnio e de 2038 so exemplos de
problemas advindos da fixao inadequada de bits para variveis de data.
A passagem de bytes para words de 16 bits e de words de 16 para 32 bits re-
quer mais capacidade e mudanas na estrutura de hardware. Buscou-se evitar
a necessidade dessas mudanas e ainda de aumentar o escopo para represen-
tao de nmeros reais por meio de mtodo de representao por ponto flutu-
ante (STALLINGS, 2002). Esse mtodo se baseia na representao de nmeros
por seus algarismos significativos e potncias. O padro mais usado para esse
mtodo denomina-se IEEE 754, servindo de base para construtores de hardwa-
re e programadores (MONTEIRO, 2007).
Os nmeros a seguir possuem grandezas bastante diferentes, mas podem
ser representados com basicamente a mesma quantidade de bits:
1,27 x 106 = 1,27 x 1000000 = 1270000
7,31 x 10-2 = 7,31 x 0,01 = 0,0731

Nos dois casos, temos trs algarismos significativos e determinada potncia


na base 10. Assim, podemos representar nmeros inteiros e aproximar valores
fracionrios e dzimas, ampliando consideravelmente o intervalo de represen-
tao numrica. O termo ponto flutuante vem do fato da vrgula na represen-
tao numrica poder estar na casa centesimal, unitria, de milhar, etc.
Assim como possvel somar e subtrair usando o sistema decimal, poss-
vel fazer as opes aritmticas com o sistema binrio, incluindo nmeros de
ponto flutuante.

CONEXO
Saiba mais sobre o mtodo ponto flutuante e padro IEEE 754:
<http://www.lia.ufc.br/~valdisio/download/ieee.pdf>
Acesso em: 24 jul. 2014.

2.2.3 Base hexadecimal

Esse sistema possui o nmero 16 como base e indicado por contrao hex.
Como notao, geralmente usa-se a conveno abaixo (STALLINGS, 2002):

captulo 2 43
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 2 3 4 5 6 7 8 9 A B C D E F

Diversas representaes computacionais, padres e linguagens usam a


base hexadecimal. Um exemplo so as representaes de cores em HTML, em
que se inicia com # para depois especificar quatro dgitos hexadecimais. A cor
azul primria, por exemplo, representada por #0000FF.

2.2.4 Converso entre bases

Ao usar o computador, sem perceber estamos usando a converso entre siste-


ma decimal e binrio a todo o tempo. H diversas ferramentas na WEB e em
planilhas eletrnicas para fazer realizar a converso entre diversos sistemas.
Para ilustrar aqui uma converso simples, vamos mudar o nmero 9 da base
decimal para binria. Vamos usar o mtodo de diviso e resto (NULL & LOBUR,
2011), que serve apenas a nmeros inteiros sem sinal. Repare que os dgitos da
base binria vo corresponder ao resto da diviso:

9 2
1 4 2
0 2 2
0 1 2
1 0

CONEXO
Conhea um ferramenta na Web para converso entre bases numricas:
<http://wims.unice.fr/wims/en_tool~number~baseconv.en.html>
Acesso em: 24 jul. 2014.

Os passos feitos foram esses:


Dividindo-se 9 por 2, temos 4 com resto 1.
Dividindo-se 4 por 2, temos 2 com resto 1.

44 captulo 2
Dividindo-se 2 por 2, temos 1 com resto 0, para converter precisamos fa-
zer mais uma diviso.
Ateno: dividindo-se 1 por 2, considera-se o resultado 0 com resto 1.

Usando os restos, na ordem da esquerda para a direita, temos:


(9)10 = (1001)2

ATENO
O Excel tem funes implementadas que permitem a converso entre bases numricas.
Se voc, por exemplo, possuir o nmero 14 em uma clula A1, voc pode implementar
uma funo em uma clula A2 que use o 14 como argumento. Isso pode ser feito pelo
cone fx ou pelo menu Inserir. Algumas funes disponveis so:
BINADEC: converte da base binria para a decimal.
BINAHEX: converte da base binria para a hexadecimal.
DECABIN: converte da base decimal para a binria.

2.3 Representao de caracteres

At agora exploramos a representao de nmeros, mas como se tratam as le-


tras do alfabeto e os caracteres em geral? Tambm no ps--guerra, ainda em
um contexto de escassez de memria, os sistemas computacionais adotaram o
padro ASCII (American Standard Code for Information Interchange).

CARAC- CARAC- CARAC-


BINRIO DECIMAL BINRIO DECIMAL BINRIO DECIMAL
TERE TERE TERE
00100000 32 01000000 40 @ 01100000 96 `

00100001 33 ! 01000001 41 A 01100001 97 a

00100010 34 01000010 42 B 01100010 98 b

00100011 35 # 01000011 43 C 01100011 99 c

00100100 36 $ 01000100 44 D 01100100 100 d

00100101 37 % 01000101 45 E 01100101 101 e

00100110 38 & 01000110 46 F 01100110 102 f

00100111 39 01000111 47 G 01100111 103 g

captulo 2 45
CARAC- CARAC- CARAC-
BINRIO DECIMAL BINRIO DECIMAL BINRIO DECIMAL
TERE TERE TERE
00101000 40 ( 01001000 48 H 01101000 104 h

00101001 41 ) 01001001 49 I 01101001 105 i

00101010 42 * 01001010 4A J 01101010 106 j

00101011 43 + 01001011 4B K 01101011 107 k

00101100 44 , 01001100 4C L 01101100 108 l

00101101 45 - 01001101 4D M 01101101 109 m

00101110 46 . 01001110 4E N 01101110 110 n

00101111 47 / 01001111 4F O 01101111 111 o

00110000 48 0 01010000 50 P 01110000 112 p

00110001 49 1 01010001 51 Q 01110001 113 q

00110010 50 2 01010010 52 R 01110010 114 r

00110011 51 3 01010011 53 S 01110011 115 s

00110100 52 4 01010100 54 T 01110100 116 t

00110101 53 5 01010101 55 U 01110101 117 u

00110110 54 6 01010110 56 V 01110110 118 v

00110111 55 7 01010111 57 W 01110111 119 w

00111000 56 8 01011000 58 X 01111000 120 x

00111001 57 9 01011001 59 Y 01111001 121 y

00111010 58 : 01011010 5A Z 01111010 122 z

00111011 59 ; 01011011 5B [ 01111011 123 {

00111100 60 < 01011100 5C \ 01111100 124 |

00111101 61 = 01011101 5D ] 01111101 125 }

00111110 62 > 01011110 5E ^ 01111110 126 ~

00111111 63 ? 01011111 5F _

Quadro 2.4 Tabela ASC II Caracteres imprimveis.


Fonte: (MONTEIRO, 2007).

Esse padro foi desenvolvido para os sistemas de telex originalmente, o


que se reflete na definio de 33 caracteres no imprimveis que hoje esto na
maioria obsoletos e a reserva de um dgito para controle de erro (MURDOCCA
& HEURING, 2000).

46 captulo 2
O quadro 4 apresenta os caracteres imprimveis do ASC II e a sua corres-
pondncia binria. Assim, usando esse padro, um sistema computacional l
01000000 como @, 01111010 como z, etc. desde que tenha sido defini-
do que o dado um caracter no um nmero.
Os limites do ASC, especialmente para lidar com caracteres de alfabetos
alm do latino e caracteres especiais, fez com que os construtores de hardware
e desenvolvedores de software ampliassem os caracteres definidos. Nesse con-
texto, destaca-se o padro Unicode ((NULL & LOBUR, 2011).

2.4 Tipos de dados e uso de variveis em algoritmos

O principal objetivo dos algoritmos computacionais a manipulao de infor-


maes, as quais podem ser especificadas pelo usurio, ou geradas ao longo
da execuo do algoritmo. Para manipulao de informaes nos algoritmos
necessrio a utilizao de um recurso denominado variveis.

ATENO
Uma varivel um elemento sinttico do algoritmo que tem como funcionalidade
armazenar um determinado valor. O valor associado a varivel depende do tipo de
informao que se deseja manipular, assim, diversos tipos de valores podem ser atri-
budos as variveis.

De acordo com o tipo de informao que ser armazenado, necessrio


especificar o tipo que ser a varivel. Este conceito conhecido como tipo de
dados. Um tipo de dados determina quais tipos de operaes e quais tipos de
valores podem ser manipulados pelas variveis.
O tipo de dados mais comum existente utilizado para a manipulao de
valores numricos do tipo inteiro. As variveis do tipo de dados inteiro arma-
zenam valores do tipo: 25, 32, 0, 45, -92, -853, entre outros. Para demonstrar a
utilizao deste tipo de dados, bem como, a declarao de variveis nos algo-
ritmos, vamos codificar nosso segundo exemplo. A figura 5 apresenta o cdigo
do algoritmo capaz de realizar a soma de duas variveis do tipo inteiro. Este
algoritmo foi nomeado como unid3_exemplo02.alg.

captulo 2 47
Figura 4 Codificao do algoritmo capaz de realizar a soma de dois nmeros inteiros.

No algoritmo da figura 5 importante notar o bloco de declarao de variveis,


o qual codificado nas linhas 6, 7, 8 e 9. A linha 6 contm a palavra reservada
var, que indica o incio do bloco de declarao de variveis. Na linha 7 apre-
sentada a declarao de uma varivel denominada a do tipo inteiro. As linhas 8
e 9 declaram mais duas variveis do tipo inteiro, definidas como b e soma. Voc
pode perceber com as declaraes das variveis um padro sinttico, o qual
representado por:

nome_da_varivel: tipo_da_varivel

Os algoritmos computacionais, bem como as linguagens de programao


possuem algumas regras para a nomeao das variveis. Uma varivel deve
obrigatoriamente iniciar como um caractere literal, assim, no possvel decla-
rar varivel que comecem com um nmero, por exemplo, 1soma. Outro detalhe
importante que nomes de variveis no podem conter espaos, por exemplo,
soma total, ento, caso seja necessrio, voc poder utilizar o caractere subli-
nhado (underline), da seguinte maneira: soma_total. Outra regra importante
sobre a identificao de variveis no utilizar caracteres especiais, tais como
@, #, $, %, bem como, no utilizar acentos de qualquer tipo.
Observando ainda o algoritmo apresentado na figura 5, importante notar
as linhas 12 e 13 que armazenam valores nas variveis a e b. O termo computa-
cional que indica o armazenamento de um valor em uma varivel atribuio.

48 captulo 2
Assim, a linha nmero 12 atribui o valor 10 varivel a, e da mesma maneira, a
linha 13 atribui o valor 20 varivel denominada b. Na linha 16 apresentada
uma atribuio como sendo o resultado de uma expresso aritmtica de adi-
o, por conseguinte, a varivel soma recebe o resultado da operao da varivel
a somado com a varivel b.
Finalmente, na linha 19 apresentado na tela o resultado da soma dos valo-
res. importante destacar que a instruo escreva utilizada para exibir uma in-
formao na tela, em que todas as informaes textuais devem ser especificadas
entre aspas duplas. Para a escrita de variveis na tela, no necessrio utilizar
as aspas duplas. O resultado da execuo do algoritmo apresentado na figura 6.

Figura 5 Resultado da execuo do algoritmo.

Outro tipo de dado utilizado para a manipulao de informaes numri-


cas denominado real. Com o tipo de dados real possvel realizar operaes
com nmeros que contenham casas decimais, por exemplo, 2.34, 4.48, -5.82,
0.004, entre outros. Um detalhe importante que merece destaque com relao
ao smbolo utilizado para separao das casas decimais. Geralmente, pelo fato
das linguagens de programao utilizarem instrues na linguagem inglesa, a
separao das casas decimais realizada com o smbolo de . (ponto), no en-
tanto, possvel criar mecanismos capazes de efetuar a substituio do ponto
pelo smbolo de , (vrgula) utilizado para separar a parte fracionria no Brasil.
Para demonstrar a utilizao de nmeros do tipo real, considere o problema de
calcular a mdia de um conjunto numrico. Podemos utilizar como exemplo, a
necessidade de calcular a mdia de notas de um conjunto de cinco alunos, por
isso, a figura 7 apresenta o resultado da codificao deste exemplo. Antes da
execuo, o arquivo foi salvo com o nome de unid3_exemplo03.alg.
Nesse algoritmo importante notar a declarao das variveis nota1, nota2,
nota3, nota4 e nota5. Na linha 8, as variveis que recebero os valores referentes
as notas so declaradas em uma mesma linha. Esse tipo de declarao pos-
svel, pois todas as variveis so do mesmo tipo. Dessa forma, possvel sim-

captulo 2 49
plificar a seo de declarao das variveis. No entanto, a escolha de como as
variveis sero declaradas, exclusivamente do programador, e este fato no
interfere no desempenho da execuo do algoritmo ou do programa. Caso pre-
ferir, o programador pode declarar as variveis individualmente, uma em cada
linha, como apresentado na listagem cdigo 2.

Cdigo 2
1 var
2 nota1: real
3 nota2: real
4 nota3: real
5 nota4: real
6 nota5: real
7 media: real

Figura 6 Algoritmo que demonstra a utilizao de variveis do tipo real.

O resultado da execuo do algoritmo apresentado na figura 8. Na execu-


o importante notar que na separao das casas decimais o VisuAlg utiliza o
smbolo de ponto.

Figura 7 Resultado da execuo do algoritmo.

50 captulo 2
Para manipulao de informaes literais, as linguagens de programao e
os algoritmos, possuem um tipo especfico denominado caractere. Com este
tipo de dados possvel armazenar e manipular qualquer tipo de valor, tais
como uma letra do alfabeto, um smbolo, um nmero, entre outros. Em lingua-
gens de programao de alto nvel, tais como Java ou C#, a manipulao de ca-
racteres pode ser realizada individualmente, com um tipo exclusivo chamado
char, ou ainda, por meio de um conjunto de caracteres, com um tipo de dados
especfico conhecido como string. A figura 9 apresenta um algoritmo que reali-
za a manipulao de informaes com o tipo de dados caractere. Este exemplo
foi nomeado como unid3_exemplo04.alg.

Figura 8 Algoritmo que demonstra a manipulao de informaes com o tipo de dados


caractere.

Neste exemplo importante notar que os valores do tipo caractere so re-


presentados entre aspas duplas, como pode ser visualizado nas linhas 13 e 14.
Porm, algumas linguagens de programao realizam a separao entre a re-
presentao de um nico caractere, e a definio de um conjunto de caracteres.
Geralmente, a especificao de um nico caractere definida utilizando aspas
simples, por exemplo, M, e a indicao de um conjunto de caracteres realizada
com aspas duplas, por exemplo, Joo da Silva. Na linguagem VisuAlg, tanto a
representao de um nico caractere, quanto de vrios, realizada com aspas
duplas. O resultado da execuo do algoritmo pode ser visualizado na figura 10.

Figura 9 Resultado da execuo do algoritmo.

captulo 2 51
Os algoritmos ainda possuem um tipo de dados especfico utilizado para
manipulao de valores lgicos, os quais so conhecidos em programao
como booleanos. Um tipo de dados booleano permite o armazenamento de va-
lores lgicos, por exemplo, verdadeiro (true) ou falso (false). Em programao,
um valor lgico pode ser utilizado para expressar a presena ou ausncia de
uma determinada informao, tal como, um valor do tipo sim ou no. Na lin-
guagem algortmica, o tipo de dados booleano definido como lgico.
Para demonstrar a utilizao do tipo de dados lgico, vamos codificar mais
um algoritmo. Este exemplo, nomeado como unid3_exemplo05.alg, apresenta
um algoritmo que manipula informaes de todos os tipos de dados existentes,
sendo eles inteiro, real, caractere e lgico. No exemplo, importante destacar a
atribuio de um valor lgico, que ocorre na linha 18.
Na linguagem algortmica utilizada pelo ambiente VisuAlg, uma varivel do
tipo lgico pode assumir dois valores, verdadeiro ou falso, e neste caso a atri-
buio de valores lgicos tambm utiliza os possveis valores (verdadeiro ou fal-
so). A figura 11 apresenta o resultado da codificao do algoritmo.

Figura 10 Algoritmo que demonstra a utilizao dos principais tipos de dados e apresenta
a manipulao de valores do tipo lgico.

O resultado da execuo do algoritmo, que pode ser visualizada utilizando o


menu Algoritmo>Executar, apresentada na figura 12.

52 captulo 2
Figura 11 Resultado da execuo do algoritmo.

Com isso, voc conheceu os principais tipos de dados que podem ser utiliza-
dos para manipulao de informaes nos algoritmos e programas. O prximo
passo aprender como ler informaes fornecidas pelo usurio, e como apre-
sentar resultados na tela.

ATIVIDADE
1. Pesquise sobre a origem da linguagem binria, antes de seu uso pela computao.

2. Por que o sistema binrio mais adequado para o uso em dispositvos eletrnicos?

3. Decomponha 19583 em potncias de base 10.

4. Converta 19583 na base binria.

5. Decomponha o resultado do exerccio 4 em potncias de base 2.

6. Pesquise sobre o padro UNICODE e identifique os grupos de caracteres que so definidos.

REFLEXO
Neste captulo, entendemos melhor como o computador e dispositivos eletrnicos podem
representar nmeros e letras. Tambm vimos que o sistema binrio permite manipulaes
aritmticas, o que seria suficiente para caracterizar uma calculadora. Contudo, como os sis-
temas computacionais conseguem fazer tarefas variadas como reconhecer voz e ajudar em
diagnsticos mdicos? Como essas tarefas se traduzem em processamento de dados?

captulo 2 53
LEITURA
LEVY, S. Os Heris da Revoluo. So Paulo: Evora, 2012.
Comentrio: a descrio de como computadores funcionam pode ser um assunto bastante
rido se esquecermos as pessoas e as motivaes que residem por cada caracterstica da
computao. Ao traar o panorama dos atores que ajudaram a desenvolver os primeiros
sistemas computacionais, passando pelos PCs, chegando aos programadores de aplicativos
mveis, Levy nos mostra a feio humana, entusiasmada e obsessiva dos responsveis pela
revoluo digital.

REFERNCIAS BIBLIOGRFICAS
BBC. Y2K around the word. BBC, website. <http://news.bbc.co.uk/hi/english/static/millen-
nium_bug/countries/default.stm>. Acesso em: 19 jun. 2014.

CAPRON, H. L.; JOHNSON, J. A. Introducao a Informatica. Sao Paulo: Pearson Prentice


Hall. 2004.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informacao Gerenciais. Sao Paulo: Prentice


Hall. 2007.

LEUNG, L. How much data x store? Techexpectations, 13 mar. 2014. Disponvel em: <http://
techexpectations.org/2014/05/17/how-much-data-does-x-store/>. Acesso em: 19 jun. 2014.

MCKENNA, B. What does a petabyte look like? Computer Weelky, maro 2013. Disponvel em:
<http://www.computerweekly.com/feature/What-does-a-petabyte-look-like>. Acesso em: 19
jun. 2014.

MONTEIRO, M. A. Introduo Organizao de Computadores. 5a ed. So Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introduo Arquitetura de Computadores. Rio de Janeiro:


Campus, 2000.

NULL, L.; LOBUR, J. Princpios Bsicos de Arquitetura e Organizao de Computadores. 2a ed.


Porto Alegre: Bookman, 2010.

54 captulo 2
REBER, P. What is the memory capacity of the human brain? Scientific American, maio/junho,
2010. Disponvel em: <http://www.scientificamerican.com/article/what-is-the-memory-capa-
city/>. Acesso em: 19 jun. 2014.

SCHONFELD, E. Google processing 20,000 terabytes a day, and growing. Techcrunch, web-
site, 9 jan. 2008. Disponvel em: <http://techcrunch.com/2008/01/09/Google-processing-
20000-terabytes-a-day-and-growing/>. Acesso em. 19 jun 2014.

SMAAL, 2011. 2038: o bug do milnio atacar novamente. Tecmundo, website, 25 fev 2011.
Disponvel em: <http://www.tecmundo.com.br/historia/8795-2038-o-bug-do-milenio-ataca-
ra-novamente.>. Acesso em: 19 jun. 2014.

STALLINGS, W. Arquitetura e Organizao de Computadores. So Paulo: Prentice Hall, 2002.

NO PRXIMO CAPTULO
No prximo captulo, conheceremos a lgebra booleana, que permite que os computadores pos-
sam manipular os dados logicamente.

captulo 2 55
3
lgebra Booleana e
Operaes Lgicas
em Algoritimos
3 lgebra Booleana e Operaes Lgicas em
Algoritimos

No captulo anterior, vimos a forma como dados podem ser representados


no computador em base nmrica, ou seja, passvel de operaes como arit-
mticas de adio. Mas quando usamos um caixa eletrnico, por exemplo, h
diversas outras operaes envolvidas. A simples comparao da senha que di-
gitamos com aquela registrada pede uma operao lgica que deve responder
a senha confere ou a senha no confere. Em um videogame, cada uma das
aes do jogador tem determinadas consequncias tanto para o encadeamento
posterior de eventos, quanto para o prprio ambiente do jogo. Esses so apenas
exemplos de como o processamento de dados depende de operaes lgicas
(LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004). A implementao
dessas operaes em computador esto, por sua vez, baseadas na lgebra boo-
leana, tema principal deste captulo.

OBJETIVOS
Compreender os operadores principais da lgebra booleana.
Construir tabelas verdade para cada operador.
Identificar smbolos de portas lgicas.
Entender como os operadores aritmticos e lgicos so implementados em algoritmos.

REFLEXO
No primeiro captulo, foi dado o exemplo da receita de bolo como um algoritmo no compu-
tacional. Como outros algoritmos, a receita de bolo um conjunto de instrues formalizado
para resolver um problema e, nesse caso especfico, as instrues seguem umas s outras
diretamente. Busque pensar em algoritmos condicionais, ou seja, cuja realizao de instrues
depende de condies e tambm de resultados de instrues anteriores.

captulo 3 57
3.1 lgebra booleana

Segundo Linda Null e Julia Lobur, a lgebra booleana uma lgebra para a ma-
nipulao de objetos que podem assumir somente dois valores, normalmente
verdadeiro ou falso (NULL & LOBUR, 2011, p. 141). fcil entender que essa
lgebra seja adequada ao computadores, os quais funcionam usando a lingua-
gem binria. A seguir, vamos falar da origem da lgebra booleana para, a seguir,
passar para seus operadores.

3.1.1 Origens

A linguagem binria se tornou um componente fundamental da computao,


mesmo tendo sido desenvolvida muito antes dos primeiros computadores. O
mesmo aconteceu com a lgebra booleana: nascida no sc. XIX fruto da formali-
zao do pensamento lgico realizada por George Boole, um grande matemtico
ingls (figura 1). A motivao de Boole era encontrar e formalizar leis universais
do raciocnio, aproximando este da lgebra matemtica. Esse esforo foi estru-
turado em sua obra As Leis do Pensamento, de 1854 (NULL & LOBOUR, 2011).

Figura 1 George Boole (1814 1864)


Fonte: <http://en.wikipedia.org/wiki/George_Boole#mediaviewer/File:George_Boo-
le_color.jpg>. Acesso em: 24 jul. de 2014.

58 captulo 3
Uma ilustrao simples da lgebra booleana pode ser dada avaliando as trs
afirmaes abaixo:
Afirmao 1: Ana foi ao cinema.
Afirmao 2: Paulo foi ao show.
Afirmao 3: Ana foi ao cinema E Paulo foi ao show.
Para a afirmao 3 ser verdadeira, tanto a afirmao 1 quanto a 2 devem ser
tambm. Se Ana no foi ao cinema, ou se Paulo no foi ao show, j fica com-
prometida a afirmao feita sobre os dois. Perceba que a afirmao 3 equivale
considerar a afirmao 1 e a afirmao 2 simultaneamente. Podemos organizar
o que foi dito at aqui por uma tabela-verdade, a qual relaciona os valores de
proposies e operadores lgicos. Com esse fim, vamos usar a notao:
Afirmao 1: p
Afirmao 2: q
Afirmao 3: Afirmao 1 E Afirmao 2: p.q
V: proposio verdadeira
F: proposio falsa.

Desse modo, a tabela-verdade fica:

p q pq

V V V

V F F

F V F

F F F

Podemos ainda explicar mais um operador lgico a partir da seguinte assertiva:


Afirmao 4: Ana foi ao cinema OU Paulo foi ao show.
: Afirmao 1 OU Afirmao 2: p + q
A afirmao 4 ser verdadeira caso ambas as afirmativas sejam verdadeiras,
mas tambm caso somente uma delas seja. Por exemplo, mesmo Paulo no
tendo ido ao show, basta que Ana tenha ido ao cinema para garantir essa vera-
cidade. A afirmativa 4 s ser falsa se ambas as afirmativas tambm o forem.
Consequentemente, a tabela-verdade nesse caso ter a seguinte configurao:

captulo 3 59
p q p+q

V V V

V F V

F V V

F F F

Figura 2 Labirinto Teseu de Claude Shannon (Museu do MIT)


Fonte: Labirinto Teseus de Claude Shannon (Museu do MIT) <http://commons.wikime-
dia.org/wiki/Category:Claude_Shannon#mediaviewer/>File:Theseus_Maze_by_Clau-
de_Shannon,_1952_-_MIT_Museum_-_DSC03702.JPG. Acesso em: 24 jul. de 2014.

A utilidade da lgebra booleana e suas tabelas verdade para circuitos el-


tricos foi estabelecida pelo americano Charles Shannon em sua dissertao
de mestrado de 1937, concluda no MIT. Em lugar dos valores falso ou ver-
dadeiro, os circuitos poderiam operar por essa lgebra usando os zeros e
uns. Essa adaptao lanou as bases da computao que conhecemos hoje.
Shannon ainda ajudou a criar os fundamentos da teoria da informao e da
inteligncia artificial. Um dos seus experimentos famosos foi um rato eletro-
mecnico programado a encontrar a sada de um labirinto (figura 2) e capaz de
acumular conhecimento a cada entrada no mesmo labirinto. (GLEICK, 2011).

60 captulo 3
Na sumarizao seguinte da lgebra booleana, vamos usar os dgitos bin-
rios. Assim, 0 ser equivalente a falso e, consequentemente, 1 a verdadei-
ro. Alm de formalizar nesses termos os operadores E e OU j vistos, vamos
ainda definir a Negao, XOR, NOT e NAND, baseando-se em Murdocca e Heu-
ring (2000), Monteiro (2007) e Stallings (2002).

3.1.2 Operador E (Conjuno ou AND)

Uma expresso com operador E resulta 1 somente se as suas entradas forem


todas iguais a 1. O funcionamento anlogo ao exemplo da seo anterior com
a afirmativa 3.
Considerando duas entradas, p e q, a notao de p E q j foi vista:

p.q

Chama-se essa expresso tambm de produto booleano, ou multiplicao


lgica. Abaixo est a tabela-verdade para o operador E com duas entradas:

p q pq

1 1 1

1 0 0

0 1 0

0 0 0

3.1.3 Operador OU (Disjuno ou OR)

Uma expresso com operador OU resulta em 0 somente se as suas entradas fo-


rem todas iguais a 0. Aqui temos um comportamento anlogo ao exemplo ante-
rior com a afirmativa 4.
Considerando duas entradas, p e q, j conhecemos a notao de p OU q.

p+q

captulo 3 61
Essa expresso tambm nomeada de soma booleana, ou adio lgica. A
tabela-verdade para o operador OU com duas entradas est a seguir:

p q p+q

1 1 1

1 0 1

0 1 1

0 0 0

ATENO
J pensou se gastos com jardinagem forem divulgados como investimentos ambien
tais internos?
Certamente, gastos com jardinagem no servem para reduzir o impacto negativo dos re-
sduos das prprias operaes da empresa. A no ser que o jardim seja uma estao de
tratamento de efluente.

A frmula da ecoeficincia de Helminen (2000) e Burritt e Saka (2005) e o


WBCSD (1996) exposto na figura 7 pondera o valor adicionado e o impacto am-
biental causado para produzir a riqueza Valor Adicionado. Com base nisso,
Schaltegger, Burrit e Peterson (2003 apud Derwall at. al. 2005) explicam que a
ecoeficincia pode refletir o quanto de impacto ambiental foi necessrio para
gerar o Valor Adicionado da DVA.
Nas duas metodologias pondera-se o impacto causado no meio ambien-
te pelas operaes da empresa. Uma o analisa durante o ciclo de vida dos
produtos e a outra durante o processamento de servios e produtos da em-
presa. Independente do mtodo, o WBCSD (1996) recomenda ponderar a
ecoeficincia nos processos decisrios, internamente como parte do dia a
dia dos sistemas de gesto e, externamente, como algo a ser divulgado como
um dos elementos integradores da sustentabilidade.

62 captulo 3
ATENO
Existem outras notaes para operadores vistos aqui e que podem ser comumente encontra-
das na disciplina de Raciocnio Lgico:
Operador E: p q.
Operador OU: p + q.
_
Operador Negao: p

3.1.4 Operador Negao (Inverso ou NOT)

Esse operador simplesmente inverte a entrada. Ou seja, se a entrada 0 o ope-


rador o transforma em 1, e vice-versa. Com uma entrada p, a notao de p ne-
gado : ~p
A tabela-verdade para esse operador :

p ~p

1 0

0 1

3.1.5 Operadores XOR, NOR, NAND

Os operadores AND, OR e NOT podem ser combinados e aplicados sucessiva-


mente a entradas. Trs dessas combinaes encontram uso corrente em siste-
mas computacionais:

Disjuno exclusiva (XOR)


O resultado dessa operao 1 se, e somente se, apenas uma das entradas
for 1. A tabela-verdade do operador XOR :

(p ~q) + (~p
p q
q)

1 1 0

captulo 3 63
1 0 1

0 1 1

0 0 0

NEM (NOR)
O resultado dessa operao 1 se, e somente se, todas as entradas forem 0.
A tabela-verdade do operador NOR :

p q ~ (p + q)

1 1 0

1 0 0

0 1 0

0 0 1

NOU (No... e..., NAND)


O resultado dessa operao 1 se pelo menos uma entrada for 0. A tabela
verdade do operador NOU :

p q ~ (p + q)

1 1 0

1 0 1

0 1 1

0 0 1

64 captulo 3
CONEXO
Para aprofundar seus conhecimentos sobre lgebra booleana, leia o texto disponvel em: <http://
www.inf.ufsc.br/~guntzel/isd/isd2.pdf>
Acesso em: 24 jul. de 2014.

3.2 Portas lgicas

A adaptao de Claude Shannon da lgebra booleana tambm denominada


lgebra de chaveamento devido orientao inicial para circuitos que podiam
estar ligados ou desligados por chave. Essa lgebra usada na construo de
circuitos fsicos, que podem modificar os sinais digitais conforme estabelecido
por seu desenho. Devido a esse uso, h smbolos grficos para cada operador,
chamadas portas lgicas, o que facilita o trabalho em circuitos complexos. Na
tabela a seguir, as entradas so representadas pelos traos esquerda, podendo
ser, cada uma, zero ou um. A sada representada pelo trao direita, tambm
obedecendo base binria.

CONEXO
Conhea um aplicativo gratuito para dispositivos mveis que desenha portas lgicas:
<https://play.google.com/store/apps/details?id=com.Logic.gates_Xor.en>
Acesso em: 24 jul. de 2014.

Operador Smbolo
AND

OR

NOT

XOR

NOR

NAND

Fonte: <http://commons.wikimedia.org/wiki/File:NAND_ANSI.svg>. Acesso


em: 24 jul. de 2014.

captulo 3 65
Para fins didticos, tratamos de operaes, portas lgicas e smbolos com
apenas duas entradas. No caso abaixo, temos um operador AND com trs entra-
das de valor 1. Pela prpria definio do operador, a sada tambm ser 1:

1
1 1
1

3.3 Operaes aritmticas e lgicas em algoritmos

At aqui, entendemos as operaes booleanas principais. Contudo, como elas so


usadas em programao? A seguir, vamos mostrar operaes aritmticas e lgicas
implementadas em algoritmos simples, usando o visualg. No devemos perder de
vista, contudo, que so essas operaes que fundamentam programas complexos
e processamento de dados em grande escala. O poder analtico desse processa-
mento nos lembrado com frequncia, como acontece com as vitrias de sistemas
computacionais sobre grandes mestres do xadrez (ver box explicativo).

Em 1997, o supercomputador Deep Blue da IBM venceu o campeo mundial de xadrez


Garry Kasparov em um match de seis partidas. O evento chamou a ateno do mundo
para os avanos em inteligncia artificial, estimulando a reflexo sobre os limites e as
potencialidades dos computadores. Kasparov havia derrotado uma verso desse com-
putador em 1996 e acusou a IBM de fraudar a disputa em 1997. A fraude teria sido o
uso de grandes mestres de xadrez para apoiar o processo de deciso do computador.
De qualquer modo, a superioridade dos computadores nesse jogo foi reafirmada por
programas de software mais inteligentes e que, assim, no requerem a capacidade de
processamento do Deep Blue. Se este calculava at 200 milhes de posies de jogo
por segundo em um estrutura complexa e dedicada, o programa Deep Fritz, rodando em
Windows com processadores Pentium, conseguiu derrotar o campeo mundial Vladimir
Kramnik em 2006 (NEWBORN, 2011).

66 captulo 3
Figura 3 Supercomputador Deep Blue (Museu Figura 4 Garry Kasparov.
da Histria do Computador, Califrnia. Fonte: <http://commons.wikimedia.org/
wiki/File:Kasparov-27.jpg>. Acesso em 24
Fonte:< http://commons.wikimedia.org/wiki/File:-
jul. de 2014.
Deep_Blue.jpg>. Acesso 24 jul. de 2014

3.3.1 Comandos de entrada e sada

Os algoritmos computacionais e os programas tm como principal funcionali-


dade o processamento de informaes. Essas informaes geralmente so for-
necidas pelo usurio, o qual utiliza o teclado para entrada de dados e, em um
segundo momento, os resultados so apresentados em dispositivos de sada
como monitor ou impressora. Durante o processo de construo de algoritmos,
o programador pode contar com instrues especficas para carregar informa-
es fornecidas pelo usurio e para apresentar resultados na tela, essas instru-
es so chamadas de comandos de entrada e sada.
Para leitura de informaes, o comando utilizado para entrada de dados
conhecido como leia. Assim, com este comando possvel transferir uma infor-
mao digitada pelo usurio com o teclado para uma determinada varivel no
escopo do algoritmo. Por outro lado, para a apresentao de uma informao
na tela utilizada um comando de sada especfico denominado escreva.
Para demonstrar a utilizao dos comandos de entrada e sada vamos cons-
truir uma calculadora simples de quatro operaes. Nesta calculadora, o usu-
rio fornecer dois valores nmeros (valor1 e valor2) e sero realizados os cl-
culos de soma, subtrao, multiplicao e diviso. Para leitura dos valores ser
utilizado o comando leia e para a apresentao dos resultados ser necessrio
o comando escreva. Na linguagem algortmica VisuAlg, existe uma variao do

captulo 3 67
comando escreva denominada escreval. Este comando, alm de exibir as infor-
maes desejadas na tela, tambm realizar a quebra de linha, ou seja, o coman-
do capaz de exibir uma determinada informao na tela e mudar de linha.
Com isso, os dados no sero apresentados em uma nica linha, o que facilita
bastante a exibio de grandes quantidades de informaes.
O algoritmo que codifica a calculadora simples de quatro operaes foi no-
meado como unid3_exemplo06 e a figura 5 apresenta a codificao completa
do exemplo.

Figura 5 Algoritmo que codifica um clculo simples com quatro operaes.

O resultado da execuo do algoritmo apresentado na figura 6. Nessa exe-


cuo, os valores fornecidos como entrada foram 10 e 20.

Figura 6 Resultado da execuo do algoritmo.

68 captulo 3
O prximo exemplo de codificao utilizando comandos de entrada e sada
tem como objetivo construir um algoritmo capaz de calcular o consumo mdio
de combustvel de um veculo. Para isso, o usurio dever informar como entra-
da os quilmetros percorridos pelo veculo e o total de litros abastecidos. Com
isso, o algoritmo capaz de determinar o consumo mdio e o resultado exibi-
do na tela. Este algoritmo foi nomeado como unid3_exemplo07, e a codificao
demonstrada na figura 7.

Figura 7 Algoritmo para determinar o consumo mdio de combustvel de um veculo.

O resultado da execuo do algoritmo pode ser visualizado na Figura 8. Os


parmetros informados na entrada foram 460 para quilmetros rodados e 50
para litros abastecidos.

Figura 8 Resultado da execuo do algoritmo.

captulo 3 69
3.3.2 Operaes e expresses

Os computadores podem ser encarados como grandes mquinas capazes de


realizar uma quantidade imensa de operaes por segundo. Na evoluo his-
trica da computao, os primeiros algoritmos foram criados com o intuito
de solucionar complexas expresses em poucos segundos. As expresses so
formadas essencialmente por operadores, operandos e parnteses. De acordo
com o tipo de operador utilizado, podemos criar expresses denominadas:

3.3.3 Expresses aritmticas

As expresses aritmticas utilizam os operadores aritmticos da matemtica


tradicional para criar expresses capazes de resolver os mais variados tipos de
funes. Neste grupo, os principais operadores utilizados so soma (+), subtra-
o (), multiplicao (*), diviso (/) e resto da diviso (%).
A figura 9 apresenta a codificao de um algoritmo que utiliza expresses
aritmticas para resolver um polinmio. Este algoritmo foi nomeado como
unid3_exemplo08.alg.

Figura 9 Algoritmo computacional que utiliza expresses aritmticas.

70 captulo 3
A figura 10 apresenta o resultado da execuo do algoritmo.

Figura 10 Resultado da execuo do algoritmo.

3.3.4 Expresses relacionais

Quando construmos algoritmos muito comum a necessidade de comparar,


ou estabelecer relaes entre determinados operandos. Para isso, podemos
utilizar um conjunto especfico de operadores capazes de produzir expresses
relacionais. Os operadores relacionais conhecidos so:
maior (>)
menor (<)
menor ou igual (<=)
maior ou igual (>=)
igual (=)
diferente (<>).

A figura 11 demonstra a construo de um algoritmo computacional que


utiliza expresses relacionais. Note no algoritmo que todos os operadores re-
lacionais so expresses por meio de smbolos. Este algoritmo foi nomeado
como unid3_exemplo09.alg.

captulo 3 71
Figura 11 Algoritmo computacional que demonstra a utilizao de expresses e operado-
res relacionais.

A figura 12 apresenta o resultado da execuo do algoritmo.

Figura 12 Resultado da execuo do algoritmo.

72 captulo 3
ATENO
Em uma expresso relacional o resultado produzido pela avaliao da expresso sempre um
valor lgico. Assim, uma expresso relacional resulta em um valor do tipo verdadeiro ou falso.

3.3.5 Expresses lgicas

Na construo de algoritmos computacionais tambm possvel criar expres-


ses a partir de operadores lgicos. Estas expresses so conhecidas como
expresses lgicas. Para criao de uma expresso lgica necessrio utilizar
operadores booleanos, em que os principais so:
negao (NOT)
conjuno1 (E)
disjuno (OU)
disjuno-exclusiva (XOR)

Na figura 13 apresentada a codificao de um algoritmo capaz de calcular


a tabela-verdade a partir de expresses lgicas. Neste exemplo possvel de-
terminar um dos principais conceitos da lgica matemtica conhecido como
tabela-verdade. Este algoritmo foi nomeado como unid3_exemplo10.alg.

CONEXO
Para um estudo aprofundado a respeito de tabelas verdade, voc poder consultar as se-
guintes referncias: <http://pt.wikipedia.org/wiki/Tabela_verdade>
<http://www.calculadoraonline.com.br/tabela-verdade>

Os operadores lgicos so muito importantes para a construo de programas, principalmente


para a elaborao de expresses relacionais compostas. Para complementar seu estudo voc
poder utilizar a seguinte referncia:
<http://pt.wikipedia.org/wiki/Operadores_l%C3%B3gicos>
Acesso em 24 jul. de 2014.

1 Oportunidade; ocasio; conjuntura.

captulo 3 73
Figura 13 Algoritmo computacional que demonstra a utilizao de expresses e operado-
res lgicos.

A figura 14 apresenta o resultado da execuo do algoritmo.

Figura 14 Resultado da execuo do algoritmo.

Com isso, conclumos o estudo a respeito dos operadores e das expresses


aritmticas, relacionais e lgicas. Aproveite este momento para construir algo-
ritmos a partir das atividades propostas.

74 captulo 3
ATIVIDADE
1. Monte uma tabela-verdade para o operador AND com quatro entradas.

2. Monte uma tabela-verdade para o operador OR com trs entradas.

3. Por que a lgebra booleana se mostrou adequada para circuitos eltricos?

4. Qual o valor de q no circuito lgico abaixo?

1
1 q
0

REFLEXO
No ocorrendo problemas de hardware, um computador basicamente segue as instrues
que lhe so fornecidas, incluindo aquelas de operaes lgicas. Sendo assim, quando nos
deparamos com falhas em nossos programas e equipamentos, seria mais adequado falar em
erro humano?

LEITURA
BERLINSKI, D. O Advento do Algoritmo: A ideia que governa o mundo. Rio de Janeiro:
Globo, 2002.
Esta obra oferece o desenvolvimento histrico do algoritmo, um conceito que antecede o desen-
volvimento dos computadores, mas que agora, como demonstra o autor, est presente em quase
todas as nossas atividades.

captulo 3 75
REFERNCIAS BIBLIOGRFICAS
CAPRON, H. L.; JOHNSON, J. A. Introducao a Informatica. Sao Paulo: Pearson Prentice Hall.
2004.

GLEICK, J. The Information: A history, a theory, a flood. Nova York: Random House, 2011.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informacao Gerenciais. Sao Paulo: Prentice


Hall. 2007.

MONTEIRO, M. A. Introduo Organizao de Computadores. 5a ed. So Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introduo Arquitetura de Computadores. Rio de Janei-


ro: Campus, 2001.

NEWBORN, M. Beyond Deep Blue. Nova York: Springer, 2011.

NULL, L.; LOBUR, J. Princpios Bsicos de Arquitetura e Organizao de Computadores. 2a


ed. Porto Alegre: Bookman, 2010.

STALLINGS, W. Arquitetura e Organizao de Computadores. So Paulo: Prentice Hall, 2002.

NO PRXIMO CAPTULO
No prximo captulo, vamos compreender como as instrues so recebidas e executadas pela
Unidade Central de Processamento.

76 captulo 3
4
Instrues e
Processamento
4 Instrues e Processamento
A partir do contedo anterior, entendemos os sistemas computacionais como
executores de instrues, baseados fundamentalmente na liguagem binria e
na lgebra booleana (LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004).
Neste captulo, vamos entender melhor o que so instrues e quais so os seus
tipos. Vamos explorar como o processador se relaciona com o fluxo dessas instru-
es, inclusive com a sua interrupo. Para esse entendimento, ser necessrio
compreender os componentes bsicos da Unidade Central de Processamento
(UCP). Por fim, vamos apontar algumas dimenses mais operacionais da imple-
mentao dos sistemas de computador, incluindo a placa-me, linguagens de
programao e os sistemas operacionais.

OBJETIVOS
Identificar as funes dos componentes da UCP.
Reconhecer os diferentes tipos de instrues.
Dominar a estrutura bsica das instrues.
Conhecer os tipos de interrupo.

REFLEXO
Quantas vezes voc viu uma campanha sobre o lanamento de uma nova gerao de micro-
processadores? A velocidade dos computadores que voc usa se mantm constante ou tende
a cair? A maior parte dos problemas de processamento devido aos microprocessadores, ou
voc identifica outras causas mais relevantes?

4.1 Componentes fundamentais para o processamento

No captulo 1, vimos uma esquematizao bsica de um computador, como


tambm a arquitetura de Von Neumann. Entendemos o computador como
uma mquina que recebe instrues e dados, processa estes na UCP com o au-
xlio do armazenamento de memria e, por fim, realiza a sada aos dados.
Segundo Null e Lobur, a UCP responsvel por carregar instrues de pro-
gramas, decodificar cada instruo carregada e realizar a sequncia indicada de

captulo 4 79
operaes sobre os dados corretos (2010, p. 208). Na UCP, h elementos funda-
mentais que do base a esse processo. Esses elementos podem ser internamente
restritos UCP ou servirem de interface a componentes externos. Na figura 1,
encontra-se uma representao da Arquitetura de Von Neumann com uma espe-
cificao mais detalhada dos seus elementos, os quais sero explicados a seguir.

Barramento
Memria
Dispositivo de E/S
Programa
rea de dados
1 010101 11001 101 01000 1 111

.........................
1 10 0 110 10001 1101 0001 1 101

rea de cdigo
110 0 110 10001 1101 0001 1 101 Registro
1 010101 11001 101 01000 1 111
1 10 0 110 10001 1101 0001 1 101

Un. de
UAL
Controle

Figura 1 Arquitetura de Von Neumann


Fonte: <http://pt.wikipedia.org/wiki/Arquitectura_de_von_Neumann#media-
viewer/Ficheiro:Arquitectura_von_Neumann.png>. Acesso em: 24 jul. de 2014.

Registradores
So componentes de hardware que guardam dados binrios relativos a dados,
endereos de memrias e informaes de controle. No devem ser confundi-
dos com os dispositivos de armazenamento do computador, pois so internos
UCP (MURDOCA & HEURING; 2000). Os registradores podem ler dados em
tamanho fixo, sendo mais comumente hoje palavras de 16 ou 32 bits (MONTEI-
RO, 2007). A arquitetura do processador designa a quantidade de registradores,
tamanho de leitura, assim como pode especificar funes especficas para cada
registrador.

Unidade de Aritmtica e Lgica (UAL)


As operaes matemticas e de lgebra booleana que vimos anteriormente so
executadas pela UAL.

80 captulo 4
Unidade de Controle
Essa unidade responsvel por manipular os registradores adequadamente
e ativar a UAL para as operaes requeridas na ordem correta. Cabe ainda
Unidade de Controle executar interrupes e monitor o estado das operaes
(STALLINGS, 2002).

Relgio
A frequncia desse dispositivo sincroniza todo o sistema computacional. Os re-
gistradores podem ser carregados com outro dados apenas com a passagem de
um ciclo do relgio (NULL & LOBUR, 2010).

Interfaces de Entrada e Sada (E/S)


A UCP recebe e disponibiliza dados por meio de dispositivos externos como
mouses, teclados, microfones, scanners (entrada) ou telas, alto-falantes, im-
pressoras (sada), para citar alguns exemplos comuns. O sinais entre UCP e es-
ses dispositivos precisam ser devidamente formatados para serem entendidos.

Barramento
Os elementos descritos acima precisam se comunicar, transmitindo dados,
instrues de controle e energia. Essa comunicao feita pelo conjunto de
vias de transmisso chamado barramento.

4.2 Instrues de computador

4.2.1 Estrutura e tipos


Cada tipo de processador capaz de executar um determinado conjunto de
instrues (MURDOCCA & HEURING, 2000). Esse fato ajuda a explicar os pro-
blemas de compatibilidade entre arquiteturas de computadores, pois elas pos-
suem conjuntos diferentes. Essas questes de compatibilidade tiveram e ainda
tm consequncias importantes para usurios e empresas do setor.

captulo 4 81
O tipo de processador tem diversas implicaes para a arquitetura do computador e
para o desenvolvimento de software. Por dcadas, a Apple preferiu no adotar chips
Intel, que foram a base da exploso do mercado de computadores pessoais, seja com
os sistemas operacionais DOS ou Windows da Microsoft. Quando o Macintosh foi
lanado em 1984, a mquina usava processadores da Motorola. Com esta empresa
e a IBM, a Apple fez um consrcio que criou a arquitetura do processador PowerPC
em 1991. Porm em 2005, Steve Jobs anunciava a transio para os processadores
Intel, citando como motivo a superioridade de desempenho. (LASHINSKY, 2012; LINZ-
MAYER, 2004).
interessante notar que tablets e smartphones so comumente baseados em chips
ARM, que possuem uma arquitetura diferente dos chips de PCs. Assim, embora haja
bastante semelhanas visuais entre a interface de um computador da Apple e a de um
iPhone, os seus sistemas operacionais - MAC OS E iOS respectivamente - so constru-
dos e funcionam de forma muito distinta.
A Microsoft buscou essa aproximao das interfaces do desktop e de aparelhos mveis
com o Windows 8 e o Windows RT, embora o uso dos dois sistemas tenha ficado abaixo
das expectativas da empresa (OVIDE, 2013).

Figura 2 Steve Jobs anunciando a transio para processadores Intel (2005).


<http://en.wikipedia.org/wiki/File:Steve_Jobs_Presentation_1.jpg>. Acesso em
24 jul. de 2014.

82 captulo 4
CONEXO
Leia um artigo que resume a histria dos microprocessadores e a disputa entre Intel e AMD:
<http://www.tecmundo.com.br/historia/2157-a-historia-dos-processadores.htm>
Acesso em 24 jul. de 2014.

Segundo Stallings (2000), uma instruo deve possuir os seguintes elemen-


tos de modo a fornecer toda a informao requerida para a execuo:
Cdigo da operao. A operao de adio, por exemplo, usualmente
simbolizada por ADD.
Referncia aos operandos de entrada: dados que sero processados, en-
dereos de memria, entre outros.
Referncia aos operandos de sada: resultado da operao.
Endereo da instruo seguinte.

O quadro 4.1 sumariza os tipos principais de instrues. H aquelas que


envolvem operaes lgicas e aritmticas como vimos no captulo anterior. Po-
rm h instrues especficas que se referem a armazenamento e movimenta-
o de dados, assim como instrues ligadas ao prprio controle de instrues
(MURDOCCA & HEURING, 2000).

CODIFICAO
TIPO DE INSTRUO FUNO/EXEMPLOS COMUM
Aritmtica / Lgica Adicionar, subtrair, conjuno ADD, SUB, AND

Movimentao de dados Faz a transferncia de dados LOAD, STORE,


entre os registradores e a OUT
memria principal ou entre o
registradores entre si: carre-
gar, gravar, sada.

captulo 4 83
CODIFICAO
TIPO DE INSTRUO FUNO/EXEMPLOS COMUM
Transferncia de Con- Chamar subrotinas, Desviar a HALT, JE
trole instruo do fluxo sequencial:
suspenso, desvia se igual.

Quadro 4.1 Tipos Principais de Instrues


Fonte: adaptado de Murdocca & Heuring, 2000

ATENO
O termo operando se refere a dados que sero objeto de operaes de processamento. Stallin-
gs (2002) classifica os operandos em quatro tipos:
Nmeros. Exemplos.: inteiros, de ponto flutuante.
Caracteres: Exemplos.: alfabeto latino, chins, smbolos especiais.
Dados lgicos. Exemplos: verdadeiro, falso.
Endereos de memria: registros no disco rgido.

4.2.2 Ciclo de instruo e interrupo

Monteiro (2007) ilustra um ciclo simplifica de instruo conforme a figura 3.


O prprio autor chama ateno que os computadores de hoje no mais reali-
zam uma instruo s por vez. O modelo atualmente empregado usa o mtodo
de pipelining, em que as instrues so executadas de forma paralela. Por esse
mtodo, as instrues so dividas em etapas, permitindo que a UCP armazene
e execute diversas instrues por vez. Outro ponto positivo desse mtodo, que
so armazenadas continuamente etapas de instrues nos registradores, evi-
tando que se espere para busc-las na memria principal, um procedimento
mais lento. Como desvantagem do pipelining, est a maior complexidade do
controle da instrues, o que pode implicar conflitos e problemas de fluxos de
memria (MURDOCCA & HEURING, 2000).

84 captulo 4
ATENO
Overflow aritmtico acontece quando o resultado matemtico de uma operao ultrapassa o
valor designado de memria e/ou o formato designado de sua varivel.

O ciclo esquematizado na figura 3, ou qualquer ou ciclo que envolva instru-


es, pode ser interrompido por causa diversas (NULL & LOBUR, 2010):
Instrues de entrada e sada, como aquelas requisitadas pelo usurio.
(No ambiente Windows, possvel interromper processos por meio do
gerenciador de tarefas, acionado pela combinao CTRL+ALT+DEL)
Erros em operaes aritmticas: diviso por zero, overflow.
Problemas de hardware.
Instrues invlidas.

Incio

Busca
instruo na
memria

Interpretar a
operao a ser
realizada

Busca
operandos
(se houver)

Executar a
operao

Escrever o
resultado

Trmino

Figura 3 Ciclo de Instruo Bsico (MONTEIRO, 2007, p. 157).

captulo 4 85
4.3 Aspectos de arquitetura nos computadores pessoais

At este momento, tratamos de modelos para instrues e para arquitetura de


computadores. Nesta seo, vamos explorar aspectos mais visveis em nossos
computadores de uso cotidiano. Inicialmente, vamos apresentar a funo da pla-
ca-me, que ajuda a entender a arquitetura do computador em termos fsicos.
Depois, vamos falar da linguagem de alto nvel e um pouco sobre sistemas ope-
racionais, que correspondem a aspectos prticos das instrues para o usurio.

4.3.1 Placa-me

A placa-me realiza a comunicao e d suporte fsico aos componentes do


computador. Essa comunicao pode se referir quela entre os componentes
internos, ou entre esses componentes e interfaces externas. Por meio da placa-
me, o processador se comunica com a memria principal; esta se comunica
com a memria principal se comunica com dispositivos de armazenamento
secundrio; os resultados de clculo so transmitido para a tela; etc. Para tan-
to, as placas-me possuem conjuntos de circuitos integrados (chipsets) que fa-
zem a comunicao entre o processador, a memria e o controle de perifricos.
(CORNACCHIONE, 2012).
Avanos na tecnologia dessas placas buscam prover uma melhor ventilao
e resfriamento, especialmente ao processador (CORNACCHIONE, 2012).

ATENO
Como a placa-me responsvel por transmitir sinais eltricos entre componentes eletrnicos,
quaisquer fatores fsicos que prejudiquem a qualidade desse comunicao dificultar ou mes-
mo impedir o desempenho do computador, por exemplo: poeira, umidade e maresia, oscila-
es de energia (corrente/voltagem), altas temperaturas e falta de ventilao.
Algumas placas-me so banhadas a ouro para prevenir a oxidao. Em todos os casos, reco-
menda-se realizar a manuteno preventiva da placa-me e no apenas a corretiva, depois que
problemas se manifestaram.

86 captulo 4
Figura 4 Placa-me
Disponvel em: <http://en.wikipedia.org/wiki/Mother_board#mediaviewer/File:Micro-
ATX_Motherboard_with_AMD_Athlon_Processor_2_Digon3.jpg>.
Acesso em: 24 jul. de 2014.

Figura 5 Processador AMD Figura 6 Chipset


Disponvel em: <http://pt.wikipe- <http://pt.wikipedia.org/wiki/
dia.org/wiki/Placa-m%C3%A3e#- Chipset#mediaviewer/>Fi-
mediaviewer/>Ficheiro:AMD-A- cheiro:Southbridge.jpg Acesso
thlonXP-1700.jpg>. Acesso em 24 em 24 jul. de 2014.
jul. de 2014.

captulo 4 87
4.3.2 Software e instrues

Como falamos antes, para usar os recursos de hardware voc precisar de sof-
tware. Sem o software, seu hardware apenas ficar inerte. Por meio do softwa-
re, o hardware recebe instrues detalhadas que dizem ao computador o que
deve ser feito. Basicamente, ns temos dois tipos de software. Antes, na poca
do ENIAC, todo o software era escrito desde o comeo, e o prprio software
precisava saber manipular tudo o que fosse necessrio: tanto a informao
quanto os prprios componentes do computador. Os dois tipos de software
hoje existentes so o software de sistema e o software aplicativo.
ADAPTADO DE (LAUDON E LAUDON, 2007)

Software aplicativo

Software de sistemas Software de Sistemas


Sistemas operacionais
Tradutores de linguagem
Hardware Programas utilitrios

Software Aplicativo
Linguagens de programao
Linguagens de quarta gerao
Pacotes de software e ferramentas
de produtividade para PCs

Figura 7 Principais tipos de software.

O software de sistema inclui os sistemas operacionais, os tradutores de lin-


guagem e os programas utilitrios. Os softwares aplicativos incluem as lingua-
gens de programao, as linguagens de quarta gerao e os pacotes de software.
Os softwares aplicativos com os quais temos mais contatos so os pacotes
de software. So ferramentas como sutes de aplicativos para escritrio, como
o Office, da Microsoft. Incluem editores de texto, planilhas eletrnicas, editores
de apresentaes, dentre outros.Um navegador para Internet, como o Internet
Explorer, o Firefox ou o Opera, um exemplo de software aplicativo tambm.
Enfim, so softwares para utilizao do usurio final.
Estes softwares aplicativos foram construdos, de alguma maneira, usan-
do linguagens de programao. No entanto, o desenvolvedor, ao criar um sof-
tware, precisa cuidar de muitos detalhes de funcionamento. Isto torna custoso
o processo de desenvolvimento. Porm, este desenvolvedor no precisa saber

88 captulo 4
como o computador faz para escrever ou desenhar uma interface grfica na tela
do seu monitor. Para isto, basta que ele solicite (escreva) isto no seu cdigo, e
quem cuidar da execuo deste tipo de tarefa o sistema operacional.

4.3.2.1 Software de sistema


O software de sistema operacional aquele que conversa com o hardware e
manipula seus recursos. Ele sabe como escrever informaes na sada, seja
um vdeo ou impressora. Ele tambm sabe como interpretar as informaes
vindas da entrada, como o mouse e o teclado. Alm disto, sabe como guardar es-
tas informaes na memria e lev-las ao processador quando necessrio, para
que as tarefas descritas por linguagens de programao possam ser executadas
e transformem-se em programas teis aos usurios finais, como uma planilha
de clculo, por exemplo.
por isto que, na figura vista, o sistema operacional fica prximo do ncleo
do computador, que o hardware. Ele traduz as necessidades dos softwares
aplicativos e, assim, os desenvolvedores tm mais facilidade para trabalhar.
Um sistema operacional de propsito geral (pois existem SOs para ativida-
des especficas) uma coleo de outros softwares que gerenciam todos os
dispositivos do computador. Em geral, ele possui os seguintes componentes:
gerenciador (escalonador) de processos;
gerenciador de memria;
gerenciador de entrada e sada;
gerenciador de sistema de arquivos.
Um programa apenas um conjunto de instrues a serem realizadas,
como uma receita. No entanto, o programa est escrito numa linguagem de
mquina, que o computador possa compreender. Quando voc deseja usar este
programa, ele se torna um processo para o sistema operacional. Por isso, o SO
possui um escalonador de processos. Por meio dele, o SO consegue controlar os
programas em execuo, manipular informaes para este processo, controlar
os arquivos que este processo est usando, dentre outros.
O gerenciador de memria atua no sistema operacional para garantir que
cada processo tenha seu espao de trabalho reservado na memria RAM (a me-
mria de trabalho). O gerenciador de entrada e sada controla e manipula infor-
maes que, por exemplo, entram pelo teclado, digitadas pelo usurio, e devem
ser escritas na tela do monitor. Alm disso, tambm controlam dispositivos de
armazenamento, como discos, CDs, pen drives etc. J o gerenciador do sistema

captulo 4 89
de arquivos garante a manipulao de arquivos em dispositivos de armazena-
mento, cuida para que os arquivos fiquem organizados e possam ser acessados.
Estes componentes do sistema operacional, normalmente, no so vis-
veis ao usurio final. Digo normalmente porque, em sistemas com cdigo
fonte aberto, como o Linux, possvel ao usurio no s ver como alterar os
cdigos para os componentes do sistema operacional.
Para os usurios finais, a manipulao dos recursos oferecidos feita por
meio de uma interface. Esta interface comeou em seus primrdios, como a
famosa linha de comando ou interface modo texto! E hoje evolumos para
interfaces grficas (to comuns para as novas geraes que j nasceram com
a existncia dela), interfaces por comandos de voz etc.

4.3.2.2 Tradutores de linguagem


Alm dos sistemas operacionais, temos tambm os softwares que fazem a
traduo de linguagem e os softwares utilitrios. Os softwares de traduo
convertem o cdigo escrito numa linguagem de programao (veja o tpico se-
guinte) para a linguagem de mquina que ser compreendida pelo hardware e
usar recursos administrados pelo sistema operacional.
J os programas utilitrios so aqueles que auxiliam o usurio na confi-
gurao e no gerenciamento do sistema operacional de seu computador. Um
exemplo de programa utilitrio o Windows Explorer para Windows. Trata-se
de um gerenciador de arquivos que permite ao usurio encontrar seus arquivos
no computador, como na figura a seguir.

Figura 8 Gerenciador de arquivos Windows Explorer

90 captulo 4
Voc j deve estar habituada a ela, no mesmo?

Figura 9 Desfragmentador de Discos do Windows

Outra ferramenta que podemos citar o Desfragmentador de Discos, que


serve para reorganizar os arquivos que esto no disco rgido de maneira a ocu-
parem menos espao.
Alm desses, existem diversas outras ferramentas para auxiliar na configu-
rao da rea de trabalho, no logon (entrada do usurio no sistema), no geren-
ciamento de recursos etc.

CONEXO
Recomendaes 3.2
Se voc quiser saber, detalhadamente, sobre o funcionamento do sistema operacional, acesse:
<http://informatica.hsw.uol.com.br/sistemas-operacionais.htm>. Acesso em: 24 jul. de 2014.

4.3.2.3 Linguagens de programao


Dentre os softwares aplicativos existentes, temos as linguagens de progra-
mao, as chamadas linguagens de quarta gerao e os pacotes de software
e ferramentas de produtividade. Existem diversas linguagens de programao
famosas, como C, C++, Java, COBOL, Visual Basic, C#, PHP, Python e muitas
outras. A linguagem de programao serve para representarmos as instrues
que um programa deve realizar para alguma tarefa. O computador entende ape-
nas sinais eltricos. Como representamos a existncia (1) ou a ausncia (0) de
sinal, a linguagem que o computador entende chamada de binria. Logo, se
instruirmos o computador por meio de uma linguagem binria, ele poder rea-
lizar a tarefa que desejamos.

captulo 4 91
100100100100100111
001100011111101011

Figura 10 O computador compreende a linguagem binria

No entanto, muito difcil escrever na linguagem do computador, assim


como muito difcil escrever em ingls ou em japons se voc no conhece a
fundo a linguagem! Mas, se precisamos dar estas instrues e no sabemos a
linguagem daquele que ser instrudo, ento podemos usar algum intermedi-
rio, por exemplo um tradutor.

???
Mostre um nmero
na sua tela.

Figura 11 O computador no compreende a linguagem de alto nvel

Esse intermedirio, o tradutor, precisa saber falar a sua linguagem e a lin-


guagem do computador. Assim, ele precisar converter o que voc quiser para a
linguagem de computador (o binrio!).

Mostre um nmero 100100100100100111


Compilador
na sua tela. 001100011111101011

Figura 12 O compilador traduz a linguagem de alto nvel para a linguagem binria

92 captulo 4
Em computao, esse tradutor chamado de compilador, e a converso de
uma linguagem em outra chamada de processo de compilao. O tradutor
uma ferramenta de sistema, enquanto a linguagem um software voltado ao
usurio (para que possa programar o sistema).

4.3.2.4 Linguagens de quarto nvel


As linguagens de quarta gerao consistem num conjunto de diversas ferra-
mentas de software para auxiliar os usurios finais no desenvolvimento de sof-
twares aplicativos sem necessitar tanto de conhecimentos mais tcnicos. Algu-
mas linguagens de programao, como Java e C++, so consideradas de quarta
gerao por no serem procedurais, mas sim orientadas a objetos. A tabela a
seguir mostra sete tipos de linguagens de quarta gerao.

CONEXO
Recomendaes 3.3
Veja mais informaes sobre as linguagens e suas geraes em:
<http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o_de_quarta_
gera%C3%A7%C3%A3o>.
<http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o>.
Acesso em 24 jul. de 2014.

captulo 4 93
FERRAMENTAS DE
LINGUAGEM DE DESCRIO EXEMPLO
QUARTA GERAO
Orientada
WordPerfect
Ferramentas de Pacotes de softwares de uso geral para o
Internet Explores
software de PC para PCs. usurio
Access
final
Linguagens para extrair dados arma-
Linguagens de zenados em arquivos ou bancos de
SQL
consulta dados. Suportam requisies de infor-
maes que no so predefinidas.
Extraem dados de arquivos ou bancos
de dados para criar relatrios espe-
cficos sob uma grande variedade de
formatos que no so produzidos por
sistemas de informao.
Geradores de
Cristal Reports
relatrios
Geralmente proporcionam maior con-
trole sobre a maneira como dos dados
so formatados, organizados e apre-
sentados do que as linguagens de
consulta.
Extraem dados de arquivos ou ban-
co de dados e os apresentam sob o
Linguagens gr- formato de grficos. alguns softwares SAS Graph
ficas geradores de grficos tambm pode Systat
executar operaes aritmticas ou l-
gicas com os dados.
Contm mdulos pr-programados
que poderm gerar aplicaes comple-
tas, incluindo sites Web, conferindo
FOCUS
grande velocidade ao desenvolvimen-
Geradores de PowerBuilder
to. O usurio pode especificar o que
aplicaes Microsoft Fron-
precisa ser feito e o gerador de apli-
tPage
cao criar o cdigo de programa
apropriado para entrada, validao,
atualizao e apresentao.
Programas de software vendidos ou
Pacotes de sof- arrendados por empresas comerciais PeopleSoft HRMS
twares aplicativos que eliminam a necessidade de sof- SAP R/3
tware personalizado, da casa.
Gerem cdigos de programa com um
nmero menor de instrues do que
Linguagens de as linguagens convencionais, como
APL
programao de COBOL ou FORTRAN. Projetadas
Normad2
altssimo nvel primordialmente como ferramentas
de produtividade para programadores
profissionais.

94 captulo 4
ATIVIDADE
1. Quais causas podem acarretar o interrompimento de uma instruo?

2. O que so registradores e o que os diferenciam da memria de armazenamento?

3. Pesquise sobre a relao entre a Lei de Moore e os microprocessadores com ncleo ml-
tiplos.

4. Pesquise sobre as linguagens de primeiro ao quinto nvel.

REFLEXO
Por muito tempo, a capacidade dos processadores foi um limite frequente para a microin-
formtica. Avanos em software e hardware frequentemente precisavam esperar uma nova
gerao de microchips. Reflita sobre o estado atual da microinformtica: so os micropro-
cessadores hoje um gargalo relevante para a maioria dos usurios? Caso contrrio, que fator
se tornou a principal fronteira da microinformtica?

LEITURA
Relatrio de pesquisa: TUSSET, F. Evoluo dos processadores. Rio de Janeiro: UFRJ, sem ano.
Disponvel em: <http://equipe.nce.ufrj.br/gabriel/arqcomp2/Hist%F3rico.pdf>. Acesso em: 15
jun. 2014.

REFERNCIAS BIBLIOGRFICAS
CAPRON, H. L.; JOHNSON, J. A. Introducao a Informatica. Sao Paulo: Pearson Prentice
Hall. 2004.

CORNACCHIONE JR., E. B. Informtica. So Paulo: Atlas, 2012.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informacao Gerenciais. Sao Paulo: Prentice


Hall. 2007.

captulo 4 95
LASHINSKY, A. Nos Bastidores da Apple. So Paulo: Saraiva, 2012.

LINZMAYER, O. W. Apple Confidential 2.0 The definitive history of the worlds most colorful
company. So Francisco: No Starch, 2004.

MONTEIRO, M. A. Introduo Organizao de Computadores. 5a ed. So Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introduo Arquitetura de Computadores. Rio de Janeiro:


Campus, 2001.

NULL, L.; LOBUR, J. Princpios Bsicos de Arquitetura e Organizao de Computadores. 2a ed.


Porto Alegre: Bookman, 2010.

OVIDE, S. CEO exits sets Microsoft on new path. The Wall Street Journal, edico eletrnica, 25
ago 2013. Disponvel em: <http://online.wsj.com/news/articles/SB10001424127887324619
504579031300409638802>. Acesso em: 15 jun. 2014.

STALLINGS, W. Arquitetura e Organizao de Computadores. So Paulo: Prentice Hall, 2002.

NO PRXIMO CAPTULO
No prximo captulo, vamos entender como funciona o sistema de memria e as suas opera-
es com a UCP. Ainda, vamos explorar os dispositivos de entrada e sada..

96 captulo 4
5
Memria e
Dispositivos de
Entrada e Sada
5 Memria e Dispositivos de Entrada e Sada
No captulo anterior, vimos como a UCP precisa ter dados e instrues dispon-
veis para que possa cumprir a sua funo. A fonte imediata de dados para a UCP
encontra-se nos registradores, que so componentes internos unidade. Os re-
gistradores se caracterizam pela rapidez com que se comunicam com o processa-
dor, porm eles possuem uma capacidade limitada de armazenamento e outros
componentes de memria tambm precisam ser utilizados (LAUDON & LAUDON,
2007; CAPRON & JOHNSON, 2004). Neste captulo, vamos identificar os tipos prin-
cipais de memria e como se d a sua inter-relao. Tambm discutiremos as in-
terfaces de entrada e sada.

OBJETIVOS
Conhecer os diferentes tipos de memria e as suas inter-relaes.
Identificar os trade-offs a respeito do desempenho dos dispositivos de memria.
Compreender a importncia da memrica cache.
Saber como funcionam diferentes dispositivos de entrada e sada e a sua comunicao
com a UCP.
Avaliar os diferentes tipos de computadores em relao a seus dispositvos de entrada e sada.

REFLEXO
Busque identificar todos os tipos de armazenamento que voc possui e classifique-os
em termos de velocidade de transferncia e capacidade. Quais tipos de armazenamento
voc j usou com frequncia, mas hoje esto obsoletos? Quantas vezes voc j foi pre-
judicado por problemas relacionados a armazenamentos de dados?

captulo 5 99
5.1 Memria

5.1.1 Hierarquia

Os diversos tipos de memria so definidos em termos da sua relao com a UCP.


Quanto mais direta for essa relao, considera-se maior a sua posio hierrquica.
H diversas formas de ilustrar essa hierarquia, a figura 1 baseada na verso de
Stallings (2002) e Murdoca & Heuring (2000).
Deve-se notar que discos rgidos so considerados como armazenamento
externo ou secundrio. Apesar de possurem uma interface com a placa-me,
essa relao no to direta e veloz quanto aquela da memria interna UCP.
Durante o funcionamento da UCP, primeiro se verifica se o dado necessrio
est ou no na memria interna. Em caso contrrio, acionado o armazena-
mento externo e assim por diante.

Mais rpida e cara

Memria
Interna

Armazenamento
Externo (disco)

Armazenamento de Segurana
(fitas)

Mais lenta e barata

Figura 1 Hierarquia da Memria


Fonte: Adaptado de Stallings (2002, p. 100) e Murdoca & Heuring (2000, p. 225).

Deve-se notar que quanto mais alto estiver na hierarquia, mais custoso ten-
de a ser o dispositivo. Assim, um projeto de computador deve balancear os be-
nefcios trazidos pela capacidade da memria interna face a seus custos. Ain-
da, deve haver um balanceamento adequado na velocidade dos componentes

100 captulo 5
do computador: De nada adianta, por exemplo, haver uma grande capacidade
de memria se os dispositivos de sada atrasarem os ciclos de instrues. Da
mesma forma, um processador potente pode permanecer subutilizado se no
houver a capacidade de memria adequada (MONTEIRO, 2007).

5.1.2 Caractersticas dos dispositivos de memria

O quadro 5.1 sumariza as caractersticas fundamentais dos componentes de me-


mria, as quais sero exploradas ao longo deste captulo. A caracterstica de loca-
lizao reflete a hierarquia discutida anteriormente. Quanto unidade de trans-
ferncia, sabemos do captulo 2 que os processadores e certos dispositivos de
memria leem e transferem dados em tamanho fixo, da uma das diferenas entre
computadores de 16 ou 32 bits. Quanto aos mtodos de acesso que os dispositivos
utilizam para localizar e dispor dados, a figura 2 sumariza os tipos principais.

CARACTERSTICA TIPOS PRINCIPAIS


Localizao No processador (registradores), interno, externo.

Capacidade Tamanho da palavra (16, 32 bits), nmero de pala-


vras.

Unidade de transferncia Palavra (16, 32 bits), blocos (nas memrias exter-


nas, as transferncias se do por blocos considera-
velmente maiores do que as palavras).

Acesso Sequencial, direto, aleatrio, associativo.

Desempenho tempo de acesso, tempo de ciclo e taxa de transfe-


rncia.

Tecnologia semicondutores, tico, magntico.

Caracterstica fsica voltil ou no, apagvel ou no.

Quadro 5.1 Caractersticas Fundamentais dos Componentes de Memria


Fonte: adaptado de Stallings (2002)

captulo 5 101
registros organizam dados.
Sequencial o acesso segue um sequenciamento linear.
Exemplo: fitas.

registros tambm organizam dados.


Direto cada registro possui endereo nico.
Exemplo: discos.

endereamento nico e fisicamente


Aleatrio dedicado de cada posio.
Exemplo: memria RAM.

a busca orientada pelo contedo, no


Associativo pelo endereo.
Exemplo: alguns tipos de memria cache.

Figura 2 Mtodos de Acesso Memria


Fonte: Stallings (2002)

Como a qualidade dos sistemas computacionais depende do desempenho


dos seus dispositivos de memria, importante termos mtodos para avali
-los. Stallings identifica trs fatores fundamentais:
Tempo de acesso: na memria que no usa o acesso aleatrio, esse tem-
po corresponde quele gasto para o posicionamento da leitura ou da es-
crita na localizao desejada. J para as memrias de acesso aleatrio,
esse fator equivale diretamente ao tempo gasto para o procedimento de
leitura ou escrita.
Tempo de ciclo de memria: intervalo requerido para que um acesso possa
suceder o outro. Fator que se aplica mais a memrias de acesso aleatrio.
Taxa de transferncia: taxa em que os bits podem ser deslocados no dis-
positivo de memria. Para as memrias de acesso aleatrio, essa taxa
corresponde ao inverso do tempo de ciclo. Para memrias de acesso no
aleatrio, tem-se a relao:

102 captulo 5
N
R=
T T a

Onde: R = taxa de transferncia em bits por segundo (bps)


N: nmero de bits.
TN: tempo mdio para ler ou escrever uma quantidade N de bits.
Ta: tempo mdio de acesso.

Alm dos fatores acima, importante levar em considerao a taxa de acerto


(NULL & LOBUR, 2010). Essa taxa reflete quantas vezes o dado requerido esteve
no nvel especificado da memria em relao ao total de requisies.

5.1.3 Memria principal

Registradores

Memria Cache

Memria Principal

Figura 3 Diviso da Memria Interna


Fonte: Adaptado de Stallings (2002, p. 100) e Murdoca & Heuring (2000, p .225)

Como mostra a figura 3, a memria interna tambm subdivida em termos


de comunicao com a UCP. Vamos caracterizar inicialmente a memria prin-
cipal para depois tratar da memria cache.

captulo 5 103
Memria
UCP
Principal

Barramento

Figura 4 Relao entre UCP e Memria Principal


Adaptado de Murdoca & Heuring (2000, p .235)

Retomando o modelo de Von Neumann, a UCP precisa ser alimentada rpi-


da e diretamente com dados e instrues (figura 4). Essa a funo da memria
principal. Para que a memria funcione com a UCP, preciso haver uma inte-
grao de registradores, mecanismos de controle e o barramento (MONTEIRO,
2007), tal como resume o quadro 5.2.

ELEMENTO FUNO
Registrador de endereo (REM) armazena temporariamente o endereo a
ser acessado.

Barramento de endereos transmite dados do REM para a memria


principal (unidirecional).

Registrador de dado (RDM) armazena de forma temporria o dado a


ser transferido.

Barramento de dados faz a ligao entre o RDM e a memria


principal (bidirecional)

Controlador da memria integra a unidade de controle: sinaliza


instrues e avalia o estado de execuo
das operaes de memria integrando
toda a UCP.

104 captulo 5
ELEMENTO FUNO
Barramento de controle comunica os sinais relativos ao controle
no sistema.

Relgio sincroniza o sistema.

Quadro 5.2 Elementos para Operaes de Memria


Fonte: adaptado de Monteiro (2007)

ATENO
Em linguagens de programao como C++, um ponteiro armazena o endereo da posio de
um dado na memria, servindo para referenci-lo (PIVA JR. et al, 2012).

A partir dos componentes acima, podemos descrever as duas operaes b-


sicas da memria: leitura e escrita. Na operao de leitura temos a sequncia
descrita na figura 5. Perceba que h trs tipos comunicaes envolvidas: o en-
dereo do dado, os sinais de controle de instruo e, por fim, o dado em si. Nes-
sa operao, o comeo depende da indicao do endereo da memria onde
est o dado a ser acessado. J na operao de escrita, indicado o endereo
onde o dado deve ser gravado. De qualquer forma, as trs formas de comunica-
o pelo barramento tambm so usadas.

CONEXO
Conhea como funciona uma data center do Google (h opo de legenda em portugus).
<https://www.youtube.com/watch?v=avP5d16wEp0>
Acesso em 24 jul. de 2014.

captulo 5 105
Incio

A UCP envia ao REM o endereo


na memria do dado a ser lido
(barramento de endereos)

sinalizada a operao de leitura


no barramento de controle.

O dado transferido e armazenado


no RDM (barramento de dados)

Do RDM, o dado transmitido para


outro registrador na UCP.

Trmino

Figura 5 Esquematizao da operao de leitura.


Adaptado de: (DELGADO e RIBEIRO, 2009).

Incio

A UCP envia ao REM o endereo na


memria onde o dado ser gravado
(barramento de endereos)

sinalizada a operao de escrita


no barramento de controle.

O dado transferido e armazenado


no RDM (barramento de dados)

Do RDM, o dado transmitido para


o endereo designado.

Trmino

Figura 6 Esquematizao da operao de leitura.


Adaptado de: (DELGADO e RIBEIRO, 2009)

106 captulo 5
5.1.4 Memria RAM

Figura 7 Modelos diferentes de memria RAM.


Disponvel em: <http://pt.wikipedia.org/wiki/RAM#mediaviewer/Fichei-
ro:RAM_n.jpg>. Acesso em: 24 jul. de 2014.

ATENO
A Memria RAM voltil, ou seja, seus dados deixam de ser armazenados na ausncia de
energia. Para que um computador receba instrues bsicas sem depender da RAM, criou-
se uma memria de apenas leitura (ROM, read-only memory) que no voltil. Embora exis-
tam alguns dispositivos de ROM que podem ser reprogramados, a funo principal deles
ainda manter um conjunto essencial de dados para leitura. Em sistemas embutidos, como
eletrodomsticos, brinquedos e equipamentos mdicos, a memria ROM possui uma importn-
cia maior (NULL & LOBUR, 2010).

captulo 5 107
Nos computadores convencionais, o papel da memria principal desem-
penhado pela memria RAM e parcialmente pela memria ROM. Como vimos
no captulo 1, a memria RAM (memria de acesso randmico) serve para
armazenar dados de trabalho do processador. Nas especificaes de compu-
tadores comerciais, a capacidade da memria RAM recebe destaque. Quando
lanado em 1977, o Apple II tinha uma memria RAM de 4Kb expansvel at
48 Kb apenas (LINZMAYER, 2004), j em 2014, um iMac podia chegar ter at
32G (APPLE, 2014). Nas placas-me dos computadores pessoais, geralmente h
slots livres para que outros circuitos de RAM possam ser adicionados, j em dis-
positivos mveis isso mais raro.

CONEXO
Saiba mais sobre Memria RAM:
<http://e.cdn-hardware.com.br/static/media/RevistaGDH_04.pdf>
Acesso em 24 jul. de 2014.

Figura 8 iMac.
Disponvel em: <http://commons.wikimedia.org/wiki/IMac#mediaviewer/Fi-
le:IMac_vector.svg>.

108 captulo 5
O quadro 5.3 relaciona os principais tipos de memria RAM. Deve-se desta-
car aquelas de tipo sncrono, que trabalham sem atraso (delay) com o proces-
sador (CORNACCHIONE, 2012). Outra diferena importante reside nas mem-
rias RAM estticas, que mantm os seus dados enquanto houver alimentao
de energia, e as dinmicas, que demandam recargas em perodos de poucos
milissegundos (NULL & LOBOUR, 2011).

CATEGORIA GERAL TIPO


DRAM (Dynamic RAM)

FPM DRAM (Fast Page Mode DRAM)

Principal EDO DRAM (Extended Data Out DRAM)

SDRAM ( Synchronous DRAM)

MDRAM (Multibank DRAM)

Cache SPRAM (Static RAM)

VRAM (Vdeo RAM)

Vdeo SGRAM (Synchronous Graphics RAM)

WRAM (Window RAM)

Quadro 5.3 Tipos principais de memria RAM


Fonte: Cornacchione (2012, p. 45)

5.1.5 Memrica Cache

A UCP processa dados em velocidade consideravelmente maior do que os mes-


mos so transferidos entre a memria principal (STALLINGS, 2002). Por isso,
o acesso memria pode frequentemente se tornar um gargalo do sistema. A

captulo 5 109
ideia de uma memria intermediria entre a UCP e a memria principal veio
da constatao de que 90% do processamento depende de apenas de 10% de
cdigo (MURDOCHA & HEURING, 2000). Assim, uma memria pequena pode-
ria armazenar os dados que so usados com mais frequncia. Colocando essa
memria em comunicao direta e rpida com a UCP (figura 9), o desempenho
do computador poderia ser melhorado de forma significativa.

UCP Memria
Cache Principal

Barramento

Figura 9 Relao entre UCP e Memria Principal


Adaptado de Murdoca & Heuring (2000, p. 235)

O desafio para que a memria cache seja eficiente que haja um bom mape-
amento de memria e que realmente os dados mais teis sejam armazenados.
A memria cache geralmente mapeada pelos mtodos direto, associativo ou
associativo por conjunto (NULL & LOBOUR, 2011).

H algum tempo, o armazenamento secundrio era sinnimo de discos magnticos,


como os disquetes e o disco rgido do computador pessoal. Este ltimo consiste na ver-
dade em uma srie de discos empilhados em uma estrutura a vcuo. Em comum com
os disquetes, est a presena de partes mveis e dependncia de um cabeote para
fazer a leitura dos dados. Essas caractersticas acarretam alguma fragilidade desses
sistemas em relao a choques e esse um dos motivos, alm da relativa lentido, para
que as memrias em estado slido (semicondutores) tenham passado a encontrar mais
uso, inclusive como armazenamento secundrio em laptops (NULL & LOBOUR, 2011).

110 captulo 5
5.2 Dispositivos de entrada e sada E/S

Um computador no processa dados como um fim de si mesmo. Os usurios


precisam indicar que instrues e dados querem processar e os mesmos usu-
rios devem receber o resultado do processamento. Essa comunicao se d
pelos sistemas de entrada e sada (E/S), ou, em ingls, In and Out (I/O) (DEL-
GADO & RIBEIRO, 2009). No se trata aqui apenas de transmisso de dados,
deve-se ressaltar, mas da prpria experincia que o usurio ter com o disposti-
vo. Smartphones e tablets com tela multitoque ultrapassaram os computadores
pessoais como objetos de consumo justamente por oferecem uma experincia
nica quanto interface.
As arquiteturas dos computadores devem fornecer no s portas fsicas
para os dispositivos de E/S, mas um mapeamento de memria adequado e pro-
gramao de baixo nvel para comunicao, tal como em drivers. Como salienta
Monteiro (2007), mouses, teclados, vdeos, microfones possuem formas de si-
nais e velocidades muito distintas. Alm disso, tais dipositivos no so sincro-
nizados pelo relgio da UCP. Na figura 10, temos um exemplo de arranjo entre
UCP, memria pricipal (MP) e dispositos perifricos (P1, P2 e P3) por meio de
uma interface E/S. Lembrando que cabe ao controle implementar as operaes
de leitura e escrita, alm de monitorar o estado de sua execuo.

UCP
Memria Principal

Endereo Controle Dados

Controlador E/S

P1 P2 P3

Figura 10 Exemplo de arranjo entre UCP, MP, E/S e perifricos


Fonte: Adaptado de Monteiro (2007, p. 343)

captulo 5 111
A transmisso de dados entre a interface do perifrico e a memria/UCP
pode se dar por formas bem distintas. Na transmisso serial, a comunicao se
d por uma linha nica e, assim, um bit transmitido de cada vez. Via de regra,
a interface possui um buffer de forma a regular o fluxo e ritmo da transmisso.
Na transmisso paralela, um conjunto de bits repassado de uma s vez (MON-
TEIRO, 2007).

5.3 Tipos de Computadores

A seguir sero apresentados brevemente os tipos principais de computadores.


Busque identificar para cada um deles, a partir do texto e de pesquisa, quais
so os dispositivos de entrada e de sada.

5.3.1 Computadores pessoais

So os chamados computadores de mesa (desktop) ou microcomputadores.


Esta linha de computadores usada para tarefas rotineiras, domsticas ou em
escritrios. Uma variao deste tipo de computador que usada para servios
mais avanados so as estaes de trabalho (workstations). So PCs com confi-
gurao muito mais robusta.
GOCE / DREAMSTIME.COM

Figura 11 Uma Workstation PC

112 captulo 5
5.3.2 Notebooks

Estes computadores so mais leves, projetados para o uso porttil. Equipados com
bateria com boa durao, so usados em viagens ou em qualquer lugar. Atualmen-
te existem notebooks com configuraes to robustas e caras quanto workstations.
Recentemente, surgiu uma variao dos notebooks. So modelos com tela
menor (de 7 a 11 polegadas), bateria com maior durao, sem leitores de CD ou
DVD e muito mais leves, alm de serem mais baratos (em geral). So os chama-
dos netbooks. Planejados para portabilidade e navegao na Internet em qual-
quer lugar. Com a grande difuso das redes que fornecem Internet sem fio, este
modelo tem ganhado popularidade e vem sendo adotado at por escolas como
ferramenta de auxlio s atividades em sala.
KMTHEMAN / DREAMSTIME.COM

Figura 12 Um notebook versus um netbook

5.3.3 Computadores handheld

O handheld, tambm chamado de PDA (Personal Digital Assistant), foi criado


originalmente para controlar agendas de compromissos, informaes pessoais,
catlogo de endereos e telefones. Geralmente acessados por meio de uma cane-
ta grfica, possuem tela sensvel ao toque, sendo possvel escrever sobre ela.

captulo 5 113
Estes computadores evoluram e passaram a ter suas funcionalidades inte-
gradas em celulares, surgindo o chamado smartphone. Um smartphone basi-
camente um celular com funes de um PDA.

Um dos smartphones mais procurados e mais desejados desde o seu lan-


amento o Iphone, da Apple.

Um computador ultraporttil, o popular IPhone e um handheld da Compac.

5.3.4 Supercomputadores

So os mais caros e mais poderosos computadores. Usados para grandes simu-


laes, como previso do tempo, anlise do mercado de aes, efeitos especiais
em produes cinematogrficas. Tambm so muito usados por rgos do go-
verno para tarefas que envolvam gigantesca manipulao de dados.
LEROY N. SANCHEZ, RECORDS MANAGEMENT / MEDIA SERVICES AND OPERATIONS / WIKIMEDIA

Figura 13 Supercomputador RoadRunner

114 captulo 5
ATIVIDADE
1. Qual a diferena das memrias RAM e ROM?

2. Uma operao de leitura de memria envolve no mnimo quantos registradores?

3. O que a memria cache?

4. Qual a diferena entre o mtodo de acesso direto e por associao?

5. Qual a relao entre o processador e a memria RAM?

REFLEXO
Os tablets e smartphones trouxeram uma nova abordagem tanto para hardware quanto para
software. A microinformtica se tornou ainda mais presente no cotidiano, ganhando uma na-
tureza muito prxima e intma com o usurio. Quais sero os caminhos de desenvolvimento
dos computadores, sabendo-se da tendncia de queda de preos de componentes de um
lado e, de outro, da motivao das empresas em lanarem produtos inovadores, os quais
garantem uma maior margem de lucro? r!

LEITURA
Livro: SCHMIDT, E.; COHEN, J. A Nova Era Digital. Rio de Janeiro: Intrnseca, 2013.

REFERNCIAS BIBLIOGRFICAS
APPLE. Compare Mac models. Website. 2014. . Disponvel em: <https://www.apple.com/
mac/compare/>. Acesso em: 22 jun. 2014.

CAPRON, H. L.; JOHNSON, J. A. Introducao a Informatica. Sao Paulo: Pearson Prentice Hall.
2004.

CORNACCHIONE JR., E. B. Informtica. So Paulo: Atlas, 2012.

captulo 5 115
DELGADO, J.; RIBEIRO, C., Arquitetura de Computadores, 2 edio, LTC, , 2009.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informacao Gerenciais. Sao Paulo: Prentice Hall.


2007.

LINZMAYER, O. W. Apple Confidential 2.0 The definitive history of the worlds most colorful
company. So Francisco: No Starch, 2004.

MONTEIRO, M. A. Introduo Organizao de Computadores. 5a ed. So Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introduo Arquitetura de Computadores. Rio de Janeiro:


Campus, 2001.

NULL, L.; LOBUR, J. Princpios Bsicos de Arquitetura e Organizao de Computadores. 2a ed.


Porto Alegre: Bookman, 2010.

PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIANCHI, F. Algoritmos e Programao
de Computadores. Rio de Janeiro: Elsevier, 2012.

STALLINGS, W. Arquitetura e Organizao de Computadores. So Paulo: Prentice Hall, 2002.

116 captulo 5

Você também pode gostar