Kein Folientitel - Computação UFCG
Download
Report
Transcript Kein Folientitel - Computação UFCG
Profs.:
Joseluce de Farias Cunha
Roberto Medeiros de Faria
Ulrich Schiel
Carga Horária:
60 h
O COMPUTADOR E SUAS UTILIDADES
• Substitução de tarefas repetitivas
• Tarefas altamente complexas (cálculos
científicos e de engenharia)
• Processos de tomada de decisão
• Informática no Ensino
• Projetos de Engenharia e Arquitetura (CAD)
• Robótica
• Análises estatísticas
• Comunicação local e a distância - Internet
• Substituição do papel
• Interatividade (redes sociais, e-mail, vídeo,
música)
História:
• Ábaco
• Blaise Pascal (1623-1667) – Pascaline:
máquina de somar e subtrair
História:
Charles Babbage
(1792-1871) –
Calculador analítico:
uso de cartões
perfurados e
registradores.
Impressora.
Herman Hollerith
(1860-1929): Uso de
cartões perfurados.
Censo de 1890.
Empresa: IBM.
História:
Konrad Zuse: computador eletro-mecânico
(Z1) – primeira máquina programável.
- Aiken – MARC I. 120m2.
- ENIAC - 18 mil válvulas e 1.500 relés, pesava 30
toneladas e consumia 140 quilowatts de
energia.
História:
- John von Neumann – arquitetura do
computador ~ cérebro humano
Computador e Computação
• O Hardware
• O Software
7
Computador
Máquina eletrônica capaz de realizar uma grande
variedade de tarefas com rapidez e precisão
Computadores processam dados a partir de conjuntos
de instruções denominadas programas
Um programa é um conjunto especificado/pré-
determinado de operações lógicas/aritméticas e
fornecer o resultado destas operações
8
Os computadores executam quatro tipos de
operações
Entrada
(Input)
Processamento
Saída
(Processing)
(Output)
Armazenamento
(Storage)
Ciclo IPOS
9
Ciclo IPOS
Entrada
Processamento
Saída
Armazenamento
10
Sistema de Computação
Integração
de componentes atuando como uma
entidade, com o propósito de processar dados,
para a produzir informações
11
Componentes de um Sistema Computacional
Peopleware
Hardware
Software
12
Componentes de um Sistema Computacional
Peopleware
Componente humana de um sistema de
computação, i.e.
programadores e
usuários
13
Componentes de um Sistema Computacional
Hardware
Componentes físicas de um sistema de
computação, i.e. todos os equipamentos
utilizados como teclado, mouse, Unidade
Central de Processamento, Unidade de
disco, Impressora, etc.
14
Componentes de um Sistema Computacional
Software
Componente lógica de um sistema de
computação, i.e. séries de instruções que
fazem o computador funcionar
programas do usuário e
programas básicos)
15
Unidade Central de Processamento
Dispositivos
de Entrada
Unidade
de Controle
ULA
Dispositivos
de Saída
Memória Principal
Memórias
Secundárias
16
Partes funcionais de um computador digital:
Unidade de Entrada
Obtenção da informação a partir de dispositivos de entrada
(e.g. teclado, mouse, entrada de áudio, microfone)
Unidade de Saída
Apresenta a informação em dispositivos de saída (e.g.
monitor, impressora, CD/DVD, áudio)
Unidade de Memória Secundária
Armazenamento barato, de alta capacidade e longa
duração
Armazenamento de programas inativos
17
Unidade Central de Processamento – UCP (Central Processing
unit - CPU)
Supervisão e coordenação das demais unidades que
compõem o computado
Unidade de Contrôle
Unidade Aritmético-Lógica
Unidade de Memória Principal (Primária)
Acesso rápido, de baixa capacidade e armazenamento da
informação obtida pelos dispositivos de entrada
18
Conjunto complexo de circuitos
eletrônicos.
Executa instruções de programa
armazenadas.
Duas partes:
Unidade de Controle
Unidade Lógica e Aritmética
(ULA)
Memória Central
19
Direciona o sistema do computador a executar
instruções de programa armazenadas.
Deve comunicar-se com a memória e com a
ULA.
Envia dados e instruções do armazenamento
secundário para a memória, quando
necessário.
20
Executa todas as operações aritméticas e
lógicas.
Operações aritméticas:
Adição, subtração, multiplicação, divisão.
Operações lógicas:
Compara números, letras ou caracteres especiais.
Testa uma de três condições:
Condição de igualdade (igual a)
Condição menor que
Condição maior que
21
Dois tipos de armazenamento:
Armazenamento
primário (memória):
Armazena
informações temporariamente.
A CPU referencia-o tanto para obtenção de instruções
de programa como de dados.
Armazenamento
secundário:
Armazenamento
de longo prazo.
Armazenado em mídia externa; por exemplo, um
disco.
22
A CPU não pode processar dados diretamente do disco ou
de um dispositivo de entrada:
Primeiramente, eles devem residir na memória.
A unidade de controle obtém dados do disco e transfere-os para a
memória.
Dados e instruções permanecem na memória até serem
enviados a um dispositivo de saída ou armazenamento, ou
o programa ser fechado.
23
Registradores
Memória central
24
Campos de armazenamento temporário de
alta velocidade.
Localizações
de armazenamento situadas dentro
da CPU.
Funcionam sob direção da unidade de controle:
Recebem, guardam e transferem Instruções ou dados.
Controlam onde a próxima instrução a ser executada ou os
dados necessários serão armazenados.
25
Também conhecida como memória primária,
memória principal ou memória central.
memória de acesso aleatório (RAM).
Não faz parte da CPU.
Retém dados e instruções para serem
processados.
Armazena informações somente enquanto o
programa está em operação.
26
Quatro etapas são executadas para cada
instrução:
Ciclo de máquina: a quantidade de tempo necessária
para executar uma instrução.
Computadores pessoais executam-nas em menos de
um bilionésimo de segundo.
Supercomputadores executam-nas em menos de um
trilionésimo de segundo.
Cada CPU tem seu próprio conjunto de
instruções:
Aquelas instruções as quais a CPU pode entender e
executar.
27
1.
2.
3.
4.
Captar.
Decodificar
Executar
Armazenar
O clock de sistema
sincroniza as operações.
28
Também chamado de I-time.
1. A unidade de controle recebe a instrução
da memória e a coloca em um registro.
2. A unidade de controle decodifica a
instrução e determina qual é a localização
na memória para os dados necessários.
29
1.
A unidade de controle transfere dados da
memória para registros na ULA.
1.
2.
A ULA executa instruções relativas aos dados.
A unidade de controle armazena o
resultado da operação na memória ou em
um registro.
30
1.
EXEMPLO
CHA R1 (carrega a entrada no registrador R1)
CHA 2
(carrega a entrada no endereço 2)
SUM 2 (soma o valor no endereço 2 ao registrador)
PRT R1 (Imprime o conteúdo do registrador R1)
31
Cada localização de memória tem um
endereço:
Pode conter somente uma instrução
ou peça de dados:
Um número único, como em uma
caixa postal.
Quando dados são reescritos na
memória, o conteúdo anterior desse
endereço é destruído.
Referenciado pelo número:
As linguagens de programação usam
um endereço simbólico (nomeado), tal
como Horas ou Salário.
32
Os computadores entendem
duas coisas: ligado e
desligado.
Dados são representados na
forma binária:
Sistema numérico binário (base 2).
Contém somente 2 dígitos: 0 e 1.
Corresponde a dois estados:
ligado e desligado.
33
Bit
Byte
Palavra (32 bits ou 64 bits)
(~átomo)
(~molécula)
(~célula)
34
Abreviação de binary digit (dígito binário).
Dois
valores possíveis: 0 e 1.
Nunca pode estar vazio.
Unidade básica para armazenar dados:
0
significa desligado; 1 significa ligado.
35
Um grupo de 8 bits.
Cada
Para texto, armazena um caractere:
Pode
byte tem 256 (28) valores possíveis.
ser letra, dígito ou caractere especial.
Dispositivos de memória e armazenamento
são medidos em número de bytes.
36
O número de bits que a CPU processa como
uma unidade.
Tipicamente,
um número inteiro de bytes.
Quanto maior a palavra, mais potente é o
computador.
Computadores pessoais tipicamente têm 32 ou 64
bits de extensão de palavras.
37
Kilobyte: 1024 (210) bytes.
Megabyte: aproximadamente, um milhão (220) de bytes.
Memória de computadores pessoais antigos.
Dispositivos de armazenamento portáteis (disquetes, CD-ROMs).
Gigabyte: aproximadamente, um bilhão (230) de bytes.
Capacidade de memória dos computadores pessoais mais antigos.
Dispositivos de armazenamento (discos rígidos).
Capacidade de memória de computadores pessoais, mainframes e
servidores de rede atuais.
Terabyte: aproximadamente, um trilhão (240) de bytes.
Dispositivos de armazenamento para sistemas muito grandes ou
discos rígidos de armazenamento externo.
38
Provêem uma maneira comum para
representar um caractere de dados.
Necessários
para os computadores poderem
intercambiar dados.
Esquemas comuns:
ASCII
EBCDIC
Unicode
39
Sigla de American Standard Code for
Information Interchange.
O padrão mais amplamente usado.
Usado virtualmente em todos os computadores
pessoais.
Exemplos: ASCII(048) = 0, ASCII(065) = A
ASCII(135)
=ç
ASCII(146) = Æ
ASCII(185) = ╣
40
041=)*+,-./012
051=3456789:;<
061==>?@ABCDEF
071=GHIJKLMNOP
EXEMPLO:
Alt135 = ç
081=QRSTUVWXYZ
091=[\]^_`abcd
101=efghijklmn
111=opqrstuvwx
121=yz{|}~⌂Çüé
131=âäàåçêëèïî
141=ìÄÅÉæÆôöòû
151=ùÿÖÜø£Ø׃á
41
Sigla de Extended Binary Coded Decimal
Interchange Code.
Usado
principalmente em mainframes IBM
compatíveis com IBM.
e
42
Projetado para acomodar alfabetos com mais
de 256 caracteres.
Usa 16 bits para representar um caractere.
65.536
valores possíveis.
Exige duas vezes mais espaço para armazenar
dados.
43
Abriga os componentes eletrônicos do sistema
de computador:
Placa-mãe
(motherboard)
Dispositivos de armazenamento
44
Placa de circuitos plana
que contém os circuitos
do computador.
A unidade central de
processamento
(microprocessador) é o
componente mais importante.
45
Memória central (armazenamento temporário)
Memórias secundárias (Armazenamento de
longo prazo ).
Dados
não se perdem quando o computador é
desligado.
discos rígidos (HD), disquetes, DVD-ROMs.
46
Unidade central de
processamento impressa
em chip de silício.
Contém dezenas de milhões
de minúsculos transistores.
Componentes-chave:
Unidade central de processamento.
Registradores.
Clock do sistema.
47
Comutadores eletrônicos que podem permitir
ou não a passagem de corrente elétrica.
Se
a corrente elétrica passar, o comutador estará
ativado, representando um bit 1.
Caso contrário, o comutador estará desativado,
representando um bit 0.
48
A Intel produz uma família de processadores:
Processadores Pentium 4, Pentium Dual Core, Core 2 Duo, i3
e i5, na maioria dos PCs.
Processador Celeron e Atom vendidos para PCs de baixo
custo.
Opteron, Xeon, Itanium, Core 2 Extreme, Core 2 Quad e i7,
para estações de trabalho high-end e servidores de rede.
Outros processadores:
A Cyrix e a AMD produzem microprocessadores compatíveis
com Intel.
Chips PowerPC são usados principalmente em computadores
Macintosh.
O microprocessador Alpha, da Compaq, é usado em
servidores high-end.
49
RAM e ROM
Tecnologias:
Memória
semicondutora
Memória Flash
50
Usada pela maioria dos computadores
modernos:
Confiável, barata e compacta.
Volátil: exige corrente elétrica contínua.
Se a corrente for interrompida, os dados se perdem.
Semicondutor Complementar de Óxido de Metal –
Complementary Metal Oxide Semiconductor (CMOS).
Retém informação quando a energia é desligada.
Usado para armazenar informações necessárias quando o
computador é inicializado.
51
Memória Flash
• um chip re-escrevível que, ao contrário de uma memória RAM
convencional, preserva o seu conteúdo sem a necessidade de fonte de
alimentação
Os chips de memória flash assemelham-se aos cartões de crédito.
Menores do que uma unidade de disco e requerem menos energia.
52
Memória de Acesso Aleatório – RandomAccess Memory (RAM)
Memória Somente de Leitura – Read-Only
Memory (ROM)
53
Dados temporários que podem ser
acessados aleatoriamente:
O endereço de memória 10 pode ser acessado
tão rapidamente quanto o endereço de memória
10.000.000.
54
Contém
programas e dados registrados
permanentemente na memória pela
fábrica.
Não
pode ser alterada pelo usuário.
Não-volátil: o conteúdo não desaparecerá
quando houver queda de energia.
55
Percursos elétricos paralelos que
transportam dados entre a CPU e a
memória.
Largura de barramento:
O
número de percursos elétricos para
transportar dados.
Medida em bits.
Velocidade de barramento:
Medida
em megahertz (MHz).
56
Tipicamente, a mesma largura do tamanho
de palavra da CPU.
Com um tamanho de barramento maior,
a CPU pode:
Transferir mais dados simultaneamente:
Torna o computador mais rápido.
Referenciar números de endereço de memória maiores:
Permite mais memória.
Suportar um número e uma variedade maiores de
instruções.
57
Quanto maior a velocidade de barramento,
mais rapidamente os dados viajarão por meio
do sistema.
Computadores pessoais têm velocidades de
barramento de 400 MHz, 533 MHz, 800 MHz
ou 1066 MHz.
58
Adiciona
dispositivos periféricos ao
sistema:
Placa
de expansão
Porta
59
Conectam-se a slots
(encaixes) de
expansão ou à
placa-mãe.
São usadas para
conectar dispositivos
periféricos.
60
Conectores externos para plugar periféricos,
como, por exemplo, impressoras.
Três tipos de portas:
Seriais: transmitem dados à base de um bit a cada vez.
Paralelas: transmitem grupos de bits em conjunto, lado a
lado.
Usadas para dispositivos lentos, como o mouse e o teclado.
Usadas para dispositivos mais rápidos, como impressoras e
scanners.
Porta Universal Serial Bus (USB):
Permite conectar muitos dispositivos em série na porta USB.
61
As velocidades de instrução são medidas
em segundos:
Milissegundo:
um milésimo de segundo.
Microssegundo: um milionésimo de segundo.
Nanossegundo: um bilionésimo de segundo.
Computadores
Picossegundo:
modernos atingiram essa velocidade.
um trilionésimo de segundo.
62
Medida da velocidade de clock do sistema:
Quantos pulsos eletrônicos o clock produz por segundo.
Usualmente, expressa em gigahertz (GHz).
Billhões de ciclos de máquina por segundo.
Alguns PCs antigos mediam em megahertz (MHz).
Uma comparação de velocidades de clock
somente é significativa entre
microprocessadores idênticos.
63
MIPS – Um Milhão de Instruções por
Segundo.
Computadores
pessoais de alta velocidade
podem executar mais de 500 MIPS.
Tipicamente, uma medida de desempenho mais
acurada do que a velocidade de clock.
Megaflop – um milhão de operações em
ponto flutuante por segundo.
Mede
a capacidade do computador para
executar operações matemáticas complexas.
64
Uma
área de armazenamento temporário:
Agiliza
a transferência de dados dentro do
computador.
Memória
cache
Cache de processador
© 2004 by Pearson Education
65
Um pequeno bloco de memória de alta velocidade:
Armazena os dados e as instruções usados com mais
freqüência e mais recentemente.
O microprocessador procura primeiramente na
memória cache os dados de que necessita:
Transferidos da cache muito mais rapidamente do que da
memória.
Se não estiverem na cache, a unidade de controle
recupera-os da memória.
Quanto mais “presença de dados” na cache, mais rápido é o
desempenho do sistema.
66
Cache interna (Nível 1) embutida no
microprocessador.
Acesso mais rápido, porém custo mais elevado.
Cache externa (Nível 2) em um chip
separado.
Incorporada ao processador e alguns
microprocessadores atuais.
67
Que usa múltiplos processadores simultaneamente
O processador de controle divide o problema em
partes:
Cada parte é enviada a um processador distinto.
Cada processador tem sua própria memória.
O processador de controle monta os resultados.
Alguns computadores que usam processamento
paralelo operam em termos de teraflops: trilhões de
instruções com ponto flutuante por segundo.
68
É
um conjunto de programas
Um programa são instruções eletrônicas
que informam ao computador como
realizar determinadas tarefas
Existem duas classes de software:
Software Básico
Software Aplicativo
69
O
software básico tem como finalidade
possibilitar a operação e o uso do
computador, seja qual for a aplicação (o
foco está na máquina) – o software
básico se concentra na necessidades
gerais de grande parte dos usuários
70
TIPOS:
sistemas
operacionais,
compiladores,
Utilitários:
Office
Comunicação
Compactação
SGBD,
Tocadores
etc.
e editores de áudio, vídeo,
71
solução
de um problema específico,
utilizando o computador como
ferramenta (o foco está na aplicação)
Exemplos:
Folha
de pagamento
Controle de vendas
Venda de passagens
Sistema de biblioteca
72
Customizado
Aplicações
originais desenvolvidas por
analistas e programadores
Pronto
Free
(Domínio público, código aberto,..)
Shareware
73
Linguagens de Programação
Linguagens
de baixo nível
Primeira geração: Linguagem de máquina
Segunda geração: Linguagem de montagem (Assembler)
Linguagens
de alto nível
Terceira
geração: Linguagens procedurais
Quarta geração: Linguagens aplicativas
74
Linguagens de Programação
Linguagens
de baixo nível
1ª geração: (exemplo – n-ésimo número de Fibonacci)
8B542408
83FA0077
06B80000
0000C383
FA027706
B8010000
00C353BB
01000000
B9010000
008D0419
83FA0376
078BD98B
C84AEBF1
5BC3
75
Linguagens de Programação
Linguagem x86 MASM:
Linguagens
de
baixo nível
2ª geração:
ESTRUTURA GERAL:
[<endereço>]: <instrução>
<argumento(s)>
fib: mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax, 0
ret
@@: cmp edx, 2
ja @f
mov eax, 1
ret @@: push ebx
mov ebx, 1
mov ecx, 1
@@: lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b @@: pop ebx
ret
76
Linguagens de Programação
Linguagens
de alto nível
unsigned int fib(unsigned int n)
{ if (n <= 0) return 0;
else if (n <= 2) return 1;
else {
int a,b,c;
a = 1; b = 1;
while (true)
{ c = a + b;
if (n <= 3) return c;
a = b;
b = c;
n--; }
}
}
}
77
Sistemas
Cliente/Servidor
Redes locais (LAN)
Redes a distância (WAN)
Redes de redes (Internet)
78
Mídias
Com
de Comunicação
fio
Cabos
coaxiais
Fibra ótica
Sem
fio
Micro-ondas
/ Satélite
Semfio – IrDA, Bluetooth
79
Padrões
de comunicação
Protocolo TCP/IP (transporte/rede)
HTTP: HyperText Transfer Protocol
(aplicação)
Topologia da Rede:
Estrela
Anel
Barramento
80
Topologias
da Rede:
Estrela
Anel
Barramento
81
Aplicações
Aplicações
distribuídas
Correio eletrônico (e-mail)
FAX e FTP
Teleconferência
A Internet e a Web
82
É uma rede de redes mundial
Web
(é um sistema de hiper-documentos e
serviços interligados na Internet)
HTTP: Protocolo de comunicação na Web
URL: Endereço de um membro da Internet
http://www.dsc.ufcg.edu.br/~icc
(protocolo://nome
do computador/end local
83
Navegadores
Mozilla-Firefox; Chrome; Explorer
Mecanismo de busca na WEB
Um
Banco de Dados de todos endereços da
Web indexados por palavras-chave
Google, Yahoo, Bing, ..
84
Aplicações
Procura
por assuntos
Comércio eletrônico
Pagamentos
Serviços Bancários
Portais e home-pages
Blogs e redes sociais
Notícias
85
ned int fib(unsigned int n) { if (n <= 0) return 0; else if (n <= 2) return 1; else { int a,b,c; a = 1; b = 1; while (true) { c = a + b; if (n <= 3) return c; a = b; b = c; n--; } } }
EXERCÍCIO
1. Dado a linguagem:
LER n (coloca a entrada no endereço n)
LER R (coloca a entrada no registrador R)
SUB n (subtrai o conteúdo de n de R e coloca o
resultado em R)
SENEG end se o registrador for negativo, ir para end)
ESCREV “texto” (escreve o que está em texto)
FIM
(encerra o programa)
Faça um programa que lê dois números, calcula a
diferença e escreve “negativo” ou “positivo” dependendo do
resultado
2. Desenhe uma rede de 7 computadores interligados em
forma de anel. Suponha que dois deles quebraram, mostre quais
dos restantes ainda podem comunicar entre si.
86