Buscar

organização e arquitetura resumo completo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Organização e Arquitetura de computadores
1 – Processamento de Dados e Estrutura Básica do Computador.
1 Processamento de Dados e Estrutura Básica do Computador
1.1 Organização e arquitetura de computadores
A organização dos computadores trata da estrutura dessas máquinas, preocupando-se com os componentes físicos. Ou 
seja, busca-se saber como se dá o funcionamento do computador. Já a arquitetura dos computadores fornece elementos 
críticos a serem usados pelo programador.
Por mais simples ou complexa que seja a estrutura de um computador, a sua função básica é o processamento de dados.
1.2 Processamento de dados, Informação e Conhecimento
Dados são 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.
Processamento é a transformação de dados em informação.
Informação é o conjunto de dados organizado de maneira que “faça sentido” àqueles que o estiverem lendo.
Conhecimento tem uma aplicação. A informação associa-se à semântica, enquanto o conhecimento está associado à 
pragmática, ou seja, algo existente no mundo real.
1.3 Breve histórico dos computadores
O primeiro computador de grande porte a usar eletrônica digital foi o ENIAC desenvolvido por John Eckert e John 
Mauchly em 1943, com financiamento militar. Em 1944, juntou-se ao grupo de pesquisadores o engenheiro John Von 
Neumann.
Usava códigos numéricos. Foi produzido usando a tecnologia de válvulas a vácuo. É o marco da Primeira Geração de 
Computadores.
A era da computação comercial iniciou-se em 1951, quando o UNIVAC foi entregue ao primeiro cliente. Pode-se dizer 
que o UNIVAC foi o resultado de modificações positivas no ENIAC.
Em 1947, os cientistas John Bardeen, Walter H. Brattain e William Shockley desenvolveram o transistor. 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. Esta foi chamada a segunda geração dos computadores.
Entre 1965 e 1970, surgiu o Circuito Integrado (CI). Em 1965, os CIs começaram a substituir os transistores nos 
computadores e aí nós tivemos os Computadores de Terceira Geração.
O marco importante desta terceira geração foi o lançamento do computador da série IBM 360 em 1964. Foi uma série 
com o intuito de inserir o uso de computadores nos negócios e em operações comerciais.
Já a quarta geração de computadores, com início na década de 1970, traz consigo a criação do microprocessador.
O primeiro computador pessoal que foi disponibilizado ao público em geral foi o MITS Altair, produzido em 1975.
A evolução na velocidade dos microprocessadores é tida para alguns como a quinta geração dos computadores. O marco
seria o microprocessador Intel 386, que permitia a execução de várias tarefas ao mesmo tempo.
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!
Em 1981, a IBM lançou seu primeiro computador pessoal e capturou a maior fatia de mercado em 18 meses. A 
Microsoft forneceu o sistema operacional para o computador pessoal 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.
1.4 Visão geral do computador pessoal
O hardware de seu computador pessoal precisa dos seguintes componentes para um efetivo funcionamento:
• dispositivos de entrada;
• dispositivos de saída;
• dispositivos de armazenamento secundário;
• unidade de processamento.
As informações são inseridas no ambiente computacional por meio dos dispositivos de entrada. Estas informações de 
entrada são armazenadas na memória, e a unidade central de processamento (UCP) realiza o devido tratamento destas. 
Após isto, dispositivos de saída podem exibir o resultado do processamento.
Além disso, existem componentes que permitem a gravação de dados de maneira permanente e também o intercâmbio 
de dados. Estes dispositivos são chamados de dispositivos de armazenamento secundário.
A UCP representa toda a unidade que faz o processamento, mas não é um único componente, pois reúne diversos 
outros.
Ainda existem os Dispositivos 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 Von Neumann
A arquitetura de Von Neumann é a base da construção da principal arquitetura dos computadores modernos, os Pcs.
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.
1.6 Construção de algoritmos simples
Algoritmos são conjuntos sistemáticos e formalizados de instruções voltados para resolução de um problema (PIVA JR. 
et al, 2012).
1.6.1 Indicação de ambiente de desenvolvimento
O programa VisuAlg é muito indicado para programadores iniciantes, uma vez que possui uma interface simplificada e 
de fácil compreensão. O ambiente VisuAlg utiliza a extensão .alg para representar os arquivos com algoritmos.
1.6.2 Estrutura básica de um algortimo
Segundo Forbellone (2005), um algoritmo é uma sequência de passos que visa atingir um objetivo bem definido. Você 
pode entender o termo algoritmo como um conjunto de passos que busca a solução de um problema.
Em geral, os algoritmos são utilizados para abstrair1 problemas do mundo real, e transformá-los em soluções no mundo 
computacional.
No ciclo de vida do desenvolvimento de um programa, o primeiro estágio é a elaboração da representação algorítmica.
Um algoritmo computacional pode ser representado por pseudocódigos, português estruturado ou portugol.
2 Representação de Dados
2.1 Elementos binários fundamentais: bits, bytes e words.
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 eletrônicos se baseia na linguagem binária 
(LAUDON & LAUDON, 2007; CAPRON & JOHNSON, 2004).
A representação desses dois dígitos foi convencionada como sendo 0 ou 1.
Bit é um dígito binário; Bytes é o conjunto de 8 bits; word é o número convencionado de bits adjacentes.
2.2 Bases numéricas
2.2.1 Base decimal
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
Os números acima podem ser reescritos como em termos de potências de 10, lembrando que qualquer potência elevada 
zero é igual a 1:
15 = 1x101 + 5x100
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.
2.2.2 Base binária
Como sabemos, é mais adequado implementar dados em base binária no computador.
(14)10 = (1 1 1 0)2 = (1x23) + (1x22) + (1x21) + (0x20)
= 8 + 4 + 2 + 0 = 14
Assim como é possível somar e subtrair usando o sistema decimal, é possível fazer as opções aritméticas com o sistema 
binário, incluindo números de ponto flutuante.
2.2.3 Base hexadecimal
Esse sistema possui o número 16 como base e é indicado por contração “hex”.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D E F
Diversas 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 quatro dígitos hexadecimais. A cor 
azul primária, por exemplo, é representada por “#0000FF”.
2.2.4 Conversão entre bases
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.
•Dividindo-se 9 por 2, temos 4 com resto 1.
• Dividindo-se 4 por 2, temos 2 com resto 1.
• Dividindo-se 2 por 2, temos 1 com resto 0, para converter precisamos fazer mais uma divisão.
• Atenção: dividindo-se 1 por 2, considera-se o resultado 0 com resto 1.
Usando os restos, na ordem da esquerda para a direita, temos: (9)10 = (1001)2
2.3 Representação de caracteres
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).
Assim, usando esse padrão, um sistema computacional 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 alfabetos além do latino e caracteres especiais, fez com 
que os construtores de hardware e desenvolvedores de software ampliassem os caracteres definidos. Nesse contexto, 
destaca-se o padrão Unicode.
2.4 Tipos de dados e uso de variáveis em algoritmos
Para manipulação de informações nos algoritmos é necessário a utilização de um recurso denominado variáveis que é 
um elemento sintático do algoritmo que tem como funcionalidade armazenar um determinado valor.
De acordo com o tipo de informação que será armazenado, é necessário especificar o tipo que será a variável (inteiro, 
real, caractere, booleanos).
Uma variável deve obrigatoriamente iniciar como um caractere literal, não podem conter espaços, não utilizar caracteres
especiais nem acentos.
O termo computacional que indica o armazenamento de um valor em uma variável é atribuição.
3 – Álgebra Booleana e Operações Lógicas em Algoritmos
3.1 Álgebra booleana
Segundo Linda Null e Julia Lobur, a álgebra booleana é “uma álgebra para a manipulação de objetos que podem 
assumir somente dois valores, normalmente verdadeiro ou falso” (NULL & LOBUR, 2011, p. 141).
3.1.1 Origens
A álgebra booleana é fruto da formalização do pensamento lógico realizada por George Boole, um grande matemático
inglês.
Uma ilustração simples da álgebra booleana pode ser dada avaliando as três afirmações abaixo:
Afirmação 1: Ana foi ao cinema.
Afirmação 2: Paulo foi ao show.
Afirmação 3: Ana foi ao cinema E Paulo foi ao show.
Para a afirmação 3 ser verdadeira, tanto a afirmação 1 quanto a 2 devem ser também.
Desse modo, basta uma única afirmação ser falsa para a conclusão também o ser na tabela-verdade E.
Podemos ainda explicar mais um operador lógico a partir da seguinte 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 verdadeiras, mas também caso somente uma delas seja.
Desse modo, basta que uma das afirmações seja verdadeira para a conclusão o ser também na tabela-verdade OU.
3.1.2 Operador E (Conjunção ou AND)
Uma expressão com operador E resulta 1 somente se as suas entradas forem todas iguais a 1.
p . q → p E q
Chama-se essa expressão também de produto booleano, ou multiplicação lógica.
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.
p +q → p OU q
Essa expressão também é nomeada de soma booleana, ou adição lógica.
3.1.4 Operador Negação (Inversão ou NOT)
Esse operador simplesmente inverte a entrada. a notação de “p negado” é: ~p
3.1.5 Operadores XOR, NOR, NAND
Os operadores AND, OR e NOT podem ser combinados e aplicados sucessivamente a entradas.
Disjunção exclusiva (XOR)
O resultado dessa operação é 1 se, e somente se, apenas uma das entradas for 1.
NEM (NOR)
O resultado dessa operação é 1 se, e somente se, todas as entradas forem 0.
NOU (“Não... e...”, NAND)
O resultado dessa operação é 1 se pelo menos uma entrada for 0.
3.2 Portas lógicas
Há símbolos gráficos para cada operador, chamadas portas lógicas. Na tabela a seguir, as entradas são representadas 
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.
Para fins didáticos, tratamos de operações, portas lógicas e símbolos com apenas duas entradas.
3.3 Operações aritméticas e lógicas em algoritmos
A seguir, vamos mostrar operações aritméticas e lógicas implementadas em algoritmos simples, usando o visualg.
3.3.1 Comandos de entrada e saída
Para leitura de informações, o comando utilizado para entrada de dados é conhecido como leia. Por outro lado, para a 
apresentação de uma informação na tela é utilizada um comando de saída específico denominado escreva.
3.3.2 Operações e expressões
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
Neste grupo, os principais operadores utilizados são soma (+), subtração (–), multiplicação (*), divisão (/) e resto da 
divisão (%).
3.3.4 Expressões relacionais
Quando construímos algoritmos é muito comum a necessidade de comparar, ou estabelecer relações entre determinados 
operandos. Os operadores relacionais conhecidos são:
• maior (>)
• menor (<)
• menor ou igual (<=)
• maior ou igual (>=)
• igual (=)
• diferente (<>).
Em uma expressão relacional o resultado produzido pela avaliação da expressão é sempre um valor lógico.
3.3.5 Expressões lógicas
Para criação de uma expressão lógica é necessário utilizar operadores booleanos, em que os principais são:
• negação (NOT)
• conjunção1 (E)
• disjunção (OU)
• disjunção-exclusiva (XOR)
4 – Instruções e Processamentos
Neste capítulo, vamos entender melhor o que são instruções e quais são os seus tipos.
4.1 Componentes fundamentais para o processamento
Segundo Null e Lobur, a UCP “é responsável por carregar instruções de programas, decodificar cada instrução 
carregada e realizar a sequência indicada de operações sobre os dados corretos” (2010, p. 208).
Registradores
São componentes de hardware que guardam dados binários relativos a dados, endereços de memórias e informações de 
controle. Não devem ser confundidos com os dispositivos de armazenamento do computador, pois são internos à UCP
Unidade de Aritmética e Lógica (UAL)
As operações matemáticas e de álgebra booleana são executadas pela UAL.
Unidade de Controle
Essa unidade é responsável por manipular os registradores adequadamente e ativar a UAL para as operações requeridas 
na ordem correta. Cabe ainda à Unidade de Controle executar interrupções e monitorar o estado das operações.
Relógio
A frequência desse dispositivo sincroniza todo o sistema computacional. Os registradores podem ser carregados com 
outros 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 externos.
Barramento
Conjunto de vias de transmissão de dados, instruções de controle e energia para comunicação entre periféricos.
4.2 Instruções de computador
4.2.1 Estrutura e tipos
Cada tipo de processador é capaz de executar um determinado conjunto de instruções (MURDOCCA & HEURING, 
2000). Esse fato ajuda a explicar os problemas de compatibilidade entre arquiteturas de computadores, pois elas 
possuem conjuntos diferentes.
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, é usualmente simbolizada por ADD.
• Referência aos operandos de entrada: dados que serão processados, endereços de memória, entre outros.
• Referência aos operandos de saída: resultado da operação.
• Endereço da instrução seguinte.
4.2.2 Ciclo de instrução e interrupção
Os computadores de hoje não mais realizam uma instrução só por vez. O modelo atualmente empregado usa o métodode pipelining, em que as instruções são executadas de forma paralela. Por esse método, as instruções são dividas em 
etapas, permitindo que a UCP armazene e execute diversas instruções por vez. Outro ponto positivo desse método, é 
que são armazenadas continuamente etapas de instruções nos registradores, evitando que se espere para buscá-las na 
memória principal, um procedimento mais lento. Como desvantagem do pipelining, está a maior complexidade do
controle da instruções, o que pode implicar conflitos e problemas de fluxos de memória (MURDOCCA & HEURING, 
2000).
Overflow aritmético acontece quando o resultado matemático de uma operação ultrapassa o valor designado de memória
e/ou o formato designado de sua variável.
Qualquer ciclo que envolva instruções, pode ser interrompido por causa diversas (NULL & LOBUR, 2010): Instruções 
de entrada e saída; Erros em operações aritméticas; Problemas de hardware; Instruções inválidas.
4.3 Aspectos de arquitetura nos computadores pessoais
Nesta seção, vamos explorar aspectos mais visíveis em nossos computadores de uso cotidiano.
4.3.1 Placa-mãe
A placa-mãe realiza a comunicação e dá suporte físico aos componentes do computador. Estas possuem conjuntos de 
circuitos integrados (chipsets) que fazem a comunicação entre o processador, a memória e o controle de periféricos.
4.3.2 Software e instruções
Por meio do software, o hardware recebe instruções detalhadas que dizem ao computador o que deve ser feito. Os dois 
tipos de software hoje existentes são o software de sistema e o software aplicativo.
O software de sistema inclui os sistemas operacionais, os tradutores de linguagem e os programas utilitários. Os 
softwares aplicativos incluem as linguagens de programação, as linguagens de quarta geração e os pacotes de software .
São software para utilização do usuário final.
4.3.2.1 Software de sistema
O software de sistema operacional é aquele que “conversa” com o hardware e manipula seus recursos. 
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 facilidade para trabalhar.
Um sistema operacional é uma coleção de outros softwares que gerenciam todos os dispositivos do computador. Em 
geral, ele possui os seguintes componentes: gerenciador (escalonador) de processos; gerenciador de memória; 
gerenciador de entrada e saída; gerenciador de sistema de arquivos.
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.
4.3.2.2 Tradutores de linguagem
Os softwares de tradução convertem o código escrito numa linguagem de programação para a linguagem de máquina 
que será compreendida pelo hardware e usará recursos administrados pelo sistema operacional.
Já os programas utilitários são aqueles que auxiliam o usuário na configuração e no gerenciamento do sistema 
operacional de seu computador.
4.3.2.3 Linguagens de programação
A linguagem de programação serve para representarmos as instruções que um programa deve realizar para alguma 
tarefa. Porém o computador entende apenas sinais elétricos (binários) e para que a comunicação seja possível 
necessitamos de um tradutor que precisará converter o que você quiser para a linguagem de computador. Em 
computação, esse tradutor é chamado de compilador, e a conversão de uma linguagem em outra é chamada de processo 
de compilação.
4.3.2.4 Linguagens de quarto nível
As linguagens de quarta geração consistem num conjunto de diversas ferramentas de software para auxiliar os usuários 
finais no desenvolvimento de softwares aplicativos sem necessitar tanto de conhecimentos mais técnicos. Não são 
procedurais, mas sim orientada a objetos.
4.3.2.4.1 Lei de Moore
A lei de Moore surgiu em 1965 através de um conceito estabelecido por Gordon Earl Moore. Tal lei dizia que o poder de
processamento dos computadores (entenda computadores como a informática geral, não os computadores domésticos) 
dobraria a cada 18 meses. Vale frisar que de modo algum Gordon queria se referenciar a sua empresa (Gordon é co-
fundador da Intel), pois ele não havia como ter certeza que a empresa conseguiria evoluir em tal ritmo.
Não há como dizer que esta lei vá perpetuar por muito mais tempo, mas até agora ela tem sido válida.
5 Memória e Dispositivos de Entrada e Saída
A UCP precisa ter dados e instruções disponíveis para que possa cumprir a sua função. A fonte imediata de dados para a
UCP encontra-se nos registradores, que são componentes internos à unidade. Os registradores se caracterizam pela 
rapidez com que se comunicam com o processador, porém eles possuem uma capacidade limitada de armazenamento e 
outros componentes de memória também precisam ser utilizados.
5.1 Memória
5.1.1 Hierarquia
Os diversos tipos de memória são definidos em termos da sua relação com a UCP. Quanto mais direta for essa relação, 
considera-se maior a sua posição hierárquica.
Deve-se notar que discos rígidos são considerados como armazenamento externo ou secundário. 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.
Deve-se notar que quanto mais alto estiver na hierarquia, mais custoso tende a ser o dispositivo.
5.1.2 Características dos dispositivos de memória
Como a qualidade dos sistemas computacionais depende do desempenho dos seus dispositivos de memória, é 
importante termos métodos para avaliá-los. Stallings identifica três fatores fundamentais: Tempo de acesso; Tempo de 
ciclo de memória (intervalo requerido para que um acesso possa suceder o outro) e Taxa de transferência (bits).
Também é preciso considerar a taxa de acerto, taxa que reflete quantas vezes o dado requerido esteve no nível 
especificado da memória em relação ao total de requisições.
A memória interna também é subdivida em termos de comunicação com a UCP.
Retomando o modelo de Von Neumann, a UCP precisa ser alimentada rápida e diretamente com dados e instruções. 
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 barramento.
 
Em linguagens de programação como C++, um ponteiro armazena o endereço da posição de um dado na memória, servindo para 
referenciá-lo.
A partir dos componentes acima, podemos descrever as duas operações básicas da memória: leitura e escrita.
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.
5.1.4 Memória RAM
Nos computadores convencionais, o papel da memória principal é desempenhado pela memória RAM e parcialmente 
pela memória ROM. A memória RAM (memória de acesso randômico) serve para armazenar dados de trabalho do 
processador. Esta é uma memória volátil.
O quadro relaciona os principais tipos de memória RAM. Deve-se destacar aquelas de tipo síncrono, que trabalham sem
atraso (delay) com o processador. Outra diferença importante reside nas memórias RAM estáticas, que mantém os seus 
dados enquanto houver alimentação de energia, e as dinâmicas, que demandam recargas em períodos de poucos 
milissegundos.
5.1.5 Memórica Cache
Uma memória pequena capaz de armazenar os dados usados com mais frequência. Como essa memória tem 
comunicação direta e rápida com a UCP, o desempenho do computador pode ser melhorado de forma significativa.
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 direto, associativo ou 
associativo por conjunto (NULL & LOBOUR,2011).
5.2 Dispositivos de entrada e saída E/S
A comunicação entre usuário e computador se dá pelos sistemas de entrada e saída (E/S), ou, em inglês, In and Out 
(I/O).
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.
A transmissão de dados entre a interface do periférico e a memória/UCP pode se dar por formas bem distintas. Na 
transmissão serial, a comunicação se dá por uma linha única e, assim, um bit é transmitido de cada vez. Via de regra, a 
interface possui um buffer de forma a regular o fluxo e ritmo da transmissão. Na transmissão paralela, um conjunto de 
bits é repassado de uma só vez (MONTEIRO, 2007).
5.3 Tipos de Computadores
A seguir serão apresentados brevemente os tipos principais de computadores.
5.3.1 Computadores pessoais
São os chamados computadores de mesa (desktop) ou microcomputadores. Uma variação deste tipo de computador que 
é usada para serviços mais avançados são as estações de trabalho (workstations).
5.3.2 Notebooks
Estes computadores são mais leves, projetados para o uso portátil. Os netbooks são uma variação dos notebooks.
5.3.3 Computadores handheld
Também chamado de PDA (Personal Digital Assistant), são acessados por meio de uma caneta gráfica, possuindo tela 
sensível ao toque, sendo possível escrever sobre ela. Um smartphone é basicamente um celular com funções de um 
PDA.
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 gigantesca manipulação de dados.

Outros materiais