Escolar Documentos
Profissional Documentos
Cultura Documentos
COMPUTADORES
autor do original
MARCO FÁBIO POLLI
1ª edição
SESES
rio de janeiro 2015
Conselho editorial fernando fukuda, simone markenson, jeferson ferreira fagundes
Diagramação fabrico
Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida
por quaisquer meios (eletrônico ou mecânico, incluindo fotocópia e gravação) ou arquivada em
qualquer sistema ou banco de dados sem permissão escrita da Editora. Copyright seses, 2015.
ISBN 978-85-60923-49-6
1.Ciências da computação. 2. Organização de computadores.
3. Arquitetura de computadores. 4. Processamento. I. SESES.
II. Estácio
CDD 004.22
Prefácio 5
1. Processamento de Dados
e Estrutura Básica do Computador 8
Organização e arquitetura de computadores 9
Processamento de dados, Informação e Conhecimento 9
Breve histórico dos computadores 12
Visão geral do computador pessoal 19
Elementos Básicos da Arquitetura de Von Neumann 22
Construção de algoritmos simples 25
2. Representação de Dados 34
Memória 99
Dispositivos de entrada e saída E/S 110
Tipos de Computadores 111
Prefácio
Prezados(as) alunos(as)
Bons estudos!
6
1
Processamento de
Dados e Estrutura
Básica do Computador
1 Processamento de Dados
e Estrutura Básica do Computador
Computadores não se limitam aos notebooks e aos desktops nos escritórios, eles
estão nos equipamentos médicos, carros, aparelhos de TV, celulares e em sim-
ples brinquedos. É impossível dissociar a computação do nosso estilo de vida.
Porém, são poucas pessoas que de fato entendem como funciona um computa-
dor e como dados são processados. Esse conhecimento é importante para que
os computadores e seu modo de usar continuem a se desenvolver.
Aqui vamos descrever os elementos básicos de computação e sua história, ser-
vindo de base para os demais capítulos da disciplina. Vamos entender o concei-
to de dados e seu processamento. Um breve panomora da trajetória histórica
dos computadores será apresentado para que depois discutamos a arquitetura
da Von Neumann. Dessa forma, teremos uma visão fundamental sobre o funcio-
namento do computador.
OBJETIVOS
• Compreender a diferença entre organização e arquitetura de computadores.
• Dominar o conceito de dados e do seu processamento.
• Entender a trajetória de evolução dos seus computadores e seus tipos principais.
• Identificar as partes principais de um computador segundo a arquitetura de Von Neumann.
REFLEXÃO
Você já deve ter visto diversos filmes e artigos que discutem o tema da inteligência artificial. Seria
possível mesmo que computadores sejam inteligentes? Eles poderiam ter vontade ou consciên-
cia? Ao ler esse capítulo, busque refletir sobre o que um computador pode ou não fazer, relem-
brando as obras de ficção e opiniões sobre o assunto.
capítulo 1 •9
1.1 Organização e arquitetura de computadores
10 • capítulo 1
Esses dados podem ser quantificados, conectados entre si e manipulados pelo
Processamento de Dados.
Podemos definir dado também como unidades básicas a partir das quais
as informações poderão ser elaboradas ou obtidas. São fatos brutos, ainda não
organizados nem processados.
Já a informação seria:
[...]umaabstraçãoinformal(istoé,nãopodeserformalizadaatravésdeumateorialógicaoumate-
mática),queestánamentedealguém,representandoalgosignificativoparaessapessoa.Note-
-se que isto não é uma definição, é uma caracterização, porque “algo”, “significativo” e “al-
guém” não estão bem definidos; assumo aqui um entendimento intuitivo (ingênuo) desses
termos. Por exemplo, a frase “Paris é uma cidade fascinante” é um exemplo de informação
– desde que seja lida ou ouvida por alguém, desde que “Paris” signifique para essa pessoa
a capital da França (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.
[...] Se a representação da informação for feita por meio de dados, como na frase sobre
Paris, pode ser armazenada em um computador. Mas, atenção, o que é armazenado na
máquina não é a informação, mas a sua representação em forma de dados. Essa repre-
sentação pode ser transformada pela máquina, como na formatação de um texto, o que
seria uma transformação sintática. A máquina não pode mudar o significado a partir deste,
já que ele depende de uma pessoa que possui a informação. Obviamente, a máquina pode
embaralhar os dados de modo que eles passem a ser ininteligíveis pela pessoa que os re-
cebe, deixando de ser informação para essa pessoa. Além disso, é possível transformar a
representação de uma informação de modo que mude de informação para quem a recebe
(por exemplo, o computador pode mudar o nome da cidade de Paris para Londres). Hou-
ve mudança no significado para o receptor, mas no computador a alteração foi puramente
sintática, uma manipulação matemática de dados.
Assim, não é possível processar informação diretamente em um computador. Para isso é
necessário reduzi-la a dados. No exemplo, “fascinante” teria que ser quantificado, usando-
se por exemplo uma escala de zero a quatro. Mas então isso não seria mais informação [...].
capítulo 1 • 11
Podemos agrupar dados isolados e torná-los consistentes ao se transfor-
marem em informações. Por exemplo, se tivermos um conjunto de dados que
descreva a temperatura do ambiente num local, horário e data, poderíamos ter
a seguinte relação:
Organizar
Ribeirão
24°
Preto- SP
Assim, o conjunto de dados inicial foi organizado de maneira que “faça sen-
tido” àqueles que o estiverem lendo. Isto os torna informação. No entanto, a
representação no computador é feita baseada nos dados.
Caracterizo Conhecimento como uma abstração interior, pessoal, de algo que foi expe-
rimentado, vivenciado, por alguém. Continuando o exemplo, alguém tem algum conheci-
mento de Paris somente se a visitou.
12 • capítulo 1
[...] A informação pode ser inserida em um computador por meio de uma representação
em forma de dados (se bem que, estando na máquina, deixa de ser informação). Como o
conhecimento não é sujeito a representações, não 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 mãe,
sabe que chorando ganha comida etc.). Mas não se pode dizer que ele tem informações,
pois não associa conceitos. Do mesmo modo, nesta conceituação não se pode dizer que
um animal tem informação, mas certamente tem muito conhecimento. [...]
CONEXÃO
Recomendações 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.
capítulo 1 • 13
WIKIMEDIA
Figura 2 – ENIAC (Parte dele, na verdade, pois aqui vemos sua interface de operação.)
14 • capítulo 1
WIKIMEDIA
capítulo 1 • 15
menos ardil a tarefa de criar programas para os computadores. Depois das
linguagens assembly (as linguagens simbólicas), surgiram as linguagens de
“mais alto nível”, como Fortran e COBOL. São linguagens com comandos em
inglês, em vez de símbolos e marcações como nas linguagens assembly. E esta
foi chamada a segunda geração dos computadores. Nesta época, os computa-
dores ainda não atingiam as pessoas “comuns” da sociedade, sendo usados
apenas por universidades e por organizações do governo e militares.
Entre 1965 e 1970, surgiu o Circuito Integrado (CI). Trata-se de um circuito
eletrônico completo num pequeno chip feito de silício. Em 1965, os CIs come-
çaram a substituir os transistores nos computadores e aí nós tivemos os Com-
putadores de Terceira Geração.
ALEXSKOPJE / DREAMSTIME.COM
16 • capítulo 1
NASA / WIKIMEDIA
Figura 7 – O IBM 360
CONCEITO
International Business Machines (IBM) – trata-se de uma empresa de desenvolvimento de
hardware e software, estadunidense, com quase um século de existência. Mais informações
em <http://www.ibm.com/ibm/br/pt/>.
capítulo 1 • 17
Dê uma olhada na figura a seguir.
Claro que a história 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 público 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 maquinários, em ferramentas, mas um computador? Não teria
serventia! Esse seria um típico discurso de um pai cujo filho acabou de lhe fazer
um pedido naquela época!
18 • capítulo 1
ATENÇÃO
A evolução na velocidade dos microprocessadores é tida para alguns como a quinta geração
dos computadores. O marco seria o microprocessador Intel 386, que permitia a execução de
várias tarefas ao mesmo tempo.
Figura 12 – IBM PC
capítulo 1 • 19
Não podemos nos esquecer de um nome importantíssimo no século 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 padrão IBM PC. Com grande expansão, a Microsoft
logo evoluiu para novas versões de seu sistema operacional até que “descobriram” e
popularizaram a interface gráfica com o sistema operacional Windows! Os sistemas
Windows mudaram o conceito de interface entre usuário e computador. Não foi a
Microsoft que criou o conceito de interface gráfica, mas foi uma das principais em-
presas (senão a principal) a popularizá-lo!
CONEXÃO
Recomendações 2.1
Assista ao filme história do computador em minutos disponível em <www.youtube.com/wa-
tch?v=F3qWg1JBPZg>.
Acesso em: 24 jul. de 2014.
20 • capítulo 1
Armazenamento secundário
A unidade central de
processamento (UCP)
executa instruções
O dispositivo
O dispositivo de computador
de saída
de entrada envia
disponibiliza
dados à unidade
os dados
central de
processados
processamento
A memória mantém (as Informações)
dados e programas em
uso no momento
CONEXÃO
Recomendações 2.3
Veja o vídeo do Olhar Digital sobre o que considerar na hora de comprar um computador, em
<www.youtube.com/watch?v=vYo6IceDsVQ>.
capítulo 1 • 21
Além disso, existem componentes que permitem a gravação de dados de
maneira permanente e também o intercâmbio de dados. Estes dispositivos são
chamados de dispositivos de armazenamento secundário.
Detalhando um pouco mais os componentes de um computador, temos a
figura a seguir.
2 3
1
6
Dispositivos de entrada: 10 e 9
Dispositivos de saída: 1
Armazenamento secundário: 7 e 8
Elementos da UCP: 2, 3, 4, 5 e 6.
22 • capítulo 1
programas que estão sendo processados e todas as informações necessárias.
Além da memória RAM, temos o próprio processador, a unidade capaz de reali-
zar complexas operações matemáticas, e as placas de expansão, que permitem
adicionarmos novas funcionalidades ao nosso computador, como uma placa
que faça processamento dedicado de vídeo. Enquanto a memória RAM guarda
as informações de trabalho, os discos rígidos guardam todas as informações
e todos os programas. Quando desligamos o computador, as informações são
salvas no disco. Quando ligamos o computador, os programas necessários para
utilização dele, bem como aquele que desejarmos, são carregados do disco
para a memória RAM.
Além dos componentes vistos, podemos enumerar um outro tipo de dispo-
sitivo: Dispositivo para Comunicação Externa. No hardware de seu computa-
dor, ele é tratado com um dispositivo de entrada e saída, mas é interessante
diferenciá-lo. Exemplos destes dispositivos são:
• placas de rede;
• hub;
• switch;
• modems.
capítulo 1 • 23
b) operações aritméticas como adição, subtração, multiplicação e di-
visão de valores inteiros ou ponto flutuante (basicamente, núme-
ros reais representados num formato definido);
c) operações lógicas e relacionais como comparações, testes de con-
dições lógicas etc.;
d) movimentação de dados entre os vários componentes, ou seja, res-
gate e inserção de informação na memória ou em dispositivos de
entrada e saída.
2. Para fazer estas operações, necessitará de que as informações estejam
na memória. Trata-se de um componente eletrônico para armazenar
informações.
3. Além da memória, existem os dispositivos de entrada e saída, como te-
clado e mouse (entrada) ou monitor e impressora (saída), que emitirão
as informações num formato legível ao usuário do computador.
Unidade de
Dados
Dados
Entrada e
Saída
24 • capítulo 1
na memória a informação da expressão “5 + 7 < 10 ?”, saberíamos que estamos
tentando comparar a soma de 5 e 7 com o valor 10 e saber quem é maior. Logo,
5, 7 e 10 são dados e “+” , “<” e “?” são informações 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 são a ULA (Unidade Lógica e Aritmética)
que serve para realizar as operações, efetivamente, e a UC (Unidade de Contro-
le), que serve para decodificar as operações, ou seja, entender o que precisa ser
feito, e disparar novas operações, caso necessário.
A UCP entende operações num determinado formato. Vamos aqui chamar
formato de linguagem, ok?
Bom, o computador entende a linguagem eletrônica que popularmente é
chamada de binária, devido à sua representação. Como um programador vai
escrever códigos que descrevam operações em binário? Não vai (geralmente)!
Nesse ponto, entrará em cena uma camada intermediária que cuidará disto
para ele! Um programador de hoje escreve código em linguagem de alto nível. Isto
quer dizer que a linguagem é de mais fácil compreensão humana!
capítulo 1 • 25
1.6 Construção de algoritmos simples
SITE OFICIAL
http://www.facom.ufu.br/~claudio/Cursos/PP/Docs/Visualg2.pdf
goo.gl/n8YLk
http://www.guanabara.info/2007/09/visualg-v25/
26 • capítulo 1
Inicialmente utilize um dos endereços 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.
capítulo 1 • 27
Figura 17 – Criação de um novo algoritmo no ambiente VisuAlg.
28 • capítulo 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 estágio é a elaboração da representação algorítmica. Assim, inicialmen-
te, os programadores criam uma especificação algorítmica do problema compu-
tacional, antes de transformá-lo no código fonte de uma determinada linguagem
de programação. Com a representação algorítmica do problema é possível espe-
cificar quais as principais funcionalidades do futuro programa, bem como, iden-
tificar possíveis erros que ocorrerão com a execução do programa.
Para a construção de um algoritmo computacional é necessário a utiliza-
ção de uma estrutura básica, que é definida a partir de uma sintaxe específica
e contém blocos pré-determinados para codificação. Nesta estrutura, é especi-
ficado, por exemplo, o nome do algoritmo, quais variáveis serão utilizadas e o
bloco de instruções que contém a lógica do programa. O código 1 apresenta a
estrutura básica de um algoritmo computacional, a qual foi definida utilizando
uma representação conhecida como pseudocódigo. Esse tipo de representação
também é comumente descrita como português estruturado ou portugol.
Código 1
1 algoritmo “semnome”
2 // Função :
3 // Autor :
4 // Data : 20/10/2011
5 // Seção de Declarações
6 var
7
8 inicio
9 // Seção de Comandos
10 fimalgoritmo
capítulo 1 • 29
É importante destacar que estas linhas começam pelos caracteres //, os
quais são chamados de comentários. Uma linha de comentário tem como
objetivo auxiliar o entendimento do algoritmo, assim, você poderá utilizá-las
sempre que necessário. Outro detalhe interessante sobre os comentários, é
que as linhas comentadas não influenciam na execução do algoritmo, dessa
forma, você poderá escrever comentários em português da maneira que de-
terminar mais adequada. Na linha 5 temos a seção de declarações, a qual será
utilizada para declaração das variáveis que fazem parte do programa. A linha
8 define o início do algoritmo, e as linhas seguintes (Seção de Comandos),
especificam a lógica de programação utilizada no algoritmo. Por fim, a linha
10, denominada fimalgoritmo, representa o término do algoritmo.
Para demonstrar a utilização do ambiente VisuAlg na codificação 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.
30 • capítulo 1
portante, assim, recomenda-se não utilizar espaços, acentos, ou caracteres es-
peciais. Para este exemplo, utilizaremos o seguinte nome unid3_exemplo01.
alg. A extensão .alg é utilizado pelo ambiente VisuAlg para identificar arquivos
do tipo algoritmo.
Para facilitar o acompanhamento da codificação, você pode exibir os nú-
meros das linhas, dessa forma, utilize o menu Exibir>Número de linhas para
habilitar o recurso. Em seguida, poderemos executar o algoritmo e visualizar o
resultado na tela. A execução 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 execução do algoritmo.
ATIVIDADE
1. Especifique a diferença entre organização e arquitetura de computadores.
4. Pesquise sobre outras arquiteturas de computadores além daquela de Von Neumann.
capítulo 1 • 31
REFLEXÃO
Vimos até aqui que há muito mais sobre computadores do que simplesmente entender como
eles funcionam. A história e a evolução dos computadores determinaram, de certa forma,
como as pessoas passaram a pensar em tecnologia e a “consumir” tecnologia. Mesmo que
você não se torne especialista na área de tecnologia da informação, é sempre importante
saber como funcionam os equipamentos que serão usados no dia a dia. Isto facilita o diálogo
entre nós e as novas tecnologias.
LEITURA
Artigo – O papel da informação no processo de capacitação tecnológica das micro e peque-
nas empresas. Escrito por Paulo César Rezende de Carvalho Alvim.
Disponível em:
<http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100-19651998000100004>
Livro – Administração de Sistemas de Informação, do autor Pedro Luiz Cortes. Livro muito
interessante e abrangente sobre o uso de sistemas de informação nas empresas.
REFERÊNCIAS BIBLIOGRÁFICAS
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice Hall.
2004.
32 • capítulo 1
NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organização de Computadores. 2a ed.
Porto Alegre: Bookman, 2010.
PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIANCHI, F. Algoritmos e Programação de
Computadores. Rio de Janeiro: Elsevier, 2012.
NO PRÓXIMO CAPÍTULO
No próximo capítulo, entederemos como os dados são representados na computação. Serão
vistos os conceitos de bit, byte, bases e a conversão entre elas.
capítulo 1 • 33
2
Representação de
Dados
2 Representação de Dados
No capítulo prévio, entendemos o computador como uma máquina que pro-
cessa dados. Deve-se notar que existem artefatos mecânicos que, mesmo com
capacidade limitada, conseguem fazer também processamento – tal como cal-
culadoras mecânicas criadas no séc. XVII. Claro que pela sua capacidade e flexi-
bilidade, o nosso interesse reside nos computadores baseados em dispositivos
eletrônicos, e assim descrevemos no capítulo anterior a evolução das máquinas
baseadas em válvulas, transistores simples e microprocessadores. Porém, não
foi respondida uma pergunta importante: como os computadores eletrônicos
conseguem reconhecer dados.
Para tratar dessa questão, este capítulo começa com a definição de elementos fun-
damentais da linguagem binária, partindo para bases numéricas fundamentais.
OBJETIVOS
• Compreender o que são bits, bytes e palavras (words).
• Conhecer as principais bases numéricas.
• Saber como o computador representa números e caracteres.
• Entender, sob a perspectiva de programação, o relacionamento entre variáveis e tipos de dados.
REFLEXÃO
Ao preencher dados em formulários eletrônicos, muitas vezes recebemos mensagens de
erro, indicando incompatibilidade entre os dados que entramos e o tipo de dados esperado.
Qual seria a consequência de não haver esse controle?
capítulo 2 • 35
Essa linguagem contém dois dígitos apenas, os quais vão corresponder aos dois
estados básicos. A representação desses dois dígitos foi convencionada como
sendo 0 ou 1. Deve-se comentar que a linguagem binária foi desenvolvida antes
mesmo da eletrônica e da computação, porém se mostrou perfeitamente ade-
quada para esses campos de desenvolvimento (NULL & LOBUR, 2010).
À unidade de dígito binário (zero ou um) se dá o nome de bit, termo vindo do
inglês binary digital unit (STALLINGS, 2002). Como bits isolados podem conter
apenas dois estados, números e palavras são representados por diversos bits
seguindo determinada convenção. À época do desenvolvimento do IBM 360, os
engenheiros da empresa passaram a usar conjuntos de 8 bits como unidade
básica de endereçamento de memória – este sendo um assunto tratado no capí-
tulo 4. Esse conjunto de 8 bits é chamado de byte. Deve-se notar que a definição
do byte estava ligada à arquitetura e características do hardware. Com o tem-
po, as unidades de endereçamento 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 número variável segundo o uso
(MONTEIRO, 2007), ver quadro 2.1.
• Número convencionado
WORD
de bits adjacentes
CONEXÃO
Assista a um vídeo 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 • capítulo 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
mega M 10002
giga G 10003
tera T 10004
peta P 10005
exa E 10006
zetta Z 10007
yotta Y 10008
capítulo 2 • 37
A definição simples desses múltiplos 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 serviços 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 vídeos (LEUNG, 2014).
• A capacidade do cérebro humano para armazenar memória seria equiva-
lente a 2,5 petabytes (SMITH, 2010).
Deve-se reforçar que esses números são apenas estimativas, sendo o cálculo
preciso bastante complexo e sujeito a diversas questões metodológicas.
38 • capítulo 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
capítulo 2 • 39
Outra forma importante de decompor números é com o uso de potências.
Os números acima podem ser reescritos como em termos de potências de 10,
lembrando que qualquer potência elevada a zero é igual a 1:
15 = 1x101 + 5x100
= 8 + 4 + 2 + 0 = 14
40 • capítulo 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
capítulo 2 • 41
memória para cada variável. O byte, também referido como octeto (MURDO-
CA & HEURING; 2000), surgiu com essa preocupação, definindo conjuntos em
uma quantidade fixa de 8 bits. No caso do número 1, os seus dígitos vacantes
são preenchidos por zero, assim temos na representação de inteiros positivos:
(1)10 = (000000001)2
(9)10 = (00001001)2
(255)10 = (11111111)2
Bug do Milênio
Quando os sistemas computacionais estavam sendo desenvolvidos no pós-guerra, um
dos principais gargalos era a capacidade de memória e processamento. Por essa ra-
zão, foi simplificada a representação dos anos, subentendendo que todas as datas se
referiam ao século 20. Assim, a representação de “1985” correspondia a 85, suben-
tendendo-se os dígitos “19” à frente. Chegando a “2000”, porém, teríamos “00”, que
seria entendido como “1900”. Previu-se que esse problema de representação pudesse
causar o colapso de muitos sistemas computacionais, mas as consequências foram
muito menores do que as previstas (BBC, 2014).
Também pela forma de representação de datas, estão previstos problemas em 2038
com sistemas UNIX de 32 bits e programados na linguagem C (SMAAL, 2011).
42 • capítulo 2
pode ser considerável. O problema (bug) do milênio e de 2038 são exemplos de
problemas advindos da fixação inadequada de bits para variáveis de data.
A passagem de bytes para words de 16 bits e de words de 16 para 32 bits re-
quer mais capacidade e mudanças na estrutura de hardware. Buscou-se evitar
a necessidade dessas mudanças e ainda de aumentar o escopo para represen-
tação de números reais por meio de método de representação por ponto flutu-
ante (STALLINGS, 2002). Esse método se baseia na representação de números
por seus algarismos significativos e potências. O padrão mais usado para esse
método denomina-se IEEE 754, servindo de base para construtores de hardwa-
re e programadores (MONTEIRO, 2007).
Os números 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
CONEXÃO
Saiba mais sobre o método ponto flutuante e padrão IEEE 754:
<http://www.lia.ufc.br/~valdisio/download/ieee.pdf>
Acesso em: 24 jul. 2014.
Esse sistema possui o número 16 como base e é indicado por contração “hex”.
Como notação, geralmente usa-se a convenção abaixo (STALLINGS, 2002):
capítulo 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
9 2
1 4 2
0 2 2
0 1 2
1 0
CONEXÃO
Conheça um ferramenta na Web para conversão entre bases numéricas:
<http://wims.unice.fr/wims/en_tool~number~baseconv.en.html>
Acesso em: 24 jul. 2014.
44 • capítulo 2
• Dividindo-se 2 por 2, temos 1 com resto 0, para converter precisamos fa-
zer mais uma divisão.
• Atenção: dividindo-se 1 por 2, considera-se o resultado 0 com resto 1.
ATENÇÃO
O Excel tem funções implementadas que permitem a conversão entre bases numéricas.
Se você, por exemplo, possuir o número 14 em uma célula A1, você pode implementar
uma função em uma célula A2 que use o 14 como argumento. Isso pode ser feito pelo
ícone fx ou pelo menu Inserir. Algumas funções disponíveis são:
BINADEC: converte da base binária para a decimal.
BINAHEX: converte da base binária para a hexadecimal.
DECABIN: converte da base decimal para a binária.
capítulo 2 • 45
CARAC- CARAC- CARAC-
BINÁRIO DECIMAL BINÁRIO DECIMAL BINÁRIO DECIMAL
TERE TERE TERE
0010 1000 40 ( 0100 1000 48 H 0110 1000 104 h
0011 1111 63 ? 0101 1111 5F _
46 • capítulo 2
O quadro 4 apresenta os caracteres imprimíveis do ASC II e a sua corres-
pondência binária. Assim, usando esse padrão, um sistema computacional lê
“01000000” como “@”, “01111010” como “z”, etc. desde que tenha sido defini-
do que o dado é um caracter não um número.
Os limites do ASC, especialmente para lidar com caracteres de alfabetos
além 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 padrão Unicode ((NULL & LOBUR, 2011).
ATENÇÃO
Uma variável é um elemento sintático do algoritmo que tem como funcionalidade
armazenar um determinado valor. O valor associado a variável depende do tipo de
informação que se deseja manipular, assim, diversos tipos de valores podem ser atri-
buídos as variáveis.
capítulo 2 • 47
Figura 4 – Codificação do algoritmo capaz de realizar a soma de dois números inteiros.
nome_da_variável: tipo_da_variável
48 • capítulo 2
Assim, a linha número 12 atribui o valor 10 à variável a, e da mesma maneira, a
linha 13 atribui o valor 20 à variável denominada b. Na linha 16 é apresentada
uma atribuição como sendo o resultado de uma expressão aritmética de adi-
ção, por conseguinte, a variável soma recebe o resultado da operação da variável
a somado com a variável b.
Finalmente, na linha 19 é apresentado na tela o resultado da soma dos valo-
res. É importante destacar que a instrução escreva é utilizada para exibir uma in-
formação na tela, em que todas as informações textuais devem ser especificadas
entre “aspas duplas”. Para a escrita de variáveis na tela, não é necessário utilizar
as aspas duplas. O resultado da execução do algoritmo é apresentado na figura 6.
capítulo 2 • 49
plificar a seção de declaração das variáveis. No entanto, a escolha de como as
variáveis serão declaradas, é exclusivamente do programador, e este fato não
interfere no desempenho da execução do algoritmo ou do programa. Caso pre-
ferir, o programador pode declarar as variáveis individualmente, uma em cada
linha, como apresentado na listagem código 2.
Código 2
1 var
2 nota1: real
3 nota2: real
4 nota3: real
5 nota4: real
6 nota5: real
7 media: real
50 • capítulo 2
Para manipulação de informações literais, as linguagens de programação e
os algoritmos, possuem um tipo específico denominado caractere. Com este
tipo de dados é possível armazenar e manipular qualquer tipo de valor, tais
como uma letra do alfabeto, um símbolo, um número, entre outros. Em lingua-
gens de programação de alto nível, tais como Java ou C#, a manipulação 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
específico conhecido como string. A figura 9 apresenta um algoritmo que reali-
za a manipulação de informações com o tipo de dados caractere. Este exemplo
foi nomeado como unid3_exemplo04.alg.
Neste exemplo é importante notar que os valores do tipo caractere são re-
presentados entre aspas duplas, como pode ser visualizado nas linhas 13 e 14.
Porém, algumas linguagens de programação realizam a separação entre a re-
presentação de um único caractere, e a definição de um conjunto de caracteres.
Geralmente, a especificação de um único caractere é definida utilizando aspas
simples, por exemplo, ‘M’, e a indicação de um conjunto de caracteres é realizada
com aspas duplas, por exemplo, “João da Silva”. Na linguagem VisuAlg, tanto a
representação de um único caractere, quanto de vários, é realizada com aspas
duplas. O resultado da execução do algoritmo pode ser visualizado na figura 10.
capítulo 2 • 51
Os algoritmos ainda possuem um tipo de dados específico utilizado para
manipulação de valores lógicos, os quais são conhecidos em programação
como booleanos. Um tipo de dados booleano permite o armazenamento de va-
lores lógicos, por exemplo, verdadeiro (true) ou falso (false). Em programação,
um valor lógico pode ser utilizado para expressar a presença ou ausência de
uma determinada informação, tal como, um valor do tipo sim ou não. Na lin-
guagem algorítmica, o tipo de dados booleano é definido como lógico.
Para demonstrar a utilização do tipo de dados lógico, vamos codificar mais
um algoritmo. Este exemplo, nomeado como unid3_exemplo05.alg, apresenta
um algoritmo que manipula informações de todos os tipos de dados existentes,
sendo eles inteiro, real, caractere e lógico. No exemplo, é importante destacar a
atribuição de um valor lógico, que ocorre na linha 18.
Na linguagem algorítmica utilizada pelo ambiente VisuAlg, uma variável do
tipo lógico pode assumir dois valores, verdadeiro ou falso, e neste caso a atri-
buição de valores lógicos também utiliza os possíveis valores (verdadeiro ou fal-
so). A figura 11 apresenta o resultado da codificação do algoritmo.
Figura 10 – Algoritmo que demonstra a utilização dos principais tipos de dados e apresenta
a manipulação de valores do tipo lógico.
52 • capítulo 2
Figura 11 – Resultado da execução do algoritmo.
Com isso, você conheceu os principais tipos de dados que podem ser utiliza-
dos para manipulação de informações nos algoritmos e programas. O próximo
passo é aprender como ler informações fornecidas pelo usuário, e como apre-
sentar resultados na tela.
ATIVIDADE
1. Pesquise sobre a origem da linguagem binária, antes de seu uso pela computação.
2. Por que o sistema binário é mais adequado para o uso em dispositvos eletrônicos?
6. Pesquise sobre o padrão UNICODE e identifique os grupos de caracteres que são definidos.
REFLEXÃO
Neste capítulo, entendemos melhor como o computador e dispositivos eletrônicos podem
representar números e letras. Também vimos que o sistema binário permite manipulações
aritméticas, o que seria suficiente para caracterizar uma calculadora. Contudo, como os sis-
temas computacionais conseguem fazer tarefas variadas como reconhecer voz e ajudar em
diagnósticos médicos? Como essas tarefas se traduzem em processamento de dados?
capítulo 2 • 53
LEITURA
LEVY, S. Os Heróis da Revolução. São Paulo: Evora, 2012.
Comentário: a descrição de como computadores funcionam pode ser um assunto bastante
árido se esquecermos as pessoas e as motivações que residem por cada característica da
computação. Ao traçar o panorama dos atores que ajudaram a desenvolver os primeiros
sistemas computacionais, passando pelos PCs, chegando aos programadores de aplicativos
móveis, Levy nos mostra a feição humana, entusiasmada e obsessiva dos responsáveis pela
revolução digital.
REFERÊNCIAS BIBLIOGRÁFICAS
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.
LEUNG, L. How much data x store? Techexpectations, 13 mar. 2014. Disponível 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, março 2013. Disponível em:
<http://www.computerweekly.com/feature/What-does-a-petabyte-look-like>. Acesso em: 19
jun. 2014.
54 • capítulo 2
REBER, P. What is the memory capacity of the human brain? Scientific American, maio/junho,
2010. Disponível 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. Disponível 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 milênio atacará novamente. Tecmundo, website, 25 fev 2011.
Disponível em: <http://www.tecmundo.com.br/historia/8795-2038-o-bug-do-milenio-ataca-
ra-novamente.>. Acesso em: 19 jun. 2014.
NO PRÓXIMO CAPÍTULO
No próximo capítulo, conheceremos a álgebra booleana, que permite que os computadores pos-
sam manipular os dados logicamente.
capítulo 2 • 55
3
Álgebra Booleana e
Operações Lógicas
em Algoritimos
3 Álgebra Booleana e Operações Lógicas em
Algoritimos
OBJETIVOS
• Compreender os operadores principais da álgebra booleana.
• Construir tabelas verdade para cada operador.
• Identificar símbolos de portas lógicas.
• Entender como os operadores aritméticos e lógicos são implementados em algoritmos.
REFLEXÃO
No primeiro capítulo, foi dado o exemplo da receita de bolo como um algoritmo não compu-
tacional. Como outros algoritmos, a receita de bolo é um conjunto de instruções formalizado
para resolver um problema e, nesse caso específico, as instruções seguem umas às outras
diretamente. Busque pensar em algoritmos condicionais, ou seja, cuja realização de instruções
depende de condições e também de resultados de instruções anteriores.
capítulo 3 • 57
3.1 Álgebra booleana
Segundo Linda Null e Julia Lobur, a álgebra booleana é “uma álgebra para a ma-
nipulação de objetos que podem assumir somente dois valores, normalmente
verdadeiro ou falso” (NULL & LOBUR, 2011, p. 141). É fácil entender que essa
álgebra seja adequada ao computadores, os quais funcionam usando a lingua-
gem binária. A seguir, vamos falar da origem da álgebra booleana para, a seguir,
passar para seus operadores.
3.1.1 Origens
58 • capítulo 3
Uma ilustração simples da álgebra booleana pode ser dada avaliando as três
afirmações abaixo:
Afirmação 1: Ana foi ao cinema.
Afirmação 2: Paulo foi ao show.
Afirmação 3: Ana foi ao cinema E Paulo foi ao show.
Para a afirmação 3 ser verdadeira, tanto a afirmação 1 quanto a 2 devem ser
também. Se Ana não foi ao cinema, ou se Paulo não foi ao show, já fica com-
prometida a afirmação feita sobre os dois. Perceba que a afirmação 3 equivale
considerar a afirmação 1 e a afirmação 2 simultaneamente. Podemos organizar
o que foi dito até aqui por uma tabela-verdade, a qual relaciona os valores de
proposições e operadores lógicos. Com esse fim, vamos usar a notação:
Afirmação 1: p
Afirmação 2: q
Afirmação 3: Afirmação 1 E Afirmação 2: p.q
V: proposição verdadeira
F: proposição falsa.
p q p•q
V V V
V F F
F V F
F F F
capítulo 3 • 59
p q p+q
V V V
V F V
F V V
F F F
60 • capítulo 3
Na sumarização seguinte da álgebra booleana, vamos usar os dígitos biná-
rios. Assim, “0” será equivalente a “falso” e, consequentemente, 1 a “verdadei-
ro”. Além de formalizar nesses termos os operadores E e OU já vistos, vamos
ainda definir a Negação, XOR, NOT e NAND, baseando-se em Murdocca e Heu-
ring (2000), Monteiro (2007) e Stallings (2002).
p.q
p q p•q
1 1 1
1 0 0
0 1 0
0 0 0
p+q
capítulo 3 • 61
Essa expressão também é nomeada de soma booleana, ou adição lógica. 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
ATENÇÃO
Já pensou se gastos com jardinagem forem divulgados como investimentos ambien
tais internos?
Certamente, gastos com jardinagem não servem para reduzir o impacto negativo dos re-
síduos das próprias operações da empresa. A não ser que o jardim seja uma estação de
tratamento de efluente.
62 • capítulo 3
ATENÇÃO
Existem outras notações para operadores vistos aqui e que podem ser comumente encontra-
das na disciplina de Raciocínio Lógico:
Operador E: p • q.
Operador OU: p + q.
_
Operador Negação: p
p ~p
1 0
0 1
(p • ~q) + (~p
p q
• q)
1 1 0
capítulo 3 • 63
1 0 1
0 1 1
0 0 0
• NEM (NOR)
O resultado dessa operação é 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
p q ~ (p + q)
1 1 0
1 0 1
0 1 1
0 0 1
64 • capítulo 3
CONEXÃO
Para aprofundar seus conhecimentos sobre álgebra booleana, leia o texto disponível em: <http://
www.inf.ufsc.br/~guntzel/isd/isd2.pdf>
Acesso em: 24 jul. de 2014.
CONEXÃO
Conheça um aplicativo gratuito para dispositivos móveis que desenha portas lógicas:
<https://play.google.com/store/apps/details?id=com.Logic.gates_Xor.en>
Acesso em: 24 jul. de 2014.
Operador Símbolo
AND
OR
NOT
XOR
NOR
NAND
capítulo 3 • 65
Para fins didáticos, tratamos de operações, portas lógicas e símbolos com
apenas duas entradas. No caso abaixo, temos um operador AND com três entra-
das de valor 1. Pela própria definição do operador, a saída também será 1:
1
1 1
1
Até aqui, entendemos as operações booleanas principais. Contudo, como elas são
usadas em programação? A seguir, vamos mostrar operações aritméticas e lógicas
implementadas em algoritmos simples, usando o visualg. Não devemos perder de
vista, contudo, que são essas operações que fundamentam programas complexos
e processamento de dados em grande escala. O poder analítico desse processa-
mento nos é lembrado com frequência, como acontece com as vitórias de sistemas
computacionais sobre grandes mestres do xadrez (ver box explicativo).
66 • capítulo 3
Figura 3 – Supercomputador Deep Blue (Museu Figura 4 – Garry Kasparov.
da História do Computador, Califórnia. 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
capítulo 3 • 67
comando escreva denominada escreval. Este comando, além de exibir as infor-
mações desejadas na tela, também realizar a quebra de linha, ou seja, o coman-
do é capaz de exibir uma determinada informação na tela e mudar de linha.
Com isso, os dados não serão apresentados em uma única linha, o que facilita
bastante a exibição de grandes quantidades de informações.
O algoritmo que codifica a calculadora simples de quatro operações foi no-
meado como unid3_exemplo06 e a figura 5 apresenta a codificação completa
do exemplo.
68 • capítulo 3
O próximo exemplo de codificação utilizando comandos de entrada e saída
tem como objetivo construir um algoritmo capaz de calcular o consumo médio
de combustível de um veículo. Para isso, o usuário deverá informar como entra-
da os quilômetros percorridos pelo veículo e o total de litros abastecidos. Com
isso, o algoritmo é capaz de determinar o consumo médio e o resultado é exibi-
do na tela. Este algoritmo foi nomeado como unid3_exemplo07, e a codificação
é demonstrada na figura 7.
capítulo 3 • 69
3.3.2 Operações e expressões
70 • capítulo 3
A figura 10 apresenta o resultado da execução do algoritmo.
capítulo 3 • 71
Figura 11 – Algoritmo computacional que demonstra a utilização de expressões e operado-
res relacionais.
72 • capítulo 3
ATENÇÃO
Em uma expressão relacional o resultado produzido pela avaliação da expressão é sempre um
valor lógico. Assim, uma expressão relacional resulta em um valor do tipo verdadeiro ou falso.
CONEXÃO
Para um estudo aprofundado a respeito de tabelas verdade, você poderá consultar as se-
guintes referências: <http://pt.wikipedia.org/wiki/Tabela_verdade>
<http://www.calculadoraonline.com.br/tabela-verdade>
capítulo 3 • 73
Figura 13 – Algoritmo computacional que demonstra a utilização de expressões e operado-
res lógicos.
74 • capítulo 3
ATIVIDADE
1. Monte uma tabela-verdade para o operador AND com quatro entradas.
3. Por que a álgebra booleana se mostrou adequada para circuitos elétricos?
1
1 q
0
REFLEXÃO
Não ocorrendo problemas de hardware, um computador basicamente segue as instruções
que lhe são fornecidas, incluindo aquelas de operações lógicas. 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 histórico 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.
capítulo 3 • 75
REFERÊNCIAS BIBLIOGRÁFICAS
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice Hall.
2004.
GLEICK, J. The Information: A history, a theory, a flood. Nova York: Random House, 2011.
NO PRÓXIMO CAPÍTULO
No próximo capítulo, vamos compreender como as instruções são recebidas e executadas pela
Unidade Central de Processamento.
76 • capítulo 3
4
Instruções e
Processamento
4 Instruções e Processamento
A partir do conteúdo anterior, entendemos os sistemas computacionais como
executores de instruções, baseados fundamentalmente na liguagem binária e
na álgebra booleana (LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004).
Neste capítulo, vamos entender melhor o que são instruções e quais são os seus
tipos. Vamos explorar como o processador se relaciona com o fluxo dessas instru-
ções, inclusive com a sua interrupção. Para esse entendimento, será necessário
compreender os componentes básicos da Unidade Central de Processamento
(UCP). Por fim, vamos apontar algumas dimensões mais operacionais da imple-
mentação dos sistemas de computador, incluindo a placa-mãe, linguagens de
programação e os sistemas operacionais.
OBJETIVOS
• Identificar as funções dos componentes da UCP.
• Reconhecer os diferentes tipos de instruções.
• Dominar a estrutura básica das instruções.
• Conhecer os tipos de interrupção.
REFLEXÃO
Quantas vezes você viu uma campanha sobre o lançamento de uma nova geração de micro-
processadores? A velocidade dos computadores que você usa se mantém constante ou tende
a cair? A maior parte dos problemas de processamento é devido aos microprocessadores, ou
você identifica outras causas mais relevantes?
capítulo 4 • 79
operações sobre os dados corretos” (2010, p. 208). Na UCP, há elementos funda-
mentais que dão base a esse processo. Esses elementos podem ser internamente
restritos à UCP ou servirem de interface a componentes externos. Na figura 1,
encontra-se uma representação da Arquitetura de Von Neumann com uma espe-
cificação mais detalhada dos seus elementos, os quais serão explicados a seguir.
Barramento
Memória
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 código
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
Registradores
São componentes de hardware que guardam dados binários relativos a dados,
endereços de memórias e informações de controle. Não devem ser confundi-
dos com os dispositivos de armazenamento do computador, pois são 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 funções específicas para cada
registrador.
80 • capítulo 4
Unidade de Controle
Essa unidade é responsável por manipular os registradores adequadamente
e ativar a UAL para as operações requeridas na ordem correta. Cabe ainda à
Unidade de Controle executar interrupções e monitor o estado das operações
(STALLINGS, 2002).
Relógio
A frequência desse dispositivo sincroniza todo o sistema computacional. Os re-
gistradores podem ser carregados com outro dados apenas com a passagem de
um ciclo do relógio (NULL & LOBUR, 2010).
Barramento
Os elementos descritos acima precisam se comunicar, transmitindo dados,
instruções de controle e energia. Essa comunicação é feita pelo conjunto de
vias de transmissão chamado barramento.
capítulo 4 • 81
O tipo de processador tem diversas implicações para a arquitetura do computador e
para o desenvolvimento de software. Por décadas, a Apple preferiu não adotar chips
Intel, que foram a base da explosão do mercado de computadores pessoais, seja com
os sistemas operacionais DOS ou Windows da Microsoft. Quando o Macintosh foi
lançado em 1984, a máquina usava processadores da Motorola. Com esta empresa
e a IBM, a Apple fez um consórcio que criou a arquitetura do processador PowerPC
em 1991. Porém em 2005, Steve Jobs anunciava a transição para os processadores
Intel, citando como motivo a superioridade de desempenho. (LASHINSKY, 2012; LINZ-
MAYER, 2004).
É interessante notar que tablets e smartphones são comumente baseados em chips
ARM, que possuem uma arquitetura diferente dos chips de PCs. Assim, embora haja
bastante semelhanças visuais entre a interface de um computador da Apple e a de um
iPhone, os seus sistemas operacionais - MAC OS E iOS respectivamente - são constru-
ídos e funcionam de forma muito distinta.
A Microsoft buscou essa aproximação das interfaces do desktop e de aparelhos móveis
com o Windows 8 e o Windows RT, embora o uso dos dois sistemas tenha ficado abaixo
das expectativas da empresa (OVIDE, 2013).
82 • capítulo 4
CONEXÃO
Leia um artigo que resume a história 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.
CODIFICAÇÃO
TIPO DE INSTRUÇÃO FUNÇÃO/EXEMPLOS COMUM
Aritmética / Lógica Adicionar, subtrair, conjunção ADD, SUB, AND
capítulo 4 • 83
CODIFICAÇÃO
TIPO DE INSTRUÇÃO FUNÇÃO/EXEMPLOS COMUM
Transferência de Con- Chamar subrotinas, Desviar a HALT, JE
trole instrução do fluxo sequencial:
suspensão, “desvia se igual”.
ATENÇÃO
O termo operando se refere a dados que serão objeto de operações de processamento. Stallin-
gs (2002) classifica os operandos em quatro tipos:
Números. Exemplos.: inteiros, de ponto flutuante.
Caracteres: Exemplos.: alfabeto latino, chinês, símbolos especiais.
Dados lógicos. Exemplos: verdadeiro, falso.
Endereços de memória: registros no disco rígido.
84 • capítulo 4
ATENÇÃO
Overflow aritmético acontece quando o resultado matemático de uma operação ultrapassa o
valor designado de memória e/ou o formato designado de sua variável.
Início
Busca
instrução na
memória
Interpretar a
operação a ser
realizada
Busca
operandos
(se houver)
Executar a
operação
Escrever o
resultado
Término
capítulo 4 • 85
4.3 Aspectos de arquitetura nos computadores pessoais
4.3.1 Placa-mãe
ATENÇÃO
Como a placa-mãe é responsável por transmitir sinais elétricos entre componentes eletrônicos,
quaisquer fatores físicos que prejudiquem a qualidade desse comunicação 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 ventilação.
Algumas placas-mãe são banhadas a ouro para prevenir a oxidação. Em todos os casos, reco-
menda-se realizar a manutenção preventiva da placa-mãe e não apenas a corretiva, depois que
problemas se manifestaram.
86 • capítulo 4
Figura 4 – Placa-mãe
Disponível 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.
capítulo 4 • 87
4.3.2 Software e instruções
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 instruções detalhadas que dizem ao computador o que
deve ser feito. Basicamente, nós temos dois tipos de software. Antes, na época
do ENIAC, todo o software era escrito desde o começo, e o próprio software
precisava saber manipular tudo o que fosse necessário: tanto a informação
quanto os próprios componentes do computador. Os dois tipos de software
hoje existentes são o software de sistema e o software aplicativo.
ADAPTADO DE (LAUDON E LAUDON, 2007)
Software aplicativo
Software Aplicativo
Linguagens de programação
Linguagens de quarta geração
Pacotes de software e ferramentas
de produtividade para PCs
88 • capítulo 4
como o computador faz para escrever ou desenhar uma interface gráfica na tela
do seu monitor. Para isto, basta que ele solicite (escreva) isto no seu código, e
quem cuidará da execução deste tipo de tarefa é o sistema operacional.
capítulo 4 • 89
de arquivos garante a manipulação de arquivos em dispositivos de armazena-
mento, cuida para que os arquivos fiquem organizados e possam ser acessados.
Estes componentes do sistema operacional, normalmente, não são visí-
veis ao usuário final. Digo normalmente porque, em sistemas com código
fonte aberto, como o Linux, é possível ao usuário não só ver como alterar os
códigos para os componentes do sistema operacional.
Para os usuários finais, a manipulação dos recursos oferecidos é feita por
meio de uma interface. Esta interface começou em seus primórdios, como a
famosa “linha de comando” ou interface modo texto! E hoje evoluímos para
interfaces gráficas (tão comuns para as novas gerações que já nasceram com
a existência dela), interfaces por comandos de voz etc.
90 • capítulo 4
Você já deve estar habituada a ela, não é mesmo?
CONEXÃO
Recomendações 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.
capítulo 4 • 91
100100100100100111
001100011111101011
???
Mostre um número
na sua tela.
92 • capítulo 4
Em computação, esse tradutor é chamado de compilador, e a conversão de
uma linguagem em outra é chamada de processo de compilação. O tradutor é
uma ferramenta de sistema, enquanto a linguagem é um software voltado ao
usuário (para que possa “programar” o sistema).
CONEXÃO
Recomendações 3.3
Veja mais informações sobre as linguagens e suas gerações 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.
capítulo 4 • 93
FERRAMENTAS DE
LINGUAGEM DE DESCRIÇÃO EXEMPLO
QUARTA GERAÇÃO
Orientada
WordPerfect
Ferramentas de Pacotes de softwares de uso geral para o
Internet Explores
software de PC para PCs. usuário
Access
final
Linguagens para extrair dados arma-
Linguagens de zenados em arquivos ou bancos de
SQL
consulta dados. Suportam requisições de infor-
mações que não são predefinidas.
Extraem dados de arquivos ou bancos
de dados para criar relatórios espe-
cíficos sob uma grande variedade de
formatos que não são produzidos por
sistemas de informação.
Geradores de
Cristal Reports
relatórios
Geralmente proporcionam maior con-
trole sobre a maneira como dos dados
são 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 gráficos. alguns softwares SAS Graph
ficas geradores de gráficos também pode Systat
executar operações aritméticas ou ló-
gicas com os dados.
Contém módulos pré-programados
que poderm gerar aplicações comple-
tas, incluindo sites Web, conferindo
FOCUS
grande velocidade ao desenvolvimen-
Geradores de PowerBuilder
to. O usuário pode especificar o que
aplicações Microsoft Fron-
precisa ser feito e o gerador de apli-
tPage
cação criará o código de programa
apropriado para entrada, validação,
atualização e apresentação.
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 códigos de programa com um
número menor de instruções do que
Linguagens de as linguagens convencionais, como
APL
programação de COBOL ou FORTRAN. Projetadas
Normad2
altíssimo nível primordialmente como ferramentas
de produtividade para programadores
profissionais.
94 • capítulo 4
ATIVIDADE
1. Quais causas podem acarretar o interrompimento de uma instrução?
3. Pesquise sobre a relação entre a Lei de Moore e os microprocessadores com núcleo múl-
tiplos.
REFLEXÃO
Por muito tempo, a capacidade dos processadores foi um limite frequente para a microin-
formática. Avanços em software e hardware frequentemente precisavam esperar uma nova
geração de microchips. Reflita sobre o estado atual da microinformática: são os micropro-
cessadores hoje um gargalo relevante para a maioria dos usuários? Caso contrário, que fator
se tornou a principal fronteira da microinformática?
LEITURA
Relatório de pesquisa: TUSSET, F. Evolução dos processadores. Rio de Janeiro: UFRJ, sem ano.
Disponível em: <http://equipe.nce.ufrj.br/gabriel/arqcomp2/Hist%F3rico.pdf>. Acesso em: 15
jun. 2014.
REFERÊNCIAS BIBLIOGRÁFICAS
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice
Hall. 2004.
capítulo 4 • 95
LASHINSKY, A. Nos Bastidores da Apple. São Paulo: Saraiva, 2012.
LINZMAYER, O. W. Apple Confidential 2.0 – The definitive history of the world’s most colorful
company. São Francisco: No Starch, 2004.
OVIDE, S. CEO exits sets Microsoft on new path. The Wall Street Journal, edic’ão eletrônica, 25
ago 2013. Disponível em: <http://online.wsj.com/news/articles/SB10001424127887324619
504579031300409638802>. Acesso em: 15 jun. 2014.
NO PRÓXIMO CAPÍTULO
No próximo capítulo, vamos entender como funciona o sistema de memória e as suas opera-
ções com a UCP. Ainda, vamos explorar os dispositivos de entrada e saída..
96 • capítulo 4
5
Memória e
Dispositivos de
Entrada e Saída
5 Memória e Dispositivos de Entrada e Saída
No capítulo anterior, vimos como a UCP precisa ter dados e instruções disponí-
veis para que possa cumprir a sua função. A fonte imediata de dados para a UCP
encontra-se nos registradores, que são componentes internos à unidade. Os re-
gistradores se caracterizam pela rapidez com que se comunicam com o processa-
dor, porém eles possuem uma capacidade limitada de armazenamento e outros
componentes de memória também precisam ser utilizados (LAUDON & LAUDON,
2007; CAPRON & JOHNSON, 2004). Neste capítulo, vamos identificar os tipos prin-
cipais de memória e como se dá a sua inter-relação. Também discutiremos as in-
terfaces de entrada e saída.
OBJETIVOS
• Conhecer os diferentes tipos de memória e as suas inter-relações.
• Identificar os trade-offs a respeito do desempenho dos dispositivos de memória.
• Compreender a importância da memórica cache.
• Saber como funcionam diferentes dispositivos de entrada e saída e a sua comunicação
com a UCP.
• Avaliar os diferentes tipos de computadores em relação a seus dispositvos de entrada e saída.
REFLEXÃO
Busque identificar todos os tipos de armazenamento que você possui e classifique-os
em termos de velocidade de transferência e capacidade. Quais tipos de armazenamento
você já usou com frequência, mas hoje estão obsoletos? Quantas vezes você já foi pre-
judicado por problemas relacionados a armazenamentos de dados?
capítulo 5 • 99
5.1 Memória
5.1.1 Hierarquia
Os diversos tipos de memória são definidos em termos da sua relação com a UCP.
Quanto mais direta for essa relação, considera-se maior a sua posição hierárquica.
Há diversas formas de ilustrar essa hierarquia, a figura 1 é baseada na versão de
Stallings (2002) e Murdoca & Heuring (2000).
Deve-se notar que discos rígidos são considerados como armazenamento
externo ou secundário. Apesar de possuírem uma interface com a placa-mãe,
essa relação não é tão direta e veloz quanto aquela da memória interna à UCP.
Durante o funcionamento da UCP, primeiro se verifica se o dado necessário
está ou não na memória interna. Em caso contrário, é acionado o armazena-
mento externo e assim por diante.
Memória
Interna
Armazenamento
Externo (disco)
Armazenamento de Segurança
(fitas)
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-
nefícios trazidos pela capacidade da memória interna face a seus custos. Ain-
da, deve haver um balanceamento adequado na velocidade dos componentes
100 • capítulo 5
do computador: De nada adianta, por exemplo, haver uma grande capacidade
de memória se os dispositivos de saída atrasarem os ciclos de instruções. Da
mesma forma, um processador potente pode permanecer subutilizado se não
houver a capacidade de memória adequada (MONTEIRO, 2007).
capítulo 5 • 101
• registros organizam dados.
Sequencial • o acesso segue um sequenciamento linear.
• Exemplo: fitas.
102 • capítulo 5
N
R=
TΝ − T a
Registradores
Memória Cache
Memória Principal
capítulo 5 • 103
Memória
UCP
Principal
Barramento
ELEMENTO FUNÇÃO
Registrador de endereço (REM) armazena temporariamente o endereço a
ser acessado.
104 • capítulo 5
ELEMENTO FUNÇÃO
Barramento de controle comunica os sinais relativos ao controle
no sistema.
ATENÇÃO
Em linguagens de programação como C++, um ponteiro armazena o endereço da posição de
um dado na memória, servindo para referenciá-lo (PIVA JR. et al, 2012).
CONEXÃO
Conheça como funciona uma data center do Google (há opção de legenda em português).
<https://www.youtube.com/watch?v=avP5d16wEp0>
Acesso em 24 jul. de 2014.
capítulo 5 • 105
Início
Término
Início
Término
106 • capítulo 5
5.1.4 Memória RAM
ATENÇÃO
A Memória RAM é volátil, ou seja, seus dados deixam de ser armazenados na ausência de
energia. Para que um computador receba instruções básicas sem depender da RAM, criou-
se uma memória de apenas leitura (ROM, read-only memory) que não é volátil. Embora exis-
tam alguns dispositivos de ROM que podem ser reprogramados, a função principal deles
ainda é manter um conjunto essencial de dados para leitura. Em sistemas embutidos, como
eletrodomésticos, brinquedos e equipamentos médicos, a memória ROM possui uma importân-
cia maior (NULL & LOBUR, 2010).
capítulo 5 • 107
Nos computadores convencionais, o papel da memória principal é desem-
penhado pela memória RAM e parcialmente pela memória ROM. Como vimos
no capítulo 1, a memória RAM (memória de acesso randômico) serve para
armazenar dados de trabalho do processador. Nas especificações de compu-
tadores comerciais, a capacidade da memória RAM recebe destaque. Quando
lançado em 1977, o Apple II tinha uma memória RAM de 4Kb expansível até
48 Kb apenas (LINZMAYER, 2004), já em 2014, um iMac podia chegar ter até
32G (APPLE, 2014). Nas placas-mãe dos computadores pessoais, geralmente há
slots livres para que outros circuitos de RAM possam ser adicionados, já em dis-
positivos móveis isso é mais raro.
CONEXÃO
Saiba mais sobre Memória RAM:
<http://e.cdn-hardware.com.br/static/media/RevistaGDH_04.pdf>
Acesso em 24 jul. de 2014.
Figura 8 – iMac.
Disponível em: <http://commons.wikimedia.org/wiki/IMac#mediaviewer/Fi-
le:IMac_vector.svg>.
108 • capítulo 5
O quadro 5.3 relaciona os principais tipos de memória RAM. Deve-se desta-
car aquelas de tipo síncrono, que trabalham sem atraso (delay) com o proces-
sador (CORNACCHIONE, 2012). Outra diferença importante reside nas memó-
rias RAM estáticas, que mantém os seus dados enquanto houver alimentação
de energia, e as dinâmicas, que demandam recargas em períodos de poucos
milissegundos (NULL & LOBOUR, 2011).
capítulo 5 • 109
ideia de uma memória intermediária entre a UCP e a memória principal veio
da constatação de que 90% do processamento depende de apenas de 10% de
código (MURDOCHA & HEURING, 2000). Assim, uma memória pequena pode-
ria armazenar os dados que são usados com mais frequência. Colocando essa
memória em comunicação direta e rápida com a UCP (figura 9), o desempenho
do computador poderia ser melhorado de forma significativa.
UCP Memória
Cache Principal
Barramento
O desafio para que a memória cache seja eficiente é que haja um bom mape-
amento de memória e que realmente os dados mais úteis sejam armazenados.
A memória cache é geralmente mapeada pelos métodos direto, associativo ou
associativo por conjunto (NULL & LOBOUR, 2011).
110 • capítulo 5
5.2 Dispositivos de entrada e saída E/S
UCP
Memória Principal
Controlador E/S
P1 P2 P3
capítulo 5 • 111
A transmissão de dados entre a interface do periférico e a memória/UCP
pode se dar por formas bem distintas. Na transmissão serial, a comunicação 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 transmissão.
Na transmissão paralela, um conjunto de bits é repassado de uma só vez (MON-
TEIRO, 2007).
112 • capítulo 5
5.3.2 Notebooks
Estes computadores são mais leves, projetados para o uso portátil. Equipados com
bateria com boa duração, são usados em viagens ou em qualquer lugar. Atualmen-
te existem notebooks com configurações tão robustas e caras quanto workstations.
Recentemente, surgiu uma variação dos notebooks. São modelos com tela
menor (de 7 a 11 polegadas), bateria com maior duração, sem leitores de CD ou
DVD e muito mais leves, além de serem mais baratos (em geral). São os chama-
dos netbooks. Planejados para portabilidade e navegação na Internet em qual-
quer lugar. Com a grande difusão das redes que fornecem Internet sem fio, este
modelo tem ganhado popularidade e vem sendo adotado até por escolas como
ferramenta de auxílio às atividades em sala.
KMTHEMAN / DREAMSTIME.COM
capítulo 5 • 113
Estes computadores evoluíram e passaram a ter suas funcionalidades inte-
gradas em celulares, surgindo o chamado smartphone. Um smartphone é basi-
camente um celular com funções de um PDA.
5.3.4 Supercomputadores
São os mais caros e mais poderosos computadores. Usados para grandes simu-
lações, como previsão do tempo, análise do mercado de ações, efeitos especiais
em produções cinematográficas. Também são muito usados por órgãos do go-
verno para tarefas que envolvam gigantesca manipulação de dados.
LEROY N. SANCHEZ, RECORDS MANAGEMENT / MEDIA SERVICES AND OPERATIONS / WIKIMEDIA
114 • capítulo 5
ATIVIDADE
1. Qual é a diferença das memórias RAM e ROM?
REFLEXÃO
Os tablets e smartphones trouxeram uma nova abordagem tanto para hardware quanto para
software. A microinformática se tornou ainda mais presente no cotidiano, ganhando uma na-
tureza muito próxima e intíma com o usuário. Quais serão os caminhos de desenvolvimento
dos computadores, sabendo-se da tendência de queda de preços de componentes de um
lado e, de outro, da motivação das empresas em lançarem produtos inovadores, os quais
garantem uma maior margem de lucro? r!
LEITURA
Livro: SCHMIDT, E.; COHEN, J. A Nova Era Digital. Rio de Janeiro: Intrínseca, 2013.
REFERÊNCIAS BIBLIOGRÁFICAS
APPLE. Compare Mac models. Website. 2014. . Disponível em: <https://www.apple.com/
mac/compare/>. Acesso em: 22 jun. 2014.
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Paulo: Pearson Prentice Hall.
2004.
capítulo 5 • 115
DELGADO, J.; RIBEIRO, C., Arquitetura de Computadores, 2ª edição, LTC, , 2009.
LINZMAYER, O. W. Apple Confidential 2.0 – The definitive history of the world’s most colorful
company. São Francisco: No Starch, 2004.
PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIANCHI, F. Algoritmos e Programação
de Computadores. Rio de Janeiro: Elsevier, 2012.
116 • capítulo 5