professoras: ariane machado lima fátima l. s. nunesariane/ach2001/ach2001-aula03... · 2009. 3....
TRANSCRIPT
SISTEMAS DEINFORMAÇÃO
1
Professoras:
�Ariane Machado Lima
� Fátima L. S. Nunes
SISTEMAS DEINFORMAÇÃO
2
� Mais sobre a arquitetura de Von Neumann.
� Linguagens, compiladores e interpretadores.
� Representação interna dos dados.
SISTEMAS DEINFORMAÇÃO
3
AlgoritmosAlgoritmosAlgoritmosAlgoritmos
Programas e Programas e Programas e Programas e
LinguagensLinguagensLinguagensLinguagens
SISTEMAS DEINFORMAÇÃO
4
Qual a diferenQual a diferenQual a diferenQual a diferençççça entre a entre a entre a entre computadores e computadores e computadores e computadores e calculadoras?calculadoras?calculadoras?calculadoras?
SISTEMAS DEINFORMAÇÃO
5
Qual a diferença entre computadores e
calculadoras?
� Computadores são programáveis � permiterealizar tarefas complexas.
� A forma que essas tarefas devem ser realizadas precisa ser descrita em umalinguagem apropriada.
Qual a diferenQual a diferenQual a diferenQual a diferençççça entre a entre a entre a entre computadores e computadores e computadores e computadores e calculadoras?calculadoras?calculadoras?calculadoras?
SISTEMAS DEINFORMAÇÃO
6
� Algoritmos e programas � conceitos nãorestritos à computação.
� Tarefas algorítmicas:◦ Cozinhar;◦ Montar brinquedos;◦ Realizar cálculos matemáticos;◦ Tocar uma música em um instrumento musical.
SISTEMAS DEINFORMAÇÃO
7
� Algoritmos:
◦ Seqüências finitas de regras ou instruções queespecificam como determinadas operações básicas, executáveis mecanicamente, devem ser combinadaspara a realização de tarefas desejadas.
SISTEMAS DEINFORMAÇÃO
8
� Algoritmos:◦ Receitas de cozinha, instruções de montagem, regras de cálculo e partituras musicais.
� Programa é uma notação para um algoritmo:◦ Receita de cozinha pode ser denotada por:� um texto;� um áudio;� um vídeo;
SISTEMAS DEINFORMAÇÃO
9
� Os programas, por sua vez, são descritos emdiferentes linguagens:◦ Receita de cozinha:� um texto � língua escrita (português, inglês, etc.);
� um audio � língua falada (português, inglês, etc.);� um vídeo � língua falada e imagens.
� As linguagens possuem diferentes níveis de expressividade.
SISTEMAS DEINFORMAÇÃO
10
� O que diferencia os conceitos de algoritmo e programas em computação?
� Algoritmos:◦ tarefas automatizáveis por computadores.
� Programas:◦ Descrição de como os computadores devem realizaressas
SISTEMAS DEINFORMAÇÃO
11
� A descrição das tarefas a serem realizadaspelos computadores é feita por meio de programas.
� Os programas, por sua vez, são descritosutilizando linguagens de programação.
� A idéia ou processo abstrato que esseprograma representa é chamado de algoritmo.
SISTEMAS DEINFORMAÇÃO
12
Linguagem do Linguagem do Linguagem do Linguagem do computadorcomputadorcomputadorcomputador
SISTEMAS DEINFORMAÇÃO
13
� Computadores são capazes de executarapenas um pequeno número de operaçõesbásicas bastante simples – carregar um valor; somar, dividir, multiplicar valores;
� Porém, em princípio, pode ser usado pararesolver qualquer problema cuja solução podeser obtida por meio de um algoritmo.
� Conjunto reduzido de instruções paracombinação dessas operações básicas ésuficiente para expressar qualquer algoritmocomputável.
Linguagem do Linguagem do Linguagem do Linguagem do computadorcomputadorcomputadorcomputador
SISTEMAS DEINFORMAÇÃO
14
� Bohm e Jacopini (1966):
◦ Mostraram que apenas três estruturas de controlesão necessárias para representar um algoritmo:
� SeqSeqSeqSeqüüüüênciaênciaênciaência: ação 1; ação 2;
� SeleSeleSeleSeleççççãoãoãoão: seleção de um dentre vários cursos de açõesde acordo com uma condição;
� RepetiRepetiRepetiRepetiççççãoãoãoão: repetição de várias ações ou seqüências de ações de acordo com uma condição.
Linguagem do computadorLinguagem do computadorLinguagem do computadorLinguagem do computador
SISTEMAS DEINFORMAÇÃO
15
� Dispositivos eletrônicos atuais são capazesde distinguir dois tipos de sinais elétricos:
◦ Passagem de corrente em um sentido;
◦ Passagem de corrente em sentido inverso.
� Ou seja, permitem distinguir um alfabeto com apenas dois símbolos:
◦ 1 (um) e 0 (zero) chamado
Linguagem do computadorLinguagem do computadorLinguagem do computadorLinguagem do computador
SISTEMAS DEINFORMAÇÃO
16
� Dispositivos eletrônicos atuais são capazesde distinguir dois tipos de sinais elétricos:
◦ Passagem de corrente em um sentido;
◦ Passagem de corrente em sentido inverso.
� Ou seja, permitem distinguir um alfabeto com apenas dois símbolos:
◦ 1 (um) e 0 (zero) chamado BITBITBITBIT
Linguagem do computadorLinguagem do computadorLinguagem do computadorLinguagem do computador
SISTEMAS DEINFORMAÇÃO
17
� Dados e operações são representadosem um computador por meio dalinguagem binária de zeros e uns.
◦ 10101101010000 pode ser usadopara representar a operação de soma de dois números.
� Números são representados, em um computador, no sistema de numeração de base 2 (falaremos maisdisso à frente).
� 8 bits = 1 ????
Linguagem do computadorLinguagem do computadorLinguagem do computadorLinguagem do computador
SISTEMAS DEINFORMAÇÃO
18
� Dados e operações são representadosem um computador por meio dalinguagem binária de zeros e uns.
◦ 10101101010000 pode ser usadopara representar a operação de soma de dois números.
� Números são representados, em um computador, no sistema de numeração de base 2 (falaremos maisdisso à frente).
� 8 bits = 1 bytebytebytebyte
Linguagem do computadorLinguagem do computadorLinguagem do computadorLinguagem do computador
SISTEMAS DEINFORMAÇÃO
19
� A linguagemconstituída pelasinstruçõesexecutadas pelocomputador, representadas naforma de seqüências de bits, é chamada de linguagem de máquina.
Linguagem do computadorLinguagem do computadorLinguagem do computadorLinguagem do computador
SISTEMAS DEINFORMAÇÃO
20
OrganizaOrganizaOrganizaOrganizaçççção de ão de ão de ão de ComputadoresComputadoresComputadoresComputadores
(s(s(s(sóóóó uma breve introduuma breve introduuma breve introduuma breve introduçççção...)ão...)ão...)ão...)
SISTEMAS DEINFORMAÇÃO
21
� Apesar do avanço da tecnologia de construção de computadores, todocomputador moderno mantém a organizaçãobásica da arquitetura de ????
Arquitetura atualArquitetura atualArquitetura atualArquitetura atual
SISTEMAS DEINFORMAÇÃO
22
� Apesar do avanço da tecnologia de construção de computadores, todocomputador moderno mantém a organizaçãobásica da arquitetura de Von Neumann.
� Característica:
Arquitetura atualArquitetura atualArquitetura atualArquitetura atual
SISTEMAS DEINFORMAÇÃO
23
� Apesar do avanço da tecnologia de construção de computadores, todocomputador moderno mantém a organizaçãobásica da arquitetura de Von Neumann.
� Característica: programa armazenado, juntocom os dados, na memória
Arquitetura atualArquitetura atualArquitetura atualArquitetura atual
SISTEMAS DEINFORMAÇÃO
24
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
25
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
26
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
27
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
28
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
Estrutura de interconexão
SISTEMAS DEINFORMAÇÃO
29
Filme!Filme!Filme!Filme!
SISTEMAS DEINFORMAÇÃO
30
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
31
� CPU – Central Processing Unit.
� Unidade Central de Processamento(processador) – não é a torre!
� Executa as instruções de um programaexpresso em linguaguem de máquina.
� Interpreta a instrução corrente, executaa operação especificada nessa instrução;
� Determina qual a próxima instrução quedeve ser executada.
SISTEMAS DEINFORMAÇÃO
32
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
33
RegistradoresRegistradoresRegistradoresRegistradores
� Células de armazenamento
� Acesso RÁPIDO
� Um deles é o contador de programa�Guarda o endereço da próxima instrução
� Um deles é o acumulador:�Armazena temporariamente os operando e os
resultados das operações executadas na ULA
SISTEMAS DEINFORMAÇÃO
34
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
35
� Interpreta cada instrução do programa queestá sendo executado (na memória) e estabelece a ordem de execução dessasinstrução.
� Comanda a operação dos demaiscomponentes do computador.
� Usa pelo menos dois registradores:◦ Um para armazenar a instrução corrente;◦ Outro para armazenar o endereço da próximainstrução a ser executada (contador de programas).
SISTEMAS DEINFORMAÇÃO
36
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
37
� Executa, a comando da UC, operaçõesespecificadas nas instruções de um programa� Ex: adição ou comparação de dois números
(binários).
� Um conjunto de registradores é usado paraarmazenar temporiamente os dados e resultados das operações (acumuladores)
� ULA + registradores = Unidade de operação
SISTEMAS DEINFORMAÇÃO
38
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
39
� Comumente chamada de memóriaprincipal ou RAM (Random Access Memory – memória de acessoaleatório).
� Usada para armazenar osprogramas a serem executados pelocomputador e os dados manipulados por esses programas.
� Arquitetura Von Neumann: programas e dados armazenados namemória principal.
SISTEMAS DEINFORMAÇÃO
40
� Consiste em uma seqüência finita de unidades de armazenamento de dados, cadaqual com o seu endereço.
� Normalmente implementada como um conjunto de registradores implementados porflip-flops (circuitos que armazenam um bit).
� Cada unidade de armazenamento de dados memória é chamada de ?.
SISTEMAS DEINFORMAÇÃO
41
� Consiste em uma seqüência finita de unidades de armazenamento de dados, cadaqual com o seu endereço.
� Normalmente implementada como um conjunto de registradores implementados porflip-flops (circuitos que armazenam um bit).
� Cada unidade de armazenamento de dados memória é chamada de palavrapalavrapalavrapalavra.
SISTEMAS DEINFORMAÇÃO
42
� Uma palavra de memória é composta de um número pequeno de bytes (4 ou 8)
� Os dados ou instruções do programa sãoarmazenados em uma ou mais palavras de memória do computador.
SISTEMAS DEINFORMAÇÃO
43
� A linguagem de máquina de um computador contéminstruções paratransferência de dados damemória para osregistradores do processador, e vice-versa.
� Nessas instruções, os dados ou programas sãoreferenciados por meio dos endereços das palavras de memória.
ULA
UC
Registradores
CPU
Memória
Sistema
SISTEMAS DEINFORMAÇÃO
44
ULA
UC
Registradores
CPU
Memória
Disco Fita Impressora
Vídeo Teclado
Barramento de
Sistema
Dispositivos de Entrada/Saída
Dispositivos de Entrada/Saída
SISTEMAS DEINFORMAÇÃO
45
� Usados para comunicação de dados entre o computador e o mundo externo.
SISTEMAS DEINFORMAÇÃO
46
Dispositivos de entradaDispositivos de entradaDispositivos de entradaDispositivos de entrada
� Entrada para o computador
SISTEMAS DEINFORMAÇÃO
47
O QUE MAIS?
Dispositivos de entradaDispositivos de entradaDispositivos de entradaDispositivos de entrada
� Entrada para o computador
SISTEMAS DEINFORMAÇÃO
48
Dispositivos de entradaDispositivos de entradaDispositivos de entradaDispositivos de entrada
� Entrada para o computador
SISTEMAS DEINFORMAÇÃO
49
Dispositivos de saDispositivos de saDispositivos de saDispositivos de saíííídadadada
� Saída do computador
SISTEMAS DEINFORMAÇÃO
50
Dispositivos de entrada Dispositivos de entrada Dispositivos de entrada Dispositivos de entrada e sae sae sae saíííídadadada
SISTEMAS DEINFORMAÇÃO
51
Dispositivos de entrada Dispositivos de entrada Dispositivos de entrada Dispositivos de entrada e sae sae sae saíííídadadada
O QUE MAIS?
SISTEMAS DEINFORMAÇÃO
52
Dispositivos de entrada Dispositivos de entrada Dispositivos de entrada Dispositivos de entrada e sae sae sae saíííídadadada
SISTEMAS DEINFORMAÇÃO
53
SISTEMAS DEINFORMAÇÃO
54
� Uma linguagem de máquina possui:
◦ Instruções para comandar a execução de operaçõesprimitivas, tais como: somar dois números oucomparar se dois números são iguais;
◦ Instruções para transferência de dados entre memória e registradores do processador ou entre memória e dispositivos de E/S;
◦ Instruções para controlar o fluxo de execução das instruções de um programa
SISTEMAS DEINFORMAÇÃO
55
� Linguagem de máquina:◦ Exemplos:� Carregar no registrador R1 o
valor armazenado no endereço3006 da memória;
� Somar os valores contidos nosregistradores R1 e R2 e armazenar o resultado em R1;
� “Desviar” para a instruçãoarmazenada no endereço 520 da memória, se o resultadoobtidado pela execução dainstrução anterior for diferentede zero.
SISTEMAS DEINFORMAÇÃO
56
� As instruções anteriores, formadaspor dezenas de bits, eram utilizadaspara descrever algoritmos.
� Programar era trabalhoso, sujeito a erros difíceis de detectar e corrigir.
� Programadores começaram a utilizarnomes para as operações e dados, escrevendo as instruções anteriorescomo:
SISTEMAS DEINFORMAÇÃO
57
Linguagem de mLinguagem de mLinguagem de mLinguagem de mááááquinaquinaquinaquina
� Carregar no registrador R1 o valor armazenado no endereço 3006 da memória� MOV R1, 3006
� Somar os valores contidos nos registradores R1 e R2 e armazenar o resultado em R1� ADD R1, R2
� “Desviar” para a instrução armazenada no endereço520 da memória, se o resultado obtido pela execuçãoda instrução anterior for diferente de zero� JNZ 520
SISTEMAS DEINFORMAÇÃO
58
Instruções mnemônicas
SISTEMAS DEINFORMAÇÃO
59
� As instruções mnemônicas acimas eramtraduzidas manualmente para seqüências de bits e depois carregadas na memória para execução.
MONTAGEM
SISTEMAS DEINFORMAÇÃO
60
� A montagem do programa (escrito emlinguagem mnemônica) para linguagem de máquina foi transferida para o computador.
� O programa que traduz para linguagem de máquina é chamado de montador(assembler).
� A notação mnemônica traduzida é chamadade linguagem de montagem (assembly language).
SISTEMAS DEINFORMAÇÃO
61
MONTADOR
ASSEMBLER
SISTEMAS DEINFORMAÇÃO
62
� Linguagem de montagem tambémé difícil de programar � muitopróxima da linguagem de máquina � pouca relação com as abstrações usualmenteempregadas para construção de algoritmos e solução de programas.
SISTEMAS DEINFORMAÇÃO
63
� Linguagem de montagem tambémé difícil de programar � muitopróxima da linguagem de máquina � pouca relação com as abstrações usualmenteempregadas para construção de algoritmos e solução de programas.
� Nova linguagens foramdesenvolvidas para facilitar a tarefa de programação.
SISTEMAS DEINFORMAÇÃO
64
� Chamadas de linguagem de alto nível, essas linguagens oferecem:◦ Um conjunto mais rico de operaçõese construções sintáticas adequadaspara expressar de maneira natural algoritmos utilizados na solução de problemas.
� Linguagem de máquina e de montagem são chamadaslinguagem de baixo nível, emcontraposição.
SISTEMAS DEINFORMAÇÃO
65
� Problema: ◦ Programa escrito em uma linguagem de alto nívelprecisa ser traduzido para linguagem de máquinapara ser utilizado em um computador.
◦ Como resolver?
SISTEMAS DEINFORMAÇÃO
66
� Problema: ◦ Programa escrito em uma linguagem de alto nívelprecisa ser traduzido para linguagem de máquinapara ser utilizado em um computador.
� Um programa, chamado compilador, realizaesse processo de tradução, chamado de compilação.
SISTEMAS DEINFORMAÇÃO
67
Compilador
Linguagem objeto
(linguagem de máquina -
Assembler ou código binário)
programa objeto
(código objeto)
Linguagem fonte
(linguagem de alto nível: Java,
C, Pascal, Cobol)
programa fonte
(código fonte)
SISTEMAS DEINFORMAÇÃO
68
� Analisa o texto do programa fonte paradeterminar se ele estásintaticamentecorreto, isto é, emconformidade com as regras da gramática dalinguagem e, em casoafirmativo, gera o código objetoequivalente.
� Ex: linguagem C
SISTEMAS DEINFORMAÇÃO
69
� Outra maneira de executaruma linguagem de alto nível.
� A idéia é interpretardiretamente as frases do programa fonte.
� Isto é, simular a execuçãodo programa “fazendo de conta” que a linguagem de alto nível é a “linguagem de máquina do computador”.
SISTEMAS DEINFORMAÇÃO
70
� Um programa, chamado interpretador, interpreta diretamente as frases do programafonte fornecidos como entrada (juntamentecom os dados).
� Pode ser centenas de vezes mais lenta que a execução de código objeto gerado pelocompilador.
� Por quê?
SISTEMAS DEINFORMAÇÃO
71
� Envolve análise sintática e simulação da execução de cadainstrução do programa. �análise e simulação realizadasem tempo de execução.
� Na compilação, a análisesintática e a tradução é feitapreviamente (antes daexecução) � análise realizadaem tempo de compilação.
SISTEMAS DEINFORMAÇÃO
72
� Vantagens:◦ Mais fácil desenvolver
um interpretador do que um compilador.◦ Execução independe da
linguagem de máquinado computador, desdeque existainterpretadores paradiferentes máquinas.
� Java: misturacompilação e interpretação.
SISTEMAS DEINFORMAÇÃO
73
� Compilador Java traduz um programa Java para programasescritos em código de maisbaixo nível � bytecodes.
� Bytecodes são interpretados; as instruções definidas pelosbytecodes constituem a “máquina virtual Java” (JVM –Java Virtual Machine).
� O interpretador Java para as diferente plataformas (Win, Linux, Sun etc) é tambémchamado de “máquina virtual Java” (JVM).
SISTEMAS DEINFORMAÇÃO
74
� Vantagens da JVM:
◦ Bytecodes são maisfáceis de interpretar do que programas fontesJava � interpretaçãomais rápida.
◦ Aplicações para a internet � programasem bytecodes podem ser transferidos através darede e executado emqualquer outrocomputador quedisponha de uma JVM.
SISTEMAS DEINFORMAÇÃO
75
Sistema OperacionalSistema OperacionalSistema OperacionalSistema Operacional
SISTEMAS DEINFORMAÇÃO
76
� Controla a operação emconjunto dos diversoscomponentes do computador –processador, memória e dispositivos de E/S – assimcomo a execução simultâneade diversos programas pelocomputador.
� O núcleo do SO é iniciado no momento em que é ligado o computador, quando étransferido do disco para a memória, ficando residenteenquanto o computador estiverligado.
SISTEMAS DEINFORMAÇÃO
77
� O núcleo do SO provê umainterface adequada entre a máquina e os demaisprogramas do SO.
� Estes, por sua vez, oferecemuma interface adequada paraos diversos componentes do computador e para os usuáriose seus programas.
SISTEMAS DEINFORMAÇÃO
78
� Camarão, C.; Figueiredo, L. “Programação de Computadores em Java”, Livros Técnicos e Científicos Editora, 2003. Capítulo 1.