Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de...
Transcript of Programação de Computadoresotton/graduacao/programacao/01_Estrutura_computad… · Estrutura de...
Programação de Computadores
Instituto de Computação UFFDepartamento de Ciência da Computação
Otton Teixeira da Silveira Filho
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
Conteúdo
Máquina de Turing
É uma máquina hipotética capaz de tomar decisões
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.
Conteúdo
Máquina de Turing
Figurativamente...
Conteúdo
Máquina de Turing
Uma construção
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Uso da Base 2 no computador
A diferença pode ser muito significativa nesta era de gigabytes ou gibibytes