Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus...
Transcript of Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus...
![Page 1: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/1.jpg)
Organização de Computadores
Professor Marcus Vinícius Midena Ramos
Colegiado de Engenharia de Computação
(74)3614.1936
www.univasf.edu.br/~marcus.ramos
![Page 2: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/2.jpg)
• Ferramenta indispensável;
• Faz parte das nossas vidas;
• Por si só não faz nada de útil;
• Grande capacidade de resolução de problemas;
• Necessita ser instruído.
Computador
![Page 3: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/3.jpg)
Computador
• Capaz apenas de excutar poucas tarefas básicas distintas, todas muito simples;
• É extremamente rápido;• Possui um comportamento
previsível;• É excelente para reproduzir
“roteiros” pré-concebidos;• Não se cansa e pode ser usado
à exaustão.
![Page 4: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/4.jpg)
Computador =Hardware (corpo) + Software (alma)
O corpo fornece suporte para a alma.
O corpo procura suprir as necessidades da alma.
O corpo pode criar novas possibilidades para a alma, ou então estabeldcer limitações.
A alma se expressa através do corpo. A alma usa os recursos do corpo.
![Page 5: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/5.jpg)
Computador
• Hardware:
Parte física: placas, periféricos, circuitos, cabos e componentes.Quanto mais usado, mais
propenso à falhas.Sozinho, não serve para
nada.Vem pronto da fábrica.
![Page 6: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/6.jpg)
Computador
• Software:
Parte intangível: conhecimentos e idéias que fazem o hardware exibir um certo comportamento.Quanto mais usado, menos
propenso à falhas.Confere funcionalidade ao
hardware.Pode ser adquirido ou
desenvolvido.
![Page 7: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/7.jpg)
Modelo de von Neumann
• Matemático húngaro;• Propôs um modelo de arquitetura composto por
quatro partes distintas;• Nesse modelo, o programa a ser executado pelo
computador ficava armazenado na memória do mesmo;
• Grande flexibilidade e rapidez, pois o hardware não precisa ser modificado e não precisava ser lido em cartões perfurados;
• A maioria dos computadores modernos adota essa arquitetura.
![Page 8: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/8.jpg)
Modelo de von Neumann
• Ciência x Tecnologia• Evolução científica x tecnológica• Exemplo do automóvel
![Page 9: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/9.jpg)
Unidade Central de Processamento
Memória
Entrada Saída
Modelo de von Neumann
![Page 10: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/10.jpg)
Unidade Central de Processamento
Memória
Entrada Saída
Modelo de von Neumann
![Page 11: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/11.jpg)
Modelo de von Neumann
Unidade Central de Processamento (UCP ou CPU):• Lê, decodifica e executa as instruções armazenadas
na memória;• Realiza operações lógicas e aritméticas;• Pode ler modificar o valor de alguma posição de
memória;• Pode transferir valores da entrada para a memória e
da memória para a saída;• Executa as instruções seqüencialmente, até o
término do programa ou até encontrar algum desvio explícito.
![Page 12: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/12.jpg)
Unidade Central de Processamento
Memória
Entrada Saída
Modelo de von Neumann
![Page 13: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/13.jpg)
Modelo de von Neumann
Memória:• É dividida em células (bytes)• Cada célula armazena um valor e possui um
endereço;• É comandada pela CPU, que informa em qual
endereço deseja executar uma operação (de leitura ou escrita);
• Operações de leitura não modificam os valores armazenados;
• Operações de escrita apagam os valores anteriores, substituindo-os pelos novos valores;
![Page 14: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/14.jpg)
• Exemplo de memória com 10 posições;• As posições são numeradas 0 a 9;• Valores permanecem até que um novo valor seja
armazenado na mesma posição ou até que a memória seja desligada.
0 1 2 3 4 5 6 7 8 9
10 28 93 55 72 15 6 52 245 199
Endereços
Valores
![Page 15: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/15.jpg)
Operação de leitura
0 1 2 3 4 5 6 7 8 9
10 28 93 55 72 15 6 52 245 199
Endereços
Valores
• Obter o valor armazenado na posição (endereço) 7• Resultado: 52
![Page 16: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/16.jpg)
Operação de escrita
0 1 2 3 4 5 6 7 8 9
10 28 93 55 72 15 6 52 245 199
• Armazenar o valor 31 na posição (endereço) 7
X
0 1 2 3 4 5 6 7 8 9
10 28 93 55 72 15 6 31 245 199
![Page 17: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/17.jpg)
Unidade Central de Processamento
Memória
Entrada Saída
Modelo de von Neumann
![Page 18: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/18.jpg)
Modelo de von Neumann
Entrada e Saída:• Sob comando da CPU, é possível ler valores de um
dispositivo de entrada, armazenando-os na memória;
• Sob comando da CPU, é possível ler valores da memória, enviando-os para um dispositivo de saída;
• Existe uma grande variedade de dispositivos de entrada e saída;
• Conceitualmente, no entanto, eles são passivos e obedecem ao comando da CPU.
![Page 19: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/19.jpg)
Modelo de von Neumann
• Os dados e os programas são armazenados na memória, em regiões distintas;
• Um programa é composto por uma coleção de instruções que são lidas e executadas em seqüência.
![Page 20: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/20.jpg)
Unidade Central de Processamento
Entrada Saída
Modelo de von Neumann
Programa Dados
![Page 21: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/21.jpg)
Modelo de von Neumann
• Os programas são formados, essencialmente, por comandos (instruções sobre o que fazer);
• As instruções são muito simples e executadas muito rapidamente;
![Page 22: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/22.jpg)
Modelo de von Neumann
Programa Dados
01 ---
02 ---
03 ---
04 ---
...
![Page 23: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/23.jpg)
Modelo de von Neumann
• As instruções são lidas seqüencialmente da memória, uma após a outra;
• Uma instrução pode (i) ler um valor da entrada; (ii) enviar um valor para a saída; (iii) gerar um novo valor; (iv) indicar o endereço da próxima instrução a ser executada.
![Page 24: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/24.jpg)
Modelo de von Neumann
• A execução de um novo comando inicia apenas depois que a execução do anterior tiver terminado (execução seqüencial);
• Se não houver nenhuma indicação explícita, a instrução armazenada no endereço de memória seguinte é executada.
![Page 25: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/25.jpg)
Modelo de von Neumann
• Eventualmente, um comando pode modificar o valor de um dado existente na memória, solicitar novos dados ao usuário ou enviar dados para a saída.
![Page 26: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/26.jpg)
Modelo de von Neumann
Programa Dados
01 ---
02 ---
03 ---
04 ---
...
![Page 27: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/27.jpg)
Modelo de von Neumann
Programa Dados
01 ---
02 ---
03 ---
04 ---
...
![Page 28: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/28.jpg)
Modelo de von Neumann
Programa Dados
01 ---
02 ---
03 ---
04 ---
...
![Page 29: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/29.jpg)
Modelo de von Neumann
Programa Dados
01 ---
02 ---
03 ---
04 ---
...
![Page 30: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/30.jpg)
Modelo de von Neumann
Exemplos de evolução tecnológica:• Velocidade da CPU;• Quantidade de registradores;• Quantidade de bits maniupulados
simultaneamente;• Quantidade de posições de memória;• Velocidade de acesso à memória;• Tamanho do computador;• Consumo de energia;• Preço do computador;• Possibilidade de expansão do computador;• Diversificação dos dispositivos de entrada e saída.
![Page 31: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/31.jpg)
• Sistema binário• 1 bit = 0 ou 1 (menor unidade de informação)• 1 byte = 8 bits• 1 KiloByte = 1KB = 1.024 bytes• 1.024 = 210
• 1 MegaByte = 1MB = 1.024 KiloBytes = 1.024*1.024 bytes ~ 1 milhão de bytes
• 1 GigaByte = 1 GB = 1.024 MegaBytes = 1.024*1.024*1.024 bytes ~ 1 bilhão de bytes
• Bits, Bytes, Herz, ...• Kilo, Mega, Giga, Tera...
Unidades
![Page 32: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/32.jpg)
• Sistema decimal:xyz = x*100 + y*10 + z*1 =x*102 + x*101 + x*100
Sistema binário:xyz = x*4 + y*2 + z*1 =x*22 + x*21 + x*20
Sistemas de numeração
![Page 33: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/33.jpg)
• Sistema decimal:xyz = x*100 + y*10 + z*1 =x*102 + x*101 + x*100
Sistema binário:xyz = x*4 + y*2 + z*1 =x*22 + x*21 + x*20
Sistemas de numeração
![Page 34: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/34.jpg)
• Sistema decimal:51810 = 5*100 + 1*10 + 8*1 =5*102 + 1*101 + 8*100
Sistema binário:1012 = 1*4 + 0*2 + 1*1 =1*22 + 0*21 + 1*20 = 510
Sistemas de numeração
![Page 35: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/35.jpg)
Objetivos:
• Entender a natureza do software e a sua relação com o hardware;
• Conhecer o processo básico de desenvolvimento de software;
• Entender a diferença entre linguagens de baixo e alto nível;
• Conhecer superficialmente as principais ferramentas de processamento de linguagens.
![Page 36: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/36.jpg)
Nosso objetivo
• Desenvolver software
Organização de idéias; Modelo de funcionamento do
computador; Conceitos básicos de programação; Transcrição para linguagens apropriadas; Comunicação e interação com o
computador; Obtenção dos resultados pretendidos; Prática em laboratório.
![Page 37: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/37.jpg)
Desenvolver software
1. Problema;2. Solução;3. Algoritmo;4. Programa;5. Resultados.
• Roteiro
![Page 38: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/38.jpg)
Problema
Precisa ser conhecido em todos os seus aspectos;
É necessário ter resposta para todas as perguntas que dele possam suscitar;
É fundamental considerar todas as situações adversas;
Nenhuma faceta deve ser omitida.
![Page 39: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/39.jpg)
Solução
Existe solução para o problema?
Qual o custo da sua implementação?
Qual o custo da sua execução?
Como iremos representá-la?
![Page 40: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/40.jpg)
Algoritmo
Representação de uma solução para um problema, com algumas características:
o Seqüência finita de etapas;o Individualmente, existe
realização possível para cada uma das etapas consideradas;
o Termina após um tempo finito.
![Page 41: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/41.jpg)
Algoritmo
Representação :
o Linguagem natural;o Pseudocódigo (linguagem
textual com poucos símbolos e regras, que são simples);
o Fluxograma (linguagem visual composta por poucos símbolos e regras)
Um algoritmo expressa uma solução para um problema.
![Page 42: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/42.jpg)
Terminou?
![Page 43: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/43.jpg)
Não!!!
![Page 44: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/44.jpg)
Acontece que...Computadores não entendem (normalmente, ou pelo menos da forma como nós precisamos):
• Linguagens naturais;• Pseudocódigos;• Fluxogramas.
![Page 45: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/45.jpg)
Precisamos ir além...
Não estou entendendo!!!!
Algoritmo!
![Page 46: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/46.jpg)
O que o computador
entende afinal?
![Page 47: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/47.jpg)
01101010110010101101010100010101000101111110101001000010111110101011001111111
?????
Faça isso. Depois aquilo. Se OK, então pare, senão
refaça tudo.
![Page 48: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/48.jpg)
Temos um problema de
comunicação.
![Page 49: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/49.jpg)
Solução?
![Page 50: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/50.jpg)
Melhorar um pouco as coisas prá ele
(computador) sem piorar tanto prá nós
(humanos).
![Page 51: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/51.jpg)
Escrever um “programa” de computador, a partir do algoritmo.
Para isso, vamos usar uma “linguagem de programação”.
Um pouco mais complexas do que as linguagens usadas para representar algoritmos;
Mas mais fáceis de serem entendidas pelo computador.
![Page 52: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/52.jpg)
Java?C?
C++?Delphi?Pascal?HTML?
Perl?Python?Ruby?
Fortran?Assembly?
PHP?Cobol?SQL?Lisp?
Prolog?
Java!!C!!
C++!!Delphi!!Pascal!!HTML!!
Perl!!Python!!Ruby!!
Fortran!!Assembly!!
PHP!!Cobol!!SQL!!Lisp!!
Prolog!!
![Page 53: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/53.jpg)
Programação de baixo nível
• Utiliza linguagem de máquina (numérica) ou de montagem (com nomes, geralmente mnemônicos) atribuídos às instruções;
• Principais características:• Difícil legibilidade;• Dependente da arquitetura do computador
(baixa portabilidade);• Difícil manipulação (números, mnemônicos,
endereços...);• Baixa confiabilidade;• Baixa produtividade do programador;• Apenas especialistas.
![Page 54: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/54.jpg)
Exemplo de programa
INPUT 25 71 25INPUT 26 71 26LOAD 25 161 25ADD 26 50 26ADDI 01 44 01STORE 27 160 27OUTPUT 27 72 27HALT 00
Linguagem de montagem Linguagem de máquina
![Page 55: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/55.jpg)
Programação de alto nível
• Utiliza linguagem cuja sintaxe é mais próxima da linguagem natural;
• Principais características:• Alta legibilidade;• Independente da arquitetura do computador
(alta portabilidade);• Fácil manipulação (uso de abstrações);• Maior confiabilidade;• Maior produtividade do programador;• Uso por não-especialistas
![Page 56: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/56.jpg)
10 REM RESOLVE EQUACAO DO SEGUNDO GRAU
20 READ A,B,C
25 IF A=0 THEN GOTO 410
30 LET D=B*B-4*A*C
40 IF D<0 THEN GOTO 430
50 PRINT "SOLUCAO"
60 IF D=0 THEN GOTO 100
70 PRINT "PRIMEIRA SOLUCAO",(-B+SQR(D))/(2*A)
80 PRINT "SEGUNDA SOLUCAO",(-B-SQR(D))/(2*A)
90 GOTO 20
100 PRINT "SOLUCAO UNICA",(-B)/(2*A)
200 GOTO 20
410 PRINT "A DEVE SER DIFERENTE DE ZERO"
420 GOTO 20
430 PRINT "NAO HA SOLUCOES REAIS"
440 GOTO 20
490 DATA 10,20,1241,123,22,-1
500 END
![Page 57: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/57.jpg)
Linguagem de alto nível: confere produtividade ao programador e legibilidade, confiabilidade e portabilidade aos programas desenvolvidos.
Linguagem de máquina: a linguagem que o computador entende diretamente
Linguagem de montagem: usa mnemônicos para facilitar um pouco o trabalho do programador, mas tem as mesmas características fundamentais da linguagem de montagem
Tradução
![Page 58: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/58.jpg)
Compilação
O programa escrito na linguagem de alto nível é convertido para um programa equivalente (que desempenha a mesma função), porém escrito na linguagem da máquina na qual ele vai ser executado.
COMPILADORPrograma-fonte Programa-objeto
Linguagem de alto nível
Linguagem de máquina
Programa-objeto COMPUTADOR Resultados
![Page 59: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/59.jpg)
Compilação
Desvantagens:
• Processo burocrático (o programa precisa primeiro ser compilado para depois ser executado);
• Baixo nível de interação com o usuário;• Dificuldade de depuração;• Dependência do hardware / sistema operacional.
Vantagens:
• Gera programas mais rápidos e menores;• Não precisa que o interpretador esteja residente na
memória;
![Page 60: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/60.jpg)
Linguagens compiladas
• C / C++• Delphi• Pascal
Linguagens interpretadas
• HTML• BASIC• JavaScript
Linguagens híbridas
• Java
![Page 61: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/61.jpg)
Interpretação
O programa escrito na linguagem de alto nível é executado diretamente, gerando os resultados para o usuário imediatamente. Nenhum programa equivalente em linguagem de máquina é gerado.
INTERPRETADORPrograma-fonte
Linguagem de alto nível
Resultados
![Page 62: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/62.jpg)
Interpretação
Desvantagens:
• Execução lenta;• Precisa que o interpretador esteja residente na
memória;
Vantagens:
• Processo direto (o programa é executado diretamente);• Alto nível de interação com o usuário;• Facilidade de depuração;• Independência do hardware / sistema operacional.
![Page 63: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/63.jpg)
E...?
![Page 64: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/64.jpg)
Sim, vamos precisar traduzir algoritmos para programas.
Sim, precisaremos conhecer (pelo menos)duas linguagens.
Sim, cometeremos erros nas traduções.
![Page 65: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/65.jpg)
C´est la vie...
Eu não existo.
![Page 66: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/66.jpg)
Como ficamos então?
![Page 67: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/67.jpg)
Problema
Solução
Algoritmo
Programa (alto nível)
Sua parte:
![Page 68: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/68.jpg)
Parte do computador (com a sua supervisão...):
Programa (alto nível)
Programa (baixo nível)
Execução
Resultados
![Page 69: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/69.jpg)
Deu errado?
Não era bem isso que você queria?
![Page 70: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/70.jpg)
Não tem problema.
Volte à prancheta...
E descubra onde está o erro.
![Page 71: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/71.jpg)
Problema
Solução
Algoritmo
Programa (alto nível)
Programa (baixo nível)
Execução
ResultadosCic
lo
de
des
envo
lvim
ento
![Page 72: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/72.jpg)
Desenvolvedorx
Usuário
![Page 73: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/73.jpg)
• Linguagens de programação, mesmo de alto nível, ainda não são acessíveis para a maioria das pessoas;
• Programas aplicativos permitem que usuários leigos usem o computador, com alto grau de sofisticação, sem a necessidade de conhecer qualquer linguagem de programação tradicional;
• Eles podem, ou não, gerar saídas que depois são compiladas e/ou interpretadas pelo computador;
• Apresentam grande facilidade de uso e são especializados em determinadas funções (edição de textos, cálculos numéricos etc).
![Page 74: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/74.jpg)
Hardware
Linguagem
de máquina
Linguagem
de alto nível Aplicativo
Compilador / interpretador
Sistema operacional
Comandos
![Page 75: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/75.jpg)
Sistema operacional
Ambientes típicos de computação:
• Vários programas na mesma máquina• Vários usuários na mesma máquina• Vários tipos de dispositivo na mesma máquina
Necessidade de garantir:
• Integridade e privacidade dos dados• Desempenho dos programas• Inexistência de interferências indevidas• Melhor utilização de todos os recursos da máquina
![Page 76: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/76.jpg)
Desenvolvimento
Resultados desejáveis:
• Custos previsíveis• Prazos respeitados• Qualidade (funcionalidade e desempenho)
![Page 77: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/77.jpg)
Desenvolvimento
Características do processo:
• Trabalho individual x trabalho em equipe;• Poucas linhas de código x centenas de milhares de
linhas de código;• Aplicações críticas (risco de vida, valores elevados
envolv idos);• Hardware dedicado ou multiplataforma;• Complexidade crescente das aplicações.
![Page 78: Organização de Computadores 02 - Organiza… · Organização de Computadores Professor Marcus Vinícius Midena Ramos Colegiado de Engenharia de Computação (74)3614.1936 marcus.ramos@univasf.edu.br](https://reader034.fdocumentos.tips/reader034/viewer/2022050415/5f8b48516837aa4e423c21ad/html5/thumbnails/78.jpg)
Programação
Necessidades:
• Recursos humanos altamente especializados• Ferramentas adequadas• Planejamento• Gerenciamento• Metodologia de desenvolvimento• Testes• Documentação• Treinamento• Atualização