CEEI DSC
rangel@dsc.ufcg.edu.br
Profs.: Andrey Elisio Monteiro Brito
José Eustáquio Rangel de Queiroz
Joseluce de Farias Cunha
Roberto Medeiros de Faria
Carga Horária: 60 h
rangel@dsc.ufcg.edu.br
2
Introdução à Programação
 Tópicos:
 Introdução
 O que é um Computador?
 Organização de um Computador
 Evolução de Sistemas Operacionais
 Computação Pessoal, Distribuída e Cliente/Servidor
 Linguagens de Máquina, de Montagem (Assembly) e
de Alto Nível
 Histórico da Linguagem C
 A Biblioteca Padrão de C
rangel@dsc.ufcg.edu.br
3
 Tendências de Desenvolvimento de Software:
Tecnologia de Objetos
 C e C++
 Java
 Outras Linguagens de Alto Nível
 Programação Estruturada
 Fundamentos de um Ambiente Típico de
Desenvolvimento de Programas em C
 Tendências de Hardware
 Internet
 World Wide Web (WEB)
Introdução à Programação
rangel@dsc.ufcg.edu.br
4
Objetivos
 Após a discussão do material deste capítulo, v.
será capaz de:
 Compreender conceitos computacionais
básicos;
 Familiarizar-se com diferentes tipos de
linguagens de programação;
 Familiarizar-se com o histórico da linguagem de
programação C;
 Tomar conhecimento da biblioteca-padrão da
linguagem C;
rangel@dsc.ufcg.edu.br
5
Objetivos
 Após a discussão do material deste capítulo, v.
será capaz de:
 Compreender os elementos de um ambiente
típico de programação em C;
 Entender porque é importante aprender C em um
primeiro curso programação;
 Ponderar porque C oferece um embasamento
para estudos posteriores de outras linguagens
de programação, em especial C++ e Java.
rangel@dsc.ufcg.edu.br
6
Introdução
 Objeto de Estudo
 A linguagem de programação C
 Técnicas de Programação Estruturada
 Extensão do Livro-texto
 Fundamentos de C++
 Capítulos 15 a 23
 Fundamentos de Java
 Capítulos 24 a 30
 Público-alvo
 Estudantes universitários com pouca ou nenhuma
experiência de programação
rangel@dsc.ufcg.edu.br
7
 Computador
 Dispositivo capaz de realizar computações e
tomar decisões lógicas
 Computadores processam dados a partir de
conjuntos de instruções denominadas
programas
 Máquina eletrônica capaz de receber dados,
submetê-los a um conjunto especificado/pré-
determinado de operações lógicas/aritméticas
e fornecer o resultado destas operações
O que é um Computador?
rangel@dsc.ufcg.edu.br
8
 Os computadores atuais são dispositivos
eletrônicos que, sob direção e controle de um
programa, executam quatro operações
fundamentais
 Entrada (Input)
 Processamento (Processing)
 Saída (Output)
 Armazenamento (Storage)
O que é um Computador?
rangel@dsc.ufcg.edu.br
9
 Ciclo IPOS
Entrada
Processamento
Armazenamento
Saída
O que é um Computador?
rangel@dsc.ufcg.edu.br
10
 Sistema de computação
 Integração de componentes atuando como
uma entidade, com o propósito de processar
dados, i.e. realizar algum tipo de operação
aritmética/ lógica envolvendo os dados, de
modo a produzir diferentes níveis de
informações
O que é um Computador?
rangel@dsc.ufcg.edu.br
11
 Componentes de um Sistema Computacional
Peopleware
Software
Hardware
O que é um Computador?
rangel@dsc.ufcg.edu.br
12
 Componentes de um Sistema Computacional
 Peopleware
 Componente humana de um sistema de
computação, i.e. indivíduos que utilizam o
computador como ferramenta
O que é um Computador?
rangel@dsc.ufcg.edu.br
13
 Componentes de um Sistema Computacional
 Hardware
 Componente física de um sistema de
computação, i.e. todos os equipamentos
utilizados pelo usuário nas ações de entrada,
processamento, armazenamento e saída de
dados
O que é um Computador?
rangel@dsc.ufcg.edu.br
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 de
computador)
 programas básicos e programas do usuário
O que é um Computador?
rangel@dsc.ufcg.edu.br
O Software
 É 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
15
rangel@dsc.ufcg.edu.br
Software Básico
 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
16
rangel@dsc.ufcg.edu.br
Software Básico
TIPOS de Software Básico:
 Sistemas Operacionais,
 Compiladores,
 Utilitários:
 Office
 Comunicação
 Compactação
 SGBD,
 Tocadores e editores de áudio, vídeo, etc.
17
rangel@dsc.ufcg.edu.br
Software Aplicativo
 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
18
rangel@dsc.ufcg.edu.br
Software Aplicativo
 Customizado
Aplicações originais desenvolvidas
por analistas e programadores
 Pronto
 Free (Domínio público, código aberto,..)
 Shareware
19
rangel@dsc.ufcg.edu.br
20
Unidade Central de Processamento
Unidade
de Controle
ULA
Unidade Primária
de Armazenamento
Dispositivos
de Entrada
Dispositivos
de Saída
Dispositivos de
Armazenamento
Secundário
O Hardware
rangel@dsc.ufcg.edu.br
21
 Partes Funcionais de um computador :
 Unidade de Entrada (Input Unit)
 Obtenção de dados a partir de dispositivos de
entrada (e.g. teclado, mouse)
 Unidade de Saída (Output unit)
 Apresenta a informação em dispositivos de saída
(e.g. monitor, impressora)
 Unidade de Memória (Memory unit)
 Acesso rápido, de baixa capacidade de
armazenamento de informações.
Organização de um
Computador
rangel@dsc.ufcg.edu.br
22
 Unidade Central de Processamento – UCP (Central
Processing unit - CPU)
 Supervisão e coordenação das demais unidades
que compõem o computador
 Unidade de Armazenamento Secundário (Secondary
storage unit)
 Armazenamento barato, de alta capacidade e longa
duração
 Armazenamento de programas inativos
Organização de um
Computador
rangel@dsc.ufcg.edu.br
Unidade Central de
Processamento
 Conjunto complexo de
circuitos eletrônicos.
 Executa instruções de
programas armazenadas.
 Duas partes:
 Unidade de Controle
 Unidade Aritmética e
Lógica (ALU)
23
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Unidade de Controle
 Direciona o sistema do computador a
executar instruções de programa
armazenadas.
 Deve comunicar-se com a memória e com a
ALU.
 Envia dados e instruções do
armazenamento secundário para a memória,
quando necessário.
24
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Unidade Aritmética e Lógica
 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
25
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Armazenamento de Dados e a
CPU
 Dois tipos de armazenamento:
 Armazenamento primário (memória):
 Armazena dados 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.
26
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
A CPU e a Memória
 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 recupera dados do disco e
transfere-os para a memória.
 Itens enviados à CPU para ser processados:
 A unidade de controle envia itens à CPU e depois os
envia novamente à memória após serem processados.
 Dados e instruções permanecem na memória até
serem enviados a um dispositivo de saída ou
armazenamento, ou o programa ser fechado.
27
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Áreas de Armazenamento
Temporário
 Registradores
 Memória
28
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Registradores
 Áreas 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.
29
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Memória
 Também conhecida como armazenamento
primário e memória principal.
 Freqüentemente expressa como 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.
30
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Como a CPU Executa
Instruções
 Quatro etapas são executadas para
cada instrução: captação, decodificação,
execução e armazenamento.
 Ciclo de máquina: a quantidade de tempo
necessária para executar uma instrução.
 Computadores pessoais executam-nas em
menos de um milioné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. 31
rangel@dsc.ufcg.edu.br
O Ciclo da Máquina
 O tempo necessário
para recuperar,
executar e armazenar
uma operação.
 Componentes:
 Tempo de instrução
 Tempo de execução
 O clock de sistema
sincroniza as
operações.
32
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Tempo de Instrução
 Também chamado de I-time.
 A unidade de controle recebe a instrução da
memória e a coloca em um registro.
 A unidade de controle decodifica a instrução
e determina qual é a localização na memória
para os dados necessários.
33
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Tempo de Execução
 A unidade de controle transfere dados da
memória para registros na ALU.
 A ALU executa instruções relativas
aos dados.
 A unidade de controle armazena o resultado
da operação na memória ou em um registro.
34
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Endereços de Memória
 Cada localização de memória tem
um endereço:
 Um número único, como em
uma caixa postal.
 Pode conter somente uma
instrução ou peça de dados:
 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.
35
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Representação de Dados
 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.
36
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Representando Dados
 Bit
 Byte
 Palavra
37
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Bit
 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.
38
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Byte
 Um grupo de 8 bits.
 Cada byte tem 256 (28) valores possíveis.
 Para texto, armazena um caractere:
 Pode ser letra, dígito ou caractere especial.
 Dispositivos de memória e armazenamento
são medidos em número de bytes.
39
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Palavra
 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.
40
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Capacidades de
Armazenamento
 Kilobyte: 1024 (210) bytes.
 Capacidade de memória dos computadores pessoais
mais antigos.
 Megabyte: aproximadamente, um milhão (220) de bytes.
 Memória de computadores pessoais.
 Dispositivos de armazenamento portáteis (disquetes,
CD-ROMs).
 Gigabyte: aproximadamente, um bilhão (230) de bytes.
 Dispositivos de armazenamento (discos rígidos).
 Memória de mainframes e servidores de rede.
 Terabyte: aproximadamente, um trilhão (240) de bytes.
 Dispositivos de armazenamento para sistemas muito grandes.
41
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Capacidades de
Armazenamento
 SUMÁRIO:
 · 1 Bit = Binary Digit
· 8 Bits = 1 Byte
· 1000 Bytes = 1 Kilobyte
· 1000 Kilobytes = 1 Megabyte
· 1000 Megabytes = 1 Gigabyte
· 1000 Gigabytes = 1 Terabyte
· 1000 Terabytes = 1 Petabyte
· 1000 Petabytes = 1 Exabyte
· 1000 Exabytes = 1 Zettabyte
· 1000 Zettabytes = 1 Yottabyte
· 1000 Yottabytes = 1 Brontobyte
· 1000 Brontobytes = 1 Geopbyte
42
rangel@dsc.ufcg.edu.br
Esquemas de Codificação
 Provêem uma maneira comum para
representar um caractere de dados.
 Necessários para os computadores
poderem intercambiar dados.
 Esquemas comuns:
 ASCII
 EBCDIC
 Unicode
43
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
ASCII
 Sigla de American Standard Code for
Information Interchange.
 O padrão mais amplamente usado.
 Usado virtualmente em todos os
computadores pessoais.
44
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
EBCDIC
 Sigla de Extended Binary Coded Decimal
Interchange Code.
 Usado principalmente em mainframes IBM
e compatíveis com IBM.
45
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Unicode
 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.
46
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
A Unidade de Sistema
 Abriga os componentes eletrônicos do
sistema de computador:
 Placa-mãe (motherboard)
 Dispositivos de armazenamento
47
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Placa-mãe (motherboard)
 Placa de circuitos plana
que contém os circuitos
do computador.
 A unidade central de
processamento
(microprocessador) é o
componente mais
importante.
http://www.youtube.com/watch?v=zq
WKDzlIssU
48
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Dispositivos de
Armazenamento
 Armazenamento de longo prazo da memória.
 Dados não se perdem quando o
computador é desligado.
 Incluem-se entre os exemplos: discos
rígidos, disquetes, DVD-ROMs.
49
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Microprocessador
 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.
50
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Microprocessador
 Como funcionam os processadores
http://www.youtube.com/watch?v=IfOIB4-pn1k
 Conheça mais o processador
http://olhardigital.uol.com.br/produtos/central_
de_videos/conheca-seu-micro-processador
51
rangel@dsc.ufcg.edu.br
Transistores
 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.
52
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Tipos de Chips
 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 vendido 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.
53
rangel@dsc.ufcg.edu.br
Componentes da Memória
 RAM e ROM
 Tecnologias:
 Memória semicondutora
 Memória Flash
54
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Memória Semicondutora
 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.
55
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Memória Flash
• um chip re-escrevível que, ao contrário de uma memória RAM,
preserva o seu conteúdo sem a necessidade de fonte de
alconvencionalimentaçã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.
56
rangel@dsc.ufcg.edu.br
RAM e ROM
 Memória de Acesso Aleatório – Random-
Access Memory (RAM)
 Memória Somente de Leitura – Read-Only
Memory (ROM)
57
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Memória de Acesso Aleatório
 Dados 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.
58
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Memória Somente de Leitura
 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.
 Chips de ROM programáveis (PROM):
 Algumas instruções no chip podem
ser alteradas.
59
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
O Barramento (Bus) do
Sistema
 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).
60
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Largura de Barramento
 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.
61
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Velocidade de Barramento
 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.
62
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Barramentos de Expansão
 Adiciona dispositivos periféricos ao
sistema:
 Placa de expansão
 Porta
63
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Placas de Expansão
 Conectam-se a slots
(encaixes) de
expansão ou à
placa-mãe.
 São usadas para
conectar
dispositivos
periféricos.
 A maioria dos
computadores são
“onboard”.
64
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Portas
 Conectores externos para plugar periféricos,
como, por exemplo, impressoras.
 Dois tipos de portas:
 Seriais: transmitem dados à base de
um bit a cada vez.
 Usadas para dispositivos lentos, como o
mouse e o teclado.
 Paralelas: transmitem grupos de bits
em conjunto, lado a lado.
 Usadas para dispositivos mais rápidos, como
impressoras e scanners.
65
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Cache
 Uma área de armazenamento temporário:
 Agiliza a transferência de dados
dentro do computador.
 Memória cache
 Cache de processador
66
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Memória Cache
 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
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.
67
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Cache de Processador
 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.
68
© 2004 by Pearson
Education
rangel@dsc.ufcg.edu.br
Cache e Registradores
 Diferença entre Memória Cache e Registradores
 Registradores: armazenam dados a serem
usados de imediato
 Cache: armazena dados usados mais
frequentemente
 http://taturial.blogspot.com.br/2012/02/diferenca-entre-as-
memorias.html
 http://informatica.hsw.uol.com.br/memoria-do-computador4.htm
 http://crv.educacao.mg.gov.br/sistema_crv/index.aspx?ID_OBJETO=3
7829&tipo=ob&cp=003366&cb=&n1=&n2=Biblioteca%20Virtual&n3=C
adernos%20de%20Inform%C3%A1tica&n4=&b=s
69
rangel@dsc.ufcg.edu.br
Hierarquia de Memórias
70
© 2004 by Pearson Education
rangel@dsc.ufcg.edu.br
Classificação de tipos de
Memória
 Quanto às operações suportadas:
 RAM
 ROM
 Quanto ao tempo de permanência de dados:
 Volátil
 Não Volátil
rangel@dsc.ufcg.edu.br
 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.
72
rangel@dsc.ufcg.edu.br
73
Tendências de Hardware
 Características que, grosso modo, duplicam a cada
um ou dois anos:
 Quantidade de memória (execução de programas)
 Quantidade de meio de armazenamento secundário
(e.g. disco rígido)
 Armazenamento de longa duração de programas
e dados
 Rapidez do Processador
 Velocidade com que os computadores executam
os programas
rangel@dsc.ufcg.edu.br
74
 Processamento por Lotes (Batch processing)
 Apenas um serviço (job) ou uma tarefa (task)
por vez
 Sistemas Operacionais
 Gestão de transições entre serviços/tarefas
 Throughput incrementada
 Quantidade de trabalho processada por
computadores
Evolução dos Sistemas
Operacionais
rangel@dsc.ufcg.edu.br
75
 Multiprogramação
 Compartilhamento de recursos
computacionais por vários serviços ou
tarefas
 Compartilhamento de Tempo (Timesharing)
 Execução de diversos serviços, com a UCP
alternando-se entre eles tão freqüentemente
que os usuários podem interagir com cada
programa durante sua execução.
Evolução dos Sistemas
Operacionais
rangel@dsc.ufcg.edu.br
76
 Computação Pessoal
 Econômica o bastante para uso individual
 Computação Distribuída
 Processamento da informação através de
redes de computadores
 Computação Cliente/Servidor
 Compartilhamento da informação ao longo de
redes de computadores entre servidores e
clientes de arquivos (computadores pessoais)
Computação Pessoal, Distribuída e
Cliente/Servidor
rangel@dsc.ufcg.edu.br
77
 Tipos de Linguagens de Programação
 Linguagens de Máquina
 Seqüências de números relativas a instruções
de máquina específicas
 Exemplo: +1300042774
+1400593419
+1200274027
Linguagens de Máquina, de
Montagem e de Alto Nível
rangel@dsc.ufcg.edu.br
78
 Tipos de Linguagens de Programação
 Linguagens de Montagem (Assembly)
 Instruções computacionais formuladas a
partir de termos ingleses abreviados,
representando operações elementares,
traduzidas a partir de montadores
(assemblers)
 Exemplo: LOAD A
ADD B
STORE (A+B)
Linguagens de Máquina, de
Montagem e de Alto Nível
rangel@dsc.ufcg.edu.br
79
 Tipos de Linguagens de Programação
 Linguagens de Alto Nível
 Códigos similares ao inglês cotidiano
 Uso de notações matemáticas (traduzidas via
compiladores)
 Exemplo: Bruto = Líquido + Descontos
Área = (Base * Altura)/2
Linguagens de Máquina, de
Montagem e de Alto Nível
rangel@dsc.ufcg.edu.br
80
 Linguagem C
 Desenvolvida por Ritchie, a partir de duas
linguagens de programação antecessoras:
BCPL e B
 Uso no desenvolvimento do UNIX
 Emprego na codificação de sistemas
operacionais modernos
 Independência de hardware (portável)
 "C Tradicional"  C desenvolvido no final da
década de 70
Histórico da Linguagem C
rangel@dsc.ufcg.edu.br
81
 Padronização da Linguagem C
 Motivação: Incompatibilidade entre diversas
variantes existentes de C
 Formação de um comitê da ANSI para a
definição de uma linguagem "isenta de
ambigüidades e independente de máquina"
 Criação do C padrão em 1989
 Atualização da linguagem em 1999
Histórico da Linguagem C
rangel@dsc.ufcg.edu.br
82
 Programas em C  módulos denominados
funções
 Possibilidade de criação de funções
específicas pelo programador
 Vantagem
 Conhecimento exato do comportamento das
funções
 Desvantagem
 Dispêndio de tempo no desenvolvimento de
funções específicas
A Biblioteca Padrão de C
rangel@dsc.ufcg.edu.br
83
 Programas em C  módulos denominados
funções
 Uso freqüente das funções da biblioteca de C por
programadores
 Uso como “blocos” para a construção de
aplicações próprias
 Reuso evita a “reinvenção da roda”
 Uso de funções existentes é, em geral, melhor do
que a reescrita de código com o mesmo
propósito
 Funções da biblioteca foram cuidadosamente
desenvolvidas para uso eficiente e portabilidade
A Biblioteca Padrão de C
rangel@dsc.ufcg.edu.br
84
 Objetos
 Componentes reusáveis de software que
modelam itens do mundo real
 Unidades significativas de software
 Objetos de dados, tempo, pagamento,
áudio, vídeo, arquivos, etc.
 Qualquer nome pode ser representado
como um objeto com comportamento
bem definido
 Maior capacidade de reuso
Tendências de Desenvolvimento de
Software: Tecnologia de Objetos
rangel@dsc.ufcg.edu.br
85
 Objetos
 Maior compreensibilidade, melhor
organização, maior facilidade de manutenção
do que a programação baseada em
procedimentos (procedural)
 Favorescimento à modularidade
Tendências de Desenvolvimento de
Software: Tecnologia de Objetos
rangel@dsc.ufcg.edu.br
86
 C++
 Superconjunto de C, desenvolvido por Bjarne
Stroustrup no Bell Labs
 “Extende" C, oferecendo facilidades de
orientação a objetos
 Poder do projeto orientado a objetos
 Produtividade incrementada de 10 a 100
vezes
 Linguagem dominante na indústria e em
academias
C e C++
rangel@dsc.ufcg.edu.br
87
 Aprendizado de C++
 Uma vez que C++ abrange C, se afigura
indispensável o domínio de C para um
aprendizado efetivo de C++
 Vide Capítulo 15 (introdução ao C++)
C e C++
rangel@dsc.ufcg.edu.br
88
 Uso de Java
 Criação de páginas Web com conteúdo
dinâmico e interativo
 Desenvolvimento de aplicações empresariais
em larga escala
 Incrementação da funcionalidade de
servidores Web
 Desenvolvimento de aplicações para
dispositivos tais como telefones celulares,
pagers e assistentes digitais pessoais (PDA)
JAVA
rangel@dsc.ufcg.edu.br
89
 FORTRAN
 Uso em aplicações de engenharia e
aplicações científicas
 COBOL
 Uso para a manipulação de grandes
quantidades de dados
 Pascal
 Uso acadêmico
Outras Linguagens de Alto
Nível
rangel@dsc.ufcg.edu.br
90
Programação Estruturada
 Programação Estruturada
 Abordagem com regras bem definidas para
a escrita de programas
 Clareza, facilidade de teste e depuração e
facilidade de alteração do código
rangel@dsc.ufcg.edu.br
91
Pré-processador Disco
Ambiente Típico de Desenvolvimento
de Programas em C
 Fases de Programas
em C/C++
 Edição
 Pré-processamento
 Compilação
 Linkagem
 Carregamento
 Execução
O programa é criado no
editor e armazenado em
disco.
O programa pré-
processador processa o
código.
O carregador transfere o
programa para a memória.
A UCP recupera cada
instrução e a executa,
armazenando (quando
possível) novos valores de
dados à medida que o
programa é executado.
O compilador cria o
código-objeto e o
armazena em disco.
O linker faz o link do
código-objeto com as
bibliotecas.
Carregador
Compilador
Editor
Linker
Disco
UCP
Memória Primária
Disco
Disco
Disco
Memória Primária
rangel@dsc.ufcg.edu.br
92
/* Programa que executa a soma de dois inteiros */
#include <stdio.h>
/* início da função main */
int main()
{
int inteiro1; /*variável que contém a primeira parcela da soma */
int inteiro2; /* variável que contém a segunda parcela da soma */
int soma; /* variável na qual será armazenado o resultado da soma */
printf(“Digite o primeiro inteiro:n"); /*preparação para o recebimento do
primeiro número inteiro */
scanf( "%d", &inteiro1 ); /* leitura do primeiro número */
printf(“Digite o segundo inteiro:n"); /* preparação para o recebimento do
segundo número inteiro*/
scanf( "%d", &inteiro2 ); /* leitura do primeiro número */
soma = inteiro1 + inteiro2; /* realização da soma dos 2 inteiros digitados pelo
usuário */
printf( “A soma eh igual a %dn", soma ); /* impressão da soma */
return 0; /* indicação de que o programa encerrou satisfatoriamente */
} /* fim da função main */
Preparação para o Capítulo 2
Exemplo (Soma de 2 Inteiros)
CEEI DSC
rangel@dsc.ufcg.edu.br
Andrey Elisio Monteiro Brito
José Eustáquio Rangel de Queiroz
Joseluce de Farias Cunha
Roberto Medeiros de Faria
DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO
UNIVERSIDADE FEDERAL DE CAMPINA GRANDE
CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA

IP_Notas01.ppt

  • 1.
    CEEI DSC rangel@dsc.ufcg.edu.br Profs.: AndreyElisio Monteiro Brito José Eustáquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria Carga Horária: 60 h
  • 2.
    rangel@dsc.ufcg.edu.br 2 Introdução à Programação Tópicos:  Introdução  O que é um Computador?  Organização de um Computador  Evolução de Sistemas Operacionais  Computação Pessoal, Distribuída e Cliente/Servidor  Linguagens de Máquina, de Montagem (Assembly) e de Alto Nível  Histórico da Linguagem C  A Biblioteca Padrão de C
  • 3.
    rangel@dsc.ufcg.edu.br 3  Tendências deDesenvolvimento de Software: Tecnologia de Objetos  C e C++  Java  Outras Linguagens de Alto Nível  Programação Estruturada  Fundamentos de um Ambiente Típico de Desenvolvimento de Programas em C  Tendências de Hardware  Internet  World Wide Web (WEB) Introdução à Programação
  • 4.
    rangel@dsc.ufcg.edu.br 4 Objetivos  Após adiscussão do material deste capítulo, v. será capaz de:  Compreender conceitos computacionais básicos;  Familiarizar-se com diferentes tipos de linguagens de programação;  Familiarizar-se com o histórico da linguagem de programação C;  Tomar conhecimento da biblioteca-padrão da linguagem C;
  • 5.
    rangel@dsc.ufcg.edu.br 5 Objetivos  Após adiscussão do material deste capítulo, v. será capaz de:  Compreender os elementos de um ambiente típico de programação em C;  Entender porque é importante aprender C em um primeiro curso programação;  Ponderar porque C oferece um embasamento para estudos posteriores de outras linguagens de programação, em especial C++ e Java.
  • 6.
    rangel@dsc.ufcg.edu.br 6 Introdução  Objeto deEstudo  A linguagem de programação C  Técnicas de Programação Estruturada  Extensão do Livro-texto  Fundamentos de C++  Capítulos 15 a 23  Fundamentos de Java  Capítulos 24 a 30  Público-alvo  Estudantes universitários com pouca ou nenhuma experiência de programação
  • 7.
    rangel@dsc.ufcg.edu.br 7  Computador  Dispositivocapaz de realizar computações e tomar decisões lógicas  Computadores processam dados a partir de conjuntos de instruções denominadas programas  Máquina eletrônica capaz de receber dados, submetê-los a um conjunto especificado/pré- determinado de operações lógicas/aritméticas e fornecer o resultado destas operações O que é um Computador?
  • 8.
    rangel@dsc.ufcg.edu.br 8  Os computadoresatuais são dispositivos eletrônicos que, sob direção e controle de um programa, executam quatro operações fundamentais  Entrada (Input)  Processamento (Processing)  Saída (Output)  Armazenamento (Storage) O que é um Computador?
  • 9.
  • 10.
    rangel@dsc.ufcg.edu.br 10  Sistema decomputação  Integração de componentes atuando como uma entidade, com o propósito de processar dados, i.e. realizar algum tipo de operação aritmética/ lógica envolvendo os dados, de modo a produzir diferentes níveis de informações O que é um Computador?
  • 11.
    rangel@dsc.ufcg.edu.br 11  Componentes deum Sistema Computacional Peopleware Software Hardware O que é um Computador?
  • 12.
    rangel@dsc.ufcg.edu.br 12  Componentes deum Sistema Computacional  Peopleware  Componente humana de um sistema de computação, i.e. indivíduos que utilizam o computador como ferramenta O que é um Computador?
  • 13.
    rangel@dsc.ufcg.edu.br 13  Componentes deum Sistema Computacional  Hardware  Componente física de um sistema de computação, i.e. todos os equipamentos utilizados pelo usuário nas ações de entrada, processamento, armazenamento e saída de dados O que é um Computador?
  • 14.
    rangel@dsc.ufcg.edu.br 14  Componentes deum 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 de computador)  programas básicos e programas do usuário O que é um Computador?
  • 15.
    rangel@dsc.ufcg.edu.br O Software  É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 15
  • 16.
    rangel@dsc.ufcg.edu.br Software Básico  Osoftware 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 16
  • 17.
    rangel@dsc.ufcg.edu.br Software Básico TIPOS deSoftware Básico:  Sistemas Operacionais,  Compiladores,  Utilitários:  Office  Comunicação  Compactação  SGBD,  Tocadores e editores de áudio, vídeo, etc. 17
  • 18.
    rangel@dsc.ufcg.edu.br Software Aplicativo  soluçãode 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 18
  • 19.
    rangel@dsc.ufcg.edu.br Software Aplicativo  Customizado Aplicaçõesoriginais desenvolvidas por analistas e programadores  Pronto  Free (Domínio público, código aberto,..)  Shareware 19
  • 20.
    rangel@dsc.ufcg.edu.br 20 Unidade Central deProcessamento Unidade de Controle ULA Unidade Primária de Armazenamento Dispositivos de Entrada Dispositivos de Saída Dispositivos de Armazenamento Secundário O Hardware
  • 21.
    rangel@dsc.ufcg.edu.br 21  Partes Funcionaisde um computador :  Unidade de Entrada (Input Unit)  Obtenção de dados a partir de dispositivos de entrada (e.g. teclado, mouse)  Unidade de Saída (Output unit)  Apresenta a informação em dispositivos de saída (e.g. monitor, impressora)  Unidade de Memória (Memory unit)  Acesso rápido, de baixa capacidade de armazenamento de informações. Organização de um Computador
  • 22.
    rangel@dsc.ufcg.edu.br 22  Unidade Centralde Processamento – UCP (Central Processing unit - CPU)  Supervisão e coordenação das demais unidades que compõem o computador  Unidade de Armazenamento Secundário (Secondary storage unit)  Armazenamento barato, de alta capacidade e longa duração  Armazenamento de programas inativos Organização de um Computador
  • 23.
    rangel@dsc.ufcg.edu.br Unidade Central de Processamento Conjunto complexo de circuitos eletrônicos.  Executa instruções de programas armazenadas.  Duas partes:  Unidade de Controle  Unidade Aritmética e Lógica (ALU) 23 © 2004 by Pearson Education
  • 24.
    rangel@dsc.ufcg.edu.br Unidade de Controle Direciona o sistema do computador a executar instruções de programa armazenadas.  Deve comunicar-se com a memória e com a ALU.  Envia dados e instruções do armazenamento secundário para a memória, quando necessário. 24 © 2004 by Pearson Education
  • 25.
    rangel@dsc.ufcg.edu.br Unidade Aritmética eLógica  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 25 © 2004 by Pearson Education
  • 26.
    rangel@dsc.ufcg.edu.br Armazenamento de Dadose a CPU  Dois tipos de armazenamento:  Armazenamento primário (memória):  Armazena dados 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. 26 © 2004 by Pearson Education
  • 27.
    rangel@dsc.ufcg.edu.br A CPU ea Memória  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 recupera dados do disco e transfere-os para a memória.  Itens enviados à CPU para ser processados:  A unidade de controle envia itens à CPU e depois os envia novamente à memória após serem processados.  Dados e instruções permanecem na memória até serem enviados a um dispositivo de saída ou armazenamento, ou o programa ser fechado. 27 © 2004 by Pearson Education
  • 28.
    rangel@dsc.ufcg.edu.br Áreas de Armazenamento Temporário Registradores  Memória 28 © 2004 by Pearson Education
  • 29.
    rangel@dsc.ufcg.edu.br Registradores  Áreas dearmazenamento 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. 29 © 2004 by Pearson Education
  • 30.
    rangel@dsc.ufcg.edu.br Memória  Também conhecidacomo armazenamento primário e memória principal.  Freqüentemente expressa como 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. 30 © 2004 by Pearson Education
  • 31.
    rangel@dsc.ufcg.edu.br Como a CPUExecuta Instruções  Quatro etapas são executadas para cada instrução: captação, decodificação, execução e armazenamento.  Ciclo de máquina: a quantidade de tempo necessária para executar uma instrução.  Computadores pessoais executam-nas em menos de um milioné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. 31
  • 32.
    rangel@dsc.ufcg.edu.br O Ciclo daMáquina  O tempo necessário para recuperar, executar e armazenar uma operação.  Componentes:  Tempo de instrução  Tempo de execução  O clock de sistema sincroniza as operações. 32 © 2004 by Pearson Education
  • 33.
    rangel@dsc.ufcg.edu.br Tempo de Instrução Também chamado de I-time.  A unidade de controle recebe a instrução da memória e a coloca em um registro.  A unidade de controle decodifica a instrução e determina qual é a localização na memória para os dados necessários. 33 © 2004 by Pearson Education
  • 34.
    rangel@dsc.ufcg.edu.br Tempo de Execução A unidade de controle transfere dados da memória para registros na ALU.  A ALU executa instruções relativas aos dados.  A unidade de controle armazena o resultado da operação na memória ou em um registro. 34 © 2004 by Pearson Education
  • 35.
    rangel@dsc.ufcg.edu.br Endereços de Memória Cada localização de memória tem um endereço:  Um número único, como em uma caixa postal.  Pode conter somente uma instrução ou peça de dados:  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. 35 © 2004 by Pearson Education
  • 36.
    rangel@dsc.ufcg.edu.br Representação de Dados 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. 36 © 2004 by Pearson Education
  • 37.
    rangel@dsc.ufcg.edu.br Representando Dados  Bit Byte  Palavra 37 © 2004 by Pearson Education
  • 38.
    rangel@dsc.ufcg.edu.br Bit  Abreviação debinary 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. 38 © 2004 by Pearson Education
  • 39.
    rangel@dsc.ufcg.edu.br Byte  Um grupode 8 bits.  Cada byte tem 256 (28) valores possíveis.  Para texto, armazena um caractere:  Pode ser letra, dígito ou caractere especial.  Dispositivos de memória e armazenamento são medidos em número de bytes. 39 © 2004 by Pearson Education
  • 40.
    rangel@dsc.ufcg.edu.br Palavra  O númerode 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. 40 © 2004 by Pearson Education
  • 41.
    rangel@dsc.ufcg.edu.br Capacidades de Armazenamento  Kilobyte:1024 (210) bytes.  Capacidade de memória dos computadores pessoais mais antigos.  Megabyte: aproximadamente, um milhão (220) de bytes.  Memória de computadores pessoais.  Dispositivos de armazenamento portáteis (disquetes, CD-ROMs).  Gigabyte: aproximadamente, um bilhão (230) de bytes.  Dispositivos de armazenamento (discos rígidos).  Memória de mainframes e servidores de rede.  Terabyte: aproximadamente, um trilhão (240) de bytes.  Dispositivos de armazenamento para sistemas muito grandes. 41 © 2004 by Pearson Education
  • 42.
    rangel@dsc.ufcg.edu.br Capacidades de Armazenamento  SUMÁRIO: · 1 Bit = Binary Digit · 8 Bits = 1 Byte · 1000 Bytes = 1 Kilobyte · 1000 Kilobytes = 1 Megabyte · 1000 Megabytes = 1 Gigabyte · 1000 Gigabytes = 1 Terabyte · 1000 Terabytes = 1 Petabyte · 1000 Petabytes = 1 Exabyte · 1000 Exabytes = 1 Zettabyte · 1000 Zettabytes = 1 Yottabyte · 1000 Yottabytes = 1 Brontobyte · 1000 Brontobytes = 1 Geopbyte 42
  • 43.
    rangel@dsc.ufcg.edu.br Esquemas de Codificação Provêem uma maneira comum para representar um caractere de dados.  Necessários para os computadores poderem intercambiar dados.  Esquemas comuns:  ASCII  EBCDIC  Unicode 43 © 2004 by Pearson Education
  • 44.
    rangel@dsc.ufcg.edu.br ASCII  Sigla deAmerican Standard Code for Information Interchange.  O padrão mais amplamente usado.  Usado virtualmente em todos os computadores pessoais. 44 © 2004 by Pearson Education
  • 45.
    rangel@dsc.ufcg.edu.br EBCDIC  Sigla deExtended Binary Coded Decimal Interchange Code.  Usado principalmente em mainframes IBM e compatíveis com IBM. 45 © 2004 by Pearson Education
  • 46.
    rangel@dsc.ufcg.edu.br Unicode  Projetado paraacomodar 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. 46 © 2004 by Pearson Education
  • 47.
    rangel@dsc.ufcg.edu.br A Unidade deSistema  Abriga os componentes eletrônicos do sistema de computador:  Placa-mãe (motherboard)  Dispositivos de armazenamento 47 © 2004 by Pearson Education
  • 48.
    rangel@dsc.ufcg.edu.br Placa-mãe (motherboard)  Placade circuitos plana que contém os circuitos do computador.  A unidade central de processamento (microprocessador) é o componente mais importante. http://www.youtube.com/watch?v=zq WKDzlIssU 48 © 2004 by Pearson Education
  • 49.
    rangel@dsc.ufcg.edu.br Dispositivos de Armazenamento  Armazenamentode longo prazo da memória.  Dados não se perdem quando o computador é desligado.  Incluem-se entre os exemplos: discos rígidos, disquetes, DVD-ROMs. 49 © 2004 by Pearson Education
  • 50.
    rangel@dsc.ufcg.edu.br Microprocessador  Unidade centralde 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. 50 © 2004 by Pearson Education
  • 51.
    rangel@dsc.ufcg.edu.br Microprocessador  Como funcionamos processadores http://www.youtube.com/watch?v=IfOIB4-pn1k  Conheça mais o processador http://olhardigital.uol.com.br/produtos/central_ de_videos/conheca-seu-micro-processador 51
  • 52.
    rangel@dsc.ufcg.edu.br Transistores  Comutadores eletrônicosque 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. 52 © 2004 by Pearson Education
  • 53.
    rangel@dsc.ufcg.edu.br Tipos de Chips 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 vendido 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. 53
  • 54.
    rangel@dsc.ufcg.edu.br Componentes da Memória RAM e ROM  Tecnologias:  Memória semicondutora  Memória Flash 54 © 2004 by Pearson Education
  • 55.
    rangel@dsc.ufcg.edu.br Memória Semicondutora  Usadapela 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. 55 © 2004 by Pearson Education
  • 56.
    rangel@dsc.ufcg.edu.br Memória Flash • umchip re-escrevível que, ao contrário de uma memória RAM, preserva o seu conteúdo sem a necessidade de fonte de alconvencionalimentaçã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. 56
  • 57.
    rangel@dsc.ufcg.edu.br RAM e ROM Memória de Acesso Aleatório – Random- Access Memory (RAM)  Memória Somente de Leitura – Read-Only Memory (ROM) 57 © 2004 by Pearson Education
  • 58.
    rangel@dsc.ufcg.edu.br Memória de AcessoAleatório  Dados 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. 58 © 2004 by Pearson Education
  • 59.
    rangel@dsc.ufcg.edu.br Memória Somente deLeitura  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.  Chips de ROM programáveis (PROM):  Algumas instruções no chip podem ser alteradas. 59 © 2004 by Pearson Education
  • 60.
    rangel@dsc.ufcg.edu.br O Barramento (Bus)do Sistema  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). 60 © 2004 by Pearson Education
  • 61.
    rangel@dsc.ufcg.edu.br Largura de Barramento 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. 61 © 2004 by Pearson Education
  • 62.
    rangel@dsc.ufcg.edu.br Velocidade de Barramento 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. 62 © 2004 by Pearson Education
  • 63.
    rangel@dsc.ufcg.edu.br Barramentos de Expansão Adiciona dispositivos periféricos ao sistema:  Placa de expansão  Porta 63 © 2004 by Pearson Education
  • 64.
    rangel@dsc.ufcg.edu.br Placas de Expansão Conectam-se a slots (encaixes) de expansão ou à placa-mãe.  São usadas para conectar dispositivos periféricos.  A maioria dos computadores são “onboard”. 64 © 2004 by Pearson Education
  • 65.
    rangel@dsc.ufcg.edu.br Portas  Conectores externospara plugar periféricos, como, por exemplo, impressoras.  Dois tipos de portas:  Seriais: transmitem dados à base de um bit a cada vez.  Usadas para dispositivos lentos, como o mouse e o teclado.  Paralelas: transmitem grupos de bits em conjunto, lado a lado.  Usadas para dispositivos mais rápidos, como impressoras e scanners. 65 © 2004 by Pearson Education
  • 66.
    rangel@dsc.ufcg.edu.br Cache  Uma áreade armazenamento temporário:  Agiliza a transferência de dados dentro do computador.  Memória cache  Cache de processador 66 © 2004 by Pearson Education
  • 67.
    rangel@dsc.ufcg.edu.br Memória Cache  Umpequeno 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 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. 67 © 2004 by Pearson Education
  • 68.
    rangel@dsc.ufcg.edu.br Cache de Processador 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. 68 © 2004 by Pearson Education
  • 69.
    rangel@dsc.ufcg.edu.br Cache e Registradores Diferença entre Memória Cache e Registradores  Registradores: armazenam dados a serem usados de imediato  Cache: armazena dados usados mais frequentemente  http://taturial.blogspot.com.br/2012/02/diferenca-entre-as- memorias.html  http://informatica.hsw.uol.com.br/memoria-do-computador4.htm  http://crv.educacao.mg.gov.br/sistema_crv/index.aspx?ID_OBJETO=3 7829&tipo=ob&cp=003366&cb=&n1=&n2=Biblioteca%20Virtual&n3=C adernos%20de%20Inform%C3%A1tica&n4=&b=s 69
  • 70.
  • 71.
    rangel@dsc.ufcg.edu.br Classificação de tiposde Memória  Quanto às operações suportadas:  RAM  ROM  Quanto ao tempo de permanência de dados:  Volátil  Não Volátil
  • 72.
    rangel@dsc.ufcg.edu.br  Que usamú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. 72
  • 73.
    rangel@dsc.ufcg.edu.br 73 Tendências de Hardware Características que, grosso modo, duplicam a cada um ou dois anos:  Quantidade de memória (execução de programas)  Quantidade de meio de armazenamento secundário (e.g. disco rígido)  Armazenamento de longa duração de programas e dados  Rapidez do Processador  Velocidade com que os computadores executam os programas
  • 74.
    rangel@dsc.ufcg.edu.br 74  Processamento porLotes (Batch processing)  Apenas um serviço (job) ou uma tarefa (task) por vez  Sistemas Operacionais  Gestão de transições entre serviços/tarefas  Throughput incrementada  Quantidade de trabalho processada por computadores Evolução dos Sistemas Operacionais
  • 75.
    rangel@dsc.ufcg.edu.br 75  Multiprogramação  Compartilhamentode recursos computacionais por vários serviços ou tarefas  Compartilhamento de Tempo (Timesharing)  Execução de diversos serviços, com a UCP alternando-se entre eles tão freqüentemente que os usuários podem interagir com cada programa durante sua execução. Evolução dos Sistemas Operacionais
  • 76.
    rangel@dsc.ufcg.edu.br 76  Computação Pessoal Econômica o bastante para uso individual  Computação Distribuída  Processamento da informação através de redes de computadores  Computação Cliente/Servidor  Compartilhamento da informação ao longo de redes de computadores entre servidores e clientes de arquivos (computadores pessoais) Computação Pessoal, Distribuída e Cliente/Servidor
  • 77.
    rangel@dsc.ufcg.edu.br 77  Tipos deLinguagens de Programação  Linguagens de Máquina  Seqüências de números relativas a instruções de máquina específicas  Exemplo: +1300042774 +1400593419 +1200274027 Linguagens de Máquina, de Montagem e de Alto Nível
  • 78.
    rangel@dsc.ufcg.edu.br 78  Tipos deLinguagens de Programação  Linguagens de Montagem (Assembly)  Instruções computacionais formuladas a partir de termos ingleses abreviados, representando operações elementares, traduzidas a partir de montadores (assemblers)  Exemplo: LOAD A ADD B STORE (A+B) Linguagens de Máquina, de Montagem e de Alto Nível
  • 79.
    rangel@dsc.ufcg.edu.br 79  Tipos deLinguagens de Programação  Linguagens de Alto Nível  Códigos similares ao inglês cotidiano  Uso de notações matemáticas (traduzidas via compiladores)  Exemplo: Bruto = Líquido + Descontos Área = (Base * Altura)/2 Linguagens de Máquina, de Montagem e de Alto Nível
  • 80.
    rangel@dsc.ufcg.edu.br 80  Linguagem C Desenvolvida por Ritchie, a partir de duas linguagens de programação antecessoras: BCPL e B  Uso no desenvolvimento do UNIX  Emprego na codificação de sistemas operacionais modernos  Independência de hardware (portável)  "C Tradicional"  C desenvolvido no final da década de 70 Histórico da Linguagem C
  • 81.
    rangel@dsc.ufcg.edu.br 81  Padronização daLinguagem C  Motivação: Incompatibilidade entre diversas variantes existentes de C  Formação de um comitê da ANSI para a definição de uma linguagem "isenta de ambigüidades e independente de máquina"  Criação do C padrão em 1989  Atualização da linguagem em 1999 Histórico da Linguagem C
  • 82.
    rangel@dsc.ufcg.edu.br 82  Programas emC  módulos denominados funções  Possibilidade de criação de funções específicas pelo programador  Vantagem  Conhecimento exato do comportamento das funções  Desvantagem  Dispêndio de tempo no desenvolvimento de funções específicas A Biblioteca Padrão de C
  • 83.
    rangel@dsc.ufcg.edu.br 83  Programas emC  módulos denominados funções  Uso freqüente das funções da biblioteca de C por programadores  Uso como “blocos” para a construção de aplicações próprias  Reuso evita a “reinvenção da roda”  Uso de funções existentes é, em geral, melhor do que a reescrita de código com o mesmo propósito  Funções da biblioteca foram cuidadosamente desenvolvidas para uso eficiente e portabilidade A Biblioteca Padrão de C
  • 84.
    rangel@dsc.ufcg.edu.br 84  Objetos  Componentesreusáveis de software que modelam itens do mundo real  Unidades significativas de software  Objetos de dados, tempo, pagamento, áudio, vídeo, arquivos, etc.  Qualquer nome pode ser representado como um objeto com comportamento bem definido  Maior capacidade de reuso Tendências de Desenvolvimento de Software: Tecnologia de Objetos
  • 85.
    rangel@dsc.ufcg.edu.br 85  Objetos  Maiorcompreensibilidade, melhor organização, maior facilidade de manutenção do que a programação baseada em procedimentos (procedural)  Favorescimento à modularidade Tendências de Desenvolvimento de Software: Tecnologia de Objetos
  • 86.
    rangel@dsc.ufcg.edu.br 86  C++  Superconjuntode C, desenvolvido por Bjarne Stroustrup no Bell Labs  “Extende" C, oferecendo facilidades de orientação a objetos  Poder do projeto orientado a objetos  Produtividade incrementada de 10 a 100 vezes  Linguagem dominante na indústria e em academias C e C++
  • 87.
    rangel@dsc.ufcg.edu.br 87  Aprendizado deC++  Uma vez que C++ abrange C, se afigura indispensável o domínio de C para um aprendizado efetivo de C++  Vide Capítulo 15 (introdução ao C++) C e C++
  • 88.
    rangel@dsc.ufcg.edu.br 88  Uso deJava  Criação de páginas Web com conteúdo dinâmico e interativo  Desenvolvimento de aplicações empresariais em larga escala  Incrementação da funcionalidade de servidores Web  Desenvolvimento de aplicações para dispositivos tais como telefones celulares, pagers e assistentes digitais pessoais (PDA) JAVA
  • 89.
    rangel@dsc.ufcg.edu.br 89  FORTRAN  Usoem aplicações de engenharia e aplicações científicas  COBOL  Uso para a manipulação de grandes quantidades de dados  Pascal  Uso acadêmico Outras Linguagens de Alto Nível
  • 90.
    rangel@dsc.ufcg.edu.br 90 Programação Estruturada  ProgramaçãoEstruturada  Abordagem com regras bem definidas para a escrita de programas  Clareza, facilidade de teste e depuração e facilidade de alteração do código
  • 91.
    rangel@dsc.ufcg.edu.br 91 Pré-processador Disco Ambiente Típicode Desenvolvimento de Programas em C  Fases de Programas em C/C++  Edição  Pré-processamento  Compilação  Linkagem  Carregamento  Execução O programa é criado no editor e armazenado em disco. O programa pré- processador processa o código. O carregador transfere o programa para a memória. A UCP recupera cada instrução e a executa, armazenando (quando possível) novos valores de dados à medida que o programa é executado. O compilador cria o código-objeto e o armazena em disco. O linker faz o link do código-objeto com as bibliotecas. Carregador Compilador Editor Linker Disco UCP Memória Primária Disco Disco Disco Memória Primária
  • 92.
    rangel@dsc.ufcg.edu.br 92 /* Programa queexecuta a soma de dois inteiros */ #include <stdio.h> /* início da função main */ int main() { int inteiro1; /*variável que contém a primeira parcela da soma */ int inteiro2; /* variável que contém a segunda parcela da soma */ int soma; /* variável na qual será armazenado o resultado da soma */ printf(“Digite o primeiro inteiro:n"); /*preparação para o recebimento do primeiro número inteiro */ scanf( "%d", &inteiro1 ); /* leitura do primeiro número */ printf(“Digite o segundo inteiro:n"); /* preparação para o recebimento do segundo número inteiro*/ scanf( "%d", &inteiro2 ); /* leitura do primeiro número */ soma = inteiro1 + inteiro2; /* realização da soma dos 2 inteiros digitados pelo usuário */ printf( “A soma eh igual a %dn", soma ); /* impressão da soma */ return 0; /* indicação de que o programa encerrou satisfatoriamente */ } /* fim da função main */ Preparação para o Capítulo 2 Exemplo (Soma de 2 Inteiros)
  • 93.
    CEEI DSC rangel@dsc.ufcg.edu.br Andrey ElisioMonteiro Brito José Eustáquio Rangel de Queiroz Joseluce de Farias Cunha Roberto Medeiros de Faria DEPARTAMENTO DE SISTEMAS E COMPUTAÇÃO UNIVERSIDADE FEDERAL DE CAMPINA GRANDE CENTRO DE ENGENHARIA ELÉTRICA E INFORMÁTICA