Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de...

23
Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho

Transcript of Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de...

Page 1: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Programação de Computadores

Instituto de Computação UFFDepartamento de Ciência da Computação

Otton Teixeira da Silveira Filho

Page 2: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Conteúdo

● Resumo de estrutura de computadores

Máquina de Turing

Arquitetura de Von Newmann

Binários

Conversão de base 10 para base 2 e vice-versa

Uso de binários em computadores

Page 3: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Conteúdo

Máquina de Turing

É uma máquina hipotética capaz de tomar decisões

Page 4: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Conteúdo

Máquina de Turing

Formalmente é descrita como:

● Uma fita infinita dividida em células, uma adjacente à outra. Cada célula contém um símbolo de algum alfabeto finito. O alfabeto contém um símbolo especial branco e um ou mais símbolos adicionais. As células que ainda não foram escritas estão preenchidas com o símbolo branco.

● Um cabeçote, que pode ler e escrever símbolos na fita e mover-se para a esquerda e para a direita.

● Um registrador de estados, que armazena o estado da máquina de Turing. O número de estados diferentes é sempre finito e há um estado especial denominado estado inicial com o qual o registrador de estado é inicializado.

● Uma tabela de ação que diz à máquina que símbolo escrever, como mover o cabeçote para esquerda e para direita e qual será seu novo estado, dados o símbolo que ele acabou de ler na fita e o estado em que se encontra. Se não houver entrada alguma na tabela para a combinação atual de símbolo e estado então a máquina pára.

Page 5: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Conteúdo

Máquina de Turing

Figurativamente...

Page 6: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Conteúdo

Máquina de Turing

Uma construção

Page 7: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Conteúdo

Máquina de Turing

Nenhuma desta figuras e imagens correspondem à definição da Máquina de Turing. A fita de registro deveria ser infinita…

Embora seja a fonte de todo conceito forma de computação, outros modelos funcionais e operativos foram desenvolvidos

Page 8: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Estrutura de um computador

Estrutura de um computador – Arquitetura de Von Neumann

Unidade Central de Processamento

Entrada Saída

Unidade de Controle

Unidade Lógico-Aritmética

Unidade de Memória

Page 9: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Estrutura de um computador

● Entrada e saída podem ser o mesmo dispositivo

um pendrive, por exemplo

● Na Unidade Central de Processamento (em inglês a sigla é CPU):

Unidade de Controle que contém o registro de instruções e o contador de programa

● Unidade Lógico-aritmética que permite executar instruções deste tipo

● Unidade de Memória onde são armazenados os dados, operações e instruções

Page 10: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Estrutura de um computador

● Na Unidade de Memória dados e instruções só podem ser distinguidos pela organização que as variáveis e instruções tem

● Hoje a grande maioria dos computadores são digitais e trabalham com o sistema de numeração binário

● Tal sistema de numeração faz uso da Álgebra booliana que permite fazer operações tanto lógicas quanto aritméticas usando apenas dois símbolos

Page 11: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

Sistema Binário (Base 2)

● Neste sistema só são necessários dois símbolos (ou estados) para representar um número

● Convencionalmente (e de forma abusiva) usam-se os caracteres 0 e 1 para simbolizar estes estados

● No computador estes “zeros“ e “uns“ são níveis convencionados de voltagem (ou estados da célula de memória) nos circuitos

● Em discos magnéticos “zeros“ e “uns“ são formas de magnetização diferentes

Page 12: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

Sistema Binário (Base 2)

● Neste sistema só são necessários dois símbolos (ou estados) para representar um número

0, 1

● No sistema decimal (Base 10) são necessários dez símbolos:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

● Apesar de serem grafados de forma idêntica, não confunda os símbolos do sistema binário com os símbolos do sistema decimal

Page 13: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

Escrevendo números

● Em decimal, Base 10

123 = 1 x 102 + 2 x 101 + 3 x 100

43,32 = 4 x 101 + 3 x 100 + 3 x 10-1 + 2 x 10-2

● Para dar ênfase que estamos trabalhando com Base 10 escreveremos

● 12310

● 43,3210

Page 14: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

Escrevendo números

● Em binário, Base 2

101 = 1 x 22 + 0 x 21 + 1 x 20

11,01 = 1 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2

● Para dar ênfase que estamos trabalhando com Base 2 escreveremos

● 1012

● 11,012

Page 15: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

Mudando de base: Base 2 para Base 10

1012 = 1 x 22 + 0 x 21 + 1 x 20 = 1 x 4 + 0 x 2 + 1 x 1 = 510

11,012 = 1 x 21 + 1 x 20 + 0 x 2-1 + 1 x 2-2 = 1 x 2 + 1 x 1 + 0 x ½ + 1 x ¼ = 3,2510

Page 16: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

Mudando de base: Base 10 para Base 2

Isto se faz por divisões sucessivas do número em questão por 2

19/2 = 9, sobra 1

9/2 = 4, sobra 1

4/2 = 2, sobra 0

2/2 = 1 sobra 0

● 1910 = 100112 = 1 x 24 + 0 x 23 + 0 x 22 + 1 x 21 + 1 x 20 = 16 + 2 + 1

Page 17: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Uso da Base 2 no computador

A Base 2 era conveniente nos primeiros computadores pois simplificou sua construção

● A unidade mínima de informação é chamada de bit

● Um baite é o conjunto de 8 bits

● Em inglês os termos são bit e bytes, em francês bit e octet

● O símbolo de baite é B e o de bit b

Page 18: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Sistemas de numeração

A Base 2 era conveniente nos computadores pois simplificava as operações

Exemplo: Tabuada de soma de dois números na base 2

● 0+0 = 0

● 0+1 = 1

● 1+0 = 1

● 1+1 = 0 e “vai um“

1012

1112 + ____ 11002

Page 19: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Uma classificação possível

As CPUs pode ser classificadas pelo número de bits que elas podem processar ou acessar a cada instante

● Hoje podemos encontrar facilmente processadores de:

4 bits

8 bits

16 bits

32 bits

64 bits

Page 20: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Uso da Base 2 no computador

O mais comum é referenciar os bytes por seus múltiplos de 210 = 1024

No entanto, vários fabricantes usaram a proximidade do número 1024 do número 1000 para maquiar seus produtos

Assim, existem duas apresentações de múltiplos de bytes

Page 21: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Uso da Base 2 no computador

A não regulamentada e ambígua

KB = 1024 B - kilobyte – mas pode significar 1000 B

MB = 1024 KB - megabyte – mas pode significar 1000 KB

GB = 1024 MB - gigabyte – mas pode significar 1000 MB

TB = 1024 GB - terabyte – mas pode significar 1000 GB

PB = 1024 TB - petabyte – mas pode significar 1000 TB

Page 22: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Uso da Base 2 no computador

E a regulamentada

KiB = 1024 B - kibibyte

MiB = 1024 KB - mebibyte

GiB = 1024 MB - gibibyte

TiB = 1024 GB - tebibyte

PiB = 1024 TB - pebibyte

Page 23: Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de um computador – Arquitetura de Von Neumann Unidade Central de Processamento Entrada

Uso da Base 2 no computador

A diferença pode ser muito significativa nesta era de gigabytes ou gibibytes