Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagens, N´ıveis e Ma´quinas Virtuais Disciplina: Arquitetura de Computadores Profa. Daniella Dias 24 de maio de 2016 Arquitetura de Computadores 24 de maio de 2016 1 / 22 Organizac¸a˜o x Arquitetura de Computadores Arquitetura Sa˜o os atributos de um sistema vis´ıveis para o programador. Esses atributos teˆm impacto direto sobre a execuc¸a˜o lo´gica de um programa. Conjunto de instruc¸o˜es Nu´mero de bits usados para representar os va´rios tipos de dados Mecanismos de entrada e sa´ıda Te´cnicas de enderec¸amento de memo´ria Organizac¸a˜o Unidade operacionais e interconexo˜es que implementam as especificac¸o˜es da arquitetura. Sinais de controle Interface entre o computador e perife´ricos Tecnologia de memo´ria utilizada Arquitetura de Computadores 24 de maio de 2016 2 / 22 Organizac¸a˜o x Arquitetura de Computadores Projeto da arquitetura Se o computador tera´ a instruc¸a˜o de multiplicac¸a˜o. Projeto da organizac¸a˜o A instruc¸a˜o de multiplicac¸a˜o sera´ implementada por uma unidade especial de multiplicac¸a˜o ou por um mecanismo que fac¸a uso repetido da unidade de adic¸a˜o do sistema. Arquitetura de Computadores 24 de maio de 2016 3 / 22 Organizac¸a˜o x Arquitetura de Computadores Conceitos distintos (importante) Fam´ılias de computadores → mesma arquitetura e organizac¸o˜es diferentes. Diferentes prec¸os e desempenhos Mudanc¸as de tecnologia Arquitetura pode durar muitos anos e abranger va´rios modelos (organizac¸a˜o) Exemplo → Sistema 370 da IBM (1970) Clientes com diferentes necessidades de desempenho (e orc¸amento). Possibilidade de futuras aquisic¸o˜es sem compromenter os softwares ate´ enta˜o desenvolvidos. Arquitetura foi melhorada e atualmente pertence a linha de mainframes da empresa. Arquitetura de Computadores 24 de maio de 2016 4 / 22 Organizac¸a˜o Estruturada de Computadores Computador digital → executa instruc¸o˜es Software → conjunto de instruc¸o˜es Hardware → executa conjunto limitado de instruc¸o˜es Instruc¸o˜es executadas em hardware sa˜o simples: soma, comparac¸a˜o, transfereˆncia de dados... Linguagem de ma´quina → conjunto de instruc¸o˜es ba´sicas Compat´ıvel com o uso da ma´quina Compat´ıvel com o desempenho requerido Custo e complexidade reduzidos Arquitetura de Computadores 24 de maio de 2016 5 / 22 Organizac¸a˜o Estruturada de Computadores Problema A linguagem de ma´quina (bina´ria) esta´ muito distante da linguagem natural do usua´rio. Soluc¸a˜o Criar uma hierarquia de abstrac¸o˜es, com os n´ıveis mais altos baseados nos n´ıveis mais baixos: Organizac¸a˜o estruturada de computadores. Arquitetura de Computadores 24 de maio de 2016 6 / 22 Linguagens, N´ıveis e Ma´quinas Virtuais Supondo 2 linguagens: L1: Linguagem natural do usua´rio (alto n´ıvel, complexa) L0: Linguagem da ma´quina (baixo n´ıvel, simples) Como compatibilizar L1 e L0? Utilizac¸a˜o de um tradutor (compilador) Utilizac¸a˜o de um interpretador Existe tambe´m uma soluc¸a˜o h´ıbrida (tradutor + interpretador) Pode-se pensar em uma ma´quina virtual M1 com linguagem L1 e em uma ma´quina real M0 com linguagem L0 Programas escritos em L1 para M1 Executados diretamente em M0 Traduzidos ou interpretados para M0 Arquitetura de Computadores 24 de maio de 2016 7 / 22 Linguagens, N´ıveis e Ma´quinas Virtuais L0 e L1 muito diferentes → aumento na complexidade do processo de traduc¸a˜o/interpretac¸a˜o Muitos n´ıveis (ma´quinas virtuais) podem ser implementados Hierarquia de ma´quinas virtuais (ou de n´ıveis) Programas sa˜o escritos para ma´quinas virtuais (como se elas realmente existissem) Cada linguagem usa a antecessora como base Computador pode ser visto como um conjunto de camadas ou n´ıveis Um programador do n´ıvel n na˜o tem conhecimento dos n´ıveis inferiores. (Quem precisa conhecer o n´ıvel inferior?) Arquitetura de Computadores 24 de maio de 2016 8 / 22 Computador: Ma´quina de Va´rios N´ıveis Arquitetura de Computadores 24 de maio de 2016 9 / 22 Ma´quina de Va´rios N´ıveis Moderna Arquitetura de Computadores 24 de maio de 2016 10 / 22 N´ıvel da Lo´gica Digital Portas lo´gicas → cada porta uma ou mais entradas (0 ou 1) Algumas portas combinadas formam uma memo´ria de 1 bit. Algumas memo´rias de 1 bit combinadas em grupos de 16, 32 ou 64 bits para formar registradores. Alguns registradores combinados formam um processador! Arquitetura de Computadores 24 de maio de 2016 11 / 22 N´ıvel da Microarquitetura Nesse n´ıvel enxerga-se um conjunto comumente de 8 a 32 registradores que formam uma memo´ria local e a ULA (Unidade Lo´gica Aritme´tica). Realiza operac¸o˜es aritme´ticas muito simples. Os registradores sa˜o conectados a` ULA pelo caminho de dados. O caminho de dados pode ser controlado via software (microprograma) ou hardware. Arquitetura de Computadores 24 de maio de 2016 12 / 22 N´ıvel ISA (Instruction Set Architecture) N´ıvel da arquitetura do conjunto de instruc¸o˜es Fabricantes de computadores publicam “Manual de Refereˆncia da Linguagem de Ma´quina” ou “Princ´ıpios de Operac¸a˜o do Computador Modelo XYZ”. Descric¸a˜o do conjunto de instruc¸o˜es que tal arquitetura deve implementar. Arquitetura de Computadores 24 de maio de 2016 13 / 22 N´ıvel do Sistema Operacional N´ıvel h´ıbrido: instruc¸o˜es do n´ıvel ISA + novas instruc¸o˜es Organizac¸a˜o diferente da memo´ria Capacidade de executar mais de um programa ao mesmo tempo. Arquitetura de Computadores 24 de maio de 2016 14 / 22 N´ıvel da Linguagem do Montador Linguagem de mais alto n´ıvel (fa´cil compreensa˜o) – (assembly). Geralmente usam o processo de traduc¸a˜o (compilac¸a˜o) diferente dos n´ıveis inferiores. Programas nesse n´ıvel sa˜o traduzidos para linguagens dos n´ıveis inferiores e depois interpretados pela ma´quina virtual correspondente. O programa que realiza essa traduc¸a˜o e´ chamado de Montador (assembler). Arquitetura de Computadores 24 de maio de 2016 15 / 22 N´ıvel das linguagens de alto n´ıvel Utilizado por programadores de aplicac¸a˜o (C, Pascal, Java, Delphi, etc). Programas desse n´ıvel, geralmente, sa˜o traduzidos para o n´ıvel de Montador ou SO por compiladores, podendo tambe´m serem interpretados. Linguagem Java Traduzida para o ISA Java ou “bytecode Java” Interpretada pela ma´quina virtual Java. Arquitetura de Computadores 24 de maio de 2016 16 / 22 Evoluc¸a˜o das ma´quinas multin´ıveis Hardware e software sa˜o equivalentes logicamente O hardware e´ simplesmente o software petrificado Fatores de escolha entre hardware e software: Custo Velocidade Confiabilidade Frequeˆncia esperada de mudanc¸as Os n´ıveis apresentados foram definidos desde o in´ıcio? Arquitetura de Computadores 24 de maio de 2016 17 / 22 Evoluc¸a˜o das ma´quinas multin´ıveis: Criac¸a˜o da microprogramac¸a˜o Primeiros computadores (de´cada de 40): 2 n´ıveis → ISA e lo´gica digital Construc¸a˜o de um computador em 3 n´ıveis, acoplando um interpretador (microprograma) para executar programas do n´ıvel ISA Reduc¸a˜o do hardware Aumento da confiabilidade (tecnologia da e´poca: va´lvulas) Arquitetura de Computadores 24 de maio de 2016 18 / 22 Evoluc¸a˜o das ma´quinas multin´ıveis: Criac¸a˜o do Sistema Operacional Inicialmente, programadores operavam e gerenciavam o computador (1 programa/vez) Execuc¸a˜o de um programa continha va´rios passos Desenvolvido por volta de 1960, com o objetivo de facilitar a operac¸a˜o do computador SO estava sempre na memo´ria Carto˜es de controle comandavam instruc¸o˜es do SO SO evoluiu e melhorou va´rias func¸o˜es (E/S principalmente) As instruc¸o˜es do SO eram conhecidas por macros do SO ou chamadas ao supervisor (atualmente: chamadas ao sistema) 1960 (MIT): SO comcompartilhamento de va´rios usua´rios (terminais ligados ao computador por linhas telefoˆnicas) → Sistemas de Tempo Compartilhado. Arquitetura de Computadores 24 de maio de 2016 19 / 22 Evoluc¸a˜o das ma´quinas multin´ıveis Microprogramac¸a˜o → aumento do hardware via programac¸a˜o. Migrac¸a˜o de funcionalidade para o microco´digo (de´cadas de 1960 e 1970). Aumento do nu´mero de instruc¸o˜es diretamente no microprograma: Multiplicac¸a˜o e divisa˜o de inteiros Aritme´tica em ponto flutuante Chamada e retorno de procedimento Acelerar a execuc¸a˜o e loops Manipulac¸a˜o de strings Novas funcionalidades: Acelerar o processamento de programas envolvendo ca´lculo matricial Deslocamento do programa na memo´ria durante sua execuc¸a˜o Tratamento de interrupc¸o˜es Suspensa˜o de um programa e in´ıcio de outro Arquitetura de Computadores 24 de maio de 2016 20 / 22 Evoluc¸a˜o das ma´quinas multin´ıveis Crescimento dos microprogramas, tornando-se lentos. A eliminac¸a˜o da microprogramac¸a˜o e retorno das instruc¸o˜es e funcionalidade ao hardware Volta ao modo de como era antes (ISA e Lo´gica Digital) Mas ”a roda continuou (e continua) girando...” O hardware de hoje pode ser o software de amanha˜ e vice-versa. Arquitetura de Computadores 24 de maio de 2016 21 / 22 Evoluc¸a˜o das ma´quinas multin´ıveis “O ce´rebro humano, de um ponto de vista estritamente funcional, pode ser definido como um sistema complexo de 100 bilho˜es de neuroˆnios. Para conter o mesmo nu´mero de elementos do ce´rebro, um computador dos anos 40, a fase das va´lvulas, teria o tamanho de Sa˜o Paulo. Em fins dos anos 50, com os transistores, bastava um computador com as dimenso˜es do Cristo Redentor. Anos 60: o computador seria como um oˆnibus. Atualmente, com a aglomerac¸a˜o de alguns milho˜es de componentes num u´nico chip, ce´rebro e computador entraram num acordo de dimenso˜es.” Arquitetura de Computadores 24 de maio de 2016 22 / 22
Compartilhar