rr-09-r.01 Sistemas UC: Organização e Arquitetura de Computadores Docente: Prof. MSc. Marcelo Siedler rr-09-r.01 Créditos Bibliografia Básica Título Autor Edição Local Editora Ano Organização estruturada de computadores TENEMBAUM, Andrew S. 5. ed. Rio de Janeiro LTC 2007 Introdução à organização de computadores MONTEIRO, Mário A. 4. ed. Rio de Janeiro LTC 2002 Sistemas digitais: princípios e aplicações TOCCI, Ronald J. 7. ed. Rio de Janeiro LTC 2000 Organização e projeto de computadores: a HENNESSY, John L.; Patterson, interface hardware/software David A. 2. ed. Rio de Janeiro LTC 2000 Bibliografia Complementar Título Hardware: montagem, configuração e manutenção de micros Site: http://www.infowester.com/ Site: http://www.organizacaodecomputadores.kit.net/ Autor FERREIRA, Silvio Edição Local Rio de Janeiro Editora Axcel Books Ano 2005 rr-09-r.01 Sistemas -Conjunto de partes que cooperam entre si para atingir um objetivo em comum; -Ex. -Sistema de transporte de uma cidade (motoristas, cobradores, trajetos, passageiros, ruas, ônibus e etc) -Corpo humano (órgãos, veias, sangue e etc) -Sistema econômico do país -... -Sistemas de computação??? rr-09-r.01 Sistemas de computação -Conjunto de partes (teclado, mouse, processador, memória, ...) que cooperam entre si para atingir um objetivo em comum; -Sistemas de computação tem esse nome porque nada mais fazem do que computar (calcular) dados. -Primeiro computador para calcular dados para o exército americano em 1940. Daí em diante só temos evolução. rr-09-r.01 Sistemas de computação (Programa) -Processamento de dados requer execução de instruções -Instruções devem ser elaboradas -Instruções devem ser executadas passo a passo -Algoritmo = conjunto de instruções formados com determinada lógica e passos finitos para solucionar um problema. -Programa = conjunto de algoritmos. rr-09-r.01 Sistemas de computação (Programa – Ex.) - Programa: Ler e somar 100 números. Após imprimir a soma. -1. Escrever e guardar N=0 e SOMA=0 -2. Ler valor de entrada -3. Somar entrada ao SOMA e guardar em SOMA -4. Somar 1 ao N e guardar em N -5. Se N menor que 100 então passar para item 2 -6. Senão imprimir valor de SOMA -7. Parar Os passos finitos acima constituem um algoritmo. rr-09-r.01 Sistemas de computação (Programa – Ex.) -1. Escrever e guardar N=0 e SOMA=0 -2. Ler valor de entrada -3. Somar entrada ao SOMA e guardar em SOMA -4. Somar 1 ao N e guardar em N -5. Se N menor que 100 então passar para item 2 -6. Senão imprimir valor de SOMA -7. Parar Dados (Entradas) Processamento Resultado: Informação (Saídas) Etapas básicas de um processamento de dados. Evolução das Linguagens de Programação Primeira linguagem de alto nível: – FORTRAN – 1957 (FORmula TRANslation) para elaboração de programas científicos. Exemplo C Programa para realizar a soma de 3 valores e imprimir o resultado program sum integer a, b, c, soma a = 15 b = 30 c=5 soma = a + b + c print*, soma stop end rr-09-r.01 Sistemas de computação (Programa – Case Prático - Assembly) Push ebp Mov ebp, esp Add esp, -$0c Mov [ebp-$04], eax Xor eax, eax Mov [ebp-$0c], eax Mov [ebp-$08], $00000001 Add dword ptr [ebp-$0c], $0a Inc dword ptr [ebp-$08] Cmp dword ptr [ebp-$08], $06 Jnz TForm1.TestAsm + $15 Mov esp, ebp Pop ebp Ret rr-09-r.01 Sistemas de computação (Programa – Case Prático - Delphi) Procedure Tform1.TestAsm Var I, Total:Integer; Begin Total:=0; For I:=1 to 5 do Total:=Total+10; End; rr-09-r.01 Sistemas de computação (Programa – Case Prático – Linguagem de Máquina) 01010101 0001011111101100 100000111100010011110100 100010010100010111111100 0011001111001101 100010010100010111111100 1100011101000101111100001000000 100000110100010111111010000001010 111111110100010111111000 10000011011111011111100000000110 0111010111110011 1000101111100101 01011101 11000011 rr-09-r.01 Sistemas de computação (Resumo) Uma simples equação: X := A + B / ( C * D – A ) Complexa linguagem: 1000111000000111 0000111000001100 0111111000001111 0101111000001001 1100111000001110 0011111000011000 0111111000011011 1110111000100011 rr-09-r.01 Computador Computador: - formado por circuitos eletrônicos; - circuitos eletrônicos podem fazer um número limitado de instruções: - somar dois números; - comparar um número com zero; - ler um dado da memória; - ... - conjunto de instruções formam a linguagem de máquina; rr-09-r.01 Linguagem de máquina Linguagem de máquina: - criar programas é: - extremamente complexo; - muito demorado; - margem de erro muito grande; Conseqüências: - formas organizadas de estruturar computadores - abstrações em linguagens de alto nível; rr-09-r.01 Tradução x Interpretação Tradução: [ tradução de um livro ] [ case: C/C++ ] L1 => Tradução/Compilação => L0 Vantagem: Velocidade de execução Interpretação: [ interprete de uma viagem ] [ case: PHP ] L1 => Interpretação => L0 Vantagem: Fácil atualização de instruções rr-09-r.01 Tradução x Interpretação - As duas técnicas são muito semelhantes: - em ambas as instruções em L1 são executadas por um conjunto equivalente de instruções em L0; - A diferença é: - na tradução o programa em L1 é descartado na execução do programa; - na interpretação L1 permanece fornecendo as instruções seguintes; rr-09-r.01 Máquina virtual -É um componente capaz de executar um mesmo programa, traduzido ou interpretado, em diferentes arquiteturas. Case JVM. Java C/C++ C/C++ Tradução Tradução A Tradução B JVM S.O. A S.O. B S.O. A S.O. B rr-09-r.01 Máquina virtual Camadas ou níveis da máquina virtual: Nível n Máquina virtual Mn, com a linguagem de máquina Ln. Programas que devem ser traduzidos ou interpretados para Ln ou L0. Nível 2 Máquina virtual M2, com a linguagem de máquina L2. Programas que devem ser t raduzidos ou interpretados para L1 ou L0. Nível 1 Máquina virtual M1, com a linguagem de máquina L1. Programas que devem ser traduzidos ou interpretados para L0. Nível 0 Computador real M0, com a linguagem de máquina L0. Programas que podem ser executados diretamente pelo hardware. rr-09-r.01 Máquina virtual JVM •JAVA •C/C++ •Assembly •Linguagem de máquina (0 e 1) rr-09-r.01 Computadores modernos e seus níveis / camadas Nível 5 Nível das linguagens de alto nível. Tradução (Compilador) Nível 4 Nível da linguagem o montador. Tradução (Montador) Nível 3 Nível do sistema operacional. Interpretação parcial (SO) Nível 2 Nível do conjunto de instruções. (ISA – Arquitetura do conjunto de instruções) Interpretação (microprograma) Nível 1 Nível da micro arquitetura. Execução em hardware Nível 0 Nível da lógica digital.