Sei sulla pagina 1di 128

Organização de Computadores

2014
Editorial
Comitê Editorial
Fernando Fukuda
Simone Markenson
Jeferson Ferreira Fagundes

Autor do Original
Marco Fábio Polli

© UniSEB © Editora Universidade Estácio de Sá


Todos os direitos desta edição reservados à UniSEB e Editora Universidade Estácio de Sá.
Proibida a reprodução total ou parcial desta obra, de qualquer forma ou meio eletrônico, e mecânico, fotográfico e gravação ou
qualquer outro, sem a permissão expressa do UniSEB e Editora Universidade Estácio de Sá. A violação dos direitos autorais é
punível como crime (Código Penal art. 184 e §§; Lei 6.895/80), com busca, apreensão e indenizações diversas (Lei 9.610/98 – Lei
dos Direitos Autorais – arts. 122, 123, 124 e 126).
Organização de Computadores
Capítulo 1: Processamento de
Dados e Estrutura Básica do Computador..... 7

ri o Objetivos da sua aprendizagem . ............................... 7


Você se lembra?................................................................. 7

1.1  Organização e arquitetura de computadores.................... 8
1.2  Processamento de dados, Informação e Conhecimento......... 8
1.3  Breve histórico dos computadores............................................ 11
Su

1.4  Visão geral do computador pessoal............................................... 19


1.5  Elementos Básicos da Arquitetura de Von Neumann........................ 21
1.6  Construção de algoritmos simples........................................................ 24
Atividades....................................................................................................... 29
Reflexão............................................................................................................. 30
Leituras recomendadas.......................................................................................... 30
Referêncais bibliográficas....................................................................................... 30
No próximo capítulo . ............................................................................................... 31
Capítulo 2: Representação de Dados....................................................................... 33
Objetivos da sua aprendizagem ................................................................................... 33
Você se lembra?............................................................................................................. 33
2.1  Elementos binários fundamentais: bits, bytes e words............................................ 34
2.2  Bases numéricas....................................................................................................... 38
2.3  Representação de caracteres..................................................................................... 45
2.4  Tipos de dados e uso de variáveis em algoritmos . ................................................. 46
Atividades . ................................................................................................................... 52
Reflexão....................................................................................................................... 53
Leitura recomendada ................................................................................................. 53
Referências bibliográficas . ..................................................................................... 53
No próximo capítulo ............................................................................................ 54
Capítulo 3: Álgebra Booleana e Operações Lógicas em Algoritimos......... 55
Objetivos da sua aprendizagem..................................................................... 55
Você se lembra? ....................................................................................... 55
3.1  Álgebra booleana............................................................................ 56
3.2  Portas lógicas.............................................................................. 61
3.3  Operações aritméticas e lógicas em algoritmos..................... 62
Atividades........................................................................................................................ 70
Reflexão........................................................................................................................... 70
Leituras Recomendadas................................................................................................... 70
Referências Bibliográficas............................................................................................... 70
No próximo capítulo ....................................................................................................... 71
Capítulo 4: Instruções e Processamento...................................................................... 73
Objetivos da sua aprendizagem: ..................................................................................... 73
Você se lembra? .............................................................................................................. 73
4.1  Componentes fundamentais para o processamento.................................................. 74
4.2  Instruções de computador......................................................................................... 76
4.3  Aspectos de arquitetura nos computadores pessoais................................................. 87
Atividades........................................................................................................................ 96
Reflexão........................................................................................................................... 96
Leitura Recomendada...................................................................................................... 96
Referências Bibliográficas............................................................................................... 96
No próximo capítulo........................................................................................................ 97
Capítulo 5: Memória e Dispositivos de Entrada e Saída............................................ 99
Objetivos da sua aprendizagem:...................................................................................... 99
Você se lembra?............................................................................................................... 99
5.1  Memória.................................................................................................................. 100
5.2  Dispositivos de entrada e saída E/S........................................................................ 109
5.3  Tipos de Computadores.......................................................................................... 124
Atividades...................................................................................................................... 126
Reflexão......................................................................................................................... 127
Leitura recomendada...................................................................................................... 127
Referências bibliográficas.............................................................................................. 127
ã o Prezados(as) alunos(as)
No fim da década de 1970, os computa-
dores pessoais começam a ser introduzidos
aç no mercado. Ferramentas de processamento
ent
de dados que antes eram apenas disponíveis para
grandes empresas, por meio de máquinas que ocupa-
vam salas inteiras, passaram a estar em cima da mesa
res

dos escritórios e das casas das pessoas. Só esse desenvolvi-


mento já seria suficente para mudar a nossa sociedade, mas a
Ap

história não parou aí. A interligação desses computadores e dos


servidores na internet, transformou a maneira com que as pessoas
se comunicam, compram, se divertem e criam. Por fim, o próprio
computador pessoal deixou de ser o centro desse modo de vida, com
smartphones, tablets e dispostivos que ainda estão sendo criados.
Em sua história, os computadores mostraram ser uma base de ino-
vações contínuas e de uso criativo, uma história que ainda continua e
podemos influenciar. Para tanto, devemos conhecer como os computa-
dores funcionam e são organizados. Esse conhecimento é essencial tanto
para o desenvolvimento de hardware, de software ou mesmo para se
fazer um bom uso dessa tecnologia.Com essa preocupação, o conteúdo da
disciplina é organizado do seguinte modo:
Capítulo 1 – Entenderemos o que é processamento de dados e o funciona-
mento básico de um computador.
Capítulo 2 – Será explicada a linguagem binária.
Capítulo 3 – Entenderemos a álgebra booleana e a sua implementação
em algoritmos simples.
Capítulo 4 – Veremos com mais detalhes como o computador trata
dados e instruções na Unidade Central de Processamento.
Capítulo 5 – Exploraremos os tipos de memória e suas inter-
-relações.

Bons estudos!
Processamento de
Dados e Estrutura Básica
do Computador
Computadores não se limitam aos notebooks
C e aos desktops nos escritórios, eles estão nos
CCC
equipamentos médicos, carros, aparelhos de TV,
celulares e em simples brinquedos. É impossível dis-
CC C

sociar a computação do nosso estilo de vida. Porém, são


poucas pessoas que de fato entendem como funciona um
CCC

computador e como dados são processados. Esse conheci-


mento é 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, servindo de base para os demais capítulos da disciplina.
Vamos entender o conceito 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 for-
ma, teremos uma visão fundamental sobre o funcionamento do compu-
tador.

Objetivos da sua aprendizagem


• Compreender a diferença entre organização e arquitetura de compu-
tadores.
• 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 arqui-
tetura de Von Neumann.

Você se lembra?
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 von-
tade ou consciência? Ao ler esse capítulo, busque re-
fletir sobre o que um computador pode ou não fazer,
relembrando as obras de ficção e opiniões sobre o
assunto.
Organizações de Computadores

1.1  Organização e arquitetura de computadores


A organização dos computadores trata da estrutura dessas máquinas,
preocupando-se com circuitos, tipos de memória e demais componentes
físicos usados, como os periféricos. Ou seja, busca-se saber como se dá
o funcionamento do computador. Já a arquitetura dos computadores for-
nece elementos críticos a serem usados pelo programador: dados e suas
representações, operações lógicas e rotinas, etc. Por isso, a da descrição
da arquitetura possui uma natureza mais abstrata. Devido à importância
de se integrar conhecimento de hardware e software, esta disciplina cobri-
rá aspectos tanto de organização quanto arquitetura, seguindo o caminho
de obras de referência na área (NULL & LOBUR, 2010; MURDOCA &
HEURING; 2000; STALLINGS, 2002; MONTEIRO, 2007).
Por mais simples ou complexa que seja a estrutura de um compu-
tador, a sua função básica é o processamento de dados. A seguir, vamos
discutir qual é o significado dessa atividade e a sua relação com o conhe-
cimento.

1.2  Processamento de dados, Informação e


Conhecimento
Vamos discutir um pouco esses conceitos e as diferenças entre eles?
a seguir, apresento trechos da definição dada pelo professor Dr. Val-
demar W. Setzer, disponibilizada em: <http://www.ime.usp.br/~vwsetzer/
dado-info.html>.
Segundo o professor Dr. Valdemar Setzer, podemos dizer que dado é:
(...) uma sequência de símbolos quantificados ou quantificáveis.
Portanto, um texto é um dado. De fato, as letras são símbolos
quantificados, já que o alfabeto, sendo um conjunto finito, pode por
si só constituir uma base numérica (a base hexadecimal emprega
tradicionalmente, além dos 10 dígitos decimais, as letras de A a E).
Também são dados fotos, figuras, sons gravados e animação, pois
todos podem ser quantificados a ponto de se ter eventualmente di-
ficuldade de distinguir a sua reprodução, a partir da representação
quantificada, com o original. É muito importante notar-se que, mes-
Proibida a reprodução – © UniSEB

mo se incompreensível para o leitor, qualquer texto constitui um


dado ou uma sequência de dados (...). (SETZER,– ano)

8
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

Segundo o Dr. Setzer, o dado é uma entidade matemática puramente


sintática, ou seja, os dados podem ser descritos por estruturas de represen-
tação. Assim sendo, podemos dizer que o computador é capaz de arma-
zenar dados. Estes 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:
(...) uma abstração informal (isto é, não pode ser formalizada atra-
vés de uma teoria lógica ou matemática), que está na mente de
alguém, representando algo significativo para essa pessoa. Note-
-se que isto não é uma definição, é uma caracterização, porque
“algo”, “significativo” e “alguém” não estão bem definidos; assu-
mo 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.

Assim, a informação depende de algum tipo de relacionamento,


avaliação ou interpretação dos dados.
Veja também que informação e dado mantêm relações:
(...) 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,
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

mas a sua representação em forma de dados. Essa representaçã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 recebe, deixando de ser informação para essa pessoa. Além
disso, é possível transformar a representação de uma informação de

9
Organizações de Computadores

modo que mude de informação para quem a recebe (por exemplo, o


computador pode mudar o nome da cidade de Paris para Londres).
Houve 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
(...).

Podemos agrupar dados isolados e torná-los consistentes ao se


transformarem 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:

ADAPTADO DE (CÔRTES, 2008)


Em Ribeirão Preto, SP,
no dia 3 de fevereiro,
15h10
às 15h10 estava uma
temperatura de 24°.
3 de fevereiro
Processamento

Entrada Classificar Saída

(Dados) Filtrar (Informações)

Organizar
Ribeirão
24°
Preto- SP

Figura 1 ― Geração de informações a partir do processamento de dados.

Assim, o conjunto de dados inicial foi organizado de maneira que


“faça sentido” àqueles que o estiverem lendo. Isto os torna informação.
No entanto, a representação no computador é feita baseada nos dados.

E como fica o conhecimento?


Proibida a reprodução – © UniSEB

10
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

Caracterizo Conhecimento como uma abstração interior, pessoal, de


algo que foi experimentado, vivenciado, por alguém. Continuando
o exemplo, alguém tem algum conhecimento de Paris somente se a
visitou.

Desta maneira, o conhecimento precisa ser descrito por informações.


(...) 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 conhecimento” 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 Conexão:
Recomendações 1.3
animal tem informação, mas certa-
Leia na íntegra o artigo do Dr.
mente tem muito conhecimento. (...) Setzer em: <http://www.ime.usp.
br/~vwsetzer/dado-info.html>.
A informação, segundo o Dr. Setzer, Acesso em: 24 jul. de 2014.

associa-se à semântica, enquanto o conheci-


mento está associado à pragmática, ou seja,
algo existente no mundo real.

1.3  Breve histórico dos computadores


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Um dos pontos interessantes na história do surgimento dos compu-


tadores foi a rápida evolução das tecnologias utilizadas para sua produção.
O primeiro computador de grande porte a usar eletrônica digital
foi o ENIAC (Electrical Numerical Integrator and Calculator). Ele era
de grande porte, devido à quantidade de cálculos que ele era capaz de
realizar: cerca de 5 mil somas ou 360 multiplicações por segundo (muito
pouco comparado à capacidade de nossos computadores atuais).

11
Organizações de Computadores

WIKIMEDIA

Figura 2 – ENIAC (Parte dele, na verdade, pois aqui vemos sua interface de operação.)

O ENIAC começou a ser desenvolvido por John Eckert e John


Mauchly. O desenvolvimento iniciou-se em 1943, com financiamento
militar, para ser usado na Segunda Guerra Mundial, mas só se tornou ope-
racional 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
Neumann. Este criou a arquitetura (chamada de arquitetura de Von Neu-
mann) que é usada até hoje nos computadores comerciais. WIKIMEDIA
Proibida a reprodução – © UniSEB

Figura 3 – O ENIAC numa visão mais ampla

12
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

WIKIMEDIA
O ENIAC não tinha sistema opera-
cional e todas as operações eram inseridas
diretamente na máquina usando códigos
numéricos.
Foi produzido usando a tecnologia
de válvulas a vácuo, que foi a tecnologia
inicial para computadores eletrônicos. Por
isto, ele é o marco da Primeira Geração de
Computadores. O problema das válvulas
era o custo alto para manutenção. Para
você ter uma ideia, o ENIAC foi cons-
truído usando mais de 17 mil válvulas e
gastava mais de 200.000 watts, aquecendo
muito!
As válvulas eletrônicas possuíam
o tamanho aproximado de uma lâmpada
elétrica.
A era da computação comercial
iniciou-se no ano de 1951, quando o UNI- Figura 4 – Foto de uma válvula
VAC (Universal Automatic Computer) foi eletrônica
entregue ao primeiro cliente: o escritório
do Censo do Estados Unidos para tabulação dos dados do censo do ano
anterior. Pode-se dizer que o UNIVAC foi o resultado de modificações
positivas no ENIAC.
ANNEDAVE / DREAMSTIME.COM

Em 1947, os cientis-
tas John Bardeen, Walter H.
Brattain e William Shockley
desenvolveram o transistor. O
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

transistor é um pequeno dis-


positivo que transmite sinais
eletrônicos usando um resis-
tor. Os transistores revolucio-
naram a eletrônica e a maneira
de construir computadores.
Além de serem muito menores
do que as válvulas, consu-
miam muito menos energia e
geravam menos calor. Tam- Figura 5 – Foto de um transistor simples
13
Organizações de Computadores

bém eram mais rápidos e mais confiáveis do que as válvulas. Um novo


avanço, nesta mesma época, foi a criação de uma linguagem simbólica
para manipular instruções das máquinas em vez de códigos numéricos,
e isto tornou um pouco menos ardil a tarefa de criar programas para os
computadores. Depois das linguagens assembly (as linguagens simbóli-
cas), surgiram as linguagens de “mais alto nível”, como Fortran e CO-
BOL. 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 computadores 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 Computadores de Terceira Geração.

ALEXSKOPJE / DREAMSTIME.COM

Figura 6 – Foto de circuitos integrados


O silício é um material chamado semicondutor, pois conduz corren-
te elétrica quando misturado com impurezas químicas em sua constituição
(você pode pesquisar os detalhes de materiais semicondutores se ficar
curioso!).
Proibida a reprodução – © UniSEB

14
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

O marco importante desta terceira geração foi o lançamento do com-


putador da série IBM 360 em 1964. Trata-se de uma linha de computadores
projetada pela IBM tanto para uso comercial quanto científico. Foi uma série
com o intuito de inserir o uso de computadores nos negócios e em operações
comerciais.

NASA / WIKIMEDIA
Figura 7 – O IBM 360
Já a quarta geração de computadores, com início na década de 1970,
traz consigo a criação do microprocessador. Os computadores atuais são
muito menores, mais de 100 vezes menores que aqueles de primeira ge-
ração, mas um único chip é mais poderoso que o próprio ENIAC. Para
você ter uma ideia, em 1977 uma calculadora podia fazer cerca de 250
multiplicações por segundo, custava de 300 a 500 dólares e pesava mais
de 500 gramas. Hoje, uma calculadora pesa muito pouco, custa 1 dólar ou
menos às vezes (depende da cotação) e realiza muito mais cálculos. Em
comparação ao ENIAC, um Pentium de 150 MHz era capaz de mais de
300 milhões de operações de soma por segundo, enquanto que o ENIAC
processa apenas 5.000 operações.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

International Business Machines (IBM) – trata-se de uma empre-


sa 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/>.

15
Organizações de Computadores

Dê uma olhada na figura a seguir.

Figura 8 – Evolução dos computadores

Retirado de A
SWTPC6800 / WIKIMEDIA

história dos processa-


dores, desde ENIAC até
Nehalem/INTEL.
Claro que a his-
tória mais recente dos
computadores você já
conhece, mas vamos
apenas comentar um
pouco sobre os compu-
Proibida a reprodução – © UniSEB

tadores pessoais. Estes

Figura 9 – MITS Altair

16
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

computadores mudaram completamente


o paradigma do uso de computadores.
A evolução na velocidade dos
O primeiro computador pes- microprocessadores é tida para alguns
soal que foi disponibilizado ao como a quinta geração dos computadores.
público em geral foi o MITS Altair, O marco seria o microprocessador Intel 386,
que permitia a execução de várias tarefas ao
produzido em 1975. Na época, foi mesmo tempo.
“choque” grande, pois os computa-
dores só faziam sentido para empre-
sas, 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!
Quando Steve Jobs e Steve Wozniak mostraram ao público jovem
o Apple I, todo mundo foi ao delírio! Ele possuía um teclado fácil de
usar e tela! A Apple mostraria, mais tarde, sua facilidade em conseguir
sucesso comercial com o Apple II
e o software de planilha eletrônica

VOLKER STEGER / SCIENCE PHOTO LIBRARY / SPL DC / LATINSTOCK


VisiCalc.
VOLKER STEGER / SCIENCE PHOTO LIBRARY / SPL DC / LATINSTOCK
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 10 – Apple I

Figura 11 – Apple II

17
Organizações de Computadores

Em 1981, a IBM lançou seu primeiro computador pessoal e captu-


rou a maior fatia de mercado em 18 meses. O padrão IBM PC foi adotado
e copiado por outras empresas.
HO / IBM / AFP

Figura 12 – IBM PC

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 pesso-
al da IBM. Este software, chamado de MS-DOS, foi usado pela IBM e pelas
empresas que criaram computadores 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áfi-
ca com o sistema operacional Windows! Os sistemas
Windows mudaram o conceito de interface entre Conexão:
usuário e computador. Não foi a Microsoft que Recomendações 2.1
criou o conceito de interface gráfica, mas foi Assista ao filme história
do computador em minutos
uma das principais empresas (senão a principal) disponível em <www.youtube.com/
a popularizá-lo! watch?v=F3qWg1JBPZg>.
Acesso em: 24 jul. de 2014.
Proibida a reprodução – © UniSEB

18
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

1.4  Visão geral do computador pessoal


O hardware de seu computador pessoal precisa dos seguintes com-
ponentes para um efetivo funcionamento:
• dispositivos de entrada;
• dispositivos de saída;
• dispositivos de armazenamento secundário;
• unidade de processamento.

O funcionamento básico de um computador convencional acontece


de acordo com a figura a seguir:

Armazenamento secundário

ADAPTADO DE: (CAPRON E JOHNSON, 2004)


O dispositivo de
armazenamento
secundário armazena
dados e programas

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

Entrada Processamento Saída


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

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

As informações são inseridas no ambiente computacional por meio


dos dispositivos de entrada. Estes dispositivos permitem que nós, seres
humanos, ou equipamentos forneçamos informações para serem proces-
sadas. Exemplos seriam o mouse, o teclado, leitores óticos, dentre outros.

19
Organizações de Computadores

Estas informações de entrada são arma-


Conexão:
zenadas na memória, e a unidade central de Recomendações 2.3
processamento (UCP) realiza o devido tra- Veja o vídeo do Olhar Digital
tamento destas. Após isto, dispositivos de sobre o que considerar na
hora de comprar um computa-
saída podem exibir o resultado do proces- dor, em <www.youtube.com/
samento. Exemplos de dispositivos de saída watch?v=vYo6IceDsVQ>.

são monitores, impressoras, dispositivos de


som etc.
Além disso, existem componentes que permi-
tem a gravação de dados de maneira permanente e também o intercâmbio
de dados. Estes dispositivos são chamados de dispositivos de armazena-
mento secundário.
Detalhando um pouco mais os componentes de um computador, te-
mos a figura a seguir.

2 3

1
6

Figura 14 – Componentes básico do computador: 1 – monitor, 2 – placa-mãe, 3 –


processador, 4 – memória RAM, 5 – placas de expansão, 6 – fonte de alimentação, 7 – leitor
ótico (DVD, CD etc.), 8 – disco rígido (hd), 9 – mouse, 10 – teclado.
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.
Proibida a reprodução – © UniSEB

20
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

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


não é um único componente, pois reúne diversos outros. Por exem-
plo, a placa-mãe, que recebe este nome em razão de todos os demais
componentes da UCP, periféricos de entrada e de saída, dependerem
dela para conexão. É uma placa que faz a interligação entre todos os
componentes do computador. Nela há os slots de memória, onde fica a
memória RAM do computador. A memória RAM (memória de acesso
randômico) é a memória de trabalho da máquina. Nela ficam os progra-
mas 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 realizar 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 guar-
dam todas as informações e todos os programas. Quando desligamos o
computador, as informações são salvas no disco. Quando ligamos o com-
putador, 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
dispositivo: Dispositivo para Comunicação Externa. No hardware de seu
computador, 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.

1.5  Elementos Básicos da Arquitetura de


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Von Neumann
Lembra-se de termos comentado sobre John Von Neumann, que par-
ticipou da criação do ENIAC? Apesar de Von Neumann ter sua formação
na área de matemática, sua contribuição 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 construção da principal
arquitetura dos computadores modernos, os PCs.

21
Organizações de Computadores

De maneira bem simples, ela funciona assim:


A unidade central de processamento (UCP) faz operações com
1. Informações. Estas operações podem ser:
a) operações de entrada e saída, como leitura de dados do teclado
e escrever dados na tela. São operações para inserção de dados
na memória do computador ou para exibição de informações
que estejam armazenadas nesta.
b) operações aritméticas como adição, subtração, multiplicação
e divisão de valores inteiros ou ponto flutuante (basicamente,
números reais representados num formato definido);
c) operações lógicas e relacionais como comparações, testes de
condições lógicas etc.;
d) movimentação de dados entre os vários componentes, ou seja,
resgate e inserção de informação na memória ou em dispositi-
vos 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 teclado e mouse (entrada) ou monitor e impressora
(saída), que emitirão as informações num formato legível ao
usuário do computador.

Memória Primária Dados

Unidade de
Dados

Dados

Entrada e
Saída

Unidade Lógico Unidade de


Controle
e Aritmética Controle
Proibida a reprodução – © UniSEB

Figura 15 – A arquitetura de Von Neumann – Visão interna do funcionamento de um


computador.

22
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

Então, basicamente, na arquitetura de Von Neumann, o que ocorre


é que uma máquina pode armazenar seus programas e executá-los numa
unidade responsável por diferentes operações.
Pela figura, pudemos ver que as informações podem ser dados ou
informações de controle. As informações de controle são aquelas que
dizem o que deve ser feito com os dados. Por exemplo, se tivéssemos, de
alguma maneira, 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 da-
dos 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 Controle), que serve para decodificar as operações, ou seja,
entender o que precisa ser feito, e disparar novas operações, caso neces-
sá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 popular-
mente é chamada de binária, devido à sua representação. Como um pro-
gramador vai escrever códigos que descrevam operações em binário? Não
vai (geralmente)!
Neste 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!

Os passos seguidos por um programador são:


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

1. Ele pensa no problema e o analisa;


2. depois formula algoritmos que possam resolver este problema;
3. na sequência, transforma os algoritmos em código de alto ní-
vel (esta fase é chamada de codificação ou programação);
4. após isto, traduz o código de alto nível, que resultará num
“executável”;
5. um executável é um programa que roda sobre uma plataforma;

23
Organizações de Computadores

6. uma plataforma é um computador com sua arquitetura e um


sistema “principal” de gerenciamento de seus recursos, chama-
do sistema operacional;
7. o sistema operacional “sabe” como fazer o executável funcio-
nar, usando memória, dispositivos de entrada e saída etc.
8. O Windows, o Linux, o Solarix e o Unix, dentre outros, são
exemplos de sistemas operacionais (veremos mais sobre siste-
mas operacionais no capítulo seguinte).
9. Mas sistema operacional – por exemplo Windows–, não é
aquela interface que você vê com editores de texto e planilhas.
Ele compreende os programas, as rotinas que estão por trás de
todo o funcionamento de seu computador (também veremos
mais disto no capítulo seguinte).

1.6  Construção de algoritmos simples


Algoritmos são conjuntos sistemáticos e formalizados de intruções
voltados para resolução de um problema (PIVA JR. et al, 2012). O concei-
to de algoritmo não é exclusivo da computação: uma receita de bolo, por
exemplo, pode ser considerado como tal. Porém, a estrutura de algoritmos
se tornou mais difundida a partir da programação.
Nos próximos dois capítulos, vamos relacionar os conceitos de
organização e arquitetura de computadores com sua implementação em
algoritmos simples. Para tanto, vamos apresentar um ambiente de progra-
mação que pode ser facilmente usado pelo aluno, além de uma explicação
introdutória sobre a estrutura de algoritmos.

1.6.1  Indicação de ambiente de desenvolvimento


Para simplificar o processo de codificação de algoritmos por meio de
pseudocódigos que utilizaremos neste e no próximo capítulo um ambien-
te de desenvolvimento conhecido como VisuAlg. Este ambiente pode ser
obtido gratuitamente e permite a construção e simulação de algoritmos. O
programa VisuAlg é muito indicado para programadores iniciantes, uma
vez que possui uma interface simplificada e de fácil compreensão. O qua-
dro 1.1 apresenta os endereços principais do ambiente de desenvolvimento
Proibida a reprodução – © UniSEB

VisuAlg.

24
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

Site oficial
http://www.facom.ufu.br/~claudio/Cursos/PP/Docs/Visualg2.pdf
Download (endereço abreviado)
goo.gl/n8YLk
Download (endereço completo)
http://www.guanabara.info/2007/09/visualg-v25/

Quadro 1.1 – Ambiente de Desenvolvimento VisuALg.


Inicialmente utilize um dos endereços apresentados no quadro 1.1
para realizar o download do ambiente. Escolha uma pasta no seu com-
putador para armazenar 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.


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Clicando no botão avançar você poderá definir o diretório para ins-


talação do programa. Geralmente não é necessário modificar o diretório,
assim, clique novamente no botão avançar. Na tela Componentes Sele-
cionados, você também não precisará realizar nenhuma alteração, dessa
forma, clique novamente no botão avançar. A tela Selecione o grupo do
menu Iniciar, permite a especificação do nome que será definido para
menu, o que novamente não necessita de modificação. A tela seguinte
Selecionar Tarefas Adicionais, também já possui as principais configura-
ções definidas, com isso, você pode clicar no botão avançar, e em seguida,
25
Organizações de Computadores

clique no botão instalar. A instalação é rápida e dura apenas alguns se-


gundos. No final, você já poderá iniciar o ambiente VisuAlg.
Para a criação de um novo algoritmo no ambiente VisuAlg, você de-
verá utilizar o menu Arquivo>Novo, ou simplesmente pressionar as teclas
de atalho CTRL+N. Dessa forma, um novo algoritmo será criado confor-
me ilustra a figura 2. Para salvar os algoritmos codificados você deverá
utilizar o menu Arquivo>Salvar (CTRL+S). O ambiente VisuAlg utiliza a
extensão .alg para representar os arquivos com algoritmos.

Figura 17 – Criação de um novo algoritmo no ambiente VisuAlg.

Neste momento você já tem o ambiente para desenvolvimento de al-


goritmos VisuAlg instalado no seu computador. Além disso, você já sabe
como criar um novo algoritmo. Poderemos agora iniciar um estudo mais
detalhado a respeito da construção de algoritmos.

1.6.2  Estrutura básica de um algortimo


O primeiro passo para a construção de algoritmos computacionais
é o entendimento do conceito de algoritmo. Segundo Forbellone (2005),
um algoritmo é uma sequência de passos que visa atingir um objetivo
bem definido. Outra definição pode ser encontrada em Ascencio e Edilene
Proibida a reprodução – © UniSEB

(2002), em que um algoritmo é descrito como uma sequência de passos


que deve ser seguida para a realização de uma tarefa. Dentro deste con-
texto, você pode entender o termo algoritmo como um conjunto de passos
que busca a solução de um problema.
26
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

No cenário computacional, os algoritmos têm como fundamento a


elaboração de uma sequência de passos de forma que o computador seja
capaz de solucionar um determinado problema. Em geral, os algoritmos
são utilizados para abstrair1 problemas do mundo real, e transformá-los
em soluções no mundo computacional.
A escrita de algoritmos é a base para o processo de desenvolvimento
dos programas de computador. No ciclo de vida do desenvolvimento de
um programa, o primeiro estágio é a elaboração da representação algo-
rítmica. Assim, inicialmente, os programadores criam uma especificação
algorítmica do problema computacional, 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 especificar quais as principais fun-
cionalidades do futuro programa, bem como, identificar 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 es-
trutura, é especificado, 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 pseudo-
código. Este 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
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

5 // Seção de Declarações
6 var
7
8 inicio
9 // Seção de Comandos
10 fimalgoritmo
Na primeira linha do algoritmo é necessário especificar um nome,
da mesma maneira que você define nomes para documentos em editores

1 Avaliar características e propriedades em separado; considerar à parte.

27
Organizações de Computadores

de texto. As linhas 2, 3 e 4 apresentam informações gerais a respeito dos


algoritmos. É importante destacar que estas linhas começam pelos ca-
racteres //, os quais são chamados de comentários. Uma linha de comen-
tário tem como objetivo auxiliar o entendimento do algoritmo, assim,
você poderá utilizá-las sempre que necessário. Outro detalhe interessan-
te 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 determinar mais adequada. Na linha 5 te-
mos a seção de declarações, a qual será utilizada para declaração das va-
riáveis que fazem parte do programa. A linha 8 define o início do algo-
ritmo, 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 algoritmos, vamos escrever nosso primeiro algoritmo. Este algoritmo
tem como objetivo exibir seu nome completo na tela, assim, inicialmen-
te você deverá abrir o ambiente e escrever o algoritmo conforme apre-
sentado na figura 17.

Figura 18 – Codificação do algoritmo para exibir o nome na tela.

Finalizada a codificação do algoritmo é fundamental salvar o código


Proibida a reprodução – © UniSEB

antes de realizar a execução. Para isso, utilize o menu Arquivo>Salvar,


ou simplesmente pressione a tecla de atalho Ctrl+S. Você pode escolher a
pasta de sua preferência para armazenar o arquivo. A escolha do nome do
algoritmo é importante, assim, recomenda-se não utilizar espaços, acen-
28
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

tos, ou caracteres especiais. 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 algorit-
mo e visualizar o resultado na tela. A execução de um algoritmo no am-
biente VisuAlg é realizada por meio do menu Algoritmo > Executar, alter-
nativamente, você poderá utilizar a tecla de atalho F9. A figura 4 apresenta
o resultado da execução do algoritmo.

Figura 19 – Resultado da execução do algoritmo no ambiente VisuAlg.

Com isso, você aprendeu os procedimentos para codificação de um


algoritmo no ambiente VisuAlg, bem como, sua execução e visualização
dos resultados.

Atividades
01. Especifique a diferença entre organização e arquitetura de computa-
dores.

02. Descreva a arquitetura de Von Neumann.


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

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


Justifique.
04. Pesquise sobre outras arquiteturas de computadores além daquela de
Von Neumann.

29
Organizações de Computadores

Reflexão
Vimos até aqui que há muito mais sobre computadores do que sim-
plesmente 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 impor-
tante 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.

Leituras recomendadas
Artigo – O papel da informação no processo de capacitação tecno-
lógica das micro e pequenas 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 siste-
mas de informação nas empresas.

Referêncais bibliográficas
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São
Paulo: Pearson Prentice Hall. 2004.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren-


ciais. São Paulo: Prentice Hall. 2007.

MONTEIRO, M. A. Introdução à Organização de Computadores.


5a ed. São Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de


Computadores. Rio de Janeiro: Campus, 2000.
Proibida a reprodução – © UniSEB

NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi-


zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010.

30
Processamento de Dados e Estrutura Básica do Computador – Capítulo 1

PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIAN-


CHI, F. Algoritmos e Programação de Computadores. Rio de Janei-
ro: Elsevier, 2012.

STALLINGS, W. Arquitetura e Organização de Computadores.


São Paulo: Prentice Hall, 2002.

No próximo capítulo
No próximo capítulo, entederemos como os dados são representa-
dos na computação. Serão vistos os conceitos de bit, byte, bases e a con-
versão entre elas.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

31
Organizações de Computadores

Minhas anotações:
Proibida a reprodução – © UniSEB

32
Representação de
Dados
No capítulo prévio, entendemos o com-

2 putador como uma máquina que processa


dados. Deve-se notar que existem artefatos
lo
mecânicos que, mesmo com capacidade limitada,
conseguem fazer também processamento – tal como
ít u

calculadoras mecânicas criadas no séc. XVII. Claro que


pela sua capacidade e flexibilidade, o nosso interesse reside
Cap

nos computadores baseados em dispositivos eletrônicos, e as-


sim 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 fundamentais da linguagem binária, partindo para bases
numéricas fundamentais.

Objetivos da sua aprendizagem


• 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.

Você se lembra?
Ao preencher dados em formulários eletrônicos, muitas vezes recebe-
mos mensagens de erro, indicando incompatibilidade entre os dados
que entramos e o tipo de dados esperado. Qual seria a consequên-
cia de não haver esse controle?
Organização de Computadores

2.1  Elementos binários fundamentais: bits, bytes e


words.
Pode-se pensar em diversas propriedades relacionadas ao compo-
nente eletrônico e à corrente elétrica, tais como voltagem, amperagem,
frequência de sinal, etc. Porém, fundamentalmente, um dispositivo tem ou
não corrente elétrica passando por ele, em suma, está desligado ou ligado.
Por isso, a forma básica de representação de dados em componentes ele-
trônicos se baseia na linguagem binária (LAUDON & LAUDON, 2007;
CAPRON & JOHNSON, 2004). Essa linguagem contém dois dígitos
apenas, os quais vão corresponder aos dois estados básicos. A represen-
taçã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 ele-
trônica e da computação, porém se mostrou perfeitamente adequada para
esses campos de desenvolvimento (NULL & LOBUR, 2010).
À unidade de dígito binário (zero ou um) se dá o nome de bit, ter-
mo vindo do inglês binary digital unit (STALLINGS, 2002). Como bits
isolados podem conter apenas dois estados, números e palavras são re-
presentados 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 me-
mó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 tempo, as uni-
dades 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 adjacen-
Conexão:
tes, sendo o seu número variável segundo o uso
Assista a um vídeo
(MONTEIRO, 2007), ver quadro 2.1. sobre o funcionamento do
computador e o uso de bits e
bytes: https://www.youtube.com/
Bit • Digito binário
watch?v=6oDiJLg6xbE
Acesso em: 24 jul. de 2014.
Byte • Conjunto de 8 bits
Proibida a reprodução – © UniSEB

• Número convencionado
WORD
de bits adjacentes

Figura 1 – Elementos fundamentais de Linguagem Binária (MONTEIRO, 2007).

34
Representação de Dados – 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

Quadro 2.1 – Conjunto de Dados mais Comuns


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

A conveção de tamanho de 8 bits para um byte se deu por motivos


práticos: um conjunto de 8 bits possibilita 256 valores diferentes (28 =
256), o que acomodaria a representação de todas as letras, algarismos e
caracteres especiais da língua inglesa. O padrão ASCII atribui para cada
caractere um byte, por exemplo, a letra A equivale ao número decimal 65
e ao binário 01000001. Como na época de sua criação os custos e a tecno-
logia limitavam o uso de processadores mais rápidos e memória com mais
espaço, os processadores de 8 bits prevaleceram e, assim, a convenção de
um byte com 8 bits.
Ainda assim, sempre houve uso de outros tamanhos de conjuntos de
bits, o que foi ampliado com o avanço das tecnologias de fabricação. Atu-
almente, predominam computadores pessoais e servidores que se baseiam
em processadores com arquiteturas de 32 e 64 bits. Quando os processa-
dores de 64 bits começaram a ser desenvolvidos, algumas empresas, como
a Intel, propunham uma arquitetura que seria incompatível com as de 32
bits, o que tornaria impossível continuar utilizando programas já existen-
tes. No entanto, a empresa AMD, em 1999, lançou uma especificação que
permitia a compatibilidade e que foi adotada pela indústria em geral. A
adoção da arquitetura de 64 bits se intensificou quando as empresas passa-
ram a necessitar de equipamentos que suportassem tamanhos de memória
e arquivos maiores do que 4 gigabytes. Para microcontroladores, que são
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

computadores simples utilizados em máquinas, ainda é comum o uso de


processadores de 4, 8 ou 16 bits.
Percebe-se que os diferentes usos de conjuntos de bits precisam de
convenções, indicando o tamanho de palavras (words) para cada arquite-
tura de processador. O tamanho das palavras influenciará em diferentes
características do computadores:
Endereços de memória disponíveis
Tamanho do barramento para transmissão das palavras
Tamanho das instruções a serem manipuladas pela UCP
A velocidade do sistema de forma geral etc.
35
Organização de Computadores

É importante notar que, no início da adoção dos computadores de 64


bits, era difícil notar diferenças de velocidade e desempenho em relação
aos computadores de 32 bits, o que fazia com que as pessoas se perguntas-
sem sobre as vantagens de um sobre outro caso não utilizassem mais do
que 4 gigabytes de memória. Isso ocorria porque, para manter a compa-
tibilidade, os sistemas operacionais e aplicativos não eram desenvolvidos
com a otimização da arquitetura em mente. No entanto, cada vez mais isso
vem mudando, e até já existem empresas que apenas compilam seus pro-
gramas para computadores de 64 bits para obter máxima otimização. Não
é mais proveitoso para as empresas adquirirem novos servidores de 32
bits e, quanto aos computadores pessoais nessa arquitetura, eles também
podem vir a ser aposentados totalmente em alguns anos.
O aumento de capacidade de processamento e armazenamento de
dados nos deixou familiares com termos como megabyte, gigabyte, etc.
Essas unidades se referem a potências de dez de quantidade de bytes, con-
forme está relacionado no quadro 2.2.

Múltiplos Símbolo 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 – Múltiplos decimais de bytes
Fonte: (STALLINGS, 2002)

A definição simples desses múltiplos pode ser melhor ilustrada com


algumas estimativas de uso:
• A Biblioteca do Congresso Americano guardava em 2011 cerca de
235 terabytes (MCKENNA, 2013).
• Em 2008, o Google já processava 20 mil terabytes ao dia (SCHON-
Proibida a reprodução – © UniSEB

FELD, 2010).
• Os serviços de mapas do Google disponibilizam certa de 20 petabytes
de imagens (MCKENNA, 2013).

36
Representação de Dados – Capítulo 2

• 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 equi-
valente 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 metodo-
lógicas.

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
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

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

37
Organização de Computadores

Até este ponto tratamos de alguns elementos básicos de linguagem


binária e demos alguma noção de escala de uso. Entretanto como números
e palavras são representados nesse tipo de convenção? Para explorarmos
esse assunto, é preciso conhecer algumas bases numéricas e como se pode
convertê-las.

2.2  Bases numéricas


O estabelecimento e uso de uma base numérica pela sociedade é
arbitrário, podendo ser adotado por fatores culturais ou técnicos. Isto é,
estamos acostumados a utilizar a base decimal porque possuímos dez de-
dos nas mãos e, depois que nos acostumamos com isso, é difícil imaginar
as grandezas representadas por outras bases numéricas. Mesmo o conceito
do algarismo zero não é intuitivo: ele foi adotado tardiamente por várias
civilizações e seu significado não é imediatamente compreendido por
crianças mais novas. Em algumas culturas antigas, era utilizada a base 20
(vigesimal) pelo fato de termos 20 dedos ao todo.
Na computação, dependendo da situação, podem ser utilizadas di-
ferentes bases numéricas. Logicamente, como já vimos, a base binária é
essencial porque é a forma que o computador processa dados e os transmi-
te através de pulsos elétricos. Como nós humanos estamos acostumados a
utilizar a base decimal, os números no código de nossos nossos programas
são convertidos sempre para a base binária e o contrário também ocorre
quando o computador nos exibe dados. Mas, além dessas duas bases, tam-
bém são utilizadas:
A base octal (8), pelo fato de cada byte possuir 8 bits, apesar de ser
uma base menos usada;
A base hexadecimal (16), por ser um múltiplo de 8 que suporta uma
grande quantidade de valores com uma representação numérica reduzida.
Em geral, as linguagens de programação possuem instruções ou
funções que convertem os números de uma base para outra caso o progra-
ma necessite, como, por exemplo, em softwares que lidam com endereça-
mento de rede ou com códigos de cores para desenho. A seguir, algumas
dessas bases serão melhor detalhadas.
Proibida a reprodução – © UniSEB

2.2.1  Base decimal


O sistema numérico decimal foi adotado dos árabes pelo euro-
peus e é a base que usamos para contas simples a complexas transações
financeiras em nossa economia (NULL & LOBUR, 2010). Como é um
38
Representação de Dados – Capítulo 2

sistema muito comum, não nos detemos para pensar como funciona.
Veja o exemplo abaixo de decomposição de números em base decimal:
15 = 1x10 + 5x1
146 = 1x100 + 4x10 + 6x1
8303 = 8x1000 + 3x100 + 0x10 + 3x1

Outra forma importante de decompor números é com o uso de po-


tências. Os números acima podem ser reescritos como em termos de po-
tências de 10, lembrando que qualquer potência elevada a zero é igual a 1:

15 = 1x101 + 5x100

Neste caso, temos dois dígitos: o dígito 5, corresponde ao multipli-


cador da potência elevada a zero. O dígito 1, corresponde ao multiplicador
da potência elevada a 1. Por analogia, examine os casos seguintes:
146 = 1x102 + 4x101 + 6x100
8303 = 8x103 + 3x102 + 0x101 + 3x100

Em outras bases numéricas, usamos potências de base correspon-


dente. Mas por que estudamos outras bases? Dependendo da utilização, a
base decimal pode não ser a mais eficiente e eficaz. Deve-se saber que há
uma notação que explicita em que base o número deve ser entendido:
(153)10 refere-se a 153 na base decimal.
(1110)2 refere-se a 1110 na base binária, que será vista a seguir.

2.2.2  Base binária


Como sabemos, é mais adequado implementar dados em base biná-
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

ria no computador. No quadro 3, temos uma relação da representação dos


números de 1 a 15. Porém como esses números são formados? Podemos
entendê-los a partir de sua decomposição em potências de dois:

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

= 8 + 4 + 2 + 0 = 14

39
Organização de Computadores

Por analogia, verifique estes três 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

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 – Representação Binária de Inteiros Positivos (zero a quinze)

Olhando novamente o quadro 2.3, vemos que o número 1 é repre-


sentado por um dígito, já o número nove por quatro. Para a estrutura do
computador, é interessante termos uma padronização dos processos de lei-
tura e alocação de memória para cada variável. O byte, também referido
como octeto (MURDOCA & HEURING; 2000), surgiu com essa preocu-
paçã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
Proibida a reprodução – © UniSEB

(255)10 = (11111111)2
Usando as combinações possíveis de zeros e uns em 8 bits, um byte
pode representar 256 valores numéricos, ou seja, 28. Se precisássemos
usar apenas inteiros positivos, poderíamos representar valores começando
40
Representação de Dados – Capítulo 2

por zero até chegar a 255. Contudo, para indicar se o valor é negativo ou
positivo em um byte, precisamos usar um dígito para ter essa informação.
Assim, usando-se o byte, chega-se a um intervalo que vai de -128 a 127
(STALLINGS, 2002) .
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 razã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, subentendendo-se os dígitos
“19” à frente. Chegando a “2000”, porém, teríamos “00”, que seria enten-
dido como “1900”. Previu-se que esse problema de representação pudesse
causar o colapso de muitos sistemas computacionais, mas as consequên-
cias 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).

Para representar valores maiores ou menores do que esse intervalo,


há duas saídas principais. A primeira é lançar mão de words (palavras),
como de 16 bits ou 32 bits citados anteriormente. Em uma palavra de
16 bits, os valores de números inteiros podem variar de -32.768 a 32.767
(MONTEIRO, 2007). A quantidade de bits e o formato que são conven-
cionados a cada dado é importante. Antes de mais nada, quanto maior o
word, naturalmente maior é o uso de memória e capacidade de processa-
mento. Outro fator importante é que uma vez fixado o tamanho de certo
tipo de dado em um sistema, o custo de mudança pode ser considerável. O
problema (bug) do milênio e de 2038 são exemplos de problemas advin-
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

dos 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 requer mais capacidade e mudanças na estrutura de hardware.
Buscou-se evitar a necessidade dessas mudanças e ainda de aumentar
o escopo para representação de números reais por meio de método de
representação por ponto flutuante (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 hardware e programadores (MON-
TEIRO, 2007).
41
Organização de Computadores

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

Nos dois casos, temos três algarismos significativos e determinada


potência na base 10. Assim, podemos representar
números inteiros e aproximar valores fracioná-
Conexão:
rios e dízimas, ampliando consideravelmente o Saiba mais sobre o
intervalo de representação numérica. O termo método ponto flutuante e
“ponto flutuante” vem do fato da vírgula na padrão IEEE 754:
http://www.lia.ufc.br/~valdisio/
representação numérica poder estar na casa download/ieee.pdf
centesimal, unitária, de milhar, etc. Acesso em: 24 jul.
Assim como é possível somar e subtrair 2014.
usando o sistema decimal, é possível fazer as op-
ções aritméticas com o sistema binário, incluindo núme-
ros de ponto flutuante.

2.2.3  Base hexadecimal


Esse sistema possui o número 16 como base e é indicado por con-
tração “hex”. Essa base pode ser bastante confusa para quem acaba de co-
nhecê-la, pois sua representação exige um pequeno truque: como estamos
acostumados com a base decimal e temos apenas 10 algaristmos (de 0 até
9), é necessário utilizar outros símbolos para representar os seis algaris-
mos adicionais (de 10 até 15). Uma saída seria inventar novos desenhos
para representá-los, mas, por convenção, optou-se utilizar as primeiras
letras do alfabeto para representar os algarismos adicionais. Assim, como
notação, geralmente usa-se a convenção abaixo (STALLINGS, 2002):

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

Como isso é apenas uma representação, em geral as letras podem


ser maiúsculas ou minúsculas. Como exemplo, podemos fazer a seguinte
Proibida a reprodução – © UniSEB

equivalência em decimal, hexadecimal e binário:


123 = 7B = 1111011

42
Representação de Dados – Capítulo 2

É possível perceber que, como a base hexadecimal possui mais al-


garismos disponíveis, os valores que representam são menores em núme-
ros de algarismos também.
Diversas representações computacionais, padrões e linguagens
usam a base hexadecimal. Um exemplo são as representações de cores
em HTML, em que se inicia com # para depois especificar seis dígitos
hexadecimais. A cor azul primária, por exemplo, é representada por
“#0000FF”, que equivale ao decimal 255 e ao binário 11111111.
Outro exemplo de utilização são os endereços IP (Internet Proto-
col) na versão 6, o IPv6. A versão mais utilizada atualmente é a versão 4,
que possibilita um máximo de cerca de 4 bilhões de endereços de rede,
ou seja, endereços de 32 bits, cujo maior valor seria 255:255:255:255.
Recentemente, os endereços de internet se esgotaram e a insfraestrutura
da rede apenas funciona porque estão sendo utilizados artifícios enquanto
se migra para o IPv6. Esse possibilita uma quantidade inimáginável de
endereços, 2128, que são representados por oito grupos de números hexa-
decimais, como:
2001:0000:4136:e378:8000:63bf:3fff:fdd2

Você consegue imaginar qual seria o maior valor possível para um


endereço de rede nesse sistema? Na base hexadecimal, basta preencher
todo o endereço com a letra F. Por curioside, para saber qual o número
máximo de endereços permitidos em decimais, pesquise por um conver-
sor e o preencha repetindo 32 vezes a letra F.
É possível decompor números hexadecimais da mesma forma que
números em outras bases. Por exemplo, consideremos o número decimal
2597, que na base decimal equivale a A25. Ele pode ser decomposto em:
A25 = A × 162 + 2 × 161 + 5 × 160
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Se considerarmos que A equivale ao número 10 na base decimal,


podemos substituir e resolver:
A25 = 10 × 162 + 2 × 161 + 5 × 160 = 2560 + 32 + 5 = 2597

Novamente, fica claro que os números hexadecimais usam menos


dígitos que os decimais para representar o mesmo valor. Por sua vez, os
decimais usam menos dígitos que os números binários. Os números que
pode ser representados utilizando uma determinada base e um certo nú-
mero de dígitos é dado por Bn (base elevada ao número de dígitos). Assim:
43
Organização de Computadores

Com uma base binária e 3 dígitos, podemos ter 8 números distintos:


23 =8
Com uma base decimal e 3 dígitos, podemos ter 1000 números dis-
tintos: 103 = 1000
Com uma base hexadecimal e 3 dígitos, podemos ter 4096 números:
16 = 4096
3

2.2.4  Conversão entre bases


Ao usar o computador, sem perceber estamos usando a conversão
entre sistema decimal e binário a todo o tempo. Há diversas ferramentas
na WEB e em planilhas eletrônicas para fazer realizar a conversão entre
diversos sistemas.
Para ilustrar aqui uma conversão simples, vamos mudar o número 9 da
base decimal para binária. Vamos usar o método de divisão e resto (NULL
& LOBUR, 2011), que serve apenas a números inteiros sem sinal. Repare
que os dígitos da base binária vão corresponder ao resto da
divisão: Conexão:
Conheça um ferramenta
25 2 na Web para conversão entre
1 12 2 bases numéricas:
0 6 2 http://wims.unice.fr/wims/en_
tool~number~baseconv.en.html
0 3 2 Acesso em: 24 jul. 2014.
1 1 2
1 0

Os passos feitos foram esses: O Excel tem funções


• Dividindo-se 25 por 2, temos 12 com implementadas que permitem a
conversão entre bases numéricas. Se
resto 1. você, por exemplo, possuir o número 14 em
• Dividindo-se 12 por 2, temos 6 uma célula A1, você pode implementar uma
com resto 0. função em uma célula A2 que use o 14 como ar-
gumento. Isso pode ser feito pelo ícone fx ou pelo
• Dividindo-se 6 por 2, temos 3
menu Inserir. Algumas funções disponíveis são:
com resto 0. BINADEC: converte da base binária para a
• Dividindo-se 3 por 2, temos 1 decimal.
com resto 1, e para converter pre- BINAHEX: converte da base binária para a
Proibida a reprodução – © UniSEB

hexadecimal.
cisamos fazer mais uma divisão. DECABIN: converte da base deci-
• Atenção: dividindo-se 1 por 2, consi- mal para a binária.
dera-se o resultado 0 com resto 1.

44
Representação de Dados – Capítulo 2

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


(9)10 = (1001)2

2.3  Representação de caracteres


Até agora exploramos a representação de números, mas como se
tratam as letras do alfabeto e os caracteres em geral? Também no pós-
-guerra, ainda em um contexto de escassez de memória, os sistemas
computacionais adotaram o padrão ASCII (American Standard Code for
Information Interchange).
Binário Decimal Caractere Binário Decimal Caractere Binário Decimal Caractere

0010 0000 32 0100 0000 64 @ 0110 0000 96 `


0010 0001 33 ! 0100 0001 65 A 0110 0001 97 a
0010 0010 34 “ 0100 0010 66 B 0110 0010 98 b
0010 0011 35 # 0100 0011 67 C 0110 0011 99 c
0010 0100 36 $ 0100 0100 68 D 0110 0100 100 d
0010 0101 37 % 0100 0101 69 E 0110 0101 101 e
0010 0110 38 & 0100 0110 70 F 0110 0110 102 f
0010 0111 39 ‘ 0100 0111 71 G 0110 0111 103 g
0010 1000 40 ( 0100 1000 72 H 0110 1000 104 h
0010 1001 41 ) 0100 1001 73 I 0110 1001 105 i
0010 1010 42 * 0100 1010 74 J 0110 1010 106 j
0010 1011 43 + 0100 1011 75 K 0110 1011 107 k
0010 1100 44 , 0100 1100 76 L 0110 1100 108 l
0010 1101 45 - 0100 1101 77 M 0110 1101 109 m
0010 1110 46 . 0100 1110 78 N 0110 1110 110 n
0010 1111 47 / 0100 1111 79 O 0110 1111 111 o
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

0011 0000 48 0 0101 0000 80 P 0111 0000 112 p


0011 0001 49 1 0101 0001 81 Q 0111 0001 113 q
0011 0010 50 2 0101 0010 82 R 0111 0010 114 r
0011 0011 51 3 0101 0011 83 S 0111 0011 115 s
0011 0100 52 4 0101 0100 84 T 0111 0100 116 t
0011 0101 53 5 0101 0101 85 U 0111 0101 117 u
0011 0110 54 6 0101 0110 86 V 0111 0110 118 v
0011 0111 55 7 0101 0111 87 W 0111 0111 119 w

45
Organização de Computadores

0011 1000 56 8 0101 1000 88 X 0111 1000 120 x


0011 1001 57 9 0101 1001 89 Y 0111 1001 121 y
0011 1010 58 : 0101 1010 90 Z 0111 1010 122 z
0011 1011 59 ; 0101 1011 91 [ 0111 1011 123 {
0011 1100 60 < 0101 1100 92 \ 0111 1100 124 |
0011 1101 61 = 0101 1101 93 ] 0111 1101 125 }
0011 1110 62 > 0101 1110 94 ^ 0111 1110 126 ~
0011 1111 63 ? 0101 1111 95 _

Quadro 2.4 – Tabela ASC II – Caracteres imprimíveis.


Fonte: (MONTEIRO, 2007).
Esse padrão foi desenvolvido para os sistemas de telex originalmen-
te, o que se reflete na definição de 33 caracteres não imprimíveis que hoje
estão na maioria obsoletos e a reserva de um dígito para controle de erro
(MURDOCCA & HEURING, 2000).
O quadro 4 apresenta os caracteres imprimíveis do ASC II e a sua
correspondência binária. Assim, usando esse padrão, um sistema compu-
tacional lê “01000000” como “@”, “01111010” como “z”, etc. desde que
tenha sido definido que o dado é um caracter não um número.
Os limites do ASC, especialmente para lidar com caracteres de al-
fabetos além do latino e caracteres especiais, fez com que os construtores
de hardware e desenvolvedores de software ampliassem os caracteres de-
finidos. Nesse contexto, destaca-se o padrão Unicode ((NULL & LOBUR,
2011).

2.4  Tipos de dados e


uso de variáveis em Uma variável é um elemento sintático
algoritmos do algoritmo que tem como funcionalidade
armazenar um determinado valor. O valor
O principal objetivo dos
associado a variável depende do tipo de
algoritmos computacionais é a informação que se deseja manipular, assim,
manipulação de informações, as diversos tipos de valores podem ser atribuí-
quais podem ser especificadas pelo dos as variáveis.

usuário, ou geradas ao longo da exe-


Proibida a reprodução – © UniSEB

cução do algoritmo. Para manipulação


de informações nos algoritmos é neces-
sário a utilização de um recurso denominado
variáveis.
46
Representação de Dados – Capítulo 2

De acordo com o tipo de informação que será armazenado, é ne-


cessário especificar o tipo que será a variável. Este conceito é conhecido
como tipo de dados. Um tipo de dados determina quais tipos de operações
e quais tipos de valores podem ser manipulados pelas variáveis.
O tipo de dados mais comum existente é utilizado para a manipu-
lação de valores numéricos do tipo inteiro. As variáveis do tipo de dados
inteiro armazenam valores do tipo: 25, 32, 0, 45, -92, -853, entre outros.
Para demonstrar a utilização deste tipo de dados, bem como, a declaração
de variáveis nos algoritmos, vamos codificar nosso segundo exemplo. A
figura 5 apresenta o código do algoritmo capaz de realizar a soma de duas
variáveis do tipo inteiro. Este algoritmo foi nomeado como unid3_exem-
plo02.alg.

Figura 4 – Codificação do algoritmo capaz de realizar a soma de dois números inteiros.

No algoritmo da figura 5 é importante notar o bloco de declaração


de variáveis, o qual é codificado nas linhas 6, 7, 8 e 9. A linha 6 contém a
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

palavra reservada var, que indica o início do bloco de declaração de vari-


áveis. Na linha 7 é apresentada a declaração de uma variável denominada
a do tipo inteiro. As linhas 8 e 9 declaram mais duas variáveis do tipo
inteiro, definidas como b e soma. Você pode perceber com as declarações
das variáveis um padrão sintático, o qual é representado por:

nome_da_variável: tipo_da_variável

Os algoritmos computacionais, bem como as linguagens de progra-


mação possuem algumas regras para a nomeação das variáveis. Uma va-
47
Organização de Computadores

riável deve obrigatoriamente iniciar como um caractere literal, assim, não


é possível declarar variável que comecem com um número, por exemplo,
1soma. Outro detalhe importante é que nomes de variáveis não podem
conter espaços, por exemplo, soma total, então, caso seja necessário, você
poderá utilizar o caractere sublinhado (underline), da seguinte maneira:
soma_total. Outra regra importante sobre a identificação de variáveis é
não utilizar caracteres especiais, tais como @, #, $, %, bem como, não
utilizar acentos de qualquer tipo.
Observando ainda o algoritmo apresentado na figura 5, é importante
notar as linhas 12 e 13 que armazenam valores nas variáveis a e b. O ter-
mo computacional que indica o armazenamento de um valor em uma vari-
ável é atribuição. 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 re-
cebe 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 valores. É importante destacar que a instrução escreva é utilizada para
exibir uma informação na tela, em que todas as informações textuais de-
vem 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.

Figura 5 – Resultado da execução do algoritmo.

Outro tipo de dado utilizado para a manipulação de informações


numéricas é denominado real. Com o tipo de dados real é possível reali-
zar operações com números que contenham casas decimais, por exemplo,
2.34, 4.48, -5.82, 0.004, entre outros. Um detalhe importante que merece
destaque é com relação ao símbolo utilizado para separação das casas de-
Proibida a reprodução – © UniSEB

cimais. Geralmente, pelo fato das linguagens de programação utilizarem


instruções na linguagem inglesa, a separação das casas decimais é reali-
zada com o símbolo de . (ponto), no entanto, é possível criar mecanismos
capazes de efetuar a substituição do ponto pelo símbolo de , (vírgula)
48
Representação de Dados – Capítulo 2

utilizado para separar a parte fracionária no Brasil. Para demonstrar a uti-


lização de números do tipo real, considere o problema de calcular a média
de um conjunto numérico. Podemos utilizar como exemplo, a necessidade
de calcular a média de notas de um conjunto de cinco alunos, por isso, a
figura 7 apresenta o resultado da codificação deste exemplo. Antes da exe-
cução, o arquivo foi salvo com o nome de unid3_exemplo03.alg.
Neste algoritmo é importante notar a declaração das variáveis nota1,
nota2, nota3, nota4 e nota5. Na linha 8, as variáveis que receberão os va-
lores referentes as notas são declaradas em uma mesma linha. Este tipo de
declaração é possível, pois todas as variáveis são do mesmo tipo. Dessa
forma, é possível simplificar a seção de declaração das variáveis. No en-
tanto, 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 preferir, o programador pode declarar as
variáveis individualmente, uma em cada linha, como apresentado na lista-
gem 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
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 6 – Algoritmo que demonstra a utilização de variáveis do tipo real.

49
Organização de Computadores

O resultado da execução do algoritmo é apresentado na figura 8. Na


execução é importante notar que na separação das casas decimais o Visu-
Alg utiliza o símbolo de ponto.

Figura 7 – Resultado da execução do algoritmo.

Para manipulação de informações literais, as linguagens de progra-


mação e os algoritmos, possuem um tipo específico denominado carac-
tere. 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 linguagens de programação de alto nível, tais como Java
ou C#, a manipulação de caracteres 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 realiza a manipulação de infor-
mações com o tipo de dados caractere. Este exemplo foi nomeado como
unid3_exemplo04.alg.

Figura 8 – Algoritmo que demonstra a manipulação de informações com o tipo de dados


caractere.
Proibida a reprodução – © UniSEB

50
Representação de Dados – Capítulo 2

Neste exemplo é importante notar que os valores do tipo caracte-


re são representados 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 representaçã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 repre-
sentação de um único caractere, quanto de vários, é realizada com as-
pas duplas. O resultado da execução do algoritmo pode ser visualizado
na figura 10.

Figura 9 – Resultado da execução do algoritmo.

Os algoritmos ainda possuem um tipo de dados específico utilizado


para manipulação de valores lógicos, os quais são conhecidos em progra-
mação como booleanos. Um tipo de dados booleano permite o armazena-
mento de valores 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 linguagem algorítmica, o tipo de dados booleano é
definido como lógico.
Para demonstrar a utilização do tipo de dados lógico, vamos codifi-
car mais um algoritmo. Este exemplo, nomeado como unid3_exemplo05.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

alg, apresenta um algoritmo que manipula informações de todos os tipos


de dados existentes, sendo eles inteiro, real, caractere e lógico. No exem-
plo, é importante destacar a atribuição de um valor lógico, que ocorre na
linha 18.
Na linguagem algorítmica utilizada pelo ambiente VisuAlg, uma va-
riável do tipo lógico pode assumir dois valores, verdadeiro ou falso, e nes-
te caso a atribuição de valores lógicos também utiliza os possíveis valores
(verdadeiro ou falso). A figura 11 apresenta o resultado da codificação do
algoritmo.

51
Organização de Computadores

Figura 10 – Algoritmo que demonstra a utilização dos principais tipos de dados e apresenta
a manipulação de valores do tipo lógico.

O resultado da execução do algoritmo, que pode ser visualizada uti-


lizando o menu Algoritmo>Executar, é apresentada na figura 12.

Figura 11 – Resultado da execução do algoritmo.

Com isso, você conheceu os principais tipos de dados que podem


ser utilizados para manipulação de informações nos algoritmos e progra-
mas. O próximo passo é aprender como ler informações fornecidas pelo
usuário, e como apresentar resultados na tela.

Atividades
01. Pesquise sobre a origem da linguagem binária, antes de seu uso pela
computação.

02. Por que o sistema binário é mais adequado para o uso em dispositvos
Proibida a reprodução – © UniSEB

eletrônicos?

03. Decomponha 19583 em potências de base 10.

52
Representação de Dados – Capítulo 2

04. Converta 19583 na base binária.

05. Decomponha o resultado do exercício 4 em potências de base 2.

06. Pesquise sobre o padrão UNICODE e identifique os grupos de carac-


teres que são definidos.

Reflexão
Neste capítulo, entendemos melhor como o computador e dispositi-
vos 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 sistemas computa-
cionais conseguem fazer tarefas variadas como reconhecer voz e ajudar
em diagnósticos médicos? Como essas tarefas se traduzem em processa-
mento de dados?

Leitura recomendada
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 as-
sunto 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, entu-
siasmada 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/
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

english/static/millennium_bug/countries/default.stm>. Acesso em: 19


jun. 2014.

CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São


Paulo: Pearson Prentice Hall. 2004.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren-


ciais. São Paulo: Prentice Hall. 2007.

53
Organização de Computadores

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/featu-
re/What-does-a-petabyte-look-like>. Acesso em: 19 jun. 2014.

MONTEIRO, M. A. Introdução à Organização de Computadores.


5a ed. São Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de


Computadores. Rio de Janeiro: Campus, 2000.

NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi-


zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010.

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-capacity/>. Acesso
em: 19 jun. 2014.

SCHONFELD, E. Google processing 20,000 terabytes a day, and


growing. Techcrunch, website, 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. Tec-


mundo, website, 25 fev 2011. Disponível em: <http://www.tecmundo.
com.br/historia/8795-2038-o-bug-do-milenio-atacara-novamente.>.
Acesso em: 19 jun. 2014.

STALLINGS, W. Arquitetura e Organização de Computadores.


São Paulo: Prentice Hall, 2002.
Proibida a reprodução – © UniSEB

No próximo capítulo
No próximo capítulo, conheceremos a álgebra booleana, que permi-
te que os computadores possam manipular os dados logicamente.
54
Álgebra Booleana e
Operações Lógicas em
3 Algoritimos
lo
No capítulo anterior, vimos a forma como dados
podem ser representados no computador em base nú-
ít u

mérica, ou seja, passível de operações como aritméticas


de adição. Mas quando usamos um caixa eletrônico, por
Cap

exemplo, há diversas outras operações envolvidas. A simples


comparação da senha que digitamos com aquela registrada
pede uma operação lógica que deve responder “a senha confere”
ou “a senha não confere”. Em um videogame, cada uma das ações
do jogador tem determinadas consequências tanto para o encadea-
mento posterior de eventos, quanto para o próprio ambiente do jogo.
Esses são apenas exemplos de como o processamento de dados depen-
de de operações lógicas (LAUDON & LAUDON, 2007; CAPRON &
JOHNSON, 2004). A implementação dessas operações em computador
estão, por sua vez, baseadas na álgebra booleana, tema principal deste
capítulo.

Objetivos da sua aprendizagem


• 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 implementa-
dos em algoritmos.

Você se lembra?
No primeiro capítulo, foi dado o exemplo da receita de bolo
como um algoritmo não computacional. Como outros algorit-
mos, a receita de bolo é um conjunto de instruções formali-
zado para resolver um problema e, nesse caso específico,
as instruções seguem umas às outras diretamente. Bus-
que 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.
Organização de Computadores

3.1  Álgebra booleana


Segundo Linda Null e Julia Lobur, a álgebra booleana é “uma álge-
bra para a manipulação de objetos que podem assumir somente dois valo-
res, normalmente verdadeiro ou falso” (NULL & LOBUR, 2011, p. 141).
É fácil entender que essa álgebra seja adequada ao computadores, os quais
funcionam usando a linguagem binária. A seguir, vamos falar da origem
da álgebra booleana para, a seguir, passar para seus operadores.

3.1.1  Origens
A linguagem binária se tornou um componente fundamental da
computação, mesmo tendo sido desenvolvida muito antes dos primeiros
computadores. O mesmo aconteceu com a álgebra booleana: nascida no
séc. XIX fruto da formalização do pensamento lógico realizada por Geor-
ge Boole, um grande matemático inglês (figura 1). A motivação de Boole
era encontrar e formalizar leis universais do raciocínio, aproximando este
da álgebra matemática. Esse esforço foi estruturado 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_Boole_color.jpg. Acesso em: 24 jul. de 2014.

Uma ilustração simples da álgebra booleana pode ser dada avalian-


Proibida a reprodução – © UniSEB

do 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.
56
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

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 comprometida a afirmação feita sobre os dois. Perceba que a
afirmação 3 equivale considerar a afirmação 1 e a afirmação 2 simultanea-
mente. 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.

Desse modo, a tabela-verdade fica:

p q p•q
V V V
V F F
F V F
F F F

Podemos ainda explicar mais um operador lógico a partir da seguin-


te assertiva:
Afirmação 4: Ana foi ao cinema OU Paulo foi ao show.
: Afirmação 1 OU Afirmação 2: p + q
A afirmação 4 será verdadeira caso ambas as afirmativas sejam ver-
dadeiras, mas também caso somente uma delas seja. Por exemplo, mesmo
Paulo não tendo ido ao show, basta que Ana tenha ida ao cinema para ga-
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

rantir essa veracidade. A afirmativa 4 só será falsa se ambas as afirmativas


também o forem. Consequentemente, a tabela-verdade neste caso terá a
seguinte configuração:

p q p+q
V V V
V F V
F V V
F F F

57
Organização de Computadores

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


Fonte: Labirinto Teseus de Claude Shannon (Museu do MIT) http://
commons.wikimedia.org/wiki/Category:Claude_Shannon#mediaviewer/
File:Theseus_Maze_by_Claude_Shannon,_1952_-_MIT_
Museum_-_DSC03702.JPG. Acesso em: 24 jul. de 2014.

A utilidade da álgebra booleana e suas tabelas verdade para circui-


tos elétricos foi estabelecida pelo americano Charles Shannon em sua
dissertação de mestrado de 1937, concluída no MIT. Em lugar dos valores
“falso” ou “verdadeiro”, os circuitos poderiam operar por essa álgebra
usando os “zeros” e “uns”. Essa adaptação lançou as bases da computação
que conhecemos hoje. Shannon ainda ajudou a criar os fundamentos da
teoria da informação e da inteligência artificial. Um dos seus experimen-
tos famosos foi um “rato eletromecânico” programado a encontrar a saída
de um labirinto (figura 2) e capaz de acumular conhecimento a cada entra-
da no mesmo labirinto. (GLEICK, 2011).
Na sumarização seguinte da álgebra booleana, vamos usar os dígitos
binários. Assim, “0” será equivalente a “falso” e, consequentemente, 1 a
“verdadeiro”. 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 Heuring (2000), Monteiro (2007) e Stallings (2002).

3.1.2  Operador E (Conjunção ou AND)


Uma expressão com operador E resulta 1 somente se as suas entra-
das forem todas iguais a 1. O funcionamento é análogo ao exemplo da
Proibida a reprodução – © UniSEB

seção anterior com a afirmativa 3.


Considerando duas entradas, p e q, a notação de “p E q” já foi vista:
p.q

58
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

Chama-se essa expressão também de produto booleano, ou multi-


plicação lógica. Abaixo está a tabela-verdade para o operador E com duas
entradas:

p q p•q
1 1 1
1 0 0
0 1 0
0 0 0

3.1.3  Operador OU (Disjunção ou OR)


Uma expressão com operador OU resulta em 0 somente se as suas
entradas forem todas iguais a 0. Aqui temos um comportamento análogo
ao exemplo anterior com a afirmativa 4.
Considerando duas entradas, p e q, já conhecemos a notação
de “p OU q”.
p+q
Essa expressão também é no- Existem outras
notações para operado-
meada de soma booleana, ou adição res vistos aqui e que podem ser
lógica. A tabela-verdade para o comumente encontradas na disciplina de
operador OU com duas entradas Raciocínio Lógico:
Operador E: p • q.
está a seguir: Operador OU: p + q. _
Operador Negação: p
p q p+q
1 1 1
1 0 1
0 1 1
0 0 0
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

3.1.4  Operador Negação (Inversão ou NOT)


Esse operador simplesmente inverte a entrada. Ou seja, se a entrada
é 0 o operador o transforma em 1, e vice-versa. Com uma entrada p, a no-
tação de “p negado” é: ~p
A tabela-verdade para esse operador é:

p ~p
1 0
0 1

59
Organização de Computadores

3.1.5  Operadores XOR, NOR, NAND


Os operadores AND, OR e NOT podem ser combinados e aplicados
sucessivamente a entradas. Três dessas combinações encontram uso cor-
rente em sistemas computacionais:

Disjunção exclusiva (XOR)


O resultado dessa operação é 1 se, e somente se, apenas uma das
entradas for 1. A tabela-verdade do operador XOR é:

p q (p • ~q) + (~p • q)
1 1 0
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

• NOU (“Não... e...”, NAND)


O resultado dessa operação é 1 se pelo menos
uma entrada for 0. A tabela verdade do operador Conexão:
NOU é: Para aprofundar seus
conhecimentos sobre álgebra
p q ~ (p + q) booleana, leia o texto dispo-
nível em: http://www.inf.ufsc.
1 1 0 br/~guntzel/isd/isd2.pdf
1 0 1 Acesso em: 24 jul. de 2014.
0 1 1
Proibida a reprodução – © UniSEB

0 0 1

60
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

3.2  Portas lógicas


A adaptação de Claude Shannon da álgebra booleana é também de-
nominada álgebra de chaveamento devido à orientação inicial para circui-
tos que podiam estar ligados ou desligados por chave. Essa álgebra é usa-
da na construção de circuitos físicos, que podem
modificar os sinais digitais conforme estabe-
Conexão:
lecido por seu desenho. Devido a esse uso, Conheça um aplicativo
há símbolos gráficos para cada operador, gratuito para dispositivos móveis
chamadas portas lógicas, o que facilita o que desenha portas lógicas:
https://play.google.com/store/apps/
trabalho em circuitos complexos. Na tabe- details?id=com.Logic.gates_Xor.en
la a seguir, as entradas são representadas Acesso em: 24 jul. de 2014.
pelos traços à esquerda, podendo ser, cada
uma, zero ou um. A saída é representada
pelo traço à direita, também obedecendo à base
binária.

Operador Símbolo
AND

OR

NOT

XOR

NOR

NAND

Fonte: http://commons.wikimedia.org/wiki/File:NAND_
ANSI.svg. Acesso em: 24 jul. de 2014.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

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 entradas de valor 1. Pela própria definição do operador, a saída tam-
bém será 1:

1
1 1
1

61
Organização de Computadores

3.3  Operações aritméticas e lógicas em algoritmos


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 processamento nos é lembrado
com frequência, como acontece com as vitórias de sistemas computacio-
nais sobre grandes mestres do xadrez (ver box explicativo).

Em 1997, o supercomputador
Deep Blue da IBM venceu o cam-
peão mundial de xadrez Garry Kas-
parov em um match de seis partidas.
O evento chamou a atenção do mun-
do para os avanços em inteligência
artificial, estimulando a reflexão
sobre os limites e as potencialidades
dos computadores. Kasparov havia Figura 3 – Supercomputador
Deep Blue (Museu da História
derrotado uma versão desse compu- do Computador, Califórnia.
tador em 1996 e acusou a IBM de
Fonte: http://commons.wikimedia.
fraudar a disputa em 1997. A fraude org/wiki/File:Deep_Blue.
teria sido o uso de grandes mestres jpg. Acesso 24 jul. de 2014
de xadrez para apoiar o processo de
decisão do computador. De qualquer
modo, a superioridade dos computa-
dores nesse jogo foi reafirmada por
programas de software mais inteli-
gentes e que, assim, não requerem
a capacidade de processamento do
Deep Blue. Se este calculava até
200 milhões de posições de jogo por
segundo em um estrutura complexa
e dedicada, o programa Deep Fritz,
rodando em Windows com processa- Figura 4 – Garry Kasparov.
Proibida a reprodução – © UniSEB

dores Pentium, conseguiu derrotar o Fonte: http://commons.wikimedia.


campeão mundial Vladimir Kramnik org/wiki/File:Kasparov-27.jpg.
em 2006 (NEWBORN, 2011). Acesso em 24 jul. de 2014.

62
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

3.3.1  Comandos de entrada e saída


Os algoritmos computacionais e os programas têm como principal
funcionalidade o processamento de informações. Essas informações ge-
ralmente são fornecidas pelo usuário, o qual utiliza o teclado para entrada
de dados e, em um segundo momento, os resultados são apresentados em
dispositivos de saída como monitor ou impressora. Durante o processo
de construção de algoritmos, o programador pode contar com instruções
específicas para carregar informações fornecidas pelo usuário e para apre-
sentar resultados na tela, essas instruções são chamadas de comandos de
entrada e saída.
Para leitura de informações, o comando utilizado para entrada de
dados é conhecido como leia. Assim, com este comando é possível trans-
ferir uma informação digitada pelo usuário com o teclado para uma deter-
minada variável no escopo do algoritmo. Por outro lado, para a apresenta-
ção de uma informação na tela é utilizada um comando de saída específico
denominado escreva.
Para demonstrar a utilização dos comandos de entrada e saída va-
mos construir uma calculadora simples de quatro operações. Nesta calcu-
ladora, o usuário fornecerá dois valores números (valor1 e valor2) e serão
realizados os cálculos de soma, subtração, multiplicação e divisão. Para
leitura dos valores será utilizado o comando leia e para a apresentação dos
resultados será necessário o comando escreva. Na linguagem algorítmica
VisuAlg, existe uma variação do comando escreva denominada escreval.
Este comando, além de exibir as informações desejadas na tela, também
realizar a quebra de linha, ou seja, o comando é capaz de exibir uma de-
terminada 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.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

O algoritmo que codifica a calculadora simples de quatro operações


foi nomeado como unid3_exemplo06 e a figura 5 apresenta a codificação
completa do exemplo.

63
Organização de Computadores

Figura 5 – Algoritmo que codifica um cálculo simples com quatro operações.

O resultado da execução do algoritmo é apresentado na figura 6.


Nessa execução, os valores fornecidos como entrada foram 10 e 20.

Figura 6 – Resultado da execução do algoritmo.

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 entrada os quilômetros percorridos pelo veículo e o total
de litros abastecidos. Com isso, o algoritmo é capaz de determinar o con-
sumo médio e o resultado é exibido na tela. Este algoritmo foi nomeado
como unid3_exemplo07, e a codificação é demonstrada na figura 7.
Proibida a reprodução – © UniSEB

64
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

Figura 7 – Algoritmo para determinar o consumo médio de combustível de um veículo.

O resultado da execução do algoritmo pode ser visualizado na Fi-


gura 8. Os parâmetros informados na entrada foram 460 para quilômetros
rodados e 50 para litros abastecidos.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 8 – Resultado da execução do algoritmo.

3.3.2  Operações e expressões


Os computadores podem ser encarados como grandes máquinas
capazes de realizar uma quantidade imensa de operações por segundo. Na
evolução histórica da computação, os primeiros algoritmos foram criados
com o intuito de solucionar complexas expressões em poucos segundos.

65
Organização de Computadores

As expressões são formadas essencialmente por operadores, operandos


e parênteses. De acordo com o tipo de operador utilizado, podemos criar
expressões denominadas:

3.3.3  Expressões aritméticas


As expressões aritméticas utilizam os operadores aritméticos da
matemática tradicional para criar expressões capazes de resolver os mais
variados tipos de funções. Neste grupo, os principais operadores utiliza-
dos são soma (+), subtração (–), multiplicação (*), divisão (/) e resto da
divisão (%).
A figura 9 apresenta a codificação de um algoritmo que utiliza ex-
pressões aritméticas para resolver um polinômio. Este algoritmo foi no-
meado como unid3_exemplo08.alg.

Figura 9 – Algoritmo computacional que utiliza expressões aritméticas.

A figura 18 apresenta o resultado da execução do algoritmo.


Proibida a reprodução – © UniSEB

Figura 10 – Resultado da execução do algoritmo.

66
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

3.3.4  Expressões relacionais


Quando construímos algoritmos é muito
comum a necessidade de comparar, ou
estabelecer relações entre determina-
dos operandos. Para isso, podemos
Em uma expressão relacional o resulta-
utilizar um conjunto específico de do produzido pela avaliação da expressão é
operadores capazes de produzir ex- sempre um valor lógico. Assim, uma expres-
pressões relacionais. Os operadores são relacional resulta em um valor do tipo
verdadeiro ou falso.
relacionais conhecidos são:
• maior (>)
• menor (<)
• menor ou igual (<=)
• maior ou igual (>=)
• igual (=)
• diferente (<>).
A figura 11 demonstra a construção de um algoritmo computacional
que utiliza expressões relacionais. Note no algoritmo que todos os opera-
dores relacionais são expressões por meio de símbolos. Este algoritmo foi
nomeado como unid3_exemplo09.alg.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 11 – Algoritmo computacional que demonstra a utilização de expressões e


operadores relacionais.

67
Organização de Computadores

A figura 12 apresenta o resultado da execução do algoritmo.

Figura 12 – Resultado da execução do algoritmo.

3.3.5  Expressões lógicas


Na construção de algoritmos com- Conexão:
putacionais também é possível criar Os operadores lógicos são
muito importantes para a construção
expressões a partir de operadores lógi- de programas, principalmente para a
cos. Estas expressões são conhecidas elaboração de expressões relacionais
como expressões lógicas. Para cria- compostas. Para complementar seu estudo
você poderá utilizar a seguinte referência:
ção de uma expressão lógica é neces- http://pt.wikipedia.org/wiki/
sário utilizar operadores booleanos, Operadores_l%C3%B3gicos
em que os principais são: Acesso em 24 jul. de 2014.
• negação (NOT)
• conjunção1 (E)
• disjunção (OU)
• disjunção-exclusiva (XOR)
Na figura 13 é apresentada a codificação de um algoritmo capaz de cal-
cular a tabela-verdade a partir de expressões lógicas. Neste exemplo é possível
determinar um dos principais conceitos da lógica matemática conhecido como
tabela-verdade. Este algoritmo foi nomeado como unid3_exemplo10.alg.

Para um estudo aprofundado a respeito de tabelas verdade, você poderá con-


sultar as seguintes referências:
Proibida a reprodução – © UniSEB

http://pt.wikipedia.org/wiki/Tabela_verdade
http://www.calculadoraonline.com.br/tabela-verdade

1 Oportunidade; ocasião; conjuntura.

68
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

Figura 13 – Algoritmo computacional que demonstra a utilização de expressões e


operadores lógicos.

A figura 14 apresenta o resultado da execução do algoritmo.


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 14 – Resultado da execução do algoritmo.

Com isso, concluímos o estudo a respeito dos operadores e das ex-


pressões aritméticas, relacionais e lógicas. Aproveite este momento para
construir algoritmos a partir das atividades propostas.

69
Organização de Computadores

Atividades
01. Monte uma tabela-verdade para o operador AND com quatro entradas.

02. Monte uma tabela-verdade para o operador OR com três entradas.

03. Por que a álgebra booleana se mostrou adequada para circuitos elétricos?

04. Qual é o valor de q no circuito lógico abaixo?

1
1 q
0

Reflexão
Não ocorrendo problemas de hardware, um computador basicamen-
te 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?

Leituras Recomendadas
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 desenvolvimento dos computadores, mas que agora, como de-
monstra o autor, está presente em quase todas as nossas atividades.

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.
Proibida a reprodução – © UniSEB

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren-


ciais. São Paulo: Prentice Hall. 2007.

70
Álgebra Booleana e Operações Lógicas em Algoritimos – Capítulo 3

MONTEIRO, M. A. Introdução à Organização de Computadores.


5a ed. São Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de


Computadores. Rio de Janeiro: Campus, 2001.

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

NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organi-


zação de Computadores. 2a ed. Porto Alegre: Bookman, 2010.

STALLINGS, W. Arquitetura e Organização de Computadores.


São Paulo: Prentice Hall, 2002.

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.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

71
Organização de Computadores

Minhas anotações:
Proibida a reprodução – © UniSEB

72
Instruções e
Processamento
A partir do conteúdo anterior, enten-

4 demos os sistemas computacionais como


executores de instruções, baseados fundamen-
lo
talmente na liguagem binária e na álgebra boo-
leana (LAUDON & LAUDON, 2007; CAPRON &
ít u

JOHNSON, 2004). Neste capítulo, vamos entender me-


lhor o que são instruções e quais são os seus tipos. Vamos
Cap

explorar como o processador se relaciona com o fluxo dessas


instruções, inclusive com a sua interrupção. Para esse entendi-
mento, será necessário compreender os componentes básicos da
Unidade Central de Processamento (UCP). Por fim, vamos apontar
algumas dimensões mais operacionais da implementação dos siste-
mas de computador, incluindo a placa-mãe, linguagens de programa-
ção e os sistemas operacionais.

Objetivos da sua aprendizagem:


• 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.

Você se lembra?
Quantas vezes você viu uma campanha sobre o lançamento de uma nova
geração de microprocessadores? A velocidade dos computadores que
você usa se mantém constante ou tende a cair? A maior parte dos pro-
blemas de processamento é devido aos microprocessadores, ou você
identifica outras causas mais relevantes?
Organização de Computadores

4.1  Componentes fundamentais para o


processamento
No capítulo 1, vimos uma esquematização básica de um computa-
dor, como também a arquitetura de Von Neumann. Entendemos o compu-
tador como uma máquina que recebe instruções e dados, processa estes na
UCP com o auxílio do armazenamento de memória e, por fim, realiza a
saída aos dados.
Segundo Null e Lobur, a UCP “é responsável por carregar instru-
ções de programas, decodificar cada instrução carregada e realizar a se-
quência indicada de operações sobre os dados corretos” (2010, p. 208).
Na UCP, há elementos fundamentais que dão base a esse processo. Esses
elementos podem ser internamente restritos à UCP ou servirem de interfa-
ce a componentes externos. Na figura 1, encontra-se uma representação da
Arquitetura de Von Neumann com uma especificaçã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

Figura 1 – Arquitetura de Von Neumann


Fonte: http://pt.wikipedia.org/wiki/Arquitectura_de_von_Neumann#mediaviewer/
Ficheiro:Arquitectura_von_Neumann.png. Acesso em 24 jul. de 2014.

Registradores
São componentes de hardware que guardam dados binários rela-
Proibida a reprodução – © UniSEB

tivos a dados, endereços de memórias e informações de controle. Não


devem ser confundidos com os dispositivos de armazenamento do com-

74
Instruções e Processamento – Capítulo 4

putador, 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 (MONTEIRO, 2007). A arquitetura do pro-
cessador designa a quantidade de registradores, tamanho de leitura, assim
como pode especificar funções específicas para cada registrador.

Unidade de Aritmética e Lógica (UAL)


As operações matemáticas e de álgebra booleana que vimos ante-
riormente são executadas pela UAL.

Unidade de Controle
Essa unidade é responsável por manipular os registradores adequa-
damente e ativar a UAL para as operações requeridas na ordem correta.
Cabe ainda à Unidade de Controle executar interrupções e monitor o esta-
do das operações (STALLINGS, 2002).

Relógio
A frequência desse dispositivo sincroniza todo o sistema computa-
cional. Os registradores podem ser carregados com outro dados apenas
com a passagem de um ciclo do relógio (NULL & LOBUR, 2010).

Interfaces de Entrada e Saída (E/S)


A UCP recebe e disponibiliza dados por meio de dispositivos exter-
nos como mouses, teclados, microfones, scanners (entrada) ou telas, alto-
falantes, impressoras (saída), para citar alguns exemplos comuns. O sinais
entre UCP e esses dispositivos precisam ser devidamente formatados para
serem entendidos.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

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.

75
Organização de Computadores

4.2  Instruções de computador


4.2.1  Estrutura e tipos
Cada tipo de processador é capaz de executar um determinado con-
junto de instruções (MURDOCCA & HEURING, 2000). Esse fato ajuda a
explicar os problemas de compatibilidade entre arquiteturas de computa-
dores, pois elas possuem conjuntos diferentes. Essas questões de compa-
tibilidade tiveram e ainda têm consequências importantes para usuários e
empresas do setor.

O tipo de processador tem diversas implicações para a ar-


quitetura 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 ar-
quitetura 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 siste-
mas 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).
Proibida a reprodução – © UniSEB

76
Instruções e Processamento – 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-processa-
dores.htm
Acesso em 24 jul. de 2014.

Figura 2 – Steve Jobs anunciando a transição para processadores Intel (2005).


http://en.wikipedia.org/wiki/File:Steve_Jobs_
Presentation_1.jpg. Acesso em 24 jul. de 2014.

Segundo Stallings (2000), uma instrução deve possuir os seguintes


elementos de modo a fornecer toda a informação requerida para a execu-
ção:
• Código da operação. A operação de adição, por exemplo, é usualmen-
te simbolizada por ADD.
• Referência aos operandos de entrada: dados
que serão processados, endereços de
memória, entre outros. O termo operando
se refere a dados que serão
• Referência aos operandos de sa- objeto de operações de proces-
ída: resultado da operação. samento. Stallings (2002) classifica os
• Endereço da instrução se- operandos em quatro tipos:
Números. Exemplos.: inteiros, de ponto
guinte.
flutuante.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

O quadro 4.1 sumariza os Caracteres: Exemplos.: alfabeto latino, chinês,


tipos principais de instruções. Há símbolos especiais.
aquelas que envolvem operações Dados lógicos. Exemplos: verdadeiro,
falso.
lógicas e aritméticas como vimos no Endereços de memória: regis-
capítulo anterior. Porém há instruções tros no disco rígido.
específicas que se referem a armazena-
mento e movimentação de dados, assim como

77
Organização de Computadores

instruções ligadas ao próprio controle de instruções (MURDOCCA &


HEURING, 2000).

Codificação
Tipo de instrução Função/Exemplos
comum
Aritmética / Lógica Adicionar, subtrair, conjunção ADD, SUB, AND
Movimentação de dados Faz a transferência de dados en- LOAD, STORE,
tre os registradores e a memória OUT
principal ou entre o registradores
entre si: carregar, gravar, saída.
Transferência de Controle Chamar subrotinas, Desviar a HALT, JE
instrução do fluxo sequencial:
suspensão, “desvia se igual”.
Quadro 4.1 – Tipos Principais de Instruções
Fonte: adaptado de Murdocca & Heuring, 2000.
O tamanho de uma instrução pode variar bastante de acordo com a
arquitetura a que pertence e com sua forma de implementação. Em micro-
controladores (chips com instruções simples), o limite de tamanho pode
ser tão pequeno quanto 4 bits, enquanto há arquiteturas que suportam
instruções longas, com mais de uma operação a cada uma, chegando a
centenas de bits. Em computadores pessoais e servidores mais comuns,
o tamanho das instruções costuma variar entre 8 e 64 bits, sendo que em
uma mesma arquitetura suas instruções podem ter tamanhos diferentes.
Em processadores do tipo RISC, como os ARM, as instruções possuem
tamanhos fixos.
Como vimos anteriormente, um conjunto determinado de bits utili-
zado por um computador é denominado word (palavra), e uma instrução,
de um ponto de vista geral, é nada mais do que isso, um bloco de bits que
pode conter o código de operação, os operandos e outros campos adicio-
nais. Uma instrução pode ser representada, para fins didáticos, da seguinte
maneira:

00000010 00001011 00110010


Código de Operação Operando 1 Operando 2
Proibida a reprodução – © UniSEB

Por exemplo, essa instrução poderia ser uma operação de soma de


dois valores, sendo que esses valores podem estar diretamente no campo
de operandos, ou os operandos podem ser endereços de memória que
78
Instruções e Processamento – Capítulo 4

contêm os valores a serem somados. Na instrução de soma da arquitetura


x86, que é a da maioria dos computadores domésticos, um dos operandos
é o valor de origem que será somado a um valor de destino e, no caso
dessa arquitetura, pelo menos um desses dois deve estar armazenado em
um registrador. Veremos algumas dessas características dos endereços de
memória contidos em instruções no tópico de Modos de Endereçamento,
mais adiante.
É importante diferenciar as instruções do processador das instruções
que geralmente se usa em programação em linguagens de alto nível. Nes-
sas últimas, o que se chama de “instrução” pode acarretar em uma série de
instruções para o processador. Por exemplo, uma atribução de um cálculo
de uma equação a uma variável (x = 2 * 3 + 4), na verdade, levará a uma
instrução de multiplicação e a outra de soma para o processador. A lingua-
gem Assembly se assemelha muito mais às instruções do processador, uti-
lizando mnemônicos para substituir o código binário que é difícil leitura
para humanos. A sequência em Assembly para a equação citada seria algo
como:

imul origem, destino


add origem, destino

Nesse caso, origem e destino seriam valores fornecidos diretamente


ou endereços de valores residentes em memória ou nos registradores. O
comando “imul” é a instrução para multiplicação e o “add” a instrução
para adição.

4.2.2  Ciclo de instrução e interrupção


A partir do momento que o computador é ligado, ele começa a exe-
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

cutar ciclos de instruções. Nos computadores pessoais e servidores mais


comuns, normalmente, a arquitetura do processador o direcionará para
executar instruções que estão em uma memória ROM, a qual inicia o sis-
tema (boot) e após algumas configurações iniciais o “entrega” ao sistema
operacional. Desde que é ligado até seu desligamento, o computador exe-
cutará ciclos de instruções continuamente.
Em máquinas mais simples ou bem mais antigas, as instruções são
executadas em sequência: uma apenas começa quando a outra se comple-
ta. Monteiro (2007) ilustra um ciclo simplificado de instrução conforme
a Figura 3 – nem todos os processadores realizam exatamente o ciclo da
79
Organização de Computadores

mesma maneira, mas esse é um modelo geral de funcionamento. O pró-


prio autor chama atenção para o fato de que os computadores de hoje não
mais realizam uma instrução só por vez.
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

Figura 3 – Ciclo de Instrução Básico (MONTEIRO, 2007, p. 157).

A sequência de instruções é controlada através do Contador de Pro-


grama que, dependendo da arquitetura da UCP, armazena na memória o
endereço da próxima instrução a ser executada ou o endereço da instrução
atualmente executada. É através desse Contador de Programa que cada
ciclo se inicia, quando o processador busca a instrução a ser processada na
memória e segue com as outras etapas.
O modelo atualmente empregado usa o método de pipelining, em
que as instruções são executadas de forma paralela. Por esse método,
Proibida a reprodução – © UniSEB

as instruções são dividas em etapas, permitindo que a UCP armazene e


execute diversas instruções por vez. Um ponto positivo desse método é
que são armazenadas continuamente etapas de instruções nos registra-
dores, evitando que se espere para buscá-las na memória principal, um
80
Instruções e Processamento – Capítulo 4

procedimento mais lento. Como desvantagem do pipelining está a maior


complexidade do controle da instruções, o que pode implicar em conflitos
e problemas de fluxos de memória (MURDOCCA & HEURING, 2000).

4.2.3  Interrupções
Como já foi comentado, os processadores possuem o que se chama
de conjunto de instruções (instruction set). Cada arquitetura de processa-
dor pode oferecer um conjunto diferente de instruções, sendo que, eventu-
almente, novos modelos de uma marca de processadores podem oferece-
rer instruções adicionais.
Um dos tipos de instruções é o de interrupções, que na verdade é
uma instrução capaz de interromper o fluxo normal de operação do pro-
cessador. Isto é, a UCP possui uma sequência enorme de instruções a
serem executadas a todo momento, e as executa em sequência de acordo
com um agendamento, o que se chama de escalonamento de processos ou
agendamento de tarefas (scheduling) o qual é feito pelo sistema operacio-
nal; uma interrupção é uma instrução que pode ter diversas origens e que
interrompe esse escalonamento, chamando a atenção do processador para
atender uma necessidade imediata.
Quando recebe a requisição de interrupção, o processador executa
certos procedimentos para atendê-la e depois voltar fluxo normal de pro-
cessamento agendado. Esses procedimentos são necessários para que o
processador mude de contexto sem perder os dados da sequência normal
de tarefas:
Ele faz o que se chama de salvamento de contexto, isso é, termina
uma instrução do programa que estava executando, salva os contadores de
programa e o estado de seus registradores;
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Identifica o tipo de interrupção e obtém o endereço da Rotina de


Tratamento de Interrupção (Interruption Handler) adequada de uma tabe-
la na memória;
A UCP salta para essa Rotina de Tratamento de Interrupção e a exe-
cuta;
A Rotina de Tratamento de Interrupção termina;
A UCP restaura o contexto anteriormente interrompido e retorna ao
fluxo principal.

81
Organização de Computadores

O ciclo de uma instrução, esquematizado na Figura 3 apresentada


anteriormente, ou qualquer outro ciclo que envolva instruções, pode ser
interrompido por causas diversas (NULL & LOBUR, 2010):
Instruções de entrada e saída, como aquelas requisitadas pelo usuá-
rio;
Erros em operações aritméticas: divisão por zero, overflow;
Problemas de hardware;
Instruções inválidas etc.

Overflow aritmético aconte-


As interrupções podem ser ce quando o resultado matemático
causadas tanto por hardware de uma operação ultrapassa o valor
como por software, além de que designado de memória e/ou o formato
designado de sua variável.
elas podem ser propositais ou
devidas a algum erro. À primeira
vista, o termo “interrupção” pa-
rece ser uma coisa que se aplica
apenas quando há um problema no
computador, mas ele é um recurso
interessante para o programador em
algumas situações. Os vários tipos de inter-
rupções podem ser classificados pela origem de sua sinalização para o
processador:
Interrupção por software: são aquelas causadas pelo sistema ope-
racional ou outros programas, os quais podem ser provocadas por situa-
ções programadas ou comandos em que se incorre em envio de sinais de
interrupção, ou podem ser causadas por erros em programas (chamados
“exceções”);
Interrução por hardware: causada por dispositivos de entrada/
saída (E/S), alguns problemas de hardware ou de fornecimento de energia,
pressionamento do botão de desligamento ou pelo timer do sistema;

Alguns autores podem vir a classificar as excessões em uma catego-


ria separada. Também pode haver sinais de interrupção cuja origem pode
ser mais difícil de classificar, como, por exemplo, de um programa que
Proibida a reprodução – © UniSEB

gera um sinal de interrupção de hardware. Mas, em geral, pode-se dizer


que a interrupção por software ocorre por causas internas ao processador,
gerando uma instrução de interrupção, enquanto as interrupções por har-
dware vêm de uma fonte externa, através de um canal de interrupção.
82
Instruções e Processamento – Capítulo 4

As exceções devem ter especial atenção dos programadores, pois


várias delas são causadas por erros. Por exemplo, em uma divisão por
zero: logicamente, quando desenvolve um programa, se o programador
faz um cálculo com uma divisão por zero no meio do programa, o compi-
lador o avisará sobre o erro; no entanto, o compilador não captará o erro
caso o programa deixe a entrada de dados livre e o usuário alimente o
sistema com o valor zero como divisor. Nesse caso, quando o erro ocorrer
em tempo de execução do programa, o processador receberá uma instru-
ção de interrupção e fechará o programa. Para evitar isso, o programador
deve fazer o que se chama “tratamento de erros”, isto é, garantir que o
usuário não alimente com o valor zero onde não pode, ou instrua o progra-
ma a agir de certa maneira quando isso ocorrer.

4.2.4  Modos de Endereçamento


Os modos de endereçamento fazem parte da arquitetura de instru-
ções de uma UCP. Eles são a forma que o processador utiliza para acessar
o dado que compõe o operando em uma instrução. Quando explicamos, de
forma simplificada, que o processador recebe uma instrução e ela contém
um endereço na memória onde está armazenado um dado, é importante
destacar que essa não é a única forma de acessar esse dado. Os vários mo-
dos de endereçamento procuram oferecer diferentes métodos de atribuir
esse valor à instrução.
A existência desses diferentes métodos procura atender diversas
necessidades dos programas e sistemas operacionais, principalmente das
arquiteturas de processadores do tipo CISC, que possuem mais tipos de
instruções. Um exemplo da necessidade dessa flexibilidade é dado por
Monteiro (2007), como no caso de uso de contadores em programas
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

(número de controle da sequência de instruções de um programa): como


o acesso de dados na memória principal é mais lento, pode ser mais efi-
ciente o controle de contadores nos registradores da UCP, mantendo os
seus valores lá enquanto o programa em questão executa. Esses endereça-
mentos na memória principal ou nos registradores representam diferentes
modos.
Existem muitos modos de endereçamento, sendo que alguns são
mais utilizados e outros já são obsoletos. Apenas para se ter uma ideia da
quantidade de modos de endereçamento, apresenta-se aqui uma lista que
pode não ser exaustiva: endereçamento por registrador, base mais deslo-
83
Organização de Computadores

camento, imediato/literal, implícito, modo direto ou absoluto, absoluto


indexado, base mais índice, base mais índice mais deslocamento, escala-
do, indireto por registrador, indireto com auto-incremento por registrador,
auto-decrescimento por registrador, indireto por memória, relativo ao con-
tador de programa. Além desses, há também uma série de modos obsole-
tos. Nem todos esses nomes são completamente estabelecidos, podendo
variar dependendo do autor do texto que os apresenta ou do fabricante que
os implementa.
Em programação, as pessoas que mais frequentemente devem lidar
diretamente com os modos de endereçamento são os programadores de
compiladores ou quem programa diretamente na linguagem Assembly de
baixo nível.
O número de modos de endereçamento suportados por uma UCP
específica pode variar bastante, dependendo principalmente de sua ar-
quitetura. Há quem defenda que é mais vantajoso suportar uma menor
quantidade de modos de endereçamento mais simples, mesmo que isso
implique no uso de algumas instruções ou registradores a mais para suprir
as necessidades. A arquitetura RISC procura utilizar apenas um conjunto
reduzido de modos simples, enquanto é típico da arquitetura CISC ofe-
recer mais modos complexos. Vejamos a seguir alguns exemplos mais
comuns de modos de endereçamento apresentados por Monteiro (2007).

Modo Imediato ou Literal


Esse é o modo de endereçamento mais simples, mas, a rigor, não é
uma forma de endereçar o dado contido em outro lugar, mas uma forma
de instrução em que o operando possui o valor real a ser processado.

Código de Operação Operando: valor do dado

Um exemplo da operação de soma em Assembly, utilizando o modo


imediato seria o seguinte, adicionando o valor 4 ao registrador de uso ge-
ral R1:
ADD #4, R1
Proibida a reprodução – © UniSEB

Nesse modo, o tempo de acesso ao dado na memória não existe,


então torna o processamento mais rápido. No entanto, ele cria algumas
limitações, como o tamanho e tipo do dado contido no operando. Além
disso, se torna menos eficiente caso seja utilizado para variáveis que mu-
84
Instruções e Processamento – Capítulo 4

dam de valor constantemente, mas pode ser mais eficiente se armazenar


uma constante.

Modo Direto ou Absoluto


Nesse caso, o operando contém o endereço do valor armazenado na
memória principal. Quando a instrução é executada, o processador acessa
o endereço e utiliza do dado lá armazenado, adicionando esse tempo de
busca e acesso.

Operando: endereço do
Código de Operação dado na memória principal

Como exemplo, consideremos uma soma, representada em Assem-


bly, que adiciona o valor armazenado no endereço 20 ao registrador R1:
ADD (20), R1

Esse endereço na memória pode conter todo o dado em uma célula


ou se referir à primeira célula de um dado particionado em mais células.
Apesar de ser mais lento que o modo imediato, é melhor para lidar com
variáveis em programas. No entanto, pode apresentar a desvantagem de
que, em sistemas de 32 ou 64 bits, os endereços na memória são muito
grandes para serem contidos em um único operando de instrução.

Modo Indireto
Nesse modo, há um duplo endereçamento na memória principal ou
no registrador. O operando da instrução carrega um endereço de memória
que não leva diretamente ao dado, mas a outro endereço de memória que,
esse sim se refere à célula contendo o dado solicitado.

Operando: endereço para


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Código de Operação um ponteiro de dado

Essa forma de endereçamento elimina a limitação de endereçamen-


to de memória, além de que o endereço contido na instrução pode fazer
referências a subrotinas de programas.
O endereço que se refernecia a outro endereço é um recurso bastan-
te utilizado em programação que se chama ponteiro (pointer). No entanto,
ele traz algumas desvantagens que o fazem ser pouco utilizados pelas
arquiteturas mais modernas, como a lentidão do processo e a grande quan-
tidade de acessos à memória.
85
Organização de Computadores

Endereçamento por Registrador


O endereço por registrador pode ser direto ou indireto, sendo pareci-
do com o modelo que usa a memória principal. No entanto, ao invés de a
instrução possuir um endereço de memória em seu operando, ela traz uma
identificação do registrador em que o dado se encontra.

Operando: identificação do
Código de Operação registrador

Como há menos registradores, o endereço contido no operando terá


um tamanho muito menor que um endereço de memória, reduzindo o
tamanho da instrução. Além disso, o acesso ao registrador é muito mais
rápida, reduzindo drasticamente a velocidade da operação.
Por outro lado, nem todas a operações trarão vantagens em utilizar
esse modo. Ele, por exemplo, não traria vantagem em processamentos em
que ciclos de memória seriam utilizados de qualquer maneira, sendo que,
nesse caso é melhor utilizar o modo direto. Também pode haver uma li-
mitação devido à menor quantidade de resgistradores, sendo que algumas
arquiteturas os possuem mais do que outras.

Modo Indexado
O modo indexado apresentou uma grande evolução no passar dos
anos e passou a ter um conjunto de variações mais sofisticadas. Esse
modo de endereçamento possui um operando com um endereço de me-
mória com um dado, podendo esse ser um endereço base para um vetor, e,
além disso, a instrução possui um índice armazenado em um registrador, o
qual indica a posição do elemento no vetor.

Operando: endereço do
Código de Operação dado na memória principal Registrador índice
ou do registrador

Neste exemplo, utiliza-se uma variação em que o endereço se en-


contra em um registrador e o índice em outro. O endereço é fornecido pela
soma do endereço base R1 com o deslocamento R2.
ADD (R1+R2), R3
Proibida a reprodução – © UniSEB

86
Instruções e Processamento – Capítulo 4

O endereço final, portanto, é uma composição do operando e do


índice no registrador. Esse modo de endereçamento é bastante rápido e
permite que mudanças de local dos dados na memória sejam mais fáceis.
Modo Base Mais Deslocamento (Relativo à Base)
Esse modo possui semelhanças com o modo indexado, pois ambos
usam valores compostos de endereços. No entanto, no modo Base Mais
Deslocamento, a instrução traz o identificador de um registrador que con-
tém uma “base”, mais um valor na própria instrução, que se chama “des-
locamento”, não havendo um operando.

Identificação de registra-
Código de Operação Deslocamento
dor: base

No seguinte exemplo, endereço é dado pelo deslocamento R1 a par-


tir da base 20:
ADD 20(R1), R2

Ao contrário do modo indexado, o valor armazenado no registrador


se mantém fixo, e cada instrução traz um deslocamento que é como um
índice para o dado contíguo em memória. Esse modo reduz o tamanho das
instruções.
Assim, passamos por alguns modos de endereçamento principais,
mas há muitos outros não detalhados aqui. O objetivos desses exemplos é
demonstrar de forma geral como funciona o acesso à memória e como ele
pode evoluir e se adequar a cada arquitetura de processador.

4.3  Aspectos de arquitetura nos computadores


pessoais
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Até este momento, tratamos de modelos para instruções e para ar-


quitetura de computadores. Nesta seção, vamos explorar aspectos mais
visíveis em nossos computadores de uso cotidiano. Inicialmente, vamos
apresentar a função da placa-mãe, que ajuda a entender a arquitetura do
computador em termos físicos. Depois, vamos falar da linguagem de alto
nível e um pouco sobre sistemas operacionais, que correspondem a aspec-
tos práticos das instruções para o usuário.

87
Organização de Computadores

4.3.1  Placa-mãe
Como a placa-mãe
A placa-mãe realiza a comuni- é responsável por transmitir
cação e dá suporte físico aos com- sinais elétricos entre componentes
ponentes do computador. Essa co- eletrônicos, quaisquer fatores físicos que
prejudiquem a qualidade desse comunicação
municação pode se referir àquela dificultará ou mesmo impedirá o desempenho
entre os componentes internos, do computador, por exemplo: poeira, umidade e
ou entre esses componentes e maresia, oscilações de energia (corrente/voltagem),
altas temperaturas e falta de ventilação.
interfaces externas. Por meio da
Algumas placas-mãe são banhadas a ouro para
placa-mãe, o processador se comu- prevenir a oxidação. Em todos os casos, reco-
nica com a memória principal; esta menda-se realizar a manutenção preventiva
se comunica com a memória prin- da placa-mãe e não apenas a correti-
va, depois que problemas se
cipal se comunica com dispositivos de manifestaram.
armazenamento secundário; os resultados
de cálculo são transmitido para a tela; etc. Para
tanto, as placas-mãe possuem conjuntos de circuitos integrados (chipsets) que
fazem a comunicação entre o processador, a memória e o controle de periféri-
cos. (CORNACCHIONE, 2012).
Avanços na tecnologia dessas placas buscam prover uma melhor
ventilação e resfriamento, especialmente ao processador (CORNAC-
CHIONE, 2012).
Proibida a reprodução – © UniSEB

Figura 4 – Placa-mãe
Disponível em: <http://en.wikipedia.org/wiki/Mother_
board#mediaviewer/File:MicroATX_Motherboard_with_AMD_
Athlon_Processor_2_Digon3.jpg>. Acesso em 24 jul. de 2014.

88
Instruções e Processamento – Capítulo 4

Figura 5 – Processador AMD Figura 6 – Chipset


Disponível em: <http://pt.wikipedia.org/ http://pt.wikipedia.org/
wiki/Placa-m%C3%A3e#mediaviewer/ wiki/Chipset#mediaviewer/
Ficheiro:AMD-AthlonXP-1700. Ficheiro:Southbridge.jpg
jpg>. Acesso em 24 jul. de 2014. Acesso em 24 jul. de 2014.

4.3.2  Software e instruções


Como falamos antes, para usar os recursos de hardware você preci-
sará de software. Sem o software, seu hardware apenas ficará inerte. Por
meio do software, 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 com-
putador. Os dois tipos de software hoje existentes são o software de siste-
ma 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 utilitários
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Software Aplicativo
Linguagens de programação
Linguagens de quarta geração
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 linguagem e os programas utilitários. Os softwares aplicativos incluem
89
Organização de Computadores

as linguagens de programação, as linguagens de quarta geração e os paco-


tes de software.
Os softwares aplicativos com os quais temos mais contatos
são os pacotes de software. São ferramentas como suítes de aplicati-
vos para escritório, como o Office, da Microsoft. Incluem editores de
texto, planilhas eletrônicas, editores de apresentações, dentre outros.
Um navegador para Internet, como o Internet Explorer, o Firefox ou o
Opera, é um exemplo de software aplicativo também. Enfim, são softwa-
res para utilização do usuário final.
Estes softwares aplicativos foram construídos, de alguma maneira,
usando linguagens de programação. No entanto, o desenvolvedor, ao criar
um software, precisa cuidar de muitos detalhes de funcionamento. Isto
torna custoso o processo de desenvolvimento. Porém, este desenvolvedor
não precisa saber 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.

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 informa-
ções na saída, seja um vídeo ou impressora. Ele também sabe como inter-
pretar as informações vindas da entrada, como o mouse e o teclado. Além
disto, sabe como guardar estas informações na memória e levá-las ao pro-
cessador quando necessário, para que as tarefas descritas por linguagens
de programação possam ser executadas e transformem-se em programas
úteis aos usuários finais, como uma planilha de cálculo, por exemplo.
É por isto que, na figura vista, o sistema operacional fica próximo
do núcleo do computador, que é o hardware. Ele traduz as necessidades
dos softwares aplicativos e, assim, os desenvolvedores têm mais facilida-
de para trabalhar.
Um sistema operacional de propósito geral (pois existem SOs para
atividades específicas) é uma coleção de outros softwares que gerenciam
Proibida a reprodução – © UniSEB

todos os dispositivos do computador. Em geral, ele possui os seguintes


componentes:
• gerenciador (escalonador) de processos;
• gerenciador de memória;
90
Instruções e Processamento – Capítulo 4

• gerenciador de entrada e saída;


• gerenciador de sistema de arquivos.

Um programa é apenas um conjunto de instruções a serem re-


alizadas, como uma receita. No entanto, o programa está escrito
numa linguagem de máquina, 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 execução, ma-
nipular informações para este processo, controlar os arquivos que este
processo está usando, dentre outros.
O gerenciador de memória atua no sistema operacional para ga-
rantir que cada processo tenha seu espaço de trabalho reservado na me-
mória RAM (a memória de trabalho). O gerenciador de entrada e saída
controla e manipula informações que, por exemplo, entram pelo teclado,
digitadas pelo usuário, e devem ser escritas na tela do monitor. Além
disso, também controlam dispositivos de armazenamento, como discos,
CDs, pen drives etc. Já o gerenciador do sistema de arquivos garante a
manipulação de arquivos em dispositivos de armazenamento, 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 pri-
mó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 ge-
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

rações que já nasceram com a existência dela), interfaces por comandos


de voz etc.

4.3.2.2  Tradutores de linguagem

Além dos sistemas operacionais, temos também os softwares que fa-


zem a tradução de linguagem e os softwares utilitários. Os softwares de tra-
dução convertem o código escrito numa linguagem de programação (veja o
tópico seguinte) para a linguagem de máquina que será compreendida pelo
hardware e usará recursos administrados pelo sistema operacional.
91
Organização de Computadores

Já os programas utilitários são aqueles que auxiliam o usuário na


configuração e no gerenciamento do sistema operacional de seu com-
putador. Um exemplo de programa utilitário é o Windows Explorer
para Windows. Trata-se de um gerenciador de arquivos que permite
ao usuário encontrar seus arquivos no computador, como na figura a
seguir.

Figura 8 – Gerenciador de arquivos Windows Explorer

Você já deve estar habituada a ela, não é mesmo?

Figura 9 – Desfragmentador de Discos do Windows

Outra ferramenta que podemos citar é o Desfrag-


mentador de Discos, que serve para reorganizar os
arquivos que estão no disco rígido de maneira a Conexão:
ocuparem menos espaço. Recomendações 3.2
Se você quiser saber, detalha-
Além destes, existem diversas outras damente, sobre o funcionamento
ferramentas para auxiliar na configuração do sistema operacional, acesse:
Proibida a reprodução – © UniSEB

da área de trabalho, no logon (entrada do <http://informatica.hsw.uol.com.


br/sistemas-operacionais.htm>.
usuário no sistema), no gerenciamento de Acesso em 24 jul. de 2014.
recursos etc.

92
Instruções e Processamento – Capítulo 4

4.3.2.3 Linguagens de programação

Dentre os softwares aplicativos existentes, temos as linguagens de


programação, as chamadas linguagens de quarta geração e os pacotes de
software e ferramentas de produtividade. Existem diversas linguagens de
programação famosas, como C, C++, Java, COBOL, Visual Basic, C#,
PHP, Python e muitas outras. A linguagem de programação serve para
representarmos as instruções que um programa deve realizar para alguma
tarefa. O computador entende apenas sinais elétricos. Como representa-
mos a existência (1) ou a ausência (0) de sinal, a linguagem que o compu-
tador entende é chamada de binária. Logo, se instruirmos o computador
por meio de uma linguagem binária, ele poderá realizar a tarefa que dese-
jamos.

100100100100100111
001100011111101011

Figura 10 – O computador compreende a linguagem binária

No entanto, é muito difícil escrever na linguagem do computador,


assim como é muito difícil escrever em inglês ou em japonês se você não
conhece a fundo a linguagem! Mas, se precisamos dar estas instruções e
não sabemos a linguagem daquele que será instruído, então podemos usar
algum intermediário, por exemplo um tradutor.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

???
Mostre um número
na sua tela.

Figura 11 – O computador não compreende a linguagem de alto nível

93
Organização de Computadores

Esse intermediário, o tradutor, precisa saber falar a sua linguagem


e a linguagem do computador. Assim, ele precisará converter o que você
quiser para a linguagem de computador (o binário!).

Mostre um número 100100100100100111


Compilador
na sua tela. 001100011111101011

Figura 12 – O compilador traduz a linguagem de alto nível para a linguagem binária

Em computação, esse tradutor é chamado de compilador, e a con-


versão de uma linguagem em outra é chamada de processo de compilação.
O tradutor é uma ferramenta de sistema, enquanto a linguagem é um sof-
tware voltado ao usuário (para que possa “programar” o sistema).

4.3.2.4 Linguagens de quarto nCveC

As linguagens de quarta geração consistem num


conjunto de diversas ferramentas de software
para auxiliar os usuários finais no desen- Conexão:
volvimento de softwares aplicativos Recomendações 3.3
sem necessitar tanto de conhecimentos Veja mais informações sobre as
linguagens e suas gerações em:
mais técnicos. Algumas linguagens de
<http://pt.wikipedia.org/wiki/Linguagem_
programação, como Java e C++, são de_programa%C3%A7%C3%A3o_de_
consideradas de quarta geração por não quarta_gera%C3%A7%C3%A3o>.
serem procedurais, mas sim orientadas <http://pt.wikipedia.org/wiki/Linguagem_
de_programa%C3%A7%C3%A3o>.
a objetos. A tabela a seguir mostra sete Acesso em 24 jul. de 2014.
tipos de linguagens de quarta geração.
Proibida a reprodução – © UniSEB

94
Instruções e Processamento – Capítulo 4

Ferramentas
de linguagem
Descrição Exemplo
de quarta
geração
WordPerfect
Ferramentas Orientada
Pacotes de softwares de uso geral para Internet Explores
de software para o
PCs. Access
de PC usuário final
Linguagens para extrair dados armaze-
Linguagens de nados em arquivos ou bancos de dados.
SQL
consulta Suportam requisições de informações
que não são predefinidas
Extraem dados de arquivos ou bancos
de dados para criar relatórios específicos
sob uma grande variedade de formatos
que não são produzidos por sistemas de
Geradores de informação.
Cristal Reports
relatórios
Geralmente proporcionam maior controle
sobre a maneira como dos dados são for-
matados, organizados e apresentados do
que as linguagens de consulta.
Extraem dados de arquivos ou banco de
dados e os apresentam sob o formato
Linguagens de gráficos. alguns softwares gerado- SAS Graph
gráficas res de gráficos também pode executar Systat
operações aritméticas ou lógicas com os
dados.
Contém módulos pré-programados que
poderm gerar aplicações completas, in-
cluindo sites Web, conferindo grande ve- FOCUS
Geradores de locidade ao desenvolvimento. O usuário PowerBuilder
aplicações pode especificar o que precisa ser feito e Microsoft Fron-
o gerador de aplicação criará o código de tPage
programa apropriado para entrada, vali-
dação, atualização e apresentação.
Programas de software vendidos ou ar-
Pacotes de
rendados por empresas comerciais que PeopleSoft HRMS
softwares
eliminam a necessidade de software SAP R/3
aplicativos
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

personalizado, da casa.

Gerem códigos de programa com um


Linguagens de número menor de instruções do que as
programação linguagens convencionais, como COBOL APL
de altíssimo ou FORTRAN. Projetadas primordial- Normad2
nível mente como ferramentas de produtivida-
de para programadores profissionais.

95
Organização de Computadores

Atividades
01. Quais causas podem acarretar o interrompimento de uma instrução?

02. O que são registradores e o que os diferenciam da memória de arma-


zenamento?

03. Pesquise sobre a relação entre a Lei de Moore e os microprocessado-


res com núcleo múltiplos.

04. Pesquise sobre as linguagens de primeiro ao quinto nível.

Reflexão
Por muito tempo, a capacidade dos processadores foi um limite
frequente para a microinformática. Avanços em software e hardware fre-
quentemente precisavam esperar uma nova geração de microchips. Reflita
sobre o estado atual da microinformática: são os microprocessadores hoje
um gargalo relevante para a maioria dos usuários? Caso contrário, que
fator se tornou a principal fronteira da microinformática?

Leitura Recomendada
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/ar-
qcomp2/Hist%F3rico.pdf>. Acesso em: 15 jun. 2014.

Referências Bibliográficas
CAPRON, H. L.; JOHNSON, J. A. Introdução à Informática. São Pau-
lo: Pearson Prentice Hall. 2004.

CORNACCHIONE JR., E. B. Informática. São Paulo: Atlas, 2012.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Geren-


ciais. São Paulo: Prentice Hall. 2007.
Proibida a reprodução – © UniSEB

LASHINSKY, A. Nos Bastidores da Apple. São Paulo: Saraiva, 2012.

96
Instruções e Processamento – Capítulo 4

LINZMAYER, O. W. Apple Confidential 2.0 – The definitive history


of the world’s most colorful company. São Francisco: No Starch,
2004.

MONTEIRO, M. A. Introdução à Organização de Computadores. 5a


ed. São Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de


Computadores. Rio de Janeiro: Campus, 2001.

NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Organiza-


ção de Computadores. 2a ed. Porto Alegre: Bookman, 2010.

OVIDE, S. CEO exits sets Microsoft on new path. The Wall Street
Journal, edic’ão eletrônica, 25 ago 2013. Disponível em: <http://onli-
ne.wsj.com/news/articles/SB100014241278873246195045790313004
09638802>. Acesso em: 15 jun. 2014.

STALLINGS, W. Arquitetura e Organização de Computadores. São


Paulo: Prentice Hall, 2002.

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 dispo-
sitivos de entrada e saída.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

97
Organização de Computadores

Minhas anotações:
Proibida a reprodução – © UniSEB

98
Memória e
Dispositivos de
Entrada e Saída
5 No capítulo anterior, vimos como a UCP
precisa ter dados e instruções disponíveis para
lo
que possa cumprir a sua função. A fonte imediata
de dados para a UCP encontra-se nos registradores,
ít u

que são componentes internos à unidade. Os registrado-


res se caracterizam pela rapidez com que se comunicam
Cap

com o processador, 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 principais de memória e como se dá a sua inter-relação.
Também discutiremos as interfaces de entrada e saída.

Objetivos da sua aprendizagem:


• 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 dispo-
sitvos de entrada e saída.

Você se lembra?
Busque identificar todos os tipos de armazenamento que você pos-
sui 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 prejudicado por problemas relacionados a armazenamen-
tos de dados?
Organização de Computadores

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 po-
siçã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 armazena-
mento 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 armazenamento externo e assim por diante.
Mais rápida e cara

Memória
Interna

Armazenamento
Externo (disco)

Armazenamento de Segurança
(fitas)

Mais lenta e barata

Figura 1 – Hierarquia da Memória


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

Deve-se notar que quanto mais alto estiver na hierarquia, mais cus-
toso tende a ser o dispositivo. Assim, um projeto de computador deve ba-
lancear os benefícios trazidos pela capacidade da memória interna face a
seus custos. Ainda, deve haver um balanceamento adequado na velocida-
de dos componentes do computador: De nada adianta, por exemplo, haver
Proibida a reprodução – © UniSEB

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 adequa-
da (MONTEIRO, 2007).
100
Memória e Dispositos de Entrada e Saída – Capítulo 5

5.1.2  Características dos dispositivos de memória


O quadro 5.1 sumariza as características fundamentais dos compo-
nentes de memória, as quais serão exploradas ao longo deste capítulo. A
característica de localização reflete a hierarquia discutida anteriormente.
Quanto à unidade de transferência, sabemos do capítulo 2 que os proces-
sadores e certos dispositivos de memória leem e transferem dados em ta-
manho fixo, daí uma das diferenças entre computadores de 16 ou 32 bits.
Quanto aos métodos de acesso que os dispositivos utilizam para localizar
e dispor dados, a figura 2 sumariza os tipos principais.

Característica Tipos principais


Localização No processador (registradores), interno, externo.
Capacidade Tamanho da palavra (16, 32 bits), número de palavras.
Unidade de transferência Palavra (16, 32 bits), blocos (nas memórias externas,
as transferências se dão por blocos consideravelmente
maiores do que as palavras).
Acesso Sequencial, direto, aleatório, associativo.
Desempenho tempo de acesso, tempo de ciclo e taxa de transferência.
Tecnologia semicondutores, ótico, magnético.
Característica física volátil ou não, apagável ou não.
Quadro 5.1 – Características Fundamentais dos Componentes de Memória
Fonte: adaptado de Stallings (2002)

• registros organizam dados.


Sequencial • o acesso segue um sequenciamento linear.
• Exemplo: fitas.

• registros também organizam dados.


Direto • cada registro possui endereço único.
• Exemplo: discos.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

• endereçamento único e fisicamente


Aleatório dedicado de cada posição.
• Exemplo: memória RAM.

• a busca é orientada pelo conteúdo, não


Associativo pelo endereço.
• Exemplo: alguns tipos de memória cache.

Figura 2 – Métodos de Acesso à Memória


Fonte: Stallings (2002)

101
Organização de Computadores

Como a qualidade dos sistemas computacionais depende do desem-


penho dos seus dispositivos de memória, é importante termos métodos
para avaliá-los. Stallings identifica três fatores fundamentais:

• Tempo de acesso: na memória que não usa o acesso aleatório, esse


tempo corresponde àquele gasto para o posicionamento da leitura ou
da escrita na localização desejada. Já para as memórias de acesso ale-
atório, esse fator equivale diretamente ao tempo gasto para o procedi-
mento de leitura ou escrita.

• Tempo de ciclo de memória: intervalo requerido para que um acesso


possa suceder o outro. Fator que se aplica mais a memórias de acesso
aleatório.

• Taxa de transferência: taxa em que os bits podem ser deslocados no


dispositivo de memória. Para as memórias de acesso aleatório, essa
taxa corresponde ao inverso do tempo de ciclo. Para memórias de
acesso não aleatório, tem-se a relação:

N
R=
TΝ − T a

Onde: R = taxa de transferência em bits por segundo (bps)


N: número de bits.
TN: tempo médio para ler ou escrever uma quantidade N de bits.
Ta: tempo médio de acesso.

Além dos fatores acima, é importante levar em consideração a taxa


de acerto (NULL & LOBUR, 2010). Essa taxa reflete quantas vezes o
dado requerido esteve no nível especificado da memória em relação ao
total de requisições.
Proibida a reprodução – © UniSEB

102
Memória e Dispositos de Entrada e Saída – Capítulo 5

5.1.3  Memória principal

Registradores

Memória Cache

Memória Principal

Figura 3 – Divisão da Memória Interna


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

Como mostra a figura 3, a memória interna também é subdivida em


termos de comunicação com a UCP. Vamos caracterizar inicialmente a
memória principal para depois tratar da memória cache.

Memória
UCP
Principal

Barramento

Figura 4 – Relação entre UCP e Memória Principal


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

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


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

da rápida e diretamente com dados e instruções (figura 4). Essa é a função


da memória principal. Para que a memória funcione com a UCP, é preciso
haver uma integração de registradores, mecanismos de controle e o barra-
mento (MONTEIRO, 2007), tal como resume o quadro 5.2.

103
Organização de Computadores

Elemento Função
Registrador de endereço (REM) armazena temporariamente o endereço a
ser acessado.
Barramento de endereços transmite dados do REM para a memória
principal (unidirecional).
Registrador de dado (RDM) armazena de forma temporária o dado a
ser transferido.
Barramento de dados faz a ligação entre o RDM e a memória
principal (bidirecional)
Controlador da memória integra a unidade de controle: sinaliza
instruções e avalia o estado de execução
das operações de memória integrando
toda a UCP.
Barramento de controle comunica os sinais relativos ao controle
no sistema.
Relógio sincroniza o sistema.
Quadro 5.2 – Elementos para Operações de Memória
Fonte: adaptado de Monteiro (2007)

A partir dos componentes


acima, podemos descrever as
duas operações básicas da Em linguagens de programação
memória: leitura e escrita. como C++, um ponteiro armazena o en-
dereço da posição de um dado na memória,
Na operação de leitura te- servindo para referenciá-lo (PIVA JR. et al,
mos a sequência descrita 2012).
na figura 5. Perceba que
há três tipos comunicações
envolvidas: o endereço do
dado, os sinais de controle
de instrução e, por fim, o dado
em si. Nessa operação, o começo
depende da indicação do endereço da
memória onde está o dado a ser acessado. Conexão:
Conheça como funciona uma
Já na operação de escrita, é indicado o data center do Google (há opção
endereço onde o dado deve ser grava- de legenda em português).
do. De qualquer forma, as três formas https://www.youtube.com/
Proibida a reprodução – © UniSEB

watch?v=avP5d16wEp0
de comunicação pelo barramento tam-
Acesso em 24 jul. de 2014.
bém são usadas.

104
Memória e Dispositos de Entrada e Saída – Capítulo 5

Início

A UCP envia ao REM o endereço


na memória do dado a ser lido
(barramento de endereços)

É sinalizada a operação 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.

Término

Figura 5 – Esquematização da operação de leitura.


Adaptado de DELGADO e RIBEIRO (2009).

Início

A UCP envia ao REM o endereço na


memória onde o dado será gravado
(barramento de endereços)

É sinalizada a operação de escrita


no barramento de controle.

O dado é transferido e armazenado


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

no RDM (barramento de dados)

Do RDM, o dado é transmitido para


o endereço designado.

Término

Figura 6 – Esquematização da operação de leitura.


Adaptado de DELGADO e RIBEIRO (2009).

105
Organização de Computadores

5.1.4  Memória RAM

Figura 7 – Modelos diferentes de memória RAM.


Disponível em: <http://pt.wikipedia.org/wiki/
RAM#mediaviewer/Ficheiro:RAM_n. A Memória RAM é
jpg>. Acesso em 24 jul. de 2014. volátil, ou seja, seus dados dei-
xam de ser armazenados na ausência
de energia. Para que um computador receba
Nos computadores conven- instruções básicas sem depender da RAM,
cionais, o papel da memória princi- criou-se uma memória de apenas leitura (ROM,
read-only memory) que não é volátil. Embora
pal é desempenhado pela memória existam alguns dispositivos de ROM que podem
RAM e parcialmente pela memória ser reprogramados, a função principal deles ainda
ROM. Como vimos no capítulo 1, é manter um conjunto essencial de dados para
leitura. Em sistemas embutidos, como
a memória RAM (memória de aces-
eletrodomésticos, brinquedos e equipamen-
so randômico) serve para armazenar tos médicos, a memória ROM possui
dados de trabalho do processador. Nas uma importância maior (NULL &
especificações de computadores comer- LOBUR, 2010).
ciais, 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
Conexão:
Kb apenas (LINZMAYER, 2004), já em 2014, Saiba mais sobre Memó-
um iMac podia chegar ter até 32G (APPLE, ria RAM:
Proibida a reprodução – © UniSEB

2014). Nas placas-mãe dos computadores http://e.cdn-hardware.com.br/


static/media/RevistaGDH_04.pdf
pessoais, geralmente há slots livres para que
Acesso em 24 jul. de 2014.
outros circuitos de RAM possam ser adiciona-
dos, já em dispositivos móveis isso é mais raro.
106
Memória e Dispositos de Entrada e Saída – Capítulo 5

Figura 8 – iMac.
Disponível em: <http://commons.wikimedia.org/wiki/
IMac#mediaviewer/File:IMac_vector.svg>.

O quadro 5.3 relaciona os principais tipos de memória RAM. Deve-


se destacar aquelas de tipo síncrono, que trabalham sem atraso (delay)
com o processador (CORNACCHIONE, 2012). Outra diferença impor-
tante reside nas memórias RAM estáticas, que mantém os seus dados en-
quanto houver alimentação de energia, e as dinâmicas, que demandam re-
cargas em períodos de poucos milissegundos (NULL & LOBOUR, 2011).

Categoria Geral Tipo


DRAM (Dynamic RAM)
FPM DRAM (Fast Page Mode DRAM)
Principal
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

EDO DRAM (Extended Data Out DRAM)


SDRAM ( Synchronous DRAM)
MDRAM (Multibank DRAM)
Cache SPRAM (Static RAM)
VRAM (Vídeo RAM)
Vídeo SGRAM (Synchronous Graphics RAM)
WRAM (Window RAM)

Quadro 5.3 – Tipos principais de memória RAM


Fonte: Cornacchione (2012, p. 45)

107
Organização de Computadores

5.1.5  Memórica Cache


A UCP processa dados em velocidade consideravelmente maior do
que os mesmos são transferidos entre a memória principal (STALLINGS,
2002). Por isso, o acesso à memória pode frequentemente se tornar um
gargalo do sistema. A ideia de uma memória intermediária entre a UCP
e a memória principal veio da constatação de que 90% do processamen-
to depende de apenas de 10% de código (MURDOCHA & HEURING,
2000). Assim, uma memória pequena poderia 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 pode-
ria ser melhorado de forma significativa.

UCP Memória
Cache Principal

Barramento

Figura 9 – Relação entre UCP e Memória Principal


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

O desafio para que a memória cache seja eficiente é que haja um


bom mapeamento de memória e que realmente os dados mais úteis sejam
armazenados. A memória cache é geralmente mapeada pelos métodos di-
reto, associativo ou associativo por conjunto (NULL & LOBOUR, 2011).

Há algum tempo, o armazenamento secundário era sinônimo de


discos magnéticos, como os disquetes e o disco rígido do computador
pessoal. Este último consiste na verdade em uma série de discos em-
pilhados em uma estrutura a vácuo. Em comum com os disquetes, está
a presença de partes móveis e dependência de um cabeçote para fazer
a leitura dos dados. Essas características acarretam alguma fragilidade
desses sistemas em relação a choques e esse é um dos motivos, além
Proibida a reprodução – © UniSEB

da relativa lentidão, para que as memórias em estado sólido (semicon-


dutores) tenham passado a encontrar mais uso, inclusive como armaze-
namento secundário em laptops (NULL & LOBOUR, 2011).

108
Memória e Dispositos de Entrada e Saída – Capítulo 5

5.2  Dispositivos de entrada e saída E/S


Um computador não processa dados como um fim de si mesmo. Os
usuários precisam indicar que instruções e dados querem processar e os
mesmos usuários devem receber o resultado do processamento. Essa co-
municação se dá pelos sistemas de entrada e saída (E/S), ou, em inglês, In
and Out (I/O) (DELGADO & RIBEIRO, 2009). Não se trata aqui apenas
de transmissão de dados, deve-se ressaltar, mas da própria experiência
que o usuário terá com o dispostivo. Smartphones e tablets com tela mul-
titoque ultrapassaram os computadores pessoais como objetos de consu-
mo justamente por oferecem uma experiência única quanto à interface.
As arquiteturas dos computadores devem fornecer não só portas
físicas para os dispositivos de E/S, mas um mapeamento de memória
adequado e programação de baixo nível para comunicação, tal como em
drivers. Como salienta Monteiro (2007), mouses, teclados, vídeos, micro-
fones possuem formas de sinais e velocidades muito distintas. Além disso,
tais dipositivos não são sincronizados pelo relógio da UCP. Na figura 10,
temos um exemplo de arranjo entre UCP, memória pricipal (MP) e dispo-
sitos periféricos (P1, P2 e P3) por meio de uma interface E/S. Lembrando
que cabe ao controle implementar as operações de leitura e escrita, além
de monitorar o estado de sua execução.

UCP
Memória Principal

Endereço Controle Dados

Controlador E/S

P1 P2 P3
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 10 – Exemplo de arranjo entre UCP, MP, E/S e periféricos


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

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 comu-
nicaçã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 (MONTEIRO, 2007).
109
Organização de Computadores

5.2.1  Métodos de Entrada/Saída


A transação de E/S pode ser feita em dois tipos de interações: má-
quina-máquina ou homem-máquina. A operação de E/S máquina-máquina
ocorre, por exemplo, quando há o armazenamento de dados processados
em discos ou outros dispositivos de memória secundária, com processos
de gravação e leitura de dados. A operação homem-máquina se dá em
qualquer outro caso em que há entradas ou saída de dados no mundo
externo, passível de interação humana. O estudo das possibilidades e tec-
nologias de interação homem-máquina é uma área de estudo específica
dentro da computação.
Quando dizemos que a interação homem-máquina inclui uma co-
municação com o mundo externo, isso pode ser mais complexo do que
parece e incluir interações que não envolvem humanos diretamente. Não
só se consideram médodos de entrada e saída de dados por pessoas, como
teclado, mouse, monitores, impressoras e outros, que costumam ser de-
nominados “periféricos”, mas também entradas por sensores, que podem
captar temperatura, pressão, umidade, sons e muitos outros sinais do mun-
do externo que são úteis para as atividades humanas. Apesar de os senso-
res são permitirem o mesmo tipo entrada de dados que os periféricos, eles
também enviam dados a serem processados pelo conjunto UCP/memória.
Da mesma forma que o processador se comunica com os registra-
dores através do barramento, os dispositivos de E/S (discos, periféricos,
sensores) se comunicam com a memória principal e com o processador
através de barramentos. Os dados são transformados pelo dispositivo em
sinais elétricos que possam ser interpretados pelo processador. Esses si-
nais podem vir dos dispositivos já codificados em forma digital, ou podem
ser recebidos com sinais em formato analógico e, com uma transformação
intermediária, serem convertidos em sinais digitais.
Mesmo que os dados provindos dos dispositivos tenham formato
digital (binário), ainda é necessário fazer o controle do fluxo de dados.
Alguns dispositivos são mais rápidos que os outros, como, por exemplo,
as transmissões de dados de vídeos são muito mais rápidas que as de dis-
cos, que por sua vez são bastante mais rápidas que as de mouse e teclado.
No caso de mouse e teclado, não é importante que a transmissão de dados
Proibida a reprodução – © UniSEB

seja tão rápida quanto a de vídeo, já que a quantidade de dados é menor e


ela depende da entrada de dados por um humano. A transmissão de dados
de discos também tem seu gargalo nos processos de leitura e escrita de

110
Memória e Dispositos de Entrada e Saída – Capítulo 5

dados, que com as tecnologias atuais são mais lentos do que a transmissão
no barramento.
Como é necessário fazer a transformação de dados de dispositi-
vos de E/S, controlar seu fluxo e coordenar o fluxo de dados de diversos
dispositivos, são utilizados Controladores de E/S entre o conjunto UPC/
memória e os dispositivos, os quais também são chamados de Interfaces
de E/S. Na verdade, as interfaces conectam o periférico ao barramento do
computador, enquanto o controlador implementa sua lógica. Por exemplo,
você já teve ter ouvido falar bastante em placas de vídeo para PC, certo?
A placa ou chipset de vídeo é, em parte, um controlador de E/S, que capta
instruções da UCP e transforma em sinais de vídeo a serem exibidos por
um monitor. No entanto, apesar de ser o caso mais amplamente conhe-
cido de controlador, as placas de vídeo modernas possui funções muito
mais amplas, desempenhando tarefas que antes eram realizadas pela UCP,
possuindo uma unidade própria de processamento gráfico e hardware
especializado em aceleração de vídeo e vetores geométricos. Assim, não
podemos dizer que as placas de vídeo são apenas controladoras de E/S,
possuindo funções de processamento adicionais.
Outros controladores de E/S comuns que se pode ouvir no dia-a-
dia do profissional da área são: controlador de discos, controlador USB,
controlador Firewire (padrão competidor do USB), controlador de portas
seriais e paralelas (para mouse, teclado e impressoras em computadores
mais antigos), controlador de rede (ou controlador ethernet, que geral-
mente fazem parte das placas de rede) etc. Esses controladores podem
possuir sua lógica de funcionamento desenhada em seu chip ou até pos-
suir memórias ROM próprias que armazenem tal lógica, mas, atualmente,
é comum que seja necessário utilizar softwares denominados drivers para
que o sistema operacional identifique, se comunique e controle a atuação
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

dos próprios controladores.


A figura a seguir mostra a intermediação realizada entre os disposi-
tivos de E/S e o barramento do sistema. O módulo ou controlador de E/S
possui registradores que se comunicam diretamente com o barramento do
sistema com seus canais:
de endereço, que indica para onde os dados se destinam;
de dados, que transmite os dados de/para o periférico em si;
de controle, que transmite as operações a serem realizadas com os
dados.

111
Organização de Computadores

Barramento
do sistema
Dispositivo E/S

Registrador
Endereço de endereço
Registrador Dados
Dados
de dados
Registrador Dados
Controle de controle

Sinais de
controle

Figura 11 – Exemplo de módulo de interface de E/S e suas conexões. Fonte: Monteiro, 2007.

A lógica do controlador realiza as operações da interface, determi-


nando seu funcionamento. A área de dados é uma espécie de “estoque” ou
buffer, um amortecimento na transitação de dados entre o periférico e o
controlador. Nessa comunicação, dependendo do dispisitivo que se trata,
não há um endereçamento, já que o canal pode ser exclusivo e unidirecio-
nal entre o controlador e o dispositivo.
Depois de discutir tudo isso, podemos classificar os dispositivos de
E/S de outra forma:
Quanto à interação: a interação pode ser com humanos (teclado,
mouse, vídeo), com outros dispositivos (discos de armazenamento de da-
dos) ou com dispositivos remotos (modem e rede);
Quanto à transferência de dados: orientada a blocos (discos - quan-
do conjuntos de dados são transmitidos de uma vez) ou orientada a carac-
teres (terminal, teclado - quando a transmissão é feita por caractere);
Quanto à forma de comunicação com o processador: E/S por pro-
grama (programmed I/O), E/S por interrupção (Interrupt-driven I/O) ou
Direct Memory Access (DMA).
É importante entender melhor a terceira dessas formas de classifica-
ção. A comunicação entre processador e dispositivos de E/S é intermedia-
da pelos controladores, sendo que, nessa transação, o processador precisa
checar quais dispositivos de E/S precisam de atenção para receber ou
Proibida a reprodução – © UniSEB

transmitir dados. Além disso, a comunicação com cada um dos dispositi-


vos é feita pelo do barramento do sistema, através de um endereçamento
de hardware que destinará os dados necessários para cada operação de
E/S.
112
Memória e Dispositos de Entrada e Saída – Capítulo 5

De acodo com Monteiro (2007), como as necessidades de E/S não


são constantes e a velocidade de operação dos diversos dispositivos e do
processador são diferentes, para que essas operações sejam realizadas é
necessário utilizar métodos de controle, havendo três possibilidades:
Entrada/Saída por programa: no qual o processador mantém um
ciclo constante de checagem controlado por software para saber se o con-
trolador de E/S está pronto para transmitir ou receber dados;
Entrada/Saída com o uso de interrupções: em que os controla-
dores de E/S fazem requisições de atendimento quando necessário e o
processador interrompe momentâneamente suas tarefas para atendê-las;
Acesso Direto à Memória (DMA – Direct Memory Access): em
que o controlador de dispositivos transaciona dados diretamente com a
memória principal, sem envolvimento direto do processador até que seja
possível o processamento desses dados.
O uso dessas estratégias é ditado pelas funcionalidade de hardware,
do sistema operacional e de software que podem implementá-las inde-
pendentemente. É importante conhecer cada um desses métodos, princi-
palmente porque desenvolvedores de sistemas podem vir a trabalhar, por
exemplo, com sistemas embarcados ou microcontroladores, que possuem
possiblidades diferenciadas em relação a PCs e servidores. Detalhemos a
seguir cada um dos métodos.

E/S por programa


No primeiro método, de E/S por programa, o processador intera-
ge com os dispositivos através de programas principais, geralmente do
sistema operacional, que executa uma rotina cíclica de questionamento
(pooling) aos dispositivos para saber se eles estão prontos para receber/
transmitir dados, ou se eles estão ocupados com um processamento ante-
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

rior. Isso deve ocorre porque os dispositivos são enormemente mais lentos
que o processador, e cada um possui sua velocidade para diferentes opera-
ções. No entanto, como o processador faz o pooling ciclicamente e, mais
frequentemente, os dispositivos não estão disponíveis, muito da atividade
do processador é desperdiçada com esse método.
O atendimento de requisições de E/S por programa é bastante ine-
ficiente em termos de uso do processador e, por isso, pouco utilizado
atualmente em computadores de uso geral, como PCs e servidores. Mas
esse método é passível de uso em sistemas embarcados. Já ouviu falar de
placas de desenvolvimento como o Arduino? Essas placas rodam apenas
113
Organização de Computadores

um firmware básico que ativa um loop infi-


Conexão:
nito. Elas possuem um conjunto de pinos
Para saber mais sobre o Ar-
para E/S digital ou analógica, chamado duino, acesse <http://www.arduino.
GPIO (Gerenal Purpose Input/Output), cc/> ou a página na Wikipedia para
obter informações em português: <http://
os quais podem ser programados dire- pt.wikipedia.org/wiki/Arduino>
tamente e se ligam a sensores (de luz,
temperatura, movimentos, ultrassom,
infra-vermelho etc.). O programador
determina o ciclo de geração de dados
dos sensores e o processador capta e proces-
sa esses dados infinitamente, até que o aparelho
seja desligado. Nesse caso, apesar de métodos com interrupções poderem
ser programados, não importa muito que os ciclos do processador sejam
desperdiçados, já que a função essencial do aparelho é o processamento
desses dados, e não utilizar outros programas como planilhas, reproduto-
res de vídeo ou navegador de internet.

E/S através de interrupções


O segundo método, de E/S com interrupções, torna o processo mais
eficiente que o primeiro. Nele, ao invés de o processador questionar os
dispositivos o tempo todo por sua disponibilidade, ele executa sua lista de
tarefas normalmente até que uma requisição de interrupção seja emitida
por um dispositivo. Com essa requisição de interrupção, o processador
para suas outras tarefas momentaneamente e atende ao chamada do dispo-
sitivo, em seguida voltando à tarefa que havia suspendido. Logicamente
isso ocorre a uma velocidade altíssima – do ponto de vista do usuário, o
atendimento de interrupções é uma das técnicas que permite que um siste-
ma seja multitarefa, mesmo que o processador possua apenas um núcleo.
Os computadores modernos possuem em seu circuito uma linha de
interrupção no barramento de controle, a qual transmite a requisição de
interrupção dos dispositivos para o processador. Quando recebe a requisi-
ção, o processador executa certos procedimentos para atendê-lo e depois
voltar ao que estava fazendo, o que se chama de mudança de contexto. A
sequência de atendimento foi apresentada no Capítulo 4, aplicada para in-
Proibida a reprodução – © UniSEB

terrupções em geral, as quais são repetidas aqui no escopo de interrupções


de dispositivos de E/S:

114
Memória e Dispositos de Entrada e Saída – Capítulo 5

A UCP salva o contexto em que estava trabalhando, terminando


uma instrução do programa que estava executando, salvando os conta-
dores do programa e o estado de seus registradores – aqui deve haver um
cuidado especial de programação, já que as interrupções de hardware são
assíncronas, podendo chegar no meio da execução de uma instrução;
O procesador identifica o tipo e o hardware de origem de interrup-
ção, obtendo o endereço da Rotina de Tratamento de Interrupção (Inter-
ruption Handler) adequada do vetor que as armazena em memória;
A UCP passa para a Rotina de Tratamento de Interrupção adequada
e a executa;
A Rotina de Tratamento de Interrupção termina;
A UCP restaura o contexto anteriormente interrompido e retorna ao
fluxo principal.
A estratégia de interrupção é mais eficiente que a de pooling do
ponto de vista do uso do processador. Apesar de aumentar a complexidade
de hardware do sistema como um todo, ela livra o processador de gastar
muitos de seus ciclos apenas para questionar os dispositivos se eles neces-
sitam de sua atenção. No caso das interrupções, os dispositivos, sempre
mais lentos, apenas notificam o processador quando necessitarem.

Acesso Direto à Memória (DMA – Direct Memory Access)


Nesse método, o processador inicia uma transferência de dados e
delega a um controlador DMA a comunicação entre os dispositivos de
E/S e a memória principal. Assim, o processador fica livre para executar
suas outras tarefas e apenas recebe uma interrupção do controlador DMA
quando a transferência de dados está completa, evitando, assim, que tenha
que esperar por toda transferência de dados dos dispositivos, os quais são
invariavelmente mais lentos.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

O modos de operação de E/S com DMA dependem de técnicas


complexas, em que a UCP e o controlador DMA compartilham o uso da
memória principal ou do barramento do sistema, cada um com suas van-
tagens e desvantagens. Uma das formas de operação é o “modo transpa-
rente”, em que o controlador DMA apenas utiliza o barramento quando a
UCP não está usando, o que otimiza o uso da UCP, mas pode ser comple-
xo no processo de determinação de quando o processador não está usando
o barramento.

115
Organização de Computadores

5.2.2  Tipos de transmissão de E/S


Como já foi dito no início desse tópico, existem, basicamente, dois
tipos de transmissão de dados entre dispositivos de E/S, suas controlado-
ras e o processador, os quais serão detalhados a seguir:
transmissão serial: utiliza apenas um fio ou canal de comunicação,
com transmissão de bits em uma sequência única
transmissão paralela: utiliza múltiplos canais, com bits sendo trans-
mitidos concomitantemente, em grupos de bits.
Há alguns anos, essa diferença significava que a transmissão para-
lela era mais rápida e era utilizada para dispositivos que exigiam maior
velocidade nesse processo, o que mudou com o passar do tempo. Por
exemplo, antes de mouse, teclado, impressora e outros dispositivos passa-
rem a utilizar comunicações pelas portas USB ou até sem fio, eles usavam
métodos diversos. O mouse e o teclado, assim como o modem, utilizavam
portas seriais do computador, enquanto a impressora usava uma porta pa-
ralela (LPT1).

Transmissão Serial
Com o desenvolvimento das tecnologias envolvidas, em equipa-
mentos modernos a transmissão serial deixou de ser desvantajosa, já que
o fluxo de sua comunicação em série passou a ser bem mais veloz. Um
exemplo claro de como isso pode ocorrer é o caso de fibras óticas, que
transmitem bits em sequência única, mas com velocidade bastante alta em
relação aos cabos de cobre.
Na transmissão serial, tanto o transmissor quanto o receptor (dispo-
sitivo e controlador) devem trabalhar na mesma velocidade de ciclo, de
forma que cada bit possa ser detectado no mesmo intervalo de tempo da
variação da corrente (corrente alta = 1 e corrente baixa = 0). A transmissão
entre dispositivo e controlador é feito em apenas um canal, mas a comu-
nicação entre controlador e UCP através do barramento pode ser feito por
múltiplos canais paralelos; a diferença de velocidade entre ambos os tre-
chos é regulada por um buffer (“estoque” de dados) no controlador.
Na transmissão serial, como os bits são transmitidos um a um, é
necessário utilizar alguma estratégia para identificar quais bits em sequ-
Proibida a reprodução – © UniSEB

ência fazem parte de um conjunto. Por exemplo, em um teclado ou outros


periféricos, é necessário receber pelo menos oitos bits (um byte) que re-
presentam um caractere. Nesse caso, podem ser utilizados bits adicionais

116
Memória e Dispositos de Entrada e Saída – Capítulo 5

que representam o início e o fim de um conjunto de bits de acordo com o


uso desejado. Outro exemplo em que se usa esses dados adicionais para
representar conjuntos de bits é a transmissão em rede de computadores,
como no protocolo ethernet.

Transmissão Paralela
Na transmissão paralela, a cada ciclo um grupo de bits é transmi-
tido, cada bit através de um canal separado, geralmente um conjunto de
fios ou linhas no circuito. Muitos circuitos desenhados na placa dos com-
putadores usam a comunicação paralela. Antigamente, era mais comum
que impressoras, leitores de CR-ROM e discos rígidos (no padrão IDE),
utilizassem cabos de conexão com comunicação paralela.
No entanto, a transmissão paralela cria vários desafios que aumen-
tam seus custos. Além de exigirem mais cabos, que utilizam mais material
e espaço, é necessário utilizar mecanismos que garantam que os bits de
cada ciclo de transmissão cheguem exatamente juntos, fazendo com que
defeitos e falhas fossem mais comuns.
Assim, com a melhoria das tecnologias existentes, a transmissão
serial passou a ser privilegiada e a absorver formas mais rápidas de trans-
missão de dados em sua via única. Com isso, surgiram vários padrões
rápidos de transmissão em série, entre os quais se destacam:
SATA (Serial AT Attachment): para conexão de discos rígidos e lei-
tores de CD/DVD;
USB (Universal Serial Bus): para conexão de periféricos em geral;
FireWire (High Performance Serial Bus/HPSB): uma tecnologia
competidora do USB criada pela Apple.

5.2.3  Discos
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Os discos de armazenamento, ou, de modo mais genérico, os dispo-


sitivos de armazenamento que compõem a memória secundária, também
utilizam operações de E/S para enviar e receber dados para o conjunto
UCP/memória. Os discos também realizam essa comunicação através do
barramento do sistema e partilham as operações de E/S juntamente com
os periféricos e sensores. Apesar de muitas vezes o processo de leitura ou
gravação em disco ser desencadeado pelo usuário do computador, classifi-
camos essa transação de E/S como máquina-máquina.

117
Organização de Computadores

Os tipos mais comuns de dispositivos de armazenamento utilizados


atualmente, os quais você já conhece bem, são os seguintes:
Disco rígido (HD – Hard Disk) interno ou externo;
CD/DVD/Bluray;
Pendrive;
Cartão de memória;
Disco de estado sólido (SSD – Solid State Disk).

É importante levar em conta que, apesar da diversidade de dispo-


sitivos de armazenamento, em hardwares modernos eles utilizam poucos
padrões de comunicação com o barramento. Os dispositivos externos,
em sua maioria, utilizam as portas USB e, portanto, o controlador USB.
Os discos internos (discos rígidos, SSD, e leitores de DVDs) atualmente
utilizam as portas SATA e suas controladoras. Há tecnologias alternativas
mais antigas ou em desenvolvimento, mas elas possuem menor participa-
ção de mercado atualmente.
Os pendrives, cartões de memórias e discos de estado sólidos (SSD)
usam um conceito de armazenamento mais próximo ao da memória RAM,
possuindo células que guardam cargas elétricas que possuem um endere-
çamento de memória. Apesar de os discos de estado sólidos possuírem
esse nome, ele não têm nenhum disco – esse é um nome comercial, já que
eles surgiram para substituir os discos rígidos e já são mais comuns em
notebooks ultrafinos. Diferentemente da memória RAM, esses dispositi-
vos de armazenamento não são voláteis e são mais lentos. Por outro lado,
os SSD são mais rápidos que os discos rígidos tradicionais, e os pendrives
e cartões são mais rápidos que CDs e DVDs. Seus dados são acessados
diretamente através do endereço de memória e não são utilizadas peças
mecânicas que devem se deslocar para isso.
Disco rígidos internos ou externos e os leitores de CD, DVD e Blu-
ray são dispositivos que possuem partes mecânicas. Suas informações
estão gravadas em uma superfície de metal ou resina, de forma magnética
ou sensível à luz. Para que esses dispositivos gravem ou leiam dados, é
necessário que eles girem e um cabeçote leitor se movimente para acessar
a linha em que o dado desejado está gravado. Esse movimento ocorre em
Proibida a reprodução – © UniSEB

velocidades muito altas, mas mesmo assim esses dispositivos são relativa-
mente muito mais lentos em relação ao processador e até à memória prin-
cipal. Por isso é importante que eles trabalhem com buffers intermediados
pelos seus controladores.
118
Memória e Dispositos de Entrada e Saída – Capítulo 5

Apesar de haver uma tendência de que no futuro próximo os discos


rígidos (HD) sejam substituídos pelos SSD, isso ainda pode demorar para
acontecer completamente, já que com as tecnologias atuais os HDs ainda
são bem mais baratos em termos de custo por gigabyte. Por isso é interes-
sante conhecer seu funcionamento mais a fundo.
Os discos rígidos são formados por um ou mais discos constituídos
por material não magnético (alumínio, vidro ou cerãmica) coberto com
uma fina camada de material magnético. Os dados serão gravados nessa
superfície através da organização de pólos magnéticos em espaços mi-
croscópicos – se estiverem orientados para um lado, possuem valor 0, se
estiverem para o outro, possuem valor 1. A gravação de dados é feita por
braços que possuem cabeçotes; enquanto o disco gira a velocidades entre
5.400 e 7.200 rotações por minuto, o cabeçote se move na perpendicular
para ler e gravar em trilhas que medem milésimos de milímetros. Se você
acha todos esses números impressionantes, isso é com razão, pois a preci-
são dos discos rígidos os tornam tecnologias extraordinárias. A Figura 12
mostra um disco rígido aberto.
EEVLVA / DREAMSTIME.COM
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Figura 12 – Disco rígido com sua caixa de proteção aberta. Observe os discos e cabeçotes
paralelos.

Em seu interior, é possível ver seus discos paralelos e os braços com


cabeçotes, os quais fazem leitura e gravação. Os braços são movimenta-
dos por um sistema de molas e imãs potentes que os fazem ter rápidez e
precisão. Veja na figura que para cada disco há braços e cabeçotes para-

119
Organização de Computadores

lelos, os quais não se movimentam inde-


Conexão:
pendentemente. Para a leitura de dados
Se você tem curiosidade em
em cada disco, os cabeçotes devem se saber como o disco rígido funciona
movimentar conjuntamente e a leitura por dentro, veja esse vídeo de uma HD
aberto e em funcionamento: < http://youtu.
é feita em um por vez. Além disso, be/4sz4VHCj2Ho>
os discos são graváveis em seus dois
lados (superfícies superior e inferior),
havendo braços e cabeçotes invertidos
para isso.
A organização e endereçamento dos
dados gravados nos discos são divididos nos se-
guintes componentes:
Trilha: é cada linha circular na superfície de um disco, onde os
dados são gravados. Logicamente, as trilhas mais externas no disco são
maiores que as internas por possuírem maior diâmetro;
Cilindro: o cilindro é a posição vertical a que pertencem as trilhas
de vários discos, isto é, cada disco possui, em suas superfícies, trilhas que
pertencem ao mesmo cilindro por estarem exatamente uma sobre a outra,
mesmo que em diferentes discos. Esse conceito é utilizado para endereça-
mento de dados;
Setor: É um pequeno trecho de uma trilha, o qual tradicionalmente
possui comprimento de 512 bytes em HDs. Atualmente há discos rígidos
que adotam um novo formato, chamado Advanced Format, que aumenta
a eficiência para arquivos grandes com setores de 4.096 bytes. Os CDs e
DVDs utilizam setores de 2048 bytes. Arquivos maiores que esses tama-
nhos, os quais costumam ser a maioria, são divididos em diversos setores,
os quais podem não estar gravados em sequência – isso é o que se chama
fragmentação.

5.2.4  Estratégias de Atendimento de Requisições:


Escalonamento de Disco
Os discos utilizam o que se chama de operações de E/S por bloco
para transmitir e receber dados, além de também realizarem gravações de
Proibida a reprodução – © UniSEB

dados em blocos. Esses blocos são sequências de bytes que geralmente


têm um tamanho máximo e compõem uma estrutura de dados a serem li-

120
Memória e Dispositos de Entrada e Saída – Capítulo 5

dos, gravados, armazenados em buffer e transmitidos para UCP/memória


para processamento. O uso dessa estrutura de blocos tem o propósito de
acelerar o fluxo de dados com os discos e otimizar o tempo de leitura e
escrita nos dispositivos de armazenamento.
O escalonamento de disco ou escalonamento de E/S, o qual é imple-
mentado pelo sistema operacional, é necessário para que a comunicação
de dados seja eficiente. Trata-se de uma operação baseada em algoritmo
que decide a ordem em que os dados devem ser enviados ou obtidos do
disco com a finalidade de:
reduzir o número de movimentações do cabeçote de leitura;
priorizar as requisições dos processos de E/S;
permitir que todos os processos tenham oportunidade de realizar sua
operação de E/S;
permitir que certas operações de E/S cumpram seus prazos.

Para que isso ocorra, o escalonador de E/S é baseado em algum tipo


de algoritmo que regula o fluxo de blocos de dados e os ordena, por exem-
plo, de forma que o cabeçote de leitura do disco não busque aqueles que
componham a mesma sequência de dados, mas os que estão mais próxi-
mos primeiro. O algoritmo depois deve reordenar os dados para fornecer
os blocos de acordo com o escalonamento.

Assim, podemos perceber que é possível implementar escalonado-


res com algoritmos mais simples ou mais complexos, os quais pode ser
divididos em três categorias de estratégias:
Estratégias baseadas na ordem dos pedidos;
Estratégias baseadas na localização;
Estratégias baseadas na localização segmentada.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

A primeira estratégia, baseada na ordem dos pedidos, fundamenta


seu funcionamento na sequência em que os dados são recebidos. Por sua
vez, essa estratégia pode ser dividida em diferentes algoritmos:

FiFo (First In First Out): significa “o primeiro a entrar é o primeiro


a sair”, ou seja, o pedido que chegar primeiro também será o primeiro a
ser atendido. Esse é o mais simples possível, atendendo a ordem de che-
gada;

121
Organização de Computadores

LiFo (Last In First Out): que quer dizer “último a chegar é o pri-
meiro a sair”. Nesse caso, os processos que fazem requisições rápidas e
chegam por último serão atendidos com velocidade, sem ficarem presos
na fila, podendo reduzir o movimento do cabeçote. Por outro lado, o pro-
blema são os processo de requisições demoradas, que podem demorar
muito mais a serem atendidos, o que pode causar o que se costuma cha-
mar de starvation, ou seja, pode deixar um processo “passar fome” e criar
problemas de funcionamento;

Prioridade: como o nome diz, dá prioridade para alguns processos


essenciais e que devem ser atendidos rapidamente. Dependendo da situ-
ação, processos de baixa prioridade também podem sofrer de starvation,
ficando muito tempo sem atendimento.

As estratégias baseadas em localização procuram implementar


algoritmos que levam em conta o local em disco que os blocos de dados
estão gravados

SSTF (Shortest Service Time First): significa “menor tempo de


atendimento primeiro”, também é conhecido como Shortest Seek (busca
mais curta) ou Service Time First (tempo de serviço primeiro). Esse algo-
ritmo ordena a fila de requisições de forma que aquelas que minimizem o
movimento do cabeçote de leitura sejam atendidas primeiro. Cria o risco
de que dados gravados nas extremidades dos discos demorem a serem li-
dos e então crie uma situação de starvation;

Scan: também conhecido como “elevador”, por imitar o movimento


de um elevador de um prédio. Quando o disco está em descanso e recebe
sua primeira requisição, o cabeçote se movimenta até o ponto do dado
solicitado e a partir daí atende as requisições na mesma ordem de movi-
mento, indo a uma extremidade do disco, e depois voltando para a extre-
midade contrária, fazendo leituras e gravações no caminho;
Proibida a reprodução – © UniSEB

122
Memória e Dispositos de Entrada e Saída – Capítulo 5

C-Scan: o nome vem de Circular Scan, mas também é conhecido


como “algoritmo de elevador circular”, é parecido com o Scan, mas ape-
nas faz leituras/gravações durante o movimento do cabeçote em um sen-
tido. Quando ele chega à extremidade, volta rapidamente à extremidade
contrária sem fazer leitura alguma e recomeça o processo.

As estratégias baseadas na localização segmentada são parecidas


com as anteriores, mas ao invés de gerenciar apenas uma fila de requisi-
ções, as divide em mais filas e utiliza algoritmos que baleanceiam os seus
atendimentos. Os principais algoritmos desse tipo são:

N-step-Scan: divide as requisições em filas de tamanho N e cada


fila é atendida em conjunto por sua vez. Se, durante a operação, mais
requisições vão chegando, elas são colocadas em novas filas. Como resul-
tado, o braço de leitura do disco faz um Scan para cada fila por vez, evi-
tando que a chegada de novas requisições atrasem a chegada do cabeçote
à extremidade do disco e cause starvation. Se o valor de N é grande, então
a fila será grande também e provavelmente ela nunca será preenchida,
pfazendo com que o algoritmo funcione como o Scan. Se a fila tem apenas
tamanho (N) igual a 1, então cada requisição será atendida à medida que
chega e o algoritmo se comportará como o FiFo.

FSCAN: é parecido com o N-setp-Scan, mas apenas utiliza duas


filas. Enquanto uma fila é atendida, novas requisições são adicionadas à
outra. Quando a primeira termina, as requisões da segunda passam a ser
atendidas e vice-versa. O objetivo é o mesmo do método anterior, que é
criar um balanceamento e evitar starvation.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

Existem outras estratégias além dessas, as quais tendem a ser varia-


ções dos mesmos algoritmos incluindo sofisticações. A escolha das estra-
tégias a serem implementadas em um sistema operacional vão depender
principalmente do tipo de uso que se faz dos discos: tipos de processos,
tamanho de arquivos e quantidades de leituras/gravações. O uso para um
computador caseiro é diferente do uso de servidores de aplicativos empre-
sariais, os quais, por sua vez, funcionam diferentemente de servidores de
bancos de dados.

123
Organização de Computadores

5.3  Tipos de Computadores


A seguir serão apresentados brevemente os tipos principais de com-
putadores. Busque identificar para cada um deles, a partir do texto e de
pesquisa, quais são os dispositivos de entrada e de saída.

5.3.1  Computadores pessoais


São os chamados computadores de mesa (desktop) ou microcom-
putadores. Esta linha de computadores é usada para tarefas rotineiras,
domésticas ou em escritórios. Uma variação deste tipo de computador que
é usada para serviços mais avançados são as estações de trabalho (works-
tations). São PCs com configuração muito mais robusta.

GOCE / DREAMSTIME.COM

Figura 13 – Uma Workstation PC

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. Atualmente existem notebooks com configurações tão ro-
bustas 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 chamados netbooks. Planejados para portabilidade e
Proibida a reprodução – © UniSEB

navegação na Internet em qualquer 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 ativida-
des em sala.
124
Memória e Dispositos de Entrada e Saída – Capítulo 5

KMTHEMAN / DREAMSTIME.COM

Figura 14 – Um notebook versus um netbook

5.3.3 Computadores handheCd


O handheld, também chamado de PDA (Personal Digital Assistant),
foi criado originalmente para controlar agendas de compromissos, informa-
ções pessoais, catálogo de endereços e telefones. Geralmente acessados por
meio de uma caneta gráfica, possuem tela sensível ao toque, sendo possível
escrever sobre ela.
Estes computadores evoluíram e passaram a ter suas funcionalida-
des integradas em celulares, surgindo o chamado smartphone. Um smar-
tphone é basicamente um celular com funções de um PDA.

Um dos smartphones mais procurados e mais desejados desde o seu


lançamento é o Iphone, da Apple.
DAVIDARTS / DREAMSTIME.COM

YOSHIKAZU TSUNO / AFP


EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

HYSIDE / DREAMSTIME.COM

Um computador ultraportátil, o popular IPhone e um handheld da Compac.

125
Organização de Computadores

5.3.4  Supercomputadores
São os mais caros e mais poderosos computadores. Usados para
grandes simulaçõ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 governo para tarefas que envolvam gigantes-
ca manipulação de dados.
LEROY N. SANCHEZ, RECORDS MANAGEMENT / MEDIA SERVICES AND OPERATIONS / WIKIMEDIA

Figura 15 – Supercomputador RoadRunner

Atividades
01. Qual é a diferença das memórias RAM e ROM?

02. Uma operação de leitura de memória envolve no mínimo quantos re-


gistradores?

03. O que é a memória cache?

04. Qual a diferença entre o método de acesso direto e por associação?

05. Qual é a relação entre o processador e a memória RAM?


Proibida a reprodução – © UniSEB

126
Memória e Dispositos de Entrada e Saída – Capítulo 5

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 natureza muito próxima e intí-
ma com o usuário. Quais serão os caminhos de desenvolvimento dos com-
putadores, 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?

Leitura recomendada
Livro: SCHMIDT, E.; COHEN, J. A Nova Era Digital. Rio de Janeiro: Intrín-
seca, 2013.

Referências bibliográficas
APPLE. Compare Mac models. Website. 2014. . Disponível em: <ht-
tps://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.

CORNACCHIONE JR., E. B. Informática. São Paulo: Atlas, 2012.

DELGADO, J.; RIBEIRO, C., Arquitetura de Computadores, 2ª edi-


ção, LTC, , 2009.

LAUDON, K. C. e LAUDON, J. P. Sistemas de Informação Gerenci-


ais. São Paulo: Prentice Hall. 2007.
EAD-14-Organização de Computadores – Proibida a reprodução – © UniSEB

LINZMAYER, O. W. Apple Confidential 2.0 – The definitive history


of the world’s most colorful company. São Francisco: No Starch,
2004.

MONTEIRO, M. A. Introdução à Organização de Computadores.


5a ed. São Paulo: LTC, 2007.

MURDOCA, M. J.; HEURING, V. P. Introdução à Arquitetura de


Computadores. Rio de Janeiro: Campus, 2001.
127
Organização de Computadores

NULL, L.; LOBUR, J. Princípios Básicos de Arquitetura e Orga-


nização de Computadores. 2a ed. Porto Alegre: Bookman, 2010.

PIVA JR., D.; NAKAMITI, G. S.; ENGELBRECHT, A. M.; BIAN-


CHI, F. Algoritmos e Programação de Computadores. Rio de Janei-
ro: Elsevier, 2012.

STALLINGS, W. Arquitetura e Organização de Computadores.


São Paulo: Prentice Hall, 2002.
Proibida a reprodução – © UniSEB

128

Potrebbero piacerti anche