Algoritmos e Estruturas de Dados I IEC012

Estrutura do Computador

Prof. Raimundo Barreto
rbarreto@icomp.ufam.edu.br www.icomp.ufam.edu.br/rbarreto/aed1.html

Introdução

O que diferencia o computador de outras máquinas ou utensílios? R: As outras máquinas têm uma finalidade bem específica. Qual a finalidade de um liquidificador? Quantos botões são necessários?

Introdução

O computador tem múltiplas finalidades e funções: pode ser utilizado para fazer cálculos, para escrever textos, para armazenar e organizar os dados cadastrais dos clientes de uma loja, etc.

Introdução

Para operar uma máquina com essa Para operar uma máquina com essa característica, não bastam alguns característica, não bastam alguns botões. É preciso utilizar um programa, botões. É preciso utilizar um programa, que permita ao usuário da máquina que permita ao usuário da máquina especificar o que ele deseja. especificar o que ele deseja.

Computador

É um conjunto de componentes eletrônicos capazes de efetuar diversos tipos de tratamento automático de informações ou processamento de dados. Dividido em hardware e software

Hardware

É a parte física do computador, ou seja, é o conjunto dos componentes elétricos, eletrônicos, eletromagnéticos e mecânicos que se comunicam através de barramentos.

Software

É a parte lógica do computador, é o conjunto de instruções ou programas que direcionam o hardware para a solução de problemas. Software básico e aplicativos

Dispositivos de Entrada e Saída

Entrada: teclado, mouse, câmeras, microfone, scanner, joystick, leitora de código de barras, … Saída: monitor de vídeo, impressora, alto-falante, modem, ...

Memórias

RAM (Random Access Memory)
● ● ● ●

Leitura e escrita Acesso rápido Acesso aleatório Volatidade

ROM (Read Only Memory)
● ●

Somente de leitura Não-volátil Disco rígido

Memória Auxiliar

Estrutura de um Computador

Arquitetura de Von Neumann

Comparação com ser humano

Representação da Informação

Qual a melhor forma de representar os dados dentro do computador? Sistema decimal: 10 símbolos (algarismos 0 a 9): é a forma usual que os humanos utilizam para representar dados. Para utilizar um sistema decimal, os circuitos precisariam estar aptos a distinguir, sem erro, 10 níveis diferentes de tensão elétrica, o que é muito difícil e/ou muito caro. O sistema mais seguro é o que trabalha com o menor número possível de níveis de tensão: dois níveis. Isto implica utilizar um sistema de numeração binário.

Representação da Informação

A unidade básica da informação é o bit (binary digit) que é usada na Computação e na Teoria da Informação. O bit só pode assumir dois valores: 0 (desligado) ou 1 (ligado). Um conjunto de bits pode representar qualquer quantidade de informações:
● ● ● ●

1 bit - duas informações : 0 1 2 bits - quatro informações: 00 01 10 11 3 bits - oito informações: 000 001 010 011 100 101 110 111 n bits - 2n informações

Representação da Informação

Um conjunto muito útil é o de 8 bits, denominado de byte que pode representar 256 informações. Em geral, os bytes são agrupados em múltiplos, da seguinte forma: Kilobyte = 1024 bytes ( 1024 = 210 ) Megabyte = 1024 kilobytes Gigabyte = 1024 megabytes ….

Representação da Informação

Todos os caracteres, algarismos e símbolos utilizados habitualmente podem ser armazenados em bytes, organizando-se uma tabela. O padrão mais conhecido é o código ASCII (American Standard Code for Information Interchange).

Representação da Informação

Sistema de Numeração

Quando enfrentamos situações em que queremos saber “quantos” nossa primeira atitude é contar.

Histórico da informação

Os egípcios representavam sua linguagem através dos hieróglifos gravados em papiros. Os chineses gravavam mensagens nos cascos de tartarugas. Os incas usavam fios com nós (os quipos).

A medida em que a complexidade dos cálculos aumentam, surge a necessidade de um instrumento, para auxiliar o raciocínio matemático. Surge assim, há cerca de 2.500 anos, o ÁBACO.

Blaise Pascal
Pascaline

1642 - Apenas conseguia fazer diretamente operações de adição e subtração. As operações de multiplicação e divisão podiam ser feitas por repetição.

John Napier
Ossos de Napier

Em 1617, Napier inventou uma série de cilindros denominados "Ossos de Napier" (ou Bastões de Napier) que continham uma série de quadrados com números . Ao ajustar alguns quadrados junto a outros, podia-se multiplicar e dividir os números.

Wilhelm Schickard
Relógio Contador

1623 - A calculadora mecânica combinava o conceito dos "Bastões" de Napier com um adicionador que possibilitava multiplicar números de 6 dígitos. Tinha dispositivos que permitiam a memorização de resultados dos cálculos intermediários e um sino que soava quando os cálculos excediam a capacidade.

William Oughtred
Régua de Cálculo

1623 - A calculadora mecânica combinava o conceito dos "Bastões" de Napier com um adicionador que possibilitava multiplicar números de 6 dígitos. Tinha dispositivos que permitiam a memorização de resultados dos cálculos intermediários e um sino que soava quando os cálculos excediam a capacidade.

Charles Babbage
Máquina Diferencial

Inglaterra (1822): Era capaz de resolver equações polinômicas através de diferenças entre números, e assim, de efetuar os cálculos necessários para construir tabelas de logaritmos. Tinha a capacidade de receber dados, processá-los, armazená-los e exibilos. Babbage ficou conhecido como o pai do computador. Devido a problemas de engenharia o projeto do Engenho Analítico jamais foi concluído.

Konrad Zuse
Z1

Em 1938 Konrad Zuse (engenheiro alemão ) terminou a construção do Z1, que utilizava o mecanismo binário, uma memória e uma parte controladora, com uma memória de 64 palavras, onde cada palavra continha 22 bits, e entrada de dados feita por fita perfurada. Era assim a primeira máquina programável binária do mundo.

Hermann Hollerith
Cartão Perfurado

1890: Utilizando o princípio descoberto por Jacquard para comando automático de teares, Hermann Hollerith - funcionário do United States Census Bureau - inventou, em 1880, uma máquina para realizar as operações de recenseamento da população. A máquina fazia a leitura de cartões de papel perfurados em código BCD (Binary Coded Decimal) e efetuava contagens da informação. A fábrica de Hollerith depois chamou-se de IBM.

Programação do ENIAC

Tabuada na ponta dos dedos

Essa técnica é conhecida como a tabuada acima dos cinco. Qual o valor de 7 x 8? 7 = 5 + 2, portanto em uma das mãos feche dois dedos, e deixe os três levantados;

8 = 5 + 3, portanto na outra mão feche três dedos e deixe os dois levantados.

Tabuada na ponta dos dedos

Temos 5 dedos fechados. Isto corresponde a 5 dezenas = 50. Pegue os dedos levantados de cada uma das mãos e multiplique-os: 3 x 2 = 6 Agora some 50 + 6 = 56. Pronto, 7 x 8 = 56.

Agrupamentos
Você já reparou que, quando precisamos contar uma grande quantidade de coisas, vamos separando os objetos em montes ou em grupos, pois isto facilita a contagem?

Sistema de Numeração Egipcio

Sistema de Numeração Romano

Sistema de Numeração Maia

Sistema de Numeração Indo-Arábico

Diversas hipóteses existem sobre a concepção dos algarismos arábicos.

Base de um Sistema de Numeração
A base de um sistema é a quantidade de algarismos disponível na representação. ● A base 10 é hoje a mais usualmente empregada, embora não seja a única utilizada. ● No comércio pedimos uma dúzia de rosas ou uma grosa de parafusos (base 12) e também marcamos o tempo em minutos (base 60). ● Os computadores utilizam a base 2 (sistema binário) e os programadores, por facilidade, usam em geral uma base que seja uma potência de 2, tal como 24 (sistema hexadecimal) ou eventualmente ainda 23 (sistema octal).

Sistema Decimal
Forma Posicional 123,456 = 100 + 20 + 3 + 0,4 + 0,005 + 0,0006 Forma Polinomial 123,456 = 1x102 + 2x101 + 3x100 + 4x10-1 + 5x10-2 + 6x10-3 Onde 10 é a base do sistema

Sistema Binário

No sistema binário (ou de base 2) só existe dois números, ou seja, zero e um (0 e 1). Foi documentado por Gottfried Leibniz no século XVIII em seu artigo “Explication de l'Arithmétique Binaire”.

Sistema Binário

Em 1854, o matemático britânico George Boole detalhou um sistema lógico conhecido como Álgebra Booleana, essencial para o desenvolvimento de circuitos eletrônicos. Em 1937, Claude Shannon defendeu sua tese que implementava Álgebra Booleana e aritmética binária utilizando circuitos elétricos. A tese de Shannon fundou o projeto de circuitos digitais.

Sistema Binário

Os computadores modernos utilizam apenas o sistema binário. Essa decisão de projeto deve-se à maior facilidade de representação interna no computador, que é obtida através de dois diferentes níveis de tensão. Havendo apenas dois algarismos, portanto dígitos binários, o elemento mínimo de informação nos computadores foi apelidado de bit (uma contração do inglês binary digit).

Sistema Binário

Sistema Binário

A representação binária é perfeitamente adequada para utilização pelos computadores. No entanto, um número representado em binário apresenta muitos bits, ficando longo e passível de erros quando manipulado por seres humanos.

Sistema Binário

Sistema Binário

0x23 0 3

+ +

0x22 0

+ +

1x21 2

+ +

1x20 1

Sistema Binário

1x23 8 10

+ +

0x22 0

+ +

1x21 2

+ +

0x20 0

Sistema Binário

1x23 8 15

+ +

1x22 4

+ +

1x21 2

+ +

1x20 1

Outras Bases Comuns

Conversão de Decimal para Binário
Para transformar um número decimal inteiro em um número em uma base binária basta fazer divisões inteiras sucessivas do número por 2 e, depois, reunir os restos em ordem inversa. Por exemplo, qual será a representação de 1310 na base 2? Executando divisões sucessivas até encontrar quociente 0, obtemos:

Assim, tomando os restos das divisões em ordem contrária a que eles aparecem concluímos que: 1310 = 11012

Conversão de Binário para Decimal

Qual o valor de 1101 na base 10? Para tanto, basta calcular: N10 = 1x23 + 1x22 + 0x21 + 1x20 N10 = 8 + 4 + 0 + 1 N10 = 13

Método do Complemento de Dois
Se o número for positivo, mantenha-se como está. Se o número for negativo, transforma-se para o complemento de um e soma-se um. Por exemplo: +410 é representado por 000001002. Como seria a representação de -410? N    = 000001002 C1   = 111110112  C1+1 = 111111002.

Método do Complemento de Dois
Suponha que cada inteiro em nosso computador imaginário tenha um total de 4 bits. Uma variável inteira poderá assumir 24 = 16 valores diferentes. A convenção complemento-de-dois usa esses 16 valores para representar os números, de -23 até +23-1 −8, −7, −6, −5, −4, −3, −2, −1, +0, +1, +2, +3, +4, +5, +6, +7 .

Método do Complemento de Dois
−8 −7 −6 −5 −4 −3 −2 −1 +0 +1 +2 +3 +4 +5 +6 +7 1000 1001 1010 1011 1100 1101 1110 1111 0000 0001 0010 0011 0100 0101 0110 0111

Método do Complemento de Dois
0 -1 -2 -3 -4 -5 -6 -7 -8 +7 +6 +5 +1 +2 +3 +4

7 + 1 = -8 (e não 8) 7 + 3 = -6 (e não 10) 6 + 6 = -4 (e não 12)

Método do Complemento de Dois

Em todas estas somas ocorre overflow (= transbordamento). Isso não constitui um erro (mas tem que ser previsto) e o computador continua trabalhando normalmente.

Método do Complemento de Dois Adição
1   1

0+0=0 0+1=1 1+0=1 1 + 1 = 0 (e vai 1)

   1  1  0    1  1  1 ­­­­­­­­­­ 1  1  0  1

Método do Complemento de Dois Subtração
Com o uso do método C2, só há adição. Ex.: A = 1011 (decimal 11) e B = 0110 (decimal 6). A – B = 1011 + C2(0110) = 1011 + 1010 = 10101, Que indica que o resultado é positivo e o valor é igual a 5 (0101). B – A = 0110 + C2(1011) = 0110 + 0101 = 01011, Como o resultado é negativo, C2(01011) = 1011, resultando no valor igual a -5 (1011).

Questões

Sign up to vote on this title
UsefulNot useful